/* ============================================================
   SOMEON · MONO/BLUE EDITORIAL  v4  (someon-enhance.css)
   - 블랙 & 화이트 베이스 + 포인트 컬러 = 일렉트릭 블루
   - 레이아웃: "둥근 플로팅 카드" → "각진 헤어라인 스위스 그리드"
   - 마우스 추적/자석/패럴럭스/오로라/커튼/로더 전부 없음 (가벼움)
   - 전 페이지 공통 적용. 모션축소 사용자 대응 포함.
   ============================================================ */

/* ---------- 1) 팔레트 재정의 (블랙&화이트 + 블루) ---------- */
:root{
  --bg:#FFFFFF;
  --bg-alt:#F4F5F7;          /* 쿨 그레이 */
  --paper:#FFFFFF;
  --ink:#0A0A0B;             /* 거의 블랙 */
  --ink-2:#3C3C40;
  --ink-3:#8B8B90;
  --accent:#1E50FF;          /* 일렉트릭 블루 (포인트) */
  --accent-2:#0B33CC;        /* 딥 블루 */
  --blush:#E6ECFF;           /* 라이트 블루 틴트 */
  --gold:#1E50FF;
  --line:#E4E5EA;            /* 헤어라인 */
  --line-d:rgba(255,255,255,.16);
  --dark:#0A0A0B;            /* 블랙 섹션 */
  --dark-2:#161619;
  --maxw:1240px;
  --son-ease:cubic-bezier(.22,.61,.36,1);
  --son-ease-out:cubic-bezier(.16,1,.3,1);
}

::selection{ background:var(--accent); color:#fff; }

/* ---------- 한글 줄바꿈: 어절(띄어쓰기) 단위로 — 전 페이지 본문 공통 (모바일 가독성) ----------
   keep-all: 한글을 글자 단위로 끊지 않고 띄어쓰기(어절)에서만 줄바꿈.
   overflow-wrap: 어절이 칸보다 길면(긴 URL 등) 그때만 강제로 끊어 넘침 방지. */
body{ word-break:keep-all; overflow-wrap:break-word; }
html{ scroll-behavior:smooth; }
body{ -webkit-font-smoothing:antialiased; background:var(--bg); color:var(--ink); }
@media (min-width:1025px){
  html{ scrollbar-width:thin; scrollbar-color:#C9CAD1 transparent; }
  ::-webkit-scrollbar{ width:10px; }
  ::-webkit-scrollbar-thumb{ background:#C9CAD1; border-radius:0; border:3px solid #fff; background-clip:padding-box; }
}

/* ---------- 2) 각진 형태로 전환 (둥근 모서리 제거) ---------- */
.btn, .btn-primary, .btn-line, .btn-ghost-d, .hdr-cta, .dropdown,
.feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
.gisu .g, .subhero-media, .gallery .g, .region, .rev, .ip-card, .plan, .cmp, .form-card,
.field input, .field select, .tagset span, .flow span, .faq-tab, .reco li, .loc-media,
.feat-story, .hero-fig .frame, .hero-fig .chip, .ideal-box, .pick button, .son-imgwrap,
.subhero-media img, .rev img, .rev-card img, .story-card img, .col-card, .doc-card{
  border-radius:0 !important;
}

/* ---------- 3) 타이포 — 크고 단단한 에디토리얼 ---------- */
.eyebrow{ font-family:var(--font-lat),sans-serif; text-transform:uppercase; letter-spacing:.22em !important;
  font-weight:700; color:var(--accent) !important; font-size:11.5px !important; }
.eyebrow::before{ background:var(--accent) !important; width:30px !important; height:1px !important; }
.sect-title{ font-weight:800 !important; letter-spacing:-.035em !important; line-height:1.14 !important;
  font-size:clamp(24px,3.3vw,42px) !important; color:var(--ink); }
.subhero h1, .hero h1{ letter-spacing:-.045em !important; line-height:1.04 !important; }
.lead{ color:var(--ink-2) !important; }
.prose .pull{ border-left:3px solid var(--accent) !important; color:var(--ink) !important; }
.hero h1 .fire, .em{ color:var(--accent) !important; }

/* ---------- 4) 로고 — 블랙 고딕 + 블루 도트 ---------- */
.brand{ font-family:"Pretendard","Gothic A1",sans-serif !important; font-weight:900 !important; font-size:24px !important;
  letter-spacing:-.045em !important; color:var(--ink) !important; position:relative; display:inline-flex !important; align-items:baseline;
  -webkit-text-stroke:0 !important; text-stroke:0 !important; }
.brand b{ color:inherit !important; }
.brand::after{ content:none !important; }
.brand::before{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:2px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--son-ease-out); }
.brand:hover::before{ transform:scaleX(1); }
.foot-logo{ font-family:"Pretendard","Gothic A1",sans-serif !important; font-weight:900 !important; letter-spacing:-.04em !important; }
.foot-logo::after{ content:none !important; }
.foot-logo{ -webkit-text-stroke:0 !important; text-stroke:0 !important; }

/* ---------- 5) 헤더 — 화이트 + 헤어라인 ---------- */
.hdr{ background:rgba(255,255,255,.82) !important; -webkit-backdrop-filter:saturate(150%) blur(16px); backdrop-filter:saturate(150%) blur(16px);
  border-bottom:1px solid transparent !important; transition:border-color .3s, box-shadow .3s; }
.hdr.son-stuck, .hdr.solid{ border-bottom-color:var(--line) !important; box-shadow:0 1px 0 rgba(10,10,11,.02); }
.menu-item>a{ position:relative; font-weight:600 !important; }
.menu-item>a::after{ content:""; position:absolute; left:0; bottom:1px; width:0; height:2px; background:var(--accent); transition:width .3s var(--son-ease); }
.menu-item>a:hover::after{ width:100%; }
.menu-item>a:hover{ color:var(--accent) !important; }
.dropdown{ border:1px solid var(--line) !important; box-shadow:0 24px 50px -28px rgba(10,10,11,.3) !important; }
.dropdown a:hover{ background:var(--bg-alt) !important; color:var(--accent) !important; padding-left:18px; }

/* ---------- 6) 버튼 — 각진 블랙/블루 ---------- */
.btn{ font-weight:700 !important; letter-spacing:.01em; transition:transform .28s var(--son-ease), background-color .28s, color .28s, border-color .28s; }
.btn-primary, .hdr-cta{ background:var(--accent) !important; color:#fff !important; box-shadow:none !important; }
.btn-primary:hover, .hdr-cta:hover{ background:var(--accent-2) !important; transform:translateY(-2px); box-shadow:none !important; }
.btn-line{ border:1.5px solid var(--ink) !important; color:var(--ink) !important; }
.btn-line:hover{ background:var(--ink) !important; color:#fff !important; border-color:var(--ink) !important; transform:translateY(-2px); }

/* ---------- 7) 레이아웃 핵심: 카드 그리드 → 각진 헤어라인 스위스 그리드 ---------- */
/* feature / svc / quotes 를 칸막이 그리드로 전환 */
.feature-grid, .svc-grid{ gap:0 !important; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.feature, .svc{ border:0 !important; border-right:1px solid var(--line) !important; border-bottom:1px solid var(--line) !important;
  background:#fff !important; box-shadow:none !important; padding:38px 34px !important; transition:background .3s var(--son-ease); }
.feature:hover, .svc:hover{ transform:none !important; background:var(--blush) !important; box-shadow:none !important; }
.feature .tag, .svc .tag, .feature h4, .svc h4{ position:relative; }
.feature h4, .svc h4{ font-weight:800 !important; }
.feature .tag, .svc .tag, .col-card .tag, .feature .more, .svc .more{ color:var(--accent) !important; font-style:normal !important; }

/* .quotes 는 후기/스토리 카드도 담으므로 칸막이 그리드 대신 각진 카드로 통일 */
.quote{ border:1px solid var(--line) !important; border-radius:0 !important; box-shadow:none !important; background:#fff !important;
  transition:transform .35s var(--son-ease), border-color .35s, box-shadow .35s; }
.quote:hover{ transform:translateY(-5px) !important; border-color:var(--ink) !important; box-shadow:0 24px 44px -30px rgba(10,10,11,.4) !important; }
.quote p{ color:var(--ink) !important; }

/* 일반 카드(후기/스토리/칼럼/정보) — 각진 헤어라인 + 상단 블루 라인 호버 */
.rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card, .gisu .g{
  border:1px solid var(--line) !important; box-shadow:none !important; background:#fff !important;
  transition:transform .35s var(--son-ease), border-color .35s, box-shadow .35s; position:relative; }
.rev-card::before, .fcard::before, .story-card::before, .col-card::before{
  content:""; position:absolute; left:-1px; right:-1px; top:-1px; height:3px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--son-ease-out); }
.rev-card:hover, .fcard:hover, .story-card:hover, .col-card:hover{
  transform:translateY(-5px); border-color:var(--ink) !important; box-shadow:0 24px 44px -30px rgba(10,10,11,.4) !important; }
.rev-card:hover::before, .fcard:hover::before, .story-card:hover::before, .col-card:hover::before{ transform:scaleX(1); }
.info-card:hover, .doc-card:hover{ border-color:var(--ink) !important; }

/* ---------- 8) 통계 — 큰 블랙 숫자 + 블루 단위 ---------- */
.stat .num{ color:var(--ink) !important; font-weight:800 !important; -webkit-text-fill-color:initial !important; background:none !important; }
.stat .num .u{ color:var(--accent) !important; -webkit-text-fill-color:var(--accent) !important; }
.stat{ position:relative; }
.stat::after{ content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:0; height:2px; background:var(--accent); transition:width .4s var(--son-ease); }
.stat:hover::after{ width:38px; }
.hero-fig .chip .n .u{ color:var(--accent) !important; }

/* ---------- 9) 스텝 / 칩 / 리스트 ---------- */
.step{ position:relative; cursor:pointer; } .step .n{ color:var(--blush) !important; transition:color .25s var(--son-ease); }
.step.key .n, .step:hover .n, .step.on .n{ color:var(--accent) !important; }
.step::before{ content:""; position:absolute; left:0; top:-1px; height:2px; width:0; background:var(--accent); transition:width .4s var(--son-ease); }
.step:hover::before{ width:100%; }
.reco li{ border:1px solid var(--line) !important; transition:border-color .3s, transform .3s; }
.reco li::before{ color:var(--accent) !important; }
.reco li:hover{ border-color:var(--ink) !important; transform:translateY(-2px); }
.flow span, .tagset span{ border:1px solid var(--line) !important; background:#fff !important; transition:.25s var(--son-ease); }
.flow span:hover, .tagset span:hover{ background:var(--ink) !important; color:#fff !important; border-color:var(--ink) !important; }
.flow span .i{ color:var(--accent) !important; }

/* ---------- 10) 이미지 / 갤러리 / 리전 — 각지게, 그레이스케일→호버 컬러 ---------- */
.gallery{ gap:1px !important; background:var(--line); }
.gallery .g{ }
.gallery .g img{ filter:grayscale(1) contrast(1.02); transition:filter .6s var(--son-ease), transform .8s var(--son-ease); }
.gallery .g:hover img{ filter:grayscale(0); }
.region img{ filter:grayscale(.4); transition:filter .6s, transform .9s var(--son-ease); }
.region:hover img{ filter:grayscale(0); }
.region-body .tag, .col-card .tag{ color:var(--blush) !important; font-style:normal !important; }
.subhero-media{ box-shadow:none !important; }

/* ---------- 11) 서브히어로 — 블루 강조 라인 ---------- */
.subhero h1{ position:relative; }
.subhero h1::after{ content:""; display:block; width:64px; height:5px; margin-top:22px; background:var(--accent); transform-origin:left; animation:sonGrow .9s var(--son-ease) both .15s; }
@keyframes sonGrow{ from{ transform:scaleX(0); opacity:0;} to{ transform:scaleX(1); opacity:1;} }

/* ---------- 12) index 전용 컴포넌트 정리 (모노/블루) ---------- */
.badge{ color:var(--accent) !important; }
.badge::before{ background:var(--accent) !important; }
.marq-sec{ background:var(--bg-alt); border-color:var(--line); }
.marq img{ filter:grayscale(1) opacity(.45); }
.marq img:hover{ filter:grayscale(0) opacity(1); }
.scrolly-line.on .em{ color:var(--accent) !important; }
.scrolly-prog span.on{ background:var(--accent) !important; }
.value-grid{ border-color:var(--line) !important; }
.value{ border-color:var(--line) !important; transition:background .3s; }
.value:hover{ background:var(--bg-alt) !important; }
.value .no{ color:var(--accent) !important; font-style:normal !important; }
.value h4{ font-weight:800 !important; }
.trust-item .k{ color:var(--accent) !important; }
.cmp{ box-shadow:none !important; border:1px solid var(--line); }
.cmp thead th:last-child{ background:var(--accent) !important; color:#fff !important; }
.cmp td:last-child{ background:rgba(30,80,255,.05) !important; color:var(--ink) !important; }
.ip{ background:var(--dark) !important; }
.ip-card{ background:var(--dark-2) !important; border-color:var(--line-d) !important; }
.ip-card .img img{ filter:grayscale(1); transition:filter .6s, transform .8s var(--son-ease); }
.ip-card:hover .img img{ filter:grayscale(0); }
.ip-card .body .tag, .rev .body .who b, .story-card .who b{ color:var(--accent) !important; }
.ip-card .stat2 b{ color:var(--blush) !important; }
.ideal{ background:var(--bg-alt) !important; }
.ideal-box{ box-shadow:none !important; border:1px solid var(--line); }
.pick button.sel{ background:var(--accent) !important; border-color:var(--accent) !important; color:#fff !important; }
.pick button:hover{ border-color:var(--accent) !important; color:var(--accent) !important; }
.pick button.sel:hover{ color:#fff !important; }
.ideal-result b{ color:var(--accent) !important; }
.plan.best{ background:var(--ink) !important; }
.plan .ribbon{ background:var(--accent) !important; }
.feat li::before{ color:var(--accent) !important; }
.plan:not(.best) .btn{ background:var(--bg-alt) !important; color:var(--ink) !important; }
.plan:not(.best) .btn:hover{ background:var(--accent) !important; color:#fff !important; }
.form-card{ box-shadow:none !important; border:1px solid var(--line); }
.field input:focus, .field select:focus{ border-color:var(--accent) !important; box-shadow:0 0 0 3px rgba(30,80,255,.14) !important; }

/* ---------- 13) FAQ ---------- */
.faq-q::after{ color:var(--accent) !important; }
.faq-tab.on{ background:var(--ink) !important; border-color:var(--ink) !important; color:#fff !important; }

/* ---------- 14) 어두운 섹션 / CTA — 순수 블랙 + 블루 ---------- */
.section--dark, .cta-band, .cta{ background:var(--dark) !important; }
.cta-band .btn-primary{ background:var(--accent) !important; }
.cta-q, .quick-btn{ background:var(--dark-2) !important; border-color:var(--line-d) !important; transition:transform .3s var(--son-ease), border-color .3s; }
.cta-q:hover, .quick-btn:hover{ border-color:var(--accent) !important; transform:translateX(4px); }
.site-footer, footer{ background:#000 !important; }
.foot-social a{ border-radius:0 !important; border-color:var(--line-d) !important; transition:.3s; }
.foot-social a:hover{ background:var(--accent) !important; border-color:var(--accent) !important; }
.foot-col a:hover{ color:var(--accent) !important; }

/* ---------- 15) 스크롤 모션 (codeit 스타일: 콘텐츠 순차 등장) ---------- */
/* 기존 .reveal 은 '페이드 전용'으로 — 실제 움직임은 아래 원자 단위가 담당 */
.reveal{ transform:none; transition:opacity .85s var(--son-ease); }
.reveal.in{ transform:none; }

/* 원자 단위 등장 (방향 변형) */
.son-rv{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--son-ease-out), transform .7s var(--son-ease-out); will-change:opacity,transform; }
.son-rv[data-rv="left"]{ transform:translateX(-44px); }
.son-rv[data-rv="right"]{ transform:translateX(44px); }
.son-rv[data-rv="zoom"]{ transform:scale(.92); }
.son-rv[data-rv="clip"]{ opacity:1; clip-path:inset(0 0 100% 0); transform:none; transition:clip-path .9s var(--son-ease-out); }
.son-rv.is-in{ opacity:1; transform:none; clip-path:inset(0 0 0 0); }

/* 제목 줄(line) 단위 라이즈 — 가장 codeit스러운 헤드라인 모션 */
.son-h .son-rl{ display:block; overflow:hidden; padding:.2em 0 .1em; margin:-.2em 0 -.1em; }
.son-h .son-rl-i{ display:block; transform:translateY(130%); transition:transform .85s var(--son-ease-out); will-change:transform; }
.son-h.is-in .son-rl-i{ transform:none; }
.son-line{ position:relative; }
.son-line::before{ content:""; position:absolute; left:0; top:-2px; height:3px; width:0; background:var(--accent); transition:width 1s var(--son-ease-out); }
.son-line.is-in::before{ width:54px; }
.son-imgwrap{ position:relative; overflow:hidden; }
.son-imgwrap>img{ transition:transform 1.2s var(--son-ease); }
.son-imgwrap::after{ content:""; position:absolute; inset:0; background:var(--ink); transform:translateY(0); transition:transform 1s var(--son-ease-out); z-index:3; }
.son-imgwrap.is-in::after{ transform:translateY(-101%); }

/* ---------- 16) 진행바 · 미니멀 도크 (블루) ---------- */
.son-prog{ position:fixed; top:0; left:0; height:2px; width:0; z-index:1000; background:var(--accent); transition:width .1s linear; }
.son-fab{ position:fixed; right:22px; bottom:22px; z-index:945; display:flex; flex-direction:column; gap:10px; align-items:center; }
.son-fab a, .son-fab button{ width:52px; height:52px; border-radius:0; display:flex; align-items:center; justify-content:center;
  font-size:21px; color:#fff; box-shadow:0 14px 30px -18px rgba(10,10,11,.5); transition:transform .3s var(--son-ease); position:relative; }
.son-fab .son-kakao{ background:#FAE100; color:#1a1a1a; }
.son-fab .son-call{ background:var(--accent); }
.son-fab .son-top{ background:var(--ink); width:46px; height:46px; font-size:17px; opacity:0; transform:translateY(12px); pointer-events:none; }
.son-fab .son-top.show{ opacity:1; transform:none; pointer-events:auto; }
.son-fab a:hover, .son-fab button:hover{ transform:translateY(-3px); }
.son-fab .son-tip{ position:absolute; right:62px; top:50%; transform:translateY(-50%) translateX(6px); white-space:nowrap;
  background:var(--ink); color:#fff; font-size:12px; font-weight:600; padding:6px 11px; opacity:0; pointer-events:none; transition:.26s var(--son-ease); }
.son-fab a:hover .son-tip, .son-fab button:hover .son-tip{ opacity:1; transform:translateY(-50%); }

/* ---------- 17) 모바일 메뉴 ---------- */
.m-menu{ background:var(--ink) !important; z-index:980; }
.m-menu .m-home{ font-family:var(--font-lat),sans-serif !important; font-size:13px !important; font-weight:700 !important; letter-spacing:.18em; color:var(--ink-3) !important; padding:4px 0 16px !important; border:none !important; }
.m-menu details.m-acc{ border-bottom:1px solid var(--line-d); }
.m-menu summary{ list-style:none; cursor:pointer; color:#fff; font-family:"Gothic A1",sans-serif; font-weight:800; font-size:20px; letter-spacing:-.02em; padding:16px 2px; display:flex; align-items:center; justify-content:space-between; }
.m-menu summary::-webkit-details-marker{ display:none; }
.m-menu summary::after{ content:"+"; font-weight:400; font-size:24px; color:var(--accent); transition:transform .3s var(--son-ease); }
.m-menu details[open]>summary{ color:var(--accent); }
.m-menu details[open]>summary::after{ transform:rotate(45deg); }
.m-menu .m-acc a{ display:block; font-family:var(--font-sans),sans-serif !important; font-weight:500 !important; font-size:15px !important; color:rgba(255,255,255,.6) !important; padding:10px 0 10px 16px !important; margin:0 0 2px 3px; border:none !important; border-left:1px solid var(--line-d) !important; transition:.2s; }
.m-menu .m-acc a:hover, .m-menu .m-acc a:active{ color:#fff !important; border-left-color:var(--accent) !important; padding-left:22px !important; }
.m-menu .m-acc a:last-of-type{ margin-bottom:10px; }
.m-menu .m-cta{ margin-top:22px !important; text-align:center; background:var(--accent); color:#fff !important; border:none !important; border-radius:0; font-family:"Gothic A1",sans-serif; font-weight:800; font-size:16px !important; padding:14px 0 !important; }
.burger.son-x span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.son-x span:nth-child(2){ opacity:0; }
.burger.son-x span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
@media (prefers-reduced-motion: no-preference){
  .m-menu>*{ opacity:0; transform:translateX(20px); transition:opacity .45s var(--son-ease), transform .45s var(--son-ease); }
  .m-menu.open>*{ opacity:1; transform:none; }
  .m-menu.open>*:nth-child(n){ transition-delay:.05s; }
  .m-menu.open>*:nth-child(2){ transition-delay:.1s; } .m-menu.open>*:nth-child(3){ transition-delay:.15s; }
  .m-menu.open>*:nth-child(4){ transition-delay:.2s; } .m-menu.open>*:nth-child(5){ transition-delay:.25s; }
  .m-menu.open>*:nth-child(6){ transition-delay:.3s; } .m-menu.open>*:nth-child(7){ transition-delay:.35s; }
}

/* ---------- 18) 반응형 / 모션축소 ---------- */
@media (max-width:1024px){
  .feature-grid, .svc-grid, .quotes{ border-left:0; }
}
/* ---------- 모바일 하단 CTA 바 + 푸터 정책 링크 ---------- */
.son-mbar{ display:none; }
.son-foot-links{ margin-bottom:14px; font-size:13px; }
.son-foot-links a{ color:rgba(246,241,233,.85); text-decoration:underline; text-underline-offset:3px; }
.son-foot-links a:hover{ color:var(--accent); }
.son-foot-links span{ margin:0 9px; opacity:.4; }

@media (max-width:768px){
  .son-fab{ display:none; }
  body{ padding-bottom:62px; }
  .son-mbar{ display:grid; grid-template-columns:1fr 1fr 1.3fr; position:fixed; left:0; bottom:0; width:100%; z-index:946;
    background:#fff; border-top:1px solid var(--line); box-shadow:0 -8px 24px -16px rgba(10,10,11,.3); }
  .son-mbar a{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:10px 4px;
    font-size:11.5px; font-weight:700; color:var(--ink); border-left:1px solid var(--line); }
  .son-mbar a:first-child{ border-left:0; }
  .son-mbar a b{ font-size:17px; font-weight:400; line-height:1; }
  .son-mbar-cta{ background:transparent; color:var(--ink) !important; border-left:1px solid var(--line) !important; }
  .feature, .svc, .quote{ padding:28px 22px !important; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; }
  .son-rv{ opacity:1 !important; transform:none !important; transition:none !important; }
  .son-imgwrap::after{ display:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   19) AI 콘텐츠 위젯 (someon-ai.js)
   ============================================================ */
.son-ai{ border:1px solid var(--line); background:#fff; padding:clamp(26px,4vw,44px); position:relative; }
.son-ai__badge{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-lat),sans-serif;
  font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
.son-ai__badge::before{ content:"✦"; }
.son-ai h3{ font-family:"Gothic A1",sans-serif; font-weight:800; letter-spacing:-.03em; font-size:clamp(22px,3vw,30px); line-height:1.2; }
.son-ai p.son-ai__desc{ color:var(--ink-2); font-size:15px; margin-top:10px; max-width:60ch; }
.son-ai__q{ margin-top:22px; }
.son-ai__q > label{ display:block; font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:9px; }
.son-ai__opts{ display:flex; flex-wrap:wrap; gap:8px; }
.son-ai__opt{ border:1px solid var(--line); background:#fff; color:var(--ink-2); padding:9px 15px; font-size:14px; font-weight:600;
  cursor:pointer; transition:.2s var(--son-ease); }
.son-ai__opt:hover{ border-color:var(--accent); color:var(--accent); }
.son-ai__opt.on{ background:var(--accent); border-color:var(--accent); color:#fff; }
.son-ai__in{ width:100%; padding:13px 15px; border:1px solid var(--line); font-family:inherit; font-size:15px; color:var(--ink); background:#fff; transition:.2s; }
.son-ai__in:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(30,80,255,.13); }
.son-ai__row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.son-ai__go{ margin-top:24px; width:100%; padding:16px; background:var(--accent); color:#fff; font-family:"Gothic A1",sans-serif;
  font-weight:800; font-size:16px; letter-spacing:-.01em; cursor:pointer; transition:.25s var(--son-ease); border:0; }
.son-ai__go:hover{ background:var(--accent-2); }
.son-ai__go:disabled{ opacity:.55; cursor:default; }
.son-ai__hint{ font-size:12px; color:var(--ink-3); margin-top:10px; text-align:center; }

.son-ai__result{ margin-top:24px; border-top:1px solid var(--line); padding-top:24px; display:none; }
.son-ai__result.show{ display:block; animation:sonRvUp .6s var(--son-ease-out) both; }
@keyframes sonRvUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:none;} }
.son-ai__score{ display:flex; align-items:baseline; gap:8px; margin-bottom:14px; }
.son-ai__score b{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:clamp(40px,7vw,64px); line-height:1; color:var(--accent); letter-spacing:-.04em; }
.son-ai__score span{ font-size:14px; color:var(--ink-3); font-weight:600; }
.son-ai__bar{ height:8px; background:var(--bg-alt); overflow:hidden; margin:4px 0 18px; }
.son-ai__bar i{ display:block; height:100%; width:0; background:var(--accent); transition:width 1.1s var(--son-ease-out); }
.son-ai__out{ font-size:15.5px; color:var(--ink-2); line-height:1.85; }
.son-ai__out h4{ font-family:"Gothic A1",sans-serif; font-weight:800; color:var(--ink); font-size:18px; margin:18px 0 8px; letter-spacing:-.02em; }
.son-ai__out strong{ color:var(--ink); }
.son-ai__cta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }
.son-ai__cta a{ flex:1; min-width:160px; text-align:center; padding:14px; font-weight:700; font-size:14px; }
.son-ai__cta .k{ background:#FAE100; color:#1a1a1a !important; }
.son-ai__cta .c{ background:var(--ink); color:#fff !important; }

.son-ai__load{ display:none; align-items:center; gap:12px; margin-top:22px; color:var(--ink-2); font-size:14px; }
.son-ai__load.show{ display:flex; }
.son-ai__spin{ width:22px; height:22px; border:2px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:sonSpin .8s linear infinite; }
@keyframes sonSpin{ to{ transform:rotate(360deg); } }
.son-ai__err{ display:none; margin-top:16px; padding:13px 15px; background:rgba(30,80,255,.06); border:1px solid var(--line); font-size:14px; color:var(--ink-2); }
.son-ai__err.show{ display:block; }
@media(max-width:600px){ .son-ai__row{ grid-template-columns:1fr; } }

/* ============================================================
   20) AI 위젯 v2 — 프리미엄/모바일 (이미지 헤더 · 게이지 · 애니메이션)
   ============================================================ */
.son-ai{ border:1px solid var(--line) !important; background:#fff; padding:0 !important; overflow:hidden; position:relative;
  box-shadow:0 30px 70px -44px rgba(10,10,11,.5); }

/* 이미지 히어로 */
.son-ai__hero{ position:relative; padding:clamp(30px,5vw,54px) clamp(22px,4vw,46px); color:#fff; overflow:hidden; background:#0A0A0B; }
.son-ai__hero::before{ content:""; position:absolute; inset:0; background-image:var(--img); background-size:cover; background-position:center;
  filter:grayscale(1) contrast(1.06); opacity:.45; transform:scale(1.05); animation:sonAiKen 16s ease-in-out infinite alternate; }
.son-ai__hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(125deg, rgba(30,80,255,.9) 0%, rgba(11,33,140,.82) 55%, rgba(10,10,11,.82) 100%); }
@keyframes sonAiKen{ to{ transform:scale(1.14); } }
.son-ai__hero-in{ position:relative; z-index:2; }
.son-ai__badge{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-lat),sans-serif; font-size:11.5px; font-weight:800;
  letter-spacing:.2em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.16); padding:6px 12px; margin:0 0 16px; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.son-ai__badge::before{ content:"✦"; animation:sonAiTwinkle 2.2s ease-in-out infinite; }
@keyframes sonAiTwinkle{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.5; transform:scale(.8);} }
.son-ai__hero h3{ font-family:"Gothic A1",sans-serif; font-weight:900; letter-spacing:-.035em; font-size:clamp(23px,3.4vw,34px); line-height:1.18; color:#fff; }
.son-ai__hero .son-ai__desc{ color:rgba(255,255,255,.86); font-size:14.5px; margin-top:12px; max-width:52ch; }
.son-ai__meta{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.son-ai__meta span{ font-size:12px; font-weight:600; color:#fff; background:rgba(255,255,255,.14); padding:6px 11px; display:inline-flex; align-items:center; gap:5px; }

/* 폼 본문 */
.son-ai__body{ padding:clamp(22px,3.5vw,40px); }
.son-ai__prog{ height:4px; background:var(--bg-alt); margin-bottom:26px; overflow:hidden; }
.son-ai__prog i{ display:block; height:100%; width:0; background:var(--accent); transition:width .5s var(--son-ease-out); }

.son-ai__q{ margin-bottom:20px; opacity:0; transform:translateY(14px); animation:sonAiQ .6s var(--son-ease-out) forwards; }
.son-ai__q:nth-child(2){animation-delay:.06s} .son-ai__q:nth-child(3){animation-delay:.12s}
.son-ai__q:nth-child(4){animation-delay:.18s} .son-ai__q:nth-child(5){animation-delay:.24s}
.son-ai__q:nth-child(6){animation-delay:.30s} .son-ai__q:nth-child(7){animation-delay:.36s}
@keyframes sonAiQ{ to{ opacity:1; transform:none; } }
.son-ai__q > label{ display:flex; align-items:center; gap:9px; font-size:14.5px; font-weight:700; color:var(--ink); margin-bottom:11px; }
.son-ai__q > label .son-ai__n{ flex:none; width:22px; height:22px; background:var(--ink); color:#fff; font-size:12px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border-radius:50%; }
.son-ai__opts{ display:flex; flex-wrap:wrap; gap:9px; }
.son-ai__opt{ border:1.5px solid var(--line); background:#fff; color:var(--ink-2); padding:11px 17px; font-size:14px; font-weight:600;
  cursor:pointer; transition:.2s var(--son-ease); display:inline-flex; align-items:center; gap:7px; }
.son-ai__opt::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--line); transition:.2s; }
.son-ai__opt:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.son-ai__opt:hover::before{ background:var(--accent); }
.son-ai__opt.on{ background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:0 10px 22px -12px rgba(30,80,255,.6); }
.son-ai__opt.on::before{ background:#fff; }
.son-ai__in{ width:100%; padding:14px 16px; border:1.5px solid var(--line); font-family:inherit; font-size:15px; color:var(--ink); background:#fff; transition:.2s; }
.son-ai__in:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(30,80,255,.14); }
.son-ai__row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

.son-ai__go{ margin-top:8px; width:100%; padding:17px; background:var(--accent); color:#fff; font-family:"Gothic A1",sans-serif;
  font-weight:800; font-size:16.5px; letter-spacing:-.01em; cursor:pointer; border:0; position:relative; overflow:hidden;
  transition:transform .25s var(--son-ease), background-color .25s; }
.son-ai__go::after{ content:""; position:absolute; top:0; left:-130%; width:55%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent); transform:skewX(-18deg); animation:sonAiSweep 3.4s ease-in-out infinite; }
@keyframes sonAiSweep{ 0%,100%{ left:-130%; } 55%,75%{ left:140%; } }
.son-ai__go:hover{ background:var(--accent-2); transform:translateY(-2px); }
.son-ai__go:disabled{ opacity:.55; cursor:default; }
.son-ai__hint{ font-size:12px; color:var(--ink-3); margin-top:11px; text-align:center; }

/* 로딩 */
.son-ai__load{ display:none; align-items:center; gap:13px; margin-top:22px; color:var(--ink-2); font-size:14px; font-weight:600; }
.son-ai__load.show{ display:flex; }
.son-ai__spin{ width:24px; height:24px; border:2.5px solid var(--line); border-top-color:var(--accent); border-radius:50%; animation:sonSpin .8s linear infinite; }

/* 에러/안내 */
.son-ai__err{ display:none; margin-top:16px; padding:14px 16px; background:rgba(30,80,255,.06); border:1px solid var(--line); font-size:14px; color:var(--ink-2); }
.son-ai__err.show{ display:block; animation:sonAiQ .4s var(--son-ease-out) both; }

/* 결과 */
.son-ai__result{ display:none; margin-top:26px; border-top:1px solid var(--line); padding-top:26px; }
.son-ai__result.show{ display:block; animation:sonAiReveal .7s var(--son-ease-out) both; }
@keyframes sonAiReveal{ from{ opacity:0; transform:translateY(20px);} to{ opacity:1; transform:none;} }
.son-ai__head{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-bottom:20px; }
.son-ai__gauge{ flex:none; width:118px; height:118px; border-radius:50%; position:relative;
  background:conic-gradient(var(--accent) calc(var(--p,0)*1%), var(--bg-alt) 0); }
.son-ai__gauge::before{ content:""; position:absolute; inset:11px; background:#fff; border-radius:50%; }
.son-ai__gauge b{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:"Gothic A1",sans-serif;
  font-weight:900; font-size:32px; color:var(--accent); letter-spacing:-.04em; }
.son-ai__label{ font-family:"Gothic A1",sans-serif; font-weight:900; letter-spacing:-.03em; font-size:clamp(26px,5vw,40px); color:var(--ink);
  display:inline-flex; align-items:center; gap:10px; }
.son-ai__label::before{ content:"✦"; color:var(--accent); }
.son-ai__head-txt b{ display:block; font-family:"Gothic A1",sans-serif; font-weight:800; font-size:15px; color:var(--ink-3); letter-spacing:.04em; }
.son-ai__head-txt span{ font-size:13px; color:var(--ink-3); }
.son-ai__out{ font-size:15.5px; color:var(--ink-2); line-height:1.85; }
.son-ai__out h4{ font-family:"Gothic A1",sans-serif; font-weight:800; color:var(--ink); font-size:17px; margin:18px 0 7px; letter-spacing:-.02em;
  padding-left:13px; border-left:3px solid var(--accent); }
.son-ai__out p{ margin:0 0 4px; }
.son-ai__out strong{ color:var(--ink); }
.son-ai__cta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:24px; }
.son-ai__cta a{ flex:1; min-width:170px; text-align:center; padding:15px; font-weight:800; font-size:14.5px; font-family:"Gothic A1",sans-serif;
  transition:transform .25s var(--son-ease); }
.son-ai__cta a:hover{ transform:translateY(-2px); }
.son-ai__cta .k{ background:#FAE100; color:#1a1a1a !important; }
.son-ai__cta .c{ background:var(--ink); color:#fff !important; }

/* 모바일 */
@media(max-width:600px){
  .son-ai__hero{ padding:30px 20px; }
  .son-ai__body{ padding:22px 18px; }
  .son-ai__opts{ gap:7px; }
  .son-ai__opt{ padding:10px 13px; font-size:13px; }
  .son-ai__row{ grid-template-columns:1fr; }
  .son-ai__head{ gap:16px; }
  .son-ai__gauge{ width:96px; height:96px; } .son-ai__gauge b{ font-size:27px; }
  .son-ai__cta a{ min-width:100%; }
}
/* AI 생성 이미지 + 리포트 태그 */
.son-ai__img{ display:none; margin-bottom:22px; position:relative; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10; background:var(--bg-alt); }
.son-ai__img.show{ display:block; animation:sonAiReveal .6s var(--son-ease-out) both; }
.son-ai__img img{ width:100%; height:100%; object-fit:cover; display:block; animation:sonAiImgIn 1.1s var(--son-ease-out) both; }
@keyframes sonAiImgIn{ from{ opacity:0; transform:scale(1.06); } to{ opacity:1; transform:none; } }
.son-ai__img-sk{ position:absolute; inset:0; background:linear-gradient(100deg,var(--bg-alt) 28%,#ffffff 50%,var(--bg-alt) 72%); background-size:200% 100%; animation:sonAiSk 1.2s linear infinite; }
@keyframes sonAiSk{ to{ background-position:-200% 0; } }
.son-ai__img-cap{ position:absolute; left:0; bottom:0; width:100%; padding:11px 15px; font-size:12.5px; font-weight:600; color:#fff;
  background:linear-gradient(transparent,rgba(10,10,11,.72)); }
.son-ai__report-tag{ display:inline-block; font-family:var(--font-lat),sans-serif; font-size:11px; font-weight:800;
  letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; }

@media (prefers-reduced-motion:reduce){
  .son-ai__q{ opacity:1 !important; transform:none !important; }
  .son-ai__hero::before{ animation:none !important; }
  .son-ai__img img{ animation:none !important; }
}

/* ============================================================
   21) 신뢰 띠 (메인 히어로 하단)
   ============================================================ */
.son-trust{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.son-trust .container{ display:flex; flex-wrap:wrap; gap:12px 30px; align-items:center; justify-content:center; padding:18px 30px; }
.son-trust .it{ display:inline-flex; align-items:center; gap:9px; font-size:13.5px; font-weight:700; color:var(--ink); letter-spacing:-.01em; }
.son-trust .it::before{ content:"✓"; color:var(--accent); font-weight:900; }
.son-trust .it b{ color:var(--accent); }
@media(max-width:600px){ .son-trust .container{ gap:9px 16px; padding:14px 16px; } .son-trust .it{ font-size:12px; } }

/* ============================================================
   22) SNS Live 카드
   ============================================================ */
.son-social{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.son-social a{ border:1px solid var(--line); background:#fff; padding:28px 18px; text-align:center; display:block;
  transition:transform .3s var(--son-ease), border-color .3s, box-shadow .3s; }
.son-social a:hover{ border-color:var(--accent); transform:translateY(-5px); box-shadow:0 24px 44px -30px rgba(10,10,11,.4); }
.son-social .ic{ font-size:30px; line-height:1; }
.son-social b{ display:block; margin-top:12px; font-family:"Gothic A1",sans-serif; font-weight:800; font-size:16px; letter-spacing:-.02em; }
.son-social span{ display:block; margin-top:3px; font-size:12.5px; color:var(--ink-3); }
.son-social__yt{ margin-top:16px; border:1px solid var(--line); aspect-ratio:16/9; overflow:hidden; }
.son-social__yt iframe{ width:100%; height:100%; border:0; display:block; }
@media(max-width:768px){ .son-social{ grid-template-columns:1fr 1fr; } }

/* 플랜 추천 결과 라벨 재사용은 .son-ai__label / .son-ai__report-tag 사용 */

/* ============================================================
   23) 상담폼 신뢰 배지 (어두운 CTA 섹션용)
   ============================================================ */
.son-formbadge{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.son-formbadge span{ font-size:12px; font-weight:600; color:rgba(246,241,233,.85); border:1px solid var(--line-d); padding:7px 11px; }

/* ============================================================
   24) 행사 사전신청 리드 폼
   ============================================================ */
.son-lead{ border:1px solid var(--line); background:#fff; padding:clamp(26px,4vw,40px); max-width:680px; }
.son-lead .row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.son-lead .f{ margin-bottom:12px; }
.son-lead label.fl{ display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:6px; }
.son-lead input, .son-lead select{ width:100%; padding:13px 15px; border:1.5px solid var(--line); font-family:inherit; font-size:15px; background:#fff; color:var(--ink); transition:.2s; }
.son-lead input:focus, .son-lead select:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(30,80,255,.13); }
.son-lead .agree{ display:flex; gap:8px; align-items:center; font-size:13px; color:var(--ink-3); margin:4px 0 12px; }
.son-lead .agree input{ width:auto; }
.son-lead button{ width:100%; padding:16px; background:var(--accent); color:#fff; font-family:"Gothic A1",sans-serif; font-weight:800; font-size:16px; border:0; cursor:pointer; transition:.25s var(--son-ease); }
.son-lead button:hover{ background:var(--accent-2); }
.son-lead-msg{ display:none; margin-top:13px; padding:14px 16px; background:rgba(30,80,255,.07); border:1px solid var(--line); font-size:14px; color:var(--ink); }
@media(max-width:600px){ .son-lead .row2{ grid-template-columns:1fr; } }

/* ============================================================
   25) 매니저진 그리드
   ============================================================ */
.son-mgr{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.son-mgr .m{ border:1px solid var(--line); background:#fff; overflow:hidden; transition:transform .35s var(--son-ease), box-shadow .35s, border-color .35s; }
.son-mgr .m:hover{ transform:translateY(-5px); border-color:var(--ink); box-shadow:0 24px 44px -30px rgba(10,10,11,.4); }
.son-mgr .m .ph{ aspect-ratio:3/4; overflow:hidden; background:var(--bg-alt); }
.son-mgr .m .ph img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.03); transition:filter .5s var(--son-ease), transform .8s var(--son-ease); }
.son-mgr .m:hover .ph img{ filter:grayscale(0); transform:scale(1.04); }
.son-mgr .m .b{ padding:17px 18px; }
.son-mgr .m .b b{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:17px; letter-spacing:-.02em; }
.son-mgr .m .b .role{ display:block; font-size:12px; color:var(--accent); font-weight:700; margin-top:3px; }
.son-mgr .m .b p{ font-size:13px; color:var(--ink-2); margin-top:9px; line-height:1.6; }
@media(max-width:768px){ .son-mgr{ grid-template-columns:1fr 1fr; } }
@media(max-width:460px){ .son-mgr{ grid-template-columns:1fr; } }

/* ============================================================
   27) ★ 무료 상담 스텝폼 모달 (전 페이지 공통 · 1차 전환)
   ============================================================ */
body.son-noscroll{ overflow:hidden; }
.son-modal{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:18px;
  opacity:0; visibility:hidden; transition:opacity .3s var(--son-ease); }
.son-modal.show{ opacity:1; visibility:visible; }
.son-modal__bg{ position:absolute; inset:0; background:rgba(10,10,11,.64); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.son-modal__card{ position:relative; z-index:2; width:100%; max-width:500px; background:#fff; border:1px solid var(--line);
  max-height:94vh; overflow:auto; transform:translateY(20px) scale(.985); transition:transform .4s var(--son-ease-out);
  box-shadow:0 50px 100px -40px rgba(10,10,11,.55); }
.son-modal.show .son-modal__card{ transform:none; }
.son-modal__x{ position:absolute; top:11px; right:14px; font-size:27px; line-height:1; color:var(--ink-3); background:none; border:0; cursor:pointer; z-index:3; }
.son-modal__x:hover{ color:var(--ink); }
.son-step__top{ padding:26px 30px 0; }
.son-step__brand{ font-family:"Pretendard","Gothic A1",sans-serif; font-weight:900; font-size:17px; letter-spacing:-.04em; -webkit-text-stroke:0; display:flex; align-items:baseline; }
.son-step__brand span{ -webkit-text-stroke:0; font-weight:700; font-size:12.5px; color:var(--accent); margin-left:8px; letter-spacing:0; }
.son-step__bar{ height:4px; background:var(--bg-alt); margin:15px 0 8px; overflow:hidden; }
.son-step__bar i{ display:block; height:100%; width:0; background:var(--accent); transition:width .45s var(--son-ease-out); }
.son-step__count{ font-family:var(--font-lat),sans-serif; font-size:11.5px; font-weight:700; letter-spacing:.12em; color:var(--ink-3); }
.son-step__body{ padding:20px 30px 30px; }
.son-step__back{ background:none; border:0; color:var(--ink-3); font-size:13px; font-weight:600; cursor:pointer; margin-bottom:14px; padding:0; }
.son-step__back:hover{ color:var(--accent); }
.son-step__q h3{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:clamp(20px,4.4vw,26px); letter-spacing:-.035em; line-height:1.3; color:var(--ink); }
.son-step__q > p{ color:var(--ink-2); font-size:14px; margin-top:9px; }
.son-step__opts{ display:grid; gap:10px; margin-top:22px; }
.son-step__opts.grid2{ grid-template-columns:1fr 1fr; }
.son-step__opt{ display:flex; align-items:center; gap:11px; width:100%; text-align:left; border:1.5px solid var(--line); background:#fff;
  padding:17px 18px; font-size:16px; font-weight:700; color:var(--ink); cursor:pointer; transition:.2s var(--son-ease); font-family:inherit; }
.son-step__opt .ic{ font-size:20px; line-height:1; }
.son-step__opts.grid2 .son-step__opt{ justify-content:center; text-align:center; }
.son-step__opt:hover{ border-color:var(--accent); color:var(--accent); transform:translateY(-2px); }
.son-step__opt.on{ background:var(--accent); border-color:var(--accent); color:#fff; }
.son-step__opts:not(.grid2) .son-step__opt::after{ content:"›"; margin-left:auto; opacity:.35; font-size:20px; }
.son-step__field{ margin-top:15px; }
.son-step__field label{ display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:7px; }
.son-step__field input{ width:100%; padding:14px 15px; border:1.5px solid var(--line); font-size:15.5px; font-family:inherit; color:var(--ink); background:#fff; transition:.2s; }
.son-step__field input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(30,80,255,.13); }
.son-step__agree{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; color:var(--ink-3); margin:16px 0 4px; line-height:1.5; cursor:pointer; }
.son-step__agree input{ margin-top:2px; flex:none; }
.son-step__agree a{ color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.son-step__submit{ width:100%; margin-top:16px; padding:16px; background:var(--accent); color:#fff; font-family:"Gothic A1",sans-serif;
  font-weight:800; font-size:16px; border:0; cursor:pointer; transition:.25s var(--son-ease); }
.son-step__submit:hover:not(:disabled){ background:var(--accent-2); }
.son-step__submit:disabled{ opacity:.45; cursor:not-allowed; }
.son-step__trust{ display:flex; flex-wrap:wrap; gap:6px 15px; margin-top:16px; font-size:11.5px; color:var(--ink-3); font-weight:600; }
.son-step__trust span::before{ content:"✓ "; color:var(--accent); font-weight:900; }
.son-step__done{ text-align:center; padding:16px 0 8px; }
.son-step__done .chk{ width:66px; height:66px; border-radius:50%; background:var(--accent); color:#fff; font-size:33px; font-weight:700;
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px; animation:sonPop .55s var(--son-ease-out) both; }
@keyframes sonPop{ from{ transform:scale(.3); opacity:0;} to{ transform:scale(1); opacity:1;} }
.son-step__done h3{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:23px; letter-spacing:-.03em; }
.son-step__done p{ color:var(--ink-2); font-size:14.5px; margin-top:11px; line-height:1.7; }
.son-step__done-cta{ display:flex; gap:10px; margin-top:24px; }
.son-step__done-cta a{ flex:1; padding:15px 8px; font-weight:800; font-size:14.5px; text-align:center; font-family:"Gothic A1",sans-serif; transition:transform .25s var(--son-ease); }
.son-step__done-cta a:hover{ transform:translateY(-2px); }
.son-step__done-cta .k{ background:#FAE100; color:#1a1a1a !important; }
.son-step__done-cta .c{ background:var(--ink); color:#fff !important; }
/* 도크 무료상담 버튼 */
.son-fab .son-consult{ background:var(--accent); color:#fff; font-size:20px; }
.son-fab .son-consult:hover{ background:var(--accent-2); }
@media(max-width:600px){ .son-modal{ padding:0; align-items:flex-end; } .son-modal__card{ max-width:100%; max-height:96vh; }
  .son-modal.show .son-modal__card{ animation:sonSheet .4s var(--son-ease-out) both; }
  @keyframes sonSheet{ from{ transform:translateY(100%);} to{ transform:none;} }
  .son-step__top{ padding:22px 22px 0; } .son-step__body{ padding:18px 22px 26px; } }

/* ============================================================
   28) 당근式 에디토리얼 — 더 넉넉한 여백 · 큰 타이포 · 미디어+텍스트 밴드
   ============================================================ */
/* 전역 리듬: 세련된 에디토리얼 스케일 — 너무 크지 않게, 여백은 넉넉히 */
.section{ padding:clamp(58px,7.2vw,104px) 0; }
.head-block{ margin-bottom:clamp(30px,3.8vw,50px); }
.lead{ font-size:clamp(14.5px,1.15vw,16.5px) !important; line-height:1.72 !important; color:var(--ink-2); }
.prose p{ font-size:clamp(14.5px,1.05vw,16px) !important; line-height:1.8 !important; }
.subhero h1{ font-size:clamp(28px,4.4vw,52px) !important; }
.eyebrow{ font-size:11px !important; }

/* 풀블리드 미디어 밴드 + 그 아래 텍스트 (당근 회사소개 시그니처 — 가독성·신뢰) */
.son-edi{ margin:clamp(64px,9vw,128px) 0; }
.son-edi__media{ position:relative; width:100%; aspect-ratio:16/8; max-height:80vh; overflow:hidden; background:var(--bg-alt); }
.son-edi__media img, .son-edi__media video{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.6s var(--son-ease); }
.son-edi:hover .son-edi__media img{ transform:scale(1.045); }
.son-edi__txt{ max-width:780px; margin:clamp(28px,3.6vw,48px) auto 0; padding:0 24px; text-align:center; }
.son-edi__txt .k{ font-family:var(--font-lat),sans-serif; font-size:11.5px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); }
.son-edi__txt h3{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:clamp(21px,2.7vw,33px); letter-spacing:-.03em; line-height:1.26; margin:13px 0 0; color:var(--ink); }
.son-edi__txt p{ color:var(--ink-2); font-size:clamp(14.5px,1.15vw,16.5px); line-height:1.8; margin-top:16px; }
.son-edi__txt .btn{ margin-top:28px; }
.son-edi--left .son-edi__txt{ text-align:left; margin-left:0; margin-right:auto; }
@media(max-width:768px){ .son-edi__media{ aspect-ratio:4/3; } .son-edi__txt{ padding:0 20px; } }

/* 당근식 히어로 — 헤드라인 먼저 → 그 아래 풀블리드 미디어 (전 페이지 공통) */
.son-hero{ padding:clamp(116px,15vw,166px) 0 0; text-align:center; overflow:hidden; }
.son-hero > .container{ max-width:1000px; }
.son-hero .eyebrow{ justify-content:center; display:inline-flex; margin-bottom:6px; }
.son-hero .crumb{ justify-content:center; display:flex; }
.son-hero h1{ font-family:"Gothic A1",sans-serif; font-weight:900; font-size:clamp(32px,5vw,62px); line-height:1.1; letter-spacing:-.035em; margin:16px 0 0; color:var(--ink); }
.son-hero h1 .fire, .son-hero h1 .em{ color:var(--accent); }
.son-hero .sub, .son-hero .lead{ font-size:clamp(14.5px,1.3vw,17px) !important; color:var(--ink-2); max-width:54ch; margin:20px auto 0 !important; line-height:1.7 !important; font-weight:400; }
.son-hero__cta{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:34px; }
.son-hero__media{ position:relative; width:100%; aspect-ratio:16/7; max-height:84vh; overflow:hidden; background:var(--bg-alt); margin-top:clamp(46px,6vw,78px); }
.son-hero__media img{ width:100%; height:100%; object-fit:cover; display:block; }
@media(max-width:768px){ .son-hero{ padding-top:102px; } .son-hero__media{ aspect-ratio:4/5; max-height:none; } .son-hero > .container{ padding:0 22px; } }

/* 세부 페이지 서브히어로 → 당근식 통일 (중앙 헤드라인 → 풀블리드 미디어). 페이지 편집 없이 공통 적용 */
.subhero.subhero--media{ text-align:center; }
.subhero.subhero--media .crumb{ display:flex; justify-content:center; }
.subhero.subhero--media .eyebrow{ justify-content:center; }
.subhero.subhero--media h1{ max-width:18ch; margin-left:auto; margin-right:auto; }
.subhero.subhero--media h1::after{ margin-left:auto; margin-right:auto; }
.subhero.subhero--media .lead{ margin-left:auto; margin-right:auto; }
.subhero.subhero--media .subhero-media{
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  margin-top:clamp(44px,5.5vw,76px) !important; }
@media(max-width:768px){ .subhero.subhero--media h1{ max-width:none; } }

/* 방송/언론 가로 마키 (신뢰) */
.son-press{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; overflow:hidden; background:#fff; }
.son-press__track{ display:flex; gap:54px; align-items:center; width:max-content; animation:sonMarq 26s linear infinite; }
.son-press:hover .son-press__track{ animation-play-state:paused; }
.son-press span{ font-family:"Gothic A1",sans-serif; font-weight:800; font-size:clamp(15px,2vw,20px); letter-spacing:-.02em; color:var(--ink-3); white-space:nowrap; display:inline-flex; align-items:center; gap:10px; }
.son-press span::before{ content:"✦"; color:var(--accent); font-size:.7em; }
@keyframes sonMarq{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .son-press__track{ animation:none; flex-wrap:wrap; } }

/* ============================================================
   26) 이미지 중심 럭셔리 레이아웃 보정 (수현 스타일 — 큰 시네마틱 미디어)
   ============================================================ */
/* 서브히어로 이미지를 더 크고 시네마틱하게 */
.subhero-media{ height:clamp(360px,58vw,680px) !important; }
/* 모든 주요 미디어에 느린 줌(럭셔리한 호버) */
.subhero-media img, .split--media img, .portrait img, .feat-story .img img, .loc-media img{ transition:transform 1.4s var(--son-ease); }
.subhero-media:hover img, .split--media:hover img, .portrait:hover img, .feat-story:hover .img img, .loc-media:hover img{ transform:scale(1.045); }
/* 2단 구성에서 이미지·여백을 더 넉넉하게 */
@media(min-width:1025px){ .split{ gap:72px; } }
/* 갤러리 간격을 줄여 이미지가 면으로 붙는 갤러리 월 느낌 */
.gallery{ gap:14px; }
.gallery .g{ aspect-ratio:4/4.4; }            /* 세로 럭셔리 비율 */
@media(max-width:768px){ .gallery .g{ aspect-ratio:4/3.4; } }
/* 갤러리 셀을 작게 → 저해상 이미지가 확대돼 깨지는 현상 방지 */
.gallery{ grid-template-columns:repeat(auto-fill,minmax(196px,1fr)) !important; gap:10px !important; }
.gallery .g{ aspect-ratio:4/4 !important; }
@media(max-width:768px){ .gallery{ grid-template-columns:repeat(auto-fill,minmax(140px,1fr)) !important; } .gallery .g{ aspect-ratio:1/1 !important; } }

/* ============================================================
   29) ★ 당근式 타이틀 시스템 (전 페이지 공통) — 라벨→헤드라인→설명, 좌측 정렬·넉넉한 여백
   ============================================================ */
.section{ padding:clamp(64px,8.4vw,120px) 0; }

/* 라벨(eyebrow) — 작고 단정한 액센트 라벨 + 짧은 룰 */
.eyebrow{ font-family:var(--font-lat),sans-serif !important; font-size:12px !important; font-weight:800 !important;
  letter-spacing:.14em !important; color:var(--accent) !important; margin-bottom:16px !important; gap:9px !important; }
.eyebrow::before{ width:22px !important; height:2px !important; background:var(--accent) !important; }

/* 섹션 헤드라인 — 크고 또렷, 좌측, 편안한 행간 */
.sect-title{ font-weight:800 !important; letter-spacing:-.035em !important; line-height:1.2 !important;
  font-size:clamp(25px,3.6vw,44px) !important; color:var(--ink); }

/* 헤드 블록 리듬: 헤드라인 → 설명, 넉넉한 하단 여백 */
.head-block{ max-width:760px; margin-bottom:clamp(34px,4.6vw,60px); }
.head-block .lead{ margin-top:18px !important; }
.prose .pull{ font-size:clamp(18px,2.1vw,26px) !important; line-height:1.5 !important; }

/* 히어로 — 당근식(중앙 라벨→큰 헤드라인→설명→풀블리드 미디어) */
.son-hero h1{ font-size:clamp(34px,5.6vw,66px) !important; line-height:1.1 !important; letter-spacing:-.035em !important; }
.son-hero .sub, .son-hero .lead{ font-size:clamp(15px,1.4vw,18px) !important; max-width:52ch !important; }
.subhero.subhero--media h1{ font-size:clamp(30px,4.8vw,58px) !important; line-height:1.12 !important; }
.subhero.subhero--media .lead{ font-size:clamp(15px,1.4vw,17.5px) !important; max-width:56ch; }

/* son-edi 밴드 타이틀 */
.son-edi__txt h3{ font-size:clamp(22px,2.9vw,36px) !important; line-height:1.22 !important; }
.son-edi__txt p{ font-size:clamp(15px,1.2vw,17px) !important; }

/* 모바일 퍼스트 — 타이틀/여백/터치 최적화 (★중요) */
@media(max-width:768px){
  .section{ padding:clamp(46px,12vw,66px) 0; }
  .container{ padding-left:20px !important; padding-right:20px !important; }
  .head-block{ margin-bottom:26px; }
  .eyebrow{ margin-bottom:12px !important; font-size:11.5px !important; }
  .son-hero{ padding-top:96px !important; }
  .son-hero h1{ font-size:clamp(29px,8.4vw,40px) !important; }
  .son-hero .sub, .son-hero .lead{ font-size:15px !important; }
  .subhero.subhero--media h1{ font-size:clamp(26px,7.4vw,37px) !important; }
  .sect-title{ font-size:clamp(23px,6.6vw,30px) !important; }
  .son-edi__txt h3{ font-size:clamp(21px,6vw,27px) !important; }
  .son-edi__txt p, .lead, .prose p{ font-size:15px !important; }
  .btn{ padding:13px 22px !important; }   /* 터치 타깃 */
}

/* ============================================================
   30) ★ 동영상 콘텐츠 — 사진 자리에 10초 루프 영상(같은 이름 .mp4) 자동 적용
   ============================================================ */
.son-hero__media, .son-edi__media, .subhero-media{ position:relative; }
.son-vid{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:1;
  transition:opacity .6s var(--son-ease); background:#0a0a0b; }
.subhero-media::after{ z-index:3; }   /* 그라데이션을 영상 위에 유지 */

/* ============================================================
   31) 실사 커플 갤러리 (세로 3:4 — 보유 화보 전용, 컬러 유지·크롭 최소)
   ============================================================ */
.son-couples{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.son-couples .g{ position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--bg-alt); }
.son-couples .g img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s var(--son-ease); }
.son-couples .g:hover img{ transform:scale(1.05); }
.son-couples .g .cap{ position:absolute; left:0; bottom:0; width:100%; padding:14px; color:#fff; font-size:12.5px; font-weight:700;
  background:linear-gradient(transparent,rgba(10,10,11,.72)); opacity:0; transition:opacity .3s var(--son-ease); }
.son-couples .g:hover .cap{ opacity:1; }
@media(max-width:768px){ .son-couples{ grid-template-columns:1fr 1fr; gap:8px; } }

/* ============================================================
   32) 후기 카드 — 얼굴 프라이버시 모자이크(상단 블러) + 별점/메타
   ============================================================ */
.son-ph{ position:relative; overflow:hidden; background:var(--bg-alt); }
.son-ph img{ display:block; width:100%; height:100%; object-fit:cover; }
/* (자동 모자이크 기능 삭제됨 — 사진은 업로드된 원본 그대로 표시. 모자이크는 수동 처리한 이미지를 올리세요) */
.rev-card .son-ph{ height:215px; } .story-card .son-ph{ height:200px; }
.son-stars{ color:var(--accent); font-size:12.5px; letter-spacing:2px; margin-bottom:9px; }
.rev-card .meta-row, .story-card .meta-row{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:13px; padding-top:12px; border-top:1px solid var(--line); }
.rev-card .meta-row .who, .story-card .meta-row .who{ margin:0; padding:0; border:0; font-size:12.5px; color:var(--ink-3); }
.rev-card .meta-row .date, .story-card .meta-row .date{ font-size:11px; color:var(--ink-3); white-space:nowrap; }
.son-revcount{ font-size:13px; color:var(--ink-3); margin:0 0 20px; }
.son-morewrap{ text-align:center; margin-top:34px; }

/* ============================================================
   33) ★ 타이틀 모노톤화 + 모바일 텍스트 레이아웃 정제 (전 페이지 공통)
       - 타이틀의 파란색 제거(블루는 버튼/CTA/포인트 UI에만)
       - 모바일 타이포 리듬·여백·가독성 업그레이드
   ============================================================ */
/* (A) 타이틀에서 파란색 제거 → 모노톤 에디토리얼 */
.eyebrow, .son-edi__txt .k{ color:var(--ink-3) !important; font-weight:700 !important; letter-spacing:.16em !important; }
.eyebrow::before{ background:var(--ink-3) !important; opacity:.55; }
.hero h1 .fire, .hero h1 .em, .son-hero h1 .fire, .son-hero h1 .em,
.subhero h1 .fire, .subhero h1 .em, .sect-title .em, .sect-title .fire,
.son-edi__txt h3 .em, .son-edi__txt h3 .fire, .kicker-num{ color:var(--ink) !important; -webkit-text-fill-color:var(--ink) !important; }
/* 타이틀 밑 강조선도 블루 대신 뉴트럴(은은하게) */
.subhero h1::after, .son-line::before{ background:var(--ink-3) !important; opacity:.5; }
/* 어두운 섹션 라벨은 밝게 유지(가독성) */
.section--dark .eyebrow, .cta-band .eyebrow, .cta .eyebrow, .ip .eyebrow{ color:rgba(255,255,255,.62) !important; }
.section--dark .eyebrow::before, .cta-band .eyebrow::before, .cta .eyebrow::before, .ip .eyebrow::before{ background:rgba(255,255,255,.5) !important; }

/* (B) 데스크톱 미세 정제 */
.son-edi__txt{ max-width:720px; }

/* (C) ★ 모바일 텍스트 레이아웃 — 세련된 타이포 리듬 */
@media(max-width:768px){
  .container{ padding-left:22px !important; padding-right:22px !important; }
  .section{ padding:clamp(44px,11vw,62px) 0 !important; }
  .head-block{ margin-bottom:22px !important; }

  .eyebrow{ font-size:11px !important; letter-spacing:.18em !important; margin-bottom:13px !important; gap:8px !important; }
  .eyebrow::before{ width:18px !important; height:1.5px !important; }

  /* 메인 히어로 (헤드라인 먼저 → 미디어) */
  .son-hero{ padding-top:92px !important; }
  .son-hero h1{ font-size:clamp(28px,7.8vw,37px) !important; line-height:1.24 !important; letter-spacing:-.03em !important; }
  .son-hero .sub, .son-hero .lead{ font-size:14.5px !important; line-height:1.66 !important; margin-top:16px !important; max-width:38ch !important; }
  .son-hero__cta{ margin-top:24px !important; gap:9px !important; }

  /* 세부 페이지 히어로 */
  .subhero.subhero--media{ padding-top:104px !important; }
  .subhero .crumb{ font-size:12px !important; margin-bottom:16px !important; }
  .subhero.subhero--media h1{ font-size:clamp(26px,7vw,34px) !important; line-height:1.28 !important; letter-spacing:-.03em !important; margin-bottom:0 !important; }
  .subhero.subhero--media h1::after{ margin-top:18px !important; height:3px !important; }
  .subhero.subhero--media .lead{ font-size:14.5px !important; line-height:1.7 !important; margin-top:16px !important; }

  /* 섹션 타이틀 + 본문 */
  .sect-title{ font-size:clamp(22px,6.2vw,28px) !important; line-height:1.32 !important; letter-spacing:-.03em !important; }
  .head-block .lead{ margin-top:14px !important; }
  .lead{ font-size:14.5px !important; line-height:1.7 !important; }
  .prose p{ font-size:14.5px !important; line-height:1.84 !important; margin-bottom:16px !important; }
  .prose .pull{ font-size:18px !important; line-height:1.5 !important; padding-left:15px !important; margin:24px 0 !important; }

  /* 에디토리얼 밴드 텍스트 */
  .son-edi{ margin:46px 0 !important; }
  .son-edi__txt{ padding:0 22px !important; margin-top:24px !important; }
  .son-edi__txt h3{ font-size:clamp(20px,5.6vw,26px) !important; line-height:1.34 !important; }
  .son-edi__txt p{ font-size:14.5px !important; line-height:1.72 !important; margin-top:13px !important; }

  /* 카드 본문 가독성 */
  .feature p, .svc p, .value p, .story-card p, .rev-card .body p, .quote p{ font-size:14px !important; line-height:1.7 !important; }
  .btn{ padding:13px 22px !important; font-size:14.5px !important; }
}
@media(max-width:380px){
  .son-hero h1{ font-size:27px !important; }
  .subhero.subhero--media h1{ font-size:25px !important; }
  .sect-title{ font-size:23px !important; }
}

/* ============================================================
   34) ★ 당근식 리뉴얼 스킨 — 세부 페이지(공통 클래스) 일괄 적용
       둥근 카드 · 알약 버튼 · 소프트 그림자 · 컬러 이미지 · 넉넉한 여백.
       (index 는 자체 dg- 시스템이라 영향 없음)
   ============================================================ */
/* 라운드 복원 — 각진(border-radius:0) 규칙 덮어쓰기 */
.btn, .btn-primary, .btn-line, .btn-ghost-d, .hdr-cta, .faq-tab, .tagset span, .flow span, .son-lead button{ border-radius:999px !important; }
.field input, .field select, .son-lead input, .son-lead select, .reco li, .dropdown{ border-radius:14px !important; }
.feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
.gisu .g, .region, .ip-card, .plan, .cmp, .form-card, .gallery .g, .subhero-media, .feat-story, .loc-media,
.son-mgr .m, .son-social a, .son-ai, .son-lead{ border-radius:20px !important; }

/* 버튼 — 알약 + 볼드 + 소프트 그림자 */
.btn{ padding:14px 26px !important; font-weight:800 !important; }
.btn-primary, .hdr-cta{ box-shadow:0 12px 26px -12px rgba(30,80,255,.5) !important; }
.btn-primary:hover, .hdr-cta:hover{ transform:translateY(-2px); }
.btn-line{ border:1.5px solid var(--line) !important; color:var(--ink) !important; background:transparent !important; }
.btn-line:hover{ border-color:var(--ink) !important; color:var(--ink) !important; transform:translateY(-2px); }

/* 카드 — 흰 배경·헤어라인·소프트 그림자·호버 리프트 (스위스 그리드 해제) */
.feature-grid, .svc-grid{ border:0 !important; gap:16px !important; }
.feature, .svc{ border:1px solid var(--line) !important; background:#fff !important; box-shadow:0 2px 8px rgba(20,20,30,.05) !important; padding:30px !important; }
.feature:hover, .svc:hover{ transform:translateY(-5px) !important; background:#fff !important; box-shadow:0 24px 50px -30px rgba(20,20,40,.26) !important; }
.value-grid{ border:0 !important; gap:14px !important; }
.value{ border:1px solid var(--line) !important; background:#fff !important; box-shadow:0 2px 8px rgba(20,20,30,.04) !important; }
.value:hover{ background:#fff !important; transform:translateY(-4px); box-shadow:0 22px 46px -30px rgba(20,20,40,.24) !important; }
.rev-card, .story-card, .col-card, .info-card, .doc-card, .quote, .son-mgr .m{ border:1px solid var(--line) !important; box-shadow:0 2px 8px rgba(20,20,30,.05) !important; }
.rev-card:hover, .story-card:hover, .col-card:hover, .son-mgr .m:hover, .quote:hover{ transform:translateY(-5px) !important; box-shadow:0 24px 50px -30px rgba(20,20,40,.26) !important; }
/* 카드 상단 블루 라인 제거(모노톤 통일) */
.rev-card::before, .story-card::before, .col-card::before, .fcard::before, .feature::before, .svc::before{ display:none !important; }

/* 서브히어로 이미지 — 풀블리드 해제 → 컨테이너 안 둥근 이미지(index와 통일) */
.subhero.subhero--media .subhero-media{ width:auto !important; max-width:none !important; margin-left:0 !important; margin-right:0 !important;
  margin-top:clamp(34px,4.5vw,58px) !important; height:clamp(300px,42vw,520px) !important; box-shadow:0 30px 60px -38px rgba(20,20,40,.3) !important; }

/* 비교표 */
.cmp{ box-shadow:0 2px 8px rgba(20,20,30,.05) !important; border:1px solid var(--line) !important; }
.cmp thead th:last-child{ background:var(--accent) !important; color:#fff !important; }
.cmp td:last-child{ background:var(--blush) !important; color:var(--ink) !important; }

/* 이미지 컬러 유지(흑백 필터 제거) — 친근한 당근 톤 */
.gallery .g img, .region img, .ip-card .img img, .son-mgr .m .ph img{ filter:none !important; }

/* FAQ 카드형 */
.faq-item{ border:1px solid var(--line) !important; border-radius:14px !important; margin-bottom:10px; overflow:hidden; background:#fff; }
.faq-q{ padding:20px 52px 20px 22px !important; } .faq-a p{ padding:0 22px 22px !important; }
.faq-q::after{ right:20px !important; }

/* 칩/리스트 호버 */
.reco li:hover{ transform:translateY(-2px); border-color:var(--accent) !important; }
.flow span:hover, .tagset span:hover{ background:var(--ink) !important; color:#fff !important; border-color:var(--ink) !important; }

/* CTA 밴드 — 둥근 요소 */
.cta-band .btn, .cta .btn{ border-radius:999px !important; }
.cta-q, .quick-btn, .doc-card, .form-card{ border-radius:18px !important; }

/* 어두운 섹션 카드도 라운드 */
.ip-card{ border-radius:20px !important; }

/* ============================================================
   35) ★ AI 위젯 아기자기 리뉴얼 + 썸온 캐릭터 '써미'
   ============================================================ */
.son-ai{ border-radius:28px !important; border:1px solid #E3EAFF !important; box-shadow:0 26px 64px -36px rgba(30,80,255,.4) !important; overflow:hidden; }
/* 히어로 → 파스텔 톤 (다크 시네마틱 제거) */
.son-ai__hero{ background:linear-gradient(135deg,#EEF3FF 0%, #DCE6FF 55%, #EAF0FF 100%) !important; color:var(--ink) !important; padding:clamp(26px,4vw,40px) !important; }
.son-ai__hero::before, .son-ai__hero::after{ content:none !important; }
.son-ai__badge{ background:#fff !important; color:var(--accent) !important; box-shadow:0 5px 14px -7px rgba(30,80,255,.45); }
.son-ai__hero h3{ color:var(--ink) !important; }
.son-ai__hero .son-ai__desc{ color:var(--ink-2) !important; }
.son-ai__meta span{ background:rgba(255,255,255,.72) !important; color:var(--ink-2) !important; }
/* 캐릭터 가이드 (말풍선) */
.son-ai__guide{ display:flex; align-items:flex-end; gap:11px; margin-bottom:22px; }
.son-ai__mascot{ width:62px; height:auto; flex:none; filter:drop-shadow(0 7px 11px rgba(30,80,255,.26)); animation:somBob 2.6s ease-in-out infinite; transform-origin:50% 90%; }
@keyframes somBob{ 0%,100%{ transform:translateY(0) rotate(-2.5deg);} 50%{ transform:translateY(-6px) rotate(2.5deg);} }
.son-ai__bubble{ position:relative; background:#fff; border:1.5px solid #E3EAFF; border-radius:16px 16px 16px 5px; padding:12px 15px; font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.55; box-shadow:0 7px 18px -11px rgba(30,80,255,.34); }
.son-ai__bubble::before{ content:""; position:absolute; left:-7px; bottom:9px; width:13px; height:13px; background:#fff; border-left:1.5px solid #E3EAFF; border-bottom:1.5px solid #E3EAFF; transform:rotate(45deg); }
/* 말랑한 옵션·입력 */
.son-ai__opt{ border-radius:999px !important; transition:transform .2s var(--son-ease), background-color .2s, border-color .2s, box-shadow .2s !important; }
.son-ai__opt:hover{ transform:translateY(-2px) scale(1.03) !important; }
.son-ai__opt.on{ box-shadow:0 8px 18px -8px rgba(30,80,255,.6) !important; }
.son-ai__in{ border-radius:14px !important; }
.son-ai__go{ border-radius:999px !important; }
.son-ai__q > label .son-ai__n{ background:var(--accent) !important; }
/* 결과 게이지/라벨도 살짝 둥글고 화사하게 */
.son-ai__result{ }
@media(max-width:600px){ .son-ai__mascot{ width:52px; } .son-ai__guide{ gap:9px; margin-bottom:18px; } .son-ai__bubble{ font-size:12.5px; padding:11px 13px; } }
@media(prefers-reduced-motion:reduce){ .son-ai__mascot{ animation:none; } }
/* 이상형 결과 이미지 = 전신 풀바디 — 발 안 잘리게 자동 높이 */
.son-ai__img{ aspect-ratio:auto !important; max-width:340px; margin-left:auto !important; margin-right:auto !important; overflow:visible !important; border:none !important; background:none !important; }
.son-ai__img img{ object-fit:contain !important; height:auto !important; object-position:center center !important; }

/* ============================================================
   36) 마무리 폴리시 — 포커스 링 · 부드러운 호버 (전 페이지)
   ============================================================ */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.dg-btn:focus-visible, .btn:focus-visible, .hdr-cta:focus-visible, .faq-q:focus-visible{ outline:2px solid var(--accent) !important; outline-offset:2px; }
@media(hover:hover){ .dg-btn--primary:hover, .btn-primary:hover, .hdr-cta:hover{ filter:saturate(1.06); } }
.son-mbar a, .son-fab a, .son-fab button, .dg-region, .faq-q{ -webkit-tap-highlight-color:transparent; }

/* ============================================================
   37) ★ 글래스 스킨 — 모던 프리미엄 글래스 (전 상세페이지 공통 오버라이드)
       · 글래스 카드: rgba(255,255,255,.6) + blur 20px(모바일 12px) + 블루 글로우
       · 주 버튼: 블루 그라데이션 pill + 글로우 / 그라데이션 텍스트는 eyebrow·숫자만
       · 다크 섹션: 네이비 그라데이션 + 내부 rgba(255,255,255,.06) 글래스
       · backdrop-filter 미지원 폴백 + prefers-reduced-motion 존중
   ============================================================ */

/* (37-0) 글래스 토큰 */
:root{
  --gl-blue:#1E50FF; --gl-blue-d:#0B33CC; --gl-blue-l:#4F8AFF;
  --gl-tint:#EEF3FF; --gl-tint-2:#F7FAFF;
  --gl-card:rgba(255,255,255,.6);
  --gl-line:rgba(255,255,255,.75);
  --gl-blur:20px;
  --gl-shadow:0 24px 60px -28px rgba(30,80,255,.28);
  --gl-shadow-hover:0 34px 80px -30px rgba(30,80,255,.38);
  --gl-grad:linear-gradient(135deg,#1E50FF,#0B33CC);
  --gl-grad-txt:linear-gradient(120deg,#1E50FF,#4F8AFF);
  --gl-ease:cubic-bezier(.22,.65,.25,1);
}
@media(max-width:760px){ :root{ --gl-blur:12px; } }  /* 모바일 성능 보호 */

/* (37-1) 고정 헤더 — 글래스 */
.hdr{ background:rgba(255,255,255,.6) !important;
  -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%);
  border-bottom:1px solid rgba(30,80,255,.08) !important; }
.hdr.son-stuck, .hdr.solid{ border-bottom-color:rgba(30,80,255,.12) !important;
  box-shadow:0 18px 44px -30px rgba(30,80,255,.25) !important; }
.dropdown{ background:rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter:blur(18px) saturate(160%); backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.8) !important; border-radius:18px !important;
  box-shadow:0 30px 70px -34px rgba(30,80,255,.35) !important; }
.m-menu{ background:linear-gradient(160deg,#0A1230 0%,#13204A 100%) !important; }
.son-prog{ background:linear-gradient(90deg,#1E50FF,#4F8AFF) !important; }

/* (37-2) 타이포 — 한 단계 큰 스케일 · -.04em · 또렷한 위계 */
.sect-title, .subhero h1, .son-hero h1, .son-edi__txt h3, .son-ai__hero h3, .son-step__q h3{ word-break:keep-all; }
.sect-title{ font-size:clamp(27px,3.9vw,48px) !important; letter-spacing:-.04em !important; line-height:1.16 !important; }
.subhero h1, .subhero.subhero--media h1{ font-size:clamp(32px,5.2vw,62px) !important; letter-spacing:-.04em !important; line-height:1.08 !important; }
.son-hero h1{ font-size:clamp(36px,6vw,70px) !important; letter-spacing:-.04em !important; }
.son-edi__txt h3{ font-size:clamp(23px,3.1vw,38px) !important; letter-spacing:-.04em !important; }
.son-ai__hero h3{ font-size:clamp(25px,3.6vw,38px) !important; letter-spacing:-.04em !important; }
.lead{ font-size:clamp(15px,1.25vw,17.5px) !important; }

/* (37-3) 그라데이션 텍스트 — eyebrow·숫자에만 절제 적용 */
.eyebrow, .son-edi__txt .k, .son-ai__report-tag{
  background:var(--gl-grad-txt); -webkit-background-clip:text; background-clip:text;
  color:transparent !important; -webkit-text-fill-color:transparent !important; font-weight:800 !important; }
.eyebrow::before{ background:linear-gradient(90deg,#1E50FF,#4F8AFF) !important; opacity:1 !important; }
.section--dark .eyebrow, .cta-band .eyebrow, .cta .eyebrow, .ip .eyebrow{
  background:linear-gradient(120deg,#9DBBFF,#E6EEFF); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent !important; }
.section--dark .eyebrow::before, .cta-band .eyebrow::before, .cta .eyebrow::before, .ip .eyebrow::before{
  background:linear-gradient(90deg,#9DBBFF,#4F8AFF) !important; }
.stat .num, .kicker-num, .son-ai__score b, .son-ai__gauge b{
  background:var(--gl-grad-txt) !important; -webkit-background-clip:text !important; background-clip:text !important;
  color:transparent !important; -webkit-text-fill-color:transparent !important; }
.stat .num .u{ -webkit-text-fill-color:var(--gl-blue) !important; }
.subhero h1::after, .son-line::before{ background:linear-gradient(90deg,#1E50FF,#4F8AFF) !important; opacity:1 !important; border-radius:999px; }

/* (37-4) 주 버튼 — 그라데이션 pill + 글로우 */
.btn-primary, .hdr-cta, .m-menu .m-cta, .son-lead button, .son-step__submit, .son-ai__go, .cta-band .btn-primary{
  background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; color:#fff !important;
  border:0 !important; border-radius:999px !important;
  box-shadow:0 14px 30px -10px rgba(30,80,255,.55) !important;
  transition:transform .3s var(--gl-ease), box-shadow .3s var(--gl-ease), filter .3s var(--gl-ease) !important; }
.btn-primary:hover, .hdr-cta:hover, .m-menu .m-cta:hover, .son-lead button:hover,
.son-step__submit:hover:not(:disabled), .son-ai__go:hover{
  transform:translateY(-2px); box-shadow:0 20px 44px -12px rgba(30,80,255,.65) !important;
  filter:brightness(1.06) saturate(1.05); }
/* 보조 버튼 — 글래스 고스트 */
.btn-line{ background:rgba(255,255,255,.55) !important;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid rgba(30,80,255,.25) !important; color:var(--gl-blue-d) !important; }
.btn-line:hover{ background:rgba(255,255,255,.85) !important; border-color:var(--gl-blue) !important; color:var(--gl-blue) !important;
  transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(30,80,255,.35) !important; }
.cta-band .btn-line, .cta .btn-line, .section--dark .btn-line, .btn-ghost-d{
  background:rgba(255,255,255,.08) !important; border:1px solid rgba(255,255,255,.35) !important; color:#fff !important; }
.cta-band .btn-line:hover, .cta .btn-line:hover, .section--dark .btn-line:hover, .btn-ghost-d:hover{
  background:rgba(255,255,255,.16) !important; border-color:rgba(255,255,255,.7) !important; color:#fff !important; }

/* (37-5) 서브히어로 — 연블루 앰비언트 + 라운드 미디어 */
.subhero{ background:
  radial-gradient(900px 480px at 88% -12%, rgba(238,243,255,.95) 0%, rgba(238,243,255,0) 62%),
  radial-gradient(720px 460px at 4% 30%, rgba(247,250,255,.95) 0%, rgba(247,250,255,0) 60%),
  #fff !important; }
.subhero .crumb a:hover{ color:var(--gl-blue) !important; }
.subhero.subhero--media .subhero-media{ border-radius:26px !important;
  box-shadow:0 40px 90px -40px rgba(30,80,255,.35) !important; }
.son-edi__media, .son-hero__media{ border-radius:26px !important; overflow:hidden;
  box-shadow:0 30px 70px -38px rgba(30,80,255,.3); }
.section--alt{ background:linear-gradient(180deg,#F7FAFF 0%,#EEF3FF 100%) !important; }
.son-press{ background:rgba(255,255,255,.55) !important;
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-top:1px solid rgba(30,80,255,.08) !important; border-bottom:1px solid rgba(30,80,255,.08) !important; }

/* (37-6) 카드 — 글래스 (라운드 22~26px · 블루 섀도) */
.feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
.gisu .g, .plan:not(.best), .form-card, .cmp, .son-mgr .m, .son-social a, .son-lead, .faq-item, .ideal-box, .son-ai{
  background:var(--gl-card) !important;
  -webkit-backdrop-filter:blur(var(--gl-blur)) saturate(160%);
  backdrop-filter:blur(var(--gl-blur)) saturate(160%);
  border:1px solid var(--gl-line) !important;
  box-shadow:var(--gl-shadow) !important; }
.feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
.gisu .g, .plan:not(.best), .form-card, .son-mgr .m, .son-social a, .son-lead, .ideal-box{ border-radius:24px !important; }
.cmp{ border-radius:22px !important; overflow:hidden; }
.faq-item{ border-radius:18px !important; }
.feature:hover, .svc:hover, .value:hover, .quote:hover, .rev-card:hover, .fcard:hover, .story-card:hover,
.col-card:hover, .son-mgr .m:hover, .son-social a:hover{
  transform:translateY(-6px) !important; background:rgba(255,255,255,.74) !important;
  border-color:rgba(255,255,255,.95) !important; box-shadow:var(--gl-shadow-hover) !important; }

/* 칩/탭 — 글래스 pill */
.reco li{ background:rgba(255,255,255,.55) !important; border:1px solid rgba(30,80,255,.14) !important; border-radius:16px !important; }
.reco li:hover{ border-color:var(--gl-blue) !important; box-shadow:0 12px 26px -16px rgba(30,80,255,.35); }
.tagset span, .flow span, .faq-tab, .fbtn{ background:rgba(255,255,255,.55) !important;
  border:1px solid rgba(30,80,255,.16) !important; border-radius:999px !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.flow span:hover, .tagset span:hover, .faq-tab.on, .fbtn.on{
  background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; color:#fff !important;
  border-color:transparent !important; box-shadow:0 10px 22px -10px rgba(30,80,255,.5) !important; }
/* 비교표 — 추천 열 그라데이션 */
.cmp thead th:last-child{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; }
.cmp td:last-child{ background:rgba(30,80,255,.07) !important; }
/* 폼 필드 */
.field input, .field select{ background:rgba(255,255,255,.75) !important; border:1.5px solid rgba(30,80,255,.13) !important; border-radius:14px !important; }
.field input:focus, .field select:focus{ border-color:var(--gl-blue) !important; box-shadow:0 0 0 4px rgba(30,80,255,.14) !important; }

/* (37-7) 다크 섹션 — 네이비 그라데이션 + 내부 글래스 카드 */
.section--dark, .cta-band, .cta, .ip{ background:linear-gradient(135deg,#0A1230 0%,#13204A 100%) !important; }
.site-footer, footer{ background:linear-gradient(165deg,#070D22 0%,#0E1838 100%) !important; }
.cta-q, .quick-btn, .ip-card, .plan.best{
  background:rgba(255,255,255,.06) !important;
  -webkit-backdrop-filter:blur(var(--gl-blur)) saturate(140%);
  backdrop-filter:blur(var(--gl-blur)) saturate(140%);
  border:1px solid rgba(255,255,255,.14) !important; border-radius:20px !important;
  box-shadow:0 24px 60px -30px rgba(4,10,32,.6) !important; }
.cta-q:hover, .quick-btn:hover{ border-color:rgba(79,138,255,.65) !important; background:rgba(255,255,255,.09) !important; }
.son-formbadge span{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18) !important; border-radius:999px; }

/* (37-8) AI 위젯 — 글래스 + 그라데이션 프리미엄 (클래스명은 someon-ai.js 그대로) */
.son-ai{ border-radius:28px !important; border:1px solid rgba(255,255,255,.8) !important;
  box-shadow:0 34px 90px -38px rgba(30,80,255,.4) !important; }
.son-ai__hero{ background:
  radial-gradient(560px 320px at 92% -18%, rgba(79,138,255,.3), rgba(79,138,255,0) 62%),
  radial-gradient(440px 300px at -8% 112%, rgba(30,80,255,.18), rgba(30,80,255,0) 60%),
  linear-gradient(135deg,#F7FAFF 0%,#E6EEFF 52%,#EEF3FF 100%) !important; }
.son-ai__badge{ background:rgba(255,255,255,.75) !important; color:var(--gl-blue) !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.9); border-radius:999px;
  box-shadow:0 10px 24px -12px rgba(30,80,255,.45) !important; }
.son-ai__meta span{ background:rgba(255,255,255,.62) !important; border:1px solid rgba(255,255,255,.85);
  border-radius:999px; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.son-ai__guide .son-ai__bubble{ background:rgba(255,255,255,.85) !important; border:1.5px solid rgba(255,255,255,.95) !important;
  box-shadow:0 14px 34px -18px rgba(30,80,255,.4) !important; }
.son-ai__bubble::before{ background:rgba(255,255,255,.85); border-color:rgba(255,255,255,.95) !important; }
.son-ai__mascot{ filter:drop-shadow(0 10px 18px rgba(30,80,255,.35)); }
.son-ai__prog, .son-step__bar, .son-ai__bar{ background:rgba(30,80,255,.08) !important; border-radius:999px; }
.son-ai__prog i, .son-step__bar i, .son-ai__bar i{ background:linear-gradient(90deg,#1E50FF,#4F8AFF) !important; border-radius:999px; }
.son-ai__q > label .son-ai__n{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important;
  box-shadow:0 6px 14px -6px rgba(30,80,255,.55); }
.son-ai__opt{ background:rgba(255,255,255,.6) !important; border:1.5px solid rgba(30,80,255,.16) !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.son-ai__opt:hover{ border-color:var(--gl-blue-l) !important; color:var(--gl-blue) !important;
  box-shadow:0 10px 24px -14px rgba(30,80,255,.4); }
.son-ai__opt.on{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; border-color:transparent !important;
  color:#fff !important; box-shadow:0 12px 26px -10px rgba(30,80,255,.6) !important; }
.son-ai__in{ background:rgba(255,255,255,.7) !important; border:1.5px solid rgba(30,80,255,.14) !important; border-radius:16px !important; }
.son-ai__in:focus{ background:#fff !important; border-color:var(--gl-blue) !important; box-shadow:0 0 0 4px rgba(30,80,255,.14) !important; }
.son-ai__result{ border-top:1px solid rgba(30,80,255,.12) !important; }
.son-ai__gauge{ background:conic-gradient(#4F8AFF, #1E50FF calc(var(--p,0)*1%), rgba(30,80,255,.08) 0) !important;
  box-shadow:0 18px 40px -20px rgba(30,80,255,.5); }
.son-ai__gauge::before{ background:#FBFCFF !important; box-shadow:inset 0 0 0 1px rgba(30,80,255,.06); }
.son-ai__sh{ border-radius:999px !important; border:1.5px solid rgba(30,80,255,.35) !important;
  background:rgba(255,255,255,.7) !important; color:var(--gl-blue) !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.son-ai__sh.send{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; color:#fff !important;
  border-color:transparent !important; box-shadow:0 12px 26px -12px rgba(30,80,255,.55) !important; }
.son-ai__sh:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -14px rgba(30,80,255,.4) !important; }
.son-ai__cta a{ border-radius:999px !important; }
.son-ai__cta .c{ background:linear-gradient(135deg,#13204A,#0A1230) !important; }
.son-ai__err{ background:rgba(238,243,255,.7) !important; border:1px solid rgba(30,80,255,.18) !important; border-radius:14px; }

/* (37-9) 무료상담 스텝폼 모달 — 글래스 시트 */
.son-modal__bg{ background:rgba(8,14,38,.5) !important;
  -webkit-backdrop-filter:blur(10px) saturate(120%); backdrop-filter:blur(10px) saturate(120%); }
.son-modal__card{ background:rgba(255,255,255,.78) !important;
  -webkit-backdrop-filter:blur(var(--gl-blur)) saturate(170%); backdrop-filter:blur(var(--gl-blur)) saturate(170%);
  border:1px solid rgba(255,255,255,.85) !important; border-radius:26px !important;
  box-shadow:0 60px 130px -50px rgba(10,18,48,.55), 0 24px 60px -28px rgba(30,80,255,.3) !important; }
.son-step__brand span{ color:var(--gl-blue) !important; }
.son-step__opt{ background:rgba(255,255,255,.6) !important; border:1.5px solid rgba(30,80,255,.13) !important; border-radius:16px !important;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.son-step__opt:hover{ border-color:var(--gl-blue) !important; color:var(--gl-blue) !important;
  box-shadow:0 12px 28px -16px rgba(30,80,255,.4); }
.son-step__opt.on{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important; border-color:transparent !important;
  color:#fff !important; box-shadow:0 12px 28px -12px rgba(30,80,255,.55) !important; }
.son-step__field input{ background:rgba(255,255,255,.75) !important; border:1.5px solid rgba(30,80,255,.13) !important; border-radius:14px !important; }
.son-step__field input:focus{ background:#fff !important; border-color:var(--gl-blue) !important; box-shadow:0 0 0 4px rgba(30,80,255,.14) !important; }
.son-step__done .chk{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important;
  box-shadow:0 18px 40px -16px rgba(30,80,255,.55); }
.son-step__done-cta a{ border-radius:999px !important; }
.son-step__done-cta .c{ background:linear-gradient(135deg,#13204A,#0A1230) !important; }
@media(max-width:600px){ .son-modal__card{ border-radius:22px 22px 0 0 !important; } }

/* (37-10) 우하단 도크 · 모바일 하단바 — 글래스 */
.son-fab a, .son-fab button{ border-radius:18px !important; }
.son-fab .son-call, .son-fab .son-consult{ background:linear-gradient(135deg,#1E50FF,#0B33CC) !important;
  box-shadow:0 14px 30px -10px rgba(30,80,255,.55) !important; }
.son-fab .son-top{ background:rgba(255,255,255,.65) !important; color:var(--ink) !important;
  -webkit-backdrop-filter:blur(12px) saturate(160%); backdrop-filter:blur(12px) saturate(160%);
  border:1px solid rgba(255,255,255,.8); border-radius:16px !important;
  box-shadow:0 14px 30px -18px rgba(30,80,255,.35) !important; }
.son-fab .son-tip{ background:rgba(10,18,48,.82) !important; border-radius:10px;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.son-mbar{ background:rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter:blur(var(--gl-blur)) saturate(160%); backdrop-filter:blur(var(--gl-blur)) saturate(160%);
  border-top:1px solid rgba(30,80,255,.1) !important;
  box-shadow:0 -14px 44px -26px rgba(30,80,255,.35) !important; }
.son-mbar a{ border-left:1px solid rgba(30,80,255,.08) !important; }
.son-mbar-cta{ background:transparent !important; background-image:none !important; color:var(--ink) !important; }

/* (37-11) 등장 모션 — blur 해제 리빌 (0.8s) */
.reveal{ transform:translateY(26px) scale(.985); filter:blur(6px);
  transition:opacity .8s var(--gl-ease), transform .8s var(--gl-ease), filter .8s var(--gl-ease); }
.reveal.in{ transform:none; filter:none; }
.son-rv{ transform:translateY(26px) scale(.985); filter:blur(6px);
  transition:opacity .8s var(--gl-ease), transform .8s var(--gl-ease), filter .8s var(--gl-ease); }
.son-rv[data-rv="left"]{ transform:translateX(-44px) scale(.985); }
.son-rv[data-rv="right"]{ transform:translateX(44px) scale(.985); }
.son-rv[data-rv="zoom"]{ transform:scale(.94); }
.son-rv[data-rv="clip"]{ transform:none; filter:none; }
.son-rv.is-in{ transform:none; filter:none; }

/* (37-12) backdrop-filter 미지원 폴백 — 불투명 화이트/네이비 */
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  .hdr{ background:rgba(255,255,255,.93) !important; }
  .dropdown, .son-modal__card{ background:rgba(255,255,255,.96) !important; }
  .feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
  .gisu .g, .plan:not(.best), .form-card, .cmp, .son-mgr .m, .son-social a, .son-lead, .faq-item, .ideal-box, .son-ai{
    background:rgba(255,255,255,.93) !important; }
  .btn-line, .reco li, .tagset span, .flow span, .faq-tab, .fbtn,
  .son-ai__opt, .son-ai__in, .son-ai__sh, .son-ai__badge, .son-ai__meta span,
  .son-step__opt, .son-step__field input, .field input, .field select{ background:rgba(255,255,255,.93) !important; }
  .son-mbar{ background:rgba(255,255,255,.97) !important; }
  .son-fab .son-top{ background:rgba(255,255,255,.95) !important; }
  .cta-q, .quick-btn, .ip-card, .plan.best{ background:rgba(22,36,82,.95) !important; }
  .cta-band .btn-line, .cta .btn-line, .section--dark .btn-line, .btn-ghost-d{ background:rgba(22,36,82,.9) !important; }
}

/* (37-13) 모바일 마무리 — 라운드/타이포 보정 (blur 12px 은 토큰에서 처리) */
@media(max-width:768px){
  .sect-title{ font-size:clamp(24px,6.8vw,31px) !important; }
  .subhero h1, .subhero.subhero--media h1{ font-size:clamp(27px,7.4vw,36px) !important; }
  .son-hero h1{ font-size:clamp(29px,8.2vw,39px) !important; }
  .son-edi__txt h3{ font-size:clamp(21px,6vw,28px) !important; }
  .feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card, .info-card, .doc-card,
  .son-mgr .m, .son-social a, .son-lead, .ideal-box{ border-radius:20px !important; }
  .subhero.subhero--media .subhero-media, .son-edi__media, .son-hero__media{ border-radius:18px !important; }
  .son-ai{ border-radius:22px !important; }
}

/* (37-14) 모션 축소 사용자 — 모든 리빌/리프트 해제 */
@media (prefers-reduced-motion:reduce){
  .reveal, .son-rv, .son-h{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; }
  .btn-primary:hover, .hdr-cta:hover, .btn-line:hover, .son-ai__go:hover, .son-step__submit:hover,
  .son-ai__opt:hover, .son-step__opt:hover, .son-fab a:hover, .son-fab button:hover, .son-ai__sh:hover,
  .feature:hover, .svc:hover, .value:hover, .quote:hover, .rev-card:hover, .fcard:hover, .story-card:hover,
  .col-card:hover, .son-mgr .m:hover, .son-social a:hover, .reco li:hover{ transform:none !important; }
  .son-ai__go::after{ display:none !important; }
}

/* ============================================================
   38) ★ 모바일 강화 (≤760px 집중 · 480px 미세조정)
       SOMEON 모바일 디자인 시스템 — 간격·리듬 / 타이포 / 44px 터치 /
       헤더 56~60px / 하단 CTA바 safe-area / 챗봇 fab 겹침방지 /
       AI위젯·모달 바텀시트 / 일관 radius·그림자.
       앞 섹션(1~37)·기존 셀렉터는 보존하고 충돌은 여기서 절제 오버라이드.
   ============================================================ */
@media (max-width:760px){

  /* (38-1) 간격·리듬 — 일관 섹션 패딩 + 최소 거터 + 카드 gap */
  .section{ padding:clamp(54px,8.5vw,72px) 0 !important; }
  .container{ padding-left:max(20px, env(safe-area-inset-left)) !important;
    padding-right:max(20px, env(safe-area-inset-right)) !important; }
  .feature-grid, .svc-grid, .quotes, .son-couples, .son-mgr, .son-social,
  .gallery, .plans, .reco{ gap:14px; }
  .son-couples{ gap:14px; }

  /* (38-2) 타이포 — 한글 제목 줄바꿈 보정 + 또렷한 위계 */
  .sect-title, .subhero h1, .subhero.subhero--media h1, .son-hero h1,
  .son-edi__txt h3, .son-ai__hero h3, .son-step__q h3, .son-ai h3{
    word-break:keep-all; -webkit-text-wrap:balance; text-wrap:balance; }
  .son-hero h1{ line-height:1.16 !important; }   /* 히어로 임팩트 유지 (1.1대) */
  .sect-title{ font-size:clamp(28px,7vw,32px) !important; line-height:1.22 !important; }
  .lead, .head-block .lead, .son-hero .sub, .son-hero .lead,
  .subhero.subhero--media .lead, .son-edi__txt p, .prose p,
  .son-ai p.son-ai__desc, .son-ai__hero .son-ai__desc{
    font-size:15.5px !important; line-height:1.7 !important; }

  /* (38-3) 터치 타깃 — 누름 피드백 + 탭 하이라이트 제거 (프리미엄 촉감) */
  .btn, .btn-primary, .btn-line, .btn-ghost-d, .hdr-cta, .m-cta, .m-home,
  .m-acc summary, .m-acc a, .menu-item > a, .dropdown a, .faq-tab, .faq-q,
  .son-mbar a, .son-fab a, .son-fab button, .son-ai__opt, .son-ai__go,
  .son-ai__cta a, .son-ai__sh, .son-step__opt, .son-step__submit,
  .son-step__back, .son-step__done-cta a, .son-modal__x, .son-lead button,
  .tagset span, .flow span, .reco li, .son-social a, .burger{
    -webkit-tap-highlight-color:transparent; touch-action:manipulation; }

  /* (38-4) 헤더 — 56~60px · 브랜드 약간 키우고 수직 중앙 · 버거 44x44 */
  .hdr-inner{ padding:0 18px !important; min-height:58px; align-items:center; }
  .brand{ font-size:25px; line-height:1; display:inline-flex; align-items:center; }
  .burger{ width:44px; height:44px; gap:5px; align-items:center; justify-content:center;
    margin-right:-10px; box-sizing:border-box; }
  .burger span{ width:22px !important; }

  /* (38-5) 하단 고정 CTA바 — safe-area · 탭 키움 · 상단 경계 그림자 */
  body{ padding-bottom:calc(64px + env(safe-area-inset-bottom)) !important; }
  .son-mbar{ padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -10px 30px -16px rgba(10,18,48,.4) !important;
    border-top:1px solid rgba(30,80,255,.12) !important; }
  .son-mbar a{ min-height:54px; padding:11px 4px; gap:3px; }
  .son-mbar a b{ font-size:18px; }
  .son-mbar-cta{ min-height:54px; }

  /* (38-6) 챗봇/도크 fab — 하단 CTA바 위로 띄워 겹침 방지 + safe-area */
  .son-fab{ bottom:calc(74px + env(safe-area-inset-bottom)) !important;
    right:max(16px, env(safe-area-inset-right)) !important; }
  .son-fab a, .son-fab button{ min-width:48px; min-height:48px; }

  /* (38-7) 카드·이미지 폴리시 — 풀폭 스택 · cover · 일관 radius */
  .son-ph img, .son-couples .g img, .gallery .g img, .son-edi__media img,
  .son-hero__media img, .subhero-media img, .son-ai__img img{ object-fit:cover; }
}

/* (38-8) AI 위젯 모바일 — 44px 터치 · 입력 16px(iOS 줌 방지) · 바텀시트 호흡 */
@media (max-width:760px){
  .son-ai__opt{ min-height:44px; padding:11px 16px !important; font-size:14px !important; }
  .son-ai__in{ min-height:48px; font-size:16px !important; }   /* 16px → iOS 자동확대 방지 */
  .son-ai__go{ min-height:52px; padding:16px !important; font-size:16px; }
  .son-ai__cta a{ min-height:50px; min-width:100% !important;
    display:flex; align-items:center; justify-content:center; }
  .son-ai__sh{ min-height:46px; }
  .son-ai__body{ padding:clamp(20px,5.5vw,26px) clamp(18px,5vw,22px) !important; }
  .son-ai__hero{ padding:clamp(26px,6vw,32px) clamp(20px,5vw,22px) !important; }
}

/* (38-9) 무료상담 스텝폼 모달 — 바텀시트 · 44px 터치 · 입력 16px · safe-area */
@media (max-width:600px){
  .son-modal{ padding:0 !important; align-items:flex-end !important; }
  .son-modal__card{ max-width:100% !important; width:100% !important;
    max-height:calc(94vh - env(safe-area-inset-bottom)) !important;
    border-radius:22px 22px 0 0 !important; }
  .son-step__top{ padding:22px 22px max(0px, env(safe-area-inset-top)) !important; }
  .son-step__body{ padding:18px 22px calc(26px + env(safe-area-inset-bottom)) !important; }
  .son-step__opt{ min-height:54px; }
  .son-step__field input{ min-height:50px; font-size:16px !important; }  /* iOS 줌 방지 */
  .son-step__submit{ min-height:54px; font-size:16px !important; }
  .son-step__done-cta a{ min-height:50px; display:flex; align-items:center; justify-content:center; }
  .son-modal__x{ width:44px; height:44px; display:flex; align-items:center; justify-content:center;
    top:6px; right:8px; }
}

/* (38-10) 섹션 37 글래스 스킨 — 상세페이지 공통 카드/버튼/서브히어로 모바일 보정 */
@media (max-width:760px){
  /* 공통 카드 — 풀폭 스택 · 일관 radius · 내부 호흡 */
  .feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card,
  .info-card, .doc-card, .son-mgr .m, .son-social a, .son-lead, .ideal-box,
  .form-card, .plan, .cmp{ border-radius:20px !important; padding:22px 20px !important; }
  /* 공통 주 버튼/알약 — 44px 터치 */
  .btn, .btn-primary, .btn-line, .btn-ghost-d, .hdr-cta, .m-cta,
  .son-lead button, .son-step__submit, .son-ai__go, .cta-band .btn-primary{
    min-height:48px; display:inline-flex; align-items:center; justify-content:center;
    padding:13px 24px !important; font-size:15px !important; }
  /* 서브히어로 — 상단 여백/리드 호흡 */
  .subhero.subhero--media{ padding-top:104px !important; }
  .subhero.subhero--media .lead, .subhero .lead{ margin-top:16px !important; }
}
@media (max-width:480px){
  .sect-title{ font-size:28px !important; }
  .son-mbar a{ padding:10px 3px; }
  .son-ai__opt{ padding:10px 13px !important; }
}

/* (38-11) 누름 피드백 — 가벼운 scale (reduced-motion 에선 해제) */
@media (max-width:760px) and (prefers-reduced-motion:no-preference){
  .btn:active, .btn-primary:active, .btn-line:active, .hdr-cta:active,
  .m-cta:active, .son-mbar a:active, .son-fab a:active, .son-fab button:active,
  .son-ai__opt:active, .son-ai__go:active, .son-ai__cta a:active, .son-ai__sh:active,
  .son-step__opt:active, .son-step__submit:active, .son-step__done-cta a:active,
  .son-modal__x:active, .son-lead button:active, .faq-q:active, .reco li:active,
  .son-social a:active, .menu-item > a:active, .burger:active{
    transform:scale(.98); transition:transform .08s var(--son-ease, ease-out); }
}

/* (38-12) 모바일 폴리시 — 부드러운 스크롤 · 관성 */
@media (max-width:760px){
  html{ scroll-behavior:smooth; }
  .son-modal__card, .m-menu{ -webkit-overflow-scrolling:touch; }
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
}

/* ============================================================
   39) ★ 컨셉 C — BOLD MODERN MINIMAL (전 상세페이지 공통 최종 스킨)
       화이트 기반 + 초대형 볼드 타이포 + 강한 그리드 +
       딥네이비 통계/CTA 밴드(명암 리듬) + 블루 포인트.
       글래스(섹션 37) → 크리스프 플랫으로 전환. 내용/마크업/JS 불변.
       모바일 구조 규칙(헤더58/터치44/safe-area/입력16px)은 보존.
   ============================================================ */

/* (39-0) 토큰 — 컨셉 C 팔레트 */
:root{
  --c-bg:#FFFFFF;
  --c-soft:#F4F6FB;          /* 쿨 라이트 교차 섹션 */
  --c-navy:#0C1230;          /* 딥네이비 밴드 */
  --c-navy-2:#141B40;        /* 네이비 위 카드/요소 */
  --c-blue:#1E50FF;          /* 주 블루 */
  --c-blue-d:#0B33CC;        /* 진 블루 */
  --c-blue-l:#EAF0FF;        /* 연 블루 (칩/체크 배경) */
  --c-blue-on:#6E9BFF;       /* 다크 위 액센트 */
  --c-ink:#0C1230;           /* 제목 잉크 */
  --c-ink-2:#586079;         /* 본문 */
  --c-ink-3:#8A92A8;         /* 보조 */
  --c-line:#E6E9F0;          /* 보더 */
  --c-line-d:rgba(255,255,255,.14);
  --c-card-sh:0 18px 40px -24px rgba(12,18,48,.12);
  --c-card-sh-h:0 26px 56px -26px rgba(12,18,48,.20);
  --c-blue-sh:0 14px 30px -12px rgba(30,80,255,.42);
  --c-r-card:18px;
  --c-r-btn:14px;
  --c-ease:cubic-bezier(.22,.65,.25,1);
}

/* (39-1) 잉크 톤 정렬 — 본문/보조 컬러를 C 팔레트로 (제목 강조선은 아래에서 별도) */
body{ color:var(--c-ink-2); background:var(--c-bg); }
.lead, .prose p, .feature p, .svc p, .value p, .story-card p,
.rev-card .body p, .quote p, .son-edi__txt p{ color:var(--c-ink-2) !important; }

/* (39-2) 타이포 — 초대형 볼드 디스플레이 (C의 핵심) */
.sect-title, .subhero h1, .subhero.subhero--media h1, .son-hero h1,
.son-edi__txt h3, .son-ai__hero h3, .son-step__q h3, .son-ai h3{
  word-break:keep-all; -webkit-text-wrap:balance; text-wrap:balance; color:var(--c-ink); }
.son-hero h1{
  font-family:"Gothic A1",sans-serif !important; font-weight:900 !important;
  font-size:clamp(40px,5.6vw,78px) !important; line-height:1.06 !important;
  letter-spacing:-.04em !important; }
.subhero h1, .subhero.subhero--media h1{
  font-weight:900 !important; font-size:clamp(34px,5vw,64px) !important;
  line-height:1.08 !important; letter-spacing:-.04em !important; }
.sect-title{
  font-weight:900 !important; font-size:clamp(30px,3.9vw,46px) !important;
  line-height:1.1 !important; letter-spacing:-.035em !important; }
.son-edi__txt h3{
  font-weight:900 !important; font-size:clamp(24px,3.1vw,40px) !important;
  letter-spacing:-.035em !important; line-height:1.16 !important; }
.lead, .head-block .lead{
  font-size:clamp(15px,1.2vw,16.5px) !important; line-height:1.7 !important;
  color:var(--c-ink-2) !important; }

/* (39-3) 핵심 단어 1곳만 블루 강조 — 나머지는 잉크 */
.son-hero h1 .em, .son-hero h1 .fire,
.subhero h1 .em, .subhero h1 .fire,
.sect-title .em, .sect-title .fire,
.son-edi__txt h3 .em, .son-edi__txt h3 .fire{
  color:var(--c-blue) !important; -webkit-text-fill-color:var(--c-blue) !important;
  background:none !important; }

/* (39-4) eyebrow — 11~12px 솔리드 블루 볼드, 그라데이션/배경클립/마커바 제거 */
.eyebrow, .son-edi__txt .k, .son-ai__report-tag{
  background:none !important; -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  color:var(--c-blue) !important; -webkit-text-fill-color:var(--c-blue) !important;
  font-weight:800 !important; font-size:11.5px !important; letter-spacing:.1em !important; }
.eyebrow::before{ background:var(--c-blue) !important; opacity:1 !important;
  width:20px !important; height:2px !important; }
/* 다크 밴드 위 eyebrow — 밝은 블루 액센트 */
.section--dark .eyebrow, .cta-band .eyebrow, .cta .eyebrow, .ip .eyebrow{
  background:none !important; color:var(--c-blue-on) !important;
  -webkit-text-fill-color:var(--c-blue-on) !important; }
.section--dark .eyebrow::before, .cta-band .eyebrow::before,
.cta .eyebrow::before, .ip .eyebrow::before{ background:var(--c-blue-on) !important; }
/* 제목 밑 강조선 — 솔리드 블루 */
.subhero h1::after, .son-line::before{
  background:var(--c-blue) !important; opacity:1 !important; }

/* (39-5) 주 버튼 — 솔리드 블루 라운드(14px) · 볼드 · 옅은 블루 그림자 */
.btn-primary, .hdr-cta, .m-menu .m-cta, .son-lead button,
.son-step__submit, .son-ai__go, .cta-band .btn-primary, .son-mbar-cta{
  background:var(--c-blue) !important; background-image:none !important; color:#fff !important;
  border:0 !important; border-radius:var(--c-r-btn) !important; font-weight:800 !important;
  box-shadow:var(--c-blue-sh) !important;
  transition:transform .28s var(--c-ease), background-color .28s var(--c-ease), box-shadow .28s var(--c-ease) !important; }
.btn-primary:hover, .hdr-cta:hover, .m-menu .m-cta:hover, .son-lead button:hover,
.son-step__submit:hover:not(:disabled), .son-ai__go:hover, .cta-band .btn-primary:hover{
  background:var(--c-blue-d) !important; transform:translateY(-2px);
  box-shadow:0 18px 38px -12px rgba(30,80,255,.5) !important; filter:none; }
/* 보조 버튼 — 잉크 보더, 플랫(블러 제거) */
.btn-line{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; color:var(--c-ink) !important; border-radius:var(--c-r-btn) !important;
  font-weight:800 !important; }
.btn-line:hover{ background:var(--c-ink) !important; border-color:var(--c-ink) !important; color:#fff !important;
  transform:translateY(-2px); box-shadow:none !important; }
.cta-band .btn-line, .cta .btn-line, .section--dark .btn-line, .btn-ghost-d{
  background:transparent !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid rgba(255,255,255,.32) !important; color:#fff !important; }
.cta-band .btn-line:hover, .cta .btn-line:hover, .section--dark .btn-line:hover, .btn-ghost-d:hover{
  background:rgba(255,255,255,.10) !important; border-color:#fff !important; color:#fff !important; }

/* (39-6) 헤더 — 살짝 블러만 허용(고정 헤더 예외), 크리스프 보더 */
.hdr{ background:rgba(255,255,255,.82) !important;
  -webkit-backdrop-filter:saturate(140%) blur(14px); backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent !important; }
.hdr.son-stuck, .hdr.solid{ border-bottom-color:var(--c-line) !important;
  box-shadow:0 1px 0 rgba(12,18,48,.04) !important; }
.dropdown{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid var(--c-line) !important; border-radius:16px !important;
  box-shadow:0 24px 50px -28px rgba(12,18,48,.28) !important; }
.dropdown a:hover{ background:var(--c-blue-l) !important; color:var(--c-blue) !important; }
.son-prog{ background:var(--c-blue) !important; }
.m-menu{ background:var(--c-navy) !important; background-image:none !important; }
.menu-item>a:hover, .menu-item>a:hover::after{ color:var(--c-blue) !important; }
.menu-item>a::after{ background:var(--c-blue) !important; }
.brand::before{ background:var(--c-blue) !important; }

/* (39-7) 카드 — 크리스프 플랫: 흰 배경 + 1px 보더 + 옅은 그림자 + hover lift */
.feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card,
.info-card, .doc-card, .gisu .g, .plan:not(.best), .form-card, .cmp,
.son-mgr .m, .son-social a, .son-lead, .faq-item, .ideal-box{
  background:#fff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid var(--c-line) !important;
  box-shadow:var(--c-card-sh) !important;
  border-radius:var(--c-r-card) !important;
  transition:transform .32s var(--c-ease), border-color .32s var(--c-ease), box-shadow .32s var(--c-ease) !important; }
.cmp{ border-radius:16px !important; overflow:hidden; }
.faq-item{ border-radius:14px !important; }
.feature:hover, .svc:hover, .value:hover, .quote:hover, .rev-card:hover,
.fcard:hover, .story-card:hover, .col-card:hover, .son-mgr .m:hover, .son-social a:hover{
  transform:translateY(-5px) !important; background:#fff !important;
  border-color:var(--c-blue) !important; box-shadow:var(--c-card-sh-h) !important; }
/* 카드 상단 블루 라인 강조 제거(플랫 통일) */
.rev-card::before, .story-card::before, .col-card::before,
.fcard::before, .feature::before, .svc::before{ display:none !important; }

/* (39-8) 통계 — 딥네이비 풀밴드 + 초대형 숫자(흰색·단위 블루) */
.stat .num{ background:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important;
  color:var(--c-ink) !important; -webkit-text-fill-color:var(--c-ink) !important;
  font-weight:900 !important; }
.stat .num .u{ color:var(--c-blue) !important; -webkit-text-fill-color:var(--c-blue) !important; }
.kicker-num{ background:none !important; color:var(--c-ink) !important; -webkit-text-fill-color:var(--c-ink) !important; }
.stat::after{ background:var(--c-blue) !important; }
/* 다크 밴드 위 통계 — 흰 숫자 / 블루-온 단위 */
.section--dark .stat .num, .cta-band .stat .num, .ip .stat .num,
.dg-stats .dg-stat, .dg-stat .num{ color:#fff !important; -webkit-text-fill-color:#fff !important; }
.section--dark .stat .num .u, .cta-band .stat .num .u, .ip .stat .num .u{
  color:var(--c-blue-on) !important; -webkit-text-fill-color:var(--c-blue-on) !important; }

/* (39-9) 칩/탭 — 연블루 플랫, 선택 시 솔리드 블루 */
.reco li{ background:#fff !important; border:1px solid var(--c-line) !important; border-radius:14px !important; }
.reco li:hover{ border-color:var(--c-blue) !important; box-shadow:0 12px 26px -18px rgba(30,80,255,.35) !important; transform:translateY(-2px); }
.reco li::before{ color:var(--c-blue) !important; }
.tagset span, .flow span, .faq-tab, .fbtn{
  background:var(--c-blue-l) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid var(--c-line) !important; border-radius:999px !important; color:var(--c-ink-2) !important; }
.flow span:hover, .tagset span:hover, .faq-tab.on, .fbtn.on{
  background:var(--c-blue) !important; background-image:none !important; color:#fff !important;
  border-color:var(--c-blue) !important; box-shadow:0 10px 22px -12px rgba(30,80,255,.45) !important; }
.flow span .i{ color:var(--c-blue) !important; }
.faq-q::after{ color:var(--c-blue) !important; }

/* 비교표 — 추천 열 솔리드 블루 */
.cmp{ box-shadow:var(--c-card-sh) !important; border:1px solid var(--c-line) !important; }
.cmp thead th:last-child{ background:var(--c-blue) !important; background-image:none !important; color:#fff !important; }
.cmp td:last-child{ background:var(--c-blue-l) !important; color:var(--c-ink) !important; }

/* 폼 필드 — 크리스프 화이트 */
.field input, .field select{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; border-radius:12px !important; color:var(--c-ink) !important; }
.field input:focus, .field select:focus{ border-color:var(--c-blue) !important;
  box-shadow:0 0 0 3px rgba(30,80,255,.14) !important; }

/* (39-10) 서브히어로 — 쿨 라이트 앰비언트(플랫), 라운드 미디어 + 옅은 그림자 */
.subhero{ background:var(--c-bg) !important; }
.section--alt{ background:var(--c-soft) !important; background-image:none !important; }
.subhero.subhero--media .subhero-media{ border-radius:18px !important;
  box-shadow:0 30px 60px -38px rgba(12,18,48,.28) !important; }
.son-edi__media, .son-hero__media{ border-radius:18px !important; overflow:hidden;
  box-shadow:0 24px 54px -34px rgba(12,18,48,.24); }
.son-press{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border-top:1px solid var(--c-line) !important; border-bottom:1px solid var(--c-line) !important; }
.son-press span::before{ color:var(--c-blue) !important; }
.son-trust .it::before, .son-trust .it b{ color:var(--c-blue) !important; }

/* (39-11) 다크 섹션 — 딥네이비 풀밴드(명암 리듬), 내부 요소 플랫 */
.section--dark, .cta-band, .cta, .ip{ background:var(--c-navy) !important; background-image:none !important; }
.site-footer, footer{ background:var(--c-navy) !important; background-image:none !important; }
.cta-q, .quick-btn, .ip-card, .plan.best{
  background:var(--c-navy-2) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid var(--c-line-d) !important; border-radius:16px !important;
  box-shadow:0 24px 60px -34px rgba(4,8,28,.6) !important; }
.cta-q:hover, .quick-btn:hover{ border-color:var(--c-blue-on) !important; background:#1A2150 !important; transform:translateX(4px); }
.ip-card .body .tag, .rev .body .who b, .story-card .who b{ color:var(--c-blue) !important; }
.ip-card .stat2 b{ color:var(--c-blue-on) !important; }
.plan.best .ribbon, .plan .ribbon{ background:var(--c-blue) !important; }
.feat li::before{ color:var(--c-blue) !important; }
.foot-social a:hover{ background:var(--c-blue) !important; border-color:var(--c-blue) !important; }
.foot-col a:hover, .son-foot-links a:hover{ color:var(--c-blue-on) !important; }
.son-formbadge span{ background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(255,255,255,.2) !important; border-radius:999px;
  color:rgba(255,255,255,.85) !important; }

/* (39-12) AI 위젯 — 플랫 크리스프 (클래스명 someon-ai.js 그대로) */
.son-ai{ background:#fff !important; border-radius:var(--c-r-card) !important;
  border:1px solid var(--c-line) !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  box-shadow:0 26px 64px -36px rgba(12,18,48,.22) !important; overflow:hidden; }
/* 히어로 — 딥네이비 밴드(명암 리듬) + 화이트 헤드라인 */
.son-ai__hero{ background:var(--c-navy) !important; background-image:none !important; color:#fff !important;
  padding:clamp(28px,4.4vw,46px) clamp(22px,4vw,46px) !important; }
.son-ai__hero::before, .son-ai__hero::after{ content:none !important; }
.son-ai__hero h3{ color:#fff !important; font-weight:900 !important; letter-spacing:-.035em !important; }
.son-ai__hero .son-ai__desc{ color:rgba(255,255,255,.84) !important; }
.son-ai__badge{ background:rgba(255,255,255,.12) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  color:#fff !important; border:1px solid rgba(255,255,255,.2) !important; border-radius:999px;
  box-shadow:none !important; }
.son-ai__meta span{ background:rgba(255,255,255,.1) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  color:#fff !important; border:1px solid rgba(255,255,255,.16) !important; border-radius:999px; }
/* 캐릭터 가이드 말풍선 — 플랫 화이트 (요소 유지) */
.son-ai__guide .son-ai__bubble{ background:#fff !important; border:1.5px solid var(--c-line) !important;
  box-shadow:0 10px 26px -18px rgba(12,18,48,.3) !important; color:var(--c-ink) !important; }
.son-ai__bubble::before{ background:#fff !important; border-color:var(--c-line) !important; }
.son-ai__mascot{ filter:drop-shadow(0 8px 14px rgba(12,18,48,.22)); }
/* 진행바/게이지 — 솔리드 블루 */
.son-ai__prog, .son-step__bar, .son-ai__bar{ background:var(--c-blue-l) !important; border-radius:999px; }
.son-ai__prog i, .son-step__bar i, .son-ai__bar i{ background:var(--c-blue) !important; background-image:none !important; border-radius:999px; }
.son-ai__q > label .son-ai__n{ background:var(--c-blue) !important; background-image:none !important; box-shadow:none !important; }
/* 옵션 — 플랫, 선택 시 솔리드 블루 */
.son-ai__opt{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; color:var(--c-ink-2) !important; border-radius:999px !important; }
.son-ai__opt:hover{ border-color:var(--c-blue) !important; color:var(--c-blue) !important; box-shadow:none !important; transform:translateY(-2px); }
.son-ai__opt.on{ background:var(--c-blue) !important; background-image:none !important; border-color:var(--c-blue) !important;
  color:#fff !important; box-shadow:0 10px 22px -12px rgba(30,80,255,.5) !important; }
.son-ai__in{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; border-radius:12px !important; }
.son-ai__in:focus{ background:#fff !important; border-color:var(--c-blue) !important; box-shadow:0 0 0 3px rgba(30,80,255,.14) !important; }
.son-ai__result{ border-top:1px solid var(--c-line) !important; }
.son-ai__score b, .son-ai__gauge b{ background:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important;
  color:var(--c-blue) !important; -webkit-text-fill-color:var(--c-blue) !important; font-weight:900 !important; }
.son-ai__gauge{ background:conic-gradient(var(--c-blue) calc(var(--p,0)*1%), var(--c-blue-l) 0) !important; box-shadow:none !important; }
.son-ai__gauge::before{ background:#fff !important; box-shadow:none !important; }
.son-ai__label::before{ color:var(--c-blue) !important; }
.son-ai__out h4{ border-left:3px solid var(--c-blue) !important; color:var(--c-ink) !important; }
.son-ai__sh{ border-radius:var(--c-r-btn) !important; border:1.5px solid var(--c-line) !important;
  background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; color:var(--c-blue) !important; }
.son-ai__sh.send{ background:var(--c-blue) !important; background-image:none !important; color:#fff !important; border-color:var(--c-blue) !important;
  box-shadow:var(--c-blue-sh) !important; }
.son-ai__sh:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -16px rgba(30,80,255,.35) !important; }
.son-ai__cta a{ border-radius:var(--c-r-btn) !important; }
.son-ai__cta .c{ background:var(--c-navy) !important; background-image:none !important; }
.son-ai__err{ background:var(--c-blue-l) !important; border:1px solid var(--c-line) !important; border-radius:12px; color:var(--c-ink-2) !important; }
.son-ai__report-tag{ color:var(--c-blue) !important; }

/* (39-13) 무료상담 스텝폼 모달 — 플랫 화이트 시트 */
.son-modal__bg{ background:rgba(12,18,48,.55) !important;
  -webkit-backdrop-filter:blur(3px) !important; backdrop-filter:blur(3px) !important; }
.son-modal__card{ background:#fff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid var(--c-line) !important; border-radius:18px !important;
  box-shadow:0 50px 110px -44px rgba(12,18,48,.5) !important; }
.son-step__brand span{ color:var(--c-blue) !important; }
.son-step__opt{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; border-radius:12px !important; color:var(--c-ink) !important; }
.son-step__opt:hover{ border-color:var(--c-blue) !important; color:var(--c-blue) !important; box-shadow:none !important; transform:translateY(-2px); }
.son-step__opt.on{ background:var(--c-blue) !important; background-image:none !important; border-color:var(--c-blue) !important;
  color:#fff !important; box-shadow:0 10px 22px -12px rgba(30,80,255,.5) !important; }
.son-step__field input{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1.5px solid var(--c-line) !important; border-radius:12px !important; }
.son-step__field input:focus{ background:#fff !important; border-color:var(--c-blue) !important; box-shadow:0 0 0 3px rgba(30,80,255,.14) !important; }
.son-step__agree a, .son-step__back:hover{ color:var(--c-blue) !important; }
.son-step__trust span::before{ color:var(--c-blue) !important; }
.son-step__done .chk{ background:var(--c-blue) !important; background-image:none !important; box-shadow:0 16px 36px -18px rgba(30,80,255,.5); }
.son-step__done-cta a{ border-radius:var(--c-r-btn) !important; }
.son-step__done-cta .c{ background:var(--c-navy) !important; background-image:none !important; }

/* (39-14) 우하단 도크 · 하단 CTA바 — 플랫 C 색 (safe-area·터치는 섹션 38 유지) */
.son-fab a, .son-fab button{ border-radius:14px !important; }
.son-fab .son-call, .son-fab .son-consult{ background:var(--c-blue) !important; background-image:none !important;
  box-shadow:var(--c-blue-sh) !important; }
.son-fab .son-call:hover, .son-fab .son-consult:hover{ background:var(--c-blue-d) !important; }
.son-fab .son-top{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  color:var(--c-ink) !important; border:1px solid var(--c-line) !important; border-radius:13px !important;
  box-shadow:0 14px 30px -18px rgba(12,18,48,.3) !important; }
.son-fab .son-top.show{ background:#fff !important; }
.son-fab .son-tip{ background:var(--c-navy) !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important; border-radius:8px; }
.son-mbar{ background:#fff !important; -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border-top:1px solid var(--c-line) !important;
  box-shadow:0 -10px 30px -20px rgba(12,18,48,.28) !important; }
.son-mbar a{ color:var(--c-ink) !important; border-left:1px solid var(--c-line) !important; }
.son-mbar a:first-child{ border-left:0 !important; }
.son-mbar-cta{ background:transparent !important; background-image:none !important; color:var(--c-ink) !important; border-left:1px solid var(--c-line) !important; }

/* (39-15) 등장 모션 — blur 제거, 깔끔(opacity + translateY) */
.reveal{ transform:translateY(24px); filter:none !important;
  transition:opacity .8s var(--c-ease), transform .8s var(--c-ease); }
.reveal.in{ transform:none; filter:none !important; }
.son-rv{ transform:translateY(24px); filter:none !important;
  transition:opacity .7s var(--c-ease), transform .7s var(--c-ease); }
.son-rv[data-rv="left"]{ transform:translateX(-40px); }
.son-rv[data-rv="right"]{ transform:translateX(40px); }
.son-rv[data-rv="zoom"]{ transform:scale(.94); }
.son-rv[data-rv="clip"]{ transform:none; filter:none !important; }
.son-rv.is-in{ transform:none; filter:none !important; }

/* (39-16) 포커스 링 — 블루 통일 */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.dg-btn:focus-visible, .btn:focus-visible, .hdr-cta:focus-visible, .faq-q:focus-visible{
  outline:2px solid var(--c-blue) !important; outline-offset:2px; }

/* (39-17) backdrop-filter 미지원 폴백 — 이미 플랫이라 불투명 흰/네이비만 보정 */
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){
  .hdr{ background:rgba(255,255,255,.95) !important; }
  .son-modal__card, .dropdown{ background:#fff !important; }
  .cta-q, .quick-btn, .ip-card, .plan.best{ background:var(--c-navy-2) !important; }
}

/* (39-18) 모바일 — C 타이포 임팩트 + 구조 규칙(헤더58/터치44/safe-area/입력16px) 보존 */
@media (max-width:760px){
  .son-hero h1{ font-size:clamp(34px,9vw,44px) !important; line-height:1.12 !important; letter-spacing:-.035em !important; }
  .subhero h1, .subhero.subhero--media h1{ font-size:clamp(30px,8.2vw,40px) !important; line-height:1.14 !important; letter-spacing:-.035em !important; }
  .sect-title{ font-size:clamp(28px,7.4vw,36px) !important; line-height:1.16 !important; letter-spacing:-.03em !important; }
  .son-edi__txt h3{ font-size:clamp(23px,6.2vw,30px) !important; }
  /* 플랫 카드 라운드 일관(모바일) */
  .feature, .svc, .value, .quote, .rev-card, .fcard, .story-card, .col-card,
  .info-card, .doc-card, .son-mgr .m, .son-social a, .son-lead, .ideal-box,
  .form-card, .plan, .cmp{ border-radius:16px !important; }
  .son-ai{ border-radius:16px !important; }
  .subhero.subhero--media .subhero-media, .son-edi__media, .son-hero__media{ border-radius:14px !important; }
  /* 주 버튼 라운드 일관(섹션 38 의 min-height/패딩 터치 규칙은 유지) */
  .btn, .btn-primary, .btn-line, .btn-ghost-d, .hdr-cta, .m-cta,
  .son-lead button, .son-step__submit, .son-ai__go, .cta-band .btn-primary{ border-radius:13px !important; }
}

/* (39-19) 모션 축소 — 모든 리빌/리프트 해제(C 포함) */
@media (prefers-reduced-motion:reduce){
  .reveal, .son-rv, .son-h{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; }
  .feature:hover, .svc:hover, .value:hover, .quote:hover, .rev-card:hover, .fcard:hover,
  .story-card:hover, .col-card:hover, .son-mgr .m:hover, .son-social a:hover,
  .btn-primary:hover, .hdr-cta:hover, .btn-line:hover, .son-ai__go:hover, .son-step__submit:hover,
  .son-ai__opt:hover, .son-step__opt:hover, .reco li:hover, .cta-q:hover, .quick-btn:hover{ transform:none !important; }
}

/* (40) 모바일 헤더 카카오 상담 버튼 — 메뉴(버거) 버튼 왼쪽, 즉시 상담 유도
   .son-hactions 래퍼로 카톡버튼+버거를 묶어 헤더 우측에 나란히 정렬한다.
   데스크톱에선 숨김(버거 자체가 데스크톱 비표시). */
.son-hactions{ display:none; }
@media (max-width:768px){
  .son-hactions{ display:flex; align-items:center; gap:10px; }
  .son-hkakao{
    display:inline-flex; align-items:center; gap:5px;
    height:38px; padding:0 14px; border-radius:999px;
    background:#FAE100; color:#181600 !important;
    font-size:13.5px; font-weight:800; line-height:1; white-space:nowrap;
    text-decoration:none; box-shadow:0 8px 20px -10px rgba(247,206,0,.9);
    -webkit-tap-highlight-color:transparent; transition:transform .2s var(--son-ease,ease);
  }
  .son-hkakao b{ font-size:15px; font-weight:400; line-height:1; }
  .son-hkakao:active{ transform:scale(.96); }
}
/* 아주 좁은 화면(≤359px)에선 아이콘만 — 헤더 넘침 방지 */
@media (max-width:359px){
  .son-hkakao span{ display:none; }
  .son-hkakao{ padding:0 11px; height:38px; }
  .son-hactions{ gap:8px; }
}
