/* Overnight round 12 (Oct 14, 2026 ~4:45 AM CT): readability, a11y, mobile 360–390, desktop polish, signup cues.
   Loaded last (end of footer partial, after r11.css). Revert all = remove the r12.css link in src/partials/footer.html and rebuild.
   Each block is tagged with its SITE-CHANGES.md number. */

/* #279 Body text links: clearer underline for seniors (not buttons) */
main p a:not(.btn), main li a:not(.btn), main .lead a:not(.btn){
  text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px
}

/* #280 Pricing tabs (Home & family / Small business): taller tap */
.ka-tabs .ka-tab{min-height:48px;padding:.65rem 1rem;font-size:1.05rem;display:inline-flex;align-items:center}
@media (max-width:420px){
  .ka-tabs{flex-direction:column}
  .ka-tabs .ka-tab{width:100%;justify-content:center}
}

/* #281 Login player-select cards: sharper retro edge */
.ps-card{border-width:3px;box-shadow:5px 5px 0 var(--shadow,#0b1030)}
.ps-card .btn{min-height:48px}

/* #282 Book token pack lists: larger readable body */
.co-packs .co-pack,.tok-list li{font-size:1.15rem;line-height:1.55}
.co-uses li{font-size:1.1rem;line-height:1.5}
.co-uses-h{font-size:1.15rem!important}

/* #283 Consult account box body larger */
#acct-box p{font-size:1.15rem;line-height:1.6}
#acct-box .btn{min-height:48px}

/* #284 Home how-it-works step cards */
.how-steps .px-box h3{font-size:1.2rem}
.how-steps .px-box p{font-size:1.15rem;line-height:1.55}

/* #285 Home token tier cards body */
#tokens .card p,#tokens .v5-card p{font-size:1.15rem;line-height:1.55}
#tokens .price{font-size:1.7rem}

/* #286 Quest grid buttons: roomier on 360–390 phones */
@media (max-width:420px){
  .quest-btn{min-height:72px;padding:.75rem .6rem}
  .quest-grid{gap:.85rem}
  .task-hub{gap:.75rem}
}

/* #287 Business promise chips: desktop spacing */
.biz-promise{gap:.75rem;margin:1.25rem 0}
.biz-promise li{font-size:1.15rem;line-height:1.5}

/* #288 Skip link: larger when focused */
.skip:focus,.skip:focus-visible{
  font-size:1.15rem;padding:.75rem 1.1rem;min-height:48px;z-index:10000
}

/* #289 High-contrast: VIP strip stays readable */

/* #290 Bigger-text mode: form controls keep pace */
html.big input,html.big select,html.big textarea{font-size:1.2rem;min-height:52px}
html.big label{font-size:1.2rem}
html.big .btn{min-height:52px;font-size:1.1rem}

/* #291 Desktop: page-head lead and trust breathe */
@media (min-width:1100px){
  .page-head .wrap,.hero .wrap{padding-top:1.75rem;padding-bottom:1.25rem}
  .checks.trust{margin-top:1.25rem}
}

/* #292 Yellow status bar: slightly roomier mid items */
.callbar.statusbar .tb-mid{gap:.85rem}
.callbar.statusbar .tb-item{letter-spacing:.02em}

/* #293 Footer Serving town links: wrap gap + tap */
.serving-links{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:center;line-height:1.6}
.serving-links a{min-height:44px;display:inline-flex;align-items:center}

/* #294 Contact reach radios: 44px tap targets */
.reach-fs .choice{min-height:44px;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .55rem;font-size:1.15rem}
.reach-fs .choice input{width:1.25rem;height:1.25rem}

/* #295 Form field labels: comfortable weight and size */
.field > label,.planner .field > label{font-size:1.15rem;line-height:1.45;font-weight:700}

/* #296 Motion OFF: kill button/card hover transforms */
html.calm .btn:hover,html.calm .btn:active,
html.calm .card:hover,html.calm .tm-card:hover,html.calm .cabinet:hover{
  transform:none!important
}
@media (prefers-reduced-motion:reduce){
  .btn:hover,.card:hover,.tm-card:hover,.cabinet:hover{transform:none!important}
}

/* #297 Print: show destination after links (sms/mailto/http) */
@media print{
  main a[href^="http"]::after,main a[href^="sms:"]::after,main a[href^="mailto:"]::after{
    content:" (" attr(href) ")";font-size:.9em;word-break:break-all
  }
  .ka-vipstrip,.callbar,.levelnav,.acct-cta,.askq{display:none!important}
}

/* #298 404 popular links larger + taller tap */
.nf-links{font-size:1.15rem;line-height:1.6}
.nf-links a{min-height:44px;display:inline-flex;align-items:center;padding:.2rem 0}
.nf .actions .btn{min-height:48px}

/* #299 Service-area checker result text */
.area-check .ac-result,.area-check [role="status"]{font-size:1.2rem;line-height:1.55}
.area-check .ac-towns a{min-height:44px}

/* #300 Planner answer larger on desktop too */
.plan-out,#pl-tok,#pl-usd{font-size:1.25rem;line-height:1.5}
@media (min-width:900px){
  .plan-out{font-size:1.35rem}
}

/* #301 Book “what a token buys” list */
.tok-list{margin:0 0 1.25rem;padding-left:1.2rem}
.tok-tiers{font-size:1.15rem;margin-bottom:.5rem}

/* #302 Action rows: consistent gap on phones */
@media (max-width:700px){
  .actions{display:flex;flex-direction:column;gap:.75rem}
  .actions .btn{width:100%;justify-content:center}
}

/* #303 Header logo: comfortable tap */
header.site .logo{min-height:48px;display:inline-flex;align-items:center;gap:.5rem;padding:.25rem 0}

/* #304 Settings switches: 48px tall rows */
.set-panel .set-sw{min-height:48px;font-size:1.05rem;padding:.45rem .65rem}
.set-panel .set-title{font-size:1rem;letter-spacing:.06em}

/* #305 Current nav item: thicker gold underline cue */
.levelnav a[aria-current="page"],.levelnav li.is-on > a{
  box-shadow:inset 0 -3px 0 var(--gold,#ffd23f)
}

/* #306 Cards get focus-within ring for keyboard users */
.card:focus-within,.px-box:focus-within,.tm-card:focus-within,.ps-card:focus-within{
  outline:3px solid #ff3fb4;outline-offset:3px
}

/* #307 FAQ/details summary marker spacing */
details.px-box > summary, .faq details > summary{gap:.5rem}
details.px-box{margin-bottom:.85rem}

/* #308 Narrow pages (consult/login): phone side padding */
@media (max-width:420px){
  .wrap.narrow,.checkout-grid{padding-left:.25rem;padding-right:.25rem}
  .page-head .lead{font-size:1.15rem}
}

/* #309 Group-class teaser card: stronger presence */
.ka-gc-tease{margin:1.5rem 0}
.ka-gc-tease .gc-card{
  border-width:3px;box-shadow:6px 6px 0 var(--shadow,#0b1030);
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:1.15rem 1.25rem
}
.ka-gc-tease .gc-body h2{font-size:clamp(1.2rem,3vw,1.45rem);line-height:1.35;margin:.35rem 0}
.ka-gc-tease .gc-body p{font-size:1.15rem;line-height:1.55;margin:0}
.ka-gc-tease .btn{min-height:52px}

/* #310 VIP strip text clearer on desktop */
@media (min-width:900px){
}

/* #311 About / home photos: soft crisp border */
.about-grid img, .meet img, img.photo-alt{
  border:3px solid var(--gold,#ffd23f);box-shadow:4px 4px 0 var(--shadow,#0b1030)
}

/* #312 Login foot / book / consult Text hints */
.book-text-hint,.consult-text-hint,.login-text-hint,.ps-foot{
  font-size:1.15rem;line-height:1.55;margin-top:1rem
}
.book-text-hint a,.consult-text-hint a{min-height:44px;display:inline-flex;align-items:center}

/* #313 Checkout coming-soon tag clearer */
.soon-tag,.co-pack em{
  font-size:1rem;letter-spacing:.04em;font-weight:700
}
.btn-soon{min-height:48px;opacity:.85}

/* #314 Business section heading (was inline style) */
.biz-section-h{margin-top:2rem;font-size:1.35rem;line-height:1.35}
.biz-note{font-size:1.15rem;line-height:1.55}

/* #315 Business price lists readable */
.biz-list li,.biz-menu li{font-size:1.15rem;line-height:1.55;min-height:44px;display:flex;justify-content:space-between;gap:1rem;align-items:center}
.biz-list b,.biz-menu b{white-space:nowrap}

/* #316 Mobile 360: hero CTAs full width */
@media (max-width:420px){
  .hero .actions .btn,.page-head .actions .btn{width:100%;min-height:52px}
  .ka-gc-tease .gc-card{flex-direction:column;align-items:stretch}
  .ka-gc-tease .btn{width:100%}
}

/* #317 Desktop polish: tier cards even gutters */
@media (min-width:900px){
  .tiers,.tiers-2,.grid-3{gap:1.35rem}
  .tier.px-box,.v5-card{padding:1.35rem 1.4rem}
}

/* #318 Arcade cabinet titles / play buttons */
.cabinet .btn,.cabinet a.btn{min-height:48px}
.cabinet h3{line-height:1.35}

/* #319 Refer page body / reward lines */
#ref-members p,.refer-grid p{font-size:1.15rem;line-height:1.55}

/* #320 Town nearby heading clearer */
.nearby h2,.nearby h3{font-size:1.2rem;margin-bottom:.5rem}

/* #321 Motion-safe: VIP strip / teaser soft fade only when motion on */
@media (prefers-reduced-motion:no-preference){
  html:not(.calm) .ka-gc-tease .gc-card{
    transition:box-shadow .15s ease,border-color .15s ease
  }
}

/* #322 Focus: Insert Token / Refer stay obvious */
.tb-btn:focus-visible{outline:3px solid #ff3fb4;outline-offset:3px}

/* #323 High-contrast form fields */
html.hc input,html.hc select,html.hc textarea{
  background:#000!important;color:#fff!important;border:2px solid #fff!important
}
html.hc label{color:#fff!important}

/* #324 Contact big-links email/text row */
.big-links .btn,.contact-grid .btn{font-size:1.1rem}
@media (min-width:700px){
  .big-links{gap:1rem}
}

/* #325 Quest result CTA row */
.quest-result .actions,.quest-result p{font-size:1.15rem}
@media (max-width:420px){
  .quest-result .btn{width:100%}
}

/* #326 Footer Help/Account lists: roomier items */
footer .footer-col li a{min-height:44px;display:inline-flex;align-items:center;padding:.2rem 0;font-size:1.05rem}

/* #327 Reduced-motion: disable comet shimmer if present */
html.calm .comet,html.calm .btn.comet{animation:none!important;background-size:auto!important}
@media (prefers-reduced-motion:reduce){
  .comet,.btn.comet{animation:none!important}
}
