/* ============================================================
   EWAS 이와스 어학원 — 전용 스타일. 처음부터 새로 작성.
   제목 지마켓 산스 / 본문 SUIT
   모티브 : 로고의 자유로운 타원(blob)
   ============================================================ */

@font-face{font-family:'Gmarket'; src:url(gmarket-bold.woff) format('woff');
           font-weight:700; font-style:normal; font-display:swap;}
@font-face{font-family:'Gmarket'; src:url(gmarket-medium.woff) format('woff');
           font-weight:500; font-style:normal; font-display:swap;}
@font-face{font-family:'SUIT'; src:url(suit-400.woff2) format('woff2');
           font-weight:400; font-style:normal; font-display:swap;}
@font-face{font-family:'SUIT'; src:url(suit-700.woff2) format('woff2');
           font-weight:700; font-style:normal; font-display:swap;}

:root{
  /* 로고에서 뽑은 실제 색 */
  --deep:#006536;
  --deep-dark:#004A27;
  --mid:#00843D;
  --leaf:#4CB782;
  --mist:#E8F3EC;
  --wash:#F4F9F6;      /* 섹션 교차용 */

  /* 노랑을 조연에서 준주연으로 */
  --sun:#FFB020;
  --sun-deep:#C97F00;
  --sun-soft:#FFF3DC;

  --ink:#16233D;
  --ink-mid:#525C72;
  --ink-soft:#7C8598;
  --line:#E2EAE5;
  --line-soft:#EEF3F0;
  --paper:#FFFFFF;

  --shell:1180px;
  --pad:20px;
  --r-s:12px; --r-m:20px; --r-l:28px;

  --lift:0 2px 6px rgba(22,35,61,.05), 0 12px 32px rgba(22,35,61,.07);
  --lift-lg:0 4px 12px rgba(22,35,61,.06), 0 28px 60px rgba(22,35,61,.10);
  --glide:cubic-bezier(.22,1,.36,1);

  --z-header:100; --z-menu:110; --z-lb:200;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:'SUIT', system-ui, sans-serif; font-weight:400;
  font-size:16px; line-height:1.75; letter-spacing:-.012em;
  word-break:keep-all; overflow-wrap:break-word; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{
  font-family:'Gmarket','SUIT',sans-serif; font-weight:700;
  margin:0; text-wrap:balance; letter-spacing:-.03em; line-height:1.24;
}
h1 *,h2 *,h3 *,h4 *{font-family:inherit;}
p{margin:0; text-wrap:pretty;}
b,strong{font-weight:700;}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font:inherit;}
:focus-visible{outline:3px solid var(--sun); outline-offset:3px; border-radius:6px;}
[hidden]{display:none !important;}

.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;}
.skip{position:fixed; left:var(--pad); top:-100px; z-index:220;
      background:var(--deep); color:#fff; font-weight:700; font-size:15px;
      padding:12px 20px; border-radius:0 0 var(--r-s) var(--r-s); transition:top .2s var(--glide);}
.skip:focus{top:0;}

.shell{max-width:var(--shell); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}

/* ---------- 등장 애니메이션 ---------- */
.up{opacity:0; transform:translateY(16px);}
.js .up{transition:opacity .7s var(--glide) var(--d,0ms), transform .7s var(--glide) var(--d,0ms);}
.up.on{opacity:1; transform:none;}
html:not(.js) .up{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .up,.js .up{opacity:1 !important; transform:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}

/* ============================================================
   헤더
   ============================================================ */
header{position:sticky; top:0; z-index:var(--z-header);
       background:rgba(255,255,255,.94); backdrop-filter:blur(14px) saturate(150%);
       -webkit-backdrop-filter:blur(14px) saturate(150%); border-bottom:1px solid var(--line);}
.nav{max-width:var(--shell); margin:0 auto; padding:0 var(--pad);
     height:68px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
.logo img{height:38px; width:auto;}
.links{display:none;}
.links a{display:grid; place-items:center;
         font-size:15.5px; font-weight:700; padding:9px 14px; border-radius:999px;
         color:var(--ink); transition:background .18s, color .18s;}
.links a > span{grid-area:1/1; white-space:nowrap;
                transition:opacity .2s, transform .24s var(--glide);}
.links .nv-en{opacity:0; transform:translateY(5px);
              font-family:'Gmarket',sans-serif; font-size:14px; letter-spacing:.01em;}
.links a:hover .nv-ko,
.links a:focus-visible .nv-ko{opacity:0; transform:translateY(-5px);}
.links a:hover .nv-en,
.links a:focus-visible .nv-en{opacity:1; transform:none;}
.links a:hover{background:var(--mist); color:var(--deep);}
.links a[aria-current="page"]{color:var(--deep); background:var(--mist);}
.nav-cta{display:none;}

.burger{display:flex; flex-direction:column; justify-content:center; gap:5px;
        width:44px; height:44px; padding:0 9px; background:none; border:0; cursor:pointer;}
.burger span{display:block; height:2.5px; background:var(--ink); border-radius:2px;
             transition:transform .3s var(--glide), opacity .2s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

.mobile{display:none; background:var(--wash); border-top:1px solid var(--line);
        padding:14px var(--pad) 20px;}
.mobile.is-open{display:block; animation:mopen .28s var(--glide);}
@keyframes mopen{from{opacity:0; transform:translateY(-6px);} to{opacity:1; transform:none;}}
.mobile a{position:relative; display:flex; align-items:center; gap:9px;
          margin-bottom:8px; padding:16px 18px; border-radius:16px;
          background:var(--paper); box-shadow:0 2px 10px rgba(0,60,30,.06);
          font-family:'Gmarket',sans-serif; font-weight:700;
          font-size:16.5px; letter-spacing:-.03em; color:var(--ink);
          transition:background .18s, color .18s, transform .1s;}
.mobile a:last-child{margin-bottom:0;}
.mobile a::after{content:''; width:7px; height:7px; flex:none;
                 border-right:2px solid var(--ink-soft); border-bottom:2px solid var(--ink-soft);
                 transform:rotate(-45deg); transition:border-color .18s;}
.mobile a:active{transform:scale(.985);}
.mobile a[aria-current="page"]{background:var(--deep); color:#fff; box-shadow:none;}
.mobile a[aria-current="page"]::after{border-color:rgba(255,255,255,.75);}
.mobile .m-en{margin-right:auto; font-size:11.5px; font-weight:700;
              letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft);
              transform:translateY(1px);}
.mobile a[aria-current="page"] .m-en{color:rgba(255,255,255,.7);}

@media (min-width:940px){
  .burger{display:none;}
  .mobile{display:none !important;}
  .links{display:flex; align-items:center; gap:2px;}
  .nav{height:80px;}
  .logo img{height:44px;}
  .nav-cta{display:inline-flex; align-items:center; height:44px; padding:0 20px;
           background:var(--deep); color:#fff; border-radius:999px;
           font-weight:700; font-size:15px; transition:background .18s, transform .1s;}
  .nav-cta:hover{background:var(--deep-dark);}
  .nav-cta:active{transform:scale(.97);}
}

/* ============================================================
   공통 부품
   ============================================================ */
.sec{padding:64px 0 68px;}
.sec-wash{background:var(--wash);}
.sec-mist{background:var(--mist);}
@media (min-width:900px){ .sec{padding:92px 0 96px;} }

.tag{display:inline-flex; align-items:center; gap:7px; height:30px; padding:0 14px;
     border-radius:999px; background:var(--sun-soft); color:var(--sun-deep);
     font-size:13px; font-weight:700; letter-spacing:.01em; margin-bottom:16px;}
.tag-green{background:var(--mist); color:var(--deep);}

.h-sec{font-size:clamp(27px,5.2vw,42px); margin-bottom:14px;}
.h-sec em{font-style:normal; color:var(--deep);}
.lead{font-size:16.5px; color:var(--ink-mid); max-width:40em;}
@media (min-width:900px){ .lead{font-size:18px;} }

.cta{display:inline-flex; align-items:center; justify-content:center; gap:8px;
     height:56px; padding:0 28px; border-radius:999px; font-weight:700; font-size:16.5px;
     background:var(--deep); color:#fff; transition:background .18s, transform .1s;}
.cta:hover{background:var(--deep-dark);}
.cta:active{transform:scale(.98);}
.cta-sun{background:var(--sun); color:#3A2600;}
.cta-sun:hover{background:#F0A410;}
.cta-line{background:transparent; color:var(--deep); box-shadow:inset 0 0 0 2px var(--deep);}
.cta-line:hover{background:var(--mist);}
.cta-white{background:#fff; color:var(--deep);}
.cta-white:hover{background:var(--mist);}
.cta-ghost{background:transparent; color:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);}
.cta-ghost:hover{background:rgba(255,255,255,.12);}
.btnrow{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px;}

/* blob — 로고의 자유로운 타원. EWAS의 시그니처 */
.blob{position:absolute; z-index:0; pointer-events:none;
      border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.blob-mist{background:var(--mist);}
.blob-sun{background:var(--sun-soft);}

/* ============================================================
   히어로
   ============================================================ */
.hero{position:relative; overflow:hidden; background:var(--wash);}
.hero .shell{position:relative; z-index:2; padding-top:46px; padding-bottom:52px;}
.hero .blob-a{width:340px; height:320px; top:-90px; right:-110px; background:var(--mist);}
.hero .blob-b{width:200px; height:190px; bottom:-70px; left:-80px; background:var(--sun-soft);}
.hero h1{font-size:clamp(34px,8.4vw,64px); line-height:1.14; letter-spacing:-.04em;}
.hero h1 em{font-style:normal; color:var(--deep);}
.hero .sun{font-style:normal; position:relative; display:inline-block;}
/* 한글은 디센더가 얕아 인라인 박스 바닥이 글자보다 한참 아래다. 그만큼 올려 잡는다 */
.hero .sun::after{content:""; position:absolute; left:-4px; right:-4px; bottom:.17em; height:.26em;
                  background:var(--sun); opacity:.5; border-radius:3px; z-index:-1;}
.hero p.lead{margin-top:20px;}
.hero-media{position:relative; margin-top:34px; border-radius:var(--r-l); overflow:hidden;
            box-shadow:var(--lift-lg); aspect-ratio:4/3;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:50% 32%;}

@media (min-width:900px){
  .hero .shell{display:grid; grid-template-columns:1.02fr .98fr; gap:56px; align-items:center;
               padding-top:76px; padding-bottom:88px;}
  .hero-media{margin-top:0; aspect-ratio:5/6;}
  .hero .blob-a{width:520px; height:480px; top:-140px; right:-150px;}
}

/* 모집 띠 */
.notice{background:var(--deep); color:#fff;}
.notice .shell{display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; padding-top:16px; padding-bottom:16px;}
.notice .pill{display:inline-flex; align-items:center; height:26px; padding:0 12px; border-radius:999px;
              background:var(--sun); color:#3A2600; font-size:12.5px; font-weight:700; letter-spacing:.02em;}
.notice p{font-size:15.5px; font-weight:700;}
.notice a{margin-left:auto; font-size:14.5px; font-weight:700; color:#fff;
          border-bottom:2px solid rgba(255,255,255,.5); padding-bottom:1px;}
.notice a:hover{border-bottom-color:#fff;}

/* ============================================================
   7년 로드맵 — 킬러 섹션
   ============================================================ */
.road{position:relative;}
.road-grid{display:flex; flex-direction:column; gap:12px; margin-top:34px; position:relative;}
.road-step{position:relative; background:var(--paper); border:1px solid var(--line);
           border-radius:var(--r-m); padding:24px 22px 26px; box-shadow:var(--lift);}
.road-step .mark{position:relative; width:56px; height:52px; display:grid; place-items:center;
                 margin-bottom:16px;}
.road-step .mark i{position:absolute; inset:0; background:var(--mist);
                   border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.road-step .mark span{position:relative; font-family:'Gmarket',sans-serif; font-weight:700;
                      font-size:19px; color:var(--deep);}
.road-step:nth-child(2) .mark i{background:#D3EBDD;}
.road-step:nth-child(3) .mark i{background:var(--sun-soft);}
.road-step:nth-child(3) .mark span{color:var(--sun-deep);}
.road-step h3{font-size:21px; margin-bottom:4px;}
.road-step .age{display:block; font-size:14px; font-weight:700; color:var(--mid); margin-bottom:10px;}
.road-step p{font-size:15.3px; color:var(--ink-mid);}
.road-after{margin-top:26px; display:flex; align-items:flex-start; gap:12px;
            background:var(--sun-soft); border-radius:var(--r-m); padding:20px 22px;}
.road-after b{display:block; font-size:16.5px; margin-bottom:4px; color:#3A2600;}
.road-after p{font-size:15px; color:#6B4A08;}

@media (min-width:820px){
  .road-grid{flex-direction:row;}
  .road-step{flex:1;}
  .road-grid::before{content:""; position:absolute; top:50px; left:12%; right:12%; height:2px;
                     background:linear-gradient(90deg,var(--leaf),var(--sun)); opacity:.35; z-index:0;}
  .road-step{z-index:1;}
}

/* ============================================================
   비교 (다른 선택지와 무엇이 다른가)
   ============================================================ */
.vs{display:grid; gap:14px; margin-top:34px;}
.vs-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m); padding:26px 24px;}
.vs-card h3{font-size:19px; margin-bottom:14px; color:var(--ink-soft);}
.vs-card.ours{border-color:var(--deep); box-shadow:var(--lift); background:var(--paper);}
.vs-card.ours h3{color:var(--deep);}
.vs-card ul{list-style:none; margin:0; padding:0;}
.vs-card li{position:relative; padding-left:26px; margin:11px 0; font-size:15.4px; color:var(--ink-mid);}
.vs-card li::before{content:""; position:absolute; left:2px; top:9px; width:13px; height:13px;
                    border-radius:58% 42% 47% 53% / 52% 46% 54% 48%; background:var(--line);}
.vs-card.ours li::before{background:var(--leaf);}
.vs-card.ours li b{color:var(--ink);}
@media (min-width:820px){ .vs{grid-template-columns:1fr 1fr; gap:20px;} }

/* ============================================================
   강점 카드
   ============================================================ */
.pts{display:grid; gap:14px; margin-top:34px;}
.pt{position:relative; background:var(--paper); border:1px solid var(--line);
    border-radius:var(--r-m); padding:26px 24px 28px; overflow:hidden;}
.pt .ic{position:relative; width:52px; height:48px; display:grid; place-items:center; margin-bottom:16px;}
.pt .ic i{position:absolute; inset:0; background:var(--mist);
          border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.pt .ic svg{position:relative; width:24px; height:24px; stroke:var(--deep); stroke-width:2;
            fill:none; stroke-linecap:round; stroke-linejoin:round;}
.pt h3{font-size:19.5px; margin-bottom:8px;}
.pt p{font-size:15.3px; color:var(--ink-mid);}
.pt .hi{color:var(--deep); font-weight:700;}
@media (min-width:760px){ .pts{grid-template-columns:1fr 1fr;} }
@media (min-width:1040px){ .pts{grid-template-columns:repeat(3,1fr); gap:20px;} }

/* ============================================================
   연령별 프로그램
   ============================================================ */
.ages{display:grid; gap:16px; margin-top:34px;}
.age-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m);
          overflow:hidden; display:flex; flex-direction:column;}
.age-card .top{padding:24px 24px 20px; border-bottom:1px solid var(--line-soft);}
.age-card .yr{display:inline-flex; align-items:center; height:26px; padding:0 11px; border-radius:999px;
              background:var(--mist); color:var(--deep); font-size:12.5px; font-weight:700; margin-bottom:12px;}
.age-card h3{font-size:22px; margin-bottom:6px;}
.age-card .one{font-size:15.4px; color:var(--ink-mid);}
.age-card .body{padding:20px 24px 26px;}
.age-card .body b{display:block; font-size:13px; color:var(--ink-soft); letter-spacing:.04em; margin-bottom:9px;}
.age-card .body ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:7px;}
.age-card .body li{font-size:14px; font-weight:700; color:var(--ink-mid);
                   background:var(--wash); border-radius:999px; padding:6px 13px;}
@media (min-width:860px){ .ages{grid-template-columns:repeat(3,1fr);} }

/* ============================================================
   생활 정보 (급식·차량·하원)
   ============================================================ */
.life{display:grid; gap:12px; margin-top:32px;}
.life-item{display:flex; gap:16px; align-items:flex-start;
           background:var(--paper); border:1px solid var(--line);
           border-radius:var(--r-m); padding:22px 22px;}
.life-item .ic{flex:none; position:relative; width:46px; height:44px; display:grid; place-items:center;}
.life-item .ic i{position:absolute; inset:0; background:var(--sun-soft);
                 border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.life-item .ic svg{position:relative; width:22px; height:22px; stroke:var(--sun-deep);
                   stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round;}
.life-item b{display:block; font-size:17px; margin-bottom:4px;}
.life-item p{font-size:15.2px; color:var(--ink-mid);}
@media (min-width:820px){ .life{grid-template-columns:repeat(3,1fr); gap:16px;} }

/* ============================================================
   원비 표
   ============================================================ */
.fee{margin-top:32px; border:1px solid var(--line); border-radius:var(--r-m);
     overflow:hidden; background:var(--paper);}
.fee-scroll{overflow-x:auto;}
.fee table{border-collapse:collapse; width:100%; min-width:460px;}
.fee th,.fee td{text-align:left; padding:15px 18px; border-bottom:1px solid var(--line-soft); font-size:15.3px;}
.fee thead th{background:var(--wash); font-family:'Gmarket',sans-serif; font-weight:700;
              font-size:14px; color:var(--ink); white-space:nowrap;}
.fee tbody tr:last-child td{border-bottom:0;}
.fee td.num{text-align:right; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap;}
.fee tr.total td{background:var(--mist); font-weight:700; color:var(--deep); border-bottom:0;}
.fee-note{padding:16px 18px; background:var(--wash); font-size:13.8px; color:var(--ink-mid); border-top:1px solid var(--line-soft);}

/* ============================================================
   절차
   ============================================================ */
.steps{display:grid; gap:12px; margin-top:32px; counter-reset:s;}
.step{position:relative; background:var(--paper); border:1px solid var(--line);
      border-radius:var(--r-m); padding:24px 22px; counter-increment:s;}
.step::before{content:counter(s); display:grid; place-items:center; width:38px; height:36px;
              margin-bottom:14px; background:var(--mist); color:var(--deep);
              font-family:'Gmarket',sans-serif; font-weight:700; font-size:16px;
              border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.step b{display:block; font-size:17.5px; margin-bottom:5px;}
.step p{font-size:15.2px; color:var(--ink-mid);}
@media (min-width:860px){ .steps{grid-template-columns:repeat(4,1fr); gap:16px;} }

/* ============================================================
   FAQ
   ============================================================ */
.faq{margin-top:30px; border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;}
.faq details{border-bottom:1px solid var(--line-soft); background:var(--paper);}
.faq details:last-child{border-bottom:0;}
.faq summary{list-style:none; cursor:pointer; padding:20px 54px 20px 22px; position:relative;
             font-size:16.5px; font-weight:700; color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:""; position:absolute; right:24px; top:26px; width:10px; height:10px;
                    border-right:2.5px solid var(--deep); border-bottom:2.5px solid var(--deep);
                    transform:rotate(45deg); transition:transform .22s var(--glide);}
.faq details[open] summary::after{transform:rotate(-135deg); top:30px;}
.faq summary:hover{background:var(--wash);}
.faq .ans{padding:0 22px 22px; font-size:15.4px; color:var(--ink-mid);}

/* ============================================================
   갤러리
   ============================================================ */
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; list-style:none; padding:0;}
.chips button{padding:9px 17px; border-radius:999px; border:1.5px solid var(--line);
              background:var(--paper); color:var(--ink-mid); font-weight:700; font-size:14.5px; cursor:pointer;
              transition:background .16s, color .16s, border-color .16s;}
.chips button:hover{border-color:var(--leaf); color:var(--deep);}
.chips button[aria-pressed="true"]{background:var(--deep); border-color:var(--deep); color:#fff;}
.gal{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:20px; list-style:none; padding:0;}
.gal button{display:block; width:100%; padding:0; border:0; background:none; cursor:pointer;
            border-radius:var(--r-s); overflow:hidden; aspect-ratio:4/3;}
.gal img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--glide);}
.gal button:hover img{transform:scale(1.05);}
.gal-count{margin-top:16px; font-size:14px; color:var(--ink-soft);}
@media (min-width:760px){ .gal{grid-template-columns:repeat(3,1fr); gap:14px;} }

.lb{position:fixed; inset:0; z-index:var(--z-lb); background:rgba(10,18,14,.94);
    display:flex; flex-direction:column; padding:16px;}
.lb-top{display:flex; justify-content:space-between; align-items:center; color:#fff; padding:4px 4px 10px;}
.lb-top b{font-family:'Gmarket',sans-serif; font-size:15px;}
.lb-top .n{opacity:.7; font-size:14px; margin-left:8px;}
.lb-x{background:none; border:0; color:#fff; font-size:22px; width:44px; height:44px; cursor:pointer;}
.lb-stage{flex:1; display:flex; align-items:center; justify-content:center; gap:8px; min-height:0;}
.lb-stage img{max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--r-s);}
.lb-nav{flex:none; width:48px; height:48px; border-radius:50%; border:0; cursor:pointer;
        background:rgba(255,255,255,.14); color:#fff; font-size:22px; display:grid; place-items:center;}
.lb-nav:hover{background:rgba(255,255,255,.26);}

/* ============================================================
   상담 마무리
   ============================================================ */
.contact{position:relative; overflow:hidden; background:var(--deep); color:#fff;}
.contact .shell{position:relative; z-index:2; padding-top:64px; padding-bottom:68px; text-align:center;}
.contact .blob-c{width:380px; height:340px; top:-120px; left:-120px; background:rgba(255,255,255,.06);}
.contact .blob-d{width:280px; height:250px; bottom:-110px; right:-90px; background:rgba(255,176,32,.16);}
.contact h2{font-size:clamp(26px,5vw,40px); margin-bottom:14px;}
.contact h2 em{font-style:normal; color:var(--sun);}
.contact p{font-size:16.5px; color:rgba(255,255,255,.86); max-width:32em; margin:0 auto;}
.contact .btnrow{justify-content:center;}
@media (min-width:900px){ .contact .shell{padding-top:92px; padding-bottom:96px;} }

/* ============================================================
   페이지 머리
   ============================================================ */
.phead{background:var(--wash); position:relative; overflow:hidden;}
.phead .shell{position:relative; z-index:2; padding-top:38px; padding-bottom:44px;}
.phead .blob-e{width:300px; height:280px; top:-110px; right:-90px; background:var(--mist);}
.crumb{font-size:13.5px; color:var(--ink-soft); margin-bottom:14px;}
.crumb a:hover{color:var(--deep);}
.phead h1{font-size:clamp(30px,6.6vw,50px); letter-spacing:-.035em;}
.phead h1 em{font-style:normal; color:var(--deep);}
.phead .lead{margin-top:14px;}
@media (min-width:900px){ .phead .shell{padding-top:56px; padding-bottom:66px;} }

/* ---------- 사진 ---------- */
.fig{margin:32px 0 0; border-radius:var(--r-m); overflow:hidden; box-shadow:var(--lift);}
.fig img{width:100%;}
.duo{display:grid; gap:14px; margin-top:32px;}
.duo img{border-radius:var(--r-m); width:100%;}
@media (min-width:760px){ .duo{grid-template-columns:1fr 1fr;} }

/* ---------- 인용 ---------- */
.say{position:relative; background:var(--mist); border-radius:var(--r-l);
     padding:38px 26px 34px; margin-top:34px; text-align:center;}
.say p{font-family:'Gmarket',sans-serif; font-weight:700; font-size:clamp(20px,3.8vw,29px);
       line-height:1.42; letter-spacing:-.03em; color:var(--deep);}
.say .from{margin-top:16px; font-size:14.5px; color:var(--mid); font-family:'SUIT',sans-serif; font-weight:700;}

/* ---------- 링크 목록 ---------- */
.more{list-style:none; margin:34px 0 0; padding:0; display:grid; gap:12px;}
.more a{position:relative; display:grid; gap:5px; padding:24px 52px 26px 24px;
        border-radius:20px 14px 20px 14px; background:var(--paper);
        border:1px solid var(--line); box-shadow:0 3px 14px rgba(0,60,30,.05);
        transition:border-color .2s, box-shadow .2s, transform .2s var(--glide);}
.more a:hover,.more a:focus-visible{border-color:var(--deep); transform:translateY(-3px);
                                    box-shadow:0 14px 30px rgba(0,60,30,.13);}
.more-en{font-family:'Gmarket',sans-serif; font-weight:500; font-size:11.5px;
         letter-spacing:.14em; text-transform:uppercase; color:var(--mid);}
.more-ko{font-family:'Gmarket',sans-serif; font-weight:700;
         font-size:clamp(18px,3.6vw,21px); letter-spacing:-.03em; color:var(--ink);}
.more svg{position:absolute; right:22px; top:50%; transform:translateY(-50%);
          width:22px; height:22px; stroke:var(--deep); stroke-width:2; fill:none;
          stroke-linecap:round; stroke-linejoin:round; transition:transform .2s var(--glide);}
.more a:hover svg{transform:translateY(-50%) translateX(4px);}
@media (min-width:760px){
  .more{grid-template-columns:repeat(3,1fr); gap:16px;}
  .more li:nth-child(even) a{border-radius:14px 20px 14px 20px;}
  .more li:nth-child(4) ~ li,.more li:nth-child(4){grid-column:auto;}
}
@media (min-width:760px){ .more:has(li:nth-child(4)){grid-template-columns:repeat(4,1fr);} }

/* 페이지를 닫는 사진 띠 */
.endband{margin:0;}
.endband img{width:100%; height:auto; object-fit:cover; aspect-ratio:21/9;}
@media (max-width:759px){ .endband img{aspect-ratio:16/10;} }

/* ---------- 정보 목록 ---------- */
.info{list-style:none; margin:26px 0 0; padding:0; border:1px solid var(--line);
      border-radius:var(--r-m); overflow:hidden; background:var(--paper);}
.info li{display:flex; gap:14px; padding:16px 20px; border-bottom:1px solid var(--line-soft); font-size:15.4px;}
.info li:last-child{border-bottom:0;}
.info b{flex:none; width:76px; color:var(--ink-soft); font-weight:700;}
.info span{color:var(--ink-mid);}
.info a{color:var(--deep); font-weight:700;}

/* ============================================================
   푸터
   ============================================================ */
footer{background:var(--wash); border-top:1px solid var(--line); padding:44px 0 40px;}
.foot-top{display:flex; flex-direction:column; gap:22px;}
.foot-logo img{height:34px; width:auto;}
.foot-links{display:flex; flex-wrap:wrap; gap:8px 20px;}
.foot-links a{font-size:15px; font-weight:700; color:var(--ink-mid);}
.foot-links a:hover{color:var(--deep);}
.foot-info{font-size:14px; color:var(--ink-soft); line-height:1.9;}
.foot-info b{color:var(--ink-mid);}
.foot-bottom{margin-top:28px; padding-top:22px; border-top:1px solid var(--line);
             display:flex; flex-wrap:wrap; gap:8px 18px; justify-content:space-between;
             font-size:13px; color:var(--ink-soft);}
.foot-bottom a:hover{color:var(--deep);}
@media (min-width:860px){
  .foot-top{flex-direction:row; justify-content:space-between; align-items:flex-start; gap:40px;}
}

/* ---------- 터치 영역 보정 (모바일 44px 확보) ---------- */
.notice a{display:inline-flex; align-items:center; min-height:44px;}
.foot-links a{display:inline-flex; align-items:center; min-height:44px;}
.foot-info a{display:inline-block; padding:4px 0;}
.crumb a{display:inline-block; padding:6px 0;}

/* ============================================================
   영어 표기 — 도배하지 않되, 전문성이 드러나게
   ============================================================ */
.en{font-family:'Gmarket',sans-serif; font-weight:500; letter-spacing:.06em;
    text-transform:uppercase; font-size:12.5px; color:var(--mid);}
.en-lg{font-family:'Gmarket',sans-serif; font-weight:700; letter-spacing:-.01em;
       font-size:clamp(18px,3vw,24px); color:var(--deep); text-transform:none;}
.hero .en{color:var(--sun-deep); display:block; margin-bottom:12px;}

/* 영문 부제가 붙는 섹션 제목 */
.h-pair{margin-bottom:16px;}
.h-pair .en{display:block; margin-bottom:9px;}

/* ============================================================
   아웃풋 사다리 — 단계마다 아이가 실제로 하는 말
   ============================================================ */
.ladder{display:flex; flex-direction:column; gap:14px; margin-top:36px;}
.rung{position:relative; background:var(--paper); border:1px solid var(--line);
      border-radius:var(--r-m); padding:26px 22px 24px; box-shadow:var(--lift);}
.rung-head{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.rung-head .st{position:relative; display:grid; place-items:center; width:44px; height:41px; flex:none;}
.rung-head .st i{position:absolute; inset:0; background:var(--mist);
                 border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.rung-head .st span{position:relative; font-family:'Gmarket',sans-serif; font-weight:700;
                    font-size:15px; color:var(--deep);}
.rung h3{font-size:20px;}
.rung .age{font-size:13.5px; font-weight:700; color:var(--mid);}
.rung > p{font-size:15.3px; color:var(--ink-mid); margin-bottom:16px;}
.rung:nth-child(2) .st i{background:#D3EBDD;}
.rung:nth-child(3) .st i{background:#C4E5D3;}
.rung:nth-child(4) .st i{background:var(--sun-soft);}
.rung:nth-child(4) .st span{color:var(--sun-deep);}

/* 아이 말풍선 */
.bubble{position:relative; background:var(--wash); border-radius:16px 16px 16px 4px;
        padding:15px 17px; border:1px solid var(--line-soft);}
.bubble q{display:block; font-family:'Gmarket',sans-serif; font-weight:500;
          font-size:16px; line-height:1.5; color:var(--deep); quotes:'"' '"';}
.bubble .ko{display:block; margin-top:7px; font-size:13.5px; color:var(--ink-soft);}
.bubble .cap{display:block; margin-bottom:8px; font-size:11.5px; font-weight:700;
             letter-spacing:.05em; color:var(--ink-soft); text-transform:uppercase;}
@media (min-width:900px){
  .rung{display:grid; grid-template-columns:1fr 340px; gap:28px; align-items:center;
        padding:30px 30px 30px 28px;}
  .rung > p{margin-bottom:0;}
  .rung-head{grid-column:1; margin-bottom:10px;}
  .rung .bubble{grid-column:2; grid-row:1 / span 2;}
}

/* ============================================================
   커리큘럼 그리드
   ============================================================ */
.curri{display:grid; gap:12px; margin-top:34px;}
.cu{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m); padding:24px 22px;}
.cu .en-lg{display:block; margin-bottom:4px;}
.cu .sub{display:block; font-size:13.5px; font-weight:700; color:var(--mid); margin-bottom:11px;}
.cu p{font-size:15.2px; color:var(--ink-mid);}
@media (min-width:760px){ .curri{grid-template-columns:1fr 1fr; gap:16px;} }

/* ============================================================
   설립자 · 뿌리
   ============================================================ */
.root{position:relative; overflow:hidden; background:var(--deep); color:#fff;}
.root .shell{position:relative; z-index:2; padding-top:64px; padding-bottom:68px;}
.root .blob-r{width:420px; height:380px; top:-140px; right:-130px; background:rgba(255,255,255,.06);}
.root .en{color:var(--sun); display:block; margin-bottom:12px;}
.root h2{font-size:clamp(26px,5vw,40px); margin-bottom:16px;}
.root h2 em{font-style:normal; color:var(--sun);}
.root > .shell > p{font-size:16.5px; color:rgba(255,255,255,.88); max-width:44ch;}
.figures{display:grid; gap:14px; margin-top:34px;}
.figure{background:rgba(255,255,255,.08); border-radius:var(--r-m); padding:22px 20px;}
.figure b{display:block; font-family:'Gmarket',sans-serif; font-weight:700;
          font-size:clamp(30px,5.5vw,40px); line-height:1.1; color:var(--sun); margin-bottom:6px;}
.figure span{display:block; font-size:14.8px; color:rgba(255,255,255,.86);}
@media (min-width:760px){ .figures{grid-template-columns:repeat(3,1fr); gap:18px;} }
@media (min-width:900px){ .root .shell{padding-top:92px; padding-bottom:96px;} }

/* ============================================================
   교사 구성
   ============================================================ */
.teach{display:grid; gap:14px; margin-top:34px;}
.tc{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m); padding:26px 24px;}
.tc.main{border-color:var(--deep); box-shadow:var(--lift);}
.tc .role{display:inline-flex; align-items:center; height:27px; padding:0 12px; border-radius:999px;
          background:var(--mist); color:var(--deep); font-size:12.5px; font-weight:700; margin-bottom:12px;}
.tc.main .role{background:var(--deep); color:#fff;}
.tc h3{font-size:19px; margin-bottom:8px;}
.tc p{font-size:15.2px; color:var(--ink-mid);}
@media (min-width:760px){ .teach{grid-template-columns:1fr 1fr; gap:18px;} }

/* ---------- 히어로 영문 슬로건 · EWAS 머리글자 ---------- */
.smile{font-family:'Gmarket',sans-serif; font-weight:500;
       font-size:clamp(19px,3.6vw,27px); line-height:1.35; letter-spacing:-.005em;
       color:var(--ink-mid); margin-top:20px;}
.smile b{color:var(--deep); font-weight:700;}
.smile-sub{margin-top:9px; font-family:'Gmarket',sans-serif; font-weight:500;
           font-size:12.5px; letter-spacing:.07em; text-transform:uppercase;
           color:var(--ink-soft);}

/* ============================================================
   관문 패널 — 메인은 큰 메뉴로만. 상세는 하위 페이지에서.
   ============================================================ */
.gate{position:relative; display:block; overflow:hidden; background:var(--ink);}
.gate img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
          transition:transform 1.1s var(--glide);}
.gate:hover img{transform:scale(1.045);}
.gate::after{content:""; position:absolute; inset:0; z-index:1;
             background:linear-gradient(to bottom,
               rgba(8,20,14,.30) 0%, rgba(8,20,14,.12) 38%,
               rgba(8,20,14,.55) 78%, rgba(8,20,14,.78) 100%);}
.gate-in{position:relative; z-index:2; max-width:var(--shell); margin:0 auto;
         padding:56px var(--pad) 46px; min-height:56vh;
         display:flex; flex-direction:column; justify-content:flex-end; color:#fff;}
.gate-en{font-family:'Gmarket',sans-serif; font-weight:700;
         font-size:clamp(30px,7.6vw,62px); line-height:1.06; letter-spacing:.005em;
         text-transform:uppercase;}
.gate-ko{margin-top:12px; font-size:16.5px; color:rgba(255,255,255,.9); max-width:30em;}
.gate-go{display:inline-flex; align-items:center; gap:9px; margin-top:22px;
         font-family:'Gmarket',sans-serif; font-weight:500; font-size:15px;
         color:var(--sun); letter-spacing:.02em;}
.gate-go svg{width:20px; height:20px; stroke:var(--sun); stroke-width:2.2;
             fill:none; stroke-linecap:round; stroke-linejoin:round;
             transition:transform .3s var(--glide);}
.gate:hover .gate-go svg{transform:translateX(5px);}
@media (min-width:900px){
  .gate-in{min-height:66vh; padding:96px var(--pad) 72px;}
  .gate-ko{font-size:18px;}
}

/* 캠퍼스 관문 — 사진 두 장 */
.gate-duo{position:absolute; inset:0; display:grid; grid-template-columns:1fr 1fr;}
.gate-duo img{position:relative; inset:auto; width:100%; height:100%; object-fit:cover;}

/* 입학안내 마무리 — 사진 위 */
.admitband{position:relative; overflow:hidden; background:var(--deep);}
.admitband > img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.28;}
.admitband::after{content:""; position:absolute; inset:0;
             background:linear-gradient(to bottom, rgba(0,74,39,.72), rgba(0,60,32,.92));}
.admitband .shell{position:relative; z-index:2; padding-top:72px; padding-bottom:76px; text-align:center; color:#fff;}
.admitband .en{color:var(--sun); display:block; margin-bottom:14px;}
.admitband h2{font-size:clamp(27px,5.4vw,44px); margin-bottom:10px;}
.admitband .sub-en{font-family:'Gmarket',sans-serif; font-weight:500;
              font-size:clamp(15px,2.6vw,19px); color:rgba(255,255,255,.82); margin-bottom:8px;}
.admitband p.ko{font-size:16.5px; color:rgba(255,255,255,.86); max-width:34em; margin:0 auto;}
.admitband .btnrow{justify-content:center; margin-top:30px;}
.cta-kakao{background:#FEE500; color:#191600;}
.cta-kakao:hover{background:#F2DA00;}
@media (min-width:900px){ .admitband .shell{padding-top:104px; padding-bottom:108px;} }

/* 캠퍼스 상세 — 정보 박스 + 사진 그리드 */
.camp{border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; background:var(--paper);}
.camp + .camp{margin-top:28px;}
.camp-hero{position:relative; aspect-ratio:16/10; overflow:hidden;}
.camp-hero img{width:100%; height:100%; object-fit:cover;}
.camp-body{padding:26px 24px 28px;}
.camp-body .yr{display:inline-flex; align-items:center; height:27px; padding:0 12px; border-radius:999px;
               background:var(--mist); color:var(--deep); font-size:12.5px; font-weight:700; margin-bottom:12px;}
.camp-body h3{font-size:24px; margin-bottom:8px;}
.camp-body > p{font-size:15.4px; line-height:1.78; color:var(--ink-mid);}
.camp-body .camp-name + p ~ p{margin-top:11px;}
.camp-shots{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:20px; list-style:none; padding:0;}
.camp-shots button{display:block; width:100%; padding:0; border:0; background:none; cursor:pointer;
                   border-radius:var(--r-s); overflow:hidden; aspect-ratio:4/3;}
.camp-shots img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--glide);}
.camp-shots button:hover img{transform:scale(1.06);}
@media (min-width:760px){
  .camp{display:grid; grid-template-columns:1fr 1fr; align-items:stretch;}
  .camp-hero{aspect-ratio:auto; height:100%;}
  .camp-body{padding:34px 32px 36px;}
  .camp-shots{grid-template-columns:repeat(4,1fr);}
}

/* ============================================================
   관문 조정 — 전면 사진 그대로. 칸만 키우고 흰 띠로 나눈다.
   ============================================================ */

/* 칸 키우기 */
.gate-in{min-height:74vh;}
@media (min-width:900px){ .gate-in{min-height:80vh; padding:96px var(--pad) 68px;} }

/* 구분 : 사진 사이에 흰 띠. 어두운 사진이 맞붙지 않게 한다 */
.gates{background:var(--paper);}
.gate{border-top:5px solid var(--paper);}
.gate:first-child{border-top:0;}
.gates + .admitband{border-top:5px solid var(--paper);}

/* 리듬 : 데스크톱에서 글 위치를 좌우로 번갈아 둔다 */
@media (min-width:900px){
  .gate:nth-child(even) .gate-in{align-items:flex-end; text-align:right;}
  .gate:nth-child(even) .gate-ko{margin-left:auto;}
  .gate::after{background:linear-gradient(to bottom,
    rgba(8,20,14,.30) 0%, rgba(8,20,14,.08) 36%,
    rgba(8,20,14,.46) 74%, rgba(8,20,14,.76) 100%);}
}

/* ============================================================
   입학안내 — 사진 없이 초록 칸만. 위 관문 네 개가 이미 사진이라
   여기서는 쉬어가는 자리로 둔다. 로고 타원만 장식으로.
   ============================================================ */
.admitband{position:relative; overflow:hidden; background:var(--deep);}
.admitband::after{content:none;}
.admitband .blob-o1{width:360px; height:330px; top:-120px; left:-110px; background:rgba(255,255,255,.06);}
.admitband .blob-o2{width:260px; height:240px; bottom:-100px; right:-80px; background:rgba(255,176,32,.14);}
.admitband-box{position:relative; z-index:2; text-align:center; color:#fff;
          padding:70px var(--pad) 74px;}
.admitband-box .en{color:var(--sun); display:block; margin-bottom:10px;}
.admitband-box h2{font-size:clamp(26px,5vw,40px); margin-bottom:8px;}
.admitband-box h2 em{font-style:normal; color:var(--sun);}
.admitband-box .sub-en{font-family:'Gmarket',sans-serif; font-weight:500;
                  font-size:clamp(16px,2.8vw,21px); color:rgba(255,255,255,.86);}
.admitband-box .btnrow{justify-content:center; margin-top:26px;}
.cta-kakao{background:#FEE500; color:#191600;}
.cta-kakao:hover{background:#F2DA00;}
@media (min-width:900px){ .admitband-box{padding:98px var(--pad) 102px;} }

/* ---------- 페이지 머리 아래 사진 띠 ---------- */
.phead-photo{width:100%; height:34vh; overflow:hidden;}
.phead-photo img{width:100%; height:100%; object-fit:cover; object-position:50% 50%;}
@media (min-width:900px){ .phead-photo{height:48vh;} }

/* ---------- 캠퍼스 박스 ---------- */
.camp-body .camp-name{font-size:14.5px; font-weight:700; color:var(--mid); margin-top:-4px; margin-bottom:10px;}

/* 데스크톱에서 두 박스 높이를 맞춘다.
   사진 비율이 서로 달라(4:3 / 3:4) 그냥 두면 키가 어긋난다. */
@media (min-width:760px){
  .camp{min-height:640px;}
  .camp-body{display:flex; flex-direction:column;}
  .camp-body .camp-shots{margin-top:auto;}
}

/* 사진을 흐름에서 빼내 칸 높이를 밀지 않게 한다.
   (세로 사진 1200x1600 이 칸을 760px 까지 늘리고 있었다) */
@media (min-width:760px){
  .camp-hero{position:relative; height:auto; aspect-ratio:auto; overflow:hidden;}
  .camp-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
}

/* ============================================================
   두 단계 — 01 진초록, 02 흰 바탕. 사진을 좌우로 엇갈려 흐름을 만든다
   ============================================================ */
/* 글을 넓게, 사진을 좁게. 문장 크기를 세 단계로 벌려 읽는 순서를 만든다 */
.flow-in{display:grid; gap:34px;}
.flow-txt .en{display:block; margin-bottom:11px;}
.flow-txt h2{font-size:clamp(29px,6vw,46px); line-height:1.22; margin-bottom:26px;}
.flow-txt h2 em{font-style:normal;}
.flow-txt p{font-size:16px; line-height:1.9; max-width:36ch;}
.flow-txt p + p{margin-top:15px;}
.flow-txt b{font-weight:700;}
.flow-ask{font-size:18px !important; line-height:1.72 !important;}
.flow-tail{margin-top:32px; padding-left:20px; border-left:3px solid;
           font-family:'Gmarket',sans-serif; font-weight:700;
           font-size:clamp(19px,3.6vw,27px); line-height:1.44; letter-spacing:-.03em;}
/* height:auto 가 없으면 width/height 속성값이 살아남아 aspect-ratio 가 안 먹는다 */
.flow-photo{position:relative;}
.flow-photo img{position:relative; z-index:2;
                width:100%; height:auto; object-fit:cover; aspect-ratio:3/2; object-position:50% 42%;}
/* 타원을 사진 뒤에 받침처럼 깐다. 다른 칸의 배경 타원과 쓰임이 다르다 */
.flow-photo .blob-f{z-index:1; width:74%; height:74%; right:-14px; bottom:-20px;
                    background:var(--mist); opacity:.9;}
.flow-a .flow-photo .blob-f{background:rgba(255,255,255,.1);}
@media (min-width:900px){
  .flow-photo .blob-f{width:66%; height:78%; right:-30px; bottom:-32px;}
}

/* 01 — 진초록 */
.flow-a .flow-txt p{color:rgba(255,255,255,.76);}
.flow-a .flow-txt b{color:#fff;}
.flow-a .flow-ask{color:rgba(255,255,255,.95);}
.flow-a .flow-tail{border-color:var(--sun); color:#fff;}
.flow-a .flow-photo img{box-shadow:0 18px 38px rgba(0,30,15,.28);}

/* 02 — 흰 바탕 */
.flow-b{background:var(--paper); overflow:hidden;}
.flow-b .en{color:var(--mid);}
.flow-b h2{color:var(--ink);}
.flow-b h2 em{color:var(--deep);}
.flow-b .flow-txt p{color:var(--ink-mid);}
.flow-b .flow-txt b{color:var(--deep);}
.flow-b .flow-ask{color:var(--ink);}
.flow-b .flow-photo img{box-shadow:0 18px 38px rgba(22,35,61,.13);}

@media (min-width:760px){
  /* 글 : 사진 = 대략 2 : 1. 사진은 제목 아래로 내려 붙인다 */
  .flow-in{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(30px,5vw,80px); align-items:start;}
  .flow-txt p{font-size:16.6px; max-width:46ch;}
  .flow-ask{font-size:19.4px !important;}
  .flow-photo{margin-top:16px;}
  /* 02 는 사진이 왼쪽. 좁은 칸이 왼쪽으로 오도록 비율도 뒤집는다 */
  .flow-b .flow-in{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);}
  .flow-b .flow-txt{order:2;}
}

/* 두 단계를 받는 결론 한 줄 */
.creed-band{position:relative; overflow:hidden; background:var(--deep-dark);
            padding:64px 0 68px; color:#fff;}
.creed-band .blob-cb{width:420px; height:380px; top:-150px; right:-120px;
                     background:rgba(255,255,255,.055);}
.creed-band .blob-cb2{width:300px; height:270px; bottom:-120px; left:-90px;
                      background:rgba(255,176,32,.12);}
.creed-band .shell{position:relative; z-index:2;}
.creed-rule{display:block; width:52px; height:3px; background:var(--sun); margin-bottom:26px;}
.creed-line{font-family:'Gmarket',sans-serif; font-weight:700;
            font-size:clamp(26px,5.8vw,48px); line-height:1.32; letter-spacing:-.035em;
            color:#fff; max-width:22ch; word-break:keep-all;}
.creed-line em{font-style:normal; color:var(--sun);}
.creed-sub{margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.18);
           display:inline-block;
           font-family:'Gmarket',sans-serif; font-weight:700;
           font-size:clamp(16px,3vw,20px); letter-spacing:-.01em; color:var(--sun);}
@media (min-width:900px){
  .creed-band{padding:96px 0 100px;}
  .creed-line{max-width:20ch;}
  .creed-sub{margin-top:34px; padding-top:26px;}
}

/* ============================================================
   고르는 이유
   ============================================================ */
.reasons-wrap{position:relative; overflow:hidden; background:var(--wash);}
.reasons-wrap .shell{position:relative; z-index:2;}
.reasons-wrap .blob-w{width:240px; height:220px; top:-90px; right:-80px;
                      background:var(--mist);}
.reasons-wrap .blob-w2{width:200px; height:180px; bottom:-70px; left:-70px;
                       background:var(--sun-soft); opacity:.55;}
@media (min-width:820px){
  .reasons-wrap .blob-w{width:420px; height:380px; top:-150px; right:-140px;}
  .reasons-wrap .blob-w2{width:340px; height:300px; bottom:-120px; left:-120px;}
}
.reasons-wrap .reason{border-color:rgba(0,101,54,.14);}
.reasons-wrap .reasons{border-top-color:rgba(0,101,54,.14);}
.reasons{margin-top:34px; border-top:1.5px solid var(--line);}
.reason{border-bottom:1.5px solid var(--line); padding:26px 0; display:grid; gap:12px;}
.reason .oval{position:relative; display:inline-grid; place-items:center;
              justify-self:start; width:104px; height:36px;}
.reason .oval i{position:absolute; inset:0; background:var(--mist);
                border-radius:58% 42% 47% 53% / 52% 46% 54% 48%;}
.reason .oval span{position:relative; font-family:'Gmarket',sans-serif; font-weight:700;
                   font-size:10px; letter-spacing:.11em; color:var(--deep);}
.reason:nth-child(2) .oval i{background:#D3EBDD;}
.reason:nth-child(3) .oval i{background:#C0E2D0;}
.reason h3{font-size:clamp(20px,4.2vw,29px); line-height:1.38; letter-spacing:-.03em;}
.reason h3 em{font-style:normal; color:var(--deep);}
.reason .note{font-family:'Gmarket',sans-serif; font-weight:500;
              font-size:14.5px; letter-spacing:.01em; color:var(--ink-soft);}
@media (min-width:820px){
  .reason{grid-template-columns:130px 1fr 250px; gap:32px; align-items:center; padding:34px 0;}
  .reason .note{text-align:right; font-size:15px;}
}

/* ============================================================
   마무리
   ============================================================ */
.say{position:relative; overflow:hidden; background:var(--mist);
     border-radius:var(--r-l); padding:54px 24px 48px; text-align:center;}
.say .blob-s1{width:300px; height:270px; top:-100px; left:-90px; background:rgba(255,255,255,.55);}
.say .blob-s2{width:220px; height:200px; bottom:-80px; right:-70px; background:var(--sun-soft); opacity:.75;}
.say > *{position:relative; z-index:2;}
.say p{font-family:'Gmarket',sans-serif; font-weight:700;
       font-size:clamp(23px,4.8vw,38px); line-height:1.38; letter-spacing:-.03em; color:var(--deep);}
.say .en-line{font-family:'Gmarket',sans-serif; font-weight:500;
              font-size:clamp(14px,2.7vw,19px); letter-spacing:.005em; color:var(--mid);}
.say-rule{display:block; width:52px; height:2px; background:rgba(0,101,54,.3);
          margin:20px auto 22px;}

/* ============================================================
   교습비 · 운영 안내 — 답을 먼저 크게, 상세는 아래에
   ============================================================ */

/* 바로가기 칩 */
.jump{display:flex; flex-wrap:wrap; gap:8px; margin-top:26px;}
.jump a{display:inline-flex; align-items:center; height:44px; padding:0 18px;
        border-radius:999px; background:var(--paper); border:1.5px solid var(--line);
        font-family:'Gmarket',sans-serif; font-weight:700; font-size:14.5px;
        letter-spacing:-.02em; color:var(--ink);
        transition:border-color .18s, color .18s, background .18s;}
.jump a:hover,.jump a:focus-visible{border-color:var(--deep); color:var(--deep); background:var(--mist);}

/* 항목 한 칸 */
.svc{padding:54px 0 58px; scroll-margin-top:88px;}
.svc-wash{background:var(--wash);}
.svc .en{display:block; margin-bottom:10px; color:var(--mid);}
.svc h2{font-size:clamp(27px,5.2vw,42px); margin-bottom:24px;}
.svc h2 em{font-style:normal; color:var(--deep);}
@media (min-width:900px){ .svc{padding:80px 0 84px;} }

/* 상세 목록 */
.det{margin-top:26px; padding-top:24px; border-top:1px solid var(--line); display:grid; gap:12px;}
.det > div{display:grid; gap:3px;}
.det b{font-family:'Gmarket',sans-serif; font-weight:700; font-size:14px; color:var(--deep);}
.det p{font-size:15.4px; line-height:1.8; color:var(--ink-mid);}
@media (min-width:820px){
  .det{grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 48px;}
}

/* 답 옆에 사진이 붙는 칸 */
@media (min-width:900px){
  .svc-duo{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
           gap:70px; align-items:start;}
  .svc-duo .svc-shot{margin-top:6px;}
}
.svc-shot{margin-top:32px;}
.svc-shot img{width:100%; height:auto; object-fit:cover; aspect-ratio:3/2;
              border-radius:var(--r-m); box-shadow:0 18px 38px rgba(22,35,61,.13);}

/* 표 머리 — 캠퍼스 이름 */
.tbl-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; margin:34px 0 0;}
.tbl-head h3{font-size:19px;}
.tbl-head span{font-size:13.5px; color:var(--ink-soft);}
.tbl-head + .fee{margin-top:12px;}
.fee td.txt{white-space:normal;}
.fee .sub{display:block; font-size:13px; color:var(--ink-soft); font-weight:400;}

/* 법정 고지 */
.legal{margin-top:34px; padding:22px 22px 24px; background:var(--wash);
       border-radius:var(--r-m); font-size:14px; line-height:1.82; color:var(--ink-mid);}
.legal b{color:var(--ink);}
.legal ul{margin:10px 0 0; padding-left:18px;}
.legal li + li{margin-top:5px;}


/* ── 차량 : 사진 띠 + 지역 네 덩어리 ─────────────────────── */
.band{border-radius:var(--r-m); overflow:hidden; margin-top:30px;
      box-shadow:0 18px 38px rgba(22,35,61,.13);}
.band img{width:100%; height:auto; object-fit:cover; aspect-ratio:16/10;}
@media (min-width:900px){ .band img{aspect-ratio:21/9;} }

/* 항목 아래 덧붙이는 안내 한 줄 */
.svc-note{margin-top:24px; font-size:15.2px; line-height:1.8;
          color:var(--ink-soft); max-width:52ch;}
.svc-lead{margin-top:22px; font-size:16.6px; line-height:1.86;
          color:var(--ink-mid); max-width:34ch;}

/* ── 급식 : 두 장을 겹쳐 한 덩어리로 ─────────────────────── */
.stack{position:relative; margin-top:38px; padding-bottom:64px;}
.stack-main{width:100%; height:auto; object-fit:cover; aspect-ratio:3/2;
            border-radius:var(--r-m); box-shadow:0 18px 38px rgba(22,35,61,.14);}
.stack-sub{position:absolute; right:-4px; bottom:0; width:52%; height:auto;
           object-fit:cover; aspect-ratio:4/3;
           border-radius:var(--r-m); border:7px solid var(--paper);
           box-shadow:0 14px 30px rgba(22,35,61,.16);}
@media (min-width:760px){
  .stack{padding-bottom:78px;}
  .stack-sub{width:56%; right:-34px;}
}

/* ── 사진과 글을 나란히 두는 칸 ─────────────────────────── */
.svc-shot{margin-top:32px;}
.svc-shot img{width:100%; height:auto; object-fit:cover; aspect-ratio:3/2;
              border-radius:var(--r-m); box-shadow:0 18px 38px rgba(22,35,61,.13);}
@media (min-width:760px){
  .svc-duo{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
           gap:clamp(28px,4.6vw,74px); align-items:center;}
  .svc-duo .svc-shot,.svc-duo .stack{margin-top:0;}
  .svc-duo .stack:has(.stamp){margin-top:0;}
  .svc-duo-rev .svc-say{order:2;}
}

/* ── 항목 칸에 배경 타원. 모바일에서도 보이게 둔다 ───────── */
.svc{position:relative; overflow:hidden;}
.svc-mist{background:var(--mist);}
.svc > .shell{position:relative; z-index:2;}
.svc .bg1{width:200px; height:180px; top:-70px; right:-60px; background:var(--mist);}
.svc .bg2{width:220px; height:200px; top:-80px; left:-70px; background:var(--sun-soft); opacity:.7;}
.svc .bg3{width:180px; height:165px; bottom:-60px; right:-55px; background:var(--mist);}
.svc .bg4{width:210px; height:190px; bottom:-75px; left:-65px; background:var(--mist);}
.svc .bg5{width:220px; height:200px; top:-80px; right:-70px; background:rgba(255,255,255,.75);}
.svc .bg6{width:170px; height:155px; bottom:-55px; left:-50px; background:var(--sun-soft); opacity:.6;}
@media (min-width:900px){
  .svc .bg1{width:420px; height:380px; top:-150px; right:-130px;}
  .svc .bg2{width:460px; height:410px; top:-170px; left:-150px;}
  .svc .bg3{width:340px; height:310px; bottom:-120px; right:-110px;}
  .svc .bg4{width:420px; height:380px; bottom:-150px; left:-130px;}
  .svc .bg5{width:440px; height:400px; top:-160px; right:-140px;}
  .svc .bg6{width:320px; height:290px; bottom:-110px; left:-100px;}
}

/* ── 운행 가능 노선 ──────────────────────────────────── */
.route-h{display:flex; align-items:center; gap:14px; margin-top:36px;
         font-family:'Gmarket',sans-serif; font-weight:700;
         font-size:clamp(16.5px,3.2vw,19px); letter-spacing:-.02em; color:var(--ink);}
.route-h::after{content:""; flex:1; height:1px; background:var(--line);}

.route{display:grid; gap:12px; margin-top:18px;}
.route > div{position:relative; background:var(--paper);
             border-radius:26px 20px 26px 20px;
             padding:24px 24px 26px 64px;
             box-shadow:0 6px 20px rgba(0,60,30,.06);}
.route .rb{position:absolute; left:22px; top:27px; width:28px; height:26px;
           border-radius:58% 42% 47% 53% / 52% 46% 54% 48%; background:var(--mist);}
.route > div:nth-child(1) .rb{background:#B4DFC7;}
.route > div:nth-child(2) .rb{background:#FFD489;}
.route > div:nth-child(3) .rb{background:#8FD3AE;}
.route > div:nth-child(4) .rb{background:#CDE8DA;}
.route > div:nth-child(even){border-radius:20px 26px 20px 26px;}
.route p{font-family:'Gmarket',sans-serif; font-weight:700;
         font-size:clamp(18.5px,3.7vw,24px); line-height:1.38; letter-spacing:-.03em;
         color:var(--deep); word-break:keep-all;}
@media (min-width:700px){ .route{grid-template-columns:1fr 1fr; gap:14px; margin-top:20px;} }

/* ── 제목 위에 얹는 설명 한 줄 ───────────────────────────── */
.kick{font-family:'Gmarket',sans-serif; font-weight:700;
      font-size:clamp(17px,3.4vw,24px); line-height:1.42; letter-spacing:-.03em;
      color:var(--ink-mid); margin-bottom:4px; word-break:keep-all;}
.kick .num{color:var(--deep); font-size:1.14em; letter-spacing:-.04em;}
.svc .h-big{font-size:clamp(29px,6vw,46px); line-height:1.22; letter-spacing:-.035em;}
.svc .kick + .h-big{margin-bottom:26px;}

/* ── 안내 페이지 머리 — 아래 칸들과 확실히 갈라 놓는다 ───── */
.phead-lead{background:var(--mist);}
.phead-lead::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
                   background:rgba(0,101,54,.12); z-index:3;}
.phead-lead .blob-e{width:250px; height:230px; top:-85px; right:-65px;
                    background:rgba(255,255,255,.7);}
.phead-lead .blob-e2{width:170px; height:155px; bottom:-55px; left:-50px;
                     background:var(--sun-soft); opacity:.85;}
.phead-lead .shell{padding-top:34px; padding-bottom:50px;}
.phead-lead .crumb{color:var(--mid);}
.phead-lead .jump a{border-color:transparent; box-shadow:0 4px 14px rgba(0,60,30,.07);}
@media (min-width:900px){
  .phead-lead .blob-e{width:520px; height:470px; top:-190px; right:-150px;}
  .phead-lead .blob-e2{width:330px; height:300px; bottom:-115px; left:-105px;}
  .phead-lead .shell{padding-top:54px; padding-bottom:74px;}
}

/* ============================================================
   프로그램 — 몬테소리 · 주제중심
   ============================================================ */
.pg-sec{position:relative; overflow:hidden;}
.pg-sec > .shell{position:relative; z-index:2;}
.pg-sec .pb1{width:210px; height:190px; top:-75px; right:-65px; background:var(--mist);}
.pg-sec .pb2{width:230px; height:210px; top:-85px; left:-70px; background:var(--mist);}
.pg-sec .pb3{width:170px; height:155px; bottom:-55px; right:-50px; background:var(--sun-soft); opacity:.75;}
@media (min-width:900px){
  .pg-sec .pb1{width:440px; height:400px; top:-160px; right:-140px;}
  .pg-sec .pb2{width:470px; height:420px; top:-175px; left:-155px;}
  .pg-sec .pb3{width:330px; height:300px; bottom:-115px; right:-105px;}
}
.pg-p{font-size:16.4px; line-height:1.88; color:var(--ink-mid); max-width:38ch;}
.pg-p + .pg-p{margin-top:15px;}
.h-pair + .pg-p{margin-top:20px;}
.pg-note{margin-top:16px; font-family:'Gmarket',sans-serif; font-weight:500;
         font-size:15px; letter-spacing:.005em; color:var(--mid);}

/* 몬테소리 다섯 영역 */
.field{list-style:none; margin:28px 0 0; padding:0; max-width:38ch;
       border-top:1px solid var(--line);}
.field li{display:flex; align-items:baseline; justify-content:space-between; gap:18px;
          padding:11px 2px; border-bottom:1px solid var(--line);}
.field b{font-family:'Gmarket',sans-serif; font-weight:700; font-size:14.5px;
         letter-spacing:-.005em; color:var(--deep);}
.field span{font-size:14.5px; color:var(--ink-soft);}

/* 주제중심 활동 한 줄 */
.doing{margin-top:26px; font-family:'Gmarket',sans-serif; font-weight:700;
       font-size:clamp(15.5px,3vw,18px); letter-spacing:-.02em; line-height:1.6;
       color:var(--deep);}

/* 사진 위에 얹는 로고 도장 */
.stack:has(.stamp){margin-top:56px;}
.stamp{position:absolute; z-index:4; left:-16px; top:-16px;
       display:grid; place-items:center; width:82px; height:82px;
       border-radius:50%; background:var(--paper);
       box-shadow:0 10px 26px rgba(0,60,30,.2);}
.stamp img{width:50px; height:auto;}
@media (min-width:760px){
  .svc-duo-rev .stamp{left:auto; right:-16px;}
}
@media (min-width:900px){
  .stamp{width:96px; height:96px; left:-26px; top:-26px;}
  .svc-duo-rev .stamp{left:auto; right:-26px;}
  .stamp img{width:58px;}
}

/* ── 연령별 : 한 줄에 한 나이. 왼쪽 나이 · 가운데 활동 · 오른쪽 아이 말 ── */
.pg-sec .pb4{width:220px; height:200px; top:-80px; right:-65px; background:var(--mist);}
.pg-sec .pb5{width:180px; height:165px; bottom:-60px; left:-55px; background:var(--sun-soft); opacity:.7;}
@media (min-width:900px){
  .pg-sec .pb4{width:450px; height:410px; top:-165px; right:-140px;}
  .pg-sec .pb5{width:340px; height:310px; bottom:-120px; left:-110px;}
}

.yrs{margin-top:34px; border-top:1.5px solid var(--line);}
.yrs-row{border-bottom:1.5px solid var(--line); padding:26px 0 28px; display:grid; gap:18px;}

.yr-when{display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 12px;}
.yr-when .born{display:inline-flex; align-items:center; height:26px; padding:0 11px;
               border-radius:999px; background:var(--mist); color:var(--deep);
               font-size:12.5px; font-weight:700; letter-spacing:-.01em;}
.yr-when h3{font-size:clamp(23px,4.6vw,30px); letter-spacing:-.035em; color:var(--ink);}
.yr-when .one{font-family:'Gmarket',sans-serif; font-weight:500;
              font-size:14px; letter-spacing:.005em; color:var(--mid);}

.yr-do p{font-size:15.6px; line-height:1.82; color:var(--ink-mid); max-width:36ch;}
.yr-do ul{list-style:none; margin:13px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:7px;}
.yr-do li{font-size:13.6px; font-weight:700; color:var(--ink-mid);
          background:var(--wash); border:1px solid var(--line-soft);
          border-radius:999px; padding:5px 12px;}

.yr-say{position:relative; background:var(--mist); border-radius:20px 14px 20px 14px;
        padding:20px 22px 22px;}
.yr-say q{display:block; quotes:none; font-family:'Gmarket',sans-serif; font-weight:700;
          font-size:clamp(15px,2.9vw,17px); line-height:1.56; letter-spacing:-.01em;
          color:var(--deep);}
.yr-say q::before{content:'\201C'; margin-right:1px;}
.yr-say q::after{content:'\201D';}
.yr-say .ko{display:block; margin-top:11px; padding-top:11px;
            border-top:1px solid rgba(0,101,54,.16);
            font-size:13.6px; color:var(--mid);}

@media (min-width:900px){
  .yrs{margin-top:40px;}
  .yrs-row{grid-template-columns:200px minmax(0,1fr) 320px; gap:44px;
           align-items:start; padding:32px 0 34px;}
  .yr-when{flex-direction:column; align-items:flex-start; gap:9px;}
}

/* 큰 사진은 각지게. 다만 히어로는 원장님 요청으로 살짝 둥근 원래대로 둔다 */
.fig{border-radius:0; box-shadow:none;}
.duo img{border-radius:0;}

/* ── 세로 두 장을 어긋나게. 겹치지 않고 높이 차로 리듬을 준다 ── */
.duo2{position:relative; display:grid; grid-template-columns:1.06fr .94fr;
      gap:13px; align-items:start; margin-top:38px;}
.duo2 > img{width:100%; height:auto; object-fit:cover; aspect-ratio:1/1;
            border-radius:var(--r-m); box-shadow:0 14px 32px rgba(22,35,61,.13);}
.duo2 .b{margin-top:34px;}
.duo2-rev{grid-template-columns:.94fr 1.06fr;}
.duo2-rev .a{margin-top:34px;}
.duo2-rev .b{margin-top:0;}
.duo2:has(.stamp){margin-top:56px;}
@media (min-width:760px){
  .duo2{gap:16px; margin-top:0;}
  .duo2 .b{margin-top:52px;}
  .duo2-rev .a{margin-top:52px;}
  .duo2:has(.stamp){margin-top:0;}
}

/* ── 프로그램 : 메인 사진 한 장 + 아래 작은 사진 줄 ─────────── */
.shot-main{position:relative; margin-top:38px;}
.shot-main > img{width:100%; height:auto; object-fit:cover; aspect-ratio:4/3;
                 border-radius:var(--r-m); box-shadow:0 18px 40px rgba(22,35,61,.15);}
@media (min-width:760px){ .shot-main{margin-top:0;} }
.shot-main:has(.stamp){margin-top:56px;}
@media (min-width:760px){ .shot-main:has(.stamp){margin-top:0;} }

/* ── 큰 사진 + 작은 사진 두 장을 한 칸으로 (교육 프로그램) ───── */
.pcol{display:grid; gap:12px; margin-top:34px;}
.pcol .shot-main{margin-top:0;}
.pcol:has(.stamp){margin-top:56px;}
.album-src{display:none;}
.pair{list-style:none; margin:0; padding:0;
      display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;}
.pair > li{display:block;}
.pair img{width:100%; height:auto; object-fit:cover; aspect-ratio:1/1;
          border-radius:var(--r-s); box-shadow:0 10px 24px rgba(22,35,61,.1);}
@media (min-width:760px){
  .pcol{margin-top:0; gap:clamp(12px,1.4vw,18px);}
  .pcol:has(.stamp){margin-top:0;}
  .pair{gap:clamp(12px,1.4vw,18px);}
}

.strip{list-style:none; margin:34px 0 0; padding:0; display:grid; gap:12px;
       grid-template-columns:1fr 1fr;}
.strip li{display:grid; gap:9px;}
.strip img{width:100%; height:auto; object-fit:cover; aspect-ratio:4/3;
           border-radius:var(--r-s); box-shadow:0 6px 18px rgba(22,35,61,.09);}
.strip span{font-family:'Gmarket',sans-serif; font-weight:700;
            font-size:13px; letter-spacing:-.02em; color:var(--mid); padding-left:2px;}
@media (min-width:700px){
  .strip{grid-template-columns:repeat(4,1fr); gap:16px; margin-top:44px;}
  .strip-2{grid-template-columns:repeat(2,1fr); max-width:620px;}
  .strip span{font-size:13.5px;}
}

/* ── 캠퍼스 사진 : 넉 장만 보이고 나머지는 크게보기로 ───────── */
.camp-shots li:nth-child(n+5){display:none;}
.camp-shots button{position:relative;}
.shots-more{position:absolute; inset:0; display:grid; place-items:center;
            background:rgba(0,60,30,.62); color:#fff;
            font-family:'Gmarket',sans-serif; font-weight:700; font-size:19px;
            letter-spacing:-.02em; transition:background .18s;}
.camp-shots button:hover .shots-more{background:rgba(0,60,30,.72);}

/* ============================================================
   입학안내
   ============================================================ */
/* 표지 — 사진 위에 글자 */
.cover{position:relative; overflow:hidden; background:var(--deep-dark);}
.cover > img{position:absolute; inset:0; width:100%; height:100%;
             object-fit:cover; object-position:50% 42%; opacity:.42;}
.cover::after{content:''; position:absolute; inset:0; z-index:1;
              background:linear-gradient(to bottom, rgba(0,50,26,.55) 0%,
                         rgba(0,50,26,.30) 45%, rgba(0,50,26,.72) 100%);}
.cover .shell{position:relative; z-index:2; padding-top:56px; padding-bottom:60px; color:#fff;}
.cover .crumb{color:rgba(255,255,255,.8); margin-bottom:22px;}
.cover .crumb a{color:inherit;}
.cover .en{display:block; margin-bottom:11px; color:var(--sun);}
.cover h1{font-size:clamp(30px,6.6vw,50px); letter-spacing:-.035em;}
.cover h1 em{font-style:normal; color:var(--sun);}
.cover .lead{margin-top:16px; font-size:clamp(16px,3.2vw,19px); color:rgba(255,255,255,.9); max-width:30ch;}
@media (min-width:900px){ .cover .shell{padding-top:96px; padding-bottom:104px;} }

/* 입학설명회 */
.brief{position:relative; overflow:hidden; background:var(--mist); padding:52px 0 56px;}
.brief .bf1{width:300px; height:270px; top:-100px; right:-80px; background:rgba(255,255,255,.75);}
.brief .bf2{width:220px; height:200px; bottom:-80px; left:-60px; background:var(--sun-soft);}
.brief .shell{position:relative; z-index:2;}
.brief-box{background:var(--paper); border-radius:var(--r-l); padding:38px 26px 40px;
           box-shadow:0 18px 44px rgba(0,60,30,.1); text-align:center;}
.brief-yr{display:inline-flex; align-items:center; height:30px; padding:0 15px;
          border-radius:999px; background:var(--deep); color:#fff;
          font-family:'Gmarket',sans-serif; font-weight:700; font-size:12.5px;
          letter-spacing:.02em; margin-bottom:16px;}
.brief-box h2{font-size:clamp(27px,5.2vw,42px); letter-spacing:-.035em;}
.brief-box h2 em{font-style:normal; color:var(--deep);}
.brief-date{margin-top:18px; font-family:'Gmarket',sans-serif; font-weight:700;
            font-size:clamp(34px,8vw,62px); line-height:1.1; letter-spacing:-.045em; color:var(--deep);}
.brief-date span{display:inline-block; font-size:.44em; letter-spacing:-.02em;
                 color:var(--mid); vertical-align:middle; margin-left:6px;}
.brief-lead{margin-top:18px; font-size:16.2px; line-height:1.82; color:var(--ink-mid);
            max-width:40ch; margin-left:auto; margin-right:auto;}
.brief-box .btnrow{justify-content:center; margin-top:28px;}
.brief-box .cta{height:60px; padding:0 34px; font-size:17.5px;}
.brief-note{margin:22px auto 0; padding-top:20px; max-width:44ch;
            border-top:1px solid var(--line); font-size:14.4px; line-height:1.8; color:var(--ink-soft);}
@media (min-width:900px){
  .brief{padding:80px 0 84px;}
  .brief-box{padding:56px 44px 54px;}
}

/* 오시는 길 */
.maps{display:grid; gap:18px; margin-top:34px;}
.mapcard{border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden;
         background:var(--paper); display:flex; flex-direction:column;}
.mapframe{position:relative; aspect-ratio:16/10; background:var(--wash);}
.mapframe iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.mapbody{padding:24px 22px 26px; display:flex; flex-direction:column; flex:1;}
.mapbody .yr{display:inline-flex; align-items:center; align-self:flex-start; height:27px;
             padding:0 12px; border-radius:999px; background:var(--mist); color:var(--deep);
             font-size:12.5px; font-weight:700; margin-bottom:12px;}
.mapbody h3{font-size:22px; margin-bottom:6px;}
.mapbody .camp-name{font-size:14.5px; font-weight:700; color:var(--mid); margin-bottom:4px;}
.mapbody .info{margin-top:14px;}
.mapbody .btnrow{margin-top:auto; padding-top:20px;}
.mapbody .cta{height:46px; padding:0 18px; font-size:14.5px;}
@media (min-width:760px){ .maps{grid-template-columns:1fr 1fr; gap:clamp(14px,2.4vw,22px); margin-top:40px;} }

/* 표지 아래 한눈 정보 */
.facts{background:var(--paper); border-bottom:1px solid var(--line);}
.facts dl{display:grid; gap:0; margin:0;}
.facts dl > div{padding:22px 0 24px; border-bottom:1px solid var(--line-soft);}
.facts dl > div:last-child{border-bottom:0;}
.facts dt{font-family:'Gmarket',sans-serif; font-weight:500; font-size:12px;
          letter-spacing:.13em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;}
.facts dd{margin:0; font-family:'Gmarket',sans-serif; font-weight:700;
          font-size:clamp(18px,3.6vw,23px); letter-spacing:-.03em; color:var(--ink);}
.facts dd span{font-size:.74em; color:var(--mid); margin-left:8px;}
.facts dd span.todo{color:var(--sun-deep); background:var(--sun-soft);
                    padding:0 .3em; border-radius:5px; margin-left:0;}
@media (min-width:760px){
  .facts dl{grid-template-columns:1fr 1fr; gap:0 56px;}
  .facts dl > div{padding:30px 0 32px; border-bottom:0;}
  .facts dl > div + div{border-left:1px solid var(--line-soft); padding-left:56px;}
}

/* ── 캠퍼스 앨범 : 넉 장 모아 하나의 박스로 ─────────────── */
.album-btn{position:relative; display:block; width:100%; margin-top:20px; padding:0;
           border:0; background:none; cursor:pointer; border-radius:var(--r-m);
           overflow:hidden; -webkit-tap-highlight-color:transparent;}
.album-grid{display:grid; grid-template-columns:1fr 1fr; gap:3px;}
.album-grid img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; display:block;}
.album-veil{position:absolute; inset:0; display:grid; place-content:center; gap:6px;
            text-align:center; color:#fff; background:rgba(0,60,30,0);
            opacity:0; transition:background .25s var(--glide), opacity .25s var(--glide);}
.album-veil b{font-family:'Gmarket',sans-serif; font-weight:700;
              font-size:clamp(17px,3.4vw,21px); letter-spacing:-.02em;}
.album-veil i{font-style:normal; font-size:13.5px; color:rgba(255,255,255,.82);}
.album-btn:hover .album-veil,
.album-btn:focus-visible .album-veil{background:rgba(0,60,30,.66); opacity:1;}
@media (hover:none){
  .album-veil{opacity:1; background:linear-gradient(to top, rgba(0,60,30,.72) 0%, rgba(0,60,30,0) 55%);
              place-content:end center; padding-bottom:16px;}
}

/* 앨범 창 */
.album{position:fixed; inset:0; z-index:var(--z-lb); background:rgba(10,18,14,.95);
       display:flex; flex-direction:column; padding:14px var(--pad) 0;}
.album-top{flex:none; display:flex; justify-content:space-between; align-items:center;
           color:#fff; padding:4px 2px 12px; max-width:var(--shell); width:100%; margin:0 auto;}
.album-title{font-family:'Gmarket',sans-serif; font-weight:700; font-size:16px;}
.album-x{background:none; border:0; color:#fff; font-size:22px;
         width:44px; height:44px; cursor:pointer;}
.album-body{flex:1; overflow-y:auto; overscroll-behavior:contain;
            max-width:var(--shell); width:100%; margin:0 auto;
            padding-bottom:24px; display:grid; gap:12px;}
.album-body img{width:100%; height:auto; border-radius:var(--r-s); background:#1b2a22;}
@media (min-width:760px){
  .album{padding:20px 24px 0;}
  .album-body{grid-template-columns:1fr 1fr; gap:16px; padding-bottom:32px;}
  .album-title{font-size:18px;}
}
