@charset "utf-8";
/* layout — header, footer, main, sub top */
#skipToContent a{ z-index:100000; position:absolute; top:0; left:0; width:1px; height:1px; font-size:0; line-height:0; overflow:hidden; }
#skipToContent a:focus, #skipToContent a:active{ width:200px; height:50px; background:#21272e; color:#fff; font-size:14px; font-weight:bold; text-align:center; text-decoration:none; line-height:50px; outline-color:#f37736; }
.only-desktop{ display:block; }
.only-desktop-tablet{ display:block; }
.only-tablet-mobile{ display:none; }
.only-tablet{ display:none; }
.only-mobile{ display:none; }

.inner{ width: 100%; margin: 0 auto; padding-left: var(--layout-inline); padding-right: var(--layout-inline); }


/* Header — OFF: transparent / OVER: white bar + mega menu below */
#header.site-header{ position: fixed; top: 0; left: 0; z-index:100; width: 100%; height: var(--header-height); border: 0; border-bottom: 0 !important; box-shadow: none; background: transparent; overflow: visible; transition: background 0.2s ease, backdrop-filter 0.2s ease; }
#header.site-header.is-scrolled:not(.is-gnb-open){ background: #fff; backdrop-filter: blur(var(--header-blur)); -webkit-backdrop-filter: blur(var(--header-blur)); box-shadow: 0 1px 0 rgba(18, 18, 18, 0.08); }
#header.site-header.is-gnb-open{ background: #fff; backdrop-filter: blur(var(--header-blur)); -webkit-backdrop-filter: blur(var(--header-blur)); }
#header .header-inner{ position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: none; margin: 0; padding: 0 clamp(16px, 3.125vw, 60px); height: var(--header-height); overflow: visible; }
#header .logo a{ position: relative; display: block; width: clamp(180px, 12.4vw, 238px); height: 56px; overflow: hidden; }
#header .logo img{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
#header .logo .logo-light{ display: block; }
#header .logo .logo-dark{ display: none; }
#header.is-gnb-open .logo .logo-light, #header.is-scrolled .logo .logo-light{ display: none; }
#header.is-gnb-open .logo .logo-dark, #header.is-scrolled .logo .logo-dark{ display: block; }
#gnb{ flex: 1 1 auto; min-width: 0; width: auto; text-align: center; }
#gnb > ul{ display: flex; align-items: stretch; justify-content: center; gap: clamp(20px, 5.2vw, 100px); }
#gnb > ul > li{ position: relative; padding: 0; }
#gnb > ul > li > a{ position: relative; display: flex; align-items: center; justify-content: center; height: var(--header-height); padding: 0; color: #fff; font-size: clamp(15px, 1.04vw, 20px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.3; }
#header.is-gnb-open #gnb > ul > li > a, #header.is-scrolled #gnb > ul > li > a{ color: #121212; }
#gnb .submenu{ position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: max-content; height: 0 !important; overflow: hidden; visibility: hidden; pointer-events: none; text-align: center; z-index: 4; }
#header.is-gnb-open #gnb .submenu{ height: auto !important; min-height: 400px; visibility: visible; pointer-events: auto; padding-top: 39px; padding-bottom: 40px; }
#gnb .submenu > ul{ display: flex; flex-direction: column; align-items: center; gap: 30px; padding: 0; }
#gnb .submenu > ul > li > a{ display: block; padding: 0; color: var(--color-body); font-size: 16px; font-weight: 400; letter-spacing: -0.03em; line-height: 1.3; white-space: nowrap; text-align: center; text-decoration: none; }
#gnb .submenu > ul > li > a:hover{ color: var(--color-sub); text-decoration: underline; text-underline-offset: 2px; }
#header.site-header .submenu-bg{ display: block !important; position: absolute; top: var(--header-height); left: 0; z-index: 2; width: 100%; height: 0 !important; overflow: hidden; background: #fff; border: 0; border-top: 0; border-bottom: 0; transition: height 0.2s ease; }
#header.site-header.is-gnb-open .submenu-bg{ height: 447px !important; border-top: 1px solid var(--color-border); }
.header-utils{ display: flex; align-items: center; flex-shrink: 0; gap: clamp(16px, 2.6vw, 50px); }
.location-pill{ display: flex; align-items: center; gap: 6px; color: #fff; font-size: 14px; letter-spacing: -0.03em; white-space: nowrap; }
#header.is-gnb-open .location-pill, #header.is-scrolled .location-pill{ color: var(--color-body); }
.location-pill .num{ display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #02a94e; color: #fff; font-size: 12px; font-weight: 600; }
#header .btn-m-menu{ display: none; flex-direction: column; justify-content: center; align-items: flex-end; gap: 7px; width: 32px; height: 24px; border: 0; background: transparent; padding: 0; cursor: pointer; }
#header .btn-m-menu span{ display: block; width: 100%; height: 2px; background: #fff; }
#header.is-gnb-open .btn-m-menu span, #header.is-scrolled .btn-m-menu span{ background: #121212; }

.mobile-navigation {display:none; position:fixed; top:0; right:0; width:300px; height:100%; overflow:auto; transition:.2s linear; -ms-transform:translateX(100%); transform:translateX(100%); background:#fff; z-index:102;}
.mobile-navigation .home {display:flex; align-items:center; height:80px; padding:0 20px; color:#242424; font-size:19px; font-weight:700; line-height:1.5em;}
.mobile-navigation .nav-menu>ul {border-top:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li {border-bottom:1px solid #ddd;}
.mobile-navigation .nav-menu>ul>li>a {position:relative; padding:10px 48px 10px 20px; display:block; color:#242424; font-size:19px; font-weight:700; line-height:1.5em;}
.mobile-navigation .nav-menu>ul>li>a:after {content:""; position:absolute; top:50%; right:20px; transform:translateY(-75%) rotate(45deg); width:11px; height:11px; border-right:2px solid #505050; border-bottom:2px solid #505050;}
.mobile-navigation .nav-menu>ul>li.active>a {color:#fff; background:#42ade2;}
.mobile-navigation .nav-menu>ul>li.active>a:after {transform:translateY(-35%) rotate(-135deg); border-color:#fff;}
.mobile-navigation .nav-menu .submenu {display:none; background:#f8f8f8; color:#454545; font-size:16px; font-weight:400; line-height:1.5em;}
.mobile-navigation .nav-menu .submenu ul li {border-top:1px solid #e5e5e5;}
.mobile-navigation .nav-menu .submenu ul li a {display:block; padding:12px 20px;}
.mobile-navigation .nav-menu .submenu ul li a:hover {color:#42ade2;}
.mobile-navigation .close {position:absolute; top:25px; right:15px; width:26px; height:26px; text-indent:-9999em; overflow:hidden;}
.mobile-navigation .close:before,
.mobile-navigation .close:after {content:" "; position:absolute; top:12px; left:0; width:100%; height:3px; background:#242424; border-radius:3px;}
.mobile-navigation .close:before {transform:rotate(45deg);}
.mobile-navigation .close:after {transform:rotate(-45deg);}
.mobile-overlay {display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:#000; opacity:0.6; z-index:101;}

html.menu-opened {overflow:hidden;}
html.menu-opened .mobile-navigation {-ms-transform:translateX(0); transform:translateX(0);}
html.menu-opened .mobile-overlay {display:block;}

/* Main visual */
.section-label{ color: var(--color-main); font-size: clamp(14px, 1.04vw, 20px); font-weight: 600; letter-spacing: 0.5em; line-height: 1.3; }
.section-label + .section-title{ margin-top: 10px; }
.section-title{ color: var(--color-heading); font-size: clamp(28px, 2.92vw, 56px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.3; }
.section-desc{ color: var(--color-heading); font-size: clamp(16px, 1.04vw, 20px); line-height: 1.6; letter-spacing: -0.03em; }
.btn-view-more{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; min-width: 160px; height: 56px; padding: 0 24px; border: 1px solid var(--color-caption); border-radius: 8px; color: var(--color-heading); font-size: 16px; font-weight: 500; line-height: 1; letter-spacing: -0.48px; white-space: nowrap; text-decoration: none; transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease; }
.btn-view-more img{ display: block; width: 7px; height: 13px; flex-shrink: 0; transform: rotate(180deg) translateY(1px); transition: filter 0.25s ease; }
.btn-view-more:hover{ background: var(--color-main); border-color: var(--color-main); color: var(--color-white); }
.btn-view-more:hover img{ filter: brightness(0) invert(1); }
.btn-view-more:active{ transform: scale(0.98); }

.main-visual-wrap {position: relative;}
.main-visual{ position: relative; width: 100%; height: 100dvh; padding: 0; overflow: hidden; background: #111; }
.main-visual .mv-bg{ position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: hidden; background: #111; }
.main-visual .mv-bg img{ display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center bottom; }
.main-visual .mv-bg::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, 0.3) 3.67%, rgba(0, 0, 0, 0) 25.92%), linear-gradient(90deg, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); }
.mv-arrow{ position: absolute; top: 50%; z-index: 2; width: 18px; height: 32px; border: 0; padding: 0; background: transparent; cursor: pointer; transform: translateY(-50%); }
.mv-arrow.prev{ left: 60px; }
.mv-arrow.next{ right: 60px; }
.mv-arrow img{ display: block; width: 18px; height: 32px; max-width: none; }
.mv-arrow.next img{ transform: rotate(180deg); }

.mv-copy{position:absolute; bottom:50%; left:0; z-index:2; padding:0 var(--layout-inline);}
.mv-copy h2{ color: #fff; font-size: clamp(28px, 2.92vw, 56px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.3; }
.mv-copy p{ margin-top: 30px; color: #fff; font-size: clamp(16px, 1.04vw, 20px); line-height: 1.6; letter-spacing: -0.03em; max-width: none; }
.quick-cards{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; width: 100%; }
.quick-card{ display: flex; flex-direction: column; justify-content: space-between; height: 230px; min-height: 230px; padding: 30px; border-radius: var(--radius-md); border: 1px solid var(--glass-border); background: var(--glass-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; text-decoration: none; transform: translateY(10px); transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, color 0.25s ease, backdrop-filter 0.25s ease; }
@keyframes mv-zoom-out{
	from{ transform:scale(1.05); }
	to{ transform:scale(1); }
}
.main-visual .item .mv-bg img{ transform:scale(1); transform-origin:center bottom; }
.main-visual .slick-current .mv-bg img{ animation:mv-zoom-out 5s linear forwards; }
.main-visual .mv-bg picture{ display:block; width:100%; height:100%; }
@media (prefers-reduced-motion: reduce){
	.main-visual .slick-current .mv-bg img{ animation:none; }
}
.rsv-modal{ display:none; position:fixed; inset:0; z-index:2000; align-items:center; justify-content:center; background:rgba(18,18,18,0.45); }
.rsv-modal.on{ display:flex; }
.rsv-modal-box{ width:min(420px, calc(100% - 40px)); padding:36px 32px 28px; background:#fff; border-radius:16px; text-align:center; }
.rsv-modal-box p{ margin:0 0 24px; font-size:18px; line-height:1.6; letter-spacing:-0.03em; color:#121212; }
.rsv-modal-box .btn-pack{ min-width:96px; }
@media (prefers-reduced-transparency: reduce){
	.quick-card{ background: rgba(0, 0, 0, 0.75); backdrop-filter: none; }
}
@keyframes mv-zoom-out{
	from{ transform:scale(1.05); }
	to{ transform:scale(1); }
}
.main-visual .item .mv-bg img{ transform:scale(1); transform-origin:center bottom; }
.main-visual .slick-current .mv-bg img{ animation:mv-zoom-out 5s linear forwards; }
.main-visual .mv-bg picture{ display:block; width:100%; height:100%; }
@media (prefers-reduced-motion: reduce){
	.main-visual .slick-current .mv-bg img{ animation:none; }
}
.quick-cards {position:absolute; top:60%; z-index:2; left:0; width:100%;padding:0 var(--layout-inline);}
.quick-card:hover{ transform: translateY(0); border-color: transparent; background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; color: var(--color-heading); }
.quick-card:active{ transform: translateY(0) scale(0.98); }
.quick-card h3{ font-size: 24px; font-weight: 600; letter-spacing: -0.03em; line-height: 1.3; color: inherit; }
.quick-card p{ margin-top: 15px; font-size: 16px; line-height: 1.3; letter-spacing: -0.03em; color: inherit; opacity: 0.95; }
.quick-card:hover h3{ color: var(--color-heading); }
.quick-card:hover p{ color: var(--color-body); opacity: 1; }
.quick-card-foot{ display: flex; align-items: flex-end; justify-content: space-between; margin-top: 24px; }
.quick-card-foot .more{ display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: inherit; opacity: 0.7; }
.quick-card:hover .quick-card-foot .more{ color: var(--color-caption); opacity: 1; }
.quick-card-foot .more img{ width: 6px; height: 10px; transform: rotate(180deg); }
.quick-card-foot .arrow-hover{ display: none; }
.quick-card:hover .arrow-default{ display: none; }
.quick-card:hover .arrow-hover{ display: inline; }
.quick-card-foot .icon{ width: 64px; height: 64px; flex-shrink: 0; }
.quick-card-foot .icon-hover{ display: none; }
.quick-card:hover .icon-default{ display: none; }
.quick-card:hover .icon-hover{ display: block; }
/* Program */
.section-program{ position: relative; padding: 230px 0 0; overflow: hidden; }
.section-program .program-intro{ position: relative; z-index: 2; text-align: center; margin-bottom: 60px; }
.section-program .program-intro .section-desc{ margin-top: 30px; max-width: 760px; margin-left: auto; margin-right: auto; }
.program-deco{ position: absolute; right: -120px; top: 60px; width: min(848px, 55vw); z-index: 1; pointer-events: none; animation: program-rotate 40s linear infinite; }
@media (prefers-reduced-motion: reduce){
	.program-deco{ animation: none; }
}
@keyframes program-rotate{
	from{ transform: rotate(0deg); }
	to{ transform: rotate(360deg); }
}
.program-accordion{ position: relative; z-index: 2; display: flex; flex-direction: column; min-height: 792px; background-image: url("../images/main/program-bg-1.jpg"); background-size: cover; background-position: center; transition: background-image 0.45s ease; }
.program-accordion::before{ content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(0, 0, 0, 0.4); pointer-events: none; }
.program-accordion[data-active-bg="1"]{ background-image: url("../images/main/program-bg-1.jpg"); }
.program-accordion[data-active-bg="2"]{ background-image: url("../images/main/program-bg-2.jpg"); }
.program-accordion[data-active-bg="3"]{ background-image: url("../images/main/program-bg-3.jpg"); }
.program-item{ position: relative; z-index: 1; flex: 1 1 0; display: flex; border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
.program-item:last-child{ border-bottom: 0; }
.program-row{ display: flex; align-items: center; gap: clamp(24px, 3.65vw, 70px); width: 100%; padding: clamp(40px, 4.17vw, 80px) var(--layout-inline); color: #fff; opacity: 0.4; transition: opacity 0.3s ease, background 0.3s ease; }
.program-item.is-active .program-row{ opacity: 1; background: rgba(94, 209, 255, 0.6); }
.program-meta{ display: flex; align-items: center; flex: 0 0 clamp(280px, 38vw, 730px); min-width: 0; }
.program-num{ flex: 0 0 clamp(80px, 7.8vw, 150px); font-size: clamp(22px, 1.67vw, 32px); font-weight: 700; letter-spacing: -0.03em; }
.program-name{ flex: 1 1 auto; min-width: 0; font-size: clamp(22px, 1.67vw, 32px); font-weight: 700; letter-spacing: -0.03em; }
.program-detail{ flex: 1 1 auto; display: flex; align-items: center; justify-content: space-between; gap: clamp(24px, 2.6vw, 52px); min-width: 0; }
.program-copy{ flex: 1 1 auto; max-width: 600px; min-width: 0; }
.program-copy h4{ font-size: clamp(18px, 1.25vw, 24px); font-weight: 700; letter-spacing: -0.03em; margin-bottom: 15px; }
.program-copy p{ font-size: clamp(15px, 0.94vw, 18px); line-height: 1.6; letter-spacing: -0.03em; }
.program-link{ display: inline-flex; align-items: center; flex-shrink: 0; gap: 20px; font-size: clamp(16px, 1.15vw, 22px); color: #fff; white-space: nowrap; text-decoration: none; }
.program-link img{ width: 10px; height: 18px; transform: rotate(180deg); }
/* Headline + Marquee + Contact — Figma 6:1271 공통 배경 */
.section-block-02{ position: relative; display: flex; flex-direction: column; gap: 130px; padding: 230px 0 150px; overflow: hidden; background-color: #fff; background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 70.615%, #ffffff 100%), url("../images/main/section-block-02-bg.jpg"); background-size: cover; background-position: center top; background-repeat: no-repeat; }
.section-block-02::before{ content: ""; position: absolute; inset: 0; background: rgba(255, 255, 255, 0.5); pointer-events: none; z-index: 0; }
.section-block-02 > section{ position: relative; z-index: 1; }
.section-headline{ padding: 0; }
.section-headline .inner{ position: relative; }
.headline-top{ display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 60px; }
.headline-slider-wrap{ position: relative; }
.headline-slider .slick-list{ margin: 0 -20px; }
.headline-slider .card{ padding: 0 20px; }
.headline-card-link{ display: block; color: inherit; text-decoration: none; }
.headline-card-link:hover .headline-card .info h3{ text-decoration: underline; }
.headline-card .thumb{ aspect-ratio: 1; width: 100%; max-width: 370px; border-radius: var(--radius-md); overflow: hidden; background: var(--color-bg-gray); }
.headline-card .thumb img{ width: 100%; height: 100%; object-fit: cover; }
.headline-card .thumb.is-logo{ display: flex; align-items: center; justify-content: center; }
.headline-card .thumb.is-logo img{ width: 60%; height: auto; object-fit: contain; }
.headline-card .info{ margin-top: 30px; }
.headline-card .info h3{ font-size: 20px; font-weight: 500; line-height: 1.5; letter-spacing: -0.03em; color: var(--color-heading); }
.headline-card .info time{ display: block; margin-top: 15px; font-size: 14px; color: var(--color-caption); }
.headline-nav button{ position: absolute; top: calc(min(370px, 100%) / 2 - 16px); z-index: 3; display: flex !important; align-items: center; justify-content: center; width: 18px; height: 32px; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; transition: opacity 0.2s ease, transform 0.2s ease; }
/* MV .mv-arrow 와 동일 — 뷰포트 좌·우 60px (Figma 6:1310) */
.headline-nav .prev{ left: calc(60px - var(--layout-inline)); }
.headline-nav .next{ right: calc(60px - var(--layout-inline)); }
.headline-nav button img{ display: block; width: 18px; height: 32px; max-width: none; }
.headline-nav .next img{ transform: rotate(180deg); }
.headline-nav .slick-arrow.slick-hidden{ display: flex !important; visibility: visible !important; }
.headline-nav button.slick-disabled{ opacity: 0.35; pointer-events: none; }
.headline-nav button:not(.slick-disabled):hover{ opacity: 0.7; }
.headline-nav button:not(.slick-disabled):active{ transform: scale(0.95); }
/* Marquee */
.section-block-02 .section-marquee{ overflow: hidden; padding: 0; }
.marquee-track{ display: flex; width: max-content; animation: marquee-flow 28s linear infinite; }
@media (prefers-reduced-motion: reduce){
	.marquee-track{ animation: none; }
}
@keyframes marquee-flow{
	from{ transform: translateX(0); }
	to{ transform: translateX(-33.333%); }
}
.marquee-track p{ flex-shrink: 0; padding-right: 80px; font-family: var(--font-marquee); font-style: italic; font-size: clamp(40px, 4.17vw, 80px); line-height: 1.1; letter-spacing: -0.03em; color: rgba(0, 0, 0, 0.1); white-space: nowrap; }
/* Contact */
.section-block-02 .section-contact{ padding: 0; }
.contact-grid{ display: grid; grid-template-columns: minmax(0, 600px) minmax(0, 1fr); gap: clamp(40px, 7.8vw, 150px); align-items: start; }
.contact-info .section-desc{ margin-top: 30px; }
.contact-detail{ margin-top: 60px; }
.contact-detail .address h3{ font-size: 24px; font-weight: 600; color: var(--color-heading); letter-spacing: -0.03em; line-height: 1.3; }
.contact-detail .address p{ margin-top: 15px; font-size: 20px; color: var(--color-caption); }
.map-btns{ display: flex; gap: 10px; margin-top: 40px; }
.map-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 160px; height: 56px; padding: 0 24px; border-radius: 8px; font-size: 18px; font-weight: 500; letter-spacing: -0.03em; transition: transform 0.2s ease; }
.map-btn:active{ transform: scale(0.98); }
.map-btn.kakao{ background: var(--color-kakao); color: var(--color-heading); }
.map-btn.naver{ background: var(--color-naver); color: #fff; }
.map-btn img{ width: 24px; height: 24px; object-fit: contain; }
.hours-list{ margin-top: 80px; max-width: 403px; }
.hours-row{ display: flex; gap: 20px; align-items: flex-start; margin-bottom: 50px; }
.hours-row.is-phone{ align-items: center; }
.hours-row:last-child{ margin-bottom: 0; }
.hours-label{ width: 150px; flex-shrink: 0; font-size: 24px; font-weight: 500; line-height: 1.3; letter-spacing: -0.03em; color: var(--color-body); }
.hours-value{ flex: 1; min-width: 0; font-size: 18px; line-height: 1.3; letter-spacing: -0.03em; }
.hours-value.phone{ font-size: clamp(22px, 1.67vw, 32px); font-weight: 600; color: var(--color-heading); white-space: nowrap; }
.hours-line{ display: flex; gap: 10px; align-items: center; }
.hours-line + .hours-line{ margin-top: 15px; }
.hours-tag{ width: 57px; flex-shrink: 0; font-weight: 500; color: var(--color-heading); }
.hours-time{ font-weight: 400; color: var(--color-body); white-space: nowrap; }
.hours-note{ margin-top: 15px; font-size: 16px; line-height: 1.3; letter-spacing: -0.03em; color: var(--color-caption); }
.contact-map{ padding-top: 40px; }
.contact-map .map-frame{ border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 850 / 650; }
.contact-map .map-frame img{ width:100%; height:100%; object-fit:cover; }
.contact-map .map-frame .root_daum_roughmap{ --map-h:100%; width:100% !important; height:100% !important; }
.contact-map .map-frame .wrap_map{ height:100% !important; }
/* News */
.section-news {position: relative; padding: 150px 0 150px; overflow: hidden; background:url('/images/main/section-news-bg.jpg') 50% 50%/cover no-repeat;}
.section-news::before{ content: ""; position: absolute; inset: 0; background: var(--color-news-overlay); }
.section-news .inner{ position: relative; z-index: 1; overflow: visible; }
.section-news .news-head{ text-align: center; margin-bottom: 80px; }
.section-news .section-title{ color: #fff; }
.section-news .section-desc{ color: #fff; margin-top: 30px; }
.news-slider-wrap{ overflow: visible; margin-right: calc(50% - 50vw); }
.news-slider{ overflow: visible; }
.news-slider .slick-list{ overflow: visible !important; }
.news-slider .slick-track{ display: flex !important; align-items: stretch; }
.news-slider .slick-slide{ width: 507px !important; margin-right: 40px; box-sizing: border-box; }
.news-slider .slick-slide:last-child{ margin-right: 0; }
.health-news-standalone .board-search{ margin-top: 0; }
.news-card-link{ display: block; height: 100%; color: inherit; text-decoration: none; }
.news-card-link:hover .news-card h3{ text-decoration: underline; }
.news-card{ background: #fff; border-radius: var(--radius-md); padding: 50px 30px; min-height: 334px; height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.news-card h3{ font-size: 24px; font-weight: 600; color: var(--color-heading); line-height: 1.6; letter-spacing: -0.03em; }
.news-card p{ margin-top: 20px; font-size: 16px; line-height: 1.6; color: var(--color-body); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-card time{ font-size: 14px; color: var(--color-caption); }
.news-controls{ display: flex; align-items: center; gap: 40px; margin-top: 40px; }
.news-progress{ flex: 1; max-width: 1480px; height: 3px; background: rgba(255, 255, 255, 0.2); border-radius: 2px; overflow: hidden; }
.news-progress-bar{ display: block; height: 100%; width: 0; background: var(--color-main); border-radius: 2px; transition: width 0.4s ease; }
.news-nav{ display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.news-prev, .news-next{ display: flex !important; align-items: center; justify-content: center; width: 18px; height: 32px; padding: 0; border: 0; background: transparent; cursor: pointer; transition: opacity 0.2s ease; }
.news-prev img, .news-next img{ display: block; width: 10px; height: 18px; max-width: none; }
.news-prev:hover, .news-next:hover{ opacity: 0.75; }
.news-nav .slick-arrow.slick-hidden{ display: flex !important; visibility: visible !important; }
.news-nav .slick-disabled{ opacity: 0.35; pointer-events: none; }
.news-pause{ width: 32px; height: 32px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; cursor: pointer; position: relative; flex-shrink: 0; }
.news-pause::before, .news-pause::after{ content: ""; position: absolute; top: 50%; width: 2px; height: 10px; background: var(--color-heading); transform: translateY(-50%); }
.news-pause::before{ left: 11px; }
.news-pause::after{ right: 11px; }

/* Footer */
#footer.site-footer{ background: var(--color-footer); color: rgba(255, 255, 255, 0.7); text-align: left; padding: 60px 0 80px; }
.footer-links{ display: flex; flex-wrap: wrap; gap: 30px; margin-bottom: 80px; font-size: 16px; }
.footer-links a{ color: rgba(255, 255, 255, 0.7); }
.footer-links a.privacy{ color: #fff; font-weight: 600; }
.footer-grid{ display: flex; justify-content: space-between; gap: 40px; align-items: flex-start; }
.footer-brand .logo{ width: 238px; margin-bottom: 30px; }
.footer-brand .footer-meta + .footer-meta{ margin-top: 10px; }
.footer-meta{ display: flex; flex-wrap: wrap; gap: 15px; font-size: 16px; line-height: 1.3; }
.footer-meta .sep{ width: 1px; height: 14px; background: rgba(255, 255, 255, 0.3); align-self: center; }
.footer-copy{ margin-top: 40px; font-size: 14px; color: rgba(255, 255, 255, 0.3); }
.footer-sns h3{ text-align: right; font-size: 20px; font-weight: 600; margin-bottom: 20px; }
.footer-sns ul{ display: flex; align-items: center; gap: 12px; justify-content: flex-end; width: 288px; }
.footer-sns li{ flex: 0 0 48px; }
.footer-sns a{ display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); transition: background 0.2s ease; }
.footer-sns a:hover{ background: rgba(255, 255, 255, 0.2); }
.footer-sns img{ display: block; width: auto; height: auto; max-width: 24px; max-height: 24px; object-fit: contain; }
#footer .copyright{ margin-top: 40px; font-size: 14px; color: rgba(255, 255, 255, 0.3); }
#footer .copyright .design-credit{ color: inherit; font-size: inherit; text-decoration: none; }
#footer .copyright .design-credit:hover{ text-decoration: underline; }



/* Popup */
#mainPopup{ position: fixed; inset: 0; z-index: 500; display: none; align-items: center; justify-content: center; padding: 20px; box-sizing: border-box; }
#mainPopup.is-open{ display: flex; }
#mainPopup .popup-dim{ position: absolute; inset: 0; background: rgba(0, 0, 0, 0.7); }
#mainPopup .popup-panel{ position: relative; z-index: 1; width: min(840px, 100%); }
#mainPopup.is-single .popup-panel{ max-width: calc((min(840px, 100%) - 40px) / 2); width: 100%; }
#mainPopup:not(.is-single) .popup-panel{ padding-top: 57px; }
.popup-arrows{ position: absolute; top: 0; right: 0; width: 98px; height: 44px; margin: 0; z-index: 2; }
.popup-arrows button{ position: absolute; top: 0; width: 44px; height: 44px; border: 0; border-radius: 15px; padding: 0; cursor: pointer; background: transparent url("/images/popup/popup_arrow.svg") center / contain no-repeat; box-shadow: none; transition: opacity 0.2s; }
.popup-arrows button.swiper-button-disabled{ opacity: 0.35; cursor: default; pointer-events: none; }
.popup-arrows .popup-next{ right: 0; left: auto; }
.popup-arrows .popup-prev{ right: 54px; left: auto; transform: rotate(180deg); }
.popup-track{ display: flex; gap: 40px; overflow: hidden; }
.popup-track.swiper{ display: block; overflow: hidden; }
.popup-track.swiper .swiper-wrapper{ display: flex; }
.popup-track.swiper .popup-slide{ display: block; flex: none; box-sizing: border-box; height: auto; }
.popup-track.is-single .popup-slide{ flex: 0 0 100%; }
.popup-slide{ flex: 0 0 calc(50% - 20px); border-radius: var(--radius-sm); overflow: hidden; }
.popup-slide a{ display: block; }
.popup-slide img{ width: 100%; height: auto; display: block; aspect-ratio: 400 / 350; object-fit: cover; }
.popup-foot{ display: flex; align-items: center; justify-content: space-between; margin-top: 20px; color: #fff; font-size: 16px; font-weight: 500; }
.popup-hide{ display: inline-flex; align-items: center; gap: 10px; cursor: pointer; }
.popup-hide input{ width: 18px; height: 18px; accent-color: var(--color-main); }
.popup-close{ display: inline-flex; align-items: center; gap: 10px; border: 0; background: transparent; color: #fff; font-size: 16px; font-weight: 500; cursor: pointer; font-family: inherit; }
html.popup-opened{ overflow: hidden; }