/* ===================================================================
   ADENIUM — TIENDA V2
   Sistema compartido: tokens, tipografía, header/footer, componentes
   narrativos (hero, capítulos, cita, filosofía, invitación) y
   componentes de tienda (categorías, ítems) y zona de cobertura.
   =================================================================== */

:root{
  --paper:      #F5F0E6;
  --paper-deep: #ECE3D0;
  --ink:        #20281F;
  --forest:     #1F4B3A;
  --forest-ink: #16362A;
  --moss:       #5C7360;
  --clay:       #BB6B3D;
  --clay-deep:  #9C5530;
  --line:       rgba(32,40,31,0.16);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body:    'Lora', Georgia, serif;
  --font-utility: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
::selection{ background:var(--clay); color:var(--paper); }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }

.wrap{ max-width:1180px; margin:0 auto; padding-left:32px; padding-right:32px; }

.eyebrow{
  font-family:var(--font-utility);
  font-size:0.7rem;
  font-weight:600;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--moss);
}

/* ===================== HEADER ===================== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(245,240,230,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:18px; padding-bottom:18px;
}
.site-header .logo-img{ height:34px; width:auto; }
.site-header nav{
  display:flex; align-items:center; gap:26px;
  font-family:var(--font-utility); font-size:0.8rem; font-weight:500;
}
.site-header nav a.muted{ color:var(--moss); transition:color .2s; }
.site-header nav a.muted:hover{ color:var(--forest); }
.site-header nav a.muted.active{ color:var(--forest-ink); font-weight:600; }
.site-header nav a.cta-link{
  display:inline-block;
  background:var(--clay); color:var(--paper);
  font-weight:600;
  padding:9px 20px;
  border-radius:20px;
  white-space:nowrap;
  transition:background .2s, transform .15s;
  box-shadow:0 6px 16px -6px rgba(187,107,61,0.55);
}
.site-header nav a.cta-link:hover{ background:var(--clay-deep); color:var(--paper); transform:translateY(-1px); }

.menu-toggle{
  display:none;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:34px; height:34px;
  background:none; border:1px solid var(--line); border-radius:6px;
  cursor:pointer; padding:6px; flex-shrink:0;
}
.menu-toggle span{ display:block; width:16px; height:1.5px; background:var(--forest); }

/* ===================== SIGNATURE DIVIDER (frond) ===================== */
.frond{
  display:flex; justify-content:center; margin:0 auto;
  width:64px; height:44px; opacity:0.85;
}
.frond svg{ width:100%; height:100%; }
.frond.inverted{ filter:invert(1) brightness(1.6); }

/* ===================== HERO ===================== */
.hero{
  padding:100px 0 84px;
  text-align:center;
}
.hero .eyebrow{ margin-bottom:22px; }
.hero h1{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:500;
  font-size:clamp(2.2rem, 5vw, 3.9rem);
  line-height:1.14;
  max-width:17ch;
  margin:0 auto 26px;
  color:var(--forest-ink);
}
.hero .lede{
  font-size:1.06rem;
  color:var(--ink);
  max-width:58ch;
  margin:0 auto 36px;
}
.hero .lede em{ font-style:italic; color:var(--forest); }
.hero.small{ padding:76px 0 60px; }
.hero.small h1{ font-size:clamp(2rem, 4.2vw, 3.1rem); max-width:18ch; }

/* Variante con imagen de fondo (solo home) */
.hero.with-media{
  position:relative; overflow:hidden;
  text-align:left; padding:150px 0 130px;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(22,54,42,0.86) 0%, rgba(22,54,42,0.68) 40%, rgba(22,54,42,0.42) 75%, rgba(22,54,42,0.3) 100%);
}
.hero.with-media .wrap{ position:relative; z-index:1; }
.hero-text{ max-width:640px; }
.hero.with-media .eyebrow{ color:rgba(245,240,230,0.75); margin-bottom:20px; }
.hero.with-media h1{ margin:0 0 24px; max-width:none; color:var(--paper); }
.hero.with-media .lede{ margin:0; max-width:56ch; color:rgba(245,240,230,0.92); }
.hero.with-media .lede em{ color:var(--paper); }
.hero.with-media .frond{ margin:34px 0 0; justify-content:flex-start; }

@media (max-width:860px){
  .hero.with-media{ text-align:center; padding:96px 0 72px; }
  .hero-text{ max-width:none; margin:0 auto; }
  .hero.with-media .lede{ margin-left:auto; margin-right:auto; }
  .hero.with-media .frond{ justify-content:center; }
}

/* ===================== ÍNDICE (contents / jump nav) ===================== */
.contents{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.contents .wrap{
  display:flex; flex-wrap:wrap; justify-content:center;
  padding-top:0; padding-bottom:0;
}
.contents a{
  font-family:var(--font-utility);
  font-size:0.78rem; font-weight:500;
  letter-spacing:0.04em;
  padding:18px 28px;
  color:var(--moss);
  display:flex; align-items:baseline; gap:8px;
  transition:color .2s;
  border-right:1px solid var(--line);
}
.contents a:last-child{ border-right:none; }
.contents a:hover{ color:var(--forest); }
.contents .num{
  font-family:var(--font-display); font-style:italic; font-size:0.95rem;
  color:var(--clay);
}

/* ===================== CHAPTER (bloque narrativo con figura) ===================== */
.chapter{
  padding:96px 0;
  border-bottom:1px solid var(--line);
}
.chapter:last-of-type{ border-bottom:none; }
.chapter-grid{
  display:grid;
  grid-template-columns:0.85fr 1fr;
  gap:72px;
  align-items:center;
}
.chapter.reverse .chapter-grid{ grid-template-columns:1fr 0.85fr; }
.chapter.reverse .chapter-text{ order:2; }
.chapter.reverse .chapter-figure{ order:1; }

.chapter-num{
  font-family:var(--font-display); font-style:italic;
  font-size:1.2rem; color:var(--clay);
  margin-bottom:14px; display:block;
}
.chapter-text h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.6rem, 2.6vw, 2.3rem);
  line-height:1.22;
  color:var(--forest-ink);
  margin-bottom:20px;
}
.chapter-text p{ margin-bottom:16px; color:var(--ink); }
.chapter-text p:last-child{ margin-bottom:0; }
.chapter-text .fine{
  font-family:var(--font-utility); font-size:0.82rem;
  color:var(--moss); margin-top:24px; line-height:1.6;
}

.chapter-figure{
  aspect-ratio:4/5;
  border-radius:2px;
  background:linear-gradient(155deg, #DCE5D8 0%, #EAE2CC 55%, #E4D6BC 100%);
  position:relative;
  overflow:hidden;
  box-shadow:0 18px 40px -18px rgba(31,75,58,0.35);
}
.chapter-figure.wide{ aspect-ratio:16/10; }
.chapter-figure::before{
  content:'';
  position:absolute; inset:0;
  background-image:
    radial-gradient(circle at 30% 20%, rgba(31,75,58,0.08) 0, transparent 45%),
    radial-gradient(circle at 75% 80%, rgba(187,107,61,0.10) 0, transparent 50%);
}
.chapter-figure .cap{
  position:absolute; left:18px; bottom:18px; right:18px;
  font-family:var(--font-utility); font-size:0.68rem; font-weight:500;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--forest-ink); opacity:0.6;
}

/* Variante con fotografía real */
.chapter-figure.has-img img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.chapter-figure.has-img::before{
  z-index:1;
  background:linear-gradient(to top, rgba(22,54,42,0.65) 0%, rgba(22,54,42,0.08) 45%, transparent 70%);
}
.chapter-figure.has-img .cap{
  z-index:2; color:var(--paper); opacity:0.95;
}

/* ===================== PULL QUOTE ===================== */
.pull-quote{ padding:80px 0; text-align:center; }
.pull-quote blockquote{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.4rem, 2.8vw, 2rem);
  line-height:1.45;
  color:var(--forest-ink);
  max-width:36ch;
  margin:0 auto;
}

/* ===================== LISTA EN PROSA (cuidados, valores) ===================== */
.prose-list-section{ padding:96px 0; text-align:center; border-bottom:1px solid var(--line); }
.prose-list-section .wrap{ max-width:840px; }
.prose-list-section h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.6rem, 2.6vw, 2.3rem);
  color:var(--forest-ink);
  margin-bottom:20px;
}
.prose-list-section > .wrap > p.intro{ max-width:58ch; margin:0 auto 40px; }
.prose-list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px 40px;
  text-align:left;
  max-width:640px;
  margin:0 auto;
}
.prose-list li{ font-size:0.98rem; padding-left:22px; position:relative; }
.prose-list li::before{
  content:''; position:absolute; left:0; top:0.55em;
  width:9px; height:9px; background:var(--clay); border-radius:50%;
  transform:translateY(-50%);
}

/* ===================== GALERÍA DEL VIVERO ===================== */
.vivero-gallery{ padding:96px 0; text-align:center; border-bottom:1px solid var(--line); }
.vivero-gallery .eyebrow{ margin-bottom:14px; }
.vivero-gallery h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.6rem, 2.6vw, 2.3rem);
  color:var(--forest-ink);
  max-width:32ch; margin:0 auto 44px;
}
.vivero-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-auto-rows:200px;
  gap:10px;
  text-align:left;
}
.vivero-gallery-item{
  display:block; position:relative; overflow:hidden; border-radius:2px;
  box-shadow:0 18px 40px -18px rgba(31,75,58,0.35);
  border:none; padding:0; margin:0; background:none; width:100%; height:100%;
  cursor:zoom-in; font:inherit;
}
.vivero-gallery-item.span-2{ grid-column:span 2; grid-row:span 2; }
.vivero-gallery-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 0.4s ease;
}
.vivero-gallery-item:hover img{ transform:scale(1.05); }

@media (max-width:680px){
  .vivero-gallery-grid{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:150px; }
  .vivero-gallery-item.span-2{ grid-column:span 2; grid-row:span 1; }
}

/* ===================== LIGHTBOX ===================== */
body.lightbox-locked{ overflow:hidden; }
.lightbox{
  display:none;
  position:fixed; inset:0; z-index:200;
  background:rgba(22,54,42,0.92);
  align-items:center; justify-content:center;
  padding:48px 24px;
  cursor:zoom-out;
}
.lightbox.open{ display:flex; }
.lightbox-img{
  max-width:min(1100px, 100%); max-height:100%;
  object-fit:contain; border-radius:2px;
  box-shadow:0 30px 70px -20px rgba(0,0,0,0.6);
  cursor:default;
}
.lightbox-close{
  position:absolute; top:20px; right:24px;
  width:44px; height:44px; border-radius:50%;
  background:rgba(245,240,230,0.12); border:1px solid rgba(245,240,230,0.35);
  color:var(--paper); font-size:1.6rem; line-height:1;
  cursor:pointer; transition:background .2s;
}
.lightbox-close:hover{ background:rgba(245,240,230,0.22); }

/* ===================== PHILOSOPHY BAND ===================== */
.philosophy{
  background:var(--forest);
  color:var(--paper);
  padding:100px 0;
  text-align:center;
}
.philosophy .eyebrow{ color:rgba(245,240,230,0.6); margin-bottom:26px; }
.philosophy p{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.5rem, 3.2vw, 2.3rem);
  line-height:1.4;
  max-width:22ch;
  margin:0 auto;
}
.philosophy .frond{ margin-top:34px; }

/* ===================== STAT / TRUST STRIP ===================== */
.stat-strip{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:36px 0;
}
.stat-strip .wrap{
  display:flex; justify-content:center; gap:56px; flex-wrap:wrap; text-align:center;
}
.stat-strip .stat b{
  display:block; font-family:var(--font-display); font-style:italic;
  font-size:1.5rem; color:var(--forest-ink); margin-bottom:4px;
}
.stat-strip .stat span{
  font-family:var(--font-utility); font-size:0.74rem; letter-spacing:0.04em;
  color:var(--moss);
}

/* ===================== ZONA DE COBERTURA ===================== */
.zone-list{ max-width:760px; margin:0 auto; }
.zone-entry{
  display:grid; grid-template-columns:1fr auto; align-items:baseline;
  gap:20px; padding:26px 0; border-bottom:1px solid var(--line);
}
.zone-entry:first-child{ border-top:1px solid var(--line); }
.zone-entry h3{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(1.3rem, 2.4vw, 1.7rem); color:var(--forest-ink);
  text-align:left;
}
.zone-entry p{
  font-family:var(--font-body); font-size:0.92rem; color:var(--moss);
  text-align:left; margin-top:4px; max-width:46ch;
}
.zone-entry .tag{
  font-family:var(--font-utility); font-size:0.7rem; font-weight:600;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--clay);
  white-space:nowrap;
}

/* ===================== TIENDA — barra de confianza ===================== */
.shop-trust-bar{
  background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:22px 0;
}
.shop-trust-bar .wrap{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:14px 40px;
}
.trust-item{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-utility); font-size:0.84rem; font-weight:500;
  color:var(--forest-ink); white-space:nowrap;
}
.trust-item .trust-icon{ font-size:1.05rem; }

/* ===================== TIENDA — filtro de categorías (sticky) ===================== */
.shop-filter{
  position:sticky; top:73px; z-index:40;
  background:rgba(245,240,230,0.95); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.shop-filter .wrap{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
  padding-top:16px; padding-bottom:16px;
}
.shop-filter a{
  font-family:var(--font-utility); font-size:0.8rem; font-weight:600;
  color:var(--forest-ink);
  padding:8px 18px; border-radius:20px; border:1px solid var(--line);
  white-space:nowrap; transition:background .2s, border-color .2s, color .2s;
}
.shop-filter a:hover{ border-color:var(--clay); color:var(--clay-deep); }

/* ===================== TIENDA — categorías e ítems ===================== */
.shop-category{ padding:80px 0; border-bottom:1px solid var(--line); }
.shop-category:last-of-type{ border-bottom:none; }
.shop-category-head{ max-width:720px; margin:0 auto 44px; text-align:center; }
.shop-category-head .chapter-num{ margin-bottom:10px; }
.shop-category-head h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.55rem, 2.4vw, 2.1rem); color:var(--forest-ink);
  margin-bottom:12px;
}
.shop-category-head p{ color:var(--ink); font-size:0.96rem; }

.shop-items{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
  gap:28px;
}
.shop-item{
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:4px;
  overflow:hidden;
  transition:box-shadow .25s, transform .25s, border-color .25s;
}
.shop-item:hover{
  box-shadow:0 22px 44px -22px rgba(31,75,58,0.35);
  transform:translateY(-3px);
  border-color:transparent;
}

.shop-item-thumb{
  position:relative; width:100%; aspect-ratio:1/1;
  background:var(--paper-deep); overflow:hidden;
}
.shop-item-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .4s ease;
}
.shop-item:hover .shop-item-thumb img{ transform:scale(1.06); }
.shop-item-thumb.placeholder{ display:flex; align-items:center; justify-content:center; }
.shop-item-thumb.placeholder svg{ width:34px; height:34px; opacity:0.4; }

.shop-item-body{
  display:flex; flex-direction:column; flex:1;
  padding:18px 20px 20px;
}
.shop-item-name{
  font-family:var(--font-display); font-weight:500; font-size:1.1rem; color:var(--forest-ink);
  margin-bottom:6px;
}
.shop-item-desc{
  font-family:var(--font-body); font-size:0.86rem; color:var(--moss);
  line-height:1.5; margin-bottom:16px;
}
.shop-item-footer{
  margin-top:auto;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.shop-item-price{
  font-family:var(--font-utility); font-weight:700; font-size:1.02rem;
  color:var(--forest-ink); white-space:nowrap; font-variant-numeric:tabular-nums;
}
.shop-item-price .from{
  display:block; font-weight:500; font-size:0.66rem; color:var(--moss);
  text-transform:uppercase; letter-spacing:0.05em;
}
.shop-item-link{
  display:inline-block; flex-shrink:0;
  font-family:var(--font-utility); font-size:0.76rem; font-weight:600;
  color:var(--paper); background:var(--clay);
  padding:9px 16px; border-radius:20px; white-space:nowrap;
  transition:background .2s, transform .15s;
}
.shop-item-link:hover{ background:var(--clay-deep); transform:translateY(-1px); }

/* ===================== AGENDAR (formulario de llamada/visita) ===================== */
.schedule-section{ padding:96px 0; border-bottom:1px solid var(--line); }
.schedule-head{ max-width:640px; margin:0 auto 48px; text-align:center; }
.schedule-head h2{
  font-family:var(--font-display); font-weight:500;
  font-size:clamp(1.6rem, 2.6vw, 2.3rem); color:var(--forest-ink);
  margin-bottom:14px;
}
.schedule-head p{ color:var(--ink); font-size:0.95rem; }

.schedule-form{ max-width:600px; margin:0 auto; text-align:left; }

.field{ margin-bottom:26px; }
.field label{
  display:block; font-family:var(--font-utility); font-size:0.7rem; font-weight:600;
  letter-spacing:0.09em; text-transform:uppercase; color:var(--moss); margin-bottom:10px;
}
.field input,
.field select{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  padding:9px 2px; font-family:var(--font-body); font-size:1rem; color:var(--ink);
  border-radius:0; appearance:none; -webkit-appearance:none;
  transition:border-color .2s;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C7360' stroke-width='1.4' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 4px center;
  padding-right:20px;
}
.field input:focus,
.field select:focus{ border-bottom-color:var(--clay); outline:none; }
.field input::placeholder{ color:#9aa39a; }

.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }

.choice-group{ display:flex; gap:10px; flex-wrap:wrap; }
.choice-option{ flex:1; min-width:150px; }
.choice-option input[type="radio"]{ position:absolute; opacity:0; pointer-events:none; }
.choice-option label{
  display:block; text-align:center; padding:13px 14px;
  border:1px solid var(--line); border-radius:2px; cursor:pointer;
  font-family:var(--font-utility); font-size:0.84rem; font-weight:500; color:var(--ink);
  transition:border-color .2s, background .2s, color .2s;
  text-transform:none; letter-spacing:0;
}
.choice-option input[type="radio"]:checked + label{
  border-color:var(--clay); background:var(--paper-deep); color:var(--forest-ink); font-weight:600;
}
.choice-option input[type="radio"]:focus-visible + label{ outline:2px solid var(--clay); outline-offset:2px; }

.schedule-submit{
  display:block; width:100%; margin-top:6px;
  background:var(--clay); color:var(--paper); border:none;
  font-family:var(--font-utility); font-size:0.95rem; font-weight:600;
  padding:16px; border-radius:2px; cursor:pointer;
  transition:background .2s, transform .15s;
}
.schedule-submit:hover{ background:var(--clay-deep); transform:translateY(-1px); }

.schedule-alt{
  margin-top:20px; text-align:center;
  font-family:var(--font-utility); font-size:0.82rem; color:var(--moss);
}
.schedule-alt a{ color:var(--clay); border-bottom:1px solid var(--clay); padding-bottom:1px; }
.schedule-alt a:hover{ color:var(--clay-deep); border-color:var(--clay-deep); }

@media (max-width:560px){
  .field-row{ grid-template-columns:1fr; }
}

/* ===================== CIERRE / INVITACIÓN ===================== */
.invite{ padding:100px 0 120px; text-align:center; }
.invite .eyebrow{ margin-bottom:22px; }
.invite h2{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(2rem, 4vw, 3rem);
  color:var(--forest-ink);
  max-width:16ch; margin:0 auto 20px;
}
.invite p{ max-width:48ch; margin:0 auto 40px; color:var(--ink); }

.btn-clay{
  display:inline-block;
  background:var(--clay); color:var(--paper);
  font-family:var(--font-utility); font-size:0.92rem; font-weight:600;
  letter-spacing:0.02em; padding:17px 42px; border-radius:2px;
  transition:background .2s, transform .15s;
}
.btn-clay:hover{ background:var(--clay-deep); transform:translateY(-1px); }

.invite .signoff{
  margin-top:48px;
  font-family:var(--font-display); font-style:italic;
  font-size:1rem; color:var(--moss);
}

/* ===================== FOOTER ===================== */
.site-footer{ border-top:1px solid var(--line); padding:44px 0; }
.site-footer .wrap{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:28px;
}
.footer-col{ font-family:var(--font-utility); font-size:0.78rem; color:var(--moss); }
.footer-col .footer-logo{ height:26px; width:auto; margin-bottom:12px; opacity:0.85; }
.footer-col p{ margin-bottom:3px; }
.footer-col h4{
  font-family:var(--font-utility); font-size:0.7rem; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase; color:var(--forest-ink);
  margin-bottom:10px;
}
.footer-col a{ display:block; margin-bottom:6px; transition:color .2s; }
.footer-col a:hover{ color:var(--forest); }

/* ===================== REVEAL ON SCROLL ===================== */
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  [data-reveal]{ opacity:1; transform:none; transition:none; }
}

/* ===================== RESPONSIVE ===================== */
@media (max-width:860px){
  .chapter-grid, .chapter.reverse .chapter-grid{ grid-template-columns:1fr; gap:36px; }
  .chapter.reverse .chapter-text{ order:1; }
  .chapter.reverse .chapter-figure{ order:2; }
  .chapter-figure{ aspect-ratio:16/10; }
  .prose-list{ grid-template-columns:1fr; }
  .contents .wrap{ flex-direction:column; align-items:stretch; }
  .contents a{ border-right:none; border-bottom:1px solid var(--line); justify-content:center; }
  .contents a:last-child{ border-bottom:none; }
  .stat-strip .wrap{ gap:32px; }
  .shop-items{ grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:18px; }
  .shop-filter{ position:static; }
}

@media (max-width:680px){
  .site-header nav a.muted{ display:none; }
  .menu-toggle{ display:flex; }
  .site-header nav#main-nav{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    flex-direction:column; padding:8px 0 16px; gap:0;
    box-shadow:0 10px 24px rgba(0,0,0,0.08);
  }
  .site-header nav#main-nav.open{ display:flex; }
  .site-header nav#main-nav a.muted{
    display:block; font-size:0.95rem; padding:14px 24px;
    border-bottom:1px solid var(--line); color:var(--ink);
  }
  .site-header nav#main-nav a.cta-link{
    margin:14px 24px 4px; text-align:center;
  }
}

@media (max-width:560px){
  .wrap{ padding-left:22px; padding-right:22px; }
  .hero{ padding:72px 0 52px; }
  .chapter{ padding:64px 0; }
  .shop-category{ padding:56px 0; }
  .zone-entry{ grid-template-columns:1fr; gap:6px; }
}
