      /* Two-column layout: content + sticky receipt on desktop, single
         column (receipt in-flow at the CTA position) on mobile. */
      .rb-page .rb-layout { display:grid; grid-template-columns:1fr; gap:22px; align-items:start; }
      .rb-page .rb-main { min-width:0; }
      @media (min-width:1024px) {
        .rb-page .rb-layout { grid-template-columns:minmax(0,1fr) 340px; gap:32px; }
        .rb-page .rb-aside { position:sticky; top:24px; }
      }
      .rb-page .rb-cards { display:grid; gap:14px; }
      /* Hometown block-print card idiom: 2px ink border, 6px corners,
         offset block shadow (mirrors the shared .card recipe at
         public.css:319 without dragging its 28px padding). */
      .rb-page .rb-card { background:#fff; border:2px solid var(--ink); border-radius:var(--radius-md); box-shadow:4px 4px 0 var(--ink); overflow:hidden; }
      .rb-page .rb-card.rb-featured { border-color:var(--red); box-shadow:6px 6px 0 var(--red); }
      .rb-page .rb-feat-head { background:var(--red); color:#fff; padding:8px 14px; display:flex; align-items:center; gap:10px; }
      .rb-page .rb-chip { font-family:var(--font-display-ui); font-weight:600; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:#fff; }
      .rb-page .rb-card-main { display:grid; grid-template-columns:1fr auto; gap:14px; align-items:start; padding:14px 16px; }
      .rb-page .rb-card-price { text-align:right; }
      .rb-page .rb-card .rb-day { font-family:var(--font-display-ui); font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--af-navy); font-weight:700; }
      .rb-page .rb-card .rb-name { font-family:var(--font-display-ui); font-size:20px; line-height:1.15; margin-top:2px; }
      .rb-page .rb-card .rb-desc { font-size:13px; color:var(--ink-mid); margin-top:4px; line-height:1.45; }
      .rb-page .rb-card .rb-save { display:inline-block; margin-top:8px; font-family:var(--font-display-ui); font-weight:600; font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--red-deep); background:var(--red-pale); border:1px solid var(--red); border-radius:var(--radius-sm); padding:3px 8px; }
      .rb-page .rb-card .rb-price { font-family:var(--font-display-ui); font-size:24px; color:var(--red); white-space:nowrap; text-align:right; }
      .rb-page .rb-card .rb-price small { display:block; font-family:var(--font-body); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-light); font-weight:600; margin-top:2px; }
      .rb-page .rb-qty { display:flex; align-items:center; gap:10px; margin-top:10px; }
      /* ≥44×44px touch targets for reliable phone tapping. */
      .rb-page .rb-qty button { width:44px; height:44px; min-width:44px; font-size:22px; line-height:1; font-weight:700; background:#fff; border:2px solid var(--ink); border-radius:var(--radius-sm); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
      .rb-page .rb-qty button:hover:not(:disabled) { background:var(--red-pale); border-color:var(--red); color:var(--red-deep); }
      .rb-page .rb-qty button:disabled { opacity:.35; cursor:not-allowed; }
      .rb-page .rb-qty .n { min-width:34px; text-align:center; font-size:18px; font-weight:700; font-variant-numeric: tabular-nums; }
      /* Attendee-name group: labelled inputs + one aria helper per group. */
      .rb-page .rb-att-group { margin-top:12px; padding:12px 14px; background:var(--af-cream); border:2px solid var(--ink); border-radius:var(--radius-sm); }
      .rb-page .rb-att-title { font-family:var(--font-display-ui); font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); font-weight:700; }
      .rb-page .rb-att-help { font-size:12px; color:var(--ink-mid); line-height:1.5; margin:4px 0 10px; }
      .rb-page .rb-att-field { margin-top:8px; }
      .rb-page .rb-att-field label { display:block; font-family:var(--font-body); font-weight:700; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mid); margin-bottom:4px; }
      .rb-page .rb-req { color:var(--red); }
      .rb-page .rb-att-input { width:100%; padding:11px 13px; border:1.5px solid var(--rule-dk); border-radius:var(--radius-sm); font:inherit; font-size:16px; background:#fff; }
      .rb-page .rb-att-input:focus { outline:none; border-color:var(--red); box-shadow:0 0 0 3px rgba(229,30,37,.14); }
      .rb-page .rb-att-input-err { border-color:var(--red); }
      /* The one receipt — hometown block card, holds the totals + CTA. */
      .rb-page .rb-receipt { background:#fff; border:2px solid var(--ink); border-radius:var(--radius-md); box-shadow:5px 5px 0 var(--ink); padding:16px 18px; }
      .rb-page .rb-receipt-head { font-family:var(--font-display-ui); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink); font-weight:700; margin-bottom:8px; }
      .rb-page .rb-receipt-foot { font-size:12px; color:var(--ink-light); margin:10px 0 0; line-height:1.5; }
      .rb-page .rb-receipt .btn { width:100%; justify-content:center; margin-top:12px; }
      .rb-page .rb-cta-note { font-size:12px; color:var(--ink-light); margin-top:8px; line-height:1.5; }
      /* 2B.6 — trust strip: small, muted, wraps in the narrow receipt. */
      .rb-page .rb-trust { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:12px; padding-top:12px; border-top:1px solid var(--rule); }
      .rb-page .rb-trust-item { display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--ink-mid); line-height:1.3; }
      .rb-page .rb-trust-item svg { color:var(--red); flex-shrink:0; }
      .rb-page .rb-total-row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; }
      .rb-page .rb-total-row + .rb-total-row { border-top: 1px solid var(--rule); }
      .rb-page .rb-total-row.grand { border-top: 2px solid var(--ink); margin-top:2px; padding-top:10px; }
      .rb-page .rb-total-label { font-family:var(--font-display-ui); font-size:14px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); }
      .rb-page .rb-total-value { font-family:var(--font-display-ui); font-size:18px; color:var(--ink); white-space:nowrap; }
      .rb-page .rb-total-row.grand .rb-total-label { font-size:16px; }
      .rb-page .rb-total-row.grand .rb-total-value { font-size:26px; color:var(--red); }
      /* 2B.7 — no-refund banner: prominent, block-print emphasis.
         Typography/spacing refined only; the copy is locked. */
      .rb-page .rb-norefund { background:#fef2f2; border:2px solid var(--red); color:var(--red-deep); padding:13px 16px; border-radius:var(--radius-sm); font-family:var(--font-display-ui); font-size:14px; font-weight:700; letter-spacing:.05em; line-height:1.35; text-transform:uppercase; text-align:center; margin-bottom:16px; }
      /* Rules-ack: structured card with a warning accent bar. */
      .rb-page .rb-ack { background:#fffbeb; border:1px solid #E0A800; border-left:4px solid #E0A800; padding:12px 14px; border-radius:var(--radius-sm); }
      /* Deadline strip — hometown amber. */
      .rb-page .rb-deadline { background:#fffbeb; border:1px solid #E0A800; border-left:4px solid #E0A800; color:#7C2D12; padding:11px 14px; border-radius:var(--radius-sm); font-size:14px; line-height:1.45; margin-bottom:14px; }
      /* Per-bracelet question block — hometown surface. */
      .rb-page .rb-bracelet-block { margin-top:14px; padding:12px 14px; background:var(--af-cream); border:2px solid var(--ink); border-radius:var(--radius-sm); }
      .rb-page .rb-bracelet-head { font-family:var(--font-display-ui); font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--af-navy); }
      .rb-page .rb-rules { list-style:none; padding:0; margin:0; }
      .rb-page .rb-rules li { padding:4px 0; padding-left:18px; position:relative; font-size:13px; line-height:1.45; }
      .rb-page .rb-rules li:before { content:"•"; position:absolute; left:4px; color:#e51e25; font-weight:700; }
      /* Reconciled with the shared .eyebrow idiom (font-display-ui,
         red-deep, wide tracking) so subsection labels read as siblings
         of the rest of the public site. */
      .rb-page .rb-section-title { font-family:var(--font-display-ui); font-size:13px; text-transform:uppercase; letter-spacing:.12em; color:var(--red-deep); margin:20px 0 10px; font-weight:600; }
      .rb-page .rb-section-title:first-child { margin-top:0; }
      .rb-page .rb-empty-hint { padding:14px 16px; background:#fffbeb; border:1px solid #E0A800; color:#7C2D12; border-radius:3px; font-size:14px; }
      .rb-page .rb-error { color:#991b1b; font-size:13px; margin-top:4px; }
      .rb-page .rb-disabled-note { background:#fef2f2; border:1px solid #fca5a5; color:#7f1d1d; padding:12px 14px; border-radius:3px; margin-top:12px; font-size:14px; line-height:1.55; }
      .rb-page .rb-help { background:#eff6ff; border:1px solid var(--af-sky); color:var(--af-navy); padding:12px 14px; border-radius:3px; font-size:13px; line-height:1.55; }
      .rb-page .rb-help a { color:var(--af-navy); font-weight:600; }
      /* 2B.8 — page rhythm, overflow safety, keyboard focus, motion. */
      .rb-page .rb-card-info { min-width:0; }
      .rb-page .rb-card .rb-name { overflow-wrap:anywhere; }
      .rb-page .rb-total-label { overflow-wrap:anywhere; }
      .rb-page a:focus-visible, .rb-page button:focus-visible,
      .rb-page input:focus-visible, .rb-page select:focus-visible,
      .rb-page textarea:focus-visible { outline:3px solid var(--red); outline-offset:2px; }
      @media (max-width:560px) {
        .rb-page .rb-card-main { gap:10px; padding:12px 14px; }
        .rb-page .rb-feat-head { padding:7px 12px; }
      }
      @media (prefers-reduced-motion: reduce) {
        .rb-page *, .rb-page *::before, .rb-page *::after { transition:none !important; animation:none !important; }
      }
      /* 2B.5 — form treatment. Bordered rest state + a 2px red focus
         ring on every field/promo input, comfortable rhythm, and a
         grouped Contact block. Scoped to .rb-page (shared .field is
         never modified). */
      .rb-page .field input:focus, .rb-page .field select:focus, .rb-page .field textarea:focus,
      .rb-page .rb-promo-row input:focus, .rb-page .rb-att-input:focus {
        outline:none; border-color:var(--red); box-shadow:0 0 0 2px var(--red), 0 0 0 4px rgba(229,30,37,.16);
      }
      .rb-page .rb-contact { padding:14px 16px; background:#fff; border:2px solid var(--ink); border-radius:var(--radius-md); box-shadow:4px 4px 0 var(--ink); }
      .rb-page .rb-promo-row { display:flex; gap:8px; flex-wrap:wrap; align-items:stretch; }
      .rb-page .rb-promo-row input { flex:1; min-width:200px; text-transform:uppercase; font-family:var(--font-mono, monospace); padding:12px 14px; border:1.5px solid var(--rule-dk); border-radius:var(--radius-sm); background:#fff; font-size:16px; color:var(--ink); }
      .rb-page .rb-promo-row .btn { align-self:stretch; }
