/* 시안 B — 카드 없는 제품 소개(한 줄의 흐름) + 차례형 방식 선택기. interactive.css 뒤에 얹는다. */

/* ── 1) 두 제품: 한 줄의 흐름 ───────────────────────────── */
.product-overview.po-line{padding:56px 0}
.product-overview.po-line .wrap{display:block}
.po-line .product-overview-copy{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:40px}
.po-line .product-overview-copy h2{flex:none;text-align:right;font-size:clamp(28px,2.6vw,34px);line-height:1.4}
.po-line .product-overview-copy p{margin:0;padding-top:8px;text-align:left;font-size:14px;color:var(--ink-2)}
.flow{display:grid;grid-template-columns:1fr 1fr;position:relative;isolation:isolate}
.flow::before{content:"";position:absolute;top:calc(100% - 40px);left:80px;right:80px;height:1px;background:var(--ink);pointer-events:none}
.flow-node{position:absolute;z-index:3;top:calc(100% - 40px);left:0;width:160px;padding-top:18px;text-align:center;font-size:14px;font-weight:500;line-height:1.5;color:var(--ink-2);white-space:nowrap;pointer-events:none}
.flow-node:nth-of-type(2){left:50%;transform:translateX(-50%)}
.flow-node i{position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);box-shadow:0 0 0 4px var(--paper)}
.flow-node.end{left:auto;right:0}
.flow-node.end i{background:var(--ink)}
.flow-seg{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0;padding:0 0 64px 80px;color:var(--ink);text-decoration:none;text-align:center}
.flow-seg.math{padding-left:0;padding-right:80px}
.flow-product{display:flex;align-items:center;justify-content:center;gap:12px}
.flow-caption{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;max-width:100%}
.flow-seg::before{content:"";position:absolute;z-index:1;left:80px;right:0;top:calc(100% - 41px);height:3px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.flow-seg.math::before{left:0;right:80px;background:var(--accent)}
.flow-seg::after{content:"";position:absolute;z-index:2;left:calc(50% + 40px);top:calc(100% - 39.5px);width:10px;height:10px;border-top:1.5px solid var(--ink);border-right:1.5px solid var(--ink);transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
.flow-seg.math::after{left:calc(50% - 40px)}
.flow-seg:hover::before,.flow-seg:focus-visible::before{transform:scaleX(1)}
.flow-seg:focus-visible{outline:3px solid var(--accent);outline-offset:6px}
.flow-mark{display:inline-grid;place-items:center;flex:none;width:30px;height:30px;color:var(--ink)}
.flow-mark svg{width:30px;height:30px;display:block}
.flow-seg.math .flow-mark{color:var(--accent)}
.flow-seg strong{display:block;font-size:clamp(26px,2.4vw,32px);font-weight:700;letter-spacing:-.045em;line-height:1.1}
.flow-seg p{font-size:14px;color:var(--ink-2);line-height:1.8;margin:0}
.flow-link{white-space:nowrap;font-size:12px;font-weight:500;color:var(--accent-ink);border-bottom:1px solid transparent;transition:border-color .15s}
.flow-seg:hover .flow-link{border-color:currentColor}

/* ── 2) 세 가지 방식: 한 줄 차례 + 전부 펼친 장(章) ─────── */
.mode-seq .intoline-product-heading{margin-bottom:36px;font-family:"Pretendard",var(--sans)}
.mode-seq .intoline-product-heading h2{display:flex;align-items:center;gap:16px;font-size:clamp(40px,4.2vw,54px);line-height:1.12;letter-spacing:-.045em}
.intoline-heading-mark{display:flex;flex:none;width:48px;color:var(--ink)}
.intoline-heading-mark svg{display:block;width:100%;height:auto}
.mode-seq .intoline-product-heading p{margin-top:14px;font-size:16px;line-height:1.65;color:var(--ink-2)}
.mode-toc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 40px;margin-top:0;font-family:"Pretendard",var(--sans)}
.mode-toc-label{grid-column:1/-1;margin-bottom:0;font-size:14px;font-weight:500;line-height:1.5;color:var(--ink-2)}
.mode-toc a{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:0 28px 8px 0;border:0;border-radius:0;background:transparent;color:var(--ink);text-decoration:none;transition:color .18s}
.mode-toc a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.mode-toc-meta{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:24px;margin-bottom:12px}
.mode-toc a small{font:600 14px/1.5 "Pretendard",var(--sans);font-variant-numeric:tabular-nums;color:var(--ink-2)}
.mode-toc a strong{font-size:20px;font-weight:650;letter-spacing:-.035em;line-height:1.45;word-break:keep-all}
.mode-toc .mode-toc-description{display:block;margin-top:10px;font-size:16px;line-height:1.65;color:var(--ink-2);word-break:keep-all;overflow-wrap:anywhere}
.mode-toc a em{padding:0;border-radius:0;background:transparent;font-size:12px;font-weight:500;font-style:normal;line-height:1.4;color:var(--ink-2);white-space:nowrap}
.mode-toc-arrow{position:absolute;top:41px;right:0;width:20px;height:20px;color:var(--ink-2);transition:transform .18s,color .18s}
.mode-toc a:hover strong{color:var(--accent-ink)}
.mode-toc a:hover .mode-toc-arrow{transform:translateY(3px);color:var(--accent)}
.mode-chapter em{font:500 12px/1 var(--sans);font-style:normal;letter-spacing:0;color:var(--ink-3);margin-left:10px;white-space:nowrap}


.mode-seq .mode-panels{margin-top:56px;border-top:0}
.mode-seq .import-mode-panel{padding:0 0 88px;border-top:0;scroll-margin-top:30px}
.mode-seq #import{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.mode-chapter{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:22px;padding:56px 0 18px;margin-bottom:40px;border-bottom:1px solid var(--ink)}
.mode-seq #other .mode-chapter{padding-top:8px}
.mode-chapter-no{font:300 88px/.8 var(--mono);letter-spacing:-.06em;color:var(--accent)}
.mode-chapter-kicker{display:block;font:500 11px/1 var(--mono);letter-spacing:.14em;color:var(--accent);margin-bottom:9px}
.mode-chapter strong{font-size:20px;font-weight:600;letter-spacing:-.04em;line-height:1.3;padding-bottom:2px}
.mode-chapter-of{font:400 12px var(--mono);color:var(--ink-3);padding-bottom:4px}
.mode-seq .import-mode-panel>.wrap>.mode-tag,.mode-seq .import-mode-panel .section-top .eyebrow{display:none}

/* ── 스크롤 고정 바: 지금 읽는 장을 표시(스크롤 스파이) ── */
.mode-sticky{position:fixed;top:var(--site-header-height,60px);left:0;right:0;z-index:19;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);transform:translateY(-110%);opacity:0;transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .2s;pointer-events:none}
.mode-sticky.on{transform:none;opacity:1;pointer-events:auto}
.mode-sticky .wrap{display:flex;align-items:center;gap:28px;height:46px}
.mode-sticky b{font-size:14px;font-weight:700;letter-spacing:-.045em}
.mode-sticky-tabs{display:flex;gap:4px;height:100%}
.mode-sticky a{position:relative;display:flex;align-items:center;height:100%;padding:0 14px;font-size:13px;font-weight:500;letter-spacing:-.02em;color:var(--ink-3);text-decoration:none}
.mode-sticky a i{font:400 12px var(--mono);font-style:normal;margin-right:7px}
.mode-sticky a:hover{color:var(--ink)}
.mode-sticky a[aria-current=true]{color:var(--ink)}
.mode-sticky a[aria-current=true]::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--ink)}
.mode-sticky a[aria-current=true] i{color:var(--accent)}

.variant-switch{position:fixed;left:16px;bottom:16px;z-index:30;font:500 12px var(--sans);padding:8px 12px;border-radius:999px;background:var(--ink);color:var(--paper);text-decoration:none;opacity:.85}
.variant-switch:hover{opacity:1}

@media(max-width:960px){
  .mode-toc{gap:20px 24px}
}
@media(max-width:720px){
  .product-overview.po-line{padding:40px 0}
  .po-line .product-overview-copy{display:block}
  .po-line .product-overview-copy p{margin-top:12px;padding-top:0;text-align:left}
  .po-line .product-overview-copy h2{font-size:24px;text-align:left}
  .flow{display:flex;flex-direction:column;border-top:0;border-left:1px solid var(--ink);margin-left:5px}
  .flow::before{display:none}
  .flow-node,.flow-node:nth-of-type(2),.flow-node.end{position:relative;top:auto;left:auto;right:auto;width:auto;transform:none;padding:0 0 0 22px;text-align:left}
  .flow-node i,.flow-node.end i{top:5px;left:-6px;right:auto;transform:none}
  .flow-seg,.flow-seg.math{padding:26px 0 30px 22px;align-items:flex-start;text-align:left}
  .flow-caption{justify-content:flex-start}
  .flow-seg::before,.flow-seg.math::before{left:-2px;right:auto;top:0;bottom:0;width:3px;height:auto;transform:scaleY(0);transform-origin:top}
  .flow-seg:hover::before,.flow-seg:focus-visible::before{transform:scaleY(1)}
  .flow-seg::after{display:none}
  .mode-seq .intoline-product-heading{margin-bottom:28px}
  .mode-seq .intoline-product-heading h2{gap:12px;font-size:40px}
  .intoline-heading-mark{width:36px}
  .mode-toc{grid-template-columns:1fr;gap:24px}
  .mode-toc a{padding-bottom:0}
  .mode-toc-meta{margin-bottom:12px}
  .mode-seq .mode-panels{margin-top:48px}
  .mode-seq .import-mode-panel{padding-bottom:56px}
  .mode-chapter{padding-top:40px;margin-bottom:28px;gap:14px}
  .mode-chapter-no{font-size:60px}
  .mode-chapter strong{font-size:17px}
  .mode-sticky b{display:none}
  .mode-sticky .wrap{gap:0}
  .mode-sticky a{padding:0 10px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.flow-seg::before,.mode-sticky,.mode-toc a,.mode-toc-arrow{transition:none}}

.crop-hero figure{margin:0}
.result-paper{position:relative;border:1px solid var(--rule-2);box-shadow:var(--shadow);background:#fff}
.result-paper img,.source-paper img{display:block;width:100%;height:auto}
/* 수식 하나를 "선택된 개체"처럼 — 좌표는 crop-result.png(1030×640) 기준 % */
.crop-img{position:relative}
.eq-pick{position:absolute;left:25.2%;top:64.5%;width:27.4%;height:17.4%;border:1.5px solid var(--accent);border-radius:2px;background:color-mix(in srgb,var(--accent) 7%,transparent);pointer-events:none}
/* 결과 그림의 수식 자리에 같은 엔진으로 그린 SVG를 겹친다 — 편집기에서 고치면 실제로 바뀐다.
   좌표는 crop-result.png(1030×640, 220dpi = 3.0556px/pt) 기준 %. 글꼴이 준비된 뒤에만 켠다(.on) */
.eq-live{position:absolute;left:25.5%;top:64.9%;width:26.7%;height:16.6%;background:#fff;display:none;pointer-events:none}
.eq-live.on{display:block}
.eq-live svg{position:absolute;display:block;height:auto}
.eq-pick.flash{animation:eq-flash .7s ease-out}
@keyframes eq-flash{0%{background:color-mix(in srgb,var(--accent) 32%,transparent)}100%{background:color-mix(in srgb,var(--accent) 7%,transparent)}}
.eq-pop-foot em{transition:transform .12s,filter .12s}
.eq-pop-foot em.press{transform:scale(.93);filter:brightness(.85)}
.eq-pick::before,.eq-pick::after{content:"";position:absolute;width:6px;height:6px;background:#fff;border:1.5px solid var(--accent)}
.eq-pick::before{left:-4px;top:-4px}
.eq-pick::after{right:-4px;bottom:-4px}
/* 선택한 수식에 붙은 MathLine 미니 편집기 — "그림이 아니라 고칠 수 있는 글자"임을 보여 준다 */
.eq-pop{position:absolute;left:59%;bottom:36.9%;width:39.5%;border:1px solid var(--rule-2);border-radius:8px;background:var(--paper);box-shadow:0 14px 34px -14px rgba(15,20,35,.4),0 2px 6px -2px rgba(15,20,35,.14);font-size:clamp(9px,.82vw,11.5px);color:var(--ink);overflow:hidden;pointer-events:none}
.eq-pop::before{content:"";position:absolute;left:-1px;bottom:-1px;width:10px;height:10px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);border-bottom-left-radius:8px}
.eq-pop-head{display:flex;align-items:center;gap:.5em;padding:.6em .9em;border-bottom:1px solid var(--rule);background:var(--ml-bg)}
.eq-pop-head svg{width:1.15em;height:1.15em;color:var(--accent)}
.eq-pop-head b{font-weight:600;letter-spacing:-.02em}
.eq-pop-head span{margin-left:auto;display:flex;align-items:center;gap:.45em;color:var(--ink-2)}
.eq-pop-head span::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--ok)}
.eq-pop code{display:block;padding:.85em .9em;font:400 1em/1.6 var(--mono);color:var(--ink);background:none;white-space:normal;word-break:break-word}
.eq-pop code i{display:inline-block;width:1.5px;height:1.15em;margin:0 1px -.2em;background:var(--accent);animation:eq-caret 1.1s steps(1) infinite}
@keyframes eq-caret{50%{opacity:0}}
.eq-pop-foot{display:flex;align-items:center;justify-content:space-between;padding:.5em .9em .7em;color:var(--ink-3)}
.eq-pop-foot em{font-style:normal;font-weight:600;color:#fff;background:var(--accent);padding:.25em .9em;border-radius:5px}
@media(max-width:720px){.eq-pop{display:none}}
@media(prefers-reduced-motion:reduce){.eq-pop code i{animation:none}}
.crop-notes{list-style:none;margin:0;padding:12px 16px;display:flex;flex-wrap:wrap;gap:6px 22px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-2);background:var(--paper)}
.crop-notes li{display:flex;align-items:center;gap:7px}
.crop-notes i{width:9px;height:9px;border-radius:2px;flex:none}
.crop-notes .n-style i{background:#0e8a7d}
.crop-notes .n-eq i{border:1.5px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.destination-label .eyebrow{letter-spacing:0}
.hero .destination-label>b{font-size:12px;font-weight:500;color:var(--ink-2)}
@media(min-width:961px){
  .hero{padding:44px 0 76px}
  .hero>.wrap{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);grid-template-rows:auto auto;column-gap:56px}
  /* 제목은 두 칸에 걸쳐 2줄로 — 왼쪽 칸에 가두면 4줄이 된다 */
  .hero .lede{grid-column:1/-1;grid-row:1;margin-bottom:40px;padding-top:26px}
  .hero h1{font-size:clamp(34px,3.7vw,50px);line-height:1.24;margin-bottom:20px}
  .hero p.big{font-size:16px;line-height:1.8;margin-bottom:24px}
  .hero .math-hero{display:contents}
  .hero-source{grid-column:1;grid-row:2;align-self:end;width:min(100%,400px);max-width:none}
  /* 원고 → 결과: 글자 화살표 대신 결과까지 이어지는 실선 */
  .hero-transfer{grid-column:1;grid-row:2;align-self:end;margin:0 -34px 108px 422px;height:1px;background:var(--ink-3);font-size:0;position:relative;transform:none}
  .hero-transfer::after{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-top:1px solid var(--ink-3);border-right:1px solid var(--ink-3);transform:rotate(45deg)}
  .hero-destination{grid-column:2;grid-row:2;align-self:end;width:100%;padding-right:0}
  .hero .destination-label{margin-bottom:12px}
}
/* 데모와 견적 진입을 분리하고 공통 사업자 정보를 표시한다. */
.contact-demo-link{margin-top:20px;font-size:15px;color:var(--ink-2)}
.contact-demo-link a,.trust a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
footer .footer-brand{font-size:18px;font-weight:600;color:var(--ink)}
footer .footer-brand span{font-size:12px;font-weight:400;color:var(--ink-2);margin-left:8px}
footer .footer-links{display:flex;flex-wrap:wrap;gap:12px 20px;color:var(--ink-2)}
footer .business-info{flex-basis:100%;font-size:12px;line-height:1.9;color:var(--ink-2);margin-top:8px}
