/* =========================================================
   KS병원 MVP — Main Stylesheet (champodonamu 기법 클론 → KS 브랜드)
   rem 기준 1rem=10px / 거대 타이포 / GSAP .active 등장 / Swiper
   ========================================================= */

*,*::before,*::after{ box-sizing:border-box; }
body{
  margin:0; font-family:var(--font-sans);
  color:var(--color-ink-900); background:var(--color-white);
  font-size:var(--txt); line-height:1.7; letter-spacing:-0.01em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
button{ font-family:inherit; cursor:pointer; border:0; background:none; }
:focus-visible{ outline:3px solid var(--brand-bright); outline-offset:3px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

/* ---------- Layout ---------- */
.inner{ width:100%; max-width:100%; margin-inline:auto; padding-inline:var(--inPd); }
.inner--wide{ max-width:calc(var(--container) + var(--inPd)*2); }
.inner--narrow{ max-width:calc(var(--container-narrow) + var(--inPd)*2); }
.sect{ position:relative; padding-top:var(--contPd); }

/* ---------- Section title ---------- */
.sect_tit_box{ position:relative; }
.sect_tit_box.center{ text-align:center; }
.sect_tit_box .en_tit{ font-family:var(--font-en); font-size:var(--en_tit); font-weight:700; line-height:1.1;
  letter-spacing:-.01em; color:var(--brand); text-transform:uppercase;
  opacity:0; transform:translateY(50px); transition:opacity .6s ease-out, transform .6s ease-out; }
.sect_tit_box .desc{ font-size:var(--desc); font-weight:700; color:var(--color-primary-700); margin-bottom:1.5rem;
  opacity:0; transform:translateY(50px); transition:opacity .5s ease-out, transform .5s ease-out; }
.sect_tit_box .tit{ font-size:var(--tit); line-height:1.28; font-weight:700; color:var(--color-ink-900);
  opacity:0; transform:translateY(50px); transition:opacity .5s ease-out .2s, transform .5s ease-out .2s; }
.sect_tit_box .tit em{ color:var(--brand); font-style:normal; }
.sect_tit_box .txt{ margin-top:2rem; font-size:var(--txt); color:var(--color-ink-500); max-width:60rem;
  opacity:0; transform:translateY(50px); transition:opacity .5s ease-out .4s, transform .5s ease-out .4s; }
.sect_tit_box.center .txt{ margin-inline:auto; }
.sect_tit_box.active .en_tit,
.sect_tit_box.active .desc,
.sect_tit_box.active .tit,
.sect_tit_box.active .txt{ opacity:1; transform:none; }

/* reveal util */
.reveal{ opacity:0; transform:translateY(60px); transition:opacity .8s ease, transform .8s ease; }
.reveal.active{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.12s; } .reveal.d2{ transition-delay:.24s; } .reveal.d3{ transition-delay:.36s; }
@media (prefers-reduced-motion:reduce){ .reveal,.sect_tit_box *{ opacity:1 !important; transform:none !important; } }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:1rem;
  font-size:var(--smTxt); font-weight:600; line-height:1; border:1px solid transparent;
  border-radius:var(--radius-full); padding:1.6rem 3rem; transition:.2s; }
.btn--primary{ background:var(--brand); color:#fff; }
.btn--primary:hover{ background:var(--brand-deep); }
.btn--point{ background:var(--point); color:var(--color-ink-900); font-weight:700; }
.btn--point:hover{ background:var(--color-accent-600); color:#fff; }
.btn--ghost{ background:#fff; border-color:var(--brand); color:var(--brand); }
.btn--ghost:hover{ background:var(--brand-tint); }
.btn--line-light{ border-color:rgba(255,255,255,.6); color:#fff; }
.btn--line-light:hover{ background:rgba(255,255,255,.16); }
.btn--lg{ padding:2rem 4rem; font-size:var(--txt); }
.btn--block{ width:100%; }
.com_btn{ display:inline-flex; align-items:center; gap:1rem; font-weight:700; color:var(--brand); font-size:var(--smTxt); }
.com_btn::after{ content:"→"; }

/* ---------- Header ---------- */
.header{ position:fixed; top:var(--note-h); left:0; width:100%; height:var(--hd_h); z-index:100;
  display:flex; align-items:center; transition:background .3s, box-shadow .3s, color .3s; color:var(--color-ink-900); }
.header::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,30,55,.5),rgba(0,30,55,0)); pointer-events:none; transition:opacity .3s; opacity:0; }
/* 스크롤 시: 파란 배경 + 흰 글자 */
.header.is-solid{ background:var(--brand); color:#fff; box-shadow:0 .4rem 2rem rgba(0,62,107,.25); }
/* 어두운 서브히어로 위: 흰 글자 */
.header.over-dark{ color:#fff; }
.header.over-dark::before{ opacity:1; }
.header.over-dark.is-solid{ color:#fff; }
.header.over-dark.is-solid::before{ opacity:0; }
.header__inner{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:4rem; width:100%; max-width:calc(var(--container) + var(--inPd)*2); margin-inline:auto; padding-inline:var(--inPd); }
.header__logo img{ height:3.2rem; width:auto; transition:opacity .2s; }
.header__logo .logo-w{ display:none; } .header__logo .logo-c{ display:block; } .header__logo .logo-s{ display:none; }
.header.over-dark:not(.is-solid) .header__logo .logo-s{ display:block; }
.header.over-dark:not(.is-solid) .header__logo .logo-c{ display:none; }
/* 스크롤(파란 배경) 시: 전용 스크롤 로고 logo_scroll.png */
.header.is-solid .header__logo .logo-s{ display:block; }
.header.is-solid .header__logo .logo-w{ display:none; }
.header.is-solid .header__logo .logo-c{ display:none; }

.gnb{ display:none; }
@media (min-width:1025px){
  .gnb{ display:block; }
  /* 로고/우측 영역을 동일 비중으로 → GNB가 화면 정중앙 */
  .header__logo{ flex:1 1 0; min-width:0; }
  .header__utils{ flex:1 1 0; justify-content:flex-end; }
  .gnb__list{ display:flex; justify-content:center; gap:3.4rem; white-space:nowrap; }
  .gnb__link{ display:flex; align-items:center; height:var(--hd_h); font-size:1.9rem; font-weight:600; }
  .gnb__item{ position:relative; }
  .gnb__item:hover .gnb__link{ color:var(--point); }
  .gnb__sub{ position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(1rem); min-width:18rem;
    background:#fff; border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:1rem; opacity:0; visibility:hidden; transition:.2s; }
  .gnb__item:hover .gnb__sub{ opacity:1; visibility:visible; transform:translateX(-50%); }
  .gnb__sub a{ display:block; padding:1.1rem 1.6rem; border-radius:var(--radius-sm); color:var(--color-ink-700); font-size:1.55rem; }
  .gnb__sub a:hover{ background:var(--brand-tint); color:var(--brand); }
}
.header__utils{ display:flex; align-items:center; gap:2rem; }
.header__tel{ display:none; }
@media (min-width:1025px){ .header__tel{ display:flex; flex-direction:column; align-items:flex-end; line-height:1.2; }
  .header__tel-label{ font-size:1.2rem; opacity:.7; } .header__tel-num{ font-size:2.2rem; font-weight:800; } }
.header.is-solid .header__tel-num{ color:#fff; }
.header__cta{ display:none; }
@media (min-width:1025px){ .header__cta{ display:inline-flex; } }
.nav-toggle{ display:inline-flex; flex-direction:column; justify-content:center; gap:.5rem; width:4.4rem; height:4.4rem; }
.nav-toggle span{ display:block; height:2px; width:2.6rem; margin-inline:auto; background:currentColor; border-radius:2px; transition:.25s; }
@media (min-width:1025px){ .nav-toggle{ display:none; } }

/* Drawer */
.drawer{ position:fixed; inset:0; z-index:200; visibility:hidden; }
.drawer.is-open{ visibility:visible; }
.drawer__backdrop{ position:absolute; inset:0; background:rgba(35,31,32,.45); opacity:0; transition:.25s; }
.drawer.is-open .drawer__backdrop{ opacity:1; }
.drawer__panel{ position:absolute; top:0; right:0; height:100%; width:min(86%,38rem); background:#fff;
  transform:translateX(100%); transition:transform .3s ease; overflow-y:auto; display:flex; flex-direction:column; color:var(--color-ink-900); }
.drawer.is-open .drawer__panel{ transform:none; }
.drawer__top{ display:flex; align-items:center; justify-content:space-between; padding:2rem 2.4rem; border-bottom:1px solid var(--color-line-200); }
.drawer__top img{ height:2.6rem; }
.drawer__close{ width:4.4rem; height:4.4rem; font-size:3rem; line-height:1; color:var(--color-ink-700); }
.drawer__nav{ padding:1rem 2.4rem 3rem; }
.drawer__group{ border-bottom:1px solid var(--color-line-200); }
.drawer__group-title{ display:block; padding:1.8rem .4rem; font-size:1.9rem; font-weight:700; }
.drawer__sub{ padding-bottom:1.4rem; }
.drawer__sub a{ display:block; padding:1rem 1.2rem; color:var(--color-ink-700); font-size:1.6rem; }
.drawer__foot{ margin-top:auto; padding:2.4rem; background:var(--brand-tint); }
.drawer__tel{ font-size:2.6rem; font-weight:800; color:var(--brand); }
.drawer__foot .btn{ margin-top:1.4rem; }

/* ---------- 1. visual_sect (Hero) ---------- */
.visual_sect{ position:relative; width:100%; height:100vh; min-height:60rem; overflow:hidden; background:linear-gradient(180deg,#EAF4FC,#F2F9FE); }
.visual_sect .bg_tit{ position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); width:100%; text-align:center;
  font-family:var(--font-en); font-size:10.65vw; font-weight:700; line-height:1; color:rgba(0,110,184,.10);
  text-transform:uppercase; white-space:nowrap; pointer-events:none; z-index:1; }
.hero-swiper{ position:relative; width:100%; height:100%; z-index:2; }
.hero-swiper .swiper-slide{ display:flex; align-items:center; }
.hero-slide__inner{ display:flex; align-items:center; justify-content:center; gap:8rem; width:100%; max-width:calc(var(--container) + var(--inPd)*2); margin-inline:auto; padding:0 var(--inPd); }
.hero-slide__inner.reverse{ flex-direction:row-reverse; }
.hero-slide__visual{ flex:0 0 32rem; display:flex; align-items:center; justify-content:center; }
.hero-slide__visual img{ width:auto; max-height:46vh; filter:drop-shadow(0 3rem 5rem rgba(0,62,107,.22)); }
.hero-slide__copy{ flex:1; max-width:60rem; }
.hero-slide__idx{ display:inline-block; font-family:var(--font-en); font-size:1.6rem; font-weight:600; letter-spacing:.1em; color:var(--brand-bright); margin-bottom:2rem; }
.hero-slide__tit{ font-size:7rem; font-weight:800; line-height:1.15; color:var(--color-ink-900); }
.hero-slide__txt{ margin-top:2.5rem; font-size:var(--bigTxt); color:var(--color-ink-700); }
.hero-slide__cta{ display:flex; gap:1.5rem; margin-top:4rem; flex-wrap:wrap; }
.hero__slogan{ position:absolute; left:0; top:calc(var(--note-h) + var(--hd_h) + 2rem); width:100%; text-align:center; z-index:3; pointer-events:none; }
.hero__slogan strong{ display:block; font-size:3rem; font-weight:800; color:var(--brand-deep); opacity:0; }
.hero__slogan span{ display:inline-block; margin-top:.6rem; font-size:var(--bigTxt); color:var(--color-ink-500); opacity:0; }
@keyframes heroLineBlur{ from{ opacity:0; filter:blur(16px); transform:translateY(28px); } to{ opacity:1; filter:blur(0); transform:none; } }
.visual_sect.active .hero__slogan strong{ animation:heroLineBlur .9s cubic-bezier(.2,.7,.2,1) .15s both; }
.visual_sect.active .hero__slogan span{ animation:heroLineBlur .9s cubic-bezier(.2,.7,.2,1) .45s both; }
@media (prefers-reduced-motion:reduce){ .hero__slogan strong,.hero__slogan span{ opacity:1; animation:none; } }
.hero-swiper .swiper-pagination{ bottom:3rem !important; }
.hero-swiper .swiper-pagination-bullet{ width:1rem; height:1rem; background:var(--brand); opacity:.25; transition:.3s; }
.hero-swiper .swiper-pagination-bullet-active{ width:3rem; border-radius:1rem; opacity:1; }
.hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:5.4rem; height:5.4rem; border-radius:50%;
  background:rgba(255,255,255,.75); color:var(--brand); font-size:2.2rem; display:none; align-items:center; justify-content:center; }
@media (min-width:1025px){ .hero-arrow{ display:flex; } }
.hero-arrow:hover{ background:#fff; box-shadow:var(--shadow-md); }
.hero-arrow--prev{ left:3rem; } .hero-arrow--next{ right:3rem; }
@media (max-width:768px){
  .hero-slide__inner,.hero-slide__inner.reverse{ flex-direction:column; text-align:center; gap:2rem; justify-content:center; }
  .hero-slide__visual{ flex-basis:auto; } .hero-slide__visual img{ max-height:26vh; }
  .hero-slide__tit{ font-size:3.6rem; } .hero-slide__cta{ justify-content:center; }
}

/* ---------- 2. team_sect (협진) ---------- */
.team_sect{ position:relative; padding-top:var(--contPd); overflow:hidden; }
.team_sect .head{ text-align:center; margin-bottom:8rem; }
.team_sect .img_wrap{ position:relative; width:120rem; max-width:100%; margin:0 auto; }
.team_sect .img_txt{ position:absolute; left:50%; top:-6rem; transform:translateX(-50%); font-family:var(--font-en);
  font-size:10rem; font-weight:700; color:var(--brand); opacity:.10; text-transform:uppercase; white-space:nowrap; z-index:1; }
.team_sect .photo{ position:relative; z-index:2; }
.team_sect .photo img{ width:100%; height:auto; object-fit:contain; }
.team_sect .stats{ display:flex; justify-content:center; gap:8rem; margin-top:7rem; flex-wrap:wrap; }
.team_sect .stat{ text-align:center; }
.team_sect .stat b{ display:block; font-family:var(--font-en); font-size:7rem; font-weight:800; color:var(--brand); line-height:1; }
.team_sect .stat span{ font-size:var(--smTxt); color:var(--color-ink-500); }
.team_sect .desc-row{ max-width:80rem; margin:6rem auto 0; text-align:center; color:var(--color-ink-700); font-size:var(--bigTxt); }
.team_sect .desc-row .btn{ margin-top:3rem; }

/* ---------- 3. special_sect (진료센터) ---------- */
.special_sect{ padding-top:var(--contPd); }
.special_sect .cont_box{ display:flex; gap:3rem; margin-top:8rem; flex-wrap:wrap; }
.special_card{ position:relative; flex:1 1 28rem; min-width:26rem; overflow:hidden; border-radius:var(--radius-lg); display:block;
  opacity:0; transform:translateY(120px); transition:opacity .8s ease, transform .8s ease; }
.special_sect.active .special_card{ opacity:1; transform:none; }
.special_sect.active .special_card:nth-child(2){ transition-delay:.1s; }
.special_sect.active .special_card:nth-child(3){ transition-delay:.2s; }
.special_sect.active .special_card:nth-child(4){ transition-delay:.3s; }
.special_sect.active .special_card:nth-child(5){ transition-delay:.4s; }
.special_sect.active .special_card:nth-child(6){ transition-delay:.5s; }
.special_card .img{ position:relative; padding-top:133%; }
.special_card .img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.special_card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,40,72,0) 40%,rgba(0,40,72,.85)); z-index:1; }
.special_card:hover .img img{ transform:scale(1.06); }
.special_card .txt_box{ position:absolute; left:0; bottom:0; width:100%; padding:3.5rem; color:#fff; z-index:2;
  transform:translateY(calc(100% - 11rem)); transition:transform .5s; }
.special_card:hover .txt_box{ transform:translateY(0); }
.special_card .en{ display:block; font-family:var(--font-en); font-size:1.4rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; opacity:.85; margin-bottom:1rem; }
.special_card .tit{ font-size:var(--main_ti1); font-weight:700; }
.special_card .txt{ margin-top:1.6rem; font-size:var(--smTxt); opacity:.9; }
.special_card .more{ margin-top:2rem; font-size:1.4rem; font-weight:700; color:var(--point); }
@media (max-width:768px){ .special_sect .cont_box{ gap:1.6rem; } .special_card{ flex-basis:100%; } .special_card .txt_box{ transform:none; } }

/* ---------- 4. cham_sect (핵심가치, 겹친 원형) ---------- */
.cham_sect{ position:relative; padding-top:var(--contPd); overflow:hidden; }
.cham_sect .cir_bg{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.cham_sect .cir_bg span{ position:absolute; border-radius:50%; filter:blur(2px); opacity:.5; }
.cham_sect .cir_bg .c1{ width:46rem; height:46rem; top:6%; left:-10rem; background:radial-gradient(circle,var(--brand-tint),transparent 70%); }
.cham_sect .cir_bg .c2{ width:38rem; height:38rem; bottom:4%; right:-8rem; background:radial-gradient(circle,var(--color-accent-100),transparent 70%); }
.cham_sect .cont_box{ display:flex; justify-content:center; margin-top:10rem; flex-wrap:wrap; }
.cham_card{ position:relative; width:calc(25% + 4.5rem); aspect-ratio:1/1; border-radius:50%; overflow:hidden; flex-shrink:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; padding:3rem;
  opacity:0; transform:scale(.8); transition:opacity .7s ease, transform .7s ease; }
.cham_card + .cham_card{ margin-left:-6rem; }
.cham_sect.active .cham_card{ opacity:1; transform:none; }
.cham_sect.active .cham_card:nth-child(2){ transition-delay:.12s; }
.cham_sect.active .cham_card:nth-child(3){ transition-delay:.24s; }
.cham_sect.active .cham_card:nth-child(4){ transition-delay:.36s; }
.cham_card .bg{ position:absolute; inset:0; z-index:-1; }
.cham_card .bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(0,86,143,.85),rgba(0,62,107,.9)); }
.cham_card:nth-child(2) .bg::after{ background:linear-gradient(160deg,rgba(247,148,29,.88),rgba(224,126,16,.92)); }
.cham_card .bg img{ width:100%; height:100%; object-fit:cover; }
.cham_card .en{ font-family:var(--font-en); font-size:2.8rem; font-weight:800; }
.cham_card .txt{ font-size:var(--smTxt); margin-top:1.2rem; opacity:.95; max-width:22rem; }
@media (max-width:768px){ .cham_sect .cont_box{ gap:1.5rem; } .cham_card{ width:42%; } .cham_card + .cham_card{ margin-left:0; } }

/* ---------- 5. efforts_sect (강점 coverflow) ---------- */
.efforts_sect{ padding-top:var(--contPd); overflow:hidden; }
.efforts-swiper{ margin-top:6rem; padding-bottom:6rem; }
.efforts-swiper .swiper-slide{ width:80rem; max-width:86%; transition:transform .6s; }
.effort_card{ background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
/* 강점 배너는 제목·설명이 이미지에 포함 → 크롭 없이 전체 표시 */
.effort_card .img{ position:relative; }
.effort_card .img img{ width:100%; height:auto; display:block; }
.effort_card .txt_box{ position:relative; padding:4rem; }
.effort_card .no{ font-family:var(--font-en); font-size:1.6rem; font-weight:700; color:var(--point); }
.effort_card .tit{ margin-top:1rem; font-size:var(--main_ti1); font-weight:700; }
.effort_card .txt{ margin-top:1.4rem; font-size:var(--txt); color:var(--color-ink-500); }
.efforts-swiper .swiper-slide:not(.swiper-slide-active) .effort_card{ opacity:.55; transform:scale(.92); transition:.6s; }
.efforts__controls{ display:flex; justify-content:center; gap:2rem; margin-top:1rem; }
.efforts__controls button{ width:6rem; height:6rem; border:2px solid var(--color-ink-900); border-radius:50%; font-size:2rem; transition:.3s; }
.efforts__controls button:hover{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---------- 6. keyword_sect ---------- */
.keyword_sect{ padding-top:var(--contPd); }
.keyword_sect .box{ position:relative; max-width:90rem; margin:0 auto; padding:8rem var(--inPd); text-align:center;
  background:linear-gradient(120deg,var(--brand),var(--brand-bright)); border-radius:var(--radius-xl); color:#fff; overflow:hidden; }
.keyword_sect .box .en_tit{ color:rgba(255,255,255,.16); }
.keyword_sect .tit{ font-size:var(--tit); font-weight:800; }
.keyword_sect .inp_wrap{ display:flex; align-items:center; max-width:62rem; margin:5rem auto 0; padding:.8rem; background:#fff; border-radius:var(--radius-full); }
.keyword_sect .inp_wrap input{ flex:1; border:0; background:transparent; padding:0 2.4rem; height:6rem; font-size:1.8rem; color:var(--color-ink-900); }
.keyword_sect .inp_wrap input:focus{ outline:none; }
.keyword_sect .inp_wrap button{ flex:0 0 auto; height:6rem; padding:0 3rem; background:var(--point); color:var(--color-ink-900); font-weight:700; border-radius:var(--radius-full); }
.keyword_sect .recommend{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-top:3rem; }
.keyword_sect .recommend a{ padding:1rem 2rem; font-size:var(--smTxt); border:1px solid rgba(255,255,255,.35); border-radius:var(--radius-full); background:rgba(255,255,255,.12); }
.keyword_sect .recommend a:hover{ background:#fff; color:var(--brand); }

/* ---------- stats / care ---------- */
.stats_sect{ padding-top:var(--contPd); }
.stats_sect .grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:4rem; margin-top:8rem; }
@media (min-width:1025px){ .stats_sect .grid{ grid-template-columns:repeat(4,1fr); } }
.stat_box{ text-align:center; }
.stat_box .num{ font-family:var(--font-en); font-size:8rem; font-weight:800; color:var(--brand); line-height:1; }
.stat_box .num small{ font-size:3rem; font-weight:700; font-family:var(--font-sans); }
.stat_box .label{ margin-top:2rem; color:var(--color-ink-500); font-size:var(--smTxt); }

/* ---------- media_sect (소식) ---------- */
.media_sect{ padding-top:var(--contPd); }
.media_sect .grid{ display:grid; grid-template-columns:1fr; gap:4rem; margin-top:8rem; }
@media (min-width:768px){ .media_sect .grid{ grid-template-columns:repeat(3,1fr); } }
.media_card{ display:block; background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:.3s; }
.media_card:hover{ box-shadow:var(--shadow-md); transform:translateY(-.6rem); }
.media_card .img{ position:relative; padding-top:120%; overflow:hidden; background:var(--color-bg-50); }
.media_card .img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top center; }
.media_card .txt_box{ padding:3rem; }
.media_card .tag{ display:inline-block; font-size:1.3rem; font-weight:700; color:var(--color-accent-700); background:var(--color-accent-100); padding:.4rem 1.2rem; border-radius:var(--radius-full); margin-bottom:1.5rem; }
.media_card .tit{ font-size:var(--bigTxt); font-weight:700; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.media_card .date{ margin-top:1.5rem; font-size:1.3rem; color:var(--color-ink-400); }

/* ---------- review_sect (후기) ---------- */
.review_sect{ padding-top:var(--contPd); }
.review_sect .grid{ display:grid; grid-template-columns:1fr; gap:3rem; margin-top:8rem; }
@media (min-width:768px){ .review_sect .grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1025px){ .review_sect .grid{ grid-template-columns:repeat(4,1fr); } }
.review_card{ background:#fff; border:1px solid var(--color-line-200); border-radius:var(--radius-lg); overflow:hidden; }
.review_card .img{ position:relative; padding-top:72%; }
.review_card .img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.review_card .txt_box{ padding:3rem; }
.review_card .quote{ font-size:var(--smTxt); color:var(--color-ink-700); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.review_card .meta{ margin-top:2rem; font-size:1.3rem; color:var(--color-ink-400); }

/* ---------- value visual ---------- */
.vvisual_sect{ padding-top:var(--contPd); }
.vvisual_sect .grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; margin-top:8rem; }
@media (min-width:1025px){ .vvisual_sect .grid{ grid-template-columns:repeat(4,1fr); } }
.vv_card{ position:relative; aspect-ratio:1/1; border-radius:var(--radius-lg); overflow:hidden; }
.vv_card img{ width:100%; height:100%; object-fit:cover; }
.vv_card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(0,62,107,.72)); }
.vv_card span{ position:absolute; left:2.5rem; bottom:2.5rem; z-index:2; color:#fff; font-size:var(--main_ti1); font-weight:700; }

/* ---------- reserv_sect ---------- */
.reserv_sect{ padding-top:var(--contPd); }
.reserv_sect .box{ background:linear-gradient(120deg,var(--brand-deep),var(--brand)); border-radius:var(--radius-xl); color:#fff; padding:8rem var(--inPd); }
.reserv_sect .grid{ display:grid; gap:5rem; }
@media (min-width:1025px){ .reserv_sect .grid{ grid-template-columns:1fr 1.2fr; gap:8rem; align-items:center; } }
.reserv_sect .tit{ font-size:var(--tit); font-weight:800; margin-bottom:2rem; }
.reserv_sect .lead{ color:rgba(255,255,255,.85); margin-bottom:3rem; font-size:var(--bigTxt); }
.reserv_sect .channels{ display:grid; gap:1.5rem; }
.reserv_sect .channel{ display:flex; gap:1.5rem; align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md); padding:2rem; }
.reserv_sect .channel b{ font-size:var(--main_ti1); }
.reserv_form{ background:#fff; border-radius:var(--radius-lg); padding:4rem; color:var(--color-ink-900); }
.field{ margin-bottom:2rem; }
.field__label{ display:block; font-size:var(--smTxt); font-weight:600; color:var(--color-ink-700); margin-bottom:1rem; }
.field__label .req{ color:var(--color-danger); }
.field__input,.field__select,.field__textarea{ width:100%; border:1px solid var(--color-line-300); border-radius:var(--radius-md); padding:1.4rem 1.6rem; font-size:1.6rem; font-family:inherit; }
.field__input:focus,.field__select:focus,.field__textarea:focus{ outline:none; border-color:var(--brand-bright); box-shadow:0 0 0 3px var(--brand-tint); }
.field__textarea{ resize:vertical; min-height:10rem; }
.field__error{ display:none; color:var(--color-danger); font-size:1.3rem; margin-top:.6rem; }
.field.is-invalid .field__error{ display:block; }
.field.is-invalid .field__input,.field.is-invalid .field__select{ border-color:var(--color-danger); }
.agree{ display:flex; gap:1rem; align-items:flex-start; font-size:var(--smTxt); color:var(--color-ink-700); margin-bottom:1.4rem; }
.agree input{ margin-top:.3rem; width:1.8rem; height:1.8rem; flex:0 0 auto; accent-color:var(--brand); }
.agree a{ text-decoration:underline; }
.honeypot{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-note{ font-size:1.3rem; color:var(--color-ink-400); margin-top:1.4rem; }
.form-success{ display:none; background:var(--brand-tint); border:1px solid var(--brand-bright); color:var(--brand-deep); border-radius:var(--radius-md); padding:1.8rem; margin-bottom:2rem; font-size:var(--smTxt); }
.form-success.is-show{ display:block; }

/* ---------- location ---------- */
.location_sect{ padding-top:var(--contPd); padding-bottom:var(--contPd); }
.location_sect .grid{ display:grid; gap:4rem; margin-top:8rem; }
@media (min-width:1025px){ .location_sect .grid{ grid-template-columns:1.4fr 1fr; } }
.location_sect .map{ border-radius:var(--radius-lg); overflow:hidden; min-height:36rem; }
.location_sect .map iframe{ width:100%; height:100%; min-height:36rem; border:0; }
.location_sect .info{ background:#fff; border:1px solid var(--color-line-200); border-radius:var(--radius-lg); padding:4rem; }
.location_sect .row{ display:flex; gap:1.5rem; padding:1.6rem 0; border-bottom:1px solid var(--color-line-200); }
.location_sect .row:last-child{ border-bottom:0; }
.location_sect .row dt{ flex:0 0 9rem; font-weight:700; color:var(--brand); }
.location_sect .row dd{ margin:0; color:var(--color-ink-700); }
.location_sect .maps{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.5rem; }
.map-chip{ padding:1rem 1.8rem; border:1px solid var(--color-line-300); border-radius:var(--radius-full); font-size:var(--smTxt); color:var(--color-ink-700); }
.map-chip:hover{ border-color:var(--brand-bright); color:var(--brand); }

/* ---------- Footer ---------- */
.footer{ background:var(--brand-deep); color:rgba(255,255,255,.85); margin-top:var(--contPd); }
.footer__top{ padding-block:8rem; border-bottom:1px solid rgba(255,255,255,.12); }
.footer__grid{ display:grid; gap:5rem; }
@media (min-width:1025px){ .footer__grid{ grid-template-columns:1.4fr 1fr 1fr; } }
.footer__logo img{ height:3.6rem; margin-bottom:2.4rem; }
.footer__addr{ font-size:var(--smTxt); line-height:1.9; }
.footer__addr strong{ color:#fff; }
.footer__col-title{ color:#fff; font-weight:700; margin-bottom:2.4rem; font-size:var(--txt); }
.footer__links li,.footer__hours li{ margin-bottom:1.2rem; font-size:var(--smTxt); }
.footer__links a:hover{ color:var(--color-accent-300); }
.footer__hours li{ display:flex; justify-content:space-between; gap:2rem; }
.footer__hours b{ color:#fff; font-weight:600; }
.footer__bottom{ padding-block:3rem; display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:space-between; align-items:center; }
.footer__policy{ display:flex; flex-wrap:wrap; gap:2rem; font-size:var(--smTxt); }
.footer__policy a strong{ color:#fff; }
.footer__copy{ font-size:1.3rem; color:rgba(255,255,255,.55); }

/* ---------- quicknav ---------- */
.quicknav{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:grid; grid-template-columns:repeat(3,1fr);
  background:#fff; border-top:1px solid var(--color-line-200); box-shadow:0 -2px 12px rgba(35,31,32,.08); }
.quicknav a{ display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:1rem .4rem; font-size:1.2rem; font-weight:600; color:var(--color-ink-700); }
.quicknav a .ico{ width:2.2rem; height:2.2rem; }
.quicknav a.accent{ color:var(--color-accent-700); }
@media (min-width:1025px){ .quicknav{ display:none; } }
body{ padding-bottom:6.4rem; }
@media (min-width:1025px){ body{ padding-bottom:0; } }

/* ---------- 메인 팝업 (main-popup-wrap) ---------- */
.main-popup-wrap{ position:fixed; inset:0; z-index:100000; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:rgba(0,20,40,.55); opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; padding:2rem; }
.main-popup-wrap.is-open{ opacity:1; visibility:visible; }
.main-popup{ display:flex; flex-direction:column; align-items:center; width:100%; max-width:44rem; }
.popup-top-ctrl{ display:flex; align-items:center; justify-content:space-between; gap:1.6rem; width:100%; padding:0 .4rem 1.4rem; }
.popup-progress{ display:flex; gap:.6rem; flex:1; align-items:center; min-width:0; }
.popup-progress-seg{ flex:1; height:3px; background:rgba(255,255,255,.3); border-radius:2px; overflow:hidden; position:relative; }
.popup-progress-seg .fill{ position:absolute; left:0; top:0; height:100%; width:100%; background:#fff; border-radius:2px;
  transform:scaleX(0); transform-origin:left center; transition:transform .12s linear; will-change:transform; }
.popup-top-right{ display:flex; align-items:center; gap:.4rem; flex-shrink:0; }
.popup-toggle,.popup-nav-btn{ display:inline-flex; align-items:center; justify-content:center; color:#fff; opacity:.85; transition:opacity .2s; }
.popup-toggle{ width:4rem; height:4rem; } .popup-nav-btn{ width:4.4rem; height:4.4rem; }
.popup-toggle:hover,.popup-nav-btn:hover{ opacity:1; }
.popup-toggle svg{ width:2.6rem; height:2.6rem; fill:currentColor; }
.popup-nav-btn svg{ width:2.8rem; height:2.8rem; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.popup-toggle .ico-pause,.popup-toggle .ico-play{ display:none; align-items:center; justify-content:center; }
.popup-toggle[data-state="playing"] .ico-pause{ display:inline-flex; }
.popup-toggle[data-state="paused"] .ico-play{ display:inline-flex; }
.popup-slider-area{ width:100%; }
.popup-swiper{ width:100%; border-radius:1.6rem; overflow:hidden; box-shadow:0 1.6rem 4rem rgba(0,0,0,.35); background:#fff; }
.popup-swiper .swiper-slide{ display:block; }
.popup-swiper .swiper-slide img{ width:100%; height:auto; display:block; }
.popup-bottom-ctrl{ display:flex; align-items:center; justify-content:space-between; width:100%; padding:1.6rem .4rem 0; }
.popup-bottom-ctrl button{ display:flex; align-items:center; gap:.8rem; color:#fff; font-size:1.5rem; font-weight:500; opacity:.88; transition:opacity .2s; }
.popup-bottom-ctrl button:hover{ opacity:1; }
.popup-bottom-ctrl button svg{ width:2rem; height:2rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
body.popup-open{ overflow:hidden; }
@media (max-width:480px){ .main-popup{ max-width:34rem; } }

/* ---------- 진료과/의료진 모달 (dept-picker) ---------- */
.dept-picker-backdrop{ position:fixed; inset:0; background:rgba(0,30,55,.42); backdrop-filter:saturate(160%) blur(6px); -webkit-backdrop-filter:saturate(160%) blur(6px);
  z-index:10003; opacity:0; pointer-events:none; transition:opacity .35s ease; cursor:pointer; }
.dept-picker-backdrop.is-active{ opacity:1; pointer-events:auto; }
.dept-picker{ position:fixed; top:50%; left:50%; transform:translate(-50%,-50%) scale(.97);
  width:min(106rem, calc(100vw - 4rem)); max-height:90vh; overflow-y:auto;
  background:#fff; border-radius:2.4rem; padding:3.4rem; border:1px solid rgba(0,62,107,.1);
  box-shadow:0 .4rem 1.2rem rgba(0,0,0,.06), 0 1.6rem 5rem rgba(0,40,72,.18);
  z-index:10004; opacity:0; pointer-events:none; transition:opacity .35s ease, transform .35s ease; }
.dept-picker.is-open{ opacity:1; pointer-events:auto; transform:translate(-50%,-50%) scale(1); }
.dept-picker__eyebrow{ font-family:var(--font-en); font-weight:700; letter-spacing:.04em; color:var(--brand); font-size:1.4rem; text-transform:uppercase; }
.dept-picker__title{ margin-top:.4rem; font-size:2.4rem; font-weight:800; color:var(--color-ink-900); }
.dept-picker-close{ position:absolute; top:2rem; right:2rem; width:4rem; height:4rem; border-radius:50%; background:var(--color-ink-900);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .2s, background .2s; }
.dept-picker-close:hover{ transform:scale(1.08); background:var(--brand); }
.dept-picker-close svg{ width:1.4rem; height:1.4rem; }
.dept-picker-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; margin-top:2.8rem; }
@media (min-width:560px){ .dept-picker-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px){ .dept-picker-grid{ grid-template-columns:repeat(5,1fr); gap:1.6rem; } }
.dept-picker-card{ display:flex; flex-direction:column; justify-content:space-between; gap:2rem; padding:1.8rem; aspect-ratio:1;
  border-radius:2rem; background:#fff; border:1px solid var(--color-line-200); box-shadow:0 .2rem 1rem rgba(0,0,0,.05);
  color:var(--color-ink-900); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.dept-picker-card:hover{ transform:translateY(-.4rem); box-shadow:0 1rem 2.8rem rgba(0,40,72,.16); border-color:var(--point); color:inherit; }
.dept-picker-card .dept-name{ font-size:1.8rem; font-weight:700; letter-spacing:-.02em; line-height:1.3; text-align:left; transition:color .25s ease; }
.dept-picker-card:hover .dept-name{ color:var(--color-accent-700); }
.dept-picker-card .dept-ico{ display:flex; justify-content:flex-end; color:var(--brand); transition:color .25s ease; }
.dept-picker-card .dept-ico svg{ width:5.4rem; height:5.4rem; }
.dept-picker-card.dept-ico-stroke svg{ stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.dept-picker-card.dept-ico-fill svg{ fill:currentColor; stroke:none; }
.dept-picker-card:hover .dept-ico{ color:var(--point); }
body.dept-open{ overflow:hidden; }

/* ---------- TOP 버튼 (맨 위로) ---------- */
.to-top{ position:fixed; right:2rem; bottom:8.4rem; z-index:95; display:flex; align-items:center; justify-content:center;
  width:5.2rem; height:5.2rem; border-radius:50%; color:#fff;
  background:linear-gradient(135deg,var(--brand-bright),var(--brand)); box-shadow:0 .6rem 1.8rem rgba(0,62,107,.35);
  opacity:0; visibility:hidden; transform:translateY(1.2rem);
  transition:opacity .3s, transform .3s, box-shadow .3s, background .3s; }
.to-top.is-show{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:linear-gradient(135deg,var(--brand),var(--brand-deep)); transform:translateY(-.5rem); box-shadow:0 1rem 2.6rem rgba(0,62,107,.5); }
.to-top:active{ transform:translateY(-.1rem); }
.to-top svg{ width:2.4rem; height:2.4rem; }
@media (min-width:1025px){ .to-top{ right:3rem; bottom:3rem; width:5.6rem; height:5.6rem; } }

/* ---------- MVP note ---------- */
.mvp-note{ position:fixed; top:0; left:0; width:100%; height:var(--note-h); z-index:103;
  display:flex; align-items:center; justify-content:center; background:var(--color-accent-50); border-bottom:1px solid var(--color-accent-100); color:var(--color-accent-700); }
.mvp-note__inner{ padding:0 var(--inPd); font-size:1.2rem; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.badge-confirm{ display:inline-block; font-size:1.1rem; color:var(--color-warning); background:#FFF7E6; border:1px solid #F3D58A; border-radius:.5rem; padding:.1rem .8rem; vertical-align:middle; }

/* ===== Sub page ===== */
.subhero{ position:relative; min-height:38rem; display:grid; place-items:center; text-align:center; color:#fff; overflow:hidden; padding-top:calc(var(--note-h) + var(--hd_h)); }
.subhero__bg{ position:absolute; inset:0; } .subhero__bg img{ width:100%; height:100%; object-fit:cover; }
.subhero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,62,107,.55),rgba(0,62,107,.68)); }
.subhero__inner{ position:relative; z-index:2; padding:4rem var(--inPd); }
.subhero__en{ font-family:var(--font-en); font-size:1.6rem; letter-spacing:.15em; text-transform:uppercase; opacity:.8; }
.subhero__title{ font-size:var(--tit); font-weight:800; margin-top:1rem; }
.subhero__desc{ margin-top:1.5rem; color:rgba(255,255,255,.85); font-size:var(--bigTxt); }
.breadcrumb{ background:#fff; border-bottom:1px solid var(--color-line-200); }
.breadcrumb__list{ display:flex; gap:1rem; align-items:center; padding-block:1.6rem; font-size:var(--smTxt); color:var(--color-ink-500); max-width:calc(var(--container) + var(--inPd)*2); margin-inline:auto; padding-inline:var(--inPd); }
.breadcrumb__current{ color:var(--brand); font-weight:600; }

.tabs{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-bottom:7rem; }
.tab{ border:1px solid var(--color-line-300); background:#fff; color:var(--color-ink-700); border-radius:var(--radius-full); padding:1.3rem 3rem; font-weight:600; font-size:var(--smTxt); }
.tab.is-active{ background:var(--brand); border-color:var(--brand); color:#fff; }
.tabpanel{ display:none; } .tabpanel.is-active{ display:block; animation:fade .35s ease; }
@keyframes fade{ from{ opacity:0; transform:translateY(1rem); } to{ opacity:1; transform:none; } }

.dept__lead{ display:grid; gap:4rem; margin-bottom:7rem; }
@media (min-width:1025px){ .dept__lead{ grid-template-columns:1fr 1fr; gap:8rem; align-items:center; } }
.dept__title{ font-size:var(--tit); font-weight:800; line-height:1.3; margin-bottom:2.5rem; }
.dept__title em{ color:var(--brand); font-style:normal; }
.dept__text{ color:var(--color-ink-700); font-size:var(--txt); }
.dept__photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.dept__photo img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.infogrid{ display:grid; gap:3rem; margin-bottom:8rem; }
@media (min-width:768px){ .infogrid{ grid-template-columns:repeat(3,1fr); } }
.infobox{ background:var(--color-bg-50); border:1px solid var(--color-line-200); border-radius:var(--radius-lg); padding:3.5rem; }
.infobox__title{ font-size:var(--main_ti1); font-weight:700; color:var(--brand); margin-bottom:2rem; padding-bottom:1.5rem; border-bottom:2px solid var(--brand-tint); }
.infobox ul li{ position:relative; padding-left:1.8rem; margin-bottom:1rem; font-size:var(--smTxt); color:var(--color-ink-700); }
.infobox ul li::before{ content:""; position:absolute; left:0; top:1rem; width:.6rem; height:.6rem; border-radius:50%; background:var(--point); }

.block-title{ font-size:var(--tit); font-weight:800; margin-bottom:4rem; padding-left:1.5rem; border-left:.5rem solid var(--point); }

.doctors__grid{ display:grid; grid-template-columns:1fr; gap:3rem; }
@media (min-width:600px){ .doctors__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1025px){ .doctors__grid{ grid-template-columns:repeat(3,1fr); } }
.doctor-card{ background:#fff; border:1px solid var(--color-line-200); border-radius:var(--radius-lg); overflow:hidden; }
.doctor-card__photo{ aspect-ratio:3/4; background:var(--color-bg-100); display:grid; place-items:center; }
.doctor-card__placeholder{ color:var(--color-ink-400); font-size:var(--smTxt); text-align:center; }
.doctor-card__body{ padding:3rem; }
.doctor-card__name{ font-size:var(--main_ti1); font-weight:700; }
.doctor-card__name span{ font-size:var(--smTxt); font-weight:500; color:var(--color-ink-500); margin-left:.6rem; }
.doctor-card__spec{ margin-top:1rem; font-size:var(--smTxt); color:var(--brand); font-weight:600; }
.doctor-card__career{ margin-top:1.5rem; font-size:var(--smTxt); color:var(--color-ink-500); }

.about__layout{ display:grid; gap:5rem; }
@media (min-width:1025px){ .about__layout{ grid-template-columns:24rem 1fr; gap:8rem; } }
.sidetab{ display:flex; gap:1rem; overflow-x:auto; }
@media (min-width:1025px){ .sidetab{ flex-direction:column; position:sticky; top:calc(var(--hd_h) + 2rem); } }
.sidetab__btn{ flex:0 0 auto; text-align:left; border:1px solid var(--color-line-200); background:#fff; border-radius:var(--radius-md); padding:1.5rem 2rem; font-weight:600; color:var(--color-ink-700); font-size:var(--smTxt); }
.sidetab__btn.is-active{ background:var(--brand); border-color:var(--brand); color:#fff; }
.greeting{ display:grid; gap:5rem; }
@media (min-width:768px){ .greeting{ grid-template-columns:1fr 1.4fr; gap:6rem; align-items:start; } }
.greeting__photo{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.greeting__photo img{ width:100%; aspect-ratio:7/9; object-fit:cover; }
.greeting__title{ font-size:var(--main_ti1); font-weight:800; line-height:1.4; margin-bottom:3rem; }
.greeting__title em{ color:var(--brand); font-style:normal; }
.greeting__text{ color:var(--color-ink-700); font-size:var(--txt); } .greeting__text p{ margin-bottom:2rem; }
.greeting__sign{ margin-top:3rem; font-weight:700; }
.mv__grid{ display:grid; gap:3rem; } @media (min-width:768px){ .mv__grid{ grid-template-columns:repeat(3,1fr); } }
.mv-card{ border:1px solid var(--color-line-200); border-radius:var(--radius-lg); padding:4rem; text-align:center; }
.mv-card__label{ font-family:var(--font-en); font-weight:800; letter-spacing:.08em; color:var(--point); margin-bottom:2rem; }
.mv-card__text{ font-weight:600; font-size:var(--txt); }
.history__item{ display:grid; grid-template-columns:12rem 1fr; gap:2.5rem; padding:2rem 0; border-bottom:1px solid var(--color-line-200); }
.history__year{ font-family:var(--font-en); font-weight:800; color:var(--brand); font-size:var(--main_ti1); }
.history__desc{ color:var(--color-ink-700); font-size:var(--txt); }
.gallery{ display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
@media (min-width:1025px){ .gallery{ grid-template-columns:repeat(3,1fr); } }
.gallery__item{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3; }
.gallery__item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.gallery__item:hover img{ transform:scale(1.06); }
.gallery__cap{ position:absolute; left:0; right:0; bottom:0; padding:1.5rem; font-size:var(--smTxt); font-weight:600; color:#fff; background:linear-gradient(180deg,transparent,rgba(0,62,107,.78)); }

.cta_sect{ padding-top:var(--contPd); }
.cta_sect .box{ background:linear-gradient(120deg,var(--brand-deep),var(--brand)); border-radius:var(--radius-xl); color:#fff; padding:8rem var(--inPd); text-align:center; }
.cta_sect .tit{ font-size:var(--tit); font-weight:800; margin-bottom:2rem; }
.cta_sect .lead{ color:rgba(255,255,255,.85); margin-bottom:3.5rem; font-size:var(--bigTxt); }
.cta_sect .btns{ display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap; }
