/* =========================================================
   맞춤결학원 — FRESH GRADE FIT UI 2026
   목적: 데이터/SEO/URL은 그대로 두고 공통 CSS만 리디자인
   시그니처: GRADE FIT ROADMAP · 초등→중등→고등 성장 흐름
   타깃: 30~50대 학부모 · 높은 가독성 · 상담 전환 중심
   ========================================================= */
:root{
  color-scheme:light only;

  /* Brand — 시원하고 싱그러운 톤앤톤 */
  --ink:#17302B;
  --ink-strong:#0D2923;
  --muted:#4D625C;
  --paper:#F7FCF9;
  --paper-2:#F0F8F4;
  --paper-alt:#EAF6F0;
  --surface:#FFFFFF;
  --surface-mint:#F2FAF6;
  --line:#D8EAE2;

  --base:#0D6955;          /* Fresh Evergreen */
  --base-2:#159176;        /* Leaf Green */
  --base-3:#66BFA8;        /* Seafoam */
  --mint:#DDF4EA;
  --aqua:#DFF5F5;
  --sky:#E6F4FB;

  /* Grade accents */
  --elem:#E2A12D;          /* Citrus Amber */
  --elem-soft:#FFF5D8;
  --mid:#3277A8;           /* Clear Sky Blue */
  --mid-soft:#E7F4FC;
  --high:#C95161;          /* Fresh Berry Coral */
  --high-soft:#FCECEF;

  /* Conversion */
  --cta:#0F5B50;           /* Deep Emerald · 상담 신청 */
  --cta-hover:#0B493F;
  --cta-soft:#E7F5F0;

  --white:#FFFFFF;
  --radius-sm:14px;
  --radius:22px;
  --radius-lg:34px;
  --shadow-xs:0 5px 16px rgba(16,75,61,.055);
  --shadow-sm:0 10px 26px rgba(16,75,61,.075);
  --shadow:0 20px 50px rgba(16,75,61,.105);
  --shadow-lg:0 32px 80px rgba(16,75,61,.14);
  --wrap-max:1180px;
  --mobile-cta-h:56px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:86px;
  background:var(--paper);
  overflow-x:hidden;
}
body{
  margin:0;
  min-width:0;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 7% 9%,rgba(102,191,168,.08),transparent 26%),
    radial-gradient(circle at 94% 18%,rgba(52,127,183,.055),transparent 27%),
    linear-gradient(180deg,#FBFEFC 0%,var(--paper) 34%,#F2F9F5 100%);
  color:var(--ink);
  font-family:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;
  font-size:16.5px;
  font-weight:500;
  line-height:1.76;
  letter-spacing:-.018em;
  word-break:keep-all;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  padding-bottom:calc(var(--mobile-cta-h) + 30px + env(safe-area-inset-bottom));
}
@media (min-width:861px){body{padding-bottom:0}}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.wrap{width:min(var(--wrap-max),calc(100% - 48px));max-width:var(--wrap-max);margin:0 auto;padding:0;min-width:0}
h1,h2,h3,h4{margin-top:0;color:var(--ink-strong);font-weight:900;letter-spacing:-.04em;word-break:keep-all;text-wrap:balance}
p{font-size:16.5px;word-break:keep-all}

/* =========================================================
   HEADER — 얇고 산뜻한 floating navigation
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(250,254,252,.88);
  border-bottom:1px solid rgba(216,234,226,.84);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
}
.site-header .wrap{
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  color:var(--base);
  font-size:19px;
  line-height:1;
  font-weight:950;
  letter-spacing:-.045em;
}
.brand .tier-dot{
  width:13px;
  height:13px;
  border-radius:50%;
  background:linear-gradient(145deg,var(--base-3),var(--base))!important;
  box-shadow:0 0 0 5px rgba(21,145,118,.09),0 6px 14px rgba(13,105,85,.15);
}
.nav-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  flex:1 1 auto;
  color:#526963;
  font-size:14px;
  font-weight:760;
}
.nav-links a{position:relative;padding:10px 0;transition:color .18s ease}
.nav-links a::after{
  content:"";
  position:absolute;
  left:50%;right:50%;bottom:3px;
  height:2px;border-radius:999px;background:var(--base-2);
  transition:left .2s var(--ease),right .2s var(--ease);
}
.nav-links a:hover{color:var(--base)}
.nav-links a:hover::after{left:0;right:0}
.header-cta{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 20px;
  flex:0 0 auto;
  border-radius:15px;
  color:#fff;
  background:linear-gradient(135deg,#16705F,var(--cta));
  box-shadow:0 10px 26px rgba(15,91,80,.22);
  font-size:14.5px;
  font-weight:900;
  white-space:nowrap;
  transition:transform .18s var(--ease),box-shadow .18s ease,background .18s ease;
}
.header-cta:hover{transform:translateY(-2px);background:linear-gradient(135deg,#136657,var(--cta-hover));box-shadow:0 15px 32px rgba(15,91,80,.29)}

/* =========================================================
   HERO — Fresh editorial + roadmap
   ========================================================= */
.hero{
  --page-accent:var(--base-2);
  --page-soft:var(--mint);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:72px 0 66px;
  border-radius:0 0 44px 44px;
  background:
    radial-gradient(circle at 8% 20%,rgba(102,191,168,.24),transparent 30%),
    radial-gradient(circle at 90% 10%,rgba(72,177,207,.14),transparent 31%),
    radial-gradient(circle at 78% 88%,rgba(226,161,45,.08),transparent 28%),
    linear-gradient(130deg,#FBFEFC 0%,#F0FAF5 52%,#EEF8F8 100%);
  border-bottom:1px solid rgba(13,105,85,.06);
}
.hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:520px;height:520px;
  right:-180px;top:-240px;
  border-radius:50%;
  border:1px solid rgba(13,105,85,.09);
  box-shadow:0 0 0 68px rgba(21,145,118,.025),0 0 0 136px rgba(52,127,183,.018);
}
.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:260px;height:260px;
  left:-110px;bottom:-160px;
  border-radius:46% 54% 62% 38%/53% 41% 59% 47%;
  background:linear-gradient(145deg,rgba(102,191,168,.16),rgba(223,245,245,.20));
  transform:rotate(18deg);
}
.hero:has(.eyebrow[style*="#A85D14"]){--page-accent:var(--elem);--page-soft:var(--elem-soft)}
.hero:has(.eyebrow[style*="#3C6E8F"]){--page-accent:var(--mid);--page-soft:var(--mid-soft)}
.hero:has(.eyebrow[style*="#8C3B4A"]){--page-accent:var(--high);--page-soft:var(--high-soft)}
.hero:has(.eyebrow[style*="#A85D14"]) .eyebrow{background:var(--elem)!important}
.hero:has(.eyebrow[style*="#3C6E8F"]) .eyebrow{background:var(--mid)!important}
.hero:has(.eyebrow[style*="#8C3B4A"]) .eyebrow{background:var(--high)!important}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
  gap:58px;
  align-items:center;
}
.hero-grid>div{min-width:0}
.badge-boutique{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 8px 18px 0;
  padding:9px 15px 9px 12px;
  border:1px solid rgba(13,105,85,.12);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:var(--base);
  box-shadow:var(--shadow-xs);
  font-size:12px;
  line-height:1;
  font-weight:900;
  letter-spacing:.01em;
}
.badge-boutique::before{
  content:"";
  width:8px;height:8px;border-radius:50%;
  background:var(--page-accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--page-accent) 14%,transparent);
}
.hero .eyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 18px;
  padding:8px 13px;
  border-radius:10px;
  color:#fff;
  font-size:11px;
  line-height:1;
  font-weight:950;
  letter-spacing:.13em;
  box-shadow:0 7px 20px color-mix(in srgb,var(--page-accent) 20%,transparent);
}
.hero h1{
  max-width:760px;
  margin:0 0 18px;
  color:var(--ink-strong);
  font-size:clamp(38px,4.35vw,58px);
  line-height:1.12;
  font-weight:950;
  letter-spacing:-.058em;
}
.hero h1 strong{
  display:block;
  margin-bottom:7px;
  color:var(--base);
  background:linear-gradient(100deg,var(--base) 0%,var(--base-2) 52%,#2C8FA7 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero:has(.eyebrow) h1 strong{
  background:linear-gradient(100deg,var(--base) 0%,var(--page-accent) 78%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero p.tagline{
  max-width:690px;
  margin:0 0 10px;
  color:#23463D;
  font-size:20px;
  line-height:1.55;
  font-weight:900;
  letter-spacing:-.035em;
}
.hero p.lead{
  max-width:680px;
  margin:0;
  color:#465F58;
  font-size:18px;
  line-height:1.82;
}
.trust-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.trust-chip{
  display:inline-flex;align-items:center;min-height:34px;
  padding:0 13px;
  border:1px solid rgba(13,105,85,.10);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:#2D5C50;
  box-shadow:0 4px 13px rgba(13,105,85,.035);
  font-size:12px;font-weight:850;
}
.trust-chip::before{content:"✓";margin-right:5px;color:var(--base-2);font-weight:950}
.hero .cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:28px}
.btn{
  min-height:54px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 23px;
  border:1px solid transparent;
  border-radius:16px;
  font-size:15px;
  line-height:1;
  font-weight:900;
  transition:transform .18s var(--ease),box-shadow .18s ease,background .18s ease,border-color .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-cta{color:#fff;background:linear-gradient(135deg,#16705F,var(--cta));box-shadow:0 13px 30px rgba(15,91,80,.24)}
.btn-cta:hover{background:linear-gradient(135deg,#136657,var(--cta-hover));box-shadow:0 18px 37px rgba(15,91,80,.31)}
.btn-phone{color:#fff;background:linear-gradient(135deg,#4387B6,var(--mid));box-shadow:0 13px 30px rgba(50,119,168,.22)}
.btn-phone:hover{background:linear-gradient(135deg,#397DAE,#286792);box-shadow:0 18px 36px rgba(50,119,168,.30)}
.btn-ghost{color:var(--base);background:rgba(255,255,255,.72);border-color:rgba(13,105,85,.12);padding:0 18px}
.btn-ghost:hover{background:#fff;border-color:rgba(13,105,85,.28)}

/* 홈 Hero: 검색창을 전환 핵심 요소로 */
.hero .finder-search{max-width:760px;margin:28px 0 18px;position:relative}
.hero .finder-search::before{
  content:"⌕";
  position:absolute;left:19px;top:50%;transform:translateY(-53%);
  color:var(--base-2);font-size:25px;font-weight:800;z-index:2;
}
.hero .finder-search input{
  width:100%;min-height:62px;
  padding:0 20px 0 53px;
  border:1px solid rgba(13,105,85,.15);
  outline:none;border-radius:18px;
  background:rgba(255,255,255,.91);
  color:var(--ink);
  box-shadow:0 15px 36px rgba(13,105,85,.075);
  font-size:16px;font-weight:650;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s var(--ease);
}
.hero .finder-search input:focus{border-color:rgba(21,145,118,.52);box-shadow:0 0 0 4px rgba(21,145,118,.08),0 18px 40px rgba(13,105,85,.09);transform:translateY(-1px)}

/* =========================================================
   GRADE FIT ROADMAP — 사이트 시그니처 카드
   ========================================================= */
.gfr-panel{
  position:relative;
  overflow:hidden;
  padding:29px 27px 27px;
  border:1px solid rgba(13,105,85,.105);
  border-radius:30px;
  background:
    radial-gradient(circle at 95% 5%,color-mix(in srgb,var(--page-accent) 11%,transparent),transparent 30%),
    linear-gradient(155deg,rgba(255,255,255,.97),rgba(247,253,250,.94));
  box-shadow:var(--shadow-lg);
}
.gfr-panel::before{
  content:"";
  position:absolute;right:-70px;bottom:-100px;
  width:220px;height:220px;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--page-accent) 20%,transparent);
  box-shadow:0 0 0 35px color-mix(in srgb,var(--page-accent) 3.5%,transparent),0 0 0 70px color-mix(in srgb,var(--base-3) 2.5%,transparent);
}
.gfr-kicker{position:relative;z-index:2;margin:0 0 5px;color:#6A7D77;font-size:11px;font-weight:950;letter-spacing:.15em}
.gfr-kicker b{color:var(--base)}
.gfr-sub{position:relative;z-index:2;margin:0 0 19px;color:#61766F;font-size:13px;line-height:1.55}
.gfr-step{
  position:relative;z-index:2;
  display:grid;grid-template-columns:46px 1fr;gap:14px;align-items:center;
  min-height:68px;padding:10px 12px;
  border:1px solid transparent;border-radius:18px;
  transition:transform .18s var(--ease),background .18s ease,border-color .18s ease;
}
.gfr-step:hover{transform:translateX(3px)}
.gfr-step.is-active{
  background:linear-gradient(90deg,color-mix(in srgb,var(--page-accent) 10%,white),rgba(255,255,255,.72));
  border-color:color-mix(in srgb,var(--page-accent) 22%,transparent);
  box-shadow:0 8px 22px color-mix(in srgb,var(--page-accent) 8%,transparent);
}
.gfr-node{
  width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  border-radius:15px!important;
  color:#fff;font-size:13px;font-weight:950;
  box-shadow:0 7px 18px rgba(13,105,85,.11);
}
.gfr-body{min-width:0}
.gfr-body b{display:block;margin-bottom:2px;font-size:16px;line-height:1.35;font-weight:950}
.gfr-body span{display:block;color:#647871;font-size:13px;line-height:1.5}
.gfr-connector{width:2px;height:14px;margin:1px 0 1px 34px;border-radius:999px;background:var(--line)}
.gfr-connector.is-past{background:linear-gradient(180deg,var(--elem),var(--mid))}
.gfr-connector.is-past2{background:linear-gradient(180deg,var(--mid),var(--high))}

/* =========================================================
   SECTIONS — 충분한 여백, 가독성 높은 편집형 리듬
   ========================================================= */
.section{position:relative;padding:74px 0}
.section-alt{
  background:
    radial-gradient(circle at 5% 20%,rgba(102,191,168,.07),transparent 26%),
    linear-gradient(180deg,rgba(234,246,240,.78),rgba(245,251,248,.68));
  border-top:1px solid rgba(13,105,85,.035);
  border-bottom:1px solid rgba(13,105,85,.035);
}
.section h2{
  position:relative;
  max-width:790px;
  margin:0 0 10px;
  padding-left:17px;
  font-size:clamp(27px,3vw,36px);
  line-height:1.28;
  font-weight:950;
  letter-spacing:-.05em;
}
.section h2::before{
  content:"";position:absolute;left:0;top:.12em;
  width:5px;height:1.08em;border-radius:999px;
  background:linear-gradient(180deg,var(--base-3),var(--base));
}
.section .sub{max-width:760px;margin:0 0 28px;color:#536B64;font-size:16px;line-height:1.78;font-weight:520}
.section>.wrap>p[style*="max-width:680px"]{
  max-width:820px!important;
  margin:0;
  padding:24px 27px;
  border-left:4px solid var(--base-3);
  border-radius:0 18px 18px 0;
  background:linear-gradient(90deg,rgba(221,244,234,.72),rgba(255,255,255,.55));
  color:#405B53;
  font-size:16px!important;
  line-height:1.85;
}

/* =========================================================
   CARDS
   ========================================================= */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{
  position:relative;overflow:hidden;min-width:0;
  padding:27px 25px 29px;
  border:1px solid rgba(13,105,85,.095);
  border-radius:23px;
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow-xs);
  transition:transform .2s var(--ease),box-shadow .2s ease,border-color .2s ease;
}
.card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;
  background:linear-gradient(90deg,var(--accent,var(--base)),color-mix(in srgb,var(--accent,var(--base)) 45%,white));
}
.card::after{
  content:"";position:absolute;right:-42px;bottom:-50px;width:116px;height:116px;border-radius:50%;
  background:color-mix(in srgb,var(--accent,var(--base)) 4.5%,transparent);
  transition:transform .24s var(--ease);
}
.card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent,var(--base)) 22%,transparent);box-shadow:0 22px 48px rgba(13,105,85,.09)}
.card:hover::after{transform:scale(1.25)}
.card h3{position:relative;z-index:1;margin:0 0 10px;color:var(--ink-strong);font-size:18px;line-height:1.42;font-weight:950;letter-spacing:-.035em}
.card p{position:relative;z-index:1;margin:0;color:#516A62;font-size:16px;line-height:1.78;font-weight:500}

/* 지점 허브의 3개 학년 카드를 더 선명한 선택 UI로 */
.hero>.wrap:not(.hero-grid) .grid-3{margin-top:32px!important;gap:14px}
.hero>.wrap:not(.hero-grid) .grid-3 .card{padding:24px 23px 25px;background:rgba(255,255,255,.88);box-shadow:0 12px 30px rgba(13,105,85,.07)}
.hero>.wrap:not(.hero-grid) .grid-3 .card h3{font-size:20px}
.hero>.wrap:not(.hero-grid) .grid-3 .card p{font-size:15px}

/* =========================================================
   BENTO — 학년별 안내
   ========================================================= */
.bento-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.bento-cell{
  grid-column:span 4;
  position:relative;overflow:hidden;min-width:0;min-height:154px;
  padding:22px 20px;
  border:1px solid rgba(13,105,85,.085);
  border-radius:20px;
  background:rgba(255,255,255,.92);
  box-shadow:0 7px 21px rgba(13,105,85,.035);
  transition:transform .2s var(--ease),border-color .2s ease,box-shadow .2s ease;
}
.bento-cell::after{content:"";position:absolute;right:-24px;bottom:-34px;width:90px;height:90px;border-radius:50%;background:color-mix(in srgb,var(--accent,var(--base)) 5%,transparent)}
.bento-cell:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent,var(--base)) 24%,transparent);box-shadow:0 16px 34px rgba(13,105,85,.065)}
.bento-cell b{position:relative;z-index:1;display:block;margin:0 0 9px;color:var(--accent,var(--base));font-size:20px;line-height:1.35;font-weight:950}
.bento-cell b em{display:block;margin-top:5px;color:#345148;font-size:14px;line-height:1.45;font-style:normal;font-weight:800}
.bento-cell span{position:relative;z-index:1;display:block;color:#526A62;font-size:15px;line-height:1.72;font-weight:500}

/* =========================================================
   STRENGTH / INFO
   ========================================================= */
.strength-list{display:grid;gap:11px}
.strength-item{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start;min-width:0;
  padding:19px 20px;
  border:1px solid rgba(13,105,85,.085);border-radius:18px;
  background:rgba(255,255,255,.93);
  transition:transform .18s var(--ease),border-color .18s ease,box-shadow .18s ease;
}
.strength-item:hover{transform:translateX(4px);border-color:rgba(13,105,85,.18);box-shadow:var(--shadow-xs)}
.strength-item .chk{width:30px!important;height:30px!important;border-radius:10px!important;background:linear-gradient(145deg,var(--base-2),var(--base))!important;color:#fff;font-size:13px!important;box-shadow:0 7px 17px rgba(13,105,85,.16)}
.strength-item p{margin:1px 0 0;color:#36564D;font-size:16px;line-height:1.74;font-weight:520}

.info-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  overflow:hidden;padding:1px;
  border:1px solid rgba(13,105,85,.095);border-radius:25px;
  background:var(--line);box-shadow:var(--shadow-sm);
}
.info-item{min-width:0;padding:22px 23px;background:#fff;transition:background .16s ease}
.info-item:hover{background:#F7FCF9}
.info-item .lbl{margin:0 0 7px;color:#647A72;font-size:12px;line-height:1.2;font-weight:900;letter-spacing:.035em;text-transform:uppercase}
.info-item .val{margin:0;color:#1F443A;font-size:16px;line-height:1.65;font-weight:850;overflow-wrap:anywhere}
.info-item .val a{color:var(--base);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(13,105,85,.28)}
.legal-note{margin-top:13px;color:#74877F;font-size:12px;line-height:1.72}

/* =========================================================
   MAP
   ========================================================= */
.map-card{overflow:hidden;border:1px solid rgba(13,105,85,.10);border-radius:26px;background:#fff;box-shadow:var(--shadow-sm)}
.map-canvas{width:100%;height:340px;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#E9F6F0,#E8F5F8)}
.map-address{margin:0;padding:16px 19px;border-top:1px solid var(--line);background:#fff;color:#526B63;font-size:14px;line-height:1.55;font-weight:760}

/* =========================================================
   CHIPS
   ========================================================= */
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  min-height:38px;display:inline-flex;align-items:center;
  padding:0 15px;border:1px solid rgba(13,105,85,.11);border-radius:999px;
  background:rgba(255,255,255,.93);color:#2F6658;
  box-shadow:0 4px 12px rgba(13,105,85,.028);
  font-size:13px;font-weight:800;
  transition:transform .16s var(--ease),background .16s ease,border-color .16s ease;
}
.chip::before{content:"•";margin-right:6px;color:var(--base-3)}
.chip:hover{transform:translateY(-2px);background:var(--mint);border-color:rgba(13,105,85,.21)}

/* =========================================================
   FAQ
   ========================================================= */
.faq-item{
  position:relative;overflow:hidden;margin:0 0 10px;
  border:1px solid rgba(13,105,85,.09);border-radius:19px;
  background:rgba(255,255,255,.94);box-shadow:0 5px 16px rgba(13,105,85,.025);
  transition:transform .18s var(--ease),border-color .18s ease,box-shadow .18s ease;
}
.faq-item:hover{transform:translateY(-2px);border-color:rgba(13,105,85,.16);box-shadow:0 11px 26px rgba(13,105,85,.05)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 56px 20px 22px;color:#1F443A;font-size:16px;line-height:1.58;font-weight:900}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";position:absolute;right:18px;top:17px;
  width:31px;height:31px;display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--mint);color:var(--base);
  font-size:20px;line-height:1;font-weight:700;transition:transform .2s ease,background .2s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);background:var(--mid-soft);color:var(--mid)}
.faq-item .a{margin:0;padding:0 22px 21px;color:#526A62;font-size:15px;line-height:1.8;font-weight:500}

/* =========================================================
   NEXT GRADE
   ========================================================= */
.next-grade{
  position:relative;overflow:hidden;
  min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:27px 30px;border-radius:26px;color:#fff;font-weight:850;
  box-shadow:0 20px 45px rgba(13,105,85,.14);
  transition:transform .2s var(--ease),box-shadow .2s ease;
}
.next-grade::before{content:"NEXT";position:absolute;right:72px;top:6px;color:rgba(255,255,255,.07);font-size:63px;line-height:1;font-weight:950;letter-spacing:-.06em}
.next-grade:hover{transform:translateY(-3px);box-shadow:0 27px 56px rgba(13,105,85,.20)}
.next-grade>span:first-child{position:relative;z-index:2;min-width:0}
.next-grade .ng-label{display:block;margin:0 0 4px;opacity:.85;font-size:12px;font-weight:750}
.next-grade .ng-title{display:block;font-size:19px;line-height:1.45;font-weight:950}
.next-grade span.arrow{position:relative;z-index:2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.11);font-size:21px}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
  position:relative;overflow:hidden;margin-top:18px;padding:43px 0;
  background:linear-gradient(135deg,#0B5949,var(--base));color:#fff;font-size:13px;
}
.site-footer::after{content:"";position:absolute;right:-110px;top:-180px;width:340px;height:340px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.022),0 0 0 110px rgba(255,255,255,.014)}
.site-footer .wrap{position:relative;z-index:2;display:flex;flex-direction:column;gap:7px;color:rgba(255,255,255,.90)}
.site-footer a{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.32)}

/* =========================================================
   MOBILE FIXED CTA
   ========================================================= */
.mobile-cta-bar{
  display:none;position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));z-index:120;
  gap:8px;padding:8px;
  border:1px solid rgba(13,105,85,.10);border-radius:20px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 17px 42px rgba(13,74,61,.17);
}
.mobile-cta-bar a{
  min-width:0;height:var(--mobile-cta-h);display:flex;align-items:center;justify-content:center;flex:1 1 0;
  padding:0 10px;border-radius:14px;font-size:14px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mobile-cta-bar .m-phone{color:#fff;background:linear-gradient(135deg,#4387B6,var(--mid));box-shadow:0 7px 18px rgba(50,119,168,.20)}
.mobile-cta-bar .m-consult{color:#fff;background:linear-gradient(135deg,#16705F,var(--cta));box-shadow:0 7px 18px rgba(15,91,80,.22)}

/* =========================================================
   HOME / FINDER
   ========================================================= */
.finder-search{margin:22px 0}
.finder-search input{width:100%;min-height:56px;padding:0 18px;border:1px solid rgba(13,105,85,.13);outline:none;border-radius:16px;background:#fff;color:var(--ink);font-size:15px;box-shadow:0 7px 21px rgba(13,105,85,.04)}
.region-block{
  position:relative;overflow:hidden;margin-bottom:13px;scroll-margin-top:90px;
  border:1px solid rgba(13,105,85,.09);border-radius:20px;
  background:rgba(255,255,255,.94);box-shadow:0 6px 19px rgba(13,105,85,.025);
}
.region-block::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--base-3),var(--base))}
.region-title{
  min-height:61px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0;padding:15px 21px 15px 25px;cursor:pointer;list-style:none;
  color:#20483D;font-size:16px;font-weight:950;
}
.region-title::-webkit-details-marker{display:none}
.region-title>span{display:flex;align-items:center;gap:9px}
.region-title::before{content:"›";position:absolute;right:22px;color:#6C827B;font-size:24px;line-height:1;transition:transform .18s ease}
.region-block[open] .region-title::before{transform:rotate(90deg)}
.region-title b{margin-left:4px;color:#71857E;font-size:12px;font-weight:760}
.branch-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 20px 20px}
.branch-card{
  min-width:0;display:flex;flex-direction:column;overflow:hidden;
  border:1px solid rgba(13,105,85,.085);border-radius:17px;
  background:linear-gradient(145deg,#FBFEFC,#F4FAF7);
  transition:transform .18s var(--ease),border-color .18s ease,box-shadow .18s ease;
}
.branch-card:hover{transform:translateY(-3px);border-color:rgba(13,105,85,.18);box-shadow:0 13px 29px rgba(13,105,85,.065)}
.bc-main{display:block;padding:17px 17px 14px;flex:1 1 auto}
.bc-main b{display:block;margin-bottom:6px;color:var(--base);font-size:16px;line-height:1.4;font-weight:950}
.bc-main .bc-row{display:block;margin-top:3px;color:#677B74;font-size:12px;line-height:1.58;overflow-wrap:anywhere}
.bc-grade-links{display:flex;border-top:1px solid var(--line);background:#fff}
.bc-grade-links a{flex:1 1 0;text-align:center;padding:10px 4px;background:#fff;font-size:12px;font-weight:900;transition:background .15s ease,transform .15s ease}
.bc-grade-links a:hover{background:var(--mint)}
.bc-grade-links a+a{border-left:1px solid var(--line)}
.show-more-btn{display:block;width:calc(100% - 40px);min-height:44px;margin:0 20px 20px;padding:0 14px;border:1px dashed rgba(13,105,85,.22);border-radius:13px;background:var(--surface-mint);color:var(--base);font-size:13px;font-weight:900;cursor:pointer}
.show-more-btn:hover{background:var(--mint)}

/* =========================================================
   HIGH LEGIBILITY · 30~50대 학부모 가독성 보정
   ========================================================= */
.hero p.lead,.section .sub,.card p,.bento-cell span,.strength-item p,.faq-item .a{
  text-wrap:pretty;
}
.btn,.header-cta,.mobile-cta-bar a{
  letter-spacing:-.02em;
  text-shadow:0 1px 0 rgba(0,0,0,.04);
}
.btn-cta,.header-cta,.mobile-cta-bar .m-consult{
  border-color:rgba(7,68,58,.12);
}
.btn-phone,.mobile-cta-bar .m-phone{
  border-color:rgba(30,92,136,.12);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .wrap{width:min(100% - 40px,980px)}
  .nav-links{gap:20px}
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);gap:38px}
  .hero h1{font-size:clamp(33px,4.3vw,49px)}
  .section{padding:64px 0}
}

@media (max-width:900px){
  html{scroll-padding-top:74px}
  .site-header .wrap{min-height:68px}
  .nav-links{display:none}
  .hero{padding:53px 0 48px;border-radius:0 0 32px 32px}
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero-grid>div:last-child{max-width:680px;width:100%}
  .gfr-panel{padding:25px 24px}
  .section{padding:58px 0}
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .branch-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-cta-bar{display:flex}
}

@media (max-width:700px){
  .wrap{width:calc(100% - 30px)}
  .brand{font-size:17px}
  .brand .tier-dot{width:11px;height:11px}
  .header-cta{min-height:43px;padding:0 14px;border-radius:13px;font-size:12px}
  .hero{padding:45px 0 39px}
  .hero::before{width:330px;height:330px;right:-180px;top:-150px}
  .badge-boutique{font-size:11px;margin-bottom:15px}
  .hero .eyebrow{font-size:10px;margin-bottom:14px}
  .hero h1{font-size:clamp(31px,8.8vw,43px);line-height:1.15;letter-spacing:-.052em}
  .hero p.tagline{font-size:17px}
  .hero p.lead{font-size:16px;line-height:1.76}
  .hero .cta-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:23px}
  .hero .cta-row .btn{width:100%;min-width:0;padding:0 13px;min-height:54px;font-size:14px}
  .hero .cta-row .btn-ghost{grid-column:1/-1}
  .hero .finder-search{margin-top:22px}
  .hero .finder-search input{min-height:58px;font-size:14px}
  .gfr-panel{padding:22px 18px;border-radius:23px;box-shadow:0 18px 45px rgba(13,105,85,.095)}
  .gfr-step{grid-template-columns:42px 1fr;gap:12px;min-height:62px;padding:8px 9px}
  .gfr-node{width:42px;height:42px;border-radius:14px!important}
  .gfr-connector{margin-left:29px}
  .section{padding:50px 0}
  .section h2{padding-left:14px;font-size:clamp(25px,7vw,31px)}
  .section .sub{font-size:15px;margin-bottom:22px}
  .section>.wrap>p[style*="max-width:680px"]{padding:19px 18px;font-size:16px!important}
  .card{padding:22px 20px 24px;border-radius:19px}
  .card h3{font-size:18px}
  .card p{font-size:15px}
  .bento-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bento-cell{grid-column:auto;min-height:140px;padding:19px 17px}
  .info-grid{grid-template-columns:1fr;border-radius:20px}
  .info-item{padding:19px}
  .map-canvas{height:260px}
  .faq-item summary{padding:19px 49px 19px 18px;font-size:15px}
  .faq-item summary::after{right:13px;top:15px}
  .faq-item .a{padding:0 18px 19px;font-size:15px}
  .next-grade{min-height:98px;padding:22px 20px;border-radius:21px}
  .next-grade::before{font-size:45px;right:50px;top:13px}
  .next-grade .ng-title{font-size:16px}
  .branch-list{grid-template-columns:1fr;padding:0 14px 15px}
  .region-title{padding-left:19px}
  .show-more-btn{width:calc(100% - 28px);margin:0 14px 15px}
  .site-footer{padding:37px 0 calc(37px + 68px)}
}

@media (max-width:430px){
  .wrap{width:calc(100% - 26px)}
  .site-header .wrap{min-height:64px;gap:8px}
  .brand{font-size:16px;gap:7px}
  .header-cta{min-height:41px;padding:0 12px;font-size:11px}
  .hero{padding:39px 0 33px}
  .hero h1{font-size:clamp(29px,9.7vw,38px)}
  .hero p.tagline{font-size:16px}
  .hero .cta-row{grid-template-columns:1fr}
  .hero .cta-row .btn-ghost{grid-column:auto}
  .btn{min-height:51px}
  .trust-chip{font-size:11px;padding:0 11px}
  .gfr-kicker{letter-spacing:.1em}
  .bento-grid{grid-template-columns:1fr}
  .bento-cell{min-height:auto}
  .strength-item{grid-template-columns:30px minmax(0,1fr);padding:17px 15px}
  .strength-item .chk{width:28px!important;height:28px!important}
  .chip{min-height:35px;padding:0 12px;font-size:12px}
  .next-grade::before{display:none}
  .mobile-cta-bar{left:7px;right:7px;bottom:max(7px,env(safe-area-inset-bottom));padding:7px;border-radius:18px}
  .mobile-cta-bar a{height:56px;font-size:14px}
}

@media (max-width:360px){
  .wrap{width:calc(100% - 22px)}
  .brand{font-size:15px}
  .header-cta{padding:0 10px;font-size:10.5px}
  .hero h1{font-size:28px}
  .hero p.lead{font-size:15px}
  .gfr-panel{padding:19px 14px}
  .gfr-body b{font-size:15px}
  .gfr-body span{font-size:12px}
  .mobile-cta-bar a{font-size:13px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
@media (hover:none){
  .card:hover,.bento-cell:hover,.branch-card:hover,.faq-item:hover,.next-grade:hover,.btn:hover,.header-cta:hover{transform:none}
}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid rgba(50,119,168,.30);outline-offset:3px}


/* =========================================================
   2026-08-17 FOOTER + FLOATING CTA VISIBILITY PATCH
   요청 범위만 수정: 하단 가독성 / 상담 CTA / PC 플로팅 버튼
   ========================================================= */
.site-footer{
  margin-top:24px;
  padding:56px 0 58px;
  background:linear-gradient(135deg,#064C40 0%,#0B6654 58%,#0D735E 100%);
  color:#fff;
  font-size:15px;
  line-height:1.78;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.site-footer .wrap{
  gap:10px;
  color:#fff;
}
.site-footer .wrap>div{
  color:rgba(255,255,255,.96);
}
.site-footer .wrap>div:first-child{
  color:#fff;
  font-weight:850;
}
.site-footer a{
  color:#fff;
  font-weight:850;
  text-decoration-color:rgba(255,255,255,.60);
}
/* 홈 하단 '지금 상담 신청하기'를 확실한 CTA 버튼으로 */
.site-footer a[href*="naver.me"]{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:8px;
  padding:0 22px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:14px;
  background:#fff;
  color:#0A5A4A !important;
  font-size:15px;
  font-weight:950 !important;
  text-decoration:none !important;
  box-shadow:0 12px 28px rgba(0,0,0,.15);
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.site-footer a[href*="naver.me"]:hover{
  transform:translateY(-2px);
  background:#F2FFFA;
  box-shadow:0 16px 34px rgba(0,0,0,.20);
}

/* PC에서도 우측 하단에 상담 플로팅 버튼 노출 */
@media (min-width:901px){
  .mobile-cta-bar{
    display:flex;
    left:auto;
    right:24px;
    bottom:26px;
    width:196px;
    flex-direction:column;
    gap:9px;
    padding:9px;
    border-radius:20px;
    background:rgba(255,255,255,.96);
    box-shadow:0 18px 46px rgba(6,76,64,.22);
  }
  .mobile-cta-bar a{
    width:100%;
    flex:0 0 auto;
    height:54px;
    font-size:14px;
    border-radius:14px;
  }
}

@media (max-width:900px){
  .site-footer{
    padding:43px 0 calc(43px + 78px + env(safe-area-inset-bottom));
    font-size:14px;
  }
  .site-footer .wrap{gap:9px}
  .site-footer a[href*="naver.me"]{
    width:100%;
    min-height:54px;
    margin-top:10px;
    font-size:15px;
  }
  .mobile-cta-bar{
    flex-direction:row;
    width:auto;
  }
}


/* =========================================================
   2026-08-17 HEADER NAV RECOVERY
   목적: 헤더 메뉴 중복/세로 노출 방지 + 실제 섹션만 연결
   데이터/SEO 영향 없음
   ========================================================= */
html{scroll-behavior:smooth}
#program,#info,#faq,#location,#branch-list,#site-footer{scroll-margin-top:92px}

/* 헤더 내부 메뉴만 정상 네비게이션으로 허용 */
.site-header{
  min-height:76px!important;
  height:auto!important;
  overflow:visible!important;
}
.site-header>.wrap,
.site-header .wrap{
  min-height:76px!important;
  height:auto!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:22px!important;
}
.site-header .nav-links{
  position:static!important;
  inset:auto!important;
  width:auto!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:30px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}
.site-header .nav-links a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-height:40px!important;
  margin:0!important;
  padding:8px 0!important;
  white-space:nowrap!important;
}
.site-header .header-cta{
  position:static!important;
  inset:auto!important;
  margin:0!important;
  transform:none;
}

/* Claude 등에서 생성된 헤더 외부 복제 메뉴가 있다면 숨김 */
body > .nav-links,
body > nav.nav-links,
body > .header-cta{
  display:none!important;
}

/* 본문 섹션이 숨김/축소되는 사고 방지 */
body > .hero,
body > .section,
body > footer.site-footer{
  visibility:visible!important;
  opacity:1!important;
  max-height:none!important;
}
body > .hero,
body > .section{display:block!important}

@media (max-width:700px){
  .site-header{min-height:64px!important}
  .site-header>.wrap,.site-header .wrap{min-height:64px!important}
  .site-header .nav-links{display:none!important}
  .site-header .header-cta{min-height:42px!important;padding:0 15px!important}
  #program,#info,#faq,#location,#branch-list,#site-footer{scroll-margin-top:76px}
}


/* =========================================================
   2026-08-17 CHECK CENTER + KAKAO MAP LINK + RESPONSIVE PATCH
   ========================================================= */
/* 체크 아이콘은 PC/모바일 모두 정중앙 고정 */
.strength-item .chk{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  padding:0!important;
  margin:0!important;
  line-height:1!important;
  text-align:center!important;
  vertical-align:middle!important;
}
.strength-item .chk::before,
.strength-item .chk::after{line-height:1!important}

/* 불안정한 외부 지도를 대신하는 카카오맵 연결 카드 */
.map-link-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:26px;
  align-items:center;
  min-height:220px;
  padding:34px 36px;
  border:1px solid rgba(13,105,85,.12);
  border-radius:26px;
  background:
    radial-gradient(circle at 88% 18%,rgba(55,166,128,.13),transparent 28%),
    linear-gradient(145deg,#F7FCFA 0%,#E9F7F3 55%,#EAF5FB 100%);
  box-shadow:var(--shadow-sm);
}
.map-link-card::after{
  content:"";
  position:absolute;
  right:-54px;bottom:-82px;
  width:230px;height:230px;border-radius:50%;
  border:1px solid rgba(13,105,85,.10);
  box-shadow:0 0 0 34px rgba(13,105,85,.025),0 0 0 68px rgba(50,119,168,.018);
}
.map-link-copy{position:relative;z-index:2;min-width:0}
.map-link-kicker{
  display:inline-flex;align-items:center;gap:7px;
  margin:0 0 10px;color:var(--base);
  font-size:12px;font-weight:950;letter-spacing:.08em;
}
.map-link-title{
  margin:0 0 10px;color:var(--ink-strong);
  font-size:clamp(23px,2.3vw,32px);line-height:1.3;font-weight:950;letter-spacing:-.04em;
}
.map-link-address{
  margin:0;color:#456259;font-size:16px;line-height:1.7;font-weight:700;overflow-wrap:anywhere;
}
.map-link-actions{
  position:relative;z-index:2;
  display:flex;flex-direction:column;gap:9px;
  min-width:210px;
}
.map-link-btn{
  min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:0 20px;border-radius:16px;text-decoration:none;
  font-size:14px;font-weight:950;white-space:nowrap;
  transition:transform .18s var(--ease),box-shadow .18s ease;
}
.map-link-btn:hover{transform:translateY(-2px)}
.map-link-btn.primary{
  color:#fff;background:linear-gradient(135deg,#0F5B50,#16705F);
  box-shadow:0 12px 28px rgba(15,91,80,.20);
}
.map-link-btn.secondary{
  color:#245E52;background:#fff;border:1px solid rgba(13,105,85,.16);
}
.map-link-note{margin:10px 0 0;color:#71847D;font-size:12px;line-height:1.6}

/* PC 가독성 / 정렬 보강 */
@media (min-width:901px){
  .strength-item{align-items:center}
  .strength-item .chk{transform:none!important}
}

@media (max-width:900px){
  .map-link-card{grid-template-columns:1fr;gap:20px;padding:28px 25px;min-height:0}
  .map-link-actions{display:grid;grid-template-columns:1fr 1fr;min-width:0}
}
@media (max-width:700px){
  .strength-item{grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
  .strength-item .chk{width:30px!important;height:30px!important;font-size:14px!important}
  .map-link-card{padding:23px 20px;border-radius:21px}
  .map-link-title{font-size:23px}
  .map-link-address{font-size:15px}
  .map-link-actions{grid-template-columns:1fr}
  .map-link-btn{width:100%;min-height:54px}
}
@media (max-width:430px){
  .strength-item{grid-template-columns:30px minmax(0,1fr);gap:11px;padding:17px 15px}
  .strength-item .chk{width:28px!important;height:28px!important;font-size:13px!important;border-radius:9px!important}
  .map-link-card{padding:20px 17px}
  .map-link-title{font-size:21px}
  .map-link-address{font-size:14px}
}
