/* SCR-WEB-SHELL · registry: docs/03-product/screens.md */
/* Public website, hero «Contenida» (Pablo, 2026-10-08). Layout only: every colour, size, radius
   and component comes from brand/tokens.css and brand/components.css (design-system/). The
   website is light-only on purpose: it shows the product's real screens in their real colours. */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; font-size: var(--fs-18); }
p { margin: 0; }
h1, h2, h3 { margin: 0; text-wrap: balance; }
a { color: var(--link); }
img { max-width: 100%; }
.wrap { max-width: 1160px; margin: 0 auto; padding-inline: var(--space-4); }
.skip { position: absolute; left: -999px; }
.skip:focus { left: var(--space-4); top: var(--space-4); background: var(--surface); padding: var(--space-2) var(--space-4); z-index: 10; }

/* ---------- header ---------- */
.site-head { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; }
.site-head .wrap { display: flex; align-items: center; gap: var(--space-6); min-height: 72px; }
.site-nav { display: flex; gap: var(--space-6); margin-left: auto; font-size: var(--fs-16); font-weight: 500; }
.site-nav a { color: var(--fg); text-decoration: none; }
.site-nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-menu { display: none; position: relative; }
.site-menu summary { list-style: none; width: 44px; height: 44px; display: grid; place-content: center; gap: 5px; cursor: pointer; border-radius: var(--radius-m); }
.site-menu summary::-webkit-details-marker { display: none; }
.site-menu summary span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--fg); }
.site-menu nav { position: absolute; right: 0; top: 52px; min-width: 220px; display: grid; padding: var(--space-2); background: var(--surface); border-radius: var(--radius-m); box-shadow: var(--shadow-lift); }
.site-menu nav a { padding: var(--space-3); color: var(--fg); text-decoration: none; border-radius: var(--radius-s); font-size: var(--fs-16); }
.site-menu nav a:hover { background: var(--surface-2); }
@media (max-width: 860px) {
  .site-nav { display: none; }
  .site-head .ds-btn { margin-left: auto; }
  .site-head .wrap { gap: var(--space-3); min-height: 64px; }
  .site-menu { display: block; }
}

/* ---------- hero «Contenida» ---------- */
.hero .wrap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-8); align-items: center; padding-block: var(--space-10) var(--space-16); }
.hero-copy { display: grid; gap: var(--space-5); align-content: center; min-width: 0; }
.hero h1 { font-size: clamp(42px, 6.6vw, var(--fs-80)); /* three fixed lines: the rotating word sits alone on the second, so a longer word never reflows the rest */ line-height: 1.02; font-weight: 700; letter-spacing: -0.035em; text-wrap: wrap; }
.hero .lead { font-size: clamp(var(--fs-18), 2vw, 21px); max-width: 32ch; }
.hero .ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-2); }
.hero .fine { font-size: var(--fs-14); color: var(--muted); }
.hero .fine + .fine { margin-top: calc(var(--space-3) * -1); }
.hero .fine a { color: var(--fg); font-weight: 600; }
.hero-visual { position: relative; display: grid; place-items: center; min-height: 600px; }
.sun-disc { position: absolute; width: min(440px, 92%); aspect-ratio: 1; border-radius: 50%; background: var(--sun); }
.hero-phone { transform: rotate(-3deg); }
.hero-phone .body { padding-top: var(--space-4); justify-items: center; }
.hero-phone .ds-pass { box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.4); }
.hero-answer { position: absolute; left: 0; bottom: -4px; width: min(330px, 82%); padding: var(--space-4) var(--space-5); gap: var(--space-3); transform: rotate(-1.5deg); box-shadow: var(--shadow-device); }
.hero-answer h2 { font-size: var(--fs-18); }
.hero-answer .ds-chain b { font-size: var(--fs-16); }
.hero-answer .ds-chain > div { padding: var(--space-2) var(--space-3); flex-basis: 70px; }
@media (max-width: 900px) {
  .hero .wrap { grid-template-columns: 1fr; padding-block: var(--space-6) var(--space-12); }
  .hero-visual { min-height: 560px; }
}
/* /para-agencias: the portfolio fanned out, and the report the agency shows a client (SCR-WEB-AGENCIES) */
.agency-stack { position: relative; width: min(330px, 86%); height: 400px; margin-top: -90px; }
.agency-card { position: absolute; inset: auto 0 auto 0; padding: var(--space-4) var(--space-5); gap: var(--space-2); box-shadow: var(--shadow-device); }
.agency-card:nth-child(1) { top: 0; transform: rotate(-5deg) translateX(-22px); }
.agency-card:nth-child(2) { top: 128px; transform: rotate(2deg) translateX(30px); }
.agency-card:nth-child(3) { top: 256px; transform: rotate(-2deg) translateX(-10px); }
.agency-card .who { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); }
.agency-card .who i { width: 34px; height: 34px; border-radius: 9px; background: var(--biz); color: #fff; display: grid; place-items: center; font: 700 var(--fs-12)/1 var(--font-sans); font-style: normal; }
.agency-card .who span { font-size: var(--fs-12); color: var(--muted); }
.agency-card p { margin: 0; font-size: var(--fs-14); color: var(--muted); }
.agency-card .fig { font-size: var(--fs-14); }
.agency-card .fig b { font: 600 var(--fs-20)/1 var(--font-mono); }
.agency-answer { right: -8px; left: auto; bottom: -24px; transform: rotate(1.5deg); }
.agency-visual { min-height: 640px; }
@media (max-width: 900px) { .agency-stack { margin-top: -80px; } .agency-visual { min-height: 600px; } }
@media (max-width: 420px) { .hero-phone { --phone-w: 236px !important; } .hero-answer { width: 92%; } }

/* the rotating word wears the rótulo highlight (design-system Highlight) */
.word { display: inline-block; position: relative; isolation: isolate; padding: 0 0.12em; margin: 0 -0.02em; white-space: nowrap; vertical-align: baseline; line-height: 1.02; transition: width 0.5s var(--ease-spring); }
.word::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0.06em; bottom: -0.04em; background: var(--pumpkin); border-radius: 0.16em; }
.word .word-text { display: inline-flex; overflow: hidden; padding-block: 0.12em; margin-block: -0.12em; vertical-align: bottom; }
.word .ch { display: inline-block; transform: translateY(0); opacity: 1; transition: transform 0.42s cubic-bezier(0.2, 0.9, 0.25, 1.15), opacity 0.3s ease; }
.word .ch.gone { transform: translateY(-105%); opacity: 0; transition-timing-function: cubic-bezier(0.5, 0, 0.75, 0), ease; }
.word .ch.below { transform: translateY(105%); opacity: 0; transition: none; }
.word .measure { position: absolute; visibility: hidden; white-space: nowrap; left: 0; top: 0; }
@media (prefers-reduced-motion: reduce) { .word, .word .ch { transition: none; } }

/* ---------- trust row ---------- */
.trust { background: var(--surface); }
.trust .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-6); padding-block: var(--space-8); }
.trust .wrap > div { display: flex; gap: var(--space-3); align-items: center; min-width: 0; }
.trust img { flex: none; }
.trust p { font-size: var(--fs-14); color: var(--muted); }
.trust b { display: block; color: var(--fg); font-size: var(--fs-16); }
@media (max-width: 860px) { .trust .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 460px) {
  .trust .wrap { grid-template-columns: 1fr 1fr; gap: var(--space-4) var(--space-3); padding-block: var(--space-6); }
  .trust .wrap > div { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .trust img { width: 44px; height: 44px; }
}

/* ---------- sections ---------- */
.section { padding-block: var(--space-16) 0; }
.section-head { display: grid; gap: var(--space-2); max-width: 62ch; margin-bottom: var(--space-8); }
.section-head h2, .example h2 { font-size: clamp(30px, 4vw, var(--fs-40)); line-height: 1.08; font-weight: 700; letter-spacing: -0.025em; }
.section-head p { color: var(--muted); }
.section-head.with-art { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 260px); align-items: end; gap: var(--space-8); }
.section-head.with-art > div { display: grid; gap: var(--space-2); max-width: 62ch; }
.section-head.with-art img { width: 100%; height: auto; border-radius: var(--radius-l); }
@media (max-width: 760px) { .section-head.with-art { grid-template-columns: 1fr; } .section-head.with-art img { max-width: 360px; } }
@media (max-width: 600px) { .section { padding-block: var(--space-12) 0; } }

/* how it works: a real sequence, so numbered */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.steps li { background: var(--surface); border-radius: var(--radius-l); padding: var(--space-6) var(--space-5); display: grid; gap: var(--space-3); align-content: start; min-width: 0; }
.steps li:nth-child(2) { background: var(--surface-2); }
.steps li:nth-child(3) { background: #e9f1e1; }
.steps img { width: 104px; height: 104px; }
.steps .n { font: 500 var(--fs-14)/1 var(--font-mono); color: var(--muted); }
.steps h3 { font-size: var(--fs-20); line-height: 1.25; letter-spacing: -0.01em; }
.steps p { font-size: var(--fs-16); color: var(--muted); }
@media (max-width: 980px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .steps { grid-template-columns: 1fr; gap: var(--space-3); }
  .steps li { grid-template-columns: 72px 1fr; column-gap: var(--space-4); row-gap: var(--space-1); padding: var(--space-4); align-items: start; }
  .steps img { grid-row: 1 / span 3; width: 72px; height: 72px; }
  .steps .n { display: none; }
  .steps h3 { font-size: var(--fs-18); }
  .steps p { font-size: var(--fs-14); }
}

/* card kinds: one pass at a time, picked with tabs (radio inputs, works without JavaScript) */
.free-cards { display: flex; align-items: center; gap: var(--space-5); background: var(--sun); color: var(--indigo); border-radius: var(--radius-l); padding: var(--space-5) var(--space-6); margin-bottom: var(--space-8); }
.free-cards .ds-num { font-size: 56px; line-height: 1; letter-spacing: -0.03em; }
.free-cards p { font-size: var(--fs-18); max-width: 60ch; }
.kind-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-6); }
.kind-tabs label { cursor: pointer; padding: var(--space-2) var(--space-4); border-radius: var(--radius-pill); border: 2px solid var(--button-ink); background: var(--surface); font-weight: 600; font-size: var(--fs-16); transition: transform var(--duration-fast) var(--ease-out); }
.kind-tabs label:hover { transform: translateY(-1px); }
.kind-panel { display: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-10); align-items: center; }
.kind-visual { position: relative; display: grid; place-items: center; min-height: 520px; }
.kind-disc { position: absolute; width: min(400px, 90%); aspect-ratio: 1; border-radius: 50%; background: var(--surface-2); }
.kind-visual .ds-pass { position: relative; transform: rotate(-2deg); max-width: 300px; }
.kind-visual .code svg { width: 96px; height: 96px; }
.kind-visual:has(.lock-notice) .ds-pass { margin-top: 64px; }
.lock-notice { position: absolute; z-index: 2; top: 0; left: 50%; transform: translateX(-50%) rotate(1.5deg); width: min(320px, 92%); display: flex; gap: var(--space-3); align-items: center; padding: var(--space-3); border-radius: 18px; background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(10px); box-shadow: var(--shadow-device); font-size: var(--fs-14); color: #111; }
.lock-notice i { flex: none; width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; background: #1f4e8c; color: #ffffff; font: 700 12px/1 var(--font-sans); font-style: normal; }
.lock-notice b { display: block; font-size: var(--fs-12); color: #555; font-weight: 600; }
.kind-copy { display: grid; gap: var(--space-4); align-content: center; min-width: 0; }
.kind-copy h3 { font-size: clamp(24px, 3vw, 32px); line-height: 1.12; letter-spacing: -0.02em; }
.kind-copy > p { color: var(--muted); }
.kind-sector { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-14); font-weight: 600; color: var(--fg) !important; }
.kind-copy ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); font-size: var(--fs-16); }
.kind-copy li { display: grid; grid-template-columns: 22px 1fr; gap: var(--space-2); }
.kind-copy li::before { content: ""; width: 14px; height: 14px; margin-top: 5px; border-radius: 50%; background: var(--sun); box-shadow: inset 0 0 0 2px var(--indigo); }
/* SCR-WALLET-PASS: the iPhone pass of SPEC-013; the strip is the passes' own PNG, full bleed */
.web-pass .strip { padding: 0; background: var(--pass-strip); aspect-ratio: 375 / 144; }
.web-pass .strip img { display: block; width: 100%; height: 100%; }
.web-pass .fields:empty { padding: 4px; }
.web-pass .fields b { font-size: 15px; line-height: 1.2; }
.web-pass .fields > div:only-child { text-align: left; }
.web-pass .fields > div:last-child:not(:only-child) b { white-space: nowrap; }
#k-sellos:checked ~ .kind-panel[data-kind="sellos"] { display: grid; }
#k-sellos:checked ~ .kind-tabs label[for="k-sellos"] { background: var(--indigo); color: var(--on-indigo); box-shadow: 3px 3px 0 var(--button-ink); }
#k-sellos:focus-visible ~ .kind-tabs label[for="k-sellos"] { outline: 3px solid var(--focus); outline-offset: 2px; }
#k-puntos:checked ~ .kind-panel[data-kind="puntos"] { display: grid; }
#k-puntos:checked ~ .kind-tabs label[for="k-puntos"] { background: var(--indigo); color: var(--on-indigo); box-shadow: 3px 3px 0 var(--button-ink); }
#k-puntos:focus-visible ~ .kind-tabs label[for="k-puntos"] { outline: 3px solid var(--focus); outline-offset: 2px; }
#k-bono:checked ~ .kind-panel[data-kind="bono"] { display: grid; }
#k-bono:checked ~ .kind-tabs label[for="k-bono"] { background: var(--indigo); color: var(--on-indigo); box-shadow: 3px 3px 0 var(--button-ink); }
#k-bono:focus-visible ~ .kind-tabs label[for="k-bono"] { outline: 3px solid var(--focus); outline-offset: 2px; }
#k-amigos:checked ~ .kind-panel[data-kind="amigos"] { display: grid; }
#k-amigos:checked ~ .kind-tabs label[for="k-amigos"] { background: var(--indigo); color: var(--on-indigo); box-shadow: 3px 3px 0 var(--button-ink); }
#k-amigos:focus-visible ~ .kind-tabs label[for="k-amigos"] { outline: 3px solid var(--focus); outline-offset: 2px; }
#k-regalos:checked ~ .kind-panel[data-kind="regalos"] { display: grid; }
#k-regalos:checked ~ .kind-tabs label[for="k-regalos"] { background: var(--indigo); color: var(--on-indigo); box-shadow: 3px 3px 0 var(--button-ink); }
#k-regalos:focus-visible ~ .kind-tabs label[for="k-regalos"] { outline: 3px solid var(--focus); outline-offset: 2px; }
@media (max-width: 860px) {
  .kind-panel { grid-template-columns: 1fr; gap: var(--space-6); }
  .kind-visual { min-height: 0; padding-block: var(--space-8) var(--space-4); }
  .kind-visual .ds-pass { max-width: 280px; }
  .free-cards { flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-5); }
  .free-cards .ds-num { font-size: 44px; }
  .free-cards p { font-size: var(--fs-16); }
  .kind-tabs label { font-size: var(--fs-14); padding: 6px var(--space-3); }
}

/* the panel in a browser frame */
.browser { background: var(--surface); border-radius: var(--radius-l); overflow: hidden; box-shadow: var(--shadow-device); border: 1px solid var(--line); }
.browser-bar { display: flex; align-items: center; gap: 6px; padding: var(--space-3) var(--space-4); background: var(--surface-2); }
.browser-bar i { width: 10px; height: 10px; border-radius: 50%; background: var(--data-other); }
.browser-bar span { margin-left: var(--space-3); font: 500 var(--fs-12)/1 var(--font-mono); color: var(--muted); background: var(--surface); padding: 6px var(--space-3); border-radius: var(--radius-pill); }
.browser-body { display: grid; grid-template-columns: 220px minmax(0, 1fr); background: var(--bg); font-size: var(--fs-16); }
.browser-body .ds-side { border-radius: 0; }
.browser-body .ds-nav-group a { cursor: default; }
.panel-main { padding: var(--space-6); display: grid; gap: var(--space-4); align-content: start; min-width: 0; }
.panel-main .ds-page-head { margin-bottom: 0; }
.panel-main .ds-page-head h1 { font-size: var(--fs-24); }
.panel-sub { font-size: var(--fs-16); margin-top: var(--space-2); }
.caption { margin-top: var(--space-3); font-size: var(--fs-14); color: var(--muted); }
.panel-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-4); }
.panel-cta .caption { margin: 0; }
@media (max-width: 860px) {
  .browser-body { grid-template-columns: 1fr; }
  .browser-body .ds-side { display: none; }
  .panel-main { padding: var(--space-4); }
  /* on phones the frame shows the answer and the first piece of advice; the rest is one tap away */
  .panel-main .ds-page-head, .panel-main .ds-stats, .panel-main .ds-todo li + li, .panel-main .ds-range-line { display: none; }
  .panel-main .ds-todo li { grid-template-columns: 28px 1fr; }
  .panel-main .ds-todo li > .ds-btn { grid-column: 2; justify-self: start; padding-inline: 0; }
  .panel-cta .ds-btn { width: 100%; }
}

/* the example: receipt + explanation */
.example { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--space-12); align-items: center; }
.example .copy { display: grid; gap: var(--space-4); max-width: 54ch; }
.example .copy > p { color: var(--muted); }
.example .copy > p.strong { color: var(--fg); }
.key { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.key li { display: grid; grid-template-columns: 36px 1fr; gap: var(--space-3); align-items: start; }
.key i { width: 36px; height: 22px; border-radius: 6px; margin-top: 3px; }
.key p { color: var(--muted); }
.key b { color: var(--fg); }
@media (max-width: 900px) { .example { grid-template-columns: 1fr; } .example .ds-receipt { max-width: 380px; } }

/* pricing */
.pricing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.pricing-more { margin-top: var(--space-6); color: var(--muted); font-size: var(--fs-16); }
.loyalty-only { margin-top: var(--space-6); padding: var(--space-5) var(--space-6); border-radius: var(--radius-l); background: var(--surface); font-size: var(--fs-16); color: var(--muted); }
.loyalty-only b { color: var(--fg); }
.plan { background: var(--surface); border-radius: var(--radius-l); padding: var(--space-8); display: grid; gap: var(--space-4); box-shadow: inset 0 0 0 2px var(--fg); }
.plan h3 { font-size: var(--fs-20); }
.plan .price { font-size: var(--fs-18); color: var(--muted); }
.plan .price .ds-num { font-size: 56px; letter-spacing: -0.02em; color: var(--fg); margin-right: var(--space-2); }
.plan .price .currency { margin-left: 0.12em; }
.plan ul, .plan-next ul { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-2); font-size: var(--fs-16); }
.plan li, .plan-next li { display: grid; grid-template-columns: 22px 1fr; gap: var(--space-2); }
.plan li::before { content: ""; width: 14px; height: 14px; margin-top: 5px; border-radius: 50%; background: var(--sun); box-shadow: inset 0 0 0 2px var(--indigo); }
.plan-next li::before { content: ""; width: 14px; height: 14px; margin-top: 5px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--control-border); }
.trust-line { text-align: center; font-size: var(--fs-14); color: var(--muted); }
.plan-next { border-radius: var(--radius-l); padding: var(--space-8); display: grid; gap: var(--space-3); background: var(--surface-2); }
.plan-next h3 { font-size: var(--fs-20); }
.plan-next p { font-size: var(--fs-16); }
@media (max-width: 860px) { .pricing { grid-template-columns: 1fr; } .plan, .plan-next { padding: var(--space-6); } }

/* honest promises */
.promises { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.promises > div { border-radius: var(--radius-l); padding: var(--space-6); display: grid; gap: var(--space-3); align-content: start; }
.promises h3 { font-size: var(--fs-20); }
.promises ul { margin: 0; padding-left: 1.2rem; display: grid; gap: var(--space-2); font-size: var(--fs-16); }
.promises .yes { background: var(--success-soft); }
.promises .no { background: var(--danger-soft); }
@media (max-width: 720px) { .promises { grid-template-columns: 1fr; } }

/* questions */
.faq { display: grid; gap: var(--space-3); max-width: 820px; }
.faq details { background: var(--surface); border-radius: var(--radius-m); padding: var(--space-4) var(--space-5); }
.faq summary { cursor: pointer; font-weight: 600; font-size: var(--fs-18); }
.faq details > div { margin-top: var(--space-3); display: grid; gap: var(--space-2); color: var(--muted); font-size: var(--fs-16); }

/* closing call: the one indigo band */
.closing { margin-top: var(--space-24); background: var(--indigo); color: var(--on-indigo); }
.closing .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-6); padding-block: var(--space-12); }
.closing h2 { font-size: clamp(30px, 4vw, 44px); line-height: 1.05; letter-spacing: -0.025em; max-width: 18ch; }
.closing h2 span { color: var(--sun); }
.closing p { color: var(--on-indigo-muted); margin-top: var(--space-2); }
.closing .ds-btn { --button-ink: var(--indigo-deep); }

/* footer */
.site-foot { background: var(--indigo-deep); color: var(--on-indigo-muted); --focus: var(--sun); }
.site-foot .wrap { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: var(--space-8); padding-block: var(--space-12) var(--space-8); font-size: var(--fs-14); }
.site-foot .ds-logo { color: var(--on-indigo); }
.foot-brand { display: grid; gap: var(--space-3); align-content: start; }
.site-foot nav { display: grid; gap: var(--space-2); align-content: start; }
.site-foot nav b { color: var(--on-indigo); font-size: var(--fs-14); }
.site-foot a { color: var(--on-indigo-muted); text-decoration: none; }
.site-foot a:hover { color: var(--on-indigo); text-decoration: underline; }
.foot-legal { grid-column: 1 / -1; padding-top: var(--space-6); border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: var(--fs-12); }
@media (max-width: 760px) { .site-foot .wrap { grid-template-columns: 1fr 1fr; } .foot-brand { grid-column: 1 / -1; } }

/* ---------- inner pages ---------- */
.page-hero .wrap { padding-block: var(--space-12) var(--space-8); display: grid; gap: var(--space-4); }
.page-hero h1 { font-size: clamp(36px, 5.4vw, var(--fs-56)); line-height: 1.04; font-weight: 700; letter-spacing: -0.03em; max-width: 18ch; }
.page-hero p { font-size: var(--fs-20); max-width: 46ch; color: var(--muted); }
.page-hero .ctas { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-2); }

.tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.tiles > div { border-radius: var(--radius-l); padding: var(--space-6); display: grid; gap: var(--space-3); align-content: start; min-width: 0; background: var(--surface); }
.tiles img { width: 88px; height: 88px; }
.tiles h3 { font-size: var(--fs-20); }
.tiles p { font-size: var(--fs-16); color: var(--muted); }
@media (max-width: 900px) { .tiles { grid-template-columns: 1fr; } }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-12); align-items: center; }
.split .copy { display: grid; gap: var(--space-4); max-width: 52ch; }
.split .copy p { color: var(--muted); }
.split .copy p.strong { color: var(--fg); }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }

/* demo request form */
.demo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--space-10); align-items: start; padding-block: 0 var(--space-16); }
@media (max-width: 860px) { .demo { grid-template-columns: 1fr; } }
.demo form { display: grid; gap: var(--space-4); background: var(--surface); border-radius: var(--radius-l); padding: var(--space-6); }
.demo .two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
@media (max-width: 560px) { .demo .two { grid-template-columns: 1fr; } }
.demo .field input, .demo .field select, .demo .field textarea { width: 100%; min-height: 48px; padding: var(--space-3); font: 400 var(--fs-16)/1.3 var(--font-sans); color: var(--fg); background: var(--surface); border: 1.5px solid var(--control-border); border-radius: var(--radius-m); }
.demo .field textarea { min-height: 112px; resize: vertical; }
.demo .field { display: grid; gap: var(--space-1); }
.demo .field label { font-weight: 600; font-size: var(--fs-14); }
.demo .help { color: var(--muted); font-size: var(--fs-14); }
.errorlist { list-style: none; padding: 0; margin: 0; color: var(--danger-fg); font-size: var(--fs-14); font-weight: 500; }
.form-error { background: var(--danger-soft); color: var(--danger-fg); border-radius: var(--radius-m); padding: var(--space-3) var(--space-4); }
.demo aside .ds-card { background: var(--surface-2); }
.demo aside ol { margin: 0; padding-left: 1.2rem; display: grid; gap: var(--space-2); font-size: var(--fs-16); }
.sent { padding-block: var(--space-16) 0; display: grid; gap: var(--space-4); max-width: 52ch; justify-items: start; }
.sent h1 { font-size: clamp(32px, 5vw, 48px); line-height: 1.05; letter-spacing: -0.025em; }

/* legal */
.legal { padding-block: var(--space-12) 0; max-width: 72ch; display: grid; gap: var(--space-4); }
.legal h1 { font-size: var(--fs-40); letter-spacing: -0.02em; }
.legal .body { white-space: pre-line; font-size: var(--fs-16); }
.legal .version { color: var(--muted); font-size: var(--fs-14); }

.portfolio { background: var(--surface); border-radius: var(--radius-l); padding: var(--space-5); display: grid; gap: var(--space-2); font-size: var(--fs-16); box-shadow: var(--shadow-device); }
.portfolio .row { display: grid; grid-template-columns: minmax(0, 1fr) 90px 90px; gap: var(--space-3); align-items: center; padding: var(--space-3) 0; border-top: 1px solid var(--line); }
.portfolio .row:first-of-type { border-top: 0; }
.portfolio .row span:not(:first-child) { text-align: right; }
.portfolio .head { color: var(--muted); font-size: var(--fs-14); }
