/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4
 * macrostructure: Marquee Hero · genre: playful · anchor hue: forest green / terracotta
 * theme: Datong original warm palette · fonts: Nunito Sans + Geist
 * nav: N1b · footer: Ft5 · design-system: design.md · designed-as-app
 * Original animated telephone, receipt and discovery helpers.
 */
@import url("../tokens.css?v=20261006-round-6");
* { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--color-ink); background: var(--color-surface); font: 16px/1.65 var(--font-body); -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
button:active, .button:active { transform: translateY(1px); }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
p, h1, h2, h3, figure { margin: 0; }
h1, h2, h3 { font-family: var(--font-display); font-style: normal; min-width: 0; overflow-wrap: anywhere; }
h2 { font-size: clamp(30px, 3.3vw, 44px); line-height: 1.25; letter-spacing: -.035em; font-weight: 650; }
h3 { font-size: 22px; line-height: 1.35; letter-spacing: -.025em; font-weight: 650; }
img, video { display: block; max-width: 100%; }
.container { max-width: var(--page-max); margin-inline: auto; width: calc(100% - 2 * var(--page-gutter)); }
.section { padding-block: var(--space-3xl); }
.lead { color: var(--color-muted); font-size: 17px; max-width: 49ch; line-height: 1.85; }
.icon { width: 22px; height: 22px; flex: 0 0 auto; }
.skip-link { position: absolute; left: 16px; top: -80px; z-index: 100; background: var(--color-surface); padding: 12px 20px; color: var(--color-ink); }
.skip-link:focus { top: 8px; }
.button { display: inline-flex; min-height: 48px; justify-content: center; align-items: center; gap: 20px; padding: 12px 20px; border-radius: var(--radius-button); font-size: 14px; font-weight: 600; white-space: nowrap; border: 1px solid transparent; transition: background-color var(--dur-short), color var(--dur-short); }
.button.primary { color: var(--color-accent-ink); background: var(--color-accent); }
.button.light { background: var(--color-surface); color: var(--color-accent); }
.text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 15px; font-weight: 600; white-space: nowrap; color: var(--color-accent); }
.site-header { position: sticky; top: 0; z-index: 50; background: var(--color-surface); border-bottom: 1px solid var(--color-rule); }
.header-inner { max-width: 1380px; margin: 0 auto; padding: 14px 32px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; gap: 10px; align-items: center; white-space: nowrap; font-family: var(--font-display); font-size: 24px; font-weight: 800; letter-spacing: -1px; min-height: 44px; color: var(--color-accent); }
.brand-mark { background: var(--color-accent); color: var(--color-accent-ink); width: 34px; height: 34px; display: grid; place-items: center; font-size: 14px; letter-spacing: -1px; border-radius: 9px 9px 9px 2px; }
.brand-ai { font-weight: 500; }
.site-nav { display: flex; gap: 28px; margin-left: auto; }
.site-nav a { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; color: var(--color-ink-2); font-size: 14px; }
.header-actions { display: flex; align-items: center; gap: 12px; margin-left: 36px; }
.language-toggle, .menu-toggle { background: transparent; color: var(--color-ink); display: grid; place-items: center; border: 1px solid var(--color-rule); border-radius: 6px; height: 44px; min-width: 44px; padding: 0 10px; font-size: 13px; white-space: nowrap; }
.menu-toggle { display: none; }
.header-cta { min-height: 44px; padding: 9px 16px; gap: 14px; }
.hero { background: var(--color-paper); text-align: center; padding: 40px var(--page-gutter) 52px; }
.hero-intro { max-width: 960px; margin: 0 auto; }
.audience { color: var(--color-muted); font-size: 14px; margin-bottom: 18px; }
.hero h1 { font-size: clamp(40px, 4.8vw, 64px); font-weight: 650; line-height: 1.15; letter-spacing: -.045em; }
.hero-copy { color: var(--color-muted); margin: 24px auto 0; max-width: 620px; line-height: 1.8; font-size: 17px; }
.hero-stage { max-width: 1136px; margin: 28px auto 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px) minmax(0, 1fr); gap: 26px; align-items: end; }
.blueprint { color: var(--color-accent); align-self: end; padding-bottom: 12px; }
.blueprint-svg { width: 100%; max-width: 260px; height: auto; }
.blueprint-left { transform: rotate(-7deg); }
.blueprint-right { transform: rotate(7deg); }
.blueprint figcaption { color: var(--color-accent); font-size: 11px; font-weight: 600; margin-top: -6px; }
.voice-experience { min-width: 0; padding: 22px 24px 18px; background: var(--color-surface); color: var(--color-ink); border: 1px solid var(--color-rule); border-top: 3px solid var(--color-accent); border-radius: 14px; box-shadow: 0 12px 40px var(--color-shadow); text-align: left; }
.experience-title { display: flex; gap: 10px; align-items: center; font-size: 16px; font-weight: 600; }
.experience-title .icon { color: var(--color-accent); }
.experience-caption { color: var(--color-muted); font-size: 13px; margin-top: 7px; }
.voice-experience .demo-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0 12px; }
.voice-experience .demo-picker button { color: var(--color-accent); background: var(--color-paper-2); border: 1px solid var(--color-rule); padding: 12px 8px; min-height: 46px; border-radius: 7px; white-space: nowrap; font-size: 13px; font-weight: 600; transform: none; }
.voice-experience .demo-picker button::before { content: '▶'; font-size: 10px; }
.voice-experience .demo-picker button[aria-pressed=true] { background: var(--color-accent); color: var(--color-accent-ink); border-color: var(--color-accent); }
.waveform { display: flex; gap: 4px; justify-content: center; align-items: center; height: 58px; width: 100%; overflow: clip; color: var(--color-accent); }
.waveform i { display: block; height: var(--bar-height); width: 3px; flex: 0 0 3px; background: currentColor; border-radius: 2px; opacity: .45; }
.experience-note { font-size: 11px; text-align: center; color: var(--color-muted); margin-top: 7px; }
.voice-experience:has(.demo-picker[data-playing]) .waveform { display: none; }
.recording-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0 12px; }
.recording-actions button, .recording-stop { min-height: 46px; padding: 10px 8px; border: 1px solid var(--color-rule); border-radius: var(--radius-button); background: var(--color-paper-2); color: var(--color-accent); font-size: 13px; font-weight: 600; white-space: nowrap; }
.recording-actions .recording-play[aria-pressed=true] { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-accent-ink); }
.recording-actions button:hover { border-color: var(--color-accent); }
.recording-context { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.recording-name { font-size: 13px; }
.recording-duration { color: var(--color-muted); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.recording-watch { display: block; width: 100%; min-height: 44px; padding: 10px 8px; margin-top: 14px; border: 1px solid var(--color-rule); border-radius: var(--radius-button); color: var(--color-accent); background: var(--color-paper-2); font-size: 13px; font-weight: 600; white-space: nowrap; }
.recording-disclosure { margin-top: 12px; font-size: 11px; line-height: 1.8; color: var(--color-muted); }
.recording-active .waveform { display: none; }
.recording-player { margin-top: 18px; border-top: 1px solid var(--color-rule); padding-top: 18px; }
.recording-player audio { display: block; width: 100%; min-width: 0; max-width: 100%; }
.recording-caption { margin-top: 14px; padding: 14px; background: var(--color-paper-2); border-radius: 8px; min-height: 76px; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.recording-player summary { padding-block: 14px; cursor: pointer; font-size: 13px; min-height: 44px; }
.recording-stop { width: 100%; margin-top: 14px; }
.recording-video-dialog { margin: auto; width: calc(100% - 32px); max-width: 460px; max-height: calc(100dvh - 32px); padding: 28px 24px 20px; border: 1px solid var(--color-rule); border-radius: var(--radius-card); color: var(--color-ink); background: var(--color-surface); text-align: center; }
.recording-video-dialog::backdrop { background: var(--color-overlay); }
.recording-video-dialog h2 { padding-inline: 20px; font-size: 22px; }
.recording-video-dialog > p { color: var(--color-muted); font-size: 12px; margin: 8px 0 16px; }
.recording-video-dialog video { display: block; margin-inline: auto; width: auto; max-width: 100%; height: min(580px,calc(100dvh - 170px)); object-fit: contain; background: var(--color-paper); }
.voice-experience .demo-screen { margin-top: 16px; border: 1px solid var(--color-rule); background: var(--color-paper); color: var(--color-ink); border-radius: 8px; }
.voice-experience .demo-bar { background: var(--color-paper-2); color: var(--color-ink); border-color: var(--color-rule); }
.voice-experience .demo-bar .nm { color: var(--color-ink); }
.voice-experience .demo-bar .st, .voice-experience .demo-bar .tm { color: var(--color-muted); }
.voice-experience .demo-bar .av { background: var(--color-accent); color: var(--color-accent-ink); border-radius: 8px; }
.voice-experience .demo-bar .av .icon { width: 18px; height: 18px; }
.voice-experience .demo-body { min-height: 160px; max-height: 250px; overflow-y: auto; overscroll-behavior: contain; padding: 14px; }
.voice-experience .demo-bub { max-width: 94%; font-size: 12px; line-height: 1.6; border-radius: 8px; }
.voice-experience .demo-row.ai .demo-bub { background: var(--color-paper-2); color: var(--color-ink); }
.voice-experience .demo-row.cust .demo-bub { background: var(--color-surface); color: var(--color-ink); border: 1px solid var(--color-rule); }
.voice-experience .demo-row .who { color: var(--color-muted); }
.voice-experience .demo-typing .box { background: var(--color-paper-2); }
.voice-experience .demo-typing .dot { background: var(--color-accent); }
.voice-experience .demo-ticket { background: var(--color-surface); color: var(--color-ink); border: 1px solid var(--color-rule); }
.voice-experience .demo-ticket .tt .badge { background: var(--color-paper-2); color: var(--color-accent); }
.voice-experience .demo-ticket .lines { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; font-size: 12px; }
.voice-experience .demo-reset { margin-top: 12px; border-radius: 7px; background: var(--color-accent); color: var(--color-accent-ink); min-height: 44px; white-space: nowrap; }
.hero-bottom { margin: 24px auto 0; display: flex; justify-content: center; align-items: center; gap: 24px; }
.hero-bottom .text-link { color: var(--color-muted); font-size: 13px; }
.capabilities { background: var(--color-surface); border-bottom: 1px solid var(--color-rule); }
.capability-row { min-height: 112px; display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.capability-row p { color: var(--color-muted); font-size: 13px; max-width: 160px; }
.capability-row span { font-size: 14px; display: flex; gap: 10px; align-items: center; white-space: nowrap; }
.capability-row .icon { color: var(--color-accent); }
.feature-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 80px; }
.feature-copy .lead { margin-top: 24px; }
.check-list { list-style: none; padding: 0; margin: 24px 0 18px; display: grid; gap: 16px; }
.check-list li { display: flex; align-items: start; gap: 12px; font-size: 14px; color: var(--color-ink-2); }
.check-list .icon { color: var(--color-accent); margin-top: 2px; }
.video-feature { background: var(--color-paper-2); border-radius: var(--radius-card); padding: 20px; }
.video-feature video { aspect-ratio: 4/3; width: 100%; object-fit: cover; border-radius: 8px; background: var(--color-dark); }
.video-feature figcaption { font-size: 12px; color: var(--color-muted); text-align: center; margin-top: 12px; }
.growth-section { background: var(--color-paper); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 80px; margin-bottom: 48px; }
.services-list { border-top: 1px solid var(--color-rule); }
.service-row { display: grid; grid-template-columns: 60px minmax(0, 1fr) minmax(0, 1.25fr) 44px; align-items: center; gap: 32px; padding: 30px 0; border-bottom: 1px solid var(--color-rule); }
.service-code { color: var(--color-accent); font-size: 12px; font-weight: 650; }
.service-row p { font-size: 15px; color: var(--color-muted); }
.round-link { width: 44px; height: 44px; border: 1px solid var(--color-rule); border-radius: 50%; display: grid; place-items: center; color: var(--color-accent); }
.ads-section .feature-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ads-section .feature-copy { order: 2; }
.ad-experience { margin: 0; max-width: none; border-radius: var(--radius-card); padding: 26px; }
.ad-experience :focus-visible { outline-color: var(--color-surface); }
.ad-experience .demo-head h3 { font-size: 18px; }
.ad-experience .demo-map { max-height: 340px; }
.ad-experience .demo-stats { gap: 8px; }
.ad-experience .demo-stat { padding: 12px 4px; }
.ad-experience .demo-stat .n { font-size: 22px; color: var(--color-surface); font-variant-numeric: tabular-nums; }
.ad-experience .demo-radius-row label, .ad-experience .demo-sub, .ad-experience .demo-stat .l { color: var(--color-light-blue); }
.ad-experience .demo-audio-tip { font-size: 12px; }
.ad-experience .demo-audio-tip .icon { width: 16px; height: 16px; }
.ad-experience .demo-radius-row input[type=range] { min-height: 44px; min-width: 80px; max-width: 100%; }
.ad-experience .demo-radius-row .out { font-size: 12px; }
.ad-experience .demo-run { white-space: nowrap; min-height: 44px; border-radius: 7px; }
.quiet-note { font-size: 13px; color: var(--color-muted); line-height: 1.75; margin: 24px 0; max-width: 50ch; }
.cases-section { background: var(--color-paper-2); }
.case-list { display: grid; gap: 0; border-top: 1px solid var(--color-rule); }
.case-row { display: grid; grid-template-columns: 88px minmax(0,1fr) auto; gap: 28px; align-items: center; min-height: 132px; padding-block: 24px; border-bottom: 1px solid var(--color-rule); }
.case-symbol { color: var(--color-accent); width: 72px; height: 72px; display: grid; place-items: center; border: 1px solid var(--color-accent); border-radius: 18px; }
.case-symbol .icon { width: 34px; height: 34px; stroke-width: 1.2; }
.case-type { color: var(--color-muted); font-size: 12px; }
.case-row h3 { margin-top: 5px; font-size: 23px; }
.case-read { display: flex; align-items: center; gap: 20px; min-height: 44px; color: var(--color-accent); font-size: 13px; white-space: nowrap; }
.plan-table { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--color-rule); border-bottom: 1px solid var(--color-rule); }
.plan-table > div { padding: 30px 28px 30px 0; }
.plan-table > div + div { padding-left: 28px; border-left: 1px solid var(--color-rule); }
.plan-table h3 { font-size: 20px; }
.plan-table p { font-size: 14px; color: var(--color-muted); line-height: 1.85; margin: 14px 0 24px; }
.plan-table span { color: var(--color-accent); font-size: 13px; }
.faq-section { padding-top: 16px; }
.faq-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 72px; align-items: start; }
.faq-list { border-top: 1px solid var(--color-rule); }
.faq-list details { border-bottom: 1px solid var(--color-rule); }
.faq-list summary { min-height: 76px; padding: 22px 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 15px; font-weight: 550; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list p { padding: 0 30px 24px 0; color: var(--color-muted); font-size: 14px; line-height: 1.9; }
.faq-plus { height: 18px; width: 18px; position: relative; flex: 0 0 auto; }
.faq-plus::before, .faq-plus::after { content: ''; width: 12px; height: 1px; background: var(--color-accent); position: absolute; left: 3px; top: 8px; }
.faq-plus::after { transform: rotate(90deg); }
details[open] .faq-plus::after { transform: none; }
.contact-section { background: var(--color-accent); color: var(--color-accent-ink); padding: 88px var(--page-gutter); text-align: center; }
.contact-inner { width: 100%; }
.contact-section h2 { font-size: clamp(36px,4.5vw,60px); line-height: 1.2; }
.contact-section p { margin: 24px auto 30px; max-width: 58ch; font-size: 16px; opacity: .95; }
.contact-section .contact-email { margin-top: 24px; min-height: 44px; display: flex; width: fit-content; align-items: center; margin-inline: auto; font-size: 13px; white-space: nowrap; }
.site-footer { padding: 40px 0 28px; background: var(--color-surface); }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.footer-top p, .footer-monitor { font-size: 13px; color: var(--color-muted); }
.footer-monitor { display: flex; align-items: center; min-height: 44px; white-space: nowrap; }
.contact-dialog { position: fixed; inset: 0; margin: auto; height: fit-content; width: calc(100% - 40px); max-width: 380px; max-height: calc(100dvh - 48px); padding: 28px 28px 18px; border: 1px solid var(--color-rule); border-radius: 18px; background: var(--color-surface); color: var(--color-ink); text-align: center; }
.contact-dialog::backdrop { background: var(--color-overlay); }
.contact-dialog[open] { display: flex; flex-direction: column; align-items: center; }
.contact-dialog h2, .contact-dialog > p, .contact-dialog .dialog-links { width: 100%; flex: 0 0 auto; }
.contact-dialog h2 { font-size: 24px; padding-right: 12px; }
.contact-dialog > p { margin-top: 12px; font-size: 13px; color: var(--color-muted); }
.contact-dialog img { margin: 18px auto 0; width: min(100%, 250px); height: auto; min-height: 0; flex: 0 1 auto; object-fit: contain; }
.dialog-close { position: absolute; top: 8px; right: 8px; height: 44px; width: 44px; border: 0; background: transparent; color: var(--color-ink); font-size: 24px; }
.dialog-links { display: grid; gap: 0; border-top: 1px solid var(--color-rule); margin-top: 8px; padding-top: 4px; font-size: 13px; }
.dialog-links a { min-height: 44px; display: grid; place-items: center; white-space: nowrap; }
@media (hover:hover) and (pointer:fine) {
  .button.primary:hover, .voice-experience .demo-reset:hover, .ad-experience .demo-run:hover { background: var(--color-accent-hover); }
  .button.light:hover { background: var(--color-paper-2); }
  .text-link:hover, .site-nav a:hover, .footer-monitor:hover { color: var(--color-accent-hover); }
  .voice-experience .demo-picker button:hover { background: var(--color-accent); color: var(--color-accent-ink); transform: none; }
  .case-row:hover h3 { color: var(--color-accent); }
  .round-link:hover { background: var(--color-accent); color: var(--color-accent-ink); }
}
@media (max-width: 1050px) {
  .site-nav { gap: 20px; }
  .header-actions { margin-left: 0; }
  .header-inner { gap: 18px; }
  .feature-split, .section-heading { gap: 48px; }
}
@media (max-width: 959px) {
  .header-inner { padding-inline: 24px; }
  .site-nav { display: none; }
  .menu-toggle { display: grid; }
  .site-nav.is-open { display: grid; position: absolute; top: 100%; left: 0; right: 0; padding: 18px 24px 24px; gap: 4px; background: var(--color-surface); border-bottom: 1px solid var(--color-rule); box-shadow: 0 12px 20px var(--color-shadow); }
  .site-nav.is-open a { padding: 4px 8px; }
  .hero-stage { grid-template-columns: minmax(0, 520px); justify-content: center; }
  .blueprint { display: none; }
  .feature-split, .ads-section .feature-split, .section-heading, .faq-layout { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .feature-copy .lead { max-width: 65ch; }
  .feature-copy h2 br { display: none; }
  .ads-section .feature-copy { order: 0; }
  .section { padding-block: 72px; }
  .capability-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding-block: 24px; gap: 18px; }
  .capability-row p { max-width: none; }
  .service-row { grid-template-columns: 48px minmax(0,1fr) 44px; gap: 20px; }
  .service-row p { grid-column: 2; grid-row: 2; }
  .service-row .round-link { grid-column: 3; grid-row: 1 / 3; }
  .video-feature video { aspect-ratio: 16/9; }
  .ad-experience { max-width: 580px; width: 100%; justify-self: center; }
}
@media (max-width: 639px) {
  :root { --page-gutter: 20px; }
  html { scroll-padding-top: 80px; }
  .header-inner { padding: 10px 16px; gap: 10px; }
  .brand { font-size: 20px; gap: 8px; }
  .brand-mark { width: 30px; height: 30px; font-size: 12px; }
  .header-actions { gap: 8px; }
  .header-cta { display: none; }
  .hero { padding: 44px 20px 32px; }
  .hero h1 { font-size: clamp(34px,8vw,48px); line-height: 1.25; letter-spacing: -.04em; }
  .hero-copy { font-size: 15px; margin-top: 20px; line-height: 1.8; }
  .desktop-break { display: none; }
  .audience { font-size: 12px; margin-bottom: 16px; }
  .hero-stage { margin-top: 28px; }
  .voice-experience { padding: 20px 16px 16px; }
  .experience-title { font-size: 14px; gap: 8px; }
  .experience-caption { font-size: 12px; }
  .voice-experience .demo-picker { gap: 8px; }
  .voice-experience .demo-picker button { font-size: 12px; gap: 6px; padding-inline: 5px; }
  .waveform { gap: 3px; }
  .waveform i { flex-basis: 2px; width: 2px; }
  .experience-note { font-size: 10px; }
  .hero-bottom { gap: 16px; flex-wrap: wrap; margin-top: 24px; }
  .hero-bottom .button { min-height: 46px; }
  .capability-row { display: flex; align-items: flex-start; flex-direction: column; gap: 16px; padding-block: 28px; }
  .capability-row span { font-size: 13px; }
  .capability-row p { margin-bottom: 2px; }
  .section { padding-block: 56px; }
  h2 { font-size: 30px; line-height: 1.3; }
  .lead { font-size: 15px; line-height: 1.9; }
  .section-heading { gap: 18px; margin-bottom: 32px; }
  .feature-split { gap: 28px; }
  .video-feature { padding: 12px; }
  .service-row { grid-template-columns: minmax(0,1fr) 44px; gap: 10px; padding-block: 24px; }
  .service-code { grid-row: 1; grid-column: 1; font-size: 10px; }
  .service-row h3 { grid-row: 2; grid-column: 1; font-size: 21px; }
  .service-row p { grid-column: 1; grid-row: 3; font-size: 14px; }
  .service-row .round-link { grid-column: 2; grid-row: 1 / 4; }
  .ad-experience { padding: 20px 16px; }
  .ad-experience .demo-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ad-experience .demo-head h3 { font-size: 16px; }
  .ad-experience .demo-radius-row { gap: 6px; }
  .ad-experience .demo-radius-row label { font-size: 12px; }
  .case-row { grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding-block: 24px; }
  .case-symbol { width: 44px; height: 52px; border-radius: 10px; }
  .case-symbol .icon { width: 24px; height: 24px; }
  .case-row h3 { font-size: 19px; }
  .case-read { grid-column: 2; min-height: 44px; gap: 12px; }
  .plan-table { grid-template-columns: minmax(0,1fr); }
  .plan-table > div { padding: 24px 0; }
  .plan-table > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--color-rule); }
  .plan-table p { margin-bottom: 16px; }
  .faq-section { padding-top: 0; }
  .faq-layout { gap: 28px; }
  .faq-list summary { font-size: 14px; min-height: 72px; gap: 16px; }
  .contact-section { padding: 56px 20px; }
  .contact-section h2 { font-size: 36px; }
  .contact-section p { font-size: 14px; margin-block: 20px 24px; }
  .footer-top { align-items: flex-start; flex-wrap: wrap; gap: 12px 28px; }
  .footer-top .brand { flex-basis: 100%; }
  .footer-top p { padding-block: 10px; }
  .contact-dialog { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
