/* Overnight round 16 (Oct 14, 2026 ~7:20 AM CT): scroll offsets, print, portraits, leads, headings,
   cards, footer, forms, book/login/sessions/town/games/refer/404/consult polish, Motion OFF and high contrast.
   Loaded last (end of footer partial, after r15.css).
   Revert all = remove the r16.css link in src/partials/footer.html and rebuild. Each block is tagged with its SITE-CHANGES.md number. */

/* #479 In-page jumps (#faq, #vip, #business…): land below the yellow bar + header */
:target,section[id],.page-head,[id="faq"],[id="vip"],[id="business"],[id="quests"],[id="contact"],[id="class-title"],[id="vip-title"]{scroll-margin-top:7.5rem}
@media (max-width:700px){:target,section[id],.page-head{scroll-margin-top:6.25rem}}

/* #480 Print: hide chrome that wastes ink (VIP strip, status bar tools, floating helpers) */
@media print{
  .callbar,.ka-vipstrip,.ka-rail,.scrollmap,.qol-top,.qol-call,.ka-toast,.askq,.askq-back,.acct-nudge,.pad,.top-tools,.fx-dock{display:none!important}
  body::after{display:none!important}
  a{text-decoration:underline}
}

/* #481 About + home portraits: lock 2:3 aspect so images don't shove the layout while loading */
.photo-frame img,.about-grid > img,.photo-alt,main img[src*="christian-"]{aspect-ratio:2/3;object-fit:cover;height:auto}

/* #482 Page leads keep a comfortable reading width on wide screens */
.page-head .lead,.hero .lead,.v5-lead{max-width:42em}

/* #483 Space under page titles so the lead doesn't crowd the cyan title box */
.page-head h1{margin-bottom:.85rem}

/* #484 Cards (px-box): soft gold edge on hover — off with Motion OFF / reduce motion / high contrast */
@media (prefers-reduced-motion:no-preference){
  html:not(.calm):not(.hc) main .px-box.card:hover,
  html:not(.calm):not(.hc) main .tier.px-box:hover,
  html:not(.calm):not(.hc) main .cabinet:hover{
    box-shadow:8px 8px 0 #000a24,0 0 0 1px rgba(255,210,63,.35)
  }
}
html.calm main .px-box.card,html.calm main .tier.px-box,html.calm main .cabinet{transition:none}

/* #485 Footer column headings: a little more air above the link lists */
footer .footer-col h2{margin:0 0 .65rem;line-height:1.35}

/* #486 Footer small-print paragraphs: comfortable max width so lines don't stretch wall-to-wall */
footer .wrap > p{max-width:62em}

/* #487 Contact form: message box taller so seniors can see more of what they're typing */
#contact-form textarea{min-height:9.5rem}

/* #488 Book page: pack cards get even inner padding on phones */
@media (max-width:420px){
  .checkout-grid .pack,.checkout-grid .px-box.pack{padding:.85rem 1rem}
}

/* #489 Login: help line under the player cards keeps a readable width and line spacing */
.ps-foot,.login-text-hint{max-width:40em;margin-left:auto;margin-right:auto;line-height:1.6}

/* #490 Sessions: business promise chips wrap with even gaps */
.biz-promise{display:flex;flex-wrap:wrap;gap:.55rem .75rem}
.biz-promise li{margin:0}

/* #491 Sessions business boxes: list lines easier to read */
.biz-list li{line-height:1.55;padding:.15rem 0}

/* #492 Town page pills / contact town chips: roomier tap gaps */
.pills,.ct-chips{gap:.5rem .65rem}
.pills li a,.ct-chips li a{min-height:44px;display:inline-flex;align-items:center}

/* #493 Arcade cabinets: game title line spacing so long names don't crowd */
.cabinet h3,.cabinet h2{line-height:1.45;margin:0 0 .5rem}

/* #494 Refer: numbered how-it-works steps get space between each step */
.ref-steps li{margin-bottom:.85rem;line-height:1.55;padding-left:.15rem}
.ref-steps li:last-child{margin-bottom:0}

/* #495 404: "CONTINUE?" line and links are easier to hit */
.nf .continue{min-height:44px;display:inline-flex;align-items:center}
.nf-links a{min-height:44px;display:inline-flex;align-items:center;padding:.2rem 0}

/* #496 Consult: text/email hint line keeps a comfortable width (matches quest/refer hints) */
.consult-text-hint,.about-text-hint{max-width:40em;line-height:1.6}
.consult-text-hint a,.about-text-hint a{display:inline-flex;align-items:center;min-height:44px}

/* #497 Main body links: underline sits a touch lower so letters don't collide */
main a:not(.btn):not(.level):not(.quest-btn):not(.who):not(.task):not(.mg-card){
  text-underline-offset:.22em;text-decoration-thickness:2px
}

/* #498 Headings in main: consistent space above section titles after the first */
main section + section h2,
main .v5-sec + .v5-sec .v5-title,
main .v5-sec + .v5-sec .v5-h{margin-top:.15rem}

/* #499 High contrast: gold hover glow off; cards keep a visible white border */
html.hc main .px-box.card,html.hc main .tier.px-box,html.hc main .cabinet{
  box-shadow:none!important;border-color:#fff
}

/* #500 Forced-colors (Windows): cards, packs and cabinets keep a visible border */
@media (forced-colors:active){
  main .px-box,main .tier,main .cabinet,main .pack,.biz-promise li,.pills li,.ct-chips li{
    border:2px solid CanvasText
  }
  :target,section[id]{scroll-margin-top:7.5rem}
}

/* #501 Where-to box: full width, clean link grid, labels fit (fix from Christian's phone screenshot) */
ol.levels>li:has(>.level-nav),ol.levels>li:last-child:has(.lv-links){grid-column:1/-1}
ol.levels .level-nav{width:100%;max-width:none;min-width:0;box-sizing:border-box}
ol.levels .level-nav .lv-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;min-width:0}
ol.levels .level-nav .lv-links a{min-width:0;min-height:48px;padding:.4rem .25rem;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none!important;font-size:11px;letter-spacing:0;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:clip}
ol.levels .level-nav .lv-links a:hover,ol.levels .level-nav .lv-links a:focus-visible{text-decoration:none!important}
@media (max-width:339px){ol.levels .level-nav .lv-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:900px){ol.levels .level-nav .lv-links{grid-template-columns:repeat(6,minmax(0,1fr))}ol.levels .level-nav .lv-links a{font-size:12.8px}}
@media (max-width:899px){ol.levels .level-nav .lv-links a{font-size:10px;padding:.4rem .1rem}}
ol.levels>li:has(>.level-nav){max-width:none;width:auto;justify-self:stretch}

/* blocks: prepaid business block cards */
.blk-wrap{margin:1.5rem 0}.blk-h{margin:0 0 .75rem}
.blk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.blk{padding:1rem 1.1rem;text-align:left}.blk-name{font-weight:700;margin:0;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem}
.blk-price{font-size:1.9rem;font-weight:800;margin:.2rem 0;color:var(--gold,#d9a520)}.blk-rate{margin:0 0 .6rem;font-size:.95rem;opacity:.85}
.blk-perks{margin:0;padding-left:1.1rem;font-size:.95rem}.blk-perks li{margin:.2rem 0}
.blk-top{outline:3px solid var(--gold,#d9a520);outline-offset:-3px}
