/* ============ HOLY COW GELATO — shared styles ============ */
@font-face{
  font-family: 'Cubao Free Wide';
  src: url('fonts/Cubao_Free_Wide.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: 'Canva Sans';
  src: url('fonts/canva-sans-regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root{
  --cream: #D9C7AC;
  --cream-light: #E8DAC3;
  --cream-pop: #FFFDF9;
  --forest: #37421A;
  --forest-deep: #2B3315;
  --sage: #AFC86C;
  --sage-deep: #8CA84E;
  --white: #FFFFFF;
  --ink: #2B3315;
  --shadow: 0 12px 30px rgba(43, 51, 21, 0.14);
  --radius-lg: 32px;
  --radius-md: 20px;
  --wrap: 1180px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background: var(--cream);
  color: var(--ink);
  font-family: 'Canva Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
h1,h2,h3, .display{
  font-family: 'Cubao Free Wide', sans-serif;
  font-weight: normal;
  letter-spacing: -0.01em;
  line-height: 1.05;
  color: var(--forest);
}
a{ color:inherit; text-decoration:none; }
.wrap{ max-width: var(--wrap); margin: 0 auto; padding: 0 32px; }
:focus-visible{ outline: 3px solid var(--sage-deep); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior:auto !important; }
}

/* ---------- NAV (overlay, transparent -> solid) ---------- */
header.site-nav{
  position: absolute;
  top:0; left:0; right:0;
  z-index: 200;
  padding: 18px 0;
}
header.site-nav.solid{
  position: sticky;
  background: rgba(43,51,21,0.88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(243,235,223,0.12);
}
header.site-nav.solid nav.nav-links{ color: var(--cream-pop); }
header.site-nav.solid .nav-cta .btn.ghost{ color: var(--cream-pop); border-color: rgba(243,235,223,0.6); }
header.site-nav.solid .nav-cta .btn.ghost:hover{ background: var(--cream-pop); color: var(--forest); }
header.site-nav.solid .nav-toggle{ color: var(--cream-pop); }
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  max-width: var(--wrap); margin:0 auto; padding: 0 32px;
}
.nav-logo img{ height: 34px; width:auto; }
nav.nav-links{ display:flex; gap: 32px; font-family:'Cubao Free Wide', sans-serif; font-weight: normal; font-size: 14.5px; letter-spacing:.04em; text-transform:uppercase; }
nav.nav-links a{ position:relative; padding: 4px 2px; }
nav.nav-links a::after{
  content:''; position:absolute; left:0; right:0; bottom:-5px; height: 2.5px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .25s ease; border-radius: 2px;
}
nav.nav-links a:hover::after, nav.nav-links a.active::after{ transform: scaleX(1); }
.nav-cta{ display:flex; align-items:center; gap:22px; }
.nav-cta .btn{ font-family:'Cubao Free Wide', sans-serif; font-weight:normal; letter-spacing:.02em; }
.nav-toggle{ display:none; }
.mobile-page-section{ scroll-margin-top: 78px; }

.on-light .nav-logo img, .on-light nav.nav-links, .on-light .btn.ghost{ color: var(--forest); }
.on-dark-nav nav.nav-links, .on-dark-nav .nav-cta{ color: var(--cream-pop); }

.btn{
  display:inline-flex; align-items:center; gap:8px; font-weight: 800; font-size: 14px;
  padding: 13px 26px; border-radius: 999px; border: 2px solid var(--forest);
  background: var(--forest); color: var(--cream-pop); cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn:hover{ transform: translateY(-2px); box-shadow: var(--shadow); background: var(--forest-deep); }
.btn.ghost{ background: transparent; color: var(--forest); border-color: var(--forest); }
.btn.ghost:hover{ background: var(--forest); color: var(--cream-pop); }
.btn.on-video{ border-color: var(--cream-pop); color: var(--forest); background: var(--cream-pop); }
.btn.on-video:hover{ background: var(--sage); border-color:var(--sage); }
.btn.line-light{ border-color: rgba(255,255,255,0.7); color: var(--cream-pop); background:transparent; }
.btn.line-light:hover{ background: var(--cream-pop); color:var(--forest); }

/* ---------- FULL-SCREEN VIDEO HERO ---------- */
.video-hero{
  position: relative;
  height: 100vh;
  height: 100dvh;
  min-height: 560px;
  width: 100%;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  color: var(--cream-pop);
}
.video-hero .poster-fallback{
  position:absolute; inset:0; width:100%; height:100%; z-index:1;
  background: linear-gradient(160deg, var(--forest-deep), var(--forest) 55%, var(--sage-deep));
  background-image: url('images/hero-backdrop.jpg');
  background-size: cover;
  background-position: center;
}
.video-hero video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1;
}
.video-hero::after{
  content:''; position:absolute; inset:0; z-index:2;
  background: linear-gradient(180deg, rgba(43,51,21,0.45) 0%, rgba(43,51,21,0.15) 35%, rgba(43,51,21,0.55) 100%);
}
.video-hero-content{ position:relative; z-index:3; text-align:center; padding: 0 24px; }
.video-hero .eyebrow{
  display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:12.5px;
  letter-spacing: .16em; text-transform:uppercase; color: var(--cream-pop);
  border: 1.5px solid rgba(243,235,223,0.5); padding: 8px 18px; border-radius: 999px; margin-bottom: 28px;
}
.video-hero h1{
  color: var(--cream-pop); font-size: clamp(52px, 9vw, 128px); line-height: 0.95; margin-bottom: 22px;
}
.video-hero p{
  font-size: 18px; max-width: 480px; margin: 0 auto 34px; color: rgba(255,253,249,0.88);
  font-weight:600; line-height:1.55;
}
.video-hero-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.scroll-cue{
  position:absolute; bottom: 34px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color: rgba(255,253,249,0.8);
}
.scroll-cue .line{ width:1.5px; height:34px; background: rgba(255,253,249,0.5); position:relative; overflow:hidden; }
.scroll-cue .line::after{
  content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background: var(--cream-pop);
  animation: scrollcue 1.8s ease-in-out infinite;
}
@keyframes scrollcue{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* ---------- SMALL PAGE HEADER (interior pages) ---------- */
.page-header{
  padding: 168px 0 76px;
  background: var(--forest);
  color: var(--cream-pop);
  text-align:center;
}
.page-header .eyebrow{
  display:inline-flex; font-weight:800; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase;
  color: var(--sage); border: 1.5px solid rgba(175,200,108,0.5); padding: 7px 16px; border-radius:999px; margin-bottom:20px;
}
.page-header h1{ color: var(--cream-pop); font-size: clamp(40px, 6vw, 68px); }
.page-header p{ max-width: 520px; margin: 18px auto 0; color: rgba(243,235,223,0.78); font-weight:600; font-size:16.5px; line-height:1.6; }

/* ---------- SECTION SHARED ---------- */
section{ padding: 100px 0; position:relative; }
.section-head{ max-width: 640px; margin-bottom: 56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head .eyebrow{
  display:inline-flex; font-weight:800; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase;
  border:2px solid var(--forest); padding: 7px 15px; border-radius:999px;
}
.section-head h2{ font-size: clamp(34px, 4.4vw, 52px); margin-top: 18px; }
.section-head p{ margin-top:16px; font-size:17px; color: rgba(43,51,21,.72); line-height:1.6; font-weight:500; }
.section-head a.text-link{ font-weight:800; border-bottom: 2px solid var(--forest); padding-bottom:2px; display:inline-block; margin-top:18px; }

/* ---------- INTRO (welcome paragraph, like butterboy) ---------- */
.intro{ text-align:center; padding: 90px 0 20px; }
.intro .eyebrow{
  display:inline-flex; font-weight:800; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color: var(--sage-deep); margin-bottom:18px;
}
.intro h2{ font-size: clamp(30px,4vw,44px); max-width:760px; margin:0 auto 22px; }
.intro h2 em{ font-style:italic; font-weight:500; color: var(--sage-deep); }
.intro p{ max-width: 640px; margin: 0 auto; font-size:17px; line-height:1.7; color: rgba(43,51,21,.75); font-weight:500; }
.intro p a{ font-weight:800; border-bottom:2px solid var(--forest); }

/* ---------- ABOUT TEASER (image + text, like butterboy) ---------- */
.about-teaser .wrap{ display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:center; }
.about-teaser img{ border-radius: var(--radius-lg); box-shadow: var(--shadow); aspect-ratio: 4/3; object-fit:cover; }
.about-teaser h2{ font-size: clamp(30px,4vw,44px); margin-bottom: 22px; }
.about-teaser p{ font-size:16.5px; line-height:1.7; color: rgba(43,51,21,.75); font-weight:500; margin-bottom: 26px; }

/* ---------- PARTNER MARQUEE ---------- */
.marquee-band{ background: var(--forest); color: var(--cream); overflow:hidden; padding: 18px 0; }
.marquee-band .label{ text-align:center; font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color: var(--sage); padding-top:22px; }
.marquee-track{ display:flex; width: max-content; animation: scroll-left 30s linear infinite; }
.marquee-track span{
  font-family:'Canva Sans', sans-serif; font-style: normal; font-weight: 800; font-size: 20px; letter-spacing:-0.01em;
  padding: 0 34px; white-space:nowrap; display:flex; align-items:center; gap: 34px;
}
.marquee-track span::after{ content:'✦'; font-style:normal; color: var(--sage); font-size:14px; }
@keyframes scroll-left{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ---------- FLAVOR GRID ---------- */
.flavor-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.flavor-card{
  background: var(--cream-pop); border-radius: var(--radius-md); padding: 26px 22px 22px;
  border: 1px solid rgba(55,66,26,0.08); transition: transform .25s ease, box-shadow .25s ease;
}
.flavor-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); }
.flavor-scoop{
  width: 62px; height:62px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size: 26px; margin-bottom: 18px; box-shadow: inset 0 -8px 14px rgba(0,0,0,0.08);
}
.flavor-card h3{ font-size: 21px; margin-bottom:8px; }
.flavor-card p{ font-size: 14.5px; color: rgba(43,51,21,.68); line-height:1.5; margin-bottom: 16px; font-weight:500; }
.flavor-tag{
  display:inline-block; font-size: 11.5px; font-weight: 800; text-transform:uppercase; letter-spacing:.05em;
  padding: 5px 11px; border-radius: 999px; background: var(--sage); color: var(--forest-deep);
}
.flavor-tag.veg{ background: var(--cream); }

/* ---------- GENERIC CARD GRID (community/career) ---------- */
.card-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.card-grid.two{ grid-template-columns: repeat(2,1fr); }
.info-card{
  background: var(--cream-pop); border-radius: var(--radius-md); padding: 30px 26px;
  border: 1px solid rgba(55,66,26,0.08);
}
.info-card .icon-circle{
  width:52px; height:52px; border-radius:50%; background: var(--forest); color: var(--cream);
  display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:18px;
}
.info-card h3{ font-size: 19px; margin-bottom: 10px; }
.info-card p{ font-size:14.5px; color: rgba(43,51,21,.72); line-height:1.7; font-weight:600; }
.info-card .meta-row{ display:flex; justify-content:space-between; font-size:13.5px; margin-top:14px; padding-top:14px; border-top:1px dashed rgba(55,66,26,.2); font-weight:800; }
.info-card .meta-row span:last-child{ color: var(--forest); }

/* dark variant */
.dark-section{ background: var(--forest); color: var(--cream-pop); }
.dark-section h2{ color: var(--cream-pop); }
.dark-section .section-head p{ color: rgba(243,235,223,0.75); }
.dark-section .section-head .eyebrow{ border-color: var(--sage); color: var(--sage); }
.dark-section .info-card{ background: rgba(243,235,223,0.06); border-color: rgba(243,235,223,0.14); }
.dark-section .info-card h3{ color: var(--cream-pop); }
.dark-section .info-card p{ color: rgba(243,235,223,0.7); }
.dark-section .info-card .meta-row{ border-color: rgba(243,235,223,0.2); }
.dark-section .info-card .meta-row span:last-child{ color: var(--sage); }
.dark-section .icon-circle{ background: var(--sage); color: var(--forest-deep); }

/* ---------- NEWSLETTER ---------- */
.newsletter{ background: var(--sage); border-radius: var(--radius-lg); margin: 0 32px 100px; padding: 64px 48px;
  text-align:center; max-width: calc(var(--wrap) - 0px); margin-left:auto; margin-right:auto; }
.newsletter h2{ font-size: clamp(28px,3.6vw,42px); margin-bottom:14px; }
.newsletter p{ font-size:16px; color: rgba(43,51,21,.75); margin-bottom: 30px; font-weight:600; }
.newsletter-form{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; max-width:480px; margin:0 auto; }
.newsletter-form input{
  flex:1; min-width:220px; padding: 14px 20px; border-radius:999px; border:2px solid var(--forest);
  background: var(--cream-pop); font-family:'Canva Sans',sans-serif; font-weight:600; font-size:14.5px; color:var(--forest);
}
.newsletter-form input::placeholder{ color: rgba(43,51,21,.5); }
.newsletter-form button{ border:none; }

/* ---------- FOOTER ---------- */
footer{ background: var(--forest-deep); color: rgba(243,235,223,0.75); padding: 64px 0 28px; }
.footer-top{ display:grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid rgba(243,235,223,0.14); }
.footer-logo{ width:170px; margin-bottom:18px; }
.footer-top p{ font-size:14px; line-height:1.7; max-width:280px; }
.footer-col h4{ font-size: 13px; text-transform:uppercase; letter-spacing:.08em; color: var(--sage); margin-bottom: 16px; font-weight:800; }
.footer-col a{ display:block; font-size: 14.5px; padding: 6px 0; font-weight:600; color: rgba(243,235,223,0.75); transition: color .18s ease; }
.footer-col a:hover{ color: var(--cream-pop); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top: 26px; font-size: 13px; flex-wrap:wrap; gap: 12px; }
.socials{ display:flex; gap:14px; }
.socials a{
  width:38px; height:38px; border-radius:50%; border: 1.5px solid rgba(243,235,223,0.25);
  display:flex; align-items:center; justify-content:center; font-size:15px;
  transition: background .18s ease, border-color .18s ease;
}
.socials a:hover{ background: var(--sage); border-color: var(--sage); color:var(--forest-deep); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .flavor-grid{ grid-template-columns: repeat(2,1fr); }
  .card-grid{ grid-template-columns: 1fr 1fr; }
  .about-teaser .wrap{ grid-template-columns:1fr; }
  .about-teaser img{ order:-1; }
  .footer-top{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px){
  .video-hero video{ object-fit: contain; }
  header.site-nav{
    position: sticky; top:0;
    background: rgba(43,51,21,0.92);
    backdrop-filter: blur(10px);
  }
  .nav-cta .btn.ghost, .nav-cta .btn.line-light{ display:none; }
  nav.nav-links{ display:none; }
  .nav-links.mobile-open{
    display:flex !important;
    flex-direction:column; align-items:flex-start; gap:2px;
    position:absolute; top:100%; left:0; right:0;
    background: rgba(43,51,21,0.97);
    padding: 12px 32px 22px;
    border-top:1px solid rgba(243,235,223,0.15);
  }
  .nav-links.mobile-open a{ color: var(--cream-pop) !important; padding:12px 0; width:100%; }
  .nav-inner{ position:relative; flex-wrap:wrap; }
  .nav-toggle{
    display:flex; align-items:center; justify-content:center; width:42px; height:42px;
    border-radius:50%; border:2px solid currentColor; background:transparent; cursor:pointer; color:inherit;
  }
  .flavor-grid{ grid-template-columns: 1fr 1fr; gap:14px; }
  .card-grid{ grid-template-columns: 1fr; }
  section{ padding:70px 0; }
  .newsletter{ margin: 0 18px 70px; padding: 48px 24px; }
  .footer-top{ grid-template-columns:1fr; gap:32px; }
  .page-header{ padding: 140px 0 60px; }
}

/* ============ GRADIENT PAGE (flavours) ============ */
.gradient-page{
  background: linear-gradient(160deg, var(--cream-light) 0%, var(--cream) 55%, var(--sage) 130%);
}
.gradient-page header.site-nav{
  position: sticky; top:0; background: rgba(43,51,21,0.88); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(243,235,223,0.12);
}
.gradient-page nav.nav-links{ color: var(--cream-pop); }
.gradient-page .nav-cta .btn.ghost{ color: var(--cream-pop); border-color: rgba(243,235,223,0.6); }
.gradient-page .nav-cta .btn.ghost:hover{ background: var(--cream-pop); color: var(--forest); }
.gradient-page .nav-toggle{ color: var(--cream-pop); }

.gradient-page .page-header{ background: transparent; padding: 156px 0 64px; }

.photo-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 34px 30px;
}
.photo-card{ text-align:center; }
.photo-placeholder{
  aspect-ratio: 1 / 1;
  border-radius: var(--radius-md);
  border: 2px dashed rgba(55,66,26,0.3);
  background: rgba(255,253,249,0.5);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap: 10px;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.photo-card:hover .photo-placeholder{
  background: rgba(255,253,249,0.85); border-color: rgba(55,66,26,0.55); transform: translateY(-4px);
}
.photo-placeholder .icon{ font-size: 46px; opacity:.6; }
.photo-placeholder span{
  font-size: 13px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color: rgba(43,51,21,0.5);
}
.photo-card h3{
  font-family:'Canva Sans', sans-serif; color: var(--forest); font-weight:800; font-size: 15px;
  text-transform:uppercase; letter-spacing:.12em; margin-top: 18px;
}
.photo-placeholder.photo-filled{
  border-style: solid; border-color: transparent; background: none; padding:0; overflow:hidden;
}
.photo-placeholder.photo-filled img{ width:100%; height:100%; object-fit:cover; display:block; }
.carousel-heading{
  text-align:center; font-size: clamp(26px,3.2vw,38px); margin-bottom: 34px; color: var(--forest);
}

@media (max-width: 720px){ .photo-grid{ grid-template-columns: 1fr; gap: 26px; } }

/* ============ FLAVOUR CAROUSEL ============ */
.carousel-section{
  min-height: 100vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding: 140px 24px 60px;
}
.carousel-wrap{
  position:relative;
  width:100%;
  max-width: 1040px;
  display:flex; align-items:center; gap: 18px;
}
.carousel-viewport{ overflow:hidden; flex:1; }
.carousel-track{
  display:flex;
  transition: transform .5s cubic-bezier(.65,0,.35,1);
}
.carousel-item{
  flex: 0 0 50%;
  display:flex;
  justify-content:center;
  padding: 0 18px;
}
.carousel-item .photo-card{ width: min(38vw, 400px); }
.carousel-item .photo-placeholder{ aspect-ratio: 4/5; width:100%; }
.carousel-item .photo-placeholder .icon{ font-size: 52px; }
.carousel-item .photo-card h3{ font-size: 15.5px; margin-top: 20px; }

.carousel-arrow{
  flex-shrink:0;
  width: 52px; height:52px; border-radius:50%;
  border: 1.5px solid rgba(55,66,26,0.35);
  background: rgba(255,253,249,0.5);
  color: var(--forest);
  font-size: 22px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.carousel-arrow:hover{ background: var(--sage); border-color: var(--sage); color: var(--forest-deep); transform: scale(1.06); }

.carousel-dots{ display:flex; gap:10px; justify-content:center; margin-top: 38px; }
.carousel-dots .dot{
  width:8px; height:8px; border-radius:50%;
  background: rgba(55,66,26,0.25);
  border:none; cursor:pointer;
  transition: background .2s ease, transform .2s ease;
}
.carousel-dots .dot.active{ background: var(--sage-deep); transform: scale(1.3); }

@media (max-width: 720px){
  .carousel-section{ padding: 120px 16px 50px; }
  .carousel-wrap{ gap:8px; }
  .carousel-item{ flex: 0 0 100%; padding: 0 6px; }
  .carousel-item .photo-card{ width: 100%; max-width: 460px; margin: 0 auto; }
  .carousel-item .photo-placeholder{ aspect-ratio: 3/4; }
  .carousel-item .photo-placeholder .icon{ font-size: 60px; }
  .carousel-item .photo-card h3{ font-size: 16px; margin-top: 18px; }
  .carousel-arrow{ width:40px; height:40px; font-size:18px; }
}
