/* ===================================
   HIRES BIG H — Global Styles
   Utah's Original Drive-In Since 1959
   =================================== */

:root {
  --crimson: #d9514b;
  --crimson-deep: #c4443f;
  --crimson-glow: rgba(217,81,75,.12);
  --blue: #90bde3;
  --blue-soft: #a8cde9;
  --blue-deep: #6a9dc7;
  --cream: #fdf6ec;
  --cream-mid: #f9f0e0;
  --cream-warm: #f3ead8;
  --parchment: #fbf5ea;
  --charcoal: #2f2f2f;
  --charcoal-soft: #3a3a3a;
  --slate: #5a5a5a;
  --mist: #949494;
  --white: #FFFFFF;
  --fs-hero: clamp(3rem,7vw,5.5rem);
  --fs-h2: clamp(2rem,4vw,3.2rem);
  --fs-h3: clamp(1.25rem,2vw,1.75rem);
  --fs-body: clamp(.95rem,1.1vw,1.1rem);
  --fs-small: .875rem;
  --fs-xs: .75rem;
  --section-pad: clamp(80px,10vw,140px);
  --container: 1240px;
  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --shadow-sm: 0 2px 8px rgba(30,27,23,.06);
  --shadow-md: 0 8px 32px rgba(30,27,23,.08);
  --shadow-lg: 0 20px 60px rgba(30,27,23,.12);
  --shadow-xl: 0 32px 80px rgba(30,27,23,.16);
  --radius: 16px;
  --radius-lg: 24px;
}

/* CUSTOM FONTS — now loaded via Adobe Fonts (Typekit)
@font-face {
  font-family: 'Cheap Pine';
  src: url('https://pub-8c4898b448c84fa9a36cf230c13c60e3.r2.dev/fonts/Cheap-Pine-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Thirsty Script';
  src: url('https://pub-8c4898b448c84fa9a36cf230c13c60e3.r2.dev/fonts/Thirsty-Script-Regular.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
*/

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:80px; }
body { font-family:'DM Sans',-apple-system,sans-serif; color:var(--charcoal-soft); background:var(--cream); overflow-x:hidden; -webkit-font-smoothing:antialiased; line-height:1.6; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
.container { max-width:var(--container); margin:0 auto; padding:0 clamp(20px,4vw,40px); }

/* TYPOGRAPHY HELPERS */
.section-label { font-size:var(--fs-xs); font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--crimson); margin-bottom:12px; display:flex; align-items:center; gap:12px; }
.section-label::before { content:''; width:32px; height:1.5px; background:var(--crimson); }
.section-title { font-family:"cheap-pine-sans","Playfair Display",Georgia,serif; font-weight:400; font-style:normal; font-size:var(--fs-h2); color:var(--charcoal); line-height:1.15; margin-bottom:20px; }
.section-desc { font-size:var(--fs-body); color:var(--slate); max-width:560px; line-height:1.8; font-weight:300; }

/* REVEAL ANIMATIONS */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }

/* NAV — Floating Pill */
nav { position:fixed; top:20px; left:50%; transform:translateX(-50%); z-index:1000; width:calc(100% - 40px); max-width:1000px; background:rgba(253,246,236,.92); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-radius:50px; border:1px solid rgba(180,160,130,.15); box-shadow:0 8px 32px rgba(100,80,50,.1); transition:all .5s var(--ease-out); animation:navSlideDown .8s var(--ease-out) .2s both; }
nav.scrolled { top:12px; background:rgba(253,246,236,.98); box-shadow:0 12px 40px rgba(100,80,50,.15); }
@keyframes navSlideDown { from { opacity:0; transform:translateX(-50%) translateY(-20px); } to { opacity:1; transform:translateX(-50%) translateY(0); } }
.nav-inner { display:flex; align-items:center; justify-content:space-between; padding:10px 12px 10px 24px; }
.nav-brand { display:flex; align-items:center; gap:12px; }
.nav-brand-icon { height:36px; width:auto; flex-shrink:0; transition:transform .3s var(--ease-spring); }
.nav-brand-icon img { height:100%; width:auto; object-fit:contain; }
.nav-brand:hover .nav-brand-icon { transform:scale(1.06); }
.nav-brand-text { font-family:"cheap-pine-sans","Playfair Display",serif; font-weight:700; font-size:17px; color:var(--charcoal); letter-spacing:-0.3px; }
.nav-brand-sub { font-size:9px; font-weight:500; letter-spacing:2px; text-transform:uppercase; color:rgba(47,47,47,.4); margin-top:-2px; }
.nav-links { display:flex; gap:28px; align-items:center; list-style:none; }
.nav-links a { font-size:12px; font-weight:600; color:rgba(47,47,47,.6); letter-spacing:.8px; text-transform:uppercase; position:relative; transition:color .3s; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:2px; background:var(--crimson); transition:width .3s var(--ease-out); border-radius:1px; }
.nav-links a:hover, .nav-links a.active { color:var(--charcoal); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-order { background:var(--crimson)!important; color:var(--white)!important; padding:10px 24px; border-radius:100px; font-weight:700!important; letter-spacing:1px!important; box-shadow:0 4px 16px rgba(217,81,75,.3); white-space:nowrap; }
.nav-order::after { display:none!important; }
.nav-order:hover { background:var(--crimson-deep)!important; transform:translateY(-2px); box-shadow:0 8px 28px rgba(217,81,75,.4)!important; }
.nav-hours { display:none; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:8px; z-index:10000; position:relative; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--charcoal); margin:5px 0; transition:all .3s; border-radius:2px; }
.nav-toggle.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); background:var(--charcoal); }
.nav-toggle.open span:nth-child(2) { opacity:0; }
.nav-toggle.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); background:var(--charcoal); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:10px; padding:16px 36px; border-radius:100px; font-family:'DM Sans',sans-serif; font-size:14px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; border:none; cursor:pointer; transition:all .4s var(--ease-out); text-decoration:none; }
.btn-fill { background:var(--crimson); color:var(--cream); box-shadow:0 6px 24px rgba(139,26,26,.25); }
.btn-fill:hover { background:var(--crimson-deep); transform:translateY(-3px); box-shadow:0 12px 36px rgba(139,26,26,.35); }
.btn-outline { background:transparent; color:var(--charcoal); border:2px solid rgba(30,27,23,.15); }
.btn-outline:hover { border-color:var(--crimson); color:var(--crimson); transform:translateY(-3px); }
.btn-gold { background:var(--blue); color:var(--white); box-shadow:0 6px 24px rgba(144,189,227,.25); }
.btn-gold:hover { background:var(--blue-soft); transform:translateY(-3px); box-shadow:0 12px 36px rgba(144,189,227,.35); }

/* PAGE HERO (for inner pages) */
.page-hero { padding:160px 0 80px; background:var(--charcoal); position:relative; overflow:hidden; text-align:center; }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 20% 80%,rgba(139,26,26,.15) 0%,transparent 50%), radial-gradient(ellipse at 80% 20%,rgba(145,187,227,.08) 0%,transparent 50%); }
.page-hero-inner { position:relative; z-index:2; }
.page-hero .section-label { color:var(--blue); justify-content:center; }
.page-hero .section-label::before { background:var(--blue); }
.page-hero h1 { font-family:"thirsty-script","Playfair Display",Georgia,serif; font-weight:300; font-style:normal; font-size:var(--fs-hero); color:var(--cream); line-height:1.1; margin-bottom:20px; }
.page-hero p { font-size:var(--fs-body); color:rgba(250,245,235,.6); max-width:600px; margin:0 auto; line-height:1.8; font-weight:300; }
.page-hero .accent { color:var(--blue); font-style:normal; font-family:"thirsty-script","Playfair Display",Georgia,serif; font-weight:300; }
.breadcrumb { font-size:var(--fs-small); color:rgba(250,245,235,.4); margin-bottom:24px; }
.breadcrumb a { color:var(--crimson); }
.breadcrumb a:hover { text-decoration:underline; }

/* FOOTER */
footer { background:var(--charcoal); color:rgba(250,245,235,.5); padding:80px 0 40px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:64px; }
.footer-brand .nav-brand-icon { margin-bottom:20px; }
.footer-brand p { font-size:14px; line-height:1.8; max-width:280px; font-weight:300; }
.footer-col h4 { font-family:"cheap-pine-sans","Playfair Display",serif; font-weight:400; font-style:normal; font-size:16px; color:var(--cream); margin-bottom:20px; }
.footer-col a { display:block; font-size:14px; color:rgba(250,245,235,.4); padding:6px 0; transition:color .3s; font-weight:300; }
.footer-col a:hover { color:var(--crimson); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.06); padding-top:32px; display:flex; justify-content:space-between; align-items:center; font-size:13px; }
.footer-bottom a { color:var(--crimson); font-weight:500; }

/* LOCATIONS GRID */
.locations-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; align-items:start; }

/* LOCATION CARDS (shared) */
.location-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-lg); padding:0; transition:all .4s var(--ease-out); position:relative; overflow:hidden; display:flex; flex-direction:column; }
.location-card-img { width:100%; aspect-ratio:16/9; overflow:hidden; }
.location-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out); }
.location-card:hover .location-card-img img { transform:scale(1.05); }
.location-card .location-badge, .location-card h3, .location-card .address, .location-card .offers, .location-card .location-offers, .location-card .location-hours, .location-card .location-actions, .location-card > p, .location-card [data-loc] { padding-left:36px; padding-right:36px; }
.location-card .location-badge { padding-top:24px; }
.location-card .location-actions { padding-bottom:36px; }
.location-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--crimson),var(--blue)); opacity:0; transition:opacity .4s; }
.location-card:hover { background:rgba(255,255,255,.07); border-color:rgba(144,189,227,.3); transform:translateY(-4px); }
.location-card:hover::before { opacity:1; }
.location-badge { display:inline-flex; gap:8px; align-items:center; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--blue); margin-bottom:16px; }
.location-badge .dot { width:6px; height:6px; border-radius:50%; background:var(--blue); }
.location-card h3 { font-family:"cheap-pine-sans","Playfair Display",serif; font-weight:400; font-style:normal; font-size:var(--fs-h3); color:var(--cream); margin-bottom:8px; }
.location-card .address { font-size:15px; color:rgba(250,245,235,.45); margin-bottom:20px; font-weight:300; }
.offer-tag { font-size:11px; font-weight:600; padding:6px 14px; border-radius:100px; letter-spacing:.5px; }
.offer-tag.hires { background:#8fbde4; color:#ffffff; }
.offer-tag.litsas { background:#1e1b17; color:#ffffff; }
.location-hours { font-size:14px; color:rgba(250,245,235,.5); line-height:1.8; font-weight:300; }
.location-hours strong { color:rgba(250,245,235,.7); font-weight:600; }
.location-actions { display:flex; flex-direction:column; gap:8px; margin-top:24px; }
.loc-btn { font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; padding:10px 14px; border-radius:6px; border:1.5px solid rgba(255,255,255,.15); color:var(--cream); transition:all .3s; cursor:pointer; background:transparent; font-family:'DM Sans',sans-serif; text-decoration:none; display:block; text-align:center; white-space:nowrap; }
.loc-btn:hover { border-color:var(--blue); color:var(--blue); background:rgba(144,189,227,.08); }

/* MENU CARDS (shared) */
.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.menu-grid-4 { grid-template-columns:repeat(4,1fr); }
.menu-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; transition:all .5s var(--ease-out); box-shadow:var(--shadow-sm); }
.menu-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.menu-card-img { aspect-ratio:16/11; overflow:hidden; position:relative; background:linear-gradient(135deg,var(--cream-warm) 0%,var(--cream-mid) 100%); }
.menu-card-img .img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:48px; opacity:.15; }
.menu-card-body { padding:28px; }
.menu-card-name { font-family:"cheap-pine-sans","Playfair Display",serif; font-weight:400; font-style:normal; font-size:20px; color:var(--charcoal); margin-bottom:10px; }
.menu-card-desc { font-size:14px; color:var(--mist); line-height:1.7; font-weight:300; margin-bottom:16px; }
.menu-card-footer { display:flex; justify-content:space-between; align-items:center; }
.menu-card-price { font-size:18px; font-weight:700; color:var(--crimson); }
.menu-card-tag { font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--crimson); background:rgba(217,81,75,.08); padding:4px 12px; border-radius:100px; }

/* CONTENT SECTIONS */
.content-section { padding:var(--section-pad) 0; }
.content-section:nth-child(even) { background:var(--white); }
.content-section:nth-child(odd) { background:var(--cream); }
.content-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,100px); align-items:center; }
.content-grid.reverse { direction:rtl; }
.content-grid.reverse > * { direction:ltr; }

/* FORM STYLES */
.form-group { margin-bottom:24px; }
.form-group label { display:block; font-size:13px; font-weight:600; letter-spacing:.8px; text-transform:uppercase; color:var(--charcoal); margin-bottom:8px; }
.form-group input,
.form-group select,
.form-group textarea { width:100%; padding:14px 20px; border:2px solid var(--cream-mid); border-radius:var(--radius); font-family:'DM Sans',sans-serif; font-size:15px; color:var(--charcoal); background:var(--white); transition:border-color .3s; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { outline:none; border-color:var(--crimson); }
.form-group textarea { min-height:120px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }

/* CARD GRID (generic) */
.card-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:28px; }

/* BLOG STYLES */
.blog-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .5s var(--ease-out); }
.blog-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.blog-card-img { aspect-ratio:16/9; background:linear-gradient(135deg,var(--cream-warm),var(--cream-mid)); overflow:hidden; display:flex; align-items:center; justify-content:center; }
.blog-card-body { padding:28px; }
.blog-card-meta { font-size:12px; color:var(--mist); letter-spacing:1px; text-transform:uppercase; font-weight:600; margin-bottom:12px; }
.blog-card-title { font-family:'Playfair Display',serif; font-size:22px; color:var(--charcoal); margin-bottom:12px; line-height:1.3; }
.blog-card-excerpt { font-size:14px; color:var(--slate); line-height:1.7; font-weight:300; margin-bottom:20px; }
.blog-card-link { font-size:13px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; color:var(--crimson); }
.blog-card-link:hover { color:var(--crimson-deep); }

/* BLOG POST */
.blog-post { max-width:780px; margin:0 auto; padding:60px clamp(20px,4vw,40px) var(--section-pad); }
.blog-post h1 { font-family:"cheap-pine-sans","Playfair Display",Georgia,serif; font-weight:400; font-style:normal; font-size:clamp(2rem,4vw,3rem); color:var(--charcoal); line-height:1.2; margin-bottom:20px; }
.blog-post .post-meta { font-size:14px; color:var(--mist); margin-bottom:40px; padding-bottom:32px; border-bottom:1px solid var(--cream-mid); }
.blog-post h2 { font-family:'Playfair Display',serif; font-size:clamp(1.5rem,2.5vw,2rem); color:var(--charcoal); margin:48px 0 20px; line-height:1.25; }
.blog-post h3 { font-family:'Playfair Display',serif; font-size:clamp(1.2rem,2vw,1.5rem); color:var(--charcoal); margin:36px 0 16px; }
.blog-post p { font-size:var(--fs-body); line-height:1.9; color:var(--slate); margin-bottom:24px; font-weight:300; }
.blog-post p strong { color:var(--charcoal); font-weight:600; }
.blog-post ul, .blog-post ol { margin:0 0 24px 24px; color:var(--slate); line-height:1.9; font-weight:300; }
.blog-post li { margin-bottom:8px; }
.blog-post blockquote { border-left:4px solid var(--crimson); padding:20px 28px; margin:32px 0; background:var(--cream); border-radius:0 var(--radius) var(--radius) 0; font-style:italic; color:var(--charcoal-soft); }
.blog-post a { color:var(--crimson); font-weight:500; }
.blog-post a:hover { text-decoration:underline; }
.blog-post .cta-box { background:var(--crimson); color:var(--cream); padding:40px; border-radius:var(--radius-lg); text-align:center; margin:48px 0; }
.blog-post .cta-box h3 { color:var(--cream); margin-top:0; }
.blog-post .cta-box p { color:rgba(250,245,235,.7); }
.blog-post .cta-box .btn { margin-top:16px; }

/* SHOP PRODUCT GRID */
.product-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:28px; }
.product-card { background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:all .5s var(--ease-out); }
.product-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.product-card-img { aspect-ratio:1; background:linear-gradient(135deg,var(--cream-warm),var(--cream-mid)); display:flex; align-items:center; justify-content:center; font-size:64px; opacity:.2; }
.product-card-body { padding:24px; }
.product-card-name { font-family:'Playfair Display',serif; font-size:18px; color:var(--charcoal); margin-bottom:8px; }
.product-card-price { font-size:20px; font-weight:700; color:var(--crimson); margin-bottom:12px; }
.product-card-desc { font-size:14px; color:var(--mist); line-height:1.6; font-weight:300; margin-bottom:16px; }

/* MAP EMBED */
.map-embed { width:100%; height:400px; border:none; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }

/* TIMELINE */
.timeline { position:relative; padding-left:40px; margin:40px 0; }
.timeline::before { content:''; position:absolute; left:16px; top:0; bottom:0; width:2px; background:var(--cream-mid); }
.timeline-item { position:relative; margin-bottom:40px; }
.timeline-item::before { content:''; position:absolute; left:-32px; top:6px; width:12px; height:12px; border-radius:50%; background:var(--crimson); border:3px solid var(--cream); }
.timeline-year { font-family:'Playfair Display',serif; font-size:24px; color:var(--crimson); font-weight:700; margin-bottom:8px; }
.timeline-text { font-size:var(--fs-body); color:var(--slate); line-height:1.8; font-weight:300; }

/* PARALLAX-LIKE EFFECT ON PAGE HERO */
.page-hero {
  background-size: 100% auto !important;
  background-position: center center !important;
  background-attachment: fixed;
  background-size: cover;
}
.page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 120%, rgba(213,80,79,.08) 0%, transparent 60%);
  pointer-events: none;
  animation: heroGlowPulse 8s ease-in-out infinite;
}
@keyframes heroGlowPulse {
  0%, 100% { opacity: .6; }
  50% { opacity: 1; }
}
.page-hero-inner {
  animation: heroContentFadeIn 1s var(--ease-out) .2s both;
}
@keyframes heroContentFadeIn {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

/* SMOOTH HOVER TRANSITIONS ON ALL CARDS */
.menu-card,
.location-card,
.blog-card,
.freshness-card,
.legacy-card,
.offer-card,
.product-card,
.book-card {
  transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .4s var(--ease-out), background .4s var(--ease-out);
}

/* NAV ANIMATION — handled via navSlideDown in nav rule */

/* PULSE ANIMATION ON ORDER NOW BUTTON */
.nav-order {
  animation: orderPulse 2.5s ease-in-out infinite;
  transition: all .4s var(--ease-out);
}
@keyframes orderPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(217,81,75,.3); }
  50% { box-shadow: 0 4px 24px rgba(217,81,75,.5), 0 0 0 6px rgba(217,81,75,.12); }
}
.nav-order:hover {
  animation: none;
}

/* LOCATION PICKER MODAL */
.loc-picker-overlay { display:none; position:fixed; inset:0; z-index:9999; background:rgba(47,47,47,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); align-items:center; justify-content:center; opacity:0; transition:opacity .3s var(--ease-out); }
.loc-picker-overlay.open { display:flex; opacity:1; }
.loc-picker { background:var(--cream); border-radius:var(--radius-lg); padding:48px 40px 40px; max-width:440px; width:90%; text-align:center; box-shadow:var(--shadow-xl); position:relative; transform:translateY(20px); transition:transform .3s var(--ease-out); }
.loc-picker-overlay.open .loc-picker { transform:translateY(0); }
.loc-picker-close { position:absolute; top:16px; right:20px; background:none; border:none; font-size:24px; color:var(--charcoal); cursor:pointer; padding:4px 8px; line-height:1; opacity:.5; transition:opacity .3s; }
.loc-picker-close:hover { opacity:1; }
.loc-picker h3 { font-family:"cheap-pine-sans","Playfair Display",serif; font-size:24px; color:var(--charcoal); margin-bottom:8px; }
.loc-picker p { font-size:14px; color:var(--slate); margin-bottom:28px; font-weight:300; }
.loc-picker-options { display:flex; flex-direction:column; gap:12px; }
.loc-picker-btn { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-radius:var(--radius); border:2px solid var(--cream-mid); background:var(--white); color:var(--charcoal); font-family:'DM Sans',sans-serif; font-size:15px; font-weight:600; cursor:pointer; transition:all .3s var(--ease-out); text-decoration:none; }
.loc-picker-btn:hover { border-color:var(--crimson); background:var(--crimson); color:var(--cream); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.loc-picker-btn span { font-size:12px; font-weight:400; opacity:.6; }
.loc-picker-btn:hover span { opacity:.9; }

/* SMOOTH IMAGE HOVER ZOOM ON MENU & BLOG CARD IMAGES */
.menu-card-img img,
.blog-card-img img,
.product-card-img img,
.gallery-item img {
  transition: transform .6s var(--ease-out), filter .6s var(--ease-out);
  will-change: transform;
}
.menu-card:hover .menu-card-img img,
.blog-card:hover .blog-card-img img,
.product-card:hover .product-card-img img,
.gallery-item:hover img {
  transform: scale(1.08);
  filter: brightness(1.03);
}

/* CONTENT SECTION IMAGE HOVER */
.content-grid img,
.founding-visual img,
.catering-visual img {
  transition: transform .6s var(--ease-out), filter .6s var(--ease-out);
}
.content-grid img:hover,
.founding-visual img:hover,
.catering-visual img:hover {
  transform: scale(1.02);
  filter: brightness(1.02);
}

/* SMOOTH BUTTON INTERACTIONS */
.btn {
  position: relative;
  overflow: hidden;
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.15) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: transform .6s var(--ease-out);
}
.btn:hover::before {
  transform: translateX(100%);
}

/* SECTION DIVIDER LINES */
.content-section + .content-section {
  border-top: 1px solid rgba(30,27,23,.04);
}

/* STAGGERED REVEAL TIMING FOR GRIDS */
.reveal-delay-4 { transition-delay: .4s; }
.reveal-delay-5 { transition-delay: .5s; }

/* SKIP LINK */
.skip-link { position:absolute; top:-100%; left:16px; z-index:10000; background:var(--crimson); color:var(--cream); padding:12px 24px; border-radius:0 0 var(--radius) var(--radius); font-size:14px; font-weight:700; text-decoration:none; transition:top .2s; }
.skip-link:focus { top:0; }

/* FOCUS VISIBLE */
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline:3px solid var(--crimson); outline-offset:3px; border-radius:4px;
}

/* REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:0.01ms !important; animation-iteration-count:1 !important;
    transition-duration:0.01ms !important; scroll-behavior:auto !important;
  }
  .reveal, .reveal-left, .reveal-right { opacity:1; transform:none; }
}

/* CONTENT VISIBILITY — lazy render off-screen sections */
.story, .promise, .menu, .locations, .order, .shop,
.content-section, .menu-page-section { content-visibility:auto; contain-intrinsic-size:auto 600px; }

/* SCROLL SNAP — subtle premium feel */
@media (min-width:769px) {
  html { scroll-snap-type:y proximity; }
  .hero, .story, .promise, .menu, .locations, .order, .shop { scroll-snap-align:start; }
}

/* PRINT STYLES */
@media print {
  nav, footer, .hero-video-bg, .marquee, .loc-picker-overlay, .hero-float, .nav-toggle, .hero-actions, .order-buttons, .location-actions, .btn { display:none !important; }
  body { background:#fff; color:#000; font-size:12pt; }
  .hero { min-height:auto; padding:40px 0; background:#fff !important; }
  .hero h1, .hero-sub, .hero-eyebrow, .hero-stat-num, .hero-stat-label { color:#000 !important; }
  .section-title, h1, h2, h3 { color:#000; }
  .locations { background:#fff; color:#000; }
  .location-card { background:#f5f5f5; border:1px solid #ccc; color:#000; }
  .location-card h3, .address, .location-hours, .location-hours strong { color:#000 !important; }
  img { max-width:100%; }
  a[href]::after { content:" (" attr(href) ")"; font-size:10pt; color:#666; }
}

/* RESPONSIVE */
@media(max-width:1024px) {
  .content-grid { grid-template-columns:1fr; }
  .content-grid.reverse { direction:ltr; }
  .menu-grid { grid-template-columns:repeat(2,1fr); }
  .locations-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .form-row { grid-template-columns:1fr; }
  .product-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px) {
  nav { width:calc(100% - 24px); top:max(8px, env(safe-area-inset-top)); border-radius:16px; }
  nav.scrolled { top:max(6px, env(safe-area-inset-top)); }
  .nav-inner { padding:8px 12px 8px 16px; }
  .nav-brand-icon { height:28px; }
  .nav-links { display:none; }
  .nav-toggle { display:block; }

  /* MOBILE NAV — pill stays put, card drops below it.
     Logo and toggle never move. Hamburger ↔ X swap in the same spot.
     The .nav-links menu is rendered as a card anchored under the pill,
     same width as the pill, with a smooth height + opacity reveal. */
  nav { overflow:visible; } /* allow the dropdown card to escape the pill */
  nav .nav-inner { position:relative; z-index:2; }

  .nav-links {
    /* Closed state: the menu is a card hanging below the pill, collapsed. */
    display:flex !important;
    flex-direction:column;
    position:absolute;
    top:calc(100% + 8px);
    left:0; right:0;
    width:100%;
    background:var(--cream);
    border-radius:16px;
    box-shadow:0 20px 60px rgba(30,27,23,.18), 0 4px 12px rgba(30,27,23,.08);
    padding:0 12px;
    margin:0;
    list-style:none;
    z-index:1;
    overflow:hidden;
    max-height:0;
    opacity:0;
    transform:translateY(-6px);
    pointer-events:none;
    transition:max-height .42s var(--ease-out), opacity .28s ease, transform .42s var(--ease-out), padding .42s var(--ease-out);
  }
  .nav-links.open {
    max-height:80vh;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
    padding:8px 12px 16px;
  }

  .nav-links li {
    list-style:none;
    width:100%;
    text-align:center;
    border-bottom:1px solid rgba(47,47,47,.06);
  }
  .nav-links li:last-child { border-bottom:none; }

  .nav-links a {
    display:block;
    font-family:'cheap-pine-sans','Playfair Display',serif;
    font-size:20px;
    color:var(--charcoal);
    padding:16px 12px;
    font-weight:400;
    letter-spacing:.4px;
    text-transform:none;
    opacity:.8;
    border:none;
    text-decoration:none;
    transition:color .2s, opacity .2s;
  }
  .nav-links a::after { display:none !important; }
  .nav-links a:hover,
  .nav-links a.active { opacity:1; color:var(--crimson); }

  .nav-links a.nav-order {
    font-family:'DM Sans',sans-serif;
    font-size:14px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    background:var(--crimson);
    color:var(--cream) !important;
    opacity:1 !important;
    border-radius:100px;
    padding:14px 32px;
    margin:12px auto 0;
    width:auto;
    display:inline-block;
    box-shadow:0 8px 24px rgba(217,81,75,.3);
  }
  .nav-links a.nav-order:hover {
    transform:translateY(-2px);
    box-shadow:0 12px 32px rgba(217,81,75,.4);
  }

  .nav-hours {
    display:block;
    font-size:12px;
    font-weight:500;
    color:var(--mist);
    padding:14px 8px 4px;
    text-align:center;
    letter-spacing:.3px;
  }

  /* Hamburger ↔ X morph happens in place via the existing .nav-toggle.open
     rules at the top of the stylesheet — nothing else to do here. */

  .page-hero { padding:max(130px, calc(110px + env(safe-area-inset-top))) 0 80px; position:relative; overflow:hidden; }
  .page-hero::after { content:''; position:absolute; bottom:-40%; right:-30%; width:80%; height:80%; background:radial-gradient(circle, rgba(217,81,75,.3) 0%, transparent 70%); pointer-events:none; }
  .page-hero h1 { color:var(--cream)!important; }
  .page-hero p { color:rgba(250,245,235,.8)!important; }
  .page-hero .section-label { color:rgba(250,245,235,.5)!important; }
  .page-hero .breadcrumb, .page-hero .breadcrumb a { color:rgba(250,245,235,.4)!important; }
  .hero-product-visual .gallery-thumbs { display:none; }
  .hero-product-visual .gallery-main { aspect-ratio:1/1; border:none; }
  .hero-product-visual .gallery-main img { padding:16px; }
  .menu-grid { grid-template-columns:1fr; }
  .menu-grid-4 { grid-template-columns:repeat(2,1fr); }
  .locations-grid { grid-template-columns:1fr; }
  .card-grid { grid-template-columns:1fr; }
  .product-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:16px; text-align:center; }
}

/* ============================================
   HERO IMAGES — SINGLE SOURCE OF TRUTH
   Desktop: full-width image, dark overlay
   Mobile: crimson gradient (images TBD)
   ============================================ */

/* Hero images — wide panoramic, FULL WIDTH no cropping */
.page-hero[style*="background-image"] {
  background-size: 100% auto !important;
  background-position: top center !important;
  background-repeat: no-repeat !important;
  background-color: var(--charcoal) !important;
  position: relative;
  min-height: clamp(340px, 28vw, 500px) !important;
  padding-top: clamp(80px, 12vw, 160px) !important;
  padding-bottom: clamp(60px, 8vw, 100px) !important;
}

/* Dark overlay for text readability */
.page-hero[style*="background-image"]::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(20,20,20,.52);
  z-index: 1;
}
.page-hero[style*="background-image"] .page-hero-inner {
  position: relative;
  z-index: 2;
}

/* Mobile — fill the hero, don't 100%-auto leave dead space at the bottom */
@media (max-width:768px) {
  .page-hero[style*="background-image"] {
    background-size: cover !important;
    background-position: center center !important;
    background-attachment: scroll !important;
    min-height: clamp(220px, 40vw, 360px) !important;
  }
  .page-hero[style*="background-image"]::before {
    background: rgba(20,20,20,.62);
  }
}
