/* 에잇센셜 홈페이지 시안 — 공통 스타일 */
:root{
  color-scheme:light;
  --screen-h:100vh; --hd-h:78px;
  --pine:#16302B; --pine-2:#20403A; --pine-3:#2E574D;
  --cream:#FBF8F1; --cream-2:#F4EFE6; --sand:#F1F1F1; --sage:#C7D0BF;
  --clay:#A9573A; --clay-soft:#BC6B47;
  --ink:#1B2623; --ink-2:#4A5753; --line:#E4E4E4;
  --bg:#FFFFFF; --bg-alt:#FFFFFF;  /* 바탕은 모두 흰색(10/9 한기범) */
  --serif:"Nanum Gothic","나눔고딕","NanumGothic","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --sans:"Nanum Gothic","나눔고딕","NanumGothic","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --en:"Nanum Gothic","나눔고딕","NanumGothic","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --wrap:1200px;
}
body.academy{ --bg:#FFFFFF; --bg-alt:#FFFFFF; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.75;word-break:keep-all;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.4;text-wrap:balance}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.en{font-family:var(--en);font-style:italic;font-weight:500;letter-spacing:.02em}
.todo{display:inline-block;background:#FFF1B8;color:#5A4300;border:1px dashed #C9A100;border-radius:4px;padding:1px 8px;font-size:.82em;font-weight:600;line-height:1.6;font-style:normal;font-family:var(--sans)}
.note{font-size:14px;color:var(--ink-2)}

/* ---------- 시안 안내 띠 ---------- */
.draft-bar{background:#2B2B2B;color:#EEE;font-size:13px;text-align:center;padding:6px 16px}
.draft-bar b{color:#FFD86B}

/* ---------- 사이트 전환 띠 (바시 방식) ---------- */
.switch{background:var(--pine);color:#cfd8d3;font-size:13px}
.switch .wrap{display:flex;gap:0;height:36px;align-items:stretch}
.switch a{display:flex;align-items:center;padding:0 16px;border-right:1px solid rgba(255,255,255,.08)}
.switch a:first-child{border-left:1px solid rgba(255,255,255,.08)}
.switch a.on{background:#FFFFFF;color:var(--pine);font-weight:700}
body.academy .switch a.on{background:#FFFFFF}
.switch .tel{margin-left:auto;border:0}

/* ---------- 헤더 ---------- */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
body.academy .hd{background:rgba(22,48,43,.97);border-bottom-color:rgba(255,255,255,.08);color:#fff}
.hd .wrap{display:flex;align-items:center;height:78px;gap:32px}
.logo{display:flex;align-items:center;gap:12px;line-height:1}
.logo .mk{height:42px;width:auto}
.logo .lw{display:flex;flex-direction:column;gap:7px}
.logo .wm{height:13px;width:auto}
.logo small{font-family:"Belleza",var(--sans);font-size:11px;font-weight:400;letter-spacing:.34em;color:var(--clay-soft)}  /* 로고 글자(옵티마 계열)와 가장 닮은 웹 글꼴 */
.gnb{display:flex;gap:4px;margin-left:auto;list-style:none;padding:0;margin-top:0;margin-bottom:0}
.gnb>li{position:relative}
.gnb>li>a{display:block;padding:26px 11px;font-weight:600;font-size:15.5px;white-space:nowrap}
.gnb>li:hover>a,.gnb>li.on>a{color:var(--clay)}
body.academy .gnb>li:hover>a,body.academy .gnb>li.on>a{color:#E7B795}
.gnb ul{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;min-width:180px;background:#fff;color:var(--ink);list-style:none;margin:0;padding:10px 0;border:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.08)}
.gnb>li:hover ul{display:block}
.gnb ul a{display:block;padding:9px 22px;font-size:15px;white-space:nowrap}
.gnb ul a:hover{background:#F5F5F3;color:var(--clay)}
.hd .cta{background:var(--clay);color:#fff;padding:12px 22px;border-radius:999px;font-weight:700;font-size:15px;white-space:nowrap}
.hd .cta:hover{background:#8f4a31}
.menu-btn{display:none;margin-left:auto;background:none;border:0;color:inherit;padding:10px;min-height:44px;min-width:44px;cursor:pointer}
.menu-btn span{display:block;width:22px;height:2px;background:currentColor;margin:5px auto;border-radius:2px}
.mnav{display:none}

/* ---------- 버튼 ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 28px;border-radius:999px;font-weight:700;font-size:16px;border:1px solid transparent;min-height:48px}
.btn.fill{background:var(--clay);color:#fff}
.btn.fill:hover{background:#8f4a31}
.btn.line{border-color:currentColor}
.btn.dark{background:var(--pine);color:#fff}
.more{display:inline-flex;align-items:center;gap:10px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:15px;letter-spacing:.04em}

/* ---------- 홈: 메인 비주얼 ---------- */
.mv{position:relative;min-height:clamp(560px,calc(100vh - 150px),820px);display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.mv img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mv .wrap{position:relative;z-index:1;padding-bottom:72px;width:100%;text-shadow:var(--tshadow)}
.mv .kicker{font-size:13px;letter-spacing:.12em;color:#fff;margin-bottom:14px;font-weight:700}
.mv h1{font-family:var(--serif);font-size:clamp(26px,3vw,40px);font-weight:800;line-height:1.35}
.mv p{margin-top:16px;font-size:16px;max-width:460px;color:#fff}
.mv .btns{margin-top:28px;display:flex;gap:10px;flex-wrap:wrap;text-shadow:none}

/* 홈: 브랜드 문구 + 바로가기 카드 */
.brand{padding:140px 0 120px}
.brand .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:end}
.brand .big{font-family:var(--en);font-size:clamp(44px,7vw,96px);line-height:.95;color:var(--pine);font-style:italic}
body.academy .brand .big{color:var(--pine)}
.brand h2{font-family:var(--serif);font-size:clamp(24px,3vw,34px);font-weight:500;margin-top:28px}
.quick{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quick a{display:flex;flex-direction:column;justify-content:space-between;min-height:240px;padding:32px;background:var(--pine);color:#fff;position:relative;overflow:hidden}
.quick a:nth-child(2){background:var(--clay)}
.quick a b{font-size:22px;font-family:var(--serif);font-weight:600}
.quick a span{font-size:15px;color:rgba(255,255,255,.82);margin-top:8px;display:block}
.quick a i{font-style:normal;font-size:26px;align-self:flex-end}
.quick a:hover{filter:brightness(1.08)}

/* 홈: Why + 숫자 */
.why{background:var(--pine);color:#fff;padding:120px 0}
.why .head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.why .head .en{font-size:clamp(36px,5vw,64px);color:#E7B795;line-height:1}
.why h2{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2.6vw,30px);margin-top:16px}
.nums{display:grid;grid-template-columns:repeat(4,1fr);margin-top:72px;border-top:1px solid rgba(255,255,255,.18)}
.nums div{padding:36px 24px 0 0}
.nums b{display:block;font-family:var(--serif);font-size:clamp(34px,4vw,52px);font-weight:500;color:#fff}
.nums span{font-size:15px;color:#C4D0CB}
.why .src{margin-top:40px;font-size:13px;color:#9FB0A9}

/* 홈: 갤러리 */
.gallery{padding:120px 0}
.gallery .head{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px;gap:16px;flex-wrap:wrap}
.gallery .head .en{font-size:clamp(34px,4.5vw,58px);color:var(--pine);line-height:1}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:260px 260px;gap:12px}
.gal img{width:100%;height:100%;object-fit:cover}
.gal img:first-child{grid-row:span 2}

/* 홈: SNS 띠 */
.sns{background:var(--bg-alt);padding:56px 0;border-top:1px solid var(--line)}

.sns .wrap{display:flex;align-items:center;gap:24px}
.sns h3{font-size:18px;margin-right:auto}
.sns-row{display:flex;flex-wrap:nowrap;gap:20px}
.sbtn{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:64px}
.sbtn .ic{display:flex;width:56px;height:56px;border-radius:50%;align-items:center;justify-content:center;transition:transform .2s}
.sbtn .ic svg{width:48px;height:48px}
.sbtn em{font-style:normal;font-size:13px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.sbtn:hover .ic{transform:translateY(-2px)}
.sbtn:focus-visible{outline:3px solid var(--clay);outline-offset:4px;border-radius:8px}
.ic-blog,.ic-talk{background:#03C75A}
.ic-insta{background:radial-gradient(circle at 30% 107%,#FDF497 0%,#FDF497 5%,#FD5949 45%,#D6249F 60%,#285AEB 90%)}
.ic-kakao{background:#FEE500}

/* ---------- 하위 페이지 머리 ---------- */
.ph{position:relative;color:#fff;background:var(--pine);overflow:hidden}
.ph img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph{min-height:440px;display:flex;align-items:flex-end}
.ph .wrap{position:relative;padding:120px 24px 56px;width:100%;text-shadow:var(--tshadow)}
.ph .en{font-size:13px;color:#fff;font-weight:700;letter-spacing:.1em}
.ph h1{font-family:var(--serif);font-weight:800;font-size:clamp(24px,2.6vw,34px);margin-top:10px;line-height:1.4}
.ph p{margin-top:12px;max-width:480px;color:#fff;font-size:15px}
.tabs{background:#fff;border-bottom:1px solid var(--line)}
body.academy .tabs{background:#fff}
.tabs .wrap{display:flex;gap:0;overflow-x:auto}
.tabs a{padding:20px 22px;font-weight:600;color:var(--ink-2);border-bottom:3px solid transparent;white-space:nowrap;font-size:16px}
.tabs a.on{color:var(--pine);border-bottom-color:var(--clay)}

/* ---------- 본문 섹션 ---------- */
.sec{padding:120px 0}
.sec.alt{background:var(--bg-alt);border-top:1px solid var(--line)}
.sec.dark{background:var(--pine);color:#fff}
.sec.dark .lbl{color:#E7B795}
.lbl{font-family:var(--en);font-style:italic;color:var(--clay);font-size:20px;display:flex;align-items:center;gap:14px}
.lbl::after{content:"";width:40px;height:1px;background:currentColor}
.sec h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.2vw,40px);margin-top:14px}
.sec .lead{margin-top:22px;font-size:18px;color:var(--ink-2);max-width:760px}
.sec.dark .lead{color:#D2DDD8}
.two{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.two img{width:100%;aspect-ratio:4/5;object-fit:cover}
.two .txt p+p{margin-top:16px}
.hl{display:flex;gap:40px;margin-top:40px;flex-wrap:wrap}
.hl div{border-left:2px solid var(--clay);padding-left:18px}
.hl b{display:block;font-family:var(--serif);font-size:24px;font-weight:600;color:var(--pine)}
.hl span{font-size:14px;color:var(--ink-2)}

/* 가치 3개 */
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.vals div{background:#fff;padding:40px 32px;border-top:3px solid var(--pine)}
.sec.alt .vals div{background:#fff}
.vals .en{font-size:18px;color:var(--clay)}
.vals h3{font-size:22px;margin:8px 0 14px;font-family:var(--serif)}
.vals p{color:var(--ink-2);font-size:16px}

/* 다른 점 4블록 */
.diff{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);margin-top:56px;border:1px solid var(--line)}
.diff div{background:var(--bg);padding:40px}
.sec.alt .diff div{background:var(--bg-alt)}
.diff h3{font-size:20px;font-family:var(--serif)}
.diff ul{margin:16px 0 0;padding-left:18px;color:var(--ink-2);font-size:16px}
.diff li+li{margin-top:6px}

/* 연표 */
.hist{margin-top:56px;border-left:1px solid var(--line);margin-left:8px}
.hist div{position:relative;padding:0 0 40px 40px}
.hist div::before{content:"";position:absolute;left:-6px;top:10px;width:11px;height:11px;border-radius:50%;background:var(--clay)}
.hist b{font-family:var(--serif);font-size:22px;color:var(--pine);display:block}
.hist p{color:var(--ink-2);margin-top:4px}

/* 01~06 번호 블록 (교차) */
.nb{margin-top:72px;display:flex;flex-direction:column;gap:96px}
.nb>div{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.nb>div:nth-child(even) .pic{order:2}
.nb .pic{aspect-ratio:4/3;background:var(--sand);overflow:hidden}
.nb .pic img{width:100%;height:100%;object-fit:cover}
.nb .no{font-family:var(--en);font-size:64px;color:var(--clay);line-height:1;font-style:italic}
.nb h3{font-family:var(--serif);font-size:clamp(22px,2.4vw,30px);font-weight:500;margin-top:14px}
.nb p{margin-top:18px;color:var(--ink-2)}
.ph-box{display:flex;align-items:center;justify-content:center;height:100%;color:#8A8A8A;font-size:14px;text-align:center;padding:16px;background:repeating-linear-gradient(45deg,var(--sand),var(--sand) 12px,#E8E8E8 12px,#E8E8E8 24px)}

/* 단계 흐름 */
.steps{margin-top:64px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:s}
.steps div{background:#fff;padding:32px 26px;position:relative;min-height:240px}
.sec.alt .steps div{background:#fff}
.steps .no{font-family:var(--en);font-size:40px;color:var(--clay);font-style:italic;line-height:1}
.steps h3{font-size:19px;margin:16px 0 10px}
.steps p{font-size:15px;color:var(--ink-2)}

/* 표 */
.tbl{width:100%;border-collapse:collapse;margin-top:48px;background:#fff;font-size:16px}
.tbl th,.tbl td{padding:20px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:var(--pine);color:#fff;font-weight:600;font-size:15px}
.tbl td.num{font-weight:700;white-space:nowrap}
.tbl .tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--clay);color:#fff}
.tbl .tag.wait{background:var(--sage);color:var(--pine)}
.tbl-box{overflow-x:auto}

/* 카드 그리드 (스케치/후기) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.card{background:#fff;display:flex;flex-direction:column}
.card .pic{aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.card .pic img{width:100%;height:100%;object-fit:cover}
.card .body{padding:28px}
.card .cat{font-size:13px;font-weight:700;color:var(--clay);letter-spacing:.06em}
.card h3{font-size:19px;margin:8px 0 10px;font-family:var(--serif)}
.card p{font-size:15px;color:var(--ink-2)}
.card q{display:block;margin-top:14px;font-family:var(--serif);color:var(--pine);font-size:16px}

/* 코스 카드 (리햅 시스템 자리) */
.course{display:grid;grid-template-columns:320px 1fr;gap:0;margin-top:40px;background:#fff;border:1px solid var(--line)}
.course .side{background:var(--pine);color:#fff;padding:40px 32px}
.course .side .en{color:#E7B795;font-size:17px}
.course .side h3{font-family:var(--serif);font-size:26px;font-weight:500;margin-top:8px}
.course .side .meta{margin-top:24px;font-size:15px;color:#CFDAD5;border-top:1px solid rgba(255,255,255,.2);padding-top:18px}
.course .main{padding:40px}
.course dl{display:grid;grid-template-columns:110px 1fr;gap:14px 20px;margin:0}
.course dt{font-weight:700;color:var(--pine);font-size:15px}
.course dd{margin:0;color:var(--ink-2);font-size:16px}
.course ul{margin:0;padding-left:18px}


/* 대표 두 사람 — 같은 틀로 나란히 */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:56px;align-items:start}
.person{display:flex;flex-direction:column;min-width:0}
.person img{width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%}
.person .role{margin-top:28px;color:var(--clay);font-weight:700;font-size:15px;letter-spacing:.06em}
.person h3{font-family:var(--serif);font-size:32px;font-weight:700;margin-top:6px}
.person blockquote{margin:22px 0;padding:22px 26px;background:#fff;border:1px solid var(--line);font-family:var(--serif);font-size:18px;color:var(--pine);line-height:1.7}
.person>p{color:var(--ink-2)}
.person h4{font-size:15px;color:var(--pine);margin-top:26px;letter-spacing:.06em}
.person ul{margin:10px 0 0;padding-left:18px;color:var(--ink-2);font-size:16px}
.person li+li{margin-top:4px}
.person .go{margin-top:24px}
.team.c3{grid-template-columns:repeat(3,1fr)}

/* 강사 */
.lead-t{display:grid;grid-template-columns:420px 1fr;gap:72px;margin-top:56px;align-items:start}
.lead-t img{width:100%;aspect-ratio:2/3;object-fit:cover}
.lead-t .role{color:var(--clay);font-weight:700;font-size:15px;letter-spacing:.06em}
.lead-t h3{font-family:var(--serif);font-size:34px;font-weight:500;margin-top:6px}
.lead-t h3 small{font-size:16px;color:var(--ink-2);margin-left:10px;font-family:var(--sans)}
.lead-t blockquote{margin:28px 0;padding:24px 28px;background:#fff;border:1px solid var(--line);font-family:var(--serif);font-size:19px;color:var(--pine)}
.lead-t h4{font-size:15px;color:var(--pine);margin-top:28px;letter-spacing:.06em}
.lead-t ul{margin:10px 0 0;padding-left:18px;color:var(--ink-2);font-size:16px}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px}
.team .card .pic{aspect-ratio:3/4}
.team .card .body{padding:22px}

/* FAQ */
.faq{margin-top:48px;border-top:2px solid var(--pine)}
.faq details{border-bottom:1px solid var(--line);background:transparent}
.faq summary{list-style:none;cursor:pointer;padding:26px 48px 26px 0;font-weight:600;font-size:18px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q.";font-family:var(--en);font-style:italic;color:var(--clay);font-size:22px;margin-right:12px}
.faq summary::after{content:"+";position:absolute;right:8px;top:22px;font-size:26px;font-weight:300;color:var(--pine)}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 0 28px 38px;color:var(--ink-2)}

/* 핵심 3가지 / 대상 */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.three div{padding:36px 30px;border:1px solid rgba(255,255,255,.2)}
.sec:not(.dark) .three div{border-color:var(--line);background:#fff}
.three .en{font-size:32px;color:#E7B795;line-height:1}
.sec:not(.dark) .three .en{color:var(--clay)}
.three h3{font-size:20px;margin:16px 0 10px;font-family:var(--serif)}
.three p{font-size:15px;opacity:.85}
.check{list-style:none;padding:0;margin:40px 0 0;display:grid;gap:14px}
.check li{background:#fff;padding:20px 24px 20px 56px;position:relative;font-size:17px}
.check li::before{content:"";position:absolute;left:24px;top:28px;width:14px;height:8px;border-left:2px solid var(--clay);border-bottom:2px solid var(--clay);transform:rotate(-45deg)}

/* 지도/위치 */
.loc{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;margin-top:56px}
.map{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--sand);min-width:0}
.map.has-frame{aspect-ratio:auto;height:620px;background:#fff;border:1px solid var(--line)}
.map iframe{display:block;width:100%;height:100%;border:0}
.map-fallback{position:absolute;inset:0;display:flex;align-items:flex-end}
.map-fallback[hidden]{display:none}
.map-fallback img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.map-fallback>div{position:relative;margin:20px;padding:24px 26px;background:rgba(255,255,255,.96);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.map-fallback b{font-family:var(--serif);font-size:19px;color:var(--pine)}
.map-fallback span{color:var(--ink-2);font-size:15px}
.map-fallback small{color:var(--ink-2);font-size:13px}
.info{display:grid;grid-template-columns:96px 1fr;gap:18px 20px;align-content:start}
.info dt{font-weight:700;color:var(--pine)}
.info dd{margin:0;color:var(--ink-2)}

/* 책 */
.book{display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:center;margin-top:48px}
.book img{box-shadow:0 20px 40px rgba(0,0,0,.18)}
.book img.book3d{box-shadow:none;width:100%;max-width:300px}

/* 상담 띠 */
.cta-band{background:var(--clay);color:#fff;padding:88px 0;text-align:center}
.cta-band h2{font-family:var(--serif);font-weight:500;font-size:clamp(24px,3vw,36px)}
.cta-band p{margin-top:14px;color:#F6E2D7}
.cta-band .btns{margin-top:32px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.cta-band .btn.line{color:#fff}
.cta-band .btn.wh{background:#fff;color:var(--clay)}

/* ---------- 푸터 ---------- */
.ft{background:#0F221E;color:#A9B7B2;padding:72px 0 48px;font-size:14px}
.ft .top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.ft .logo .mk{height:48px}.ft .logo .wm{height:14px}
.ft nav{display:flex;gap:48px;flex-wrap:wrap}
.ft nav div{display:flex;flex-direction:column;gap:8px}
.ft nav strong{color:#fff;font-size:15px;margin-bottom:4px}
.ft nav a:hover{color:#fff}
.ft .biz{margin-top:32px;line-height:1.9}
.ft .biz a{text-decoration:underline}
.ft .legal{margin-top:20px;display:flex;gap:20px;flex-wrap:wrap}
.ft .disc{margin-top:20px;font-size:13px;color:#7F918B}

/* ---------- 갈림길 (첫 화면) ---------- */
.gate{display:grid;grid-template-columns:1fr 1fr;height:var(--screen-h);min-height:520px}
.gate a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;overflow:hidden;text-align:center;padding:24px}
.gate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.gate a:hover img{transform:scale(1.05)}
.gate .in{position:relative;z-index:1;text-shadow:var(--tshadow)}
/* 밝은 사진(흰 창·화이트보드) 위에서도 흰 글자가 읽히게 글자 뒤에만 부드러운 그림자. 사진 나머지는 원래 밝기 그대로(10/22) */
.gate .in::before{content:"";position:absolute;inset:-100px -130px;background:radial-gradient(closest-side,rgba(0,0,0,.55),rgba(0,0,0,.36) 45%,rgba(0,0,0,.14) 78%,rgba(0,0,0,0));z-index:-1;pointer-events:none}
.gate .gate-logo{filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))}
.gate .gate-logo{position:static;width:clamp(150px,15vw,220px);height:auto;margin:0 auto;transform:none!important}
.gate .sub{display:block;margin-top:12px;font-size:clamp(15px,1.3vw,18px);font-weight:800;letter-spacing:.06em}
.gate .desc{display:block;margin-top:10px;font-size:13.5px;color:#fff;max-width:300px}
.gate .go{display:inline-block;margin-top:22px;text-shadow:none;background:rgba(0,0,0,.18);padding:12px 28px;border:1px solid rgba(255,255,255,.7);border-radius:999px;font-size:14px;font-weight:600;letter-spacing:.06em}
.gate-foot{position:fixed;left:0;right:0;bottom:0;text-align:center;color:#d8e0dc;font-size:12px;padding:10px;z-index:2;pointer-events:none}



/* ---------- 글꼴 통일(나눔고딕) ---------- */
:root{--tshadow:0 0 2px rgba(0,0,0,.35),0 1px 6px rgba(0,0,0,.45),0 4px 22px rgba(0,0,0,.35)}
.en,.lbl,.brand .big,.nb .no,.steps .no,.faq summary::before{font-style:normal}
.lbl{font-size:13px;font-weight:800;letter-spacing:.12em}
.brand .big{font-weight:800;letter-spacing:-.01em;line-height:1.05;font-size:clamp(38px,5.4vw,76px);white-space:nowrap}
.why .head .en,.gallery .head .en{font-weight:800;letter-spacing:-.01em;font-size:clamp(30px,3.8vw,48px)}
.nb .no,.steps .no{font-weight:800}
.sec h2,.brand h2,.why h2,.cta-band h2,.nb h3,.course .side h3,.lead-t h3,.nums b,.hl b,.hist b{font-weight:800}
.vals h3,.diff h3,.three h3,.card h3,.quick a b,.tm h3,.map-fallback b{font-weight:700}
.person blockquote,.lead-t blockquote,.card q{font-weight:700}

/* '혹시, 이런 적 있으신가요?' 칸 */
.fit-lead{margin-top:36px}
.fit-cta{margin-top:24px}


/* '아픈 곳만 보지 않고' 칸: 사진 바탕(어둡게 덮지 않음) */
.brand.photo{position:relative;overflow:hidden;color:#fff;border:0}
.brand.photo img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.brand.photo .wrap{position:relative;z-index:1}
.brand.photo .big,.brand.photo h2,body.academy .brand.photo .big{color:#fff;text-shadow:var(--tshadow)}


/* 상담 칸: 사진 바탕(밝은 사진이라 진한 글씨) */
.cta-band.photo{position:relative;overflow:hidden;background:#fff;color:var(--ink);text-align:left;padding:120px 0}
.cta-band.photo img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta-band.photo .wrap{position:relative;z-index:1;text-shadow:0 0 10px rgba(255,255,255,.95),0 0 22px rgba(255,255,255,.8)}
.cta-band.photo .btns{text-shadow:none}
.cta-band.photo h2{color:#000;max-width:560px}
.cta-band.photo p{color:#000;max-width:480px;font-weight:700}
.cta-band.photo .btns{justify-content:flex-start}
.cta-band.photo .btn.line{color:var(--pine);border-color:var(--pine);background:rgba(255,255,255,.6)}
/* 머리 사진 없는 페이지(이용약관 등)는 머리를 낮게 */
.ph:not(:has(img.bg)){min-height:0!important;height:auto!important}
.ph:not(:has(img.bg)) .wrap{padding:72px 24px 40px;text-shadow:none}
.legal-doc{max-width:820px;margin-top:28px}
.legal-doc h3{font-size:18px;margin-top:32px;color:var(--pine)}
.legal-doc p,.legal-doc li{font-size:15px;color:var(--ink-2);margin-top:10px}
.legal-doc ul{padding-left:20px;margin:10px 0 0}

/* 흰 바탕에서 카드 구분 */
.card,.steps div,.check li,.vals div,.three div{border:1px solid var(--line)}
.vals div{border-top:3px solid var(--pine)}
.sec.dark .three div{border-color:rgba(255,255,255,.2)}

/* ---------- 갤러리 ---------- */
.gfilter{display:flex;gap:8px;flex-wrap:wrap;margin-top:40px}
.gfilter button{font:600 15px var(--sans);padding:10px 20px;min-height:44px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer}
.gfilter button[aria-pressed="true"]{background:var(--pine);border-color:var(--pine);color:#fff}
.gfilter button:focus-visible,.gitem:focus-visible,.lb button:focus-visible{outline:3px solid var(--clay);outline-offset:2px}
.ggrid{columns:3 300px;column-gap:14px;margin-top:32px}
.gitem{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:var(--sand);cursor:zoom-in;break-inside:avoid;position:relative;overflow:hidden}
.gitem img{width:100%;height:auto;transition:transform .6s ease}
.gitem:hover img{transform:scale(1.03)}
.gitem span{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 12px;color:#fff;font-size:14px;text-align:left;background:linear-gradient(transparent,rgba(14,32,27,.7));opacity:0;transition:opacity .3s}
.gitem:hover span,.gitem:focus-visible span{opacity:1}
.gitem[hidden]{display:none}
.lb{position:fixed;inset:0;z-index:400;background:rgba(10,20,17,.94);display:flex;align-items:center;justify-content:center;padding:56px 72px}
.lb[hidden]{display:none}
.lb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.lb p{position:absolute;left:0;right:0;bottom:16px;text-align:center;color:#D2DDD8;font-size:14px}
.lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;min-width:48px;min-height:48px;font:600 15px var(--sans);cursor:pointer}
.lb button:hover{background:rgba(255,255,255,.24)}
.lb .lb-x{top:16px;right:16px;padding:0 18px}
.lb .lb-prev{left:12px;top:50%;transform:translateY(-50%);font-size:22px}
.lb .lb-next{right:12px;top:50%;transform:translateY(-50%);font-size:22px}
.feature{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-top:48px}
.feature img{width:100%;height:100%;object-fit:cover;min-height:0}
.feature .side{display:grid;grid-template-rows:1fr 1fr;gap:14px;min-height:0}
.feature>img{aspect-ratio:4/3}
@media (max-width:640px){
  .lb{padding:56px 12px}
  .lb .lb-prev,.lb .lb-next{top:auto;bottom:44px;transform:none}
  .feature{grid-template-columns:1fr}
  .feature .side{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .feature .side img{aspect-ratio:1/1}
}


/* 후기 카드 */
.rv-grid{columns:3 300px;column-gap:20px;margin-top:40px}
.rv{break-inside:avoid;margin:0 0 20px;background:#fff;padding:28px 28px 24px;border:1px solid var(--line)}
.rv-topic{font-size:13px;font-weight:700;color:var(--clay);letter-spacing:.06em}
.rv blockquote{margin:12px 0 0;font-size:15.5px;line-height:1.85;color:var(--ink)}
.rv figcaption{margin-top:16px;font-size:13px;color:var(--ink-2)}
.rv-note{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.6;color:var(--ink-2)}  /* 리뷰 아래 안내(지금 달라진 점) */
.rv-ph{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:-8px -8px 18px}  /* 사진 리뷰의 사진 */
.rv-ph img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--cream-2)}
.rv-ph:has(img:only-child){grid-template-columns:1fr}
.rv-ph:has(img:nth-child(2):last-child){grid-template-columns:1fr 1fr}
.rv-ph img:only-child{aspect-ratio:4/3}
.tm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
.tm{margin:0;background:#fff;padding:36px;border-top:3px solid var(--clay)}
.tm h3{font-family:var(--serif);font-size:21px;color:var(--pine)}
.tm blockquote{margin:16px 0 0;color:var(--ink-2);font-size:16px}
.tm figcaption{margin-top:18px;font-size:14px;font-weight:700;color:var(--ink)}
.capgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px;align-items:start}
.capgrid .gitem{margin:0;border:1px solid var(--line);background:#fff}
.capgrid .gitem img{max-height:560px;object-fit:cover;object-position:top}
/* 사진 띠 */
.pband{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.pband figure{margin:0;min-width:0}
.pband img{width:100%;aspect-ratio:4/3;object-fit:cover}
.pband figcaption{margin-top:10px;font-size:14px;color:var(--ink-2)}

/* ---------- 반응형 ---------- */
@media (max-width:1240px){
  .gnb,.hd .cta{display:none}
  .menu-btn{display:block}
  /* 바시식 모바일 메뉴: 흰 화면, 닫기·로고, 사이트 탭, 누르면 펼쳐지는 대메뉴 */
  .mnav.open{display:flex;flex-direction:column;position:fixed;inset:0;background:#fff;color:var(--ink);z-index:100;overflow-y:auto}
  .mtop{display:flex;align-items:center;gap:10px;height:64px;padding:0 16px;border-bottom:1px solid var(--line);flex:none}
  .mtop .x{position:relative;width:44px;height:44px;background:none;border:0;cursor:pointer;margin-left:-10px}
  .mtop .x span{position:absolute;left:11px;top:21px;width:22px;height:2px;background:var(--ink);border-radius:2px;transform:rotate(45deg)}
  .mtop .x span+span{transform:rotate(-45deg)}
  .mtabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);flex:none}
  .mtabs a{display:block;text-align:center;padding:14px 6px 12px;font-size:14px;font-weight:700;color:var(--ink-2);border-bottom:2px solid transparent}
  .mtabs a.on{color:var(--clay);border-bottom-color:var(--clay)}
  .mlist{padding:6px 0}
  .mlist summary,.mlist .m1{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 24px;font-size:17px;font-weight:700;color:var(--ink);list-style:none;cursor:pointer}
  .mlist summary::-webkit-details-marker{display:none}
  .mlist summary::after{content:"+";font-size:26px;font-weight:300;color:var(--ink-2);transition:transform .2s}
  .mlist details[open] summary::after{transform:rotate(45deg)}
  .mlist details[open] summary{color:var(--clay)}
  .msub{padding:0 24px 10px;background:#FAFAFA;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .msub a{display:block;padding:13px 0 13px 6px;font-size:15px;color:var(--ink-2)}
  .msub a+a{border-top:1px solid #EFEFEF}
  .mfoot{margin-top:auto;padding:18px 24px 24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-2);flex:none}
  .mfoot .mcta{font-weight:700;color:var(--clay)}
  .mfoot .sns-row{margin-top:10px;width:100%;justify-content:space-between;gap:6px}
  .mfoot .sbtn{flex:1;min-width:0}
  .mfoot .sbtn .ic{width:44px;height:44px}
  .mfoot .sbtn .ic svg{width:38px;height:38px}
  .mfoot .sbtn em{font-size:11.5px}
  .mlegal{display:flex;gap:16px;margin-top:6px;font-size:12.5px}
  .mlegal a{color:var(--ink-2);text-decoration:underline}
}
@media (max-width:900px){
  body{font-size:16px}
  .brand .wrap,.two,.nb>div,.lead-t,.loc,.book,.course{grid-template-columns:1fr}
  .nb>div:nth-child(even) .pic{order:0}
  .nums{grid-template-columns:1fr 1fr}
  .vals,.three,.cards{grid-template-columns:1fr}
  .diff{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .team,.team.c3{grid-template-columns:1fr 1fr}
  .duo{grid-template-columns:1fr;gap:72px}
  .tm-grid{grid-template-columns:1fr}
  .capgrid{grid-template-columns:1fr 1fr}
  .map.has-frame{height:540px}
  .gal{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .gal img{aspect-ratio:4/3}
  .gal img:first-child{grid-column:span 2;grid-row:auto}
  .sec,.brand,.why,.gallery{padding:80px 0}
  .lead-t img{max-width:360px}
  .book img{max-width:220px}
}
/* 태블릿 세로: 첫 화면 칸이 아주 길어 일반 칸이 회원 몸통만 잡힌다 → 얼굴 쪽으로(10/22) */
@media (min-width:641px) and (max-width:900px){.gate a:first-child img:not(.gate-logo){object-position:85% 50%!important}}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .gate{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
  .gate .in::before{inset:-34px -46px}  /* 칸이 작아 글자 뒤 그림자를 좁혀야 사진이 회색으로 덮이지 않는다 */
  /* 바시처럼: 머리말은 로고·상담 버튼·메뉴 아이콘 */
  .hd .wrap{gap:8px}
  .hd .cta{display:none}
  .menu-btn{margin-left:auto}
  .sec h2{font-size:23px;line-height:1.4}
  .sec .lead{font-size:15px;margin-top:14px}
  /* 카드·후기·사진 묶음은 옆으로 넘겨 보기(한 화면에 제목 + 카드 한 줄) */
  .cards,.team,.team.c3,.vals,.three,.steps,.pband,.tm-grid,.capgrid,.duo,.rv-grid,.gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-16px;margin-right:-16px;padding:0 16px 10px;scrollbar-width:none;columns:auto}
  .cards::-webkit-scrollbar,.team::-webkit-scrollbar,.vals::-webkit-scrollbar,.three::-webkit-scrollbar,.steps::-webkit-scrollbar,.pband::-webkit-scrollbar,.tm-grid::-webkit-scrollbar,.capgrid::-webkit-scrollbar,.duo::-webkit-scrollbar,.rv-grid::-webkit-scrollbar,.gal::-webkit-scrollbar{display:none}
  .cards>*,.team>*,.vals>*,.three>*,.steps>*,.pband>*,.tm-grid>*,.capgrid>*,.rv-grid>*,.gal>*{flex:0 0 82%;min-width:0;scroll-snap-align:start;margin:0}
  .duo>*{flex:0 0 88%;min-width:0;scroll-snap-align:start}
  .cards .card .pic{aspect-ratio:4/5}
  .gal{grid-template-columns:none;grid-template-rows:none}
  .gal img,.gal img:first-child{aspect-ratio:4/5;height:auto;grid-column:auto;grid-row:auto}
  .rv{padding:22px}
  .rv blockquote{font-size:14.5px}
  /* '혹시, 이런 적 있으신가요?'는 폰 한 화면 안에 */
  .sec.fit{padding:28px 0}
  .sec.fit h2{font-size:21px;margin-top:8px}
  .sec.fit .check{gap:8px;margin-top:18px}
  .sec.fit .check li{padding:11px 14px 11px 42px;font-size:14px;line-height:1.55}
  .sec.fit .check li::before{left:17px;top:17px;width:12px;height:7px}
  .sec.fit .fit-lead{margin-top:16px;font-size:14px;line-height:1.65}
  .sec.fit .fit-cta{margin-top:16px}
  .sec.fit .btn{padding:11px 18px;min-height:44px;font-size:14px}
  /* 모바일: 섹션 하나가 휴대폰 한 화면 */
  .draft-bar{font-size:11px;padding:4px 12px}
  .hd .wrap{height:64px}
  .logo .mk{height:34px}.logo .wm{height:11px}.logo .lw{gap:5px}
  .mv{height:calc(var(--screen-h) - 128px);min-height:480px}
  .mv .wrap{padding-bottom:40px}
  .mv h1{font-size:24px}
  .mv p{font-size:14.5px;max-width:300px}
  .mv .btn{padding:11px 20px;min-height:44px;font-size:14.5px}
  .ph{height:calc(var(--screen-h) - 186px);min-height:420px}
  .ph .wrap{padding:0 16px 32px}
  .ph h1{font-size:22px}
  .ph p{font-size:14px;max-width:290px}
  .sec,.brand,.why,.gallery,.cta-band{min-height:calc(var(--screen-h) - 64px);display:flex;align-items:center}
  .sec>.wrap,.brand>.wrap,.why>.wrap,.gallery>.wrap,.cta-band>.wrap{width:100%}
  .sec,.brand,.why,.gallery{padding:56px 0}
  .nb{gap:0;margin:32px -16px 0}
  .nb>div{display:flex;flex-direction:column;align-items:stretch;min-height:calc(var(--screen-h) - 64px);gap:0}
  .nb .pic{position:relative;flex:1 1 auto;aspect-ratio:auto;min-height:0;order:0}
  .nb .pic img{position:absolute;inset:0}
  .nb>div>div:last-child{padding:20px 20px 30px}
  .nb .no{font-size:28px}
  .nb h3{font-size:20px;margin-top:8px}
  .nb p{font-size:14.5px;margin-top:8px}
  .gate{height:var(--screen-h)}

  .quick{grid-template-columns:1fr}
  .quick a{min-height:180px}
  .steps,.team,.team.c3{grid-template-columns:1fr}
  .pband{grid-template-columns:1fr}
  .steps div{min-height:0}
  .switch .tel{display:none}
  .switch a{padding:0 12px}
  .course dl{grid-template-columns:1fr;gap:4px}
  .course dd{margin-bottom:12px}
  .info{grid-template-columns:1fr;gap:4px}
  .info dd{margin-bottom:12px}
  .diff div,.course .main,.course .side{padding:28px 22px}
  .tbl th,.tbl td{padding:14px 12px;font-size:15px}
}

@supports (height:100svh){:root{--screen-h:100svh}}

/* ---------- 모바일: 섹션 하나의 내용이 한 화면 안에 담기도록(10/9) ---------- */
@media (max-width:640px){
  .ft nav{display:none}
  .ft{padding:40px 0 32px}
  .ft .top{padding-bottom:20px}
  .sec{padding:40px 0}
  .sec h2{font-size:20px}
  .sec .lead{font-size:14px;line-height:1.65;margin-top:10px}
  .lbl{font-size:11.5px}
  .brand{padding:36px 0}
  .brand .wrap{gap:24px}
  .brand .big{font-size:38px}
  .brand h2{font-size:18px;margin-top:14px;line-height:1.5}
  .quick{grid-template-columns:1fr 1fr;gap:10px}
  .quick a{min-height:0;height:128px;padding:18px}
  .quick a b{font-size:16px}
  .quick a span{font-size:12.5px;line-height:1.5}
  .quick a i{font-size:20px}
  .two{gap:20px;margin-top:24px!important}
  .two img{aspect-ratio:16/10;max-width:100%!important}
  .two .txt p{font-size:14px;line-height:1.7}
  .two .txt p+p{margin-top:10px}
  .hl{gap:18px;margin-top:18px}
  .hl b{font-size:18px}
  .hl span{font-size:12px}
  .two:not(:has(> img)){display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-left:-16px;margin-right:-16px;padding:0 16px 10px;scrollbar-width:none}
  .two:not(:has(> img))>*{flex:0 0 86%;scroll-snap-align:start;min-width:0;padding:24px 20px!important}
  .two:not(:has(> img)) h3{font-size:18px!important}
  .two:not(:has(> img)) p{font-size:14px}
  .two:not(:has(> img)) .check{gap:8px;margin-top:14px}
  .two:not(:has(> img)) .check li{font-size:14px;padding:11px 12px 11px 38px}
  .two:not(:has(> img)) .check li::before{left:14px;top:17px}
  .diff{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;background:none;border:0;margin:24px -16px 0;padding:0 16px 10px;scrollbar-width:none}
  .diff>div{flex:0 0 82%;scroll-snap-align:start;border:1px solid var(--line);padding:24px}
  .diff h3{font-size:17px}
  .diff ul{font-size:14px}
  .cards .card .pic,.team .card .pic{aspect-ratio:4/3}
  .card .body{padding:18px}
  .card h3{font-size:17px}
  .card p{font-size:13.5px}
  .card q{font-size:14px}
  .vals div,.three div{padding:22px 20px}
  .vals h3,.three h3{font-size:18px}
  .vals p,.three p{font-size:14px}
  .steps div{padding:22px 20px}
  .cards,.team,.vals,.three,.steps,.pband,.tm-grid,.capgrid,.duo,.rv-grid,.gal{margin-top:24px}
  .check{margin-top:20px}
  .hist{margin-top:24px}
  .hist div{padding:0 0 16px 26px}
  .hist b{font-size:17px}
  .hist p{font-size:13.5px}
  .faq{margin-top:20px}
  .faq summary{padding:14px 34px 14px 0;font-size:15px}
  .faq summary::before{font-size:15px;margin-right:8px}
  .faq summary::after{top:10px;font-size:22px}
  .faq .a{padding:0 0 16px 24px;font-size:14px}
  .tbl{margin-top:18px;font-size:13px}
  .tbl th,.tbl td{padding:10px 8px}
  .courses{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:24px -16px 0;padding:0 16px 10px;scrollbar-width:none}
  .courses>.course{flex:0 0 88%;scroll-snap-align:start;margin-top:0}
  .course{margin-top:20px}
  .course .side{padding:20px}
  .course .side h3{font-size:20px}
  .course .side .meta{margin-top:10px;padding-top:10px;font-size:13px}
  .course .main{padding:18px}
  .course dt{font-size:13px}
  .course dd{font-size:13.5px;margin-bottom:8px}
  .course ul{padding-left:16px}
  .person img{aspect-ratio:4/3}
  .person .role{margin-top:14px;font-size:13px}
  .person h3{font-size:22px}
  .person blockquote{margin:12px 0;padding:14px 16px;font-size:14.5px}
  .person>p{font-size:13.5px;line-height:1.65}
  .person h4{margin-top:12px;font-size:13px}
  .person ul{font-size:12.5px;margin-top:4px}
  .person li+li{margin-top:2px}
  .rv{padding:20px}
  .rv-grid{align-items:flex-start}  /* 옆으로 넘기는 리뷰 카드가 가장 긴 카드 높이로 늘어나지 않게 */
  .rv blockquote{font-size:14px;line-height:1.75;display:-webkit-box;-webkit-line-clamp:11;-webkit-box-orient:vertical;overflow:hidden}
  .tm{padding:24px 20px}
  .tm h3{font-size:17px}
  .tm blockquote{font-size:14px}
  .loc{gap:16px;margin-top:20px}
  .map.has-frame{height:300px}
  .info{font-size:14px}
  .info dd{margin-bottom:8px}
  .book{grid-template-columns:110px 1fr!important;gap:16px;margin-top:20px;align-items:start}
  .book img{max-width:110px}
  .book h3{font-size:16px!important}
  .book p{font-size:13.5px!important;margin-top:8px!important}
  .book blockquote{font-size:13px!important;margin-top:10px!important;padding:10px 12px!important}
  .feature{display:none}
  .gfilter{margin-top:16px;gap:6px}
  .gfilter button{padding:8px 14px;font-size:13.5px;min-height:40px}
  .ggrid{columns:auto;display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:46%;gap:8px;overflow-x:auto;margin:16px -16px 0;padding:0 16px 10px;scrollbar-width:none}
  .ggrid .gitem{margin:0}
  .ggrid .gitem img{aspect-ratio:1/1;object-fit:cover;height:auto}
  .ggrid .gitem[hidden]{display:none}
  .capgrid .gitem img{max-height:420px}
  .why{padding:48px 0}
  .nums{margin-top:32px}
  .nums div{padding:22px 16px 0 0}
  .nums b{font-size:30px}
  .nums span{font-size:12.5px}
  .gallery .head{margin-bottom:20px}
  .cta-band{padding:56px 0}
  .cta-band h2{font-size:20px}
}

@media (max-width:640px){
  /* 남은 긴 섹션 다듬기 */
  .info{grid-template-columns:64px 1fr;gap:6px 12px;font-size:13.5px}
  .info dd{margin-bottom:0}
  .map.has-frame{height:260px}
  .cards .card .pic{aspect-ratio:16/10}
  .note{font-size:12.5px}
  .m-noimg>img{display:none}
  .person{display:grid;grid-template-columns:92px 1fr;column-gap:14px;align-content:start}
  .person img{grid-column:1;grid-row:1/3;width:92px;aspect-ratio:4/5;border-radius:4px}
  .person .role{grid-column:2;grid-row:1;align-self:end;margin-top:0}
  .person h3{grid-column:2;grid-row:2;align-self:start}
  .person>*:not(img):not(.role):not(h3){grid-column:1/-1}
  .course dl{grid-template-columns:76px 1fr;gap:6px 10px}
  .course dd{margin-bottom:0}
  .course .side{padding:16px 18px}
  .course .side .meta{margin-top:8px;padding-top:8px}
}

@media (max-width:640px){
  .card .body{padding:14px 16px}
  .card h3{margin:4px 0 6px;line-height:1.4}
  .card p{line-height:1.6}
  .card q{margin-top:8px;font-size:13.5px}
  .course .side h3{font-size:18px;margin-top:4px}
  .course .side .meta{font-size:12.5px;line-height:1.55}
  .course .main{padding:14px 16px}
  .course dt{font-size:12.5px;line-height:1.55}
  .course dd{font-size:13px;line-height:1.55}
  .course ul li+li{margin-top:2px}
}

@media (max-width:640px){
  .sns{padding:36px 0}
  .sns .wrap{flex-direction:column;align-items:flex-start;gap:18px}
  .sns-row{width:100%;justify-content:space-between;gap:8px}
  .sbtn{min-width:0;flex:1}
  .sbtn .ic{width:52px;height:52px}
  .sbtn em{font-size:12px}
}

@media (max-width:640px){
  .cta-band.photo{align-items:flex-start;padding:48px 0}
  .ph:not(:has(img.bg)) .wrap{padding:40px 16px 28px}
  .legal-doc h3{font-size:16px;margin-top:24px}
  .legal-doc p,.legal-doc li{font-size:14px}
}

/* 이용권 가격표: 휴대폰에서는 표 대신 '이름·가격 / 기간 / 안내' 목록 */
@media (max-width:640px){
  .price-tbl{background:none;border-top:2px solid var(--pine)}
  .price-tbl thead{display:none}
  .price-tbl,.price-tbl tbody{display:block}
  .price-tbl tr{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:2px;padding:14px 2px;border-bottom:1px solid var(--line);background:#fff}
  .price-tbl td{display:block;padding:0;border:0;font-size:13px}
  .price-tbl td:nth-child(1){grid-column:1;grid-row:1;font-size:15.5px;font-weight:700;color:var(--ink)}
  .price-tbl td:nth-child(3){grid-column:2;grid-row:1 / span 2;align-self:center;text-align:right;font-size:17px;font-weight:800;color:var(--pine)}
  .price-tbl td:nth-child(2){grid-column:1;grid-row:2;color:var(--ink-2)}
  .price-tbl td:nth-child(2)::before{content:"기간 "}
  .price-tbl td:nth-child(4){grid-column:1 / -1;grid-row:3;margin-top:4px;color:var(--ink-2);font-size:12.5px;line-height:1.55}
  .price-tbl .tag{font-size:11px;padding:1px 7px;margin-right:4px;vertical-align:1px}
}

@media (max-width:640px){
  .book:has(.book3d){grid-template-columns:150px 1fr!important}
  .book img.book3d{max-width:150px}
}

/* 교육 일정표·과정 상세표: 휴대폰에서 목록형(가격표와 같은 방식) */
@media (max-width:640px){
  .sched-tbl{background:none;border-top:2px solid var(--pine)}
  .sched-tbl thead{display:none}
  .sched-tbl,.sched-tbl tbody{display:block}
  .sched-tbl tr{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:3px;padding:14px 2px;border-bottom:1px solid var(--line);background:#fff}
  .sched-tbl td{display:block;padding:0;border:0;font-size:13.5px;color:var(--ink-2)}
  .sched-tbl td:nth-child(1){grid-column:2;grid-row:1;text-align:right}
  .sched-tbl td:nth-child(2){grid-column:1;grid-row:1;font-size:17px;font-weight:800;color:var(--pine)}
  .sched-tbl td:nth-child(3){grid-column:1 / -1;grid-row:2;font-weight:700;color:var(--ink)}
  .sched-tbl td:nth-child(4){grid-column:1 / -1;grid-row:3}
  .sched-tbl td:nth-child(5){grid-column:1;grid-row:4}
  .sched-tbl td:nth-child(6){grid-column:2;grid-row:4;text-align:right}
  .sched-tbl td:nth-child(6)::before{content:"정원 "}
  .kv-tbl{background:none;border-top:2px solid var(--pine)}
  .kv-tbl,.kv-tbl tbody,.kv-tbl tr{display:block}
  .kv-tbl tr{padding:12px 2px;border-bottom:1px solid var(--line);background:#fff}
  .kv-tbl th{display:block;background:none;color:var(--clay);padding:0;font-size:12.5px;letter-spacing:.04em;border:0}
  .kv-tbl td{display:block;padding:4px 0 0;border:0;font-size:14px;line-height:1.6}
}


/* 오시는 길: 네이버 지도. 칸은 처음부터 자리를 잡는다. 지도가 끝내 못 뜨면 섹션에 no-nmap이 붙어 칸이 숨고 플레이스 화면이 보인다 */
.loc-map{position:relative;margin-top:56px;height:460px;border:1px solid var(--line);background:#EEF0EE}
.loc-map::before{content:"지도를 불러오는 중";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8A8A8A;font-size:14px}
.loc-map #nmap{position:relative;width:100%;height:100%}
.loc-map .nmap-open{display:none}
.loc-map~.loc{margin-top:24px}
.no-nmap .loc-map{display:none}
.no-nmap .loc-map~.loc{margin-top:56px}
@media (max-width:640px){
  /* 휴대폰: 지도는 그림처럼 두고(스크롤을 막지 않게) 누르면 네이버 지도로. 플레이스 화면 자리에 지도가 들어간다 */
  .loc-map{height:260px;margin-top:20px}
  .loc-map .nmap-open{display:block;position:absolute;inset:0;z-index:200}
  .loc-map~.loc{margin-top:16px}
  .loc-map~.loc .map.has-frame{display:none}
  .no-nmap .loc-map~.loc{margin-top:20px}
  .no-nmap .loc-map~.loc .map.has-frame{display:block}
}

/* ---------- 교육 소식 (네이버 블로그 글 목록) ----------
   대표 사진이 네이버가 주는 365px 정사각형이라, 크게 늘리지 않고 작은 정사각형으로 둔다(흐려지지 않게) */
.news{list-style:none;margin:48px 0 0;padding:0;border-top:1px solid var(--ink)}
.news li{border-bottom:1px solid var(--line)}
.news a{display:flex;align-items:center;gap:32px;padding:26px 8px}
.news img,.news .nw-ph{flex:none;width:150px;height:150px;object-fit:cover;background:var(--cream-2)}
.news .nw-ph{background:var(--cream-2) url(img/logo-mark-pine.png) center/42% no-repeat}  /* 대표 사진이 없는 글 */
.news a>div{flex:1;min-width:0}
.news .nw-meta{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-2)}
.news .nw-meta span{font-weight:700;color:var(--clay);letter-spacing:.04em}
.news h3{margin:8px 0 10px;font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.45}
.news .nw-sum{font-size:15px;line-height:1.7;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news i{flex:none;font-style:normal;font-size:22px;color:var(--clay);transition:transform .2s}
.news a:hover h3{color:var(--clay)}
.news a:hover i{transform:translateX(5px)}
.news-more{margin-top:36px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.news-jump span{margin-left:4px;font-size:.85em;color:var(--clay)}  /* 건강 이야기 분류 바로가기의 글 수 */
.sec[id]{scroll-margin-top:90px}
@media (max-width:640px){
  /* 휴대폰: 사진 작게 왼쪽, 글 오른쪽. 화살표는 뺀다 */
  .news{margin-top:24px}
  .news a{align-items:flex-start;gap:14px;padding:16px 0}
  .news img,.news .nw-ph{width:84px;height:84px}
  .news .nw-meta{font-size:12px;gap:8px}
  .news h3{margin:4px 0 6px;font-size:15.5px;line-height:1.45}
  .news .nw-sum{font-size:13px;line-height:1.6}
  .news i{display:none}
  .news-more{margin-top:22px;gap:18px}
}

/* ================= PC 전용(가로 901px 이상) =================
   이 블록 안의 규칙은 휴대폰 화면에 닿지 않는다. PC 화면만 고칠 때는 여기만 고친다.
   (휴대폰 전용은 위의 @media (max-width:640px) 블록들) */
@media (min-width:901px){
  /* 큰 사진 위 글자: 어둡게 덮지 않는 대신 그림자를 진하게 */
  :root{--tshadow:0 0 3px rgba(0,0,0,.65),0 2px 10px rgba(0,0,0,.6),0 0 38px rgba(0,0,0,.5)}
  .wrap{max-width:1320px}
  /* 첫 화면: 바시처럼 화면을 가득 채우고, 글은 왼쪽 아래 */
  .mv{min-height:max(600px,calc(var(--screen-h) - 114px))}
  .mv .wrap{padding-bottom:88px}
  .mv .kicker{font-size:15px}
  .mv h1{font-size:clamp(34px,3.4vw,56px);line-height:1.3}
  .mv p{font-size:18px;max-width:560px;margin-top:20px}
  .mv .btns{margin-top:32px}
  /* 안쪽 페이지 머리 사진: 높게 */
  .ph{min-height:clamp(520px,62vh,700px)}
  .ph .wrap{padding-bottom:72px}
  .ph .en{font-size:15px}
  .ph h1{font-size:clamp(30px,2.8vw,44px)}
  .ph p{font-size:17px;max-width:600px;margin-top:16px}
  /* 사진 바탕 칸 */
  .brand.photo{min-height:clamp(600px,72vh,820px);display:flex;align-items:center}
  .brand.photo>.wrap{width:100%}
  /* 상담 칸: PC에서는 왼쪽 글, 오른쪽 사진. 사진 원본이 가로 1536px이라 화면 폭을 다 채우면 흐려진다 */
  .cta-band.photo{min-height:clamp(520px,58vh,680px);display:flex;align-items:center;background:#fff}
  .cta-band.photo>.wrap{width:100%;text-shadow:none}
  .cta-band.photo img.bg{left:50%;width:50%}
  .cta-band.photo h2{max-width:min(560px,calc(50% - 56px))}
  .cta-band.photo p,.cta-band.photo .btns{max-width:min(520px,calc(50% - 56px))}
  /* 본문 사진 묶음 */
  .gal{grid-template-rows:320px 320px}
  /* PC 전용 사진의 초점 */
  img.bg[style*="--pcpos"]{object-position:var(--pcpos)!important}
}

/* 질문과 한 줄 답(10/23) */
.sec.glance{padding:64px 0}
.sec.glance .lead{margin-top:16px;max-width:880px}
/* 404 쪽(10/23) */
.nf-box{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:40px 20px}
.nf-box img{height:64px;width:auto}
.nf-box h1{font-family:var(--serif);font-size:clamp(24px,3vw,34px);font-weight:500;color:var(--pine);margin:12px 0 0}
.nf-box .btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:10px}
.nf-box .tel{font-size:15px;color:var(--ink-2)}
@media (max-width:640px){.sec.glance{padding:44px 0;min-height:0}}
