/* ===== FONTS ===== */
@font-face {
  font-family: 'Granville';
  src: url('../fonts/Granville.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SloopScript';
  src: url('../fonts/SloopScript.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Bricolage Grotesque via Google Fonts — loaded via <link> in HTML head */


/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Bricolage Grotesque','Granville',Georgia,serif;
  font-weight:300;
  background:#F7EFD9;
  color:#38330F;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
/* ===== HEADINGS — always Granville ===== */
h1,h2,h3,h4,h5,h6{
  font-family:var(--heading-font);
}

a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* ===== VARIABLES ===== */
:root{
  --olive:#38330F;
  --cream:#F7EFD9;
  --sage:#DBE4D5;
  --mint:#C9EDE8;
  --olive-mid:#5a5220;
  --script-font:'SloopScript',cursive;
  --heading-font:'Granville',Georgia,serif;
  --body-font:'Bricolage Grotesque','Granville',Georgia,serif;
  --nav-h:72px;
}

/* ===== UTILITY ===== */
.container{max-width:1320px;margin:0 auto;padding:0 32px}
.script{font-family:var(--script-font);font-weight:normal}

/* ===== TOAST ===== */
#toast{
  position:fixed;bottom:32px;right:32px;z-index:9999;
  background:#38330F;color:#F7EFD9;
  padding:14px 24px;border-radius:4px;
  font-size:14px;letter-spacing:0.04em;
  transform:translateY(80px);opacity:0;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  pointer-events:none;
}
#toast.show{transform:translateY(0);opacity:1}

/* ===== NAV ===== */
nav{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  height:var(--nav-h);
  display:flex;align-items:center;
  padding:0 40px;
  transition:background 0.4s ease, backdrop-filter 0.4s ease;
}
nav.scrolled{
  background:rgba(56,51,15,0.96);
  backdrop-filter:blur(12px);
}
.nav-inner{
  width:100%;display:flex;align-items:center;justify-content:space-between;
}
.nav-logo img{height:36px;transition:opacity 0.3s}
.nav-links{
  display:flex;align-items:center;gap:36px;
  font-size:13px;letter-spacing:0.02em;
}
.nav-links a{
  color:#F7EFD9;opacity:0.8;
  transition:opacity 0.25s;
}
.nav-links a:hover{opacity:1}
.nav-right{display:flex;align-items:center;gap:20px}
.cart-btn{
  position:relative;color:#F7EFD9;opacity:0.85;
  transition:opacity 0.25s;
  display:flex;align-items:center;gap:6px;
  font-size:13px;letter-spacing:0.08em;
  text-transform:uppercase;
}
.cart-btn:hover{opacity:1}
.cart-count{
  background:#F7EFD9;color:#38330F;
  width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:600;
  transform:scale(0);transition:transform 0.3s cubic-bezier(0.16,1,0.3,1);
}
.cart-count.visible{transform:scale(1)}
.nav-cta{
  background:#F7EFD9;color:#38330F;
  padding:10px 22px;border-radius:3px;
  font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:background 0.25s,color 0.25s;
}
.nav-cta:hover{background:#DBE4D5}

/* ===== HERO ===== */
.hero{
  position:relative;width:100%;min-height:100dvh;overflow:hidden;
  display:flex;align-items:center;
}
.hero-slides{
  position:absolute;inset:0;
}
.hero-slide{
  position:absolute;inset:0;
  opacity:0;transition:opacity 1.2s cubic-bezier(0.4,0,0.2,1);
  will-change:opacity;
}
.hero-slide.active{opacity:1}
.hero-slide img,
.hero-slide video{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);
  transition:transform 8s cubic-bezier(0.25,0.46,0.45,0.94);
}
.hero-slide.active img,
.hero-slide.active video{transform:scale(1)}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(
    to right,
    rgba(30,27,5,0.72) 0%,
    rgba(30,27,5,0.45) 50%,
    rgba(30,27,5,0.18) 100%
  );
}
.hero-content{
  position:relative;z-index:2;
  padding:0 80px;
  max-width:720px;
  text-align:center;
  margin:0 auto;
}
.hero-script{
  font-family:var(--script-font);
  font-size:clamp(42px,6vw,82px);
  color:#F7EFD9;
  line-height:1.05;
  opacity:0;transform:translateY(28px);
  transition:opacity 0.9s 0.2s ease, transform 0.9s 0.2s cubic-bezier(0.16,1,0.3,1);
}
.hero-headline{
  font-family:var(--body-font);
  font-size:clamp(13px,1.4vw,16px);
  color:#F7EFD9;opacity:0.72;
  letter-spacing:0.18em;text-transform:uppercase;
  margin-top:18px;
  opacity:0;transform:translateY(20px);
  transition:opacity 0.9s 0.45s ease, transform 0.9s 0.45s cubic-bezier(0.16,1,0.3,1);
}
.hero-body{
  font-family:var(--body-font);
  font-size:clamp(15px,1.6vw,18px);
  color:rgba(247,239,217,0.85);
  line-height:1.7;
  margin-top:20px;max-width:480px;
  opacity:0;transform:translateY(20px);
  transition:opacity 0.9s 0.6s ease, transform 0.9s 0.6s cubic-bezier(0.16,1,0.3,1);
}
.hero-ctas{
  display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;
  justify-content:center;
  opacity:0;transform:translateY(20px);
  transition:opacity 0.9s 0.8s ease, transform 0.9s 0.8s cubic-bezier(0.16,1,0.3,1);
}
.hero-loaded .hero-script,
.hero-loaded .hero-headline,
.hero-loaded .hero-body,
.hero-loaded .hero-ctas{opacity:1;transform:translateY(0)}
.btn-primary{
  background:#F7EFD9;color:#38330F;
  padding:14px 32px;border-radius:3px;
  font-size:13px;letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:background 0.25s,transform 0.15s;
  display:inline-block;white-space:nowrap;
}
.btn-primary:hover{background:#C9EDE8;transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{
  border:1px solid rgba(247,239,217,0.6);
  color:#F7EFD9;
  padding:14px 32px;border-radius:3px;
  font-size:13px;letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:border-color 0.25s,background 0.25s,transform 0.15s;
  display:inline-block;white-space:nowrap;
}
.btn-ghost:hover{
  background:rgba(247,239,217,0.1);
  border-color:#F7EFD9;transform:translateY(-1px);
}
.btn-ghost:active{transform:translateY(0)}

/* Hero dots */
.hero-dots{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;gap:10px;align-items:center;
}
.hero-dot{
  width:28px;height:2px;background:rgba(247,239,217,0.35);
  border:none;cursor:pointer;
  transition:background 0.3s,width 0.3s;
  border-radius:2px;
}
.hero-dot.active{background:#F7EFD9;width:48px}

/* ===== CATEGORIES SECTION ===== */
.categories{
  background:#F7EFD9;padding:100px 0 80px;
}
.section-intro{text-align:center;margin-bottom:56px}
.section-intro h2{
  font-family:var(--heading-font);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:500;
  color:#38330F;line-height:1.1;
}
.section-intro p{
  font-size:16px;color:#5a5220;
  margin-top:14px;line-height:1.65;
  max-width:520px;margin-left:auto;margin-right:auto;
}

.categories-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr) repeat(3,1fr);
  grid-template-rows:auto auto;
  gap:16px;
}
.cat-card{
  position:relative;overflow:hidden;border-radius:4px;
  cursor:pointer;
  transform:translateY(0);
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.cat-card:hover{transform:translateY(-4px)}
.cat-card:nth-child(1){grid-column:span 2;grid-row:1;aspect-ratio:4/3}
.cat-card:nth-child(2){grid-column:span 2;grid-row:1;aspect-ratio:4/3}
.cat-card:nth-child(3){grid-column:span 2;grid-row:1;aspect-ratio:4/3}
.cat-card:nth-child(4){grid-column:span 3;grid-row:2;aspect-ratio:16/7}
.cat-card:nth-child(5){grid-column:span 3;grid-row:2;aspect-ratio:16/7}
.cat-img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94);
}
.cat-card:hover .cat-img{transform:scale(1.04)}
.cat-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(38,35,5,0.78) 0%, rgba(38,35,5,0.1) 60%);
}
.cat-label{
  position:absolute;bottom:24px;left:24px;right:24px;
}
.cat-label h3{
  font-family:var(--heading-font);
  font-size:clamp(24px,3vw,36px);
  font-weight:500;
  color:#F7EFD9;line-height:1.1;
}
.cat-label p{
  font-size:16px;color:rgba(247,239,217,0.75);
  margin-top:5px;line-height:1.5;
}
/* placeholder tiles */
.cat-placeholder{
  width:100%;height:100%;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
}
.cat-placeholder.sage{background:#DBE4D5}
.cat-placeholder.mint{background:#C9EDE8}

/* ===== BEST SELLERS ===== */
.bestsellers{
  background:#ffffff;padding:100px 0;
}
.bestsellers .section-intro h2{color:#38330F}
.bestsellers .section-intro p{color:rgba(56,51,15,0.65)}

.products-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:56px;
}
.product-card{
  background:#ffffff;
  border:1px solid #e8e3d6;
  border-radius:8px;overflow:hidden;
  box-shadow:0 2px 12px rgba(0,0,0,0.06);
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),
              border-color 0.3s;
}
.product-card:hover{
  transform:translateY(-5px);
  border-color:#c8bfa8;box-shadow:0 6px 24px rgba(0,0,0,0.1);
}
.product-img-wrap{
  position:relative;aspect-ratio:4/3;overflow:hidden;
}
.product-img-wrap img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.product-card:hover .product-img-wrap img{transform:scale(1.04)}
.product-placeholder{
  width:100%;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--script-font);font-size:28px;color:#38330F;
}
.product-placeholder.sage{background:#DBE4D5}
.product-placeholder.mint{background:#C9EDE8}
.product-info{padding:22px 22px 18px}
.product-info h3{
  font-family:var(--heading-font);
  font-size:15px;letter-spacing:0.08em;text-transform:uppercase;
  color:#6b7c3f;
}
.product-info p{
  font-size:16px;color:#888880;
  margin-top:7px;line-height:1.55;
}
.product-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 22px 20px;
}
.product-price{
  font-size:15px;font-weight:700;
  color:#38330F;letter-spacing:0.02em;
}
.add-to-cart{
  background:#38330F;color:#F7EFD9;
  padding:9px 18px;border-radius:4px;
  font-size:11px;letter-spacing:0.12em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:background 0.25s,transform 0.15s;
}
.add-to-cart:hover{background:#5a4e1a}
.add-to-cart:active{transform:scale(0.97)}

/* ===== ABOUT SECTION ===== */
.about{
  background:#F7EFD9;padding:110px 0;
  overflow:hidden;
}
.about-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.about-text h2{
  font-family:var(--heading-font);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:500;
  color:#38330F;line-height:1.05;
}
.about-text .tagline{
  font-size:13px;letter-spacing:0.18em;text-transform:uppercase;
  color:#5a5220;margin-top:16px;
}
.about-text p{
  font-size:16px;color:#38330F;
  line-height:1.75;margin-top:20px;
  max-width:480px;
}
.about-text p + p{margin-top:14px}
.promise-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:16px;margin-top:36px;
}
.promise-item{
  background:#38330F;color:#F7EFD9;
  padding:18px 20px;border-radius:4px;
}
.promise-item strong{
  font-family:var(--heading-font);
  display:block;font-size:13px;
  letter-spacing:0.1em;text-transform:uppercase;
  margin-bottom:4px;
}
.promise-item span{font-size:12px;opacity:0.65;line-height:1.5}
.about-image{
  position:relative;
}
.about-image img{
  width:100%;border-radius:4px;
  aspect-ratio:3/4;object-fit:cover;
}
.about-image-accent{
  position:absolute;
  bottom:-28px;left:-28px;
  width:160px;height:160px;
  background:#C9EDE8;
  border-radius:4px;
  z-index:-1;
}

/* ===== OCCASIONS SECTION ===== */
.occasions{
  background:#DBE4D5;padding:100px 0;
}
.occasions-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
}
.occasions-img{
  position:relative;order:-1;
}
.occasions-img img{
  width:100%;border-radius:4px;
  aspect-ratio:4/5;object-fit:cover;
}
.occasions-img-accent{
  position:absolute;
  top:-24px;right:-24px;
  width:120px;height:120px;
  background:#38330F;
  border-radius:4px;z-index:-1;
}
.occasions-text h2{
  font-family:var(--heading-font);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:500;
  color:#38330F;line-height:1.1;
}
.occasions-text .tagline{
  font-size:13px;letter-spacing:0.18em;text-transform:uppercase;
  color:#38330F;opacity:0.6;margin-top:14px;
}
.occasions-text p{
  font-size:16px;color:#38330F;line-height:1.75;margin-top:18px;
}
.occasions-tags{
  display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;
}
.occasions-tag{
  border:1px solid rgba(56,51,15,0.35);
  padding:8px 16px;border-radius:100px;
  font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  color:#38330F;
}
.occasions-ctas{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.btn-dark{
  background:#38330F;color:#F7EFD9;
  padding:14px 30px;border-radius:3px;
  font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:background 0.25s,transform 0.15s;
  display:inline-block;white-space:nowrap;
}
.btn-dark:hover{background:#5a5220;transform:translateY(-1px)}
.btn-outline-dark{
  border:1px solid #38330F;color:#38330F;
  padding:14px 30px;border-radius:3px;
  font-size:12px;letter-spacing:0.14em;text-transform:uppercase;
  font-family:var(--body-font);
  transition:background 0.25s,transform 0.15s;
  display:inline-block;white-space:nowrap;
}
.btn-outline-dark:hover{background:rgba(56,51,15,0.08);transform:translateY(-1px)}

/* ===== TESTIMONIALS ===== */
.testimonials{
  background:#38330F;padding:100px 0;
}
.testimonials .section-intro h2{color:#F7EFD9}
.testimonials .section-intro p{color:rgba(247,239,217,0.6)}
.testi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-top:56px;
}
.testi-card{
  background:rgba(247,239,217,0.06);
  border:1px solid rgba(247,239,217,0.1);
  border-radius:4px;padding:32px;
}
.testi-quote{
  font-family:var(--script-font);
  font-size:52px;color:#C9EDE8;
  line-height:0.6;margin-bottom:18px;
}
.testi-body{
  font-size:15px;color:rgba(247,239,217,0.85);
  line-height:1.7;font-style:italic;
}
.testi-attr{
  margin-top:20px;border-top:1px solid rgba(247,239,217,0.12);
  padding-top:16px;
}
.testi-attr strong{
  display:block;font-size:13px;
  letter-spacing:0.08em;text-transform:uppercase;
  color:#6b7c3f;
}
.testi-attr span{font-size:12px;color:rgba(247,239,217,0.45)}

/* ===== DRINKS SECTION ===== */
.drinks{
  background:#C9EDE8;padding:100px 0;
}
.drinks-inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
}
.drinks-text h2{
  font-family:var(--heading-font);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:500;
  color:#38330F;line-height:1.1;
}
.drinks-text p{
  font-size:16px;color:#38330F;line-height:1.75;margin-top:18px;
  max-width:440px;
}
.drinks-list{
  margin-top:28px;
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.drink-item{
  background:rgba(56,51,15,0.07);
  border-radius:4px;padding:14px 16px;
}
.drink-item strong{
  display:block;font-size:13px;
  letter-spacing:0.05em;color:#38330F;
}
.drink-item span{
  font-size:12px;color:#38330F;opacity:0.6;margin-top:2px;display:block;
}
.drinks-img img{
  width:100%;border-radius:4px;
  aspect-ratio:3/4;object-fit:cover;
}

/* ===== FINAL CTA ===== */
/* ===== STORY CTA (shared) ===== */
.story-cta{position:relative;padding:160px 0;overflow:hidden;background:var(--olive);}
.story-cta__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.story-cta__overlay{position:absolute;inset:0;background:rgba(38,34,8,0.78);}
.story-cta__inner{position:relative;z-index:2;text-align:center;max-width:780px;margin:0 auto;}
.story-cta__eyebrow{display:block;font-size:0.7rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(247,239,217,0.55);margin-bottom:28px;font-weight:300;}
.story-cta__heading{font-size:clamp(2rem,4vw,3.5rem);line-height:1.1;color:var(--cream);margin:0 0 20px;}
.story-cta__sub{font-size:clamp(0.9rem,1.3vw,1rem);color:rgba(247,239,217,0.72);font-weight:300;margin:0 0 16px;letter-spacing:0.01em;}
.story-cta__desc{font-size:clamp(0.88rem,1.2vw,0.95rem);color:rgba(247,239,217,0.55);font-weight:300;font-style:italic;margin:0 0 48px;}
.story-cta__actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.btn-outline-light{border:1.5px solid rgba(247,239,217,0.7);color:#F7EFD9;padding:14px 30px;border-radius:3px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;font-family:var(--body-font);transition:background 0.25s,transform 0.15s;display:inline-block;white-space:nowrap;}
.btn-outline-light:hover{background:rgba(247,239,217,0.12);transform:translateY(-1px);}
@media(max-width:768px){.story-cta{padding:100px 0;}}

.final-cta{
  position:relative;min-height:540px;
  display:flex;align-items:center;overflow:hidden;
}
.final-cta-bg{
  position:absolute;inset:0;
}
.final-cta-bg img{
  width:100%;height:100%;object-fit:cover;
}
.final-cta-overlay{
  position:absolute;inset:0;
  background:rgba(30,27,5,0.72);
}
.final-cta-content{
  position:relative;z-index:2;
  padding:80px;text-align:center;
  width:100%;
}
.final-cta-content h2{
  font-family:var(--script-font);
  font-size:clamp(44px,6vw,86px);
  color:#F7EFD9;line-height:1.05;
}
.final-cta-content p{
  font-size:16px;color:rgba(247,239,217,0.75);
  margin:18px auto 0;max-width:480px;line-height:1.7;
}
.final-cta-btns{
  display:flex;gap:14px;justify-content:center;
  margin-top:36px;flex-wrap:wrap;
}

/* ===== FOOTER ===== */
footer{
  background:#38330F;padding:60px 0 32px;
}
.footer-inner{
  display:grid;grid-template-columns:2fr 1fr 1fr;
  gap:48px;padding-bottom:40px;
  border-bottom:1px solid rgba(247,239,217,0.12);
  max-width:1320px;margin:0 auto;padding-left:32px;padding-right:32px;
}
.footer-brand img{height:32px}
.footer-brand p{
  font-size:13px;color:rgba(247,239,217,0.5);
  margin-top:16px;line-height:1.65;max-width:280px;
}
.footer-col h4{
  font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
  color:rgba(247,239,217,0.45);margin-bottom:16px;
}
.footer-col a{
  display:block;font-size:14px;color:rgba(247,239,217,0.7);
  margin-bottom:10px;transition:color 0.2s;
}
.footer-col a:hover{color:#F7EFD9}
/* Desktop: make wrapper transparent so Menu+Connect slot into 3-col grid */
.footer-cols-row{display:contents}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:24px;max-width:1320px;margin:0 auto;padding-left:32px;padding-right:32px;
}
.footer-bottom p{font-size:12px;color:rgba(247,239,217,0.3)}
.social-links{display:flex;gap:16px}
.social-links a{
  font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  color:rgba(247,239,217,0.45);transition:color 0.2s;
}
.social-links a:hover{color:#F7EFD9}

/* ===== SCROLL ANIMATIONS ===== */
.reveal{
  opacity:0;transform:translateY(36px);
  transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),
              transform 0.8s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{
  opacity:0;transform:translateX(-40px);
  transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),
              transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{
  opacity:0;transform:translateX(40px);
  transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),
              transform 0.9s cubic-bezier(0.16,1,0.3,1);
}
.reveal-right.visible{opacity:1;transform:translateX(0)}

/* delay helpers */
.d1{transition-delay:0.1s}
.d2{transition-delay:0.2s}
.d3{transition-delay:0.3s}
.d4{transition-delay:0.4s}
.d5{transition-delay:0.5s}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .categories-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
  }
  .cat-card:nth-child(n){
    grid-column:span 1;grid-row:auto;
    aspect-ratio:4/3;
  }
  .products-grid{grid-template-columns:1fr 1fr}
  .about-inner,.occasions-inner,.drinks-inner{
    grid-template-columns:1fr;gap:48px;
  }
  .occasions-img{order:0}
  .about-image-accent,.occasions-img-accent{display:none}
  .testi-grid{grid-template-columns:1fr 1fr}
  .footer-inner{grid-template-columns:2fr 1fr 1fr}
  .about-image img{aspect-ratio:16/9}
  .occasions-img img{aspect-ratio:16/9}
  .drinks-img img{aspect-ratio:16/9}
}

@media(max-width:768px){
  .container{padding:0 20px}
  nav{padding:0 20px}
  .nav-links{display:none}

  /* Hero */
  .hero-content{padding:0 24px;max-width:100%}
  .hero-dots{left:24px;bottom:24px}
  .hero-script{font-size:clamp(36px,9vw,56px)}

  /* Categories */
  .categories{padding:56px 0 40px}
  .categories-grid{grid-template-columns:1fr}
  .cat-card:nth-child(n){grid-column:span 1;grid-row:auto;aspect-ratio:16/9}

  /* Bestsellers */
  .bestsellers{padding:56px 0}
  .products-grid{grid-template-columns:1fr;gap:16px}
  .product-img-wrap{aspect-ratio:16/9}

  /* About / Occasions / Drinks */
  .about,.occasions,.drinks{padding:56px 0}
  .about-inner,.occasions-inner,.drinks-inner{grid-template-columns:1fr;gap:32px}
  .about-image img{aspect-ratio:16/9;max-height:320px}
  .occasions-img img{aspect-ratio:16/9;max-height:320px}
  .drinks-img img{aspect-ratio:16/9 !important;max-height:260px !important}
  .about-image-accent,.occasions-img-accent{display:none}

  /* Little treats section */
  [style*="grid-template-columns:repeat(3,1fr)"]{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  .product-card{width:100%}

  /* Promise */
  .promise-grid{grid-template-columns:1fr}

  /* Drinks list */
  .drinks-list{grid-template-columns:1fr}

  /* Testimonials */
  .testi-grid{grid-template-columns:1fr}

  /* Final CTA */
  .final-cta-content{padding:60px 24px}
  .final-cta-content h2{font-size:clamp(36px,10vw,56px)}

  /* Footer */
  footer{padding:48px 24px 30px}
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .footer-cols-row{display:grid;grid-template-columns:1fr 1fr;gap:32px}
  .footer-bottom{flex-direction:column;gap:16px;text-align:center}
  .footer-brand{text-align:center}
  .footer-brand p{max-width:100%}

  /* Nav CTA */
  .nav-cta{padding:8px 16px;font-size:12px}

  /* Section headings */
  .section-intro h2,.about-text h2,.occasions-text h2,.drinks-text h2{font-size:clamp(1.75rem,7vw,2.5rem)}
}

@media(max-width:480px){
  /* Hero */
  .hero-content{padding:0 16px}
  .hero-script{font-size:clamp(30px,10vw,46px)}
  .hero-ctas{flex-direction:column;gap:10px}
  .btn-primary,.btn-ghost{width:100%;text-align:center;justify-content:center}

  /* Categories */
  .cat-card:nth-child(n){aspect-ratio:4/3}

  /* Products grid */
  .products-grid{grid-template-columns:1fr}

  /* Little treats - inline style override */
  [style*="repeat(3,1fr)"]{
    grid-template-columns:1fr !important;
  }

  /* Section padding */
  .bestsellers,.about,.occasions,.drinks{padding:48px 0}
  .categories{padding:48px 0 32px}

  /* Drink items */
  .drink-item{flex-direction:column;align-items:flex-start;gap:4px}

}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;transform:none!important}
  .reveal,.reveal-left,.reveal-right{opacity:1;transform:none}
}