*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

:root{
  --forest:#10271b;
  --forest-deep:#07160f;
  --forest-soft:#183c29;
  --leaf:#6f8f48;
  --sage:#a9bd72;
  --earth:#9a7448;
  --gold:#c5a565;
  --cream:#f3efe3;
  --paper:#f7f4eb;
  --ink:#183326;
  --muted:#718071;
  --line:rgba(24,51,38,.14);
  --white:#fff;
  --ease:cubic-bezier(.16,1,.3,1);
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:"DM Sans",sans-serif;
  background:var(--paper);
  color:var(--ink);
  overflow-x:hidden;
}

body.loading{
  overflow:hidden;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  font:inherit;
  border:0;
  background:none;
  cursor:pointer;
}

img{
  max-width:100%;
}

::selection{
  background:var(--gold);
  color:var(--forest);
}


/* =====================================================
   LOADER
===================================================== */

.loader{
  position:fixed;
  inset:0;
  z-index:99999;
  background:var(--forest-deep);
  color:white;
  display:grid;
  place-items:center;
  overflow:hidden;
  transition:
    opacity 1.1s var(--ease),
    visibility 1.1s;
}

.loader.loaded{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.loader-glow{
  position:absolute;
  width:70vw;
  height:70vw;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(122,157,82,.15),
    transparent 65%
  );
  animation:loaderGlow 5s ease-in-out infinite;
}

.loader-center{
  position:relative;
  width:min(360px,75vw);
  text-align:center;
}

.loader-mark{
  width:190px;
  margin:auto;
  opacity:0;
  transform:translateY(30px) scale(.88);
  animation:
    loaderMark 1.2s .2s var(--ease) forwards;
}

.loader-mark img{
  width:100%;
  filter:brightness(0) invert(1);
}

.loader-line{
  height:1px;
  background:rgba(255,255,255,.14);
  margin-top:45px;
  overflow:hidden;
}

.loader-line span{
  display:block;
  width:0;
  height:100%;
  background:var(--gold);
  animation:loaderLine 2.4s .4s var(--ease) forwards;
}

.loader-bottom{
  display:flex;
  justify-content:space-between;
  margin-top:13px;
  font-size:8px;
  letter-spacing:.22em;
  color:rgba(255,255,255,.48);
  opacity:0;
  animation:fadeUp .8s 1s forwards;
}

.loader-corner{
  position:absolute;
  font-size:8px;
  letter-spacing:.2em;
  color:rgba(255,255,255,.3);
}

.loader-corner-a{
  left:35px;
  top:35px;
}

.loader-corner-b{
  right:35px;
  bottom:35px;
}

@keyframes loaderMark{
  to{
    opacity:1;
    transform:none;
  }
}

@keyframes loaderLine{
  to{
    width:100%;
  }
}

@keyframes loaderGlow{
  50%{
    transform:scale(1.1);
    opacity:.7;
  }
}


/* =====================================================
   CURSOR
===================================================== */

.cursor{
  position:fixed;
  width:20px;
  height:20px;
  border:1px solid var(--gold);
  border-radius:50%;
  pointer-events:none;
  z-index:10000;
  transform:translate(-50%,-50%);
  opacity:0;
  transition:
    width .45s var(--ease),
    height .45s var(--ease),
    background .35s,
    opacity .3s;
}

.cursor span{
  position:absolute;
  width:4px;
  height:4px;
  background:var(--gold);
  border-radius:50%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}

.cursor.hover{
  width:60px;
  height:60px;
  background:rgba(197,165,101,.08);
}

.cursor-text{
  position:fixed;
  z-index:10001;
  pointer-events:none;
  color:white;
  font-size:7px;
  letter-spacing:.15em;
  transform:translate(-50%,-50%);
  opacity:0;
}

@media(min-width:1000px){
  .cursor{
    opacity:1;
  }
}


/* =====================================================
   SCROLL PROGRESS
===================================================== */

.scroll-progress{
  position:fixed;
  left:0;
  top:0;
  height:2px;
  width:100%;
  z-index:1000;
}

.scroll-progress span{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(
    90deg,
    var(--gold),
    var(--sage)
  );
}


/* =====================================================
   HEADER
===================================================== */

.header{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:86px;
  z-index:900;
  color:white;
  transition:
    height .5s var(--ease),
    background .5s,
    backdrop-filter .5s;
}

.header.scrolled{
  height:70px;
  background:rgba(7,22,15,.9);
  backdrop-filter:blur(18px);
}

.header-inner{
  height:100%;
  width:min(1400px,88vw);
  margin:auto;
  display:flex;
  align-items:center;
}

.brand{
  width:130px;
}

.brand img{
  width:100%;
  filter:brightness(0) invert(1);
}

.desktop-nav{
  display:flex;
  gap:31px;
  margin-left:auto;
  margin-right:35px;
}

.nav-link{
  position:relative;
  font-size:10px;
  letter-spacing:.06em;
  opacity:.6;
  padding:10px 0;
  transition:.35s;
}

.nav-link:hover,
.nav-link.active{
  opacity:1;
}

.nav-link::after{
  content:"";
  position:absolute;
  bottom:2px;
  left:0;
  width:0;
  height:1px;
  background:var(--gold);
  transition:width .4s var(--ease);
}

.nav-link:hover::after,
.nav-link.active::after{
  width:100%;
}

.header-button{
  display:flex;
  align-items:center;
  gap:13px;
  border:1px solid rgba(197,165,101,.55);
  padding:11px 16px;
  color:#ead9ae;
  font-size:9px;
  letter-spacing:.05em;
  transition:.4s var(--ease);
}

.header-button:hover{
  background:var(--gold);
  color:var(--forest);
  transform:translateY(-2px);
}

.menu-button{
  display:none;
  margin-left:auto;
  width:42px;
  height:42px;
}

.menu-button span{
  display:block;
  width:24px;
  height:1px;
  background:white;
  margin:7px auto;
  transition:.4s;
}


/* =====================================================
   MOBILE MENU
===================================================== */

.mobile-menu{
  position:fixed;
  inset:0;
  background:var(--forest-deep);
  z-index:850;
  transform:translateY(-100%);
  transition:transform .8s var(--ease);
}

.mobile-menu.open{
  transform:none;
}

.mobile-menu-inner{
  height:100%;
  padding:35px 7vw;
  display:flex;
  flex-direction:column;
}

.mobile-menu-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.mobile-menu-top img{
  width:120px;
  filter:brightness(0) invert(1);
}

.mobile-menu-top button{
  color:white;
  font-size:10px;
  letter-spacing:.12em;
}

.mobile-menu nav{
  margin-top:auto;
  margin-bottom:auto;
  display:flex;
  flex-direction:column;
}

.mobile-menu nav a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:17px 0;
  border-bottom:1px solid rgba(255,255,255,.1);
  color:white;
  font:500 clamp(30px,7vw,48px)/1 "Playfair Display";
}

.mobile-menu nav span{
  font:9px "DM Sans";
  color:var(--gold);
}

.mobile-menu-footer{
  display:flex;
  justify-content:space-between;
  font-size:7px;
  letter-spacing:.18em;
  color:#70816f;
}


/* =====================================================
   HERO
===================================================== */

.hero{
  position:relative;
  min-height:100svh;
  background:var(--forest);
  color:white;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  padding:130px 8vw 70px;
  overflow:hidden;
}

.hero-background{
  position:absolute;
  inset:0;
}

.hero-grid{
  position:absolute;
  inset:0;
  opacity:.18;
  background-image:
    linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(circle at 75% 50%,black,transparent 65%);
}

.hero-light{
  position:absolute;
  width:650px;
  height:650px;
  right:4%;
  top:5%;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(105,140,72,.22),
    transparent 68%
  );
  animation:breathe 7s ease-in-out infinite;
}

@keyframes breathe{
  50%{
    transform:scale(1.08);
    opacity:.65;
  }
}

.hero-content{
  position:relative;
  z-index:5;
  max-width:700px;
}

.hero-kicker,
.section-kicker{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--gold);
  font-size:8px;
  letter-spacing:.23em;
  font-weight:700;
}

.hero-kicker span{
  width:27px;
  height:1px;
  background:var(--gold);
}

.hero-title{
  margin-top:24px;
  font:500 clamp(4rem,7vw,7.5rem)/.86 "Playfair Display";
  letter-spacing:-.055em;
}

.hero-title .line{
  display:block;
  overflow:hidden;
}

.hero-title .line > span{
  display:block;
  transform:translateY(110%);
  animation:titleUp 1s var(--ease) forwards;
}

.hero-title .line:nth-child(1)>span{
  animation-delay:.65s;
}

.hero-title .line:nth-child(2)>span{
  animation-delay:.78s;
}

.hero-title .line:nth-child(3)>span{
  animation-delay:.91s;
}

.hero-title .italic{
  color:var(--sage);
  font-style:italic;
}

@keyframes titleUp{
  to{
    transform:none;
  }
}

.hero-description{
  max-width:430px;
  margin-top:31px;
  color:#aebcae;
  font-size:12px;
  line-height:1.9;
}

.hero-actions{
  display:flex;
  align-items:center;
  gap:27px;
  margin-top:31px;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:15px 20px;
  font-size:9px;
  font-weight:700;
  transition:.45s var(--ease);
}

.button-primary{
  background:var(--gold);
  color:var(--forest);
}

.button-primary:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(197,165,101,.2);
}

.text-link{
  color:#d6ded3;
  font-size:9px;
  border-bottom:1px solid rgba(255,255,255,.3);
  padding-bottom:6px;
}

.text-link span{
  margin-left:9px;
  color:var(--gold);
}

.reveal{
  opacity:0;
  transform:translateY(35px);
  transition:
    opacity .9s var(--ease),
    transform .9s var(--ease);
}

.reveal.visible{
  opacity:1;
  transform:none;
}


/* =====================================================
   HERO PRODUCT
===================================================== */

.hero-product{
  position:relative;
  height:650px;
  display:grid;
  place-items:center;
  perspective:1200px;
}

.product-aura{
  position:absolute;
  width:480px;
  height:480px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(157,181,99,.18),
    transparent 67%
  );
  animation:aura 6s ease-in-out infinite;
}

@keyframes aura{
  50%{
    transform:scale(1.1);
  }
}

.hero-product-shadow{
  position:absolute;
  width:290px;
  height:50px;
  bottom:80px;
  border-radius:50%;
  background:#000;
  filter:blur(25px);
  opacity:.45;
}

.hero-pouch{
  position:relative;
  width:275px;
  height:410px;
  border-radius:10px 10px 25px 25px;
  background:
    linear-gradient(
      135deg,
      #315c39,
      #102c1c 52%,
      #071a10
    );
  box-shadow:
    30px 45px 80px rgba(0,0,0,.55),
    inset 10px 0 30px rgba(255,255,255,.04);
  transform:
    rotateY(-10deg)
    rotateZ(-4deg);
  animation:productFloat 6s ease-in-out infinite;
  overflow:hidden;
  transform-style:preserve-3d;
}

@keyframes productFloat{
  50%{
    transform:
      translateY(-16px)
      rotateY(7deg)
      rotateZ(-2deg);
  }
}

.pouch-top{
  height:17px;
  border-bottom:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.05);
}

.pouch-content{
  height:calc(100% - 17px);
  display:flex;
  align-items:center;
  flex-direction:column;
  padding-top:52px;
  text-align:center;
}

.pouch-logo{
  width:85px;
  filter:brightness(0) invert(1);
  opacity:.95;
}

.pouch-small{
  margin-top:13px;
  color:#d6c99f;
  font-size:7px;
  letter-spacing:.22em;
}

.pouch-content h2{
  margin-top:55px;
  font:500 29px/.95 "Playfair Display";
  letter-spacing:.08em;
  color:#f0e8d1;
}

.pouch-line{
  width:30px;
  height:1px;
  background:var(--gold);
  margin:20px 0;
}

.pouch-content small{
  font-size:6px;
  letter-spacing:.25em;
  color:#9caf9b;
}

.pouch-shine{
  position:absolute;
  inset:-30%;
  background:
    linear-gradient(
      110deg,
      transparent 42%,
      rgba(255,255,255,.16) 50%,
      transparent 58%
    );
  transform:translateX(-70%) rotate(8deg);
  animation:pouchShine 6s 1s ease-in-out infinite;
}

@keyframes pouchShine{
  45%,
  100%{
    transform:translateX(70%) rotate(8deg);
  }
}

.floating-note{
  position:absolute;
  display:flex;
  align-items:center;
  gap:10px;
  color:#afbdad;
  font-size:7px;
  letter-spacing:.1em;
}

.floating-note span{
  color:var(--gold);
}

.note-one{
  right:5%;
  top:25%;
}

.note-two{
  left:4%;
  bottom:23%;
}

.hero-scroll{
  position:absolute;
  left:8vw;
  bottom:25px;
  display:flex;
  align-items:center;
  gap:13px;
  color:#718475;
  font-size:7px;
  letter-spacing:.18em;
}

.hero-scroll i{
  width:40px;
  height:1px;
  background:#718475;
  position:relative;
}

.hero-scroll i::after{
  content:"";
  position:absolute;
  left:0;
  top:-2px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--gold);
  animation:scrollDot 1.8s infinite;
}

@keyframes scrollDot{
  to{
    left:100%;
    opacity:0;
  }
}


/* =====================================================
   INTRO STRIP
===================================================== */

.intro-strip{
  background:var(--gold);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:22px 8vw;
}

.intro-item{
  display:flex;
  align-items:center;
  gap:15px;
  color:var(--forest);
}

.intro-item span{
  font-size:7px;
  opacity:.55;
}

.intro-item p{
  font-size:9px;
  font-weight:700;
}


/* =====================================================
   COMMON
===================================================== */

.section-wrap{
  width:min(1400px,84vw);
  margin:auto;
}

.products-section,
.process-section{
  padding:140px 0;
}

.section-heading{
  display:grid;
  grid-template-columns:1fr 350px;
  gap:70px;
  align-items:end;
  margin-bottom:80px;
}

.section-kicker{
  color:#718066;
}

.section-title{
  margin-top:20px;
  font:500 clamp(3.5rem,5.8vw,6rem)/.9 "Playfair Display";
  letter-spacing:-.05em;
}

.section-title em{
  color:var(--leaf);
  font-style:italic;
}

.section-intro{
  color:var(--muted);
  font-size:12px;
  line-height:1.85;
}


/* =====================================================
   PRODUCTS
===================================================== */

.product-list{
  display:flex;
  flex-direction:column;
  gap:90px;
}

.product-item{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
  position:relative;
}

.product-item.reverse .product-visual{
  order:2;
}

.product-item.reverse .product-copy{
  order:1;
}

.product-number{
  position:absolute;
  left:-30px;
  top:30px;
  font-size:8px;
  color:#9a9f91;
}

.product-visual{
  height:480px;
  display:grid;
  place-items:center;
  overflow:hidden;
  position:relative;
}

.product-visual::before{
  content:"";
  position:absolute;
  width:330px;
  height:330px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.2);
}

.product-green{
  background:#1a3826;
}

.product-earth{
  background:#765b3b;
}

.product-rust{
  background:#63382c;
}

.product-gold{
  background:#98804d;
}

.mini-pouch{
  position:relative;
  width:185px;
  height:285px;
  border-radius:7px 7px 16px 16px;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding-top:28px;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.12),
      transparent 30%
    ),
    linear-gradient(145deg,#315c3b,#102619);
  box-shadow:0 30px 50px rgba(0,0,0,.32);
  transition:.8s var(--ease);
}

.product-earth .mini-pouch{
  background:linear-gradient(145deg,#a7834d,#3c2a19);
}

.product-rust .mini-pouch{
  background:linear-gradient(145deg,#9c4d39,#35150f);
}

.product-gold .mini-pouch{
  background:linear-gradient(145deg,#d0b56d,#675327);
}

.product-item:hover .mini-pouch{
  transform:
    translateY(-12px)
    rotate(-3deg)
    scale(1.03);
}

.mini-pouch img{
  width:55px;
  filter:brightness(0) invert(1);
}

.mini-pouch strong{
  margin-top:18px;
  color:#f3ead5;
  font:500 20px "Playfair Display";
}

.mini-pouch span{
  margin-top:4px;
  color:#d5c69f;
  font-size:6px;
  letter-spacing:.25em;
}

.mini-pouch small{
  margin-top:auto;
  margin-bottom:20px;
  color:#eee5cf;
  font-size:7px;
}

.product-copy{
  max-width:470px;
}

.product-category{
  color:#7d876f;
  font-size:8px;
  letter-spacing:.2em;
}

.product-copy h3{
  margin-top:15px;
  font:500 38px "Playfair Display";
}

.product-copy p{
  margin-top:18px;
  color:var(--muted);
  font-size:12px;
  line-height:1.85;
}

.product-copy a{
  display:inline-block;
  margin-top:27px;
  font-size:9px;
  font-weight:700;
  border-bottom:1px solid var(--gold);
  padding-bottom:6px;
}

.product-copy a span{
  margin-left:10px;
  color:var(--gold);
}


/* =====================================================
   STORY
===================================================== */

.story-section{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:720px;
  background:var(--forest);
  color:white;
}

.story-image{
  position:relative;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    radial-gradient(
      circle at 50% 45%,
      #385e37,
      #0b2115 65%
    );
}

.story-ring{
  width:460px;
  height:460px;
  border:1px solid rgba(197,165,101,.3);
  border-radius:50%;
  animation:spin 30s linear infinite;
}

@keyframes spin{
  to{
    transform:rotate(360deg);
  }
}

.story-word{
  position:absolute;
  font:700 600px/.7 "Playfair Display";
  color:rgba(255,255,255,.025);
}

.story-stamp{
  position:absolute;
  display:flex;
  flex-direction:column;
  align-items:center;
  color:var(--gold);
  letter-spacing:.2em;
  font-size:8px;
}

.story-stamp small{
  margin-top:8px;
  color:#82927e;
  font-size:6px;
}

.story-content{
  padding:120px 10vw;
  align-self:center;
}

.story-content .section-kicker{
  color:var(--gold);
}

.story-lead{
  margin-top:30px;
  max-width:500px;
  font:500 18px/1.7 "Playfair Display";
  color:#d9e1d5;
}

.story-text{
  max-width:500px;
  margin-top:23px;
  color:#9dac9d;
  font-size:12px;
  line-height:1.9;
}

.story-signature{
  margin-top:45px;
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--gold);
  font-size:8px;
  letter-spacing:.18em;
}

.story-signature span{
  width:35px;
  height:1px;
  background:var(--gold);
}


/* =====================================================
   PROCESS
===================================================== */

.process-section{
  background:var(--cream);
}

.process-list{
  border-top:1px solid var(--line);
}

.process-row{
  display:grid;
  grid-template-columns:80px 1fr 1fr;
  align-items:center;
  min-height:125px;
  border-bottom:1px solid var(--line);
  transition:.5s var(--ease);
}

.process-row:hover{
  padding-left:20px;
  background:#eee8d8;
}

.process-row>span{
  color:var(--gold);
  font-size:9px;
}

.process-row h3{
  font:500 30px "Playfair Display";
}

.process-row p{
  color:var(--muted);
  font-size:11px;
}


/* =====================================================
   FOUNDER
===================================================== */

.founder-section{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:720px;
}

.founder-photo{
  position:relative;
  background:#d9d2bd;
  overflow:hidden;
}

.founder-photo-placeholder{
  position:absolute;
  inset:10%;
  border:1px solid rgba(24,51,38,.18);
  display:grid;
  place-items:end start;
  padding:25px;
  background:
    linear-gradient(
      135deg,
      #d5ccb5,
      #aaa083
    );
}

.founder-photo-placeholder::before{
  content:"";
  position:absolute;
  width:55%;
  height:70%;
  left:22%;
  bottom:0;
  border-radius:50% 50% 0 0;
  background:
    radial-gradient(
      circle at 50% 30%,
      #b6a58c,
      #695b4c 70%
    );
  opacity:.55;
}

.founder-photo-placeholder span{
  position:relative;
  z-index:2;
  font-size:8px;
  letter-spacing:.2em;
  color:#59624e;
}

.founder-content{
  padding:120px 10vw;
  align-self:center;
}

.founder-lead{
  max-width:500px;
  margin-top:30px;
  font:500 19px/1.65 "Playfair Display";
}

.founder-text{
  max-width:500px;
  margin-top:22px;
  color:var(--muted);
  font-size:12px;
  line-height:1.9;
}

.founder-name{
  display:flex;
  flex-direction:column;
  margin-top:40px;
  padding-left:17px;
  border-left:1px solid var(--gold);
}

.founder-name strong{
  font:500 20px "Playfair Display";
}

.founder-name span{
  margin-top:5px;
  font-size:8px;
  color:#7c8677;
}


/* =====================================================
   CTA
===================================================== */

.cta-section{
  position:relative;
  min-height:620px;
  background:var(--forest);
  color:white;
  display:grid;
  place-items:center;
  text-align:center;
  overflow:hidden;
}

.cta-glow{
  position:absolute;
  width:700px;
  height:700px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(101,140,71,.18),
    transparent 65%
  );
}

.cta-content{
  position:relative;
  z-index:2;
  max-width:750px;
}

.cta-content .section-kicker{
  justify-content:center;
  color:var(--gold);
}

.cta-title{
  margin-top:22px;
  font:500 clamp(3.5rem,6vw,6.5rem)/.9 "Playfair Display";
  letter-spacing:-.05em;
}

.cta-title em{
  color:var(--sage);
  font-style:italic;
}

.cta-text{
  max-width:480px;
  margin:25px auto 0;
  color:#9eaf9e;
  font-size:12px;
  line-height:1.8;
}

.cta-actions{
  margin-top:32px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:25px;
}

.button-light{
  background:var(--gold);
  color:var(--forest);
}

.cta-phone{
  color:#d2dacd;
  font-size:9px;
  border-bottom:1px solid rgba(255,255,255,.3);
  padding-bottom:6px;
}


/* =====================================================
   FOOTER
===================================================== */

.footer{
  position:relative;
  min-height:600px;
  overflow:hidden;
  background:#06140d;
  color:white;
}

.footer-word{
  position:absolute;
  left:50%;
  bottom:-40px;
  transform:translateX(-50%);
  white-space:nowrap;
  font:800 clamp(170px,28vw,520px)/.7 "DM Sans";
  letter-spacing:-.1em;
  color:rgba(255,255,255,.025);
  pointer-events:none;
}

.footer-inner{
  position:relative;
  z-index:2;
  width:min(1400px,84vw);
  margin:auto;
  padding:100px 0 35px;
  min-height:600px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

.footer-top{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.2fr;
  gap:70px;
}

.footer-logo{
  display:block;
  width:190px;
}

.footer-logo img{
  width:100%;
  filter:brightness(0) invert(1);
}

.footer-brand p{
  max-width:230px;
  margin-top:25px;
  color:#849484;
  font:500 16px/1.6 "Playfair Display";
}

.footer-label{
  display:block;
  margin-bottom:25px;
  color:#667766;
  font-size:8px;
  letter-spacing:.22em;
}

.footer-column{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.footer-column>a{
  margin-bottom:13px;
  color:#bfc9bd;
  font-size:10px;
  transition:.35s;
}

.footer-column>a:hover{
  color:var(--gold);
  transform:translateX(5px);
}

.footer-contact>a{
  font-size:10px;
}

.footer-socials{
  display:flex;
  gap:15px;
  margin-top:22px;
}

.footer-socials a{
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.14);
  display:grid;
  place-items:center;
  font-size:7px;
  color:#aeb9ac;
  transition:.4s var(--ease);
}

.footer-socials a:hover{
  background:var(--gold);
  color:var(--forest);
  transform:translateY(-4px);
}

.footer-line{
  height:1px;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.18),
    transparent
  );
  margin:70px 0 25px;
}

.footer-bottom{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  color:#657466;
  font-size:7px;
  letter-spacing:.1em;
}

.footer-bottom span:nth-child(2){
  color:var(--gold);
}

#backTop{
  justify-self:end;
  width:38px;
  height:38px;
  border:1px solid rgba(197,165,101,.35);
  color:var(--gold);
  transition:.4s;
}

#backTop:hover{
  background:var(--gold);
  color:var(--forest);
}


/* =====================================================
   TABLET
===================================================== */

@media(max-width:1000px){

  .desktop-nav,
  .header-button{
    display:none;
  }

  .menu-button{
    display:block;
  }

  .hero{
    grid-template-columns:1fr;
    padding-top:150px;
  }

  .hero-product{
    height:500px;
    margin-top:20px;
  }

  .hero-content{
    max-width:650px;
  }

  .section-heading{
    grid-template-columns:1fr;
    gap:25px;
  }

  .product-item{
    gap:40px;
  }

  .story-content,
  .founder-content{
    padding:90px 7vw;
  }

  .footer-top{
    grid-template-columns:1fr 1fr;
  }

}


/* =====================================================
   MOBILE
===================================================== */

@media(max-width:700px){

  .header{
    height:72px;
  }

  .header-inner{
    width:88vw;
  }

  .brand{
    width:110px;
  }

  .hero{
    min-height:auto;
    padding:125px 7vw 80px;
  }

  .hero-title{
    font-size:4rem;
  }

  .hero-description{
    font-size:11px;
  }

  .hero-actions{
    flex-wrap:wrap;
  }

  .hero-product{
    height:430px;
    margin-top:25px;
  }

  .hero-pouch{
    width:210px;
    height:320px;
  }

  .product-aura{
    width:340px;
    height:340px;
  }

  .note-one{
    right:0;
    top:18%;
  }

  .note-two{
    left:0;
    bottom:15%;
  }

  .hero-scroll{
    display:none;
  }

  .intro-strip{
    grid-template-columns:1fr 1fr;
    gap:20px;
    padding:22px 7vw;
  }

  .section-wrap{
    width:86vw;
  }

  .products-section,
  .process-section{
    padding:90px 0;
  }

  .section-heading{
    margin-bottom:50px;
  }

  .section-title{
    font-size:3.5rem;
  }

  .product-list{
    gap:65px;
  }

  .product-item,
  .product-item.reverse{
    grid-template-columns:1fr;
    gap:25px;
  }

  .product-item.reverse .product-visual,
  .product-item.reverse .product-copy{
    order:initial;
  }

  .product-number{
    left:0;
    top:-25px;
  }

  .product-visual{
    height:390px;
  }

  .product-copy h3{
    font-size:32px;
  }

  .story-section,
  .founder-section{
    grid-template-columns:1fr;
  }

  .story-image{
    min-height:450px;
  }

  .story-ring{
    width:330px;
    height:330px;
  }

  .story-word{
    font-size:400px;
  }

  .story-content,
  .founder-content{
    padding:80px 7vw;
  }

  .founder-photo{
    min-height:430px;
  }

  .process-row{
    grid-template-columns:45px 1fr;
    padding:24px 0;
    min-height:auto;
    gap:10px;
  }

  .process-row p{
    grid-column:2;
  }

  .cta-section{
    min-height:560px;
    padding:80px 7vw;
  }

  .cta-actions{
    flex-direction:column;
  }

  .footer-inner{
    width:86vw;
    padding-top:75px;
  }

  .footer-top{
    grid-template-columns:1fr 1fr;
    gap:50px 25px;
  }

  .footer-brand{
    grid-column:1/-1;
  }

  .footer-bottom{
    grid-template-columns:1fr;
    gap:18px;
    text-align:center;
  }

  #backTop{
    justify-self:center;
  }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media(max-width:420px){

  .hero-title{
    font-size:3.35rem;
  }

  .hero-pouch{
    width:185px;
    height:290px;
  }

  .pouch-content{
    padding-top:35px;
  }

  .pouch-content h2{
    margin-top:38px;
    font-size:23px;
  }

  .floating-note{
    font-size:6px;
  }

  .intro-strip{
    grid-template-columns:1fr;
  }

  .section-title{
    font-size:3.1rem;
  }

  .footer-top{
    grid-template-columns:1fr;
  }

}


/* =====================================================
   REDUCED MOTION
===================================================== */

@media(prefers-reduced-motion:reduce){

  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }

  .reveal{
    opacity:1;
    transform:none;
  }

}

/* =========================================================
   GROVIA — NAVBAR UI REFINEMENT
   ========================================================= */

.header {
    height: 92px;
    transition:
        height .55s var(--ease),
        background .55s var(--ease),
        box-shadow .55s var(--ease);
}

.header.scrolled {
    height: 76px;
    background: rgba(7, 22, 15, .94);
    box-shadow: 0 12px 40px rgba(0,0,0,.12);
}

.header-inner {
    width: min(1500px, 90vw);
}

/* Logo */
.brand {
    width: 155px;
    flex-shrink: 0;
}

.brand img {
    display: block;
    width: 100%;
    height: auto;
}

/* Desktop navigation */
.desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(24px, 2.4vw, 40px);
    margin-left: auto;
    margin-right: clamp(25px, 3vw, 48px);
}

.nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;

    font-family: "DM Sans", sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .025em;

    color: rgba(255,255,255,.82);
    opacity: 1;

    transition:
        color .35s ease,
        transform .4s var(--ease);
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 5px;

    width: 0;
    height: 1px;

    background: var(--gold);

    transition:
        width .45s var(--ease);
}

.nav-link:hover,
.nav-link.active {
    color: #fff;
    transform: translateY(-1px);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

/* Contact button */
.header-button {
    min-height: 46px;
    padding: 0 19px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;

    border: 1px solid rgba(197,165,101,.55);

    font-family: "DM Sans", sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .025em;

    color: #ead9ae;

    transition:
        background .45s var(--ease),
        color .45s var(--ease),
        border-color .45s var(--ease),
        transform .45s var(--ease),
        box-shadow .45s var(--ease);
}

.header-button:hover {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--forest);

    transform: translateY(-3px);

    box-shadow:
        0 12px 30px rgba(197,165,101,.16);
}

/* =========================================================
   MOBILE NAV
   ========================================================= */

.menu-button {
    width: 46px;
    height: 46px;

    display: none;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
}

.menu-button span {
    width: 21px;
    height: 1px;
    margin: 5px auto;

    background: #fff;

    transition:
        transform .45s var(--ease),
        opacity .3s ease;
}

.menu-button.active span:first-child {
    transform: translateY(3px) rotate(45deg);
}

.menu-button.active span:last-child {
    transform: translateY(-3px) rotate(-45deg);
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 900px) {

    .header {
        height: 78px;
    }

    .header.scrolled {
        height: 70px;
    }

    .header-inner {
        width: min(92vw, 700px);
    }

    .brand {
        width: 135px;
    }

    .desktop-nav,
    .header-button {
        display: none;
    }

    .menu-button {
        display: flex;
        margin-left: auto;
    }
}

/* =========================================================
   LARGE MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .header {
        height: 74px;
    }

    .header.scrolled {
        height: 68px;
    }

    .header-inner {
        width: 88vw;
    }

    .brand {
        width: 125px;
    }

    .menu-button {
        width: 43px;
        height: 43px;
    }
}

/* =========================================================
   GROVIA — TYPOGRAPHY REFINEMENT
   ========================================================= */

body {
    font-family: "DM Sans", sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

/* Hero */
.hero-description {
    max-width: 500px;
    font-size: 15px;
    line-height: 1.85;
}

/* Section descriptions */
.section-intro {
    font-size: 14px;
    line-height: 1.85;
}

/* Product descriptions */
.product-copy p {
    font-size: 14px;
    line-height: 1.85;
}

/* Product category */
.product-category {
    font-size: 10px;
}

/* Product CTA */
.product-copy a {
    font-size: 11px;
}

/* Buttons */
.button {
    min-height: 48px;
    padding: 0 22px;
    font-size: 11px;
}

/* Small labels */
.section-kicker,
.hero-kicker {
    font-size: 10px;
}

/* Intro strip */
.intro-item p {
    font-size: 11px;
}

/* Better paragraph readability */
.story-body {
    font-size: 15px;
    line-height: 1.9;
}

/* =========================================================
   GROVIA — FINAL RESPONSIVE HEADER / MOBILE NAV
   ========================================================= */

.header {
    height: 96px;
    transition:
        height .55s var(--ease),
        background .55s ease,
        box-shadow .55s ease;
}

.header.scrolled {
    height: 84px;
    background: rgba(7, 22, 15, .96);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    box-shadow: 0 12px 35px rgba(0,0,0,.14);
}

.header-inner {
    width: min(1420px, 90vw);
    min-height: 100%;
}

/* Keep the actual logo completely visible */
.brand {
    width: 150px;
    height: auto;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.brand img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 58px;
    object-fit: contain;
}

/* Desktop nav */
.desktop-nav {
    display: flex;
    align-items: center;
    gap: clamp(23px, 2.4vw, 38px);
    margin-left: auto;
    margin-right: clamp(22px, 3vw, 42px);
}

.nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    white-space: nowrap;

    font-family: "DM Sans", sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .025em;

    color: rgba(255,255,255,.78);
    opacity: 1;

    transition:
        color .35s ease,
        transform .4s var(--ease);
}

.nav-link:hover,
.nav-link.active {
    color: #fff;
    transform: translateY(-1px);
}

.nav-link::after {
    bottom: 4px;
}

/* Header CTA */
.header-button {
    min-height: 46px;
    padding: 0 19px;
    white-space: nowrap;

    font-size: 11px;
    font-weight: 600;
}

/* Mobile trigger */
.menu-button {
    width: 46px;
    height: 46px;
    margin-left: auto;

    display: none;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;

    transition:
        background .35s ease,
        border-color .35s ease,
        transform .4s var(--ease);
}

.menu-button:hover {
    background: rgba(197,165,101,.12);
    border-color: rgba(197,165,101,.55);
}

.menu-button span {
    width: 21px;
    height: 1px;
    margin: 5px auto;

    background: #fff;

    transition:
        transform .5s var(--ease),
        opacity .3s ease;
}

/* Hamburger → X */
.menu-button.active span:first-child {
    transform: translateY(3px) rotate(45deg);
}

.menu-button.active span:last-child {
    transform: translateY(-3px) rotate(-45deg);
}


/* =========================================================
   FULL MOBILE MENU
   ========================================================= */

.mobile-menu {
    position: fixed;
    inset: 0;

    z-index: 850;

    background:
        radial-gradient(
            circle at 85% 10%,
            rgba(105,140,72,.14),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #07160f,
            #10271b 60%,
            #07160f
        );

    transform: translateY(-105%);
    visibility: hidden;
    pointer-events: none;

    transition:
        transform .75s var(--ease),
        visibility 0s linear .75s;
}

.mobile-menu.open {
    transform: translateY(0);
    visibility: visible;
    pointer-events: auto;

    transition:
        transform .75s var(--ease),
        visibility 0s;
}

/* Mobile menu content */
.mobile-menu-inner {
    width: min(100%, 720px);
    height: 100%;

    margin: auto;

    padding:
        30px
        max(6vw, 24px)
        30px;

    display: flex;
    flex-direction: column;
}

/* Logo + close row */
.mobile-menu-top {
    min-height: 58px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.mobile-menu-top img {
    width: 145px;
    max-height: 52px;
    object-fit: contain;
}

.mobile-menu-top button {
    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;

    color: #fff;

    font-size: 10px;
    letter-spacing: .12em;

    transition:
        background .35s ease,
        border-color .35s ease;
}

.mobile-menu-top button:hover {
    background: rgba(197,165,101,.12);
    border-color: var(--gold);
}

/* Menu links */
.mobile-menu nav {
    margin: auto 0;

    display: flex;
    flex-direction: column;
}

.mobile-menu nav a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: clamp(15px, 2.3vh, 22px) 0;

    border-bottom: 1px solid rgba(255,255,255,.09);

    color: #fff;

    font-family: "Playfair Display", serif;
    font-size: clamp(28px, 7vw, 46px);
    font-weight: 500;
    line-height: 1;

    opacity: 0;
    transform: translateY(25px);

    transition:
        color .3s ease,
        transform .6s var(--ease),
        opacity .6s var(--ease);
}

/* Stagger links after menu opens */
.mobile-menu.open nav a {
    opacity: 1;
    transform: none;
}

.mobile-menu.open nav a:nth-child(1) {
    transition-delay: .12s;
}

.mobile-menu.open nav a:nth-child(2) {
    transition-delay: .18s;
}

.mobile-menu.open nav a:nth-child(3) {
    transition-delay: .24s;
}

.mobile-menu.open nav a:nth-child(4) {
    transition-delay: .30s;
}

.mobile-menu.open nav a:nth-child(5) {
    transition-delay: .36s;
}

.mobile-menu nav a:hover {
    color: var(--gold);
}

.mobile-menu nav span {
    font-family: "DM Sans", sans-serif;
    font-size: 9px;
    color: var(--gold);
    letter-spacing: .12em;
}

/* Bottom information */
.mobile-menu-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding-top: 20px;

    border-top: 1px solid rgba(255,255,255,.08);

    font-size: 8px;
    letter-spacing: .15em;
    color: rgba(255,255,255,.42);
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .header {
        height: 88px;
    }

    .header.scrolled {
        height: 82px;
    }

    .header-inner {
        width: 90vw;
    }

    .desktop-nav,
    .header-button {
        display: none;
    }

    .menu-button {
        display: flex;
    }

    .brand {
        width: 145px;
    }

    .brand img {
        max-height: 58px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .header {
        height: 82px;
    }

    .header.scrolled {
        height: 78px;
    }

    .header-inner {
        width: 90vw;
    }

    .brand {
        width: 138px;
    }

    .brand img {
        max-height: 55px;
    }

    .menu-button {
        width: 44px;
        height: 44px;
    }

    .mobile-menu-inner {
        padding-top: 24px;
        padding-bottom: 24px;
    }

    .mobile-menu-top img {
        width: 135px;
        max-height: 50px;
    }

    .mobile-menu nav a {
        font-size: clamp(29px, 8vw, 40px);
    }
}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 430px) {

    .header {
        height: 78px;
    }

    .header.scrolled {
        height: 76px;
    }

    .header-inner {
        width: 88vw;
    }

    .brand {
        width: 125px;
    }

    .brand img {
        max-height: 51px;
    }

    .menu-button {
        width: 42px;
        height: 42px;
    }

    .mobile-menu-inner {
        padding:
            20px
            6vw
            20px;
    }

    .mobile-menu-top img {
        width: 125px;
    }

    .mobile-menu nav a {
        padding: 14px 0;
        font-size: 30px;
    }

    .mobile-menu-footer {
        font-size: 7px;
    }
}


/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 360px) {

    .brand {
        width: 112px;
    }

    .brand img {
        max-height: 47px;
    }

    .menu-button {
        width: 40px;
        height: 40px;
    }

    .mobile-menu nav a {
        font-size: 27px;
        padding: 12px 0;
    }
}

body.menu-open {
    overflow: hidden;
}

/* =========================================================
   FOOTER — RESPONSIVE GIANT WORD FIX
   ========================================================= */

.footer-word {
    left: 50%;
    bottom: -3vw;

    max-width: 100%;
    white-space: nowrap;

    font-size: clamp(150px, 29vw, 620px);

    transform:
        translate3d(
            -50%,
            var(--footer-word-y, 0px),
            0
        );
}

@media (max-width: 900px) {

    .footer-word {
        bottom: 0;
        font-size: 30vw;
    }
}

@media (max-width: 600px) {

    .footer-word {
        bottom: 10px;
        font-size: 28vw;
        letter-spacing: -.08em;
    }
}

@media (max-width: 420px) {

    .footer-word {
        bottom: 18px;
        font-size: 27vw;
    }
}

.header.scrolled {
    height: 84px;
}

.header.scrolled .brand img {
    max-height: 58px;
}

@media (max-width: 700px) {
    .header.scrolled {
        height: 78px;
    }

    .header.scrolled .brand img {
        max-height: 55px;
    }
}