
/* ═══════════════ 토큰 ═══════════════ */
:root{
  --navy:#13294B; --navy-800:#0C1B33; --navy-600:#0B5CA0; --navy-300:#5A7CAE;
  --gold:#FFC400; --gold-soft:#FFF3D2;
  --ink:#0E1726; --slate:#5B6B84; --line:#E2E8F2; --bg:#F4F7FC; --white:#fff;
  --ok:#1F9D6B;
  --sans:"Pretendard Variable",Pretendard,-apple-system,"Malgun Gothic",sans-serif;
  --mono:"IBM Plex Mono","D2Coding",monospace;
  --wrap:1560px;
  --r:10px;
  --sh:0 1px 2px rgba(14,23,38,.06),0 8px 24px rgba(14,23,38,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--white);
  font-size:17.5px;line-height:1.74;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,3.4vw,56px);width:100%}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ═══════════════ 헤더 / GNB ═══════════════ */
.hdr{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:36px;height:78px}
.logo{display:flex;align-items:center;flex-shrink:0;height:42px}
.logo img{height:42px;width:auto;display:block}
nav.gnb{display:flex;gap:4px;flex:1}
nav.gnb>div{position:relative}
nav.gnb>div>a{display:block;padding:0 15px;line-height:78px;font-weight:700;font-size:21px;color:#1B2C45;letter-spacing:-.03em}
nav.gnb>div:hover>a,nav.gnb>div:focus-within>a{color:var(--navy);box-shadow:inset 0 -3px 0 var(--gold)}
.mega{position:absolute;left:50%;transform:translateX(-50%) translateY(6px);top:78px;min-width:266px;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);
  padding:10px;opacity:0;visibility:hidden;transition:.16s ease}
nav.gnb>div:hover .mega,nav.gnb>div:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mega a{display:block;padding:10px 13px;border-radius:7px;font-size:16.5px;color:#2E4363;white-space:nowrap}
.mega a:hover{background:var(--bg);color:var(--navy)}
.mega a b{display:block;font-weight:600}
.mega a span{font-size:13.5px;color:var(--slate);font-weight:400}
.hdr-cta{display:flex;gap:8px;align-items:center;flex-shrink:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;
  font-weight:700;font-size:17px;padding:12px 22px;border:1px solid transparent;cursor:pointer;transition:.15s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-600)}
.btn-gold{background:var(--gold);color:#33280A}
.btn-gold:hover{background:#FFD142}
.btn-ghost{background:#fff;color:var(--navy);border-color:#C9D6E8}
.btn-ghost:hover{border-color:var(--navy);background:var(--bg)}
.btn-sm{padding:10px 16px;font-size:16px}
.burger{display:none;width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:8px}

/* ═══════════════ 히어로 ═══════════════ */
.hero{background:linear-gradient(168deg,#0C1B33 0%,#13294B 46%,#1B3F72 100%);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;
  background:radial-gradient(760px 380px at 82% 18%,rgba(232,163,61,.20),transparent 62%)}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:clamp(40px,5vw,86px);align-items:center;padding-top:64px;padding-bottom:68px;
  min-height:calc(100vh - 78px)}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:14px;
  letter-spacing:.04em;color:var(--gold);border:1px solid rgba(232,163,61,.42);
  border-radius:100px;padding:6px 14px;margin-bottom:22px}
h1{font-size:clamp(30px,3.6vw,56px);line-height:1.24;margin:0 0 20px;letter-spacing:-.035em;font-weight:800}
h1 .hl{color:var(--gold)}
.hero p.lead{font-size:clamp(18.5px,1.35vw,22px);color:#C4D5ED;margin:0 0 30px;max-width:600px}
.hero-btns{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.hero-note{font-size:15.5px;color:#93AACB;display:flex;gap:18px;flex-wrap:wrap}
.hero-note span::before{content:"✓";color:var(--gold);margin-right:6px;font-weight:700}

/* 시그니처: 플랫폼 스위처 목업 */
.demo{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:12px;
  box-shadow:0 30px 70px rgba(0,0,0,.35)}
.demo-tabs{display:flex;gap:5px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}
.demo-tabs button{flex:0 0 auto;background:transparent;border:1px solid rgba(255,255,255,.18);color:#C3D4EA;
  border-radius:100px;padding:8px 16px;font-size:15px;font-weight:600;cursor:pointer;transition:.15s}
.demo-tabs button:hover{border-color:rgba(232,163,61,.6);color:#fff}
.demo-tabs button[aria-selected="true"]{background:var(--gold);border-color:var(--gold);color:#33280A}
.win{background:#fff;border-radius:9px;overflow:hidden;color:var(--ink)}
.win-bar{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#EEF2F8;border-bottom:1px solid var(--line)}
.win-bar i{width:9px;height:9px;border-radius:50%;background:#D3DBE7;display:block}
.win-url{flex:1;background:#fff;border:1px solid var(--line);border-radius:5px;padding:4px 10px;
  font-family:var(--mono);font-size:12.5px;color:var(--slate);margin-left:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panel{display:none;padding:16px;min-height:274px}
.panel.on{display:block;animation:fade .3s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel h4{margin:0 0 4px;font-size:17.5px;letter-spacing:-.02em}
.panel .sub{font-size:14px;color:var(--slate);margin:0 0 14px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.kpi{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 10px}
.kpi b{display:block;font-family:var(--mono);font-size:18px;color:var(--navy);letter-spacing:-.02em}
.kpi span{font-size:12.5px;color:var(--slate)}
.bars{display:flex;align-items:flex-end;gap:6px;height:76px;padding-top:6px}
.bars i{flex:1;background:linear-gradient(180deg,#5A7CAE,#13294B);border-radius:3px 3px 0 0;display:block;
  animation:grow .7s cubic-bezier(.2,.8,.3,1) backwards}
.bars i:nth-child(4n){background:linear-gradient(180deg,#F2B355,#E8A33D)}
@keyframes grow{from{height:4px!important;opacity:.3}}
.grid-mock{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;background:#E9F0F7;border:1px solid var(--line);
  border-radius:8px;padding:10px;min-height:150px;align-content:start}
.grid-mock i{aspect-ratio:1.6;background:var(--navy-600);border-radius:2px;display:block;opacity:.9;
  animation:pop .4s ease backwards}
.grid-mock i.g{background:var(--gold)}
.grid-mock i.n{background:transparent;box-shadow:inset 0 0 0 1px #CBD8E8}
@keyframes pop{from{opacity:0;transform:scale(.4)}}
.rows{display:flex;flex-direction:column;gap:7px}
.row-i{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.row-i .th{width:44px;height:34px;border-radius:5px;background:linear-gradient(135deg,#D9E4F2,#B9CCE6);flex-shrink:0}
.row-i .th.g{background:linear-gradient(135deg,#FBF0DC,#F2C97F)}
.row-i b{font-size:14.5px;display:block;font-weight:600}
.row-i span{font-size:13px;color:var(--slate)}
.row-i em{margin-left:auto;font-family:var(--mono);font-size:14px;color:var(--navy);font-style:normal;flex-shrink:0}
.tagline{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.tagline b{font-size:13px;font-weight:600;background:#FFF3D2;color:#7A5A05;border-radius:100px;padding:4px 10px}

/* ═══════════════ 공통 섹션 ═══════════════ */
section{padding:86px 0}
.sec-alt{background:var(--bg)}
.sec-navy{background:var(--navy);color:#fff}
.sec-head{max-width:840px;margin:0 0 44px}
.sec-head.center{margin:0 auto 48px;text-align:center;max-width:900px}
.tag{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--gold);letter-spacing:.06em;
  text-transform:uppercase;display:block;margin-bottom:12px}
.sec-navy .tag{color:var(--gold)}
h2{font-size:clamp(25px,2.5vw,40px);line-height:1.32;margin:0 0 14px;letter-spacing:-.035em;font-weight:800}
.sec-head p{font-size:18.5px;color:var(--slate);margin:0;line-height:1.7}
.sec-navy .sec-head p{color:#B7C8E0}
h3{font-size:22px;margin:0 0 10px;letter-spacing:-.03em;font-weight:700}

/* 지표 스트립 */
.stats{border-top:1px solid rgba(255,255,255,.14);background:var(--navy-800);color:#fff}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.1)}
.stat{background:var(--navy-800);padding:26px 20px;text-align:center}
.stat b{display:block;font-family:var(--mono);font-size:36px;font-weight:600;color:var(--gold);letter-spacing:-.03em}
.stat span{font-size:15.5px;color:#B4C7E0}

/* 플랫폼 카드 */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 24px 24px;transition:.2s;position:relative}
.card:hover{border-color:var(--navy-300);box-shadow:var(--sh);transform:translateY(-2px)}
.card .num{font-family:var(--mono);font-size:13px;color:var(--navy-300);letter-spacing:.08em}
.card .ic{width:42px;height:42px;border-radius:9px;background:#FFF3D2;display:grid;place-items:center;
  font-size:21px;margin:12px 0 14px}
.card h3{font-size:20.5px;margin-bottom:9px}
.card p{margin:0 0 14px;font-size:16.5px;color:#4E5F79;line-height:1.72}
.card ul{margin:0;padding:0;list-style:none;font-size:15.5px;color:#3C4E68}
.card ul li{padding:5px 0 5px 16px;position:relative;border-top:1px solid #F0F4F9}
.card ul li::before{content:"";position:absolute;left:2px;top:13px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.card .soon{position:absolute;top:22px;right:22px;font-size:12.5px;font-weight:600;color:#7A5A05;
  background:#FFF3D2;border-radius:100px;padding:3px 9px}
.card .live{position:absolute;top:22px;right:22px;font-size:12.5px;font-weight:600;color:#0E6B49;
  background:#E4F5EE;border-radius:100px;padding:3px 9px}

/* 워크플로우 */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s}
.step{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 20px;position:relative}
.step::before{counter-increment:s;content:"STEP " counter(s);font-family:var(--mono);font-size:13px;
  color:var(--gold);font-weight:600;letter-spacing:.06em}
.step h3{font-size:19px;margin:9px 0 8px}
.step p{margin:0;font-size:16px;color:#4E5F79;line-height:1.7}

/* 시트 목록 */
.sheets{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(24px,2.5vw,40px);margin-top:8px}
.sheet-group{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.sheet-group>header{padding:14px 20px;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center}
.sheet-group>header b{font-size:17.5px;letter-spacing:-.02em}
.sheet-group>header span{font-family:var(--mono);font-size:13px;color:#9FB6D6}
.sheet-group ol{margin:0;padding:6px 0;list-style:none;counter-reset:n}
.sheet-group li{counter-increment:n;display:flex;gap:12px;align-items:baseline;padding:11px 20px;font-size:16.5px;
  border-bottom:1px solid #F2F5F9}
.sheet-group li:last-child{border-bottom:0}
.sheet-group li::before{content:counter(n,decimal-leading-zero);font-family:var(--mono);font-size:12px;
  color:var(--navy-300);flex-shrink:0}
.sheet-group li em{font-style:normal;color:var(--slate);font-size:14.5px;margin-left:auto;text-align:right}

/* 스플릿 */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,4.5vw,80px);align-items:center}
.split.rev>div:first-child{order:2}
.feat-list{margin:22px 0 0;padding:0;list-style:none}
.feat-list li{padding:14px 0 14px 34px;border-top:1px solid var(--line);position:relative}
.feat-list li:last-child{border-bottom:1px solid var(--line)}
.feat-list b{display:block;font-size:18px;font-weight:700;letter-spacing:-.02em}
.feat-list span{font-size:16px;color:var(--slate);line-height:1.7}
.feat-list li::before{content:"";position:absolute;left:6px;top:22px;width:9px;height:9px;border-radius:2px;
  background:var(--gold);transform:rotate(45deg)}
.sec-navy .feat-list li{border-color:rgba(255,255,255,.14)}
.sec-navy .feat-list span{color:#B7C8E0}

/* 스펙 테이블 */
.spec{width:100%;border-collapse:collapse;font-size:16.5px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.spec th,.spec td{text-align:left;padding:14px 20px;border-bottom:1px solid var(--line);vertical-align:top}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.spec th{width:210px;background:var(--bg);font-weight:700;color:var(--navy);font-size:16.5px}
.spec td{color:#3B4C66}
.spec code{font-family:var(--mono);font-size:14.5px;background:#EFF3F9;border-radius:4px;padding:1px 6px;color:var(--navy-600)}

/* 나눔 */
.give{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.give-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:26px;display:flex;gap:18px}
.give-card .ic{font-size:30px;line-height:1}
.give-card p{margin:6px 0 0;font-size:16.5px;color:#4E5F79;line-height:1.72}

/* CTA */
.cta-band{background:linear-gradient(120deg,#0C1B33,#1B3F72);color:#fff;border-radius:16px;padding:52px 48px;
  display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.cta-band h2{margin-bottom:10px}
.cta-band p{color:#C2D2E8;margin:0;font-size:18px;line-height:1.72}
.cta-box{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:24px}
.cta-box label{display:block;font-size:14.5px;color:#B7C8E0;margin:0 0 6px}
.cta-box input,.cta-box select{width:100%;padding:11px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.97);color:var(--ink);font-family:inherit;font-size:16.5px;margin-bottom:12px}
.cta-box .btn{width:100%}
.cta-box small{display:block;margin-top:10px;color:#A3B8D6;font-size:13.5px}

/* 푸터 */
footer{background:var(--navy-800);color:#A8BCD8;padding:60px 0 36px;font-size:16px}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.12)}
.f-top h4{color:#fff;font-size:16.5px;margin:0 0 14px;letter-spacing:-.02em}
.f-top ul{list-style:none;margin:0;padding:0}
.f-top li{padding:5px 0}
.f-top a:hover{color:#fff}
.f-brand .logo{margin-bottom:16px}
.f-brand p{margin:0;line-height:1.95;font-size:15.5px}
.f-bot{padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14.5px;color:#8FA6C6}
.f-bot .mono{font-family:var(--mono)}

/* 리빌 */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.3,1)}
.rv.in{opacity:1;transform:none}

/* 반응형 */
@media (max-width:1400px){
  nav.gnb>div>a{font-size:18px;padding:0 11px}
  .hdr .wrap{gap:22px}
}
@media (max-width:1040px){
  .hero .wrap{grid-template-columns:1fr;gap:40px;padding-top:52px;padding-bottom:56px;min-height:0}
  .cards,.flow{grid-template-columns:repeat(2,1fr)}
  .sheets,.split,.give,.cta-band{grid-template-columns:1fr;gap:34px}
  .split.rev>div:first-child{order:0}
  .f-top{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  html{scroll-padding-top:78px}
  nav.gnb{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;padding:8px;box-shadow:var(--sh)}
  nav.gnb.open{display:flex}
  nav.gnb>div>a{line-height:1.4;padding:14px 14px;font-size:19px;box-shadow:none!important}
  .mega{position:static;transform:none!important;opacity:1;visibility:visible;box-shadow:none;border:0;
    border-left:2px solid var(--line);border-radius:0;margin:0 0 6px 14px;padding:0 0 0 8px;min-width:0}
  .burger{display:block}
  .hdr-cta .btn-ghost{display:none}
  .cards,.flow,.stats .wrap{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
  section{padding:60px 0}
  .cta-band{padding:34px 24px}
  .f-top{grid-template-columns:1fr}
  .give-card{flex-direction:column;gap:12px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ═══════════════ 다중 페이지 추가 ═══════════════ */
.hdr-tel{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap;margin-right:4px}
.hdr-tel b{font-size:21px;font-weight:800;color:var(--navy);letter-spacing:-.02em}
.hdr-tel span{font-size:12.5px;color:var(--slate);font-weight:600;letter-spacing:.02em}
.hdr-tel b a{color:inherit}
nav.gnb>div>a.on{color:var(--navy-600);box-shadow:inset 0 -3px 0 var(--gold)}

.page-hero{background:linear-gradient(168deg,#0C1B33 0%,#13294B 52%,#1B3F72 100%);color:#fff;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;
  background:radial-gradient(640px 320px at 84% 12%,rgba(255,196,0,.16),transparent 62%)}
.page-hero .wrap{position:relative;z-index:2;padding:62px 0 58px}
.page-hero .crumb{font-family:var(--mono);font-size:14px;color:var(--gold);letter-spacing:.05em;display:block;margin-bottom:14px}
.page-hero h1{font-size:clamp(28px,3.1vw,44px);margin:0 0 14px;letter-spacing:-.035em}
.page-hero p{color:#C4D5ED;font-size:19px;max-width:800px;margin:0;line-height:1.72}

/* 구독 요금제 */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.plan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 28px;position:relative;transition:.2s}
.plan:hover{box-shadow:var(--sh);transform:translateY(-2px)}
.plan.hot{border:2px solid var(--navy);box-shadow:var(--sh)}
.plan .lvl{font-family:var(--mono);font-size:13px;letter-spacing:.09em;color:var(--navy-300)}
.plan h3{font-size:27px;margin:8px 0 6px;letter-spacing:-.03em}
.plan .for{font-size:16px;color:var(--slate);min-height:52px;margin:0 0 18px;line-height:1.6}
.plan .price{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:0 0 20px}
.plan .price b{font-size:24px;color:var(--navy);letter-spacing:-.03em}
.plan .price span{display:block;font-size:14px;color:var(--slate);margin-top:4px}
.plan ul{list-style:none;margin:0 0 22px;padding:0;font-size:16px}
.plan ul li{padding:8px 0 8px 27px;position:relative;color:#3C4E68;border-top:1px solid #F1F5FA}
.plan ul li:first-child{border-top:0}
.plan ul li::before{content:"✓";position:absolute;left:2px;top:8px;color:var(--ok);font-weight:800}
.plan ul li.off{color:#A9B5C6}
.plan ul li.off::before{content:"—";color:#C6D0DE;font-weight:600}
.plan .badge{position:absolute;top:-13px;left:28px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;
  border-radius:100px;padding:5px 14px}
.plan .btn{width:100%}

.ptable{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:16.5px}
.ptable th,.ptable td{padding:15px 18px;border-bottom:1px solid var(--line);text-align:center}
.ptable thead th{background:var(--navy);color:#fff;font-size:16.5px;font-weight:700}
.ptable thead th:first-child{text-align:left}
.ptable tbody th{text-align:left;font-weight:600;color:#2C3E5B;background:var(--bg);width:34%}
.ptable tbody tr:last-child th,.ptable tbody tr:last-child td{border-bottom:0}
.ptable .y{color:var(--ok);font-weight:800;font-size:19px}
.ptable .n{color:#C6D0DE;font-weight:700}
.ptable .grp td,.ptable .grp th{background:#EDF2F9;font-family:var(--mono);font-size:14px;
  letter-spacing:.05em;color:var(--navy-600);text-align:left;padding:10px 18px}

@media (max-width:1040px){
  .plans{grid-template-columns:1fr}
  .ptable{font-size:15px}
  .ptable th,.ptable td{padding:12px 10px}
}
@media (max-width:760px){
  .hdr-tel{display:none}
  .page-hero .wrap{padding:44px 0 40px}
  .page-hero p{font-size:17px}
}

/* ═══════════════ 가격 페이지 ═══════════════ */
.notice{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px;
  background:#FFF3D2;border:1px solid #F3DFAE;border-radius:12px;padding:24px 26px}
.notice>div{display:flex;flex-direction:column;gap:4px}
.notice b{font-size:19px;color:#6B4A02;letter-spacing:-.02em}
.notice span{font-size:15px;color:#7B6222;line-height:1.6}

.calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:26px;align-items:start}
.calc-in,.calc-out{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px}
.calc-in h3{font-size:19px;margin:0 0 20px}
.calc-in label{display:block;font-size:15px;font-weight:600;color:#3C4E68;margin:16px 0 7px}
.calc-in label:first-of-type{margin-top:0}
.calc-in select,.calc-in input[type=number]{width:100%;padding:13px 14px;border:1px solid #C9D6E8;border-radius:9px;
  font-family:inherit;font-size:17px;color:var(--ink);background:#fff}
.calc-in select:focus,.calc-in input:focus{border-color:var(--navy-600);outline:none}
.calc-in .chk{display:flex;align-items:center;gap:9px;margin-top:20px;font-size:16.5px;cursor:pointer}
.calc-in .chk input{width:19px;height:19px;accent-color:var(--navy)}
.calc-in .hint{font-size:14.5px;color:var(--slate);margin:18px 0 0;line-height:1.6}
.calc-out{background:var(--bg)}
.co-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.co-head h3{margin:0;font-size:19px}
.co-head span{font-size:14px;color:var(--slate)}
.calc-out .li{display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:#fff;border:1px solid var(--line);border-radius:9px;padding:14px 16px;margin-bottom:8px;font-size:16.5px}
.calc-out .li span{color:#3C4E68}
.calc-out .li em{font-style:normal;color:var(--slate);font-size:14.5px;margin-left:6px}
.calc-out .li b{font-family:var(--mono);font-size:17px;color:var(--navy);white-space:nowrap}
.calc-out .li.sum{background:#EDF2F9;border-color:#D5E1F0}
.calc-out .li.grand{background:var(--navy);border-color:var(--navy);margin-top:12px;padding:18px 16px}
.calc-out .li.grand span{color:#C4D5ED;font-weight:600}
.calc-out .li.grand b{color:var(--gold);font-size:23px}
.co-note{font-size:14.5px;color:var(--slate);margin:10px 0 0;line-height:1.6}
.ptable .sub2{font-weight:400;color:var(--slate);font-size:14.5px}

@media (max-width:1040px){
  .notice{grid-template-columns:1fr;gap:16px}
  .calc{grid-template-columns:1fr}
}
h1{word-break:keep-all}

/* ── 한글 줄바꿈: 어절 단위 유지 (전역) ── */
body, body * { word-break: keep-all; overflow-wrap: break-word; }
h1, h2, h3, .lead, .hero p { text-wrap: balance; }

/* ── 가입 안내 링크 강조 펄스 ── */
.pulse-link{
  display:inline-block; position:relative;
  color:var(--navy); font-weight:700; text-decoration:none;
  padding:2px 8px; border-radius:5px; background:#FFF3D2;
  animation:pulseGlow 2.2s ease-in-out infinite;
}
.pulse-link:hover{background:#FFC400; animation:none}
@keyframes pulseGlow{
  0%,100%{box-shadow:0 0 0 0 rgba(255,196,0,.55)}
  50%    {box-shadow:0 0 0 12px rgba(255,196,0,0)}
}
@media (prefers-reduced-motion:reduce){
  .pulse-link{animation:none}
}

/* ── GNB 8항목 대응: 넘침 방지 ── */
nav.gnb{flex-wrap:nowrap;min-width:0}
nav.gnb>div{flex:0 0 auto}
nav.gnb>div>a{white-space:nowrap}
@media (max-width:1500px){
  .hdr .wrap{gap:20px}
  nav.gnb>div>a{font-size:18px;padding:0 10px}
}
@media (max-width:1320px){
  nav.gnb>div>a{font-size:16.5px;padding:0 8px;letter-spacing:-.04em}
  .hdr-tel{display:none}
}

/* ── 헤더 우측 CTA 분리 ── */
nav.gnb{flex:0 1 auto}
.hdr-cta{margin-left:auto;padding-left:28px}
@media (max-width:1400px){ .hdr-cta{padding-left:16px} }

/* ── 헤더 최종 정렬: 메뉴 좌측 / CTA 우측 끝 ── */
.hdr .wrap{gap:0}
nav.gnb{flex:0 1 auto; margin-right:auto}
nav.gnb>div>a{font-size:18px; padding:0 11px}
.hdr-cta{margin-left:70px; flex-shrink:0}

@media (max-width:1500px){
  nav.gnb>div>a{font-size:16.5px; padding:0 9px}
  .hdr-cta{margin-left:40px}
}
@media (max-width:1320px){
  nav.gnb>div>a{font-size:15.5px; padding:0 7px; letter-spacing:-.04em}
  .hdr-cta{margin-left:20px}
  .hdr-tel{display:none}
}

/* ── 메뉴 글자 원복 (21px) ── */
nav.gnb>div>a{font-size:21px; padding:0 14px}
@media (max-width:1600px){
  nav.gnb>div>a{font-size:21px; padding:0 10px}
  .hdr-cta{margin-left:44px}
}
@media (max-width:1400px){
  nav.gnb>div>a{font-size:20px; padding:0 8px}
  .hdr-cta{margin-left:24px}
  .hdr-tel{display:none}
}
@media (max-width:1600px){ .hdr-tel{display:none} }
