/* ===== Coffee Capital — v2, monochrome/minimal direction (ref: rumblecoffee.com.au) ===== */

:root{
  --ink:#0a0a0a;
  --paper:#ffffff;
  --paper-dim:#f6efe7;
  --line:#e2ded6;
  --muted:#6b6b66;
  --rust:#a8461f;
  --rust-light:#c96a3f;
  --rust-wash:rgba(168,70,31,.08);

  --font-display:'Jost', sans-serif;
  --font-body:'Montserrat', sans-serif;

  --container:1280px;
  --nav-h:92px;
  --bar-h:38px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  padding-top:var(--bar-h);
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;font-weight:700;letter-spacing:-0.01em;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit;}
input{font-family:inherit;}

.section-inner{max-width:var(--container);margin:0 auto;padding:0 32px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}

/* ---------- reveal-on-scroll ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.stagger > *{transition-delay:0s;}
.stagger > *:nth-child(1){transition-delay:.05s;}
.stagger > *:nth-child(2){transition-delay:.12s;}
.stagger > *:nth-child(3){transition-delay:.19s;}
.stagger > *:nth-child(4){transition-delay:.26s;}
.stagger > *:nth-child(5){transition-delay:.33s;}
.stagger > *:nth-child(6){transition-delay:.4s;}
.stagger > *:nth-child(7){transition-delay:.47s;}
.stagger > *:nth-child(8){transition-delay:.54s;}

/* ---------- eyebrow / tags / badges ---------- */
.eyebrow,.section-tag{
  display:inline-block;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.18em;
  margin:0 0 14px;
}
.eyebrow{color:var(--muted);}
.section-tag{color:var(--rust);}
.section-title{font-size:clamp(28px,4vw,44px);line-height:1.15;margin-bottom:20px;}
.badge{
  display:inline-block;
  font-family:var(--font-body);
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  padding:5px 10px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
}
.badge.outline{background:var(--rust-wash);color:var(--rust);border-color:var(--rust);}
.badge.rust{background:var(--rust);border-color:var(--rust);color:var(--paper);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:16px 34px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  border:1px solid var(--ink);
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{background:var(--paper);color:var(--ink);}
.btn-ghost{background:transparent;color:var(--ink);}
.btn-ghost:hover{background:var(--ink);color:var(--paper);}
.btn-sm{padding:12px 20px;font-size:12px;}
.btn.disabled{opacity:.35;pointer-events:none;}

/* ---------- announcement bar ---------- */
.announce-bar{
  position:fixed;top:0;left:0;right:0;z-index:101;
  height:var(--bar-h);
  background:linear-gradient(90deg, var(--rust) 0%, var(--rust-light) 50%, var(--rust) 100%);
  color:var(--paper);
  overflow:hidden;
  display:flex;
  align-items:center;
}
.announce-track{
  display:flex;
  white-space:nowrap;
  animation:marquee 26s linear infinite;
}
.announce-track span{
  padding:0 20px;
  font-size:11.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.16em;
}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- nav ---------- */
#site-nav{
  position:fixed;top:var(--bar-h);left:0;right:0;z-index:100;
  height:var(--nav-h);
  background:transparent;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 32px;
  transition:background .3s ease,box-shadow .3s ease;
}
#site-nav.scrolled{background:var(--paper);box-shadow:0 4px 22px rgba(10,10,10,.05);}
.nav-logo{justify-self:start;}
.nav-logo-full{height:38px;width:auto;filter:invert(1);transition:filter .3s ease;}
#site-nav.scrolled .nav-logo-full{filter:none;}

.nav-pill{
  grid-column:2;justify-self:center;
  display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.4);
  border-radius:999px;
  padding:8px 8px 8px 28px;
  color:var(--paper);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease;
}
#site-nav.scrolled .nav-pill{
  background:var(--paper);
  border-color:var(--line);
  color:var(--ink);
  box-shadow:0 2px 12px rgba(10,10,10,.04);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{
  font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
  position:relative;padding:4px 0;
}
.nav-links a::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--rust);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
.nav-links a:hover::after{transform:scaleX(1);}
.cart-toggle{
  position:relative;display:flex;align-items:center;gap:6px;
  margin-left:22px;padding:10px 16px;
  border:1px solid currentColor;border-radius:999px;
  transition:background .25s ease,color .25s ease;
}
.cart-toggle:hover{background:var(--ink);color:var(--paper);}
.cart-count{
  position:absolute;top:-7px;right:-8px;
  background:var(--rust);color:var(--paper);
  font-size:10px;font-weight:700;
  min-width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.cart-count.empty{background:var(--muted);}
#nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:38px;height:38px;margin-left:4px;
  border:1px solid currentColor;border-radius:999px;
  align-items:center;
}
#nav-toggle span{width:14px;height:1.5px;background:currentColor;}
#mobile-nav{
  position:fixed;top:calc(var(--nav-h) + var(--bar-h));left:0;right:0;
  background:var(--paper);border-bottom:1px solid var(--line);
  display:none;flex-direction:column;z-index:99;
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
}
#mobile-nav.open{opacity:1;transform:translateY(0);pointer-events:auto;}
#mobile-nav a{
  padding:16px 32px;border-top:1px solid var(--line);
  font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hero-media{position:absolute;inset:0;}
.hero-img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);}
.hero-vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, transparent 14%),
    radial-gradient(ellipse at center, rgba(10,10,10,.5) 0%, rgba(10,10,10,.2) 55%, transparent 80%),
    linear-gradient(0deg, rgba(10,10,10,.82) 0%, rgba(10,10,10,.35) 45%, rgba(10,10,10,.12) 70%, transparent 100%);
}
.hero-content{position:relative;z-index:2;color:var(--paper);padding:0 32px;width:100%;max-width:var(--container);margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center;}
.hero-content .eyebrow{color:rgba(255,255,255,.75);}
.hero-title{font-size:clamp(36px,6.2vw,80px);line-height:1.04;color:var(--paper);margin-bottom:30px;max-width:820px;}
.hero-title .accent{color:var(--rust-light);}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}
.hero .btn-ghost{border-color:var(--paper);color:var(--paper);}
.hero .btn-ghost:hover{background:var(--paper);color:var(--ink);}

/* ---------- intro ---------- */
.intro{padding:88px 0;border-bottom:1px solid var(--line);}
.intro-inner{max-width:760px;}
.intro-copy{font-size:18px;color:var(--muted);}

/* ---------- sections generic rhythm ---------- */
section{padding:96px 0;}
.dim{background:var(--paper-dim);}
.bordered{border-top:1px solid var(--line);}

/* ---------- brews / menu / shop card grid ---------- */
.brews-grid,.menu-grid,.shop-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:48px;
}
.shop-grid{grid-template-columns:repeat(5,1fr);}
.menu-grid{grid-template-columns:repeat(3,1fr);}

.brew-card{background:var(--paper);display:flex;flex-direction:column;}
.brew-card-media{aspect-ratio:1/1;overflow:hidden;position:relative;}
.brew-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.brew-card:hover .brew-card-media img{transform:scale(1.06);}
.brew-card h3{font-size:15px;font-weight:600;padding:18px 20px;border-top:1px solid var(--line);}

.menu-card,.shop-card{background:var(--paper);padding:26px;display:flex;flex-direction:column;gap:10px;position:relative;}
.shop-card-media{margin:-26px -26px 4px;aspect-ratio:4/5;overflow:hidden;}
.shop-card-media img{width:100%;height:100%;object-fit:cover;}
.menu-card-top,.shop-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:2px;}
.menu-roast{
  display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  padding:5px 9px;border:1px solid var(--ink);
}
.menu-roast.dark{background:var(--ink);color:var(--paper);}
.menu-roast.medium{background:var(--rust);color:var(--paper);border-color:var(--rust);}
.menu-roast.light{background:var(--rust-wash);color:var(--rust);border-color:var(--rust);}
.menu-price{font-family:var(--font-display);font-size:18px;font-weight:700;white-space:nowrap;}
.menu-card h3,.shop-card h3{font-size:17px;font-weight:700;}
.menu-card p,.shop-card p{font-size:14px;color:var(--muted);}
.section-cta{margin-top:44px;}

/* shop card controls */
.weight-pills{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;}
.weight-pill{
  padding:8px 12px;font-size:12px;font-weight:600;
  border:1px solid var(--line);color:var(--muted);
}
.weight-pill.active{border-color:var(--ink);color:var(--ink);background:var(--paper-dim);}
.shop-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;}
.qty-stepper{display:flex;align-items:center;border:1px solid var(--line);}
.qty-btn{width:32px;height:32px;font-size:16px;}
.qty-value{width:28px;text-align:center;font-size:14px;font-weight:600;}

/* ---------- why-us / process (numbered, no cards) ---------- */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;margin-top:48px;}
.process-grid--three{grid-template-columns:repeat(3,1fr);}
.process-card{border-top:2px solid var(--rust);padding-top:20px;}
.process-num{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--rust);letter-spacing:.1em;}
.process-card h3{font-size:19px;margin:12px 0 10px;}
.process-card p{font-size:14.5px;color:var(--muted);}

/* ---------- explore ---------- */
.explore-card{position:relative;overflow:hidden;display:block;border:1px solid var(--line);}
.explore-card-media{aspect-ratio:4/5;overflow:hidden;}
.explore-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.explore-card:hover .explore-card-media img{transform:scale(1.05);}
.explore-card-body{padding:20px;}
.explore-card-body h3{font-size:18px;margin:10px 0 6px;}
.explore-card-body p{font-size:13.5px;color:var(--muted);}

/* ---------- testimonials ---------- */
.testi-track{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:20px;}
.testimonials blockquote{margin:0;border-top:1px solid var(--ink);padding-top:22px;}
.testimonials p{font-size:17px;font-family:var(--font-display);font-weight:500;line-height:1.5;}
.testimonials cite{display:block;margin-top:16px;font-style:normal;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);}

/* ---------- gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:48px;}
.gallery-item{aspect-ratio:1/1;overflow:hidden;background:var(--paper);}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.gallery-item:hover img{transform:scale(1.06);}

/* ---------- visit teaser (home) ---------- */
.visit-teaser{background:var(--ink);color:var(--paper);}
.visit-teaser .section-tag{color:rgba(255,255,255,.6);}
.visit-teaser-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.visit-teaser-copy{color:rgba(255,255,255,.75);font-size:15px;margin-top:6px;}
.visit-teaser .btn-primary{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.visit-teaser .btn-primary:hover{background:transparent;color:var(--paper);}

/* ---------- page banner (interior pages) ---------- */
.page-banner{position:relative;height:56vh;min-height:340px;display:flex;align-items:flex-end;overflow:hidden;}
.page-banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.page-banner-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, transparent 22%),
    linear-gradient(0deg, rgba(10,10,10,.78) 0%, rgba(10,10,10,.2) 60%, transparent 100%);
}
.page-banner-content{position:relative;z-index:2;color:var(--paper);padding:0 32px 48px;max-width:var(--container);margin:0 auto;width:100%;}
.page-banner-title{font-size:clamp(30px,5vw,54px);color:var(--paper);}
.page-banner .eyebrow{color:rgba(255,255,255,.75);}

/* ---------- story page ---------- */
.story-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;margin-top:8px;align-items:start;}
.story-copy{font-size:17px;color:var(--muted);}
.story-stats{display:flex;flex-direction:column;gap:22px;border-left:1px solid var(--line);padding-left:28px;}
.stat{display:flex;flex-direction:column;}
.stat-num{font-family:var(--font-display);font-size:32px;font-weight:700;}
.stat-label{font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:4px;}

/* ---------- split feature ---------- */
.split-feature-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.split-feature-media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.split-feature-copy p{font-size:16px;color:var(--muted);margin-top:14px;}

/* ---------- pairings ---------- */
.pairing-showcase{margin:36px 0 48px;border:1px solid var(--line);}
.pairing-showcase img{width:100%;max-height:460px;object-fit:cover;}
.shop-copy{font-size:16px;color:var(--muted);max-width:640px;}

/* ---------- visit / newsletter ---------- */
.visit-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.visit-copy{font-size:16px;color:var(--muted);margin-top:10px;max-width:460px;}
.newsletter-form{border:1px solid var(--line);padding:32px;}
.newsletter-form label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:10px;}
.form-row{display:flex;gap:0;}
.form-row input{flex:1;padding:14px 16px;border:1px solid var(--ink);border-right:none;font-size:14px;}
.form-row input:focus{outline:none;}
.form-row .btn{border-left:none;}
.form-note{font-size:13px;color:var(--muted);margin-top:16px;}
.form-note a{text-decoration:underline;}

/* ---------- footer ---------- */
.site-footer{background:var(--ink);color:var(--paper);padding:64px 0 28px;}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap;}
.site-footer .nav-logo-full{filter:invert(1);height:72px;}
.footer-links,.footer-social{display:flex;flex-direction:column;gap:14px;}
.footer-links a,.footer-social a{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.75);}
.footer-links a:hover,.footer-social a:hover{color:var(--rust-light);}
.footer-fine{max-width:var(--container);margin:48px auto 0;padding:24px 32px 0;border-top:1px solid rgba(255,255,255,.15);font-size:12px;color:rgba(255,255,255,.5);}

/* ---------- cart drawer ---------- */
.cart-overlay{position:fixed;inset:0;background:rgba(10,10,10,.5);opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:200;}
.cart-overlay.open{opacity:1;pointer-events:auto;}
.cart-drawer{
  position:fixed;top:0;right:0;bottom:0;width:400px;max-width:92vw;
  background:var(--paper);z-index:201;
  display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .35s ease;
  border-left:1px solid var(--line);
}
.cart-drawer.open{transform:translateX(0);}
.cart-drawer-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);}
.cart-drawer-head h3{font-size:16px;text-transform:uppercase;letter-spacing:.1em;}
.cart-close{font-size:26px;line-height:1;}
.cart-items{flex:1;overflow-y:auto;padding:20px 24px;}
.cart-empty{color:var(--muted);font-size:14px;}
.cart-item{display:flex;justify-content:space-between;gap:12px;padding:18px 0;border-bottom:1px solid var(--line);}
.cart-item-name{font-size:14px;font-weight:600;}
.cart-item-weight{font-size:12.5px;color:var(--muted);margin-top:4px;}
.cart-item-remove{font-size:11.5px;text-decoration:underline;color:var(--muted);margin-top:8px;}
.cart-item-right{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.cart-item-price{font-weight:700;font-size:14px;}
.cart-footer{border-top:1px solid var(--line);padding:22px 24px;}
.cart-subtotal{display:flex;justify-content:space-between;font-size:15px;font-weight:700;margin-bottom:16px;}
.cart-checkout-btn{width:100%;}
.cart-note{font-size:12px;color:var(--muted);margin-top:12px;text-align:center;}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .brews-grid{grid-template-columns:repeat(2,1fr);}
  .shop-grid{grid-template-columns:repeat(2,1fr);}
  .menu-grid{grid-template-columns:repeat(2,1fr);}
  .process-grid,.process-grid--three{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .testi-track{grid-template-columns:1fr;gap:32px;}
  .story-grid,.split-feature-inner,.visit-inner{grid-template-columns:1fr;}
  .story-stats{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:24px;flex-direction:row;flex-wrap:wrap;gap:32px;}
}
@media (max-width:720px){
  .nav-links{display:none;}
  #nav-toggle{display:flex;}
  #mobile-nav{display:flex;}
  .nav-pill{padding:8px;}
  .cart-toggle{margin-left:0;}
  .nav-logo-full{height:30px;}
  .brews-grid,.shop-grid,.menu-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  section{padding:64px 0;}
  .hero{min-height:80vh;}
  .visit-teaser-inner{align-items:flex-start;}
  .form-row{flex-direction:column;}
  .form-row input{border-right:1px solid var(--ink);border-bottom:none;}
  .form-row .btn{border-left:1px solid var(--ink);}
}
