/* The home page's sections after «how it works», and the footer (linked after site.css). */
/* 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; background: #1f4e8c; }
.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 .heads { display: flex; gap: var(--space-3); }
.web-pass .code span { font: 500 10px/1.3 var(--font-mono); letter-spacing: 0.02em; text-align: center; max-width: 220px; }
.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-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); }
/* The panel as it is (style C «Papel», 2026-10-12): the menu on the page's grey, where you are
   a white pill with an orange dot, the answer a white sheet with four figures in a row. */
.mock-side { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5) var(--space-3); background: var(--bg); }
.mock-side .ds-logo { padding-inline: var(--space-2); font-size: var(--fs-16); }
.mock-side .business { display: flex; align-items: center; gap: var(--space-2); padding-inline: var(--space-2); font-weight: 600; line-height: 1.2; font-size: var(--fs-14); }
.mock-side .business small { display: block; color: var(--muted); font-weight: 400; font-size: var(--fs-12); }
.mock-side .mono { width: 2rem; height: 2rem; flex: none; display: grid; place-items: center; border-radius: var(--radius-s); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); font-size: var(--fs-12); }
.mock-side .ds-nav-group { display: grid; gap: 2px; }
.mock-side .ds-nav-group span { padding: var(--space-2) var(--space-2) var(--space-1); color: var(--muted); font-size: var(--fs-12); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.mock-side .ds-nav-group a { display: flex; align-items: center; padding: var(--space-2); border-radius: 10px; color: var(--fg); font-size: var(--fs-14); cursor: default; }
.mock-side .ds-nav-group a[aria-current] { background: var(--surface); box-shadow: 0 0 0 1px var(--line); font-weight: 600; }
.mock-side .ds-nav-group a[aria-current]::after { content: ""; margin-left: auto; width: 6px; height: 6px; border-radius: 50%; background: var(--pumpkin); }
.mock-answer { display: grid; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius-l); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.mock-answer .top { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.mock-answer .kicker { padding: 4px 10px; border-radius: var(--radius-pill); background: var(--fg); color: var(--bg); font: 600 var(--fs-12)/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.mock-answer .open { font-weight: 600; font-size: var(--fs-14); }
.mock-answer h2 { margin: 0; font-size: var(--fs-24); letter-spacing: -.02em; }
.mock-figures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-block: 1px solid var(--line); }
.mock-figures div { display: grid; gap: 2px; padding: var(--space-3) var(--space-4); border-left: 1px solid var(--line); }
.mock-figures div:first-child { padding-left: 0; border-left: 0; }
.mock-figures dt { color: var(--muted); font: 600 11px/1.3 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; }
.mock-figures dd { margin: 0; font: 500 var(--fs-24)/1.2 var(--font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.mock-figures dd.note { color: var(--muted); font: 400 var(--fs-12)/1.4 var(--font-sans); white-space: normal; }
.mock-figures .key { box-shadow: inset 0 -3px 0 var(--pumpkin); }
.mock-answer .say { margin: 0; color: var(--muted); font-size: var(--fs-14); }
.mock-side .ds-nav-group a[aria-current]::before { content: none; }
.browser-body .ds-todo li { box-shadow: 0 0 0 1px var(--line); }
.browser-body .ds-todo li::before { background: transparent; border: 1.5px solid var(--fg); color: var(--fg); }
.browser-body .ds-btn--tertiary { color: var(--fg); }
.browser-body .ds-stats { gap: 0; border-radius: var(--radius-l); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.browser-body .ds-stat { background: none; box-shadow: none; border-radius: 0; }
.browser-body .ds-stat + .ds-stat { border-left: 1px solid var(--line); }
.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; }
/* The mock panel's title looks like the panel's h1 but is not a heading: the page has one h1 (2026-10-19). */
.panel-main .ds-page-head .mock-title { margin: 0; max-width: none; color: inherit; font-size: var(--fs-24); line-height: 1.15; font-weight: 700; letter-spacing: -0.02em; text-wrap: balance; }
.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 .mock-side { display: none; }
  .mock-figures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mock-figures div:nth-child(3) { padding-left: 0; border-left: 0; }
  .mock-figures div:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .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 .mock-answer .say { 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 .price .currency--before { margin: 0 0.06em 0 0; }
.plan .price .currency--spaced { margin-left: 0; }
.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(4, 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; } }
