/* Editorial service guides. Static SVG/HTML diagrams; no animation library. */
html:has(.service-detail) { scroll-behavior: auto; }
.service-detail { --accent: #00679e; --wash: #e8f2f4; --edge: #b8cfd8; }
.service-detail[data-service="web"] { --accent: #17665d; --wash: #e5f0e9; --edge: #b4cabe; }
.service-detail[data-service="product"] { --accent: #944a34; --wash: #f2e9df; --edge: #d5c3b3; }
.service-detail[data-service="content"] { --accent: #6542a6; --wash: #eee8f5; --edge: #cfc0dd; }
.service-detail .page-shell { max-width: 1440px; padding-right: max(var(--gutter), 72px); }
.service-detail :focus-visible { outline-color: var(--accent); }
.context-icon { display: block; width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.service-hero { padding: 136px 0 40px; }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: 42px; color: var(--muted); font-size: 12px; }
.service-breadcrumb a { padding: 5px 0; }
.service-breadcrumb span[aria-hidden] { color: var(--accent); }
.service-hero-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(28px,4vw,64px); align-items: center; }
.service-detail .eyebrow { color: var(--accent); }
.service-hero h1 { font-size: clamp(38px,3.8vw,55px); line-height: 1.42; letter-spacing: -.065em; margin-bottom: 28px; }
.service-deck { font-size: 16px; line-height: 2; color: var(--muted); max-width: 580px; margin: 0; }
.service-art { margin: 0; min-width: 0; }
.service-art img { width: 100%; height: auto; border-radius: 2px; }
.service-art figcaption { margin-top: 12px; font-size: 11px; line-height: 1.9; color: var(--muted); }
.service-deliverables { margin: 46px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; list-style: none; }
.service-deliverables li { display: flex; gap: 13px; align-items: flex-start; font-size: 13px; font-weight: 700; }
.service-deliverables .context-icon { width: 24px; height: 24px; color: var(--accent); }
.service-deliverables small { display: block; font-size: 9px; font-weight: 400; color: var(--muted); letter-spacing: .12em; margin-bottom: 5px; }
.service-switcher { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 0 0 66px; }
.service-switcher a { display: flex; gap: 12px; align-items: center; text-decoration: none; font-size: 14px; padding: 17px 20px; border-right: 1px solid var(--line); }
.service-switcher a:last-child { border-right: 0; }
.service-switcher a[aria-current] { background: var(--accent); color: white; font-weight: 700; }
.service-switcher a:not([aria-current]):hover { background: var(--wash); }
.service-switcher small { font-size: 10px; }
.service-reader { display: grid; grid-template-columns: 184px minmax(0,1fr); gap: clamp(38px,5vw,80px); align-items: start; }
.service-toc { position: sticky; top: 112px; max-height: calc(100vh - 145px); overflow-y: auto; padding-right: 5px; padding-bottom: 8px; }
.service-toc summary { cursor: pointer; font-size: 12px; font-weight: 700; color: var(--accent); padding: 10px 0 18px; }
.service-toc ol { list-style: none; padding: 0; margin: 0; }
.service-toc a { display: flex; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 12px; line-height: 1.7; color: var(--muted); }
.service-toc a:hover { color: var(--accent); }
.service-toc a[aria-current="location"] { font-weight: 750; color: var(--accent); }
.service-toc a span { font-size: 10px; color: var(--accent); min-width: 18px; padding-top: 2px; }
.service-toc .toc-reference a { font-size: 11px; }
.service-content { min-width: 0; }
.service-chapter { padding: 0 0 54px; margin: 0 0 54px; border-bottom: 1px solid var(--line); }
.chapter-kicker { display: flex; align-items: center; gap: 12px; color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: .06em; margin-bottom: 18px; }
.chapter-kicker .context-icon { width: 25px; height: 25px; }
.service-chapter h2 { font: 400 clamp(27px,2.7vw,37px)/1.6 Batang,"Noto Serif KR",Georgia,serif; letter-spacing: -.045em; margin: 0 0 26px; }
.service-chapter h3 { font-size: 18px; line-height: 1.65; margin: 29px 0 12px; letter-spacing: -.035em; }
.service-chapter p { font-size: 16px; line-height: 2.05; color: var(--muted); margin: 0 0 21px; }
.service-chapter p:last-child { margin-bottom: 0; }
.service-chapter a { color: var(--accent); }
.service-chapter figure { margin: 30px 0; }
.service-chapter figcaption,.service-chapter .figure-note { font-size: 12px; line-height: 1.9; color: var(--muted); margin: 15px 0 0; }
.service-chapter .source-note { font-size: 12px; padding: 12px 0 0; margin-top: 16px; line-height: 1.9; }
.detail-tag { display: block; font-size: 10px; font-weight: 700; letter-spacing: .04em; line-height: 1.8; color: var(--accent); margin-bottom: 18px; }
.brief-example { padding: clamp(22px,3vw,36px); margin: 28px 0; background: var(--wash); border-left: 3px solid var(--accent); }
.brief-example blockquote { font: 400 24px/1.75 Batang,serif; letter-spacing: -.04em; margin: 0 0 22px; }
.brief-example p { font-size: 15px; }
.decision-record { display: grid; grid-template-columns: 1fr 1fr; margin: 28px 0 0; gap: 22px; }
.decision-record>div { padding-top: 18px; border-top: 2px solid var(--accent); min-width: 0; }
.decision-record dt { font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.decision-record dd { font-size: 14px; line-height: 1.9; margin: 0; color: var(--muted); }
.insight-grid,.route-cards,.approval-gates,.scope-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; margin: 28px 0; }
.insight-grid article,.route-cards article,.approval-gates article,.scope-grid article { padding: 24px; min-width: 0; background: var(--white); border: 1px solid var(--edge); }
.insight-grid article>span,.route-cards article>span,.approval-gates article>span { font-size: 10px; font-weight: 700; color: var(--accent); letter-spacing: .05em; }
.insight-grid h3,.route-cards h3,.approval-gates h3,.scope-grid h3 { margin: 16px 0 12px; font-size: 17px; }
.insight-grid p,.route-cards p,.approval-gates p,.scope-grid p { font-size: 14px; line-height: 1.95; }
.route-cards article:nth-child(2) { background: var(--wash); }
.route-cards article:nth-child(3) { border-top: 4px solid var(--accent); padding-top: 21px; }
.approval-gates { grid-template-columns: 1fr 1fr; }
.color-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.swatch { min-height: 162px; background: var(--swatch); color: var(--ink); padding: 24px 20px; display: flex; flex-direction: column; justify-content: flex-end; gap: 5px; border: 1px solid #0c253314; }
.swatch strong { font-size: 14px; }
.swatch span { font-size: 12px; }
.swatch.dark { color: white; }
.evaluation-chart,.cost-study { padding: 28px; background: var(--wash); }
.chart-key { display: flex; flex-wrap: wrap; gap: 20px; font-size: 12px; font-weight: 700; margin-bottom: 26px; }
.chart-key span::before { content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 7px; background: var(--accent); vertical-align: -2px; }
.chart-key span:nth-child(2)::before { background: var(--ink); }
.chart-row { display: grid; grid-template-columns: 115px minmax(0,1fr); gap: 20px; align-items: center; margin-bottom: 19px; }
.chart-row>strong { font-size: 13px; }
.chart-row>div { border-left: 1px solid var(--edge); padding-left: 8px; }
.chart-row i { display: block; width: calc(var(--score) * 20%); padding: 4px 9px; margin: 4px 0; background: var(--accent); color: white; font-style: normal; font-size: 11px; min-width: 52px; }
.chart-row i:nth-child(2) { background: var(--ink); }
.approval-board { padding: 28px; background: var(--wash); margin: 28px 0; }
.approval-board h3 { margin-top: 0; }
.approval-board ol { display: grid; grid-template-columns: 1fr 1fr; column-gap: 36px; padding-left: 22px; margin: 23px 0; font-size: 14px; }
.approval-board li { padding: 7px 0 7px 3px; }
.approval-board p { font-size: 14px; }
.production-chain { list-style: none; padding: 0 0 0 26px; margin: 30px 0; border-left: 1px solid var(--edge); }
.production-chain li { position: relative; margin: 0 0 24px; }
.production-chain li::before { content: ""; position: absolute; left: -31px; top: 9px; width: 9px; height: 9px; background: var(--accent); border-radius: 50%; }
.production-chain strong { display: block; font-size: 15px; margin-bottom: 6px; }
.production-chain p { font-size: 15px; }
.mistake-note { padding: 25px 29px; margin: 30px 0; border: 1px solid var(--edge); border-left: 4px solid var(--accent); background: var(--white); }
.mistake-note h3 { margin: 0 0 13px; font-size: 16px; color: var(--accent); }
.mistake-note p { font-size: 15px; }
.file-map,.assembly-flow,.detail-sequence { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 28px 0; gap: 12px; }
.file-map>div,.assembly-flow>div,.detail-sequence>div { padding: 20px 17px; background: var(--wash); border-top: 3px solid var(--accent); }
.file-map strong,.assembly-flow b,.detail-sequence b { display: block; font-size: 13px; margin-bottom: 10px; }
.file-map span,.assembly-flow span,.detail-sequence span { display: block; font-size: 13px; line-height: 1.9; color: var(--muted); }
.site-map { padding: 30px; background: var(--wash); }
.map-root { width: max-content; max-width: 100%; margin: 0 auto 36px; padding: 15px 30px; background: var(--accent); color: white; text-align: center; font-weight: 700; font-size: 15px; }
.map-branches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; position: relative; }
.map-branches::before { content: ""; position: absolute; top: -18px; left: 16.66%; right: 16.66%; height: 1px; background: var(--accent); }
.map-branches::after { content: ""; position: absolute; left: 50%; top: -36px; width: 1px; height: 18px; background: var(--accent); }
.map-branches>div { position: relative; padding: 22px 18px; background: var(--white); border: 1px solid var(--edge); }
.map-branches>div::before { content: ""; position: absolute; left: 50%; top: -19px; width: 1px; height: 18px; background: var(--accent); }
.map-branches strong { display: block; font-size: 14px; margin-bottom: 12px; }
.map-branches span { display: block; font-size: 12px; color: var(--muted); line-height: 1.9; }
.map-branches b { display: block; border-top: 1px solid var(--line); margin-top: 18px; padding-top: 13px; font-size: 12px; color: var(--accent); }
.state-specimens { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin: 28px 0; }
.state-specimens>div { border: 1px solid var(--edge); background: var(--white); padding: 23px 18px; }
.state-symbol { display: grid; place-items: center; width: 36px; height: 36px; font-size: 23px; background: var(--wash); color: var(--accent); border-radius: 50%; margin-bottom: 16px; }
.state-specimens strong { font-size: 14px; }
.state-specimens p { font-size: 13px; margin-top: 10px; }
.scope-callout { padding: 26px 29px; background: var(--wash); margin: 28px 0; }
.scope-callout h3 { margin-top: 0; }
.scope-callout p { font-size: 14px; }
.qa-grid,.technical-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 28px 0; }
.qa-grid article,.technical-grid article { border: 1px solid var(--edge); padding: 24px; background: var(--white); }
.qa-grid h3,.technical-grid h3 { margin: 0 0 12px; font-size: 16px; }
.qa-grid p,.technical-grid p { font-size: 14px; }
.technical-grid article>span { display: block; font: 400 34px/1.5 Georgia,serif; margin-bottom: 10px; color: var(--accent); }
.material-board { padding: 28px; background: var(--wash); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.material-disc { display: block; width: 90px; max-width: 100%; aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--edge); margin-bottom: 18px; }
.material-disc.satin { background: linear-gradient(135deg,#f0dfcf,#b48b6a); }
.material-disc.grain { background: repeating-linear-gradient(12deg,#d4af8f 0 3px,#d7b89c 3px 6px); }
.material-disc.contrast { background: linear-gradient(90deg,#385e50 50%,#d2dfc9 50%); }
.material-board strong { font-size: 14px; }
.material-board p { font-size: 13px; margin-top: 10px; }
.material-board figcaption { grid-column: 1 / -1; margin: 0; }
.spec-sheet { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--edge); border: 1px solid var(--edge); margin: 28px 0; }
.spec-sheet>div { background: var(--white); padding: 23px; }
.spec-sheet b { display: block; font-size: 15px; color: var(--accent); margin-bottom: 10px; }
.spec-sheet span { font-size: 14px; line-height: 1.9; color: var(--muted); }
.cost-formula { font-size: 13px; margin-bottom: 26px; }
.cost-formula strong { display: block; font-size: 20px; line-height: 1.8; margin-top: 5px; }
.cost-bars>div { display: grid; grid-template-columns: 65px minmax(0,1fr) 74px; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--edge); }
.cost-bars b,.cost-bars strong { font-size: 12px; }
.cost-bars>div>span { display: block; width: var(--cost); height: 22px; background: var(--accent); }
.cost-bars strong { text-align: right; }
.technical-figure { padding: 0; }
.technical-figure img { width: 100%; }
.storyboard-frames { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.storyboard-frames>div { padding: 26px; background: var(--wash); border: 1px solid var(--edge); }
.storyboard-frames>div>span { display: block; font-size: 10px; color: var(--accent); letter-spacing: .08em; }
.storyboard-frames .context-icon { width: 50px; height: 50px; margin: 25px 0; color: var(--accent); }
.storyboard-frames strong { font-size: 16px; }
.storyboard-frames p { font-size: 14px; margin-top: 12px; }
.character-reference { background: white; border: 1px solid var(--edge); padding: 25px; }
.character-reference img { width: 100%; height: auto; }
.comic-script { padding: 28px; background: var(--wash); margin: 28px 0; }
.comic-script ol { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; }
.comic-script li { border-top: 1px solid var(--edge); padding-top: 15px; }
.comic-script strong { font-size: 14px; color: var(--accent); }
.comic-script p { font-size: 14px; margin-top: 10px; }
.scope-grid { grid-template-columns: 1fr; }
.scope-grid article { display: grid; grid-template-columns: 175px minmax(0,1fr); gap: 26px; border: 0; border-top: 1px solid var(--edge); }
.scope-grid h3 { margin: 0; font-size: 15px; }
.scope-grid article:last-child { background: var(--wash); }
.prepare-list { padding: 0; margin: 28px 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
.prepare-list li { display: flex; gap: 12px; border-bottom: 1px solid var(--line); padding: 16px 0; font-size: 14px; line-height: 1.9; }
.prepare-list li::before { content: "✓"; color: var(--accent); }
.service-contact { display: inline-flex; justify-content: space-between; align-items: center; gap: 30px; font-size: 14px; font-weight: 700; text-decoration: none; background: var(--accent); color: white !important; padding: 15px 23px; margin-top: 8px; min-height: 48px; }
.service-contact:hover { background: var(--ink); }
.service-glossary { margin: 26px 0 0; }
.service-glossary>div { display: grid; grid-template-columns: 165px minmax(0,1fr); gap: 28px; padding: 20px 0; border-top: 1px solid var(--line); }
.service-glossary dt { font-size: 14px; font-weight: 700; color: var(--accent); }
.service-glossary dd { font-size: 14px; line-height: 1.95; color: var(--muted); margin: 0; }
.service-references { margin: 0 0 58px; }
.service-references h2 { font-size: 18px; margin-bottom: 16px; }
.service-references p,.service-references li { font-size: 12px; line-height: 1.9; color: var(--muted); }
.service-references ul { padding-left: 18px; }
.service-references li { padding: 6px 0; }
.service-references a { color: var(--accent); }
.more-services { padding: 36px 0 65px; border-top: 2px solid var(--ink); }
.more-services h2 { font-size: 20px; margin: 0 0 24px; }
.more-services>div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.more-services a { display: flex; justify-content: space-between; gap: 15px; padding: 19px 0; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 700; text-decoration: none; }
.more-services a:hover { color: var(--accent); }
@media(max-width:1100px) {
  .service-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .service-art { max-width: 640px; }
  .service-deck { max-width: 720px; }
  .service-hero h1 { font-size: 48px; }
  .service-reader { grid-template-columns: 1fr; gap: 42px; }
  .service-toc { position: static; max-height: none; overflow: visible; padding-right: 0; }
  .service-toc ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 25px; }
  .service-switcher { margin-bottom: 34px; }
}
@media(max-width:900px) {
  .service-hero { padding-top: 162px; }
  .service-switcher a { padding: 16px 12px; font-size: 12px; gap: 8px; }
  .service-deliverables { grid-template-columns: 1fr 1fr; row-gap: 24px; }
  .insight-grid,.route-cards,.approval-gates { gap: 12px; }
  .insight-grid article,.route-cards article,.approval-gates article { padding: 20px; }
  .file-map,.assembly-flow,.detail-sequence,.state-specimens { grid-template-columns: 1fr 1fr; }
}
@media(max-width:680px) {
  .service-detail .page-shell { padding-left: 22px; padding-right: 60px; }
  .service-hero { padding-bottom: 30px; }
  .service-breadcrumb { font-size: 11px; margin-bottom: 28px; }
  .service-hero h1 { font-size: clamp(29px,7.5vw,43px); line-height: 1.5; letter-spacing: -.06em; }
  .service-hero h1 br { display: none; }
  .service-deck { font-size: 15px; line-height: 1.95; }
  .service-hero .eyebrow { font-size: 10px; letter-spacing: .08em; }
  .service-deliverables { gap: 21px 15px; margin-top: 29px; }
  .service-deliverables li { gap: 8px; font-size: 11px; }
  .service-deliverables .context-icon { width: 20px; height: 20px; }
  .service-switcher { grid-template-columns: 1fr 1fr; }
  .service-switcher a { border-bottom: 1px solid var(--line); padding: 14px 10px; }
  .service-switcher a:nth-child(2n) { border-right: 0; }
  .service-switcher a:nth-last-child(-n+2) { border-bottom: 0; }
  .service-toc ol { grid-template-columns: 1fr; }
  .service-toc a { padding: 11px 0; }
  .service-reader { gap: 38px; }
  .service-chapter { padding-bottom: 37px; margin-bottom: 37px; }
  .service-chapter h2 { font-size: 27px; line-height: 1.65; }
  .service-chapter h2 br { display: none; }
  .service-chapter p { font-size: 15px; line-height: 2; }
  .chapter-kicker { font-size: 10px; gap: 9px; }
  .brief-example { padding: 22px 19px; }
  .brief-example blockquote { font-size: 21px; }
  .decision-record,.insight-grid,.route-cards,.approval-gates,.qa-grid,.technical-grid,.spec-sheet,.scope-grid article,.service-glossary>div,.prepare-list { grid-template-columns: 1fr; }
  .scope-grid article,.service-glossary>div { gap: 10px; }
  .insight-grid article,.route-cards article,.approval-gates article,.qa-grid article,.technical-grid article,.scope-grid article { padding: 21px; }
  .color-row { grid-template-columns: 1fr 1fr; }
  .swatch { padding: 18px 13px; min-height: 136px; }
  .swatch strong { font-size: 12px; }
  .swatch span { font-size: 10px; }
  .evaluation-chart,.cost-study,.approval-board,.scope-callout,.comic-script { padding: 22px 18px; }
  .chart-row { grid-template-columns: 1fr; gap: 8px; }
  .approval-board ol { grid-template-columns: 1fr; }
  .mistake-note { padding: 22px 18px; }
  .file-map,.assembly-flow,.detail-sequence,.state-specimens,.storyboard-frames,.comic-script ol { grid-template-columns: 1fr; }
  .file-map>div,.assembly-flow>div,.detail-sequence>div { padding: 18px; }
  .map-branches { grid-template-columns: 1fr; }
  .map-branches::before,.map-branches::after,.map-branches>div::before { display: none; }
  .site-map { padding: 22px 18px; }
  .map-root { margin-bottom: 20px; padding: 12px 19px; }
  .material-board { grid-template-columns: 1fr; padding: 22px; gap: 28px; }
  .material-disc { width: 80px; margin-bottom: 13px; }
  .cost-formula strong { font-size: 17px; }
  .cost-bars>div { grid-template-columns: 50px minmax(0,1fr) 64px; gap: 7px; }
  .cost-bars b,.cost-bars strong { font-size: 11px; }
  .storyboard-frames>div { padding: 22px; }
  .character-reference { padding: 15px; }
  .service-contact { gap: 15px; padding: 14px 18px; font-size: 12px; }
  .more-services>div { grid-template-columns: 1fr; gap: 0; }
  .more-services { padding-bottom: 42px; }
}
@media print {
  .service-detail .page-shell { max-width: none; padding: 0; }
  .service-hero { padding: 0 0 25px; }
  .service-hero-grid { grid-template-columns: 1fr 1fr; gap: 25px; }
  .service-hero h1 { font-size: 27pt; }
  .service-breadcrumb,.service-switcher,.service-toc,.service-contact,.more-services { display: none; }
  .service-reader { display: block; }
  .service-chapter { margin-bottom: 27px; padding-bottom: 27px; }
  .service-chapter h2 { font-size: 21pt; break-after: avoid; }
  .service-chapter p { font-size: 11pt; orphans: 3; widows: 3; }
  .service-detail figure,.brief-example,.decision-record,.mistake-note,.approval-board,.qa-grid article,.scope-grid article { break-inside: avoid; }
  .service-detail figure { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .service-detail .service-hero-grid { break-inside: avoid; }
  .service-detail [id] { scroll-margin-top: 0; }
}
