/* Veřejná část: hlavička, prodejní stránka, stavy objednávky, patička. */
body.public { background: var(--color-surface); }

.site-header { border-bottom: 1px solid var(--color-line); background: var(--color-surface); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 72px; }
.site-header .brand { display: inline-flex; align-items: center; min-height: var(--tap-target); }
.site-header .brand img { display: block; height: 44px; width: auto; }
.site-header__links { display: flex; align-items: center; gap: var(--space-5); font-size: var(--font-size-sm); }
.site-header__links a { display: inline-flex; align-items: center; gap: var(--space-1); min-height: var(--tap-target); color: var(--color-text-strong); text-decoration: none; font-weight: var(--font-weight-medium); }
.site-header__links a:hover { color: var(--color-brand-strong); text-decoration: underline; }
@media (max-width: 639px) {
  .site-header__inner { min-height: 60px; }
  .site-header .brand img { height: 36px; }
  .site-header__links { gap: var(--space-3); }
  .site-header__links .hide-sm { display: none; }
}

.site-footer { margin-top: var(--space-8); padding: var(--space-6) 0; background: var(--color-surface-soft); border-top: 1px solid var(--color-line); font-size: var(--font-size-sm); color: var(--color-text-muted); }
.site-footer p { margin-bottom: var(--space-2); }
.site-footer nav { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.site-footer nav a { display: inline-flex; align-items: center; min-height: var(--tap-target); }
.site-footer nav .link-button { min-height: var(--tap-target); }
/* V textu (např. /osobni-udaje/) stojí tlačítko v samostatném odstavci → plný tap target 44 px bez zásahu do řádkování. */
.legal .link-button { min-height: var(--tap-target); }
/* Tlačítko vzhledem odkazu (např. „Nastavení cookies“ — otevře lištu CookieYes, nic nenaviguje) */
.link-button { display: inline-flex; align-items: center; padding: 0; border: 0; background: none; font: inherit; color: var(--color-brand-strong); text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer; }
.link-button:hover { color: var(--color-brand-strong-hover); }
.link-button[hidden] { display: none; }

/* Úvod */
.hero { padding: var(--space-6) 0 var(--space-5); background: linear-gradient(180deg, var(--color-surface-soft), var(--color-surface)); }
.hero__eyebrow { display: inline-block; margin-bottom: var(--space-2); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); letter-spacing: .08em; text-transform: uppercase; color: var(--color-brand-strong); }
.hero h1 { margin-bottom: var(--space-2); }
.hero p { max-width: 60ch; margin: 0; font-size: var(--font-size-lg); color: var(--color-text); }
@media (max-width: 639px) {
  .hero { padding: var(--space-5) 0 var(--space-4); }
  .hero h1 { font-size: 1.75rem; }
  .hero p { font-size: var(--font-size-md); }
}

/* Prodejní mřížka: jeden formulář; desktop = formulář vlevo, sticky náhled + shrnutí vpravo;
   mobil = pod sebou, náhled hned po výběru vzhledu (neodsune cenu). */
.buy {
  display: grid; gap: var(--space-5); padding-top: var(--space-4);
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "s1" "preview" "s2" "s3" "summary";
}
.buy__step--1 { grid-area: s1; }
.buy__step--2 { grid-area: s2; }
.buy__step--3 { grid-area: s3; }
.buy__aside { display: contents; }
.buy__preview { grid-area: preview; }
.buy__summary { grid-area: summary; }
@media (min-width: 1024px) {
  .buy {
    gap: var(--space-5) var(--space-7);
    grid-template-columns: minmax(0, 1fr) 456px;
    grid-template-areas: "s1 aside" "s2 aside" "s3 aside";
    grid-template-rows: auto auto 1fr;
    align-items: start;
  }
  .buy__aside {
    display: flex; flex-direction: column; gap: var(--space-4);
    grid-area: aside;
  }
  .buy__summary, .buy__preview { grid-area: auto; }
}
/* Náhled + shrnutí zůstanou při posouvání vidět jen tam, kde se celé vejdou na výšku okna. */
@media (min-width: 1024px) and (min-height: 940px) {
  .buy__aside { position: sticky; top: var(--space-5); }
}

.step { padding: var(--space-5); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); }
.step__head { display: flex; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-4); }
.step__num { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--color-surface-select); color: var(--color-brand-ink); font-weight: var(--font-weight-bold); }
.step__head h2 { font-size: var(--font-size-xl); margin: 0; }
.step__intro { margin-top: calc(-1 * var(--space-2)); color: var(--color-text-muted); font-size: var(--font-size-sm); }
@media (max-width: 639px) { .step { padding: var(--space-4); } }

.personalize { margin-top: var(--space-2); border-top: 1px solid var(--color-line); padding-top: var(--space-4); }
.personalize summary { display: flex; align-items: center; gap: var(--space-2); min-height: var(--tap-target); cursor: pointer; font-weight: var(--font-weight-semibold); color: var(--color-brand-strong); list-style: none; }
.personalize summary::-webkit-details-marker { display: none; }
.personalize summary::before { content: "+"; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; border: 2px solid currentColor; font-weight: var(--font-weight-bold); line-height: 1; }
.personalize[open] summary::before { content: "−"; }
.personalize summary:focus-visible { outline: 3px solid var(--color-brand-strong); outline-offset: 2px; }
.personalize__body { padding-top: var(--space-3); }

/* Nákup na firmu (2026-10-31): bez JS jsou pole vidět vždy, company.js je schová do zaškrtnutí. */
.company { margin: 0 0 var(--space-2); }
.company__toggle { margin-bottom: var(--space-3); }
.company__toggle .check { font-weight: var(--font-weight-semibold); align-items: center; }
.company__toggle-hint { margin-left: calc(22px + var(--space-3)); }
.company__body { min-width: 0; margin: 0 0 var(--space-4); padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-surface-soft); border: 1px solid var(--color-line); }
.company__body[hidden] { display: none; }
.company__body .field:last-of-type { margin-bottom: var(--space-4); }
.company__nojs { margin: 0 0 var(--space-3); }
.input-action { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: stretch; }
.input-action input { flex: 1 1 9rem; min-width: 0; max-width: 14rem; font-feature-settings: "tnum" 1; letter-spacing: .02em; }
.input-action__btn { flex: none; min-height: var(--tap-target); white-space: nowrap; }
.input-action__btn[aria-busy="true"] { cursor: progress; }
.input-action__btn[hidden] { display: none; }
@media (max-width: 479px) { .input-action input { flex-basis: 100%; max-width: none; } }
.ares-status { margin: var(--space-2) 0 0; font-size: var(--font-size-sm); }
.ares-status:empty { display: none; }
.ares-status--busy { color: var(--color-text-muted); }
.ares-status--ok { color: var(--color-success); font-weight: var(--font-weight-semibold); }
.ares-status--warn { color: var(--color-warning); font-weight: var(--font-weight-semibold); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: var(--color-warning-bg); }
.ares-status--error { color: var(--color-danger); font-weight: var(--font-weight-semibold); }
.ares-status--ok::before { content: "✓ "; }
.ares-status--warn::before, .ares-status--error::before { content: "! "; }
@media (min-width: 640px) { .field-row--city { grid-template-columns: 1fr 10rem; } }
.company__legal { display: flex; gap: var(--space-2); align-items: flex-start; margin: 0; color: var(--color-text); }
.company__legal .icon, .company__legal svg { flex: none; margin-top: 2px; color: var(--color-brand-strong); }

/* Náhled poukazu — škáluje se na šířku rámečku (voucher-preview.js, fallback v CSS). */
.preview-card { padding: var(--space-4); border-radius: var(--radius-lg); background: var(--color-surface-soft); border: 1px solid var(--color-line); }
.preview-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2); margin-bottom: var(--space-3); font-size: var(--font-size-sm); }
.preview-card__head strong { color: var(--color-text-strong); }
.preview-card__note { margin: var(--space-3) 0 0; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.voucher-frame { position: relative; overflow: hidden; aspect-ratio: 210 / 148; border-radius: var(--radius-sm); box-shadow: var(--shadow-md); background: var(--color-surface); }
.voucher-frame .voucher { position: absolute; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--voucher-scale, 0.5)); }
.choice__thumb > .voucher { position: absolute; left: 0; top: 0; transform-origin: 0 0; transform: scale(var(--voucher-scale, 0.2)); }
.voucher-frame [hidden], .choice__thumb [hidden] { display: none; }
/* Vzhledy 2026-10-28: poukaz 210 × 99 mm (náhled je jen poukaz, bez informačního bloku listu A4). */
.voucher-frame:has(.voucher-slot:not([hidden]) > .voucher--v2) { aspect-ratio: 210 / 99; }
.choice__thumb:has(> .voucher--v2) { aspect-ratio: 210 / 99; }

/* Shrnutí */
.summary { padding: var(--space-5); border-radius: var(--radius-lg); border: 1px solid var(--color-line); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.summary h2 { font-size: var(--font-size-xl); display: flex; gap: var(--space-3); align-items: baseline; }
.summary__rows { margin: 0 0 var(--space-4); padding: 0; }
.summary__row { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-2) 0; border-bottom: 1px solid var(--color-line); }
.summary__row dt { color: var(--color-text-muted); }
.summary__row dd { margin: 0; font-weight: var(--font-weight-semibold); color: var(--color-text-strong); text-align: right; overflow-wrap: anywhere; }
.summary__total { display: flex; justify-content: space-between; align-items: baseline; padding: var(--space-3) 0 var(--space-4); }
.summary__total span { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); }
.summary__total strong { font-size: var(--font-size-2xl); color: var(--color-text-strong); font-feature-settings: "tnum" 1; }
.summary__facts { margin: 0 0 var(--space-4); padding: 0; list-style: none; font-size: var(--font-size-sm); }
.summary__facts li { display: flex; gap: var(--space-2); align-items: flex-start; padding: var(--space-1) 0; }
.summary__facts .icon { color: var(--color-brand-strong); margin-top: 2px; }
.summary__secure { margin: var(--space-3) 0 0; font-size: var(--font-size-sm); color: var(--color-text-muted); text-align: center; }

/* Stránky stavu objednávky */
.status-page { padding: var(--space-7) 0; }
.status-card { max-width: 640px; margin: 0 auto; padding: var(--space-6); border-radius: var(--radius-lg); border: 1px solid var(--color-line); background: var(--color-surface); box-shadow: var(--shadow-md); }
.status-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; margin-bottom: var(--space-4); }
.status-card__icon .icon { width: 28px; height: 28px; }
.status-card--pending .status-card__icon { background: var(--color-info-bg); color: var(--color-info); }
.status-card--success .status-card__icon { background: var(--color-success-bg); color: var(--color-success); }
.status-card--failed .status-card__icon { background: var(--color-danger-bg); color: var(--color-danger); }
.status-card--outage .status-card__icon { background: var(--color-warning-bg); color: var(--color-warning); }
.status-card h1 { font-size: var(--font-size-3xl); }
.status-card .next { margin: var(--space-5) 0; padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-surface-soft); }
.status-card .next h2 { font-size: var(--font-size-md); margin-bottom: var(--space-2); }
.status-card .next ol, .status-card .next ul { margin: 0; padding-left: var(--space-5); }
.status-card .actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
@media (max-width: 639px) { .status-card { padding: var(--space-5) var(--space-4); } .status-card h1 { font-size: var(--font-size-2xl); } }

/* Podmínky ve shrnutí a chyby formuláře */
.buy__errors { margin-top: var(--space-4); }
.terms-box { margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--color-surface-soft); font-size: var(--font-size-sm); }
.terms-box summary { min-height: var(--tap-target); display: flex; align-items: center; cursor: pointer; font-weight: var(--font-weight-semibold); color: var(--color-brand-strong); }
.terms-box summary:focus-visible { outline: 3px solid var(--color-brand-strong); outline-offset: 2px; }
.terms-list { margin: 0 0 var(--space-2); padding-left: var(--space-5); }
.terms-list li { margin-bottom: var(--space-1); }
.summary .field { margin-bottom: var(--space-2); }
.input-suffix input { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }

/* Jediný povinný souhlas v objednávce: odkazy jsou přímo v popisku (klik na odkaz políčko nepřepne —
   interaktivní obsah uvnitř <label> aktivaci popisku nespouští). */
.check--consent { line-height: 1.6; }
.summary .field:has(> .check--consent) { margin-bottom: var(--space-4); }
.check--consent a { text-decoration: underline; text-decoration-thickness: 1px; }

/* Právní stránky (/podminky/, /osobni-udaje/): čitelná šířka řádku, kotvy, obsah, tabulka bez vodorovného posunu. */
.legal { max-width: calc(72ch + 2 * var(--space-5)); padding-top: var(--space-6); padding-bottom: var(--space-4); }
.legal__head { margin-bottom: var(--space-5); padding-bottom: var(--space-4); border-bottom: 3px solid var(--color-brand); }
.legal__eyebrow { margin-bottom: var(--space-2); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); letter-spacing: .08em; text-transform: uppercase; color: var(--color-brand-strong); }
.legal h1 { font-size: var(--font-size-3xl); overflow-wrap: break-word; hyphens: manual; }
.legal__meta { margin: 0; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.legal__meta strong { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); }
.legal__toc { margin: 0 0 var(--space-6); padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); background: var(--color-surface-soft); border: 1px solid var(--color-line); }
.legal__toc-title { font-size: var(--font-size-md); margin-bottom: var(--space-2); }
.legal__toc ol { margin: 0; padding-left: var(--space-5); columns: 2 16rem; column-gap: var(--space-6); }
.legal__toc li { break-inside: avoid; }
.legal__toc a { display: inline-block; padding: 3px 0; }
.legal__toc .legal__toc-extra { list-style: none; margin-left: calc(-1 * var(--space-5)); }
.legal__section { margin-bottom: var(--space-6); }
.legal h2 { font-size: var(--font-size-xl); margin: 0 0 var(--space-3); scroll-margin-top: var(--space-4); }
.legal__anchor { margin-left: var(--space-1); color: var(--color-text-muted); text-decoration: none; font-weight: var(--font-weight-regular); opacity: 0; transition: opacity .15s; }
.legal h2:hover .legal__anchor, .legal__anchor:focus { opacity: 1; }
.legal p, .legal li { max-width: 72ch; }
.legal a { overflow-wrap: anywhere; }
.legal__list { margin: 0 0 var(--space-4); padding-left: var(--space-5); }
.legal__list li { margin-bottom: var(--space-2); padding-left: var(--space-1); }
.legal__list li::marker { color: var(--color-text-muted); font-feature-settings: "tnum" 1; }
.legal strong { color: var(--color-text-strong); }

.legal-table { width: 100%; margin: 0 0 var(--space-4); border-collapse: collapse; font-size: var(--font-size-sm); line-height: 1.5; }
.legal-table th, .legal-table td { padding: var(--space-3); text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-line); }
.legal-table thead th { background: var(--color-surface-soft); color: var(--color-text-strong); font-weight: var(--font-weight-semibold); border-bottom: 2px solid var(--color-line); }
.legal-table tbody th { color: var(--color-text-strong); font-weight: var(--font-weight-semibold); width: 38%; }
@media (max-width: 639px) {
  .legal { padding-top: var(--space-5); }
  .legal h1 { font-size: var(--font-size-2xl); }
  .legal__toc { padding: var(--space-3) var(--space-4); }
  /* Tabulka → karty: řádek pod sebou, popisek sloupce z data-label. */
  .legal-table, .legal-table tbody, .legal-table tr, .legal-table th, .legal-table td { display: block; width: auto; }
  .legal-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .legal-table tr { margin-bottom: var(--space-3); padding: var(--space-3) var(--space-4); border: 1px solid var(--color-line); border-radius: var(--radius-md); }
  .legal-table th, .legal-table td { padding: var(--space-1) 0; border: 0; }
  .legal-table tbody th { width: auto; padding-bottom: var(--space-2); font-size: var(--font-size-md); }
  .legal-table td::before { content: attr(data-label) ": "; color: var(--color-text-muted); font-weight: var(--font-weight-semibold); }
}

/* Příloha: vzorový formulář odstoupení — přehledný rámeček. */
.legal__form { margin: var(--space-7) 0 var(--space-4); padding: var(--space-5); border: 1px solid var(--color-line); border-left: 4px solid var(--color-brand); border-radius: var(--radius-md); background: var(--color-surface-soft); }
.legal__form h2 { font-size: var(--font-size-lg); }
.legal__form-note { font-size: var(--font-size-sm); color: var(--color-text-muted); font-style: italic; }
.legal__fields { margin: 0; }
.legal__fields > div { display: flex; flex-wrap: wrap; gap: 0 var(--space-3); align-items: baseline; padding: var(--space-2) 0; border-bottom: 1px dashed var(--color-border-control); }
.legal__fields dt { color: var(--color-text-strong); font-weight: var(--font-weight-medium); }
.legal__fields dd { margin: 0; color: var(--color-text-muted); letter-spacing: .05em; }
@media (max-width: 639px) { .legal__form { padding: var(--space-4); } }

/* Tisk právních stránek: jen text, bez navigace a dekorací. */
@media print {
  body.page-legal { background: #FFFFFF; color: #000000; font-size: 10.5pt; }
  .page-legal .skip-link, .page-legal .site-header__links, .page-legal .site-footer nav, .page-legal .legal__toc,
  .page-legal .legal__anchor, .page-legal .demo-banner { display: none !important; }
  .page-legal .site-header { border: 0; }
  .page-legal .site-footer { margin-top: 12pt; padding: 6pt 0 0; background: none; border-top: 1px solid #999999; color: #333333; }
  .page-legal .container { max-width: none; padding: 0; }
  .page-legal .legal { padding-top: 6pt; }
  .page-legal .legal__head { border-bottom: 2px solid #000000; }
  .page-legal h1, .page-legal h2, .page-legal strong, .page-legal .legal__eyebrow { color: #000000; }
  .page-legal h1 { font-size: 18pt; }
  .page-legal h2 { font-size: 12.5pt; break-after: avoid; }
  .page-legal a { color: #000000; text-decoration: none; }
  .page-legal .legal-table th, .page-legal .legal-table td { border-bottom: 1px solid #999999; }
  .page-legal .legal-table thead th { background: none; }
  .page-legal .legal-table tr, .page-legal .legal__list li { break-inside: avoid; }
  .page-legal .legal__form { break-inside: avoid; background: none; border: 1px solid #000000; }
  @page { margin: 15mm; }
}

/* --- Vstupní brána dema (core/demo_gate.html) — karta ve stylu přihlášení --- */
body.public.page-gate { background: var(--color-surface-soft); }
.gate { padding-top: var(--space-7); padding-bottom: var(--space-7); }
.gate__card { max-width: 440px; margin: 0 auto; padding: var(--space-6) var(--space-5); background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.gate__title { font-size: var(--font-size-2xl); margin: 0 0 var(--space-3); }
.gate__lead { margin: 0 0 var(--space-5); color: var(--color-text-muted); }
.gate__form .field { margin-bottom: var(--space-5); }
@media (max-width: 479px) {
  .gate { padding-top: var(--space-5); padding-bottom: var(--space-5); }
  .gate__card { padding: var(--space-5) var(--space-4); }
}

/* Odstoupení od smlouvy (/odstoupeni/, §1830a OZ). Mobil 375: jeden sloupec, formulář pod vysvětlením. */
.withdrawal { padding-top: var(--space-6); padding-bottom: var(--space-7); }
.withdrawal__head { max-width: 72ch; margin-bottom: var(--space-5); }
.withdrawal__head h1 { font-size: var(--font-size-3xl); }
.withdrawal__grid { display: grid; gap: var(--space-6); align-items: start; }
@media (min-width: 900px) { .withdrawal__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } }
.withdrawal__info h2, .withdrawal__form h2 { font-size: var(--font-size-xl); margin-bottom: var(--space-4); }
.withdrawal__facts { list-style: none; margin: 0 0 var(--space-4); padding: 0; display: grid; gap: var(--space-3); }
.withdrawal__facts li { display: flex; gap: var(--space-3); align-items: flex-start; }
.withdrawal__facts .icon { flex: none; width: 22px; height: 22px; margin-top: 2px; color: var(--color-brand-strong); }
.withdrawal__statement { margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); border-left: 4px solid var(--color-brand); background: var(--color-surface-soft); border-radius: var(--radius-md); font-weight: var(--font-weight-semibold); }
.withdrawal__form .alert { margin-bottom: var(--space-4); }
.withdrawal__note { margin: var(--space-3) 0 0; }
.withdrawal__done { margin: 0; }
.withdrawal__done .next h3 { font-size: var(--font-size-md); margin: 0 0 var(--space-2); }
@media (max-width: 639px) { .withdrawal__head h1 { font-size: var(--font-size-2xl); } }

/* Stránka odkazu ke stažení podkladů pro účetní (2026-10-31) */
.package { display: flex; justify-content: center; padding-top: var(--space-7); padding-bottom: var(--space-8); }
.package__card { max-width: 560px; width: 100%; text-align: center; padding: var(--space-6) var(--space-5); }
.package__card h1 { font-size: var(--font-size-2xl); margin: var(--space-3) 0 var(--space-2); }
.package__lead { font-size: var(--font-size-lg); color: var(--color-text); margin-bottom: var(--space-5); }
.package__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--color-surface-select); color: var(--color-brand-strong); }
.package__icon--muted { background: var(--color-surface-soft); color: var(--color-text-muted); }
.package__card .btn-lg { margin-bottom: var(--space-3); }
.package__card .small { margin: var(--space-2) auto 0; max-width: 44ch; }

/* Časté otázky na prodejní stránce (2026-11-04) */
.faq { margin: var(--space-8) 0; padding: var(--space-5) var(--space-6) var(--space-3); border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-md); }
.faq h2 { margin: 0 0 var(--space-2); font-size: var(--font-size-xl); }
.faq__item { border-top: 1px solid var(--color-line); }
.faq__item:first-of-type { border-top: 0; }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; font-weight: var(--font-weight-semibold); color: var(--color-text-strong); cursor: pointer; list-style: none; border-radius: var(--radius-md); transition: color .15s ease; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: ""; flex: none; width: 9px; height: 9px; margin-right: 4px; border-right: 2px solid var(--color-brand-strong); border-bottom: 2px solid var(--color-brand-strong); transform: rotate(45deg) translate(-2px, -2px); transition: transform .15s ease; }
.faq__item[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.faq__item summary:hover { color: var(--color-brand-strong); }
.faq__item summary:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.faq__item p { max-width: 68ch; margin: 0; padding: 0 var(--space-5) var(--space-4) 0; color: var(--color-text); }
@media (max-width: 639px) {
  .faq { margin: var(--space-6) 0; padding: var(--space-4) var(--space-4) var(--space-2); }
  .faq__item summary { padding: var(--space-3) 0; }
}
@media (prefers-reduced-motion: reduce) { .faq__item summary, .faq__item summary::after { transition: none; } }
