:root{
  --craft-paper:#f5edde;
  --craft-paper-deep:#e7dac2;
  --craft-ink:#281f18;
  --craft-gold:#9f7131;
  --craft-navy:#142b4d;
  --craft-rule:rgba(62,45,27,.16);
}

.canonical-storefront{
  background:var(--craft-paper-deep);
  color:var(--craft-ink);
}

.canonical-kicker{
  margin:0 0 14px;
  color:#654a27;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:clamp(.86rem,1.25vw,1.06rem);
  line-height:1.2;
  font-weight:700;
}

.canonical-mission{
  max-width:770px;
  margin:22px auto 0;
  font-family:Georgia,serif;
  font-size:clamp(1.05rem,1.8vw,1.38rem);
  line-height:1.45;
  font-style:italic;
}

/* HOME — one canonical renderer, no later DOM rewriting. */
.canonical-home-hero{
  min-height:calc(100svh - 72px);
  padding:clamp(36px,5vw,70px) clamp(18px,3vw,46px) clamp(36px,5vw,64px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,255,255,.58),transparent 43%),
    var(--craft-paper);
  cursor:pointer;
}

.canonical-home-intro{
  text-align:center;
  margin:0 auto clamp(26px,4vw,48px);
}

.canonical-home-intro h1,
.canonical-catalog-header h1{
  margin:0;
  font-family:Georgia,serif;
  font-size:clamp(4rem,9vw,8.4rem);
  line-height:.84;
  font-weight:500;
  letter-spacing:.025em;
  text-transform:uppercase;
}

.canonical-tagline{
  margin:18px 0 0;
  font-family:Georgia,serif;
  font-size:clamp(1rem,1.8vw,1.35rem);
  letter-spacing:.1em;
}

.canonical-home-products{
  width:min(1260px,96vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  background:var(--craft-paper);
  box-shadow:0 22px 54px rgba(55,36,17,.17);
}

.canonical-home-product{
  min-width:0;
  background:var(--craft-paper);
}

.canonical-home-product:not(:last-child){
  border-right:1px solid rgba(62,45,27,.1);
}

.canonical-home-image{
  display:block;
  overflow:hidden;
}

.canonical-home-image img{
  display:block;
  width:100%;
  aspect-ratio:1/1.03;
  object-fit:cover;
  transition:transform .5s ease,filter .5s ease;
}

.canonical-home-product:hover img{
  transform:scale(1.012);
  filter:saturate(1.03);
}

.canonical-home-statement{
  display:block;
  min-height:104px;
  padding:20px 24px 22px;
  color:var(--craft-ink);
  text-decoration:none;
  text-align:center;
  font-family:Georgia,serif;
  font-size:clamp(1.12rem,1.75vw,1.48rem);
  line-height:1.38;
  font-weight:500;
}

.canonical-home-statement:hover{
  color:#76501f;
}

.canonical-home-hero:focus-visible{
  outline:3px solid var(--craft-gold);
  outline-offset:-3px;
}

/* VARIETALS — dense, lush image field; structured captions underneath. */
.canonical-catalog-header{
  padding:clamp(42px,7vw,88px) 24px clamp(34px,5vw,64px);
  background:var(--craft-paper);
  text-align:center;
}

.canonical-catalog-grid{
  width:min(1500px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:var(--craft-paper);
}

.canonical-catalog-item{
  min-width:0;
  background:var(--craft-paper);
  border-bottom:1px solid var(--craft-rule);
}

.canonical-catalog-item:not(:nth-child(3n)){
  border-right:1px solid rgba(62,45,27,.1);
}

.canonical-catalog-image{
  position:relative;
  display:block;
  overflow:hidden;
  background:#decdb0;
}

.canonical-catalog-image img{
  display:block;
  width:100%;
  aspect-ratio:1/1.03;
  object-fit:cover;
  transition:transform .5s ease,filter .5s ease;
}

.canonical-catalog-image:hover img{
  transform:scale(1.012);
  filter:saturate(1.03);
}

.canonical-sold-out{
  position:absolute;
  top:14px;
  right:14px;
  padding:7px 10px;
  background:rgba(32,27,22,.86);
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.68rem;
}

.canonical-catalog-caption{
  min-height:140px;
  padding:14px clamp(16px,2vw,30px) 16px;
  display:flex;
  flex-direction:column;
}

.canonical-pollination-statement{
  max-width:35ch;
  margin:0;
  font-family:Georgia,serif;
  font-size:clamp(1rem,1.38vw,1.24rem);
  line-height:1.38;
}

.canonical-catalog-actions{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(150px,1.22fr);
  gap:12px;
  margin-top:auto;
  padding-top:10px;
}

.canonical-more,
.canonical-buy{
  min-height:41px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:3px;
  text-transform:uppercase;
  letter-spacing:.085em;
  font-size:.75rem;
  font-weight:700;
  text-decoration:none;
}

.canonical-more{
  border:1px solid var(--craft-gold);
  color:#76501f;
  background:transparent;
}

.canonical-more:hover{
  background:#efe2cc;
}

.canonical-buy{
  border:1px solid var(--craft-navy);
  background:var(--craft-navy);
  color:#fff;
  gap:10px;
  cursor:pointer;
}

.canonical-buy:hover{
  background:#1b385f;
}

.canonical-buy:disabled{
  opacity:.52;
  cursor:not-allowed;
}

.canonical-buy svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media(max-width:780px){
  .canonical-home-hero{
    min-height:calc(100svh - 60px);
    padding:28px 16px 32px;
  }

  .canonical-home-intro{
    margin-bottom:22px;
  }

  .canonical-home-products{
    width:min(88vw,410px);
    display:block;
  }

  .canonical-home-product{
    display:none;
  }

  .canonical-home-product:first-child{
    display:block;
  }

  .canonical-home-statement{
    min-height:0;
    padding:17px 18px 20px;
    font-size:1.08rem;
  }

  .canonical-catalog-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .canonical-catalog-caption{
    min-height:122px;
    padding:8px 7px 9px;
  }

  .canonical-pollination-statement{
    font-size:.68rem;
    line-height:1.25;
  }

  .canonical-catalog-actions{
    grid-template-columns:1fr;
    gap:6px;
    padding-top:7px;
  }

  .canonical-more,
  .canonical-buy{
    min-height:30px;
    font-size:.54rem;
    letter-spacing:.045em;
  }

  .canonical-buy{
    gap:5px;
  }

  .canonical-buy svg{
    width:13px;
    height:13px;
  }

  .canonical-kicker{
    font-size:.72rem;
    letter-spacing:.14em;
  }
}
