/* Public composition adapter. Approved original artwork remains untouched. */
@font-face { font-family:Montserrat; src:url('/design-system/montserrat.ttf') format('truetype'); font-style:normal; font-weight:100 900; font-display:swap; }
:root { --blue:var(--bubba-ui-primary); --blue-dark:var(--bubba-ui-primary-hover); --red:var(--bubba-color-action); --red-dark:var(--bubba-color-action-hover); --black:var(--bubba-color-ink); --white:var(--bubba-ui-surface); --off-white:var(--bubba-ui-canvas); --border:var(--bubba-ui-line); --text:var(--bubba-ui-text); --muted:var(--bubba-ui-muted); --font-head:var(--bubba-font-body); }
html { background:var(--bubba-ui-canvas); font-family:var(--bubba-font-body); color:var(--bubba-ui-text); scroll-padding-top:100px; }
body { min-width:320px; font-family:var(--bubba-font-body); line-height:1.6; }
body :where(p,span,a,button,input,textarea,select,label,div,td,th) { font-family:var(--bubba-font-body); }
body [style*="font-family"] { font-family:var(--bubba-font-body)!important; }
h1,h2,h3,.section-title,.page-banner-title,.product-name,.cat-name,.loc-city,.faq-question { font-family:var(--bubba-font-body); font-weight:850; letter-spacing:-.025em; line-height:1.18; text-wrap:balance; }
h1,h2,h3 { overflow-wrap:anywhere; }
p { text-wrap:pretty; }
a { text-underline-offset:4px; }
button,input,select,textarea { font:inherit; caret-color:var(--bubba-ui-text); }
:where(button,input,select,textarea,summary), .nav-center a, .nav-social a, .mobile-nav a { min-height:44px; }
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--bubba-ui-focus); outline-offset:3px; box-shadow:0 0 0 3px var(--bubba-ui-focus-inner); }
button:disabled,input:disabled,select:disabled,textarea:disabled { background:var(--bubba-ui-disabled-surface)!important; color:var(--bubba-ui-disabled-text)!important; cursor:not-allowed; opacity:1; box-shadow:none; }
input::placeholder,textarea::placeholder { color:var(--bubba-ui-muted); opacity:1; }
input[aria-invalid=true],textarea[aria-invalid=true] { border:2px solid var(--bubba-ui-error-border); }
::selection { background:var(--bubba-ui-selection); color:var(--bubba-ui-selection-text); }
* { scrollbar-color:var(--bubba-ui-scrollbar) var(--bubba-ui-scrollbar-track); }
.container { max-width:1280px; padding-inline:32px; }
#navbar { background:var(--bubba-ui-surface); border-bottom:1px solid var(--bubba-ui-line); padding-inline:max(24px,calc((100vw - 1280px)/2)); }
.nav-center { gap:20px; }
.nav-center a { display:flex; align-items:center; font-size:12px; font-style:normal; letter-spacing:0; font-weight:750; color:var(--bubba-ui-muted); }
.nav-center a.active,.nav-center a:hover { color:var(--bubba-ui-heading); }
.nav-cta { display:inline-flex; align-items:center; min-height:44px; font-size:12px; letter-spacing:0; font-style:normal; box-shadow:var(--bubba-ui-shadow-action); border-radius:var(--bubba-radius-control); }
.nav-social a { min-width:44px; justify-content:center; }
.hamburger { min-width:44px; align-items:center; justify-content:center; }
.top-anniversary { background:var(--bubba-effect-campaign-blue); }
#hero { padding:150px 32px 64px; min-height:620px; background:var(--bubba-ui-canvas); }
.hero-inner { max-width:1120px; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:48px; }
.hero-logo-img img { width:min(100%,560px); height:auto; max-height:280px; }
.hero-tagline { font-size:clamp(16px,2vw,21px); letter-spacing:0; font-style:normal; line-height:1.5; max-width:32ch; }
.hero-mascot-col img { max-width:300px; max-height:440px!important; }
.hero-eyebrow,.section-label,.featured-label { font-size:12px; font-weight:750; font-style:normal; letter-spacing:.025em; }
.hero-eyebrow { background:none; border:0; padding:0; color:var(--bubba-ui-muted); }
.btn-primary,.btn-secondary,.btn-outline-white,.btn-outline-dark { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 20px; font-size:14px; font-weight:800; line-height:1.4; letter-spacing:0; font-style:normal; border-radius:var(--bubba-radius-control); transition:background var(--bubba-motion-feedback); }
.btn-primary { background:var(--bubba-color-action); color:var(--bubba-ui-action-text); box-shadow:var(--bubba-ui-shadow-action); }
.btn-primary:hover { background:var(--bubba-color-action-hover); transform:none; box-shadow:var(--bubba-ui-shadow-action); }
.btn-secondary { background:var(--bubba-ui-primary); color:var(--bubba-ui-on-primary); box-shadow:var(--bubba-ui-shadow-action); }
.btn-secondary:hover { background:var(--bubba-ui-primary-hover); transform:none; box-shadow:var(--bubba-ui-shadow-action); }
.page-header-banner { background:var(--bubba-effect-campaign-blue); padding:152px 0 48px; }
.page-banner-title { font-size:clamp(32px,6vw,64px); color:var(--bubba-ui-action-text); }
.page-header-banner p { color:#FFFFFF!important; }
.section-title { font-size:clamp(28px,3.5vw,44px); }
.section-body { font-size:16px; line-height:1.7; max-width:72ch; }
.products-grid,.categories-grid { gap:20px; }
.product-card,.cat-card,.loc-card,.faq-item { border:1px solid var(--bubba-ui-line); border-radius:var(--bubba-radius-panel); }
.product-info,.cat-info { padding:20px; }
.product-name,.cat-name { font-size:17px; font-style:normal; line-height:1.4; }
.product-price { font-size:22px; letter-spacing:0; font-style:normal; font-variant-numeric:tabular-nums; }
.product-cat,.cat-count,.yt-link { font-size:12px; letter-spacing:0; }
.product-img-wrap,.cat-img-wrap,.product-hero { background:#FFFFFF; }
.product-img-wrap img { object-fit:contain; }
.anniversary-section { background:var(--bubba-color-heading); }
.ann-num { color:var(--bubba-color-accent); background:none; -webkit-text-fill-color:currentColor; font-size:clamp(64px,13vw,160px); }
.ann-sub,.ann-label { color:#D9E8FB; }
.ann-badge { color:#FFFFFF; }
.perk-title { font-size:15px; letter-spacing:0; color:var(--bubba-ui-heading); }
.perk-desc { font-size:14px; }
.loc-city { font-size:24px; }
.loc-address,.loc-phone,.loc-hours-text { font-size:14px; }
.hours-badge.open { color:var(--bubba-ui-success); background:var(--bubba-ui-success-surface); }
.hours-badge.closed,.hours-badge.season-closed { color:var(--bubba-ui-muted); background:var(--bubba-ui-hover); }
.faq-question { font-size:16px; font-style:normal; padding:20px; }
.faq-answer p { font-size:15px; padding-inline:20px; }
.search-overlay { background:color-mix(in srgb,var(--bubba-ui-overlay) 40%,transparent); }
.search-panel { background:var(--bubba-ui-surface); color:var(--bubba-ui-text); border-radius:var(--bubba-radius-panel); }
.search-bar { border-color:var(--bubba-ui-line); }
.search-close,.search-hint,.search-empty { color:var(--bubba-ui-muted); }
.search-empty { border:1px dashed var(--bubba-ui-border); border-radius:var(--bubba-radius-panel); }
.mobile-nav { background:var(--bubba-ui-surface); color:var(--bubba-ui-text); }
.mobile-nav a { font-size:20px; letter-spacing:0; }
footer { background:var(--bubba-color-heading); }
footer p,footer a { color:#D9E8FB; }
footer a:hover { color:#FFFFFF; }
.footer-links a { min-height:44px; display:inline-flex; align-items:center; }
.footer-bottom { color:#D9E8FB; }
@media(max-width:1100px) { .nav-center { gap:12px; } .nav-center a { font-size:11px; } .nav-social { display:none; } }
@media(max-width:760px) { .container { padding-inline:16px; } #hero { padding:144px 16px 40px; min-height:0; } .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,.65fr); gap:12px; } .hero-tagline { font-size:14px; margin-bottom:20px; } .hero-logo-img img { height:auto; } .hero-mascot-col img { max-height:260px!important; max-width:100%; } .hero-actions { gap:8px; } .hero-actions button { width:100%; padding:12px; } .hero-eyebrow { font-size:10px; } .page-header-banner { padding:140px 0 32px; } .products-grid,.categories-grid { gap:12px; } .product-info,.cat-info { padding:12px; } .product-name,.cat-name { font-size:14px; } .product-price { font-size:20px; } .anniversary-section { padding:40px 16px; } }
@media(max-width:360px) { .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,.5fr); } .hero-mascot-col img { max-height:220px!important; } .hero-tagline { font-size:12px; } .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .reveal { opacity:1!important; transform:none!important; } }

/* Content is visible immediately; the existing ticker is the single moving composition. */
.reveal { opacity:1!important; transform:none!important; transition:none!important; }
.hero-content,.hero-mascot-col { animation:none; }
.top-anniversary { background:var(--bubba-color-heading); }
#signupGate p,#signupForm p { color:var(--bubba-ui-muted)!important; }
#signupGate label,#signupForm label,#signupGate label span { color:var(--bubba-ui-text)!important; }
#signupGate input:not([type=checkbox]),#signupForm input:not([type=checkbox]) { min-height:48px; min-width:0; border:1px solid var(--bubba-ui-border)!important; color:var(--bubba-ui-text); background:var(--bubba-ui-surface); border-radius:var(--bubba-radius-control)!important; }
#signupGate button,#signupForm button { border-radius:var(--bubba-radius-control)!important; }
#signupGate button:disabled { opacity:1!important; }
#signupError { color:var(--bubba-ui-error)!important; background:var(--bubba-ui-error-surface); padding:16px; border:1px solid var(--bubba-ui-error-border); border-radius:var(--bubba-radius-control); }
#signupThankYou p { color:var(--bubba-ui-muted)!important; }
#signupThankYou p[style*="monospace"] { color:var(--bubba-ui-heading)!important; font-family:ui-monospace,monospace!important; }
footer .footer-links li[style],footer .footer-bottom a { color:#D9E8FB!important; }
@media(max-width:390px) { #signupGate > div,#signupForm > div { padding:24px 16px!important; } #signupFirst,#signupLast { padding-inline:8px!important; } }
@media(max-width:760px) {
  #hero { padding:96px 16px 32px; }
  .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,.6fr); gap:16px; padding-top:0; text-align:left; }
  .hero-content { order:0; text-align:left; }
  .hero-mascot-col { order:0; }
  .hero-logo-img img { width:100%; max-width:280px; height:auto; }
  .hero-tagline { font-size:14px; line-height:1.5; }
  .hero-eyebrow { font-size:10px; line-height:1.5; margin-bottom:16px; }
  .hero-actions { justify-content:flex-start; }
  .hero-actions button { font-size:12px; }
}
