/* adella.com v3: the night. Dark header and heroes, promise chapters with the product as proof, the turn to Linen at the sign-up.
   Loaded after site.css and adella.css; it overrides the block-set styles the pages no longer use. */
:root { --night: #3f3737; --night-line: rgba(251, 243, 234, .12); --night-soft: rgba(251, 243, 234, .06); }

/* Header: dark, always */
header.site { background: var(--night); color: var(--linen); }
header.site.scrolled { background: rgba(63, 55, 55, .94); box-shadow: 0 1px 0 var(--night-line), 0 8px 24px rgba(0, 0, 0, .25); backdrop-filter: blur(12px); }
header.site .brand img { filter: brightness(0) invert(1) sepia(.15); }
.nav-links a, .nav-links .signin, .menu-btn { color: var(--linen); }
.nav-links a:hover, .nav-links a.current, .menu-btn:hover, .menu-btn.current, .menu.open .menu-btn { color: var(--punch); }
.nav-links .btn-pill.fill { background: var(--linen); color: var(--matterhorn); border-color: var(--linen); }
.nav-links .btn-pill.fill:hover { background: var(--punch); border-color: var(--punch); color: var(--linen); }
.nav-toggle { border-color: var(--linen); color: var(--linen); }
.mega { color: var(--matterhorn); }
.product-bar { background: var(--night); border-color: var(--night-line); color: var(--linen); }
.product-bar nav a { color: var(--linen-a); }
.product-bar nav a:hover, .product-bar nav a.current { color: var(--punch); }

/* Heroes */
.product-hero .hero-copy .eyebrow.category, .hero2 .eyebrow.category { color: var(--punch); }
.hero2.solo .sub { max-width: 760px; }
.band.dark { background: var(--night); }
.hero-band.product-hero { padding: 104px 0 96px; background: radial-gradient(ellipse at 15% 0%, rgba(255, 71, 46, .20), transparent 55%), var(--night); }
.hero2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 72px; }
.hero2.solo { grid-template-columns: minmax(0, 1fr); }
.hero2.solo .hero-copy { max-width: 1040px; }
.product-hero .h1, .hero2 .h1 { font-size: 60px; line-height: 1.02; letter-spacing: -1.8px; }
.hero2.solo .h1 { font-size: 68px; }
.product-hero .sub, .hero2 .sub { font-family: var(--font-display); font-weight: 400; font-size: 20px; line-height: 30px; color: var(--linen-a); max-width: 600px; }
.hero2 .hero-cta .trust { color: var(--linen-a); }
.hero-surface .surface { box-shadow: 0 40px 90px rgba(0, 0, 0, .45); }
.hero-surface .surface.night { box-shadow: 0 40px 90px rgba(0, 0, 0, .45); }

/* Promise chapters */
.chapters { background: var(--night); color: var(--linen); }
.chapter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 72px; align-items: center; padding: 112px var(--gutter); min-height: 72vh; border-top: 1px solid rgba(251, 243, 234, .08); max-width: calc(var(--max) + 2 * var(--gutter)); margin: 0 auto; }
.chapters > .chapter:nth-child(odd) { background: radial-gradient(ellipse at 85% 50%, rgba(255, 71, 46, .10), transparent 50%); }
.chapter .ch-num { display: flex; align-items: center; gap: 14px; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; color: var(--linen-a); margin-bottom: 22px; }
.chapter .ch-num span { font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--punch); border: 1px solid var(--punch); border-radius: 14px; padding: 3px 10px; }
.chapter .ch-h2 { font-family: var(--font-display); font-weight: 500; font-size: 52px; line-height: 1.04; letter-spacing: -1.5px; color: var(--linen); }
.chapter .ch-how { margin-top: 22px; font-size: 18px; line-height: 28px; color: var(--linen-a); max-width: 520px; }
.chapter .ch-how a, .chapter .ch-how a.pl { color: var(--linen); text-decoration: underline; text-decoration-color: var(--punch); }
.chapter .ch-who { margin-top: 18px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--punch); }
.chapter .vis { min-width: 0; }
.chapter .vis .surface { box-shadow: 0 40px 90px rgba(0, 0, 0, .45); }
.chapter .vis .surface.night { box-shadow: 0 40px 90px rgba(0, 0, 0, .45); }
.chapter .vis .dark-card { background: var(--night-soft); border: 1px solid var(--night-line); border-radius: 20px; padding: 28px; }
.chapter .vis .dark-card .leak .lbl, .chapter .vis .dark-card .leak .val, .chapter .vis .dark-card .leak-total, .chapter .vis .dark-card .slider { color: var(--linen); }
.chapter .vis .dark-card .leak-levels .track { background: rgba(251, 243, 234, .14); }
.chapter .vis .dark-card .leak-total { border-color: rgba(251, 243, 234, .2); }
.chapter .vis .dark-card .leak-total .muted { color: var(--linen-a); }
.chapter .vis .dark-card .cardfoot { margin-top: 16px; font-size: 13px; line-height: 19px; color: var(--linen-a); }
.chapter .vis .two { display: flex; flex-direction: column; gap: 20px; }
.chapter .vis .two .surface:first-child { width: 86%; }
.chapter .vis .two .surface:last-child { width: 86%; margin-left: 14%; margin-top: -40px; position: relative; }

/* Dawn: the turn to Linen and the sign-up */
.dawn { background: linear-gradient(180deg, var(--night) 0%, #6b5a56 12%, #d9b9a6 30%, var(--linen) 48%); color: var(--matterhorn); padding: 200px 0 72px; }
.dawn .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 72px; align-items: center; }
.dawn .ch-h2 { color: var(--matterhorn); }
.dawn .ch-how { color: var(--ink-muted); }
.dawn .trust { color: var(--ink-muted); }
.dawn .rules-line { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--linen-a); font-size: 14px; line-height: 22px; color: var(--ink-muted); max-width: 520px; }
.dawn .surface { box-shadow: 0 30px 70px rgba(81, 71, 71, .18); }
.dawn .morning-live { gap: 8px; }
.live-findings .demo-record { margin-top: 18px; }
.live-findings .ledger { width: 100%; border-collapse: collapse; font-size: 13px; }
.live-findings .ledger th { text-align: left; font-weight: 400; color: var(--ink-muted); padding: 6px 8px; border-bottom: 1px solid var(--matterhorn); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.live-findings .ledger td { padding: 8px; border-bottom: 1px solid var(--linen-a); }
.live-findings .ledger tr.empty td { text-align: center; color: var(--ink-muted); }
.live-findings .ledger tr.new { opacity: 0; transform: translateY(6px); transition: opacity .5s, transform .5s; }
.live-findings .ledger tr.new.in { opacity: 1; transform: none; }
.live-findings .demo-findings .finding { background: var(--linen); }
.leak .slider { margin-bottom: 16px; }
.leak .leak-levels .track { background: var(--linen-a); }

/* Light sections after the dawn */
.tiles-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin-top: 32px; }
.ptile { display: flex; flex-direction: column; gap: 10px; padding: 22px; border: 1px solid var(--linen-a); border-radius: 18px; background: var(--white); text-decoration: none; transition: transform .2s, box-shadow .2s; }
.ptile:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(81, 71, 71, .12); }
.ptile .pname { font-family: var(--font-display); font-weight: 500; font-size: 16px; }
.ptile .pline { font-size: 13px; line-height: 19px; color: var(--ink-muted); }
.ptile .beta { margin-left: 6px; }
.logos-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 24px 40px; align-items: center; margin: 28px 0 16px; }
.logos-row img { max-height: 36px; width: auto; max-width: 100%; margin: 0 auto; opacity: .85; }
.prices { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 32px; }
.prices .lvl { display: flex; flex-direction: column; gap: 6px; padding: 24px; border-radius: 18px; background: var(--white); border: 1px solid var(--linen-a); text-decoration: none; color: inherit; }
.prices .lvl:hover { border-color: var(--punch); }
.prices .lname { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--punch); }
.prices .lprice { font-family: var(--font-display); font-weight: 500; font-size: 40px; line-height: 44px; }
.prices .lline { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
section.after { padding: 80px 0 96px; }
section.after .eyebrow { margin-top: 72px; }
section.after .eyebrow:first-child { margin-top: 0; }
section.after .small.muted { margin-top: 8px; }

/* Closing band and footer: the page ends in the night */
.redblock { padding: 0; background: var(--night); }
.redblock.on-linen { background: var(--night); }
.redblock .block { background: transparent; border-radius: 0; padding: 112px 40px 96px; gap: 32px; border-top: 1px solid var(--night-line); }
.redblock .display { color: var(--linen); text-transform: none; font-size: 56px; line-height: 1.04; letter-spacing: -1.6px; max-width: 980px; }
.redblock .note { color: var(--linen-a); }
footer { background: var(--night); color: var(--linen); border-top: 1px solid var(--night-line); }
footer .logo img { filter: brightness(0) invert(1) sepia(.15); }
footer .fine { color: var(--linen-a); }
footer .fine a { color: var(--linen); }
footer nav a:hover { color: var(--punch); }
footer nav.tiles a .app-icon { background: rgba(251, 243, 234, .12); }

/* Rules band: a slim, quiet version */
.rules-band { background: var(--night); border-top: 1px solid var(--night-line); }

/* Pricing hero: the plan cards sit on the dark hero's tail */
.plan.dark { background: var(--night); }

/* Phones and small screens */
@media (max-width: 1100px) {
  .hero2, .chapter, .dawn .wrap { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .chapter { min-height: 0; padding: 80px var(--gutter); }
  .chapter .vis .two .surface:first-child, .chapter .vis .two .surface:last-child { width: 100%; margin-left: 0; margin-top: 0; }
  .tiles-row, .prices { grid-template-columns: repeat(2, 1fr); }
  .logos-row { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
  .hero-band.product-hero { padding: 56px 0 56px; }
  .product-hero .h1, .hero2 .h1, .hero2.solo .h1 { font-size: 38px; letter-spacing: -1px; }
  .product-hero .sub, .hero2 .sub { font-size: 17px; line-height: 26px; }
  .chapter { padding: 56px var(--gutter); }
  .chapter .ch-h2 { font-size: 32px; letter-spacing: -.8px; }
  .chapter .ch-how { font-size: 16px; line-height: 25px; }
  .chapter > * { min-width: 0; }
  .dawn { padding: 120px 0 40px; }
  .dawn .wrap > * { min-width: 0; }
  .tiles-row, .prices { grid-template-columns: 1fr; }
  .logos-row { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .redblock .block { padding: 64px 16px 56px; }
  .redblock .display { font-size: 34px; letter-spacing: -.8px; }
  .live-findings .ledger th:nth-child(1), .live-findings .ledger td:nth-child(1), .live-findings .ledger th:nth-child(5), .live-findings .ledger td:nth-child(5) { display: none; }
  .leak-levels .bar { grid-template-columns: 100px 1fr 80px; }
  .surface .rec { display: block; overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .live-findings .ledger tr.new { transition: none; opacity: 1; transform: none; }
}

/* Dark list cards used as chapter proof (promises, quiet deals) */
.dark-card .k { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--punch); }
.dark-card .plist { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-direction: column; }
.dark-card .plist li { display: grid; grid-template-columns: 1.1fr 1.4fr auto; gap: 16px; align-items: center; padding: 14px 0; border-top: 1px solid var(--night-line); font-size: 14px; }
.dark-card .plist .who { font-family: var(--font-display); font-weight: 500; color: var(--linen); }
.dark-card .plist .what { color: var(--linen-a); }
.dark-card .plist .due { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--linen-a); border: 1px solid var(--night-line); border-radius: 12px; padding: 3px 10px; white-space: nowrap; }
.dark-card .plist .due.ok { color: var(--linen); border-color: rgba(251, 243, 234, .4); }
.dark-card .plist .due.late { color: var(--punch); border-color: var(--punch); }
@media (max-width: 640px) { .dark-card .plist li { grid-template-columns: 1fr auto; } .dark-card .plist .what { grid-column: 1 / -1; } }
.hero2 .hero-cta.paths { flex-direction: row; flex-wrap: wrap; gap: 12px; }
@media (max-width: 640px) { .hero2 .hero-cta.paths { flex-direction: column; align-items: stretch; } }

/* Accessibility: WCAG 2.2 AA text contrast. Punch stays for fills and large type; small text uses the two text reds. */
:root { --punch-text: #C93318; --punch-text-dark: #FF8C7A; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.eyebrow, .prose a, a.pl, .card a, .stack a, .small a, .muted a, p a, li a, td a, .finding .k, .k, .beta, .ai-label, .hit, .yes, .lname, .accent, .cardfoot a, .fine a, .surface .finding .k, .demo-findings .finding .k, .live-findings .finding .k,
.leak-total strong, .ledger .hit, .rec .hit, .compare .yes, .plan .eyebrow, .section-head .eyebrow, .mega .eyebrow, .ptile .beta, .lvl .lname, .toc .num, .steps .n, .fnum, .surface .plan .k, .sbar .k { color: var(--punch-text); }
.btn-big.linen, .btn-pill.linen { color: var(--punch-text); }
.band.dark .eyebrow, .chapters .eyebrow, .hero2 .eyebrow, .product-hero .eyebrow, .product-hero .hero-copy .eyebrow.category, .hero2 .eyebrow.category, .chapter .ch-num span, .chapter .ch-who, .dark-card .k, .dark-card .plist .due.late,
.surface.night .k, .surface.night .finding .k, .surface.night .finding .amt, .surface.night .accounts .state, .surface.night .amt, .story .k, .story .amt, .story .stamp b, .rules .n, .rules-band .eyebrow,
header.site .nav-links a.current, header.site .menu-btn.current, header.site .menu.open .menu-btn, .product-bar nav a.current, .product-bar .beta, header.site .beta, footer .accent, footer nav a.accent,
.band.dark a.pl, .band.dark .prose a, .band.dark p a, .chapter .ch-how a, .plan.dark .eyebrow, .plan.dark .ai-label, .plan.dark .beta, .plan.dark a, .redblock a, .redblock .note a, .ledger-card .hit, .band.dark .beta, .band.dark .k, .band.dark .hit, .band.dark .trust a, .mega-side .eyebrow.dark, .dawn .surface.night .k, .hero2 .trust a, .product-hero a.pl, .hero2 .third a, .hero2 .sub a.pl { color: var(--punch-text-dark); }
.chapter .ch-num span { border-color: var(--punch-text-dark); }
.band.dark .beta, .product-bar .beta, header.site .beta, .plan.dark .beta { border-color: var(--punch-text-dark); }
.mega .eyebrow, .mega a.pl, .mega .beta { color: var(--punch-text); border-color: var(--punch-text); }
.dawn .eyebrow { color: var(--punch-text); }
.dawn .surface:not(.night) .finding .k, .dawn .ledger .hit { color: var(--punch-text); }
.hero2 .sub a.pl, .hero2 .third a, .product-hero .hero-copy a { color: var(--linen); text-decoration-color: var(--punch-text-dark); }

.app-icon.insight { background: var(--punch-text); }
.status.out-of-date, .gate.flag, .surface .vrow .flag { background: var(--punch-text); color: var(--linen); }
.side-card .eyebrow, .request-card .eyebrow { color: var(--punch-text-dark); }
/* second pass */
:root { --punch-text-dark: #FFA093; }
.surface:not(.night) .k, .surface:not(.night) .finding .k, .surface:not(.night) .amt, .surface:not(.night) .finding .amt, .surface:not(.night) .hit, .surface:not(.night) .eyebrow, .surface:not(.night) .beta, .surface:not(.night) a, .surface:not(.night) .src, .surface:not(.night) th.punch, .surface:not(.night) .plan .k,
.demo-findings .finding .amt, .live-findings .finding .amt, .demo-findings .finding .k, .live-findings .finding .k, td.hit, .src, th.punch, .plan .ai-label, .plan .benefits .eyebrow, .plan .eyebrow, .ai-level .ai-label, .compare th.hi { color: var(--punch-text); }
.surface:not(.night) .muted, .surface:not(.night) .sbar .muted, .surface:not(.night) td.muted, .surface:not(.night) .sfine, .surface:not(.night) .sline { color: var(--ink-muted); }
.surface.night .amt small, .story .amt small, .surface.night .finding .amt small { color: var(--linen-a); }
.surface.night .sfoot .pill { background: var(--punch-text); color: var(--linen); }
.surface .status.out-of-date, .surface .gate.flag, .surface .vrow .flag { background: var(--punch-text); color: var(--linen); }
.compare th.hi small, .compare th small { color: #5f5148; }
.plan.dark .btn-pill { color: var(--punch-text); }
a.btn-big, .btn-big { color: var(--linen); } a.btn-big.linen, .btn-big.linen { color: var(--punch-text); } a.btn-big.outline-linen, .btn-big.outline-linen { color: var(--linen); }
a.btn-pill, .btn-pill { color: var(--matterhorn); } a.btn-pill.fill, .btn-pill.fill, .nav-links .btn-pill.fill:hover { color: var(--linen); } .nav-links .btn-pill.fill { color: var(--matterhorn); } .plan.dark .btn-pill { color: var(--punch-text); }
.band.dark .btn-pill, .chapters .btn-pill, .redblock .btn-pill { color: var(--linen); border-color: var(--linen); }
.surface .rec.light .hit, table.data th.punch, .plan .ai-level .ai-label, table.compare thead th.hi, .surface .rec .hit { color: var(--punch-text); }
.surface .mrow .status.out-of-date { background: var(--punch-text); }
.plan.dark .benefits .eyebrow, .plan.dark .ai-level .ai-label, .plan.dark .eyebrow { color: var(--punch-text-dark); }
.story .rec .hit, .surface.night .rec .hit { color: var(--punch-text-dark); }
table.compare thead th.hi { color: #B82B12; }
table[tabindex="0"]:focus-visible, .compare-wrap:focus-visible { outline: 3px solid var(--punch); outline-offset: 2px; }

/* The function map: the problem first, the product second, the status, the action */
.function-map { padding: 96px 0 48px; background: var(--white); }
.function-map .h2 { margin-top: 12px; max-width: 900px; }
.fm { list-style: none; padding: 0; margin: 40px 0 0; border-top: 2px solid var(--matterhorn); }
.fm-row { display: grid; grid-template-columns: 170px minmax(0, 1fr) 260px 230px; gap: 32px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--linen-a); }
.fm-fn { display: flex; flex-direction: column; gap: 6px; }
.fm-name { font-family: var(--font-display); font-weight: 500; font-size: 20px; }
.fm-status { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-muted); }
.fm-row.fm-live .fm-status { color: var(--punch-text); }
.fm-problem .h3 { font-size: 22px; line-height: 28px; }
.fm-problem p + p { margin-top: 6px; font-size: 14px; line-height: 21px; color: var(--ink-muted); }
.fm-product { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 500; font-size: 15px; }
.fm-product a { text-decoration: none; color: var(--matterhorn); }
.fm-product a:hover { color: var(--punch-text); }
.fm-row.fm-coming .fm-product .app-icon { background: transparent; border: 1px dashed var(--linen-c); color: var(--ink-muted); }
.fm-row.fm-coming .fm-product span.nolink { color: var(--ink-muted); }
.fm-action { justify-self: end; }
.fm-action .btn-pill { padding: 0 22px; font-size: 14px; white-space: normal; text-align: center; height: auto; min-height: 44px; line-height: 1.2; }
.app-icon.pm { background: var(--matterhorn); }
@media (max-width: 1100px) { .fm-row { grid-template-columns: 140px 1fr; gap: 16px 24px; } .fm-product { grid-column: 2; } .fm-action { grid-column: 2; justify-self: start; } }
@media (max-width: 640px) { .function-map { padding: 56px 0 24px; } .fm-row { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; } .fm-product, .fm-action { grid-column: 1; } .fm-problem .h3 { font-size: 19px; line-height: 25px; } }

/* ------------------------------------------------------------- Homepage with people (preview at /preview/people/) */
.p-hero { position: relative; min-height: 86vh; display: flex; align-items: flex-end; background: var(--night); color: var(--linen); overflow: hidden; }
.p-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 65% 40%; }
.p-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(63, 55, 55, .94) 0%, rgba(63, 55, 55, .78) 42%, rgba(63, 55, 55, .25) 100%), linear-gradient(0deg, rgba(63, 55, 55, .9) 0%, rgba(63, 55, 55, 0) 50%); }
.p-hero-copy { position: relative; padding-top: 120px; padding-bottom: 96px; max-width: calc(var(--max) + 2 * var(--gutter)); display: flex; flex-direction: column; gap: 24px; }
.p-hero-copy .h1 { color: var(--linen); font-size: 60px; line-height: 1.02; letter-spacing: -1.8px; max-width: 900px; }
.p-hero-copy .sub { font-family: var(--font-display); font-size: 20px; line-height: 30px; color: var(--linen-a); max-width: 640px; }
.p-hero-copy .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.p-hero-copy .trust { color: var(--linen-a); }
.p-logos { background: var(--linen); padding: 48px 0 40px; border-bottom: 1px solid var(--linen-a); }
.p-logos .logos-row { margin: 20px 0 12px; }
.p-chapter { background: var(--linen); padding: 112px 0; }
.p-chapter:nth-of-type(odd) { background: var(--white); }
.p-chapter .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 72px; align-items: center; }
.p-chapter.flip .wrap .copy { order: 2; }
.p-chapter .ch-num { color: var(--ink-muted); }
.p-chapter .ch-num span { color: var(--punch-text); border-color: var(--punch-text); }
.p-chapter .ch-h2 { color: var(--matterhorn); }
.p-chapter .ch-how { color: var(--ink-muted); }
.p-chapter .ch-how a { color: var(--punch-text); text-decoration-color: var(--punch-text); }
.p-chapter .ch-who { color: var(--punch-text); }
.photo { margin: 0; border-radius: 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(81, 71, 71, .18); aspect-ratio: 16 / 10; }
.photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.receipt { list-style: none; padding: 0; margin: 24px 0 0; border-top: 2px solid var(--matterhorn); max-width: 520px; }
.receipt li { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--linen-a); font-size: 15px; line-height: 22px; }
.receipt .r-k { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-muted); padding-top: 3px; }
.receipt .r-v { font-family: var(--font-display); font-weight: 500; color: var(--matterhorn); }
.p-dawn { position: relative; background: var(--linen); padding: 112px 0; border-top: 1px solid var(--linen-a); }
.p-dawn .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 72px; align-items: center; }
.p-dawn .ch-h2 { color: var(--matterhorn); }
.p-dawn .ch-how { color: var(--ink-muted); }
.p-dawn .surface { box-shadow: 0 30px 70px rgba(81, 71, 71, .18); }
@media (max-width: 1100px) { .p-chapter .wrap, .p-dawn .wrap { grid-template-columns: 1fr; gap: 40px; } .p-chapter.flip .wrap .copy { order: 0; } }
@media (max-width: 640px) {
  .p-hero { min-height: 0; }
  .p-hero-copy { padding-top: 64px; padding-bottom: 56px; }
  .p-hero-copy .h1 { font-size: 38px; letter-spacing: -1px; }
  .p-hero-copy .sub { font-size: 17px; line-height: 26px; }
  .p-hero-copy .hero-cta { flex-direction: column; align-items: stretch; }
  .p-chapter, .p-dawn { padding: 56px 0; }
  .photo { border-radius: 16px; }
  .receipt li { grid-template-columns: 1fr; gap: 2px; }
}
.p-hero-copy { width: 100%; }
.p-chapter .ch-num, .p-dawn .ch-num { display: flex; align-items: center; gap: 14px; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 22px; }
.p-chapter .ch-num span { font-family: var(--font-display); font-weight: 600; font-size: 14px; border: 1px solid var(--punch-text); border-radius: 14px; padding: 3px 10px; }
.p-chapter .ch-h2, .p-dawn .ch-h2 { font-family: var(--font-display); font-weight: 500; font-size: 48px; line-height: 1.04; letter-spacing: -1.4px; }
.p-chapter .ch-how, .p-dawn .ch-how { margin-top: 22px; font-size: 18px; line-height: 28px; max-width: 520px; }
.p-chapter .ch-who { margin-top: 18px; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
@media (max-width: 640px) { .p-chapter .ch-h2, .p-dawn .ch-h2 { font-size: 32px; letter-spacing: -.8px; } .p-chapter .ch-how, .p-dawn .ch-how { font-size: 16px; line-height: 25px; } }

/* ------------------------------------------------------------- Homepage options (preview) */
.o-index { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 24px; max-width: 820px; }
.o-index li a { color: var(--punch-text); text-decoration: none; }
.o-index li p { margin-top: 6px; color: var(--ink-muted); }
.o-three { background: var(--white); padding: 96px 0; }
.o-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 28px; }
.o-card { background: var(--linen); border-radius: 20px; padding: 28px; }
.o-time { font-family: var(--font-display); font-weight: 600; font-size: 14px; color: var(--punch-text); letter-spacing: .04em; margin-bottom: 8px; }
.o-card .receipt { max-width: none; margin-top: 16px; border-top-color: var(--linen-c); }
.o-card .receipt li { grid-template-columns: 120px 1fr; font-size: 14px; line-height: 20px; }
.o-dawn { background: var(--linen); padding: 112px 0; border-top: 1px solid var(--linen-a); }
.o-dawn .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 72px; align-items: center; }
.o-dawn .ch-h2 { font-family: var(--font-display); font-weight: 500; font-size: 44px; line-height: 1.06; letter-spacing: -1.2px; color: var(--matterhorn); }
.o-dawn .ch-how { margin-top: 18px; font-size: 18px; line-height: 28px; color: var(--ink-muted); max-width: 520px; }
.o-dawn .surface { box-shadow: 0 30px 70px rgba(81, 71, 71, .18); }
.o-then { background: var(--white); padding: 80px 0; border-top: 1px solid var(--linen-a); }
.o-prodline { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 28px; }
.o-prodline a { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-family: var(--font-display); font-weight: 500; font-size: 16px; padding: 10px 16px 10px 10px; border: 1px solid var(--linen-a); border-radius: 30px; }
.o-prodline a:hover { border-color: var(--punch-text); color: var(--punch-text); }
.o-suite { background: var(--white); padding: 96px 0; }
.o-plist { list-style: none; padding: 0; margin: 40px 0 0; border-top: 2px solid var(--matterhorn); }
.o-prow { display: grid; grid-template-columns: 260px minmax(0, 1fr) 220px; gap: 32px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--linen-a); }
.photo.small { aspect-ratio: 16 / 10; border-radius: 16px; box-shadow: none; }
.o-pname { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-family: var(--font-display); font-weight: 500; font-size: 17px; margin-bottom: 10px; }
.o-pname a { text-decoration: none; }
.o-status { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-muted); }
.o-pact { justify-self: end; }
.o-mhero { background: radial-gradient(ellipse at 15% 0%, rgba(255, 71, 46, .20), transparent 55%), var(--night); color: var(--linen); padding: 104px 0 96px; }
.o-mhero .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 72px; align-items: center; }
.o-mhero .h1 { color: var(--linen); font-size: 68px; line-height: 1; letter-spacing: -2px; }
.o-mhero .sub { font-family: var(--font-display); font-size: 20px; line-height: 30px; color: var(--linen-a); margin-top: 24px; max-width: 560px; }
.o-mhero .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
.o-mhero .trust { margin-top: 16px; color: var(--linen-a); }
.o-mhero .eyebrow.category { color: var(--punch-text-dark); }
.o-morning { background: var(--white); color: var(--matterhorn); border-radius: 22px; padding: 26px 28px; box-shadow: 0 40px 90px rgba(0, 0, 0, .45); display: flex; flex-direction: column; gap: 14px; }
.o-mhead { display: flex; justify-content: space-between; font-size: 13px; padding-bottom: 12px; border-bottom: 1px solid var(--linen-a); font-family: var(--font-display); font-weight: 500; }
.o-mcard { background: var(--linen); border-radius: 14px; padding: 16px 18px; font-size: 14px; line-height: 21px; }
.o-mcard p + p { margin-top: 6px; }
.o-mcard .o-mk { display: flex; align-items: center; gap: 10px; font-family: var(--font-display); font-weight: 500; font-size: 16px; margin-bottom: 8px; }
.o-mcard .btn-pill { margin-top: 12px; height: 36px; padding: 0 18px; font-size: 14px; }
@media (max-width: 1100px) { .o-grid3 { grid-template-columns: 1fr; } .o-dawn .wrap, .o-mhero .wrap { grid-template-columns: 1fr; gap: 40px; } .o-prow { grid-template-columns: 1fr; } .o-pact { justify-self: start; } .photo.small { max-width: 420px; } }
@media (max-width: 640px) { .o-three, .o-suite { padding: 56px 0; } .o-dawn { padding: 56px 0; } .o-dawn .ch-h2 { font-size: 32px; } .o-mhero { padding: 56px 0; } .o-mhero .h1 { font-size: 44px; letter-spacing: -1.2px; } .o-then { padding: 48px 0; } }
.o-mcard .o-mk { display: block; }
.o-mcard .o-mk .app-icon { display: inline-flex; vertical-align: middle; margin-right: 10px; }
.o-mcard .o-mk a { color: var(--matterhorn); text-decoration-color: var(--punch-text); }
.o-prow { grid-template-columns: 220px minmax(0, 1fr) 220px; }
.o-fn { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--punch-text); margin-bottom: 8px; }
.o-how { margin-top: 8px; font-size: 15px; line-height: 23px; color: var(--ink-muted); max-width: 640px; }
.o-pcopy .o-pname { margin: 12px 0 0; font-size: 15px; }
.o-pcopy .o-pname a { color: var(--matterhorn); }

/* The hero, ruled 5 Oct 2026: category first */
.hero-cat .p-hero-copy { gap: 20px; padding-top: 112px; }
.cat-eyebrow { font-size: 15px; text-transform: uppercase; letter-spacing: .08em; color: var(--linen-a); }
.hero-cat .h1.cat { font-size: 84px; line-height: .98; letter-spacing: -2.6px; color: var(--linen); max-width: 1080px; }
.hero-cat .h1.cat::after { content: ""; display: block; width: 72px; height: 4px; background: var(--punch); margin-top: 26px; }
.cat-sentence { font-family: var(--font-display); font-weight: 500; font-size: 30px; line-height: 1.2; letter-spacing: -.5px; color: var(--linen); max-width: 860px; margin-top: 6px; }
.cat-intro { font-size: 19px; line-height: 29px; color: var(--linen-a); max-width: 760px; margin-top: 2px; }
.cat-list { list-style: none; padding: 0; margin: 10px 0 6px; max-width: 760px; border-top: 1px solid rgba(251, 243, 234, .18); }
.cat-list li { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid rgba(251, 243, 234, .18); font-size: 17px; line-height: 26px; color: var(--linen-a); }
.cat-list .k { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--punch-text-dark); padding-top: 6px; }
.cat-list .v { color: var(--linen); }
.hero-cat .hero-cta { margin-top: 8px; }
@media (max-width: 1100px) { .hero-cat .h1.cat { font-size: 64px; letter-spacing: -2px; } .cat-sentence { font-size: 26px; } }
@media (max-width: 640px) { .cat-intro { font-size: 17px; line-height: 26px; } .hero-cat .p-hero-copy { padding-top: 56px; } .hero-cat .h1.cat { font-size: 44px; letter-spacing: -1.4px; } .hero-cat .h1.cat::after { margin-top: 18px; } .cat-sentence { font-size: 21px; line-height: 1.25; } .cat-list li { grid-template-columns: 1fr; gap: 4px; font-size: 16px; line-height: 24px; } }

/* Areas section under the locked hero (5 Oct 2026) */
.areas { background: var(--white); padding: 96px 0 88px; }
.ar-eyebrow { font-size: 15px; text-transform: uppercase; letter-spacing: .08em; color: var(--punch-text); }
.ar-h2 { font-family: var(--font-display); font-weight: 500; font-size: 56px; line-height: 1.02; letter-spacing: -1.8px; color: var(--matterhorn); max-width: 900px; margin-top: 14px; }
.ar-h2::after { content: ""; display: block; width: 72px; height: 4px; background: var(--punch); margin-top: 22px; }
.ar-sub { font-family: var(--font-display); font-weight: 500; font-size: 22px; line-height: 1.3; letter-spacing: -.3px; color: var(--matterhorn); max-width: 760px; margin-top: 18px; }
.ar-list { list-style: none; padding: 0; margin: 48px 0 0; border-top: 2px solid var(--matterhorn); }
.ar-row { display: grid; grid-template-columns: 170px 1fr 220px; gap: 32px; padding: 30px 0; border-bottom: 1px solid var(--linen-a); align-items: start; }
.ar-k { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--punch-text); padding-top: 8px; }
.ar-promise { font-family: var(--font-display); font-weight: 500; font-size: 26px; line-height: 1.2; letter-spacing: -.4px; color: var(--matterhorn); max-width: 680px; }
.ar-line { font-size: 17px; line-height: 26px; color: var(--ink-muted); max-width: 680px; margin-top: 10px; }
.ar-app { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-size: 15px; }
.ar-app a { color: var(--matterhorn); font-weight: 500; text-decoration: none; } .ar-app a:hover, .ar-app a:focus-visible { text-decoration: underline; }
.ar-status { font-size: 13px; color: var(--ink-muted); }
.ar-status.st-live { color: var(--punch-text); }
.ar-act { display: flex; justify-content: flex-end; padding-top: 4px; }
@media (max-width: 1100px) { .ar-row { grid-template-columns: 140px 1fr; } .ar-act { grid-column: 2; justify-content: flex-start; } }
@media (max-width: 640px) { .areas { padding: 64px 0 56px; } .ar-h2 { font-size: 36px; letter-spacing: -1px; } .ar-sub { font-size: 18px; } .ar-list { margin-top: 32px; } .ar-row { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; } .ar-k { padding-top: 0; } .ar-promise { font-size: 22px; } .ar-line { font-size: 16px; line-height: 24px; } .ar-act { grid-column: 1; margin-top: 6px; } .ar-act .btn { width: 100%; text-align: center; } }

/* App cards under the locked hero (5 Oct 2026) */
.apps { background: var(--white); padding: 96px 0 88px; }
.ap-grid { list-style: none; padding: 0; margin: 44px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ap-card { display: flex; flex-direction: column; background: var(--linen); border: 1px solid var(--linen-a); border-radius: 18px; padding: 30px 30px 28px; }
.ap-card.st-live { grid-column: span 2; background: var(--matterhorn); color: var(--linen); border-color: var(--matterhorn); }
.ap-area { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--punch-text); }
.ap-card.st-live .ap-area { color: var(--punch-text-dark); }
.ap-name { display: flex; align-items: center; gap: 12px; margin-top: 12px; font-family: var(--font-display); font-weight: 500; font-size: 28px; letter-spacing: -.5px; line-height: 1.1; }
.ap-name a { color: inherit; text-decoration: none; }
.ap-name a:hover, .ap-name a:focus-visible { text-decoration: underline; }
.ap-status { font-size: 14px; color: var(--ink-muted); margin-top: 6px; }
.ap-card.st-live .ap-status { color: var(--linen-a); }
.ap-k { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-muted); margin-top: 22px; }
.ap-card.st-live .ap-k { color: var(--linen-a); }
.ap-does { font-size: 16px; line-height: 25px; margin-top: 6px; color: var(--matterhorn); }
.ap-card.st-live .ap-does { color: var(--linen); }
.ap-promise { font-family: var(--font-display); font-weight: 500; font-size: 24px; line-height: 1.2; letter-spacing: -.4px; margin-top: 6px; color: var(--matterhorn); }
.ap-card.st-live .ap-promise { color: var(--linen); font-size: 30px; max-width: 560px; }
.ap-act { margin-top: auto; padding-top: 26px; }
.ap-card.st-live .ap-act .btn { background: var(--linen); color: var(--punch-text); border-color: var(--linen); }
@media (max-width: 1100px) { .ap-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .apps { padding: 64px 0 56px; } .ap-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 28px; } .ap-card { padding: 24px 22px 22px; } .ap-card.st-live { grid-column: auto; } .ap-name { font-size: 24px; } .ap-promise, .ap-card.st-live .ap-promise { font-size: 22px; } .ap-act .btn { width: 100%; text-align: center; } }

.ap-reads { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ap-reads li { font-size: 14px; line-height: 20px; padding: 5px 12px; border-radius: 999px; border: 1px solid rgba(251, 243, 234, .35); color: var(--linen); }
.ap-card.st-live .ap-does { max-width: 720px; }

/* Homepage v3.3 sections after the locked apps section (5 Oct 2026) */
.who { background: var(--linen); padding: 96px 0 88px; border-top: 1px solid var(--linen-a); }
.wh-grid { list-style: none; padding: 0; margin: 44px 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.wh-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--linen-a); border-radius: 18px; padding: 30px 30px 28px; }
.wh-who { font-family: var(--font-display); font-weight: 500; font-size: 26px; line-height: 1.15; letter-spacing: -.4px; margin-top: 10px; color: var(--matterhorn); }
.wh-card .ap-act { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.wh-more { font-size: 15px; color: var(--matterhorn); }
.how { background: var(--white); padding: 96px 0 88px; }
.how-list { list-style: none; padding: 0; margin: 40px 0 0; max-width: 900px; border-top: 2px solid var(--matterhorn); }
.how-list li { display: grid; grid-template-columns: 170px 1fr; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--linen-a); font-size: 17px; line-height: 27px; }
.how-list .k { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--punch-text); padding-top: 6px; }
.how-list .v { color: var(--matterhorn); }
.how .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-big.outline { background: transparent; border: 1px solid var(--matterhorn); color: var(--matterhorn); }
.btn-big.outline:hover { background: var(--matterhorn); color: var(--linen); }
.cust { background: var(--linen); padding: 88px 0 72px; border-top: 1px solid var(--linen-a); }
.cust .logos-row { margin-top: 36px; }
.pricing-home { background: var(--white); padding: 96px 0 88px; }
.pricing-home .prices { margin-top: 40px; }
.close-band { background: var(--night); color: var(--linen); padding: 112px 0 104px; }
.close-h2 { font-family: var(--font-display); font-weight: 500; font-size: 64px; line-height: 1; letter-spacing: -2px; color: var(--linen); max-width: 980px; margin-top: 14px; }
.close-h2::after { content: ""; display: block; width: 72px; height: 4px; background: var(--punch); margin-top: 24px; }
.close-sub { font-family: var(--font-display); font-weight: 500; font-size: 24px; line-height: 1.3; color: var(--linen); max-width: 720px; margin: 22px 0 30px; }
.close-band .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }
.close-note { font-size: 15px; color: var(--linen-a); margin-top: 18px; }
@media (max-width: 1100px) { .wh-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .who, .how, .pricing-home { padding: 64px 0 56px; } .cust { padding: 56px 0 48px; }
  .wh-grid { margin-top: 28px; gap: 14px; } .wh-card { padding: 24px 22px 22px; } .wh-who { font-size: 22px; }
  .how-list li { grid-template-columns: 1fr; gap: 6px; font-size: 16px; line-height: 25px; } .how-list .k { padding-top: 0; }
  .how .hero-cta, .close-band .hero-cta { flex-direction: column; align-items: stretch; }
  .close-band { padding: 72px 0 64px; } .close-h2 { font-size: 40px; letter-spacing: -1.2px; } .close-sub { font-size: 19px; }
}

/* Talk to us: the lead form and dialog (5 Oct 2026) */
.talk-form { display: flex; flex-direction: column; gap: 16px; }
.tf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tf-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.tf-field label { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-muted); }
.tf-field input, .tf-field select, .tf-field textarea { font: inherit; font-size: 16px; line-height: 24px; padding: 11px 14px; border: 1px solid var(--linen-c); border-radius: 10px; background: var(--white); color: var(--matterhorn); width: 100%; box-sizing: border-box; }
.tf-field input:focus-visible, .tf-field select:focus-visible, .tf-field textarea:focus-visible { outline: 2px solid var(--punch); outline-offset: 1px; border-color: var(--punch); }
.tf-field textarea { resize: vertical; min-height: 96px; }
.tf-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 4px; }
.tf-note { font-size: 14px; color: var(--ink-muted); margin: 0; }
.tf-status { margin: 0; font-size: 15px; min-height: 0; }
.tf-status.ok { font-family: var(--font-display); font-weight: 500; font-size: 20px; color: var(--matterhorn); }
.tf-status.err { color: var(--punch-text); }
.tf-status:empty { display: none; }
.talk-dialog { border: 0; border-radius: 20px; padding: 0; width: min(680px, calc(100vw - 32px)); background: var(--linen); color: var(--matterhorn); box-shadow: 0 30px 80px rgba(40, 30, 30, .35); }
.talk-dialog::backdrop { background: rgba(63, 55, 55, .6); }
.talk-inner { position: relative; padding: 36px 36px 32px; }
.talk-close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--linen-c); background: transparent; color: var(--matterhorn); font-size: 24px; line-height: 1; cursor: pointer; }
.talk-close:hover, .talk-close:focus-visible { background: var(--matterhorn); color: var(--linen); outline: none; }
.talk-h2 { font-family: var(--font-display); font-weight: 500; font-size: 32px; line-height: 1.1; letter-spacing: -.6px; margin: 8px 0 22px; }
.contact-page { background: var(--white); padding: 72px 0 96px; }
.contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; }
.contact-how { margin-top: 16px; max-width: none; }
.contact-how li { grid-template-columns: 150px 1fr; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 640px) { .tf-grid { grid-template-columns: 1fr; } .talk-inner { padding: 28px 20px 24px; } .talk-h2 { font-size: 26px; } .tf-actions .btn { width: 100%; text-align: center; } .contact-page { padding: 48px 0 64px; } .contact-how li { grid-template-columns: 1fr; } }

/* ---- v3.4.2: policy pages (privacy, terms, cookies, security, DPA, subprocessors, acceptable use, legal index) ---- */
.legal-hero .h1 { font-size: 52px; letter-spacing: -1.2px; max-width: 980px; }
.legal-hero .sub a, .legal-hero .legal-meta a { color: var(--linen); text-decoration-color: var(--punch-text-dark); }
.legal-hero .legal-meta { color: var(--linen-a); font-size: 15px; margin-top: 8px; }
.legal-hero .legal-meta .note { background: transparent; border-color: var(--linen-c); color: var(--linen-a); }
.legal-page { padding: 56px 0 72px; }
.legal-grid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 56px; align-items: start; }
.lg-toc { position: sticky; top: 96px; font-size: 14px; line-height: 20px; }
.lg-toc ol { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--linen-a); }
.lg-toc li { border-bottom: 1px solid var(--linen-a); }
.lg-toc a { display: block; padding: 8px 0; color: var(--matterhorn); text-decoration: none; }
.lg-toc a:hover { color: var(--punch-text); text-decoration: underline; }
.lg-toc .lg-related { margin-top: 24px; display: flex; flex-direction: column; gap: 6px; }
.lg-related .eyebrow { font-size: 13px; margin-bottom: 4px; }
.lg-related a { color: var(--punch-text); }
.legal-doc { max-width: 820px; min-width: 0; font-size: 16px; line-height: 26px; }
.legal-doc .lg-plain { background: var(--linen); border-radius: 20px; padding: 28px 32px; margin-bottom: 40px; }
.legal-doc .lg-plain .eyebrow { margin-bottom: 10px; }
.legal-doc .lg-plain p { font-family: var(--font-display); font-weight: 500; font-size: 18px; line-height: 27px; }
.legal-doc .lg-plain p + p { margin-top: 12px; }
.legal-doc .lg-sec { padding: 28px 0 8px; border-top: 1px solid var(--linen-a); scroll-margin-top: 92px; }
.legal-doc .lg-h2 { font-size: 26px; line-height: 32px; margin: 0 0 14px; }
.legal-doc p + p, .legal-doc ul + p, .legal-doc p + ul { margin-top: 12px; }
.legal-doc ul { padding-left: 22px; margin: 0; }
.legal-doc li + li { margin-top: 8px; }
.legal-doc a { color: var(--punch-text); }
.legal-doc code { font-size: 14px; background: var(--linen); padding: 1px 6px; border-radius: 6px; }
.legal-doc .note.tc { border-color: var(--punch-text); color: var(--matterhorn); background: var(--linen); }
.legal-doc .note.tc em { font-style: normal; color: var(--punch-text); }
.lg-scroll { overflow-x: auto; margin: 8px 0 4px; }
.lg-scroll:focus-visible { outline: 2px solid var(--punch); outline-offset: 2px; }
.lg-table { min-width: 640px; font-size: 15px; line-height: 23px; }
.lg-table th { font-size: 13px; }
.lg-table td { padding-right: 18px; }
.legal-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.legal-list li a { display: flex; flex-direction: column; gap: 8px; background: var(--linen); border-radius: 20px; padding: 26px 28px; color: var(--matterhorn); text-decoration: none; height: 100%; }
.legal-list li a:hover .h3, .legal-list li a:focus-visible .h3 { color: var(--punch-text); text-decoration: underline; }
.legal-list li a:focus-visible { outline: 3px solid var(--punch); outline-offset: 3px; }
@media (max-width: 1100px) { .legal-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; } .lg-toc { position: static; } .legal-hero .h1 { font-size: 40px; } }
@media (max-width: 640px) { .legal-page { padding: 36px 0 48px; } .legal-doc .lg-plain { padding: 22px 20px; } .legal-list { grid-template-columns: 1fr; } .legal-hero .h1 { font-size: 32px; letter-spacing: -.8px; } }

.legal-doc .lg-loud { border-left: 3px solid var(--matterhorn); padding-left: 18px; }
.legal-doc .lg-loud p { font-weight: 600; }

/* ---- the cookie banner ---- */
.consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: var(--matterhorn); color: var(--linen); box-shadow: 0 -12px 40px rgba(40, 30, 30, .25); }
.consent[hidden] { display: none; }
.consent-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 18px; padding-bottom: 18px; }
.consent-text { margin: 0; font-size: 15px; line-height: 23px; max-width: 820px; }
.consent-text a { color: var(--linen); text-decoration-color: var(--punch-text-dark); }
.consent-actions { display: flex; gap: 10px; flex-shrink: 0; }
.consent .btn-pill { border-color: var(--linen); color: var(--linen); }
.consent .btn-pill.fill { background: var(--linen); color: var(--matterhorn); }
.consent .btn-pill.fill:hover { background: var(--punch); border-color: var(--punch); color: var(--linen); }
.consent .btn-pill:not(.fill):hover { background: var(--linen); color: var(--matterhorn); }
.consent .btn:focus-visible { outline: 3px solid var(--linen); outline-offset: 3px; }
@media (max-width: 640px) { .consent-inner { flex-direction: column; align-items: stretch; } .consent-actions .btn { flex: 1; justify-content: center; } }

/* ---- v3.4.4: deep accessibility pass ---- */
/* Reduced motion: every animation and transition completes at once, in its end state, whatever its specificity. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .js .surface .state, .js .surface .finding, .js .surface .sfoot, .js .story .stamp, .js .story .rec .hit, .js .reveal, .pin-section .flow > li { opacity: 1 !important; transform: none !important; }
  .marquee .track { animation: none !important; transform: none !important; }
}
/* Focus not obscured (WCAG 2.4.11): a focused element scrolled into view lands below the sticky header, not under it. */
html { scroll-padding-top: 88px; }
/* Reflow at 320 CSS pixels (WCAG 1.4.10): the one-word headline, wide buttons and card grids fit the narrowest phones. */
@media (max-width: 380px) {
  .hero-cat .h1.cat { font-size: 34px; letter-spacing: -1px; }
  .close-h2 { font-size: 30px; letter-spacing: -.8px; overflow-wrap: anywhere; }
  .btn-big { white-space: normal; text-align: center; height: auto; min-height: 56px; padding: 12px 22px; line-height: 1.2; font-size: 16px; }
  .ap-grid, .wh-grid, .ac-grid, .tr-grid, .legal-list { grid-template-columns: minmax(0, 1fr); }
  .ap-card, .wh-card, .card { min-width: 0; }
  .wrap { padding-left: 16px; padding-right: 16px; }
}
