/* Seasonal presentation, November 2026. Existing page behavior stays in app.js. */
:root {
  --ink: #102d29;
  --leather: #153b33;
  --leather-soft: #204c40;
  --cream: #fff8e9;
  --paper: #fcfbf5;
  --sand: #e3ece5;
  --ember: #a62c40;
  --ember-dark: #862235;
  --toast: #b42e42;
  --toast-dark: #922337;
  --gold: #e8bd6b;
  --line: rgba(24, 66, 52, .2);
  --shadow: 0 22px 60px rgba(16,45,41,.12);
}
body { background: var(--paper); }
body::before { opacity: .15; background-image: radial-gradient(#759c8c .6px, transparent .6px); }
.site-header { background: rgba(12,39,33,.98); border-bottom: 2px solid var(--gold); }
.site-header::after {
  content: ""; position: absolute; bottom: -6px; left: 0; right: 0; height: 10px; pointer-events: none;
  background: radial-gradient(ellipse at center, #ffe4a1 0 2px, rgba(255,222,146,.3) 3px, transparent 6px) 18px 0 / 48px 10px repeat-x;
}
.site-header nav a::after { background: var(--gold); }
.site-header .button-small { box-shadow: 0 6px 22px rgba(180,46,66,.22); }
.button:hover { box-shadow: 0 12px 24px rgba(125,32,48,.2); }
.hero { min-height: clamp(660px,56.25vw,870px); background: #0c2926; }
.hero picture { display: block; }
.hero-art { width: 100%; height: clamp(660px,56.25vw,870px); min-height: 0; object-fit: cover; object-position: center; }
.hero::before { background: linear-gradient(90deg,transparent 40%,rgba(6,29,26,.12) 53%,rgba(6,29,26,.32)); }
.hero-order-card {
  width: min(510px,43vw); right: clamp(24px,4vw,80px); top: 50%; transform: translateY(-50%);
  padding: clamp(26px,3vw,44px); background: rgba(9,35,30,.94); border: 1px solid rgba(232,189,107,.65);
  box-shadow: 0 24px 74px rgba(0,0,0,.3);
}
.hero-order-card h1 { font-size: clamp(46px,4.9vw,76px); }
.hero .eyebrow { letter-spacing: .13em; line-height: 1.6; }
.hero-slogan { color: var(--gold); }
.order-note { color: #d7e5dd; }
.quick-strip { background: #a52c3e; color: white; border-block: 1px solid #c46d70; }
.awards-section { background: #153b33; }
.awards-copy > p:not(.eyebrow), .award-gallery > *, .catering-grid > div > p:not(.eyebrow), .pizza-math p,
.community-section .section-heading > p:last-child, .community-grid p, .visit-copy > p:not(.eyebrow),
.footer-links a, .footer-bottom, .deals-teaser p:not(.eyebrow), .deals-teaser-card li,
.page-hero p:not(.eyebrow), .local-search-panel p { color: #d6e4d9; }
.deals-teaser { background: radial-gradient(circle at 8% 10%, rgba(232,189,107,.1), transparent 34%), linear-gradient(125deg,#204b3e,#102e28); }
.deals-teaser-card { background: rgba(8,36,28,.36); border-color: rgba(232,189,107,.45); }
.menu-section { background: #e8efe9; border-color: var(--line); }
.menu-tools { background: rgba(232,239,233,.97); }
.menu-card, .seasonal-card { border-color: var(--line); }
.seasonal-card { background: var(--paper); }
.seasonal-card.accent { background: #a52c3e; }
.seasonal-card p:not(.mini-label), .menu-card p, .build-intro > p:not(.eyebrow),
.story-copy > p:not(.eyebrow):not(.lead), .value-grid p, .faq-heading > p:last-child,
.faq-list details p, .result-count, .seo-card p, .route-note { color: #435e52; }
.menu-card.featured p, .seasonal-card.accent p { color: #f8f5e9; }
.build-option-card, .option-chips span { border-color: var(--line); }
.catering-section { background: #12372e; }
.catering-section::before { background-image: radial-gradient(circle at 85% 20%,rgba(232,189,107,.22),transparent 30%),radial-gradient(circle at 70% 100%,rgba(180,46,66,.22),transparent 34%); }
.big-number { color: var(--gold); }
.value-grid article, .deal-rules, .legal-nav, .legal-note, .application-panel,
.process-grid article, .accessibility-switches > button { background: #e8efe7; }
.community-section, .community-grid a { background: #102e28; }
.community-grid span { color: var(--gold); }
.community-grid a:hover { background: #204c40; }
.visit-card { background: radial-gradient(circle at 50% 0,rgba(232,189,107,.13),transparent 40%),#153b33; }
footer { background: #0b2520; }
.footer-main { border-bottom-color: rgba(232,189,107,.25); }
.footer-bottom .scripture { color: #d6e4d9; }
.page-hero { background-color: #153b33; background-image: radial-gradient(circle at 85% 18%,rgba(232,189,107,.14),transparent 28%),linear-gradient(125deg,#204b3e,#102e28); border-bottom-color: var(--gold); }
.page-hero::after { opacity: .38; background-image: radial-gradient(circle,#fff7e6 0 1px,transparent 1.5px),radial-gradient(circle,#fff7e6 0 1px,transparent 1.5px); background-size: 113px 97px,197px 163px; background-position: 8px 12px,50px 60px; }
.deal-card.legendary-hour { background: linear-gradient(135deg,#244d3d,#102e28); }
.seo-card-accent, .recognition-feature, .community-route-grid article, .menu-directory-grid article { background: #eef2e9; }
.page-cta { background: #a52c3e; color: white; }
.page-content .button-ghost { border-color: var(--ink); color: var(--ink); }
.seasonal-page-hero { background: #0c2926; }
.seasonal-page-hero img { max-height: 680px; object-position: center; }
.order-dialog, .map-dialog { background: #153b33; }
.order-dialog-card > .eyebrow { color: var(--gold); }
.dialog-options a, .order-dialog-card .dialog-close { border-color: rgba(232,189,107,.45); }
:focus-visible { outline: 3px solid #bd7132; outline-offset: 5px; }
.site-header :focus-visible, .hero :focus-visible, footer :focus-visible { outline-color: #ffe0a1; }
/* Leave the existing accessibility controls authoritative. */
html[data-access-contrast="true"] { --ink: #000; --leather: #000; --leather-soft: #111; --cream: #fff; --paper: #fff; --sand: #eee; --line: #000; --gold: #ffdc5e; }
html[data-access-contrast="true"] body { background: #fff; }
html[data-access-contrast="true"] :where(.site-header,.hero-order-card,.awards-section,.deals-teaser,.catering-section,.community-section,.community-grid a,.visit-card,footer,.page-hero,.local-search-panel,.order-dialog,.map-dialog) { background: #000 !important; color: #fff !important; }
html[data-access-contrast="true"] :where(.menu-section,.menu-tools,.value-grid article,.application-panel,.seasonal-card,.recognition-feature,.community-route-grid article,.menu-directory-grid article) { background: #fff !important; color: #000 !important; }
@media (max-width: 850px) {
  .hero { min-height: 0; }
  .hero-art { height: auto; min-height: 0; object-fit: contain; }
  .hero-order-card { position: relative; width: 100%; max-width: none; right: auto; top: auto; transform: none; padding: 34px 24px 40px; background: #102e28; border: 0; border-top: 1px solid var(--gold); }
  .hero-order-card h1 { font-size: clamp(46px,8vw,68px); }
  .hero .eyebrow { margin-bottom: 14px; }
  .site-header nav { background: #102e28; border-color: rgba(232,189,107,.35); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
.instore-option { background: linear-gradient(135deg,#244a3b,#102e28); }
.button.toast-button { box-shadow: 0 10px 24px rgba(180,46,66,.22); }
.button.toast-button:hover { box-shadow: 0 12px 24px rgba(146,35,55,.24); }
.seasonal-page-hero { position: relative; }
.seasonal-brand-mark { position: absolute; z-index: 2; left: clamp(18px,2.5vw,42px); top: 24px; width: 132px; padding: 16px; border: 1px solid rgba(232,189,107,.6); border-radius: 50%; background: rgba(9,35,30,.92); box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.seasonal-brand-mark img, .seasonal-page-hero .seasonal-brand-mark img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
@media (max-width: 850px) {
 .seasonal-brand-mark { left: 14px; top: 14px; width: 86px; padding: 10px; }
}
/* Christmas refresh: supplied holiday logo, real pizza, and festive detail. */
.site-header .brand img { width: 86px; height: 86px; mix-blend-mode: normal; }
.site-header { padding-block: 5px; }
.site-header::after { height: 12px; bottom: -8px; background: radial-gradient(ellipse at 16% 50%,#f6d57c 0 2px,rgba(246,213,124,.25) 3px,transparent 6px),radial-gradient(ellipse at 50% 50%,#d86978 0 2px,rgba(216,105,120,.2) 3px,transparent 6px),radial-gradient(ellipse at 84% 50%,#9bd2bf 0 2px,rgba(155,210,191,.2) 3px,transparent 6px); background-size: 100px 12px; }
.hero { min-height: clamp(780px,60vw,900px); }
.hero-art { height: clamp(780px,60vw,900px); object-position: 42% center; }
.hero-order-card { width: min(520px,43vw); padding: 25px 32px 30px; border-color: #e5c88e; background: linear-gradient(145deg,rgba(15,53,43,.97),rgba(7,31,27,.97)); box-shadow: 0 24px 80px #00140e66, inset 0 0 0 6px #c3a5650e, inset 0 0 0 7px #c3a5653b; text-align: center; }
.holiday-brand-row { display: flex; align-items: center; justify-content: center; gap: 18px; margin: -12px 0 10px; }
.holiday-logo { display: block; width: 165px; height: 165px; object-fit: contain; filter: drop-shadow(0 3px 5px #0004); }
.holiday-pizza { display: block; width: 150px; height: auto; transform: rotate(-7deg); filter: saturate(.96) sepia(.04) drop-shadow(0 9px 9px #0007); }
.hero .hero-order-card .eyebrow { width: fit-content; margin: 0 auto 18px; padding: 7px 13px; border: 1px solid #d1ac6d; background: #992d40; color: #fff3d9; font-size: 10px; letter-spacing: .12em; }
.hero-order-card h1 { font-size: clamp(42px,4.1vw,62px); line-height: 1; }
.holiday-title-intro { display: block; margin-bottom: 6px; color: #edcf95; font: italic 400 clamp(26px,2.8vw,36px)/1.15 Georgia,serif; letter-spacing: -.025em; text-transform: none; }
.hero .hero-order-card > p.hero-slogan { margin: 16px 0 12px; font-size: 20px; }
.hero-order-card > p:not(.eyebrow):not(.order-note):not(.hero-slogan) { margin: 12px 0 18px; font-size: 15px; line-height: 1.6; }
.hero-actions { margin-top: 18px; }
.hero-order-card .order-note { font-size: 11px; line-height: 1.5; }
.hero-actions .button { min-height: 52px; font-size: 14px; }
.holiday-snow { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
.holiday-snow::after { content: ""; position: absolute; inset: -100px 0; opacity: .48; background: radial-gradient(circle,#fffbe8 0 1.1px,transparent 2px) 16px 14px / 137px 127px,radial-gradient(circle,#fffbe8 0 .8px,transparent 1.6px) 64px 54px / 211px 181px; animation: holiday-snowfall 24s linear infinite; }
@keyframes holiday-snowfall { to { transform: translate(15px,127px); } }
.seasonal-page-hero .seasonal-brand-mark { width: 182px; padding: 7px; border-color: #ddc183; box-shadow: 0 0 0 5px #11382d77,0 10px 30px #001a1155; }
.footer-brand img { mix-blend-mode: normal; }
@media (max-width: 1100px) and (min-width: 851px) {
 .hero-order-card { padding-inline: 23px; }
 .holiday-brand-row { gap: 10px; }
 .holiday-logo { width: 145px; height: 145px; }
 .holiday-pizza { width: 128px; }
}
@media (max-width: 850px) {
 .site-header .brand img { width: 72px; height: 72px; }
 .hero { min-height: 0; }
 .hero-art { height: auto; object-fit: contain; }
 .hero-order-card { width: 100%; padding: 26px 24px 34px; border: 0; border-top: 2px solid #d9b875; }
 .holiday-brand-row { margin-top: -8px; gap: 22px; }
 .holiday-logo { width: 152px; height: 152px; }
 .holiday-pizza { width: 140px; }
 .hero-order-card h1 { font-size: clamp(42px,9vw,62px); }
 .holiday-title-intro { font-size: 30px; }
 .holiday-snow { height: 88vw; }
 .seasonal-page-hero .seasonal-brand-mark { width: 112px; padding: 5px; }
}
@media (max-width: 360px) {
 .holiday-brand-row { gap: 10px; }
 .holiday-logo { width: 140px; height: 140px; }
 .holiday-pizza { width: 120px; }
 .hero-order-card h1 { font-size: 39px; }
}
@media (prefers-reduced-motion: reduce) { .holiday-snow::after { animation: none !important; } }
html[data-access-motion="true"] .holiday-snow::after { animation: none !important; }
@media (min-width: 1101px) { .holiday-logo { width: 200px; height: 200px; } }
@media (min-width: 851px) { html { scroll-padding-top: 110px; } .menu-tools { top: 98px; } }
@media (max-width: 850px) { html { scroll-padding-top: 94px; } .menu-tools { top: 84px; } .holiday-logo { width: 170px; height: 170px; } .holiday-pizza { width: 130px; } .holiday-brand-row { gap: 16px; } }
@media (max-width: 360px) { .holiday-logo { width: 140px; height: 140px; } .holiday-pizza { width: 120px; } .holiday-brand-row { gap: 10px; } }

/* Native horizontal scrolling remains available without JavaScript. */
.reviews-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:0 0 1.2rem}
.reviews-toolbar .reviews-intro{margin:0;max-width:42rem}
.reviews-controls{display:flex;gap:.55rem;flex-shrink:0}
.reviews-controls[hidden]{display:none}
.review-arrow{width:46px;height:46px;border:1px solid #d6b47b;border-radius:50%;background:#153d33;color:#fff4df;font-size:1.3rem;font-weight:700;font-family:inherit;cursor:pointer}
.review-arrow:hover:not(:disabled){background:#872f38}
.review-arrow:disabled{opacity:.35;cursor:default}
.review-arrow:focus-visible,.reviews-carousel:focus-visible{outline:3px solid #f0c57b;outline-offset:4px}
.reviews-carousel{display:flex;gap:1.25rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:4px 2px 1rem;scrollbar-color:#b89055 #153d33;scrollbar-width:thin}
.reviews-carousel .review-card{position:relative;box-sizing:border-box;flex:0 0 calc((100% - 2.5rem)/3);min-width:0;margin:0;scroll-snap-align:start;display:flex;flex-direction:column;min-height:275px}
.reviews-carousel .review-score{letter-spacing:.16em;color:#eac47c}
.reviews-carousel blockquote{flex:1;margin:0 0 1.5rem}
.reviews-carousel figcaption{margin-top:auto}
.review-rating-only{flex:1;font-style:italic;color:#4a5d51;text-transform:none;letter-spacing:normal}
@media(max-width:1000px){.reviews-carousel .review-card{flex-basis:calc((100% - 1.25rem)/2)}}
@media(max-width:600px){.reviews-toolbar{align-items:flex-end;gap:.7rem}.reviews-toolbar .reviews-intro{font-size:.9rem}.reviews-controls{gap:.35rem}.review-arrow{width:42px;height:42px}.reviews-carousel .review-card{flex-basis:88%;min-height:260px}}
