/* ============================================================
   Puro Évora — Portal del Évora
   Paleta (extraída del sello):
     Verde Bosque    #1F5132 (sello)
     Verde Hoja      #2D6B3D
     Bronce Oscuro   #8A7536
     Bronce          #B8A055
     Bronce Claro    #D4B97E
     Crema Papel     #F4EEDD
     Marfil          #FBF7EC
     Campo           #6F9543
     Madera          #B88B5D
     Tinta           #1A2418
   Acentos de ecosistema (heredan de CE-23):
     Naranja Évora   #F26522 (solo como enlace cruzado a Compra Évora)
   ============================================================ */

:root{
  --c-green:#1F5132;
  --c-green-2:#2D6B3D;
  --c-green-deep:#133521;
  --c-bronze-deep:#8A7536;
  --c-bronze:#B8A055;
  --c-bronze-light:#D4B97E;
  --c-cream:#F4EEDD;
  --c-ivory:#FBF7EC;
  --c-field:#6F9543;
  --c-wood:#B88B5D;
  --c-wood-deep:#8B6740;
  --c-ink:#1A2418;
  --c-ink-2:#0E1510;
  --c-line:#E4DCC5;
  --c-orange:#F26522;
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 24px;
  --shadow-sm: 0 2px 8px rgba(26,36,24,.08);
  --shadow-md: 0 10px 28px rgba(31,81,50,.14);
  --shadow-lg: 0 26px 60px rgba(31,81,50,.22);
  --maxw: 1240px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  color: var(--c-ink);
  background: var(--c-ivory);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', 'Playfair Display', Georgia, serif;
  color: var(--c-ink-2); line-height: 1.12;
  margin: 0 0 .5em;
  font-weight: 900;
  letter-spacing: -.015em;
}
h1{font-size: clamp(2.4rem, 4.8vw, 4.4rem)}
h2{font-size: clamp(1.9rem, 3.4vw, 3rem)}
h3{font-size: 1.3rem; font-weight: 700}
h4{font-size: 1.02rem; font-weight: 700}
h1 em, h2 em{font-style: italic; color: var(--c-green); font-weight: 500}
p{margin: 0 0 1em}
a{color: var(--c-green); text-decoration: none}
a:hover{color: var(--c-bronze-deep)}

.accent{color: var(--c-green)}
.accent-gold{color: var(--c-bronze-light)}

.eyebrow{
  display:inline-flex; align-items: center; gap: 8px;
  font-family:'Inter', sans-serif;
  font-size:.72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--c-bronze-deep);
  background: var(--c-cream);
  padding: 7px 14px; border-radius: 999px;
  margin-bottom: 1.1rem;
  border: 1px solid rgba(184,160,85,.3);
}
.eyebrow--dark{color: var(--c-green); background: rgba(31,81,50,.08); border-color: rgba(31,81,50,.18)}
.eyebrow--light{color: var(--c-bronze-light); background: rgba(212,185,126,.1); border-color: rgba(212,185,126,.25)}
.eyebrow .dot{width:8px; height:8px; border-radius:50%; background: var(--c-bronze); display:inline-block}

.lede{font-size: 1.12rem; color:#3a3f38; max-width: 62ch}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-flex; align-items: center; justify-content: center;
  padding: 14px 26px;
  border-radius: 999px;
  font-family:'Inter', sans-serif;
  font-weight: 700; font-size: .95rem;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all .2s ease;
  text-decoration: none;
  letter-spacing: .01em;
}
.btn--primary{
  background: var(--c-green); color: var(--c-cream);
  box-shadow: var(--shadow-md);
}
.btn--primary:hover{background: var(--c-green-deep); transform: translateY(-1px); color:#fff}
.btn--ghost{background: transparent; color: var(--c-green); border-color: rgba(31,81,50,.3)}
.btn--ghost:hover{border-color: var(--c-green); background: rgba(31,81,50,.05)}
.btn--gold{
  background: linear-gradient(135deg, var(--c-bronze-light), var(--c-bronze-deep));
  color: var(--c-green-deep);
  box-shadow: 0 8px 22px rgba(138,117,54,.3);
}
.btn--gold:hover{color: var(--c-ink-2); transform: translateY(-1px)}
.btn--ghost-light{background: transparent; color: var(--c-cream); border-color: rgba(244,238,221,.35)}
.btn--ghost-light:hover{border-color: var(--c-cream); background: rgba(244,238,221,.08); color:#fff}
.btn--lg{padding: 18px 32px; font-size: 1.02rem}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position: sticky; top: 0; z-index: 50;
  background: rgba(251,247,236,.92);
  backdrop-filter: blur(10px) saturate(1.1);
  border-bottom: 1px solid var(--c-line);
}
.nav__inner{
  max-width: var(--maxw); margin: 0 auto;
  padding: 14px 28px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px;
}
.brand{display: flex; align-items: center; gap: 14px; color: inherit}
.brand__seal{display: flex; align-items: center; justify-content: center}
.brand__text{display: flex; flex-direction: column; line-height: 1}
.brand__name{
  font-family:'Fraunces', serif; font-weight: 900; font-size: 1.4rem;
  color: var(--c-green); letter-spacing: -.01em;
}
.brand__tag{
  font-size: .7rem; color: var(--c-bronze-deep);
  text-transform: uppercase; letter-spacing: .16em; font-weight: 600;
  margin-top: 4px;
}
.nav__menu{display: flex; gap: 26px; align-items: center}
.nav__menu a{color: var(--c-ink); font-weight: 500; font-size: .92rem; position: relative}
.nav__menu a:hover{color: var(--c-green)}
.nav__menu a:hover::after{
  content:''; position:absolute; left:0; right:0; bottom: -6px;
  height: 2px; background: var(--c-bronze);
}
.domain{
  font-family:'Inter', monospace; font-size: .78rem; font-weight: 700;
  color: var(--c-bronze-deep);
  padding: 6px 12px; border-radius: 6px;
  background: var(--c-cream);
  border: 1px dashed rgba(184,160,85,.5);
}
.domain::before{content:'🌐 '; font-size: .9em}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position: relative; overflow: hidden;
  padding: 72px 0 140px;
  min-height: 640px;
}
.hero__sky{
  position: absolute; top: 0; left: 0; right: 0;
  height: 62%;
  background: linear-gradient(180deg, #C7DEEA 0%, #9FC4D8 55%, #7FA9C5 100%);
  z-index: 0;
}
.hero__fields{
  position: absolute; top: 38%; left: 0; right: 0; height: 38%;
  z-index: 1;
}
.hero__wood{
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 12%;
  background:
    linear-gradient(180deg, rgba(184,139,93,.25), var(--c-wood)),
    repeating-linear-gradient(90deg, var(--c-wood) 0 4px, var(--c-wood-deep) 4px 5px);
  z-index: 2;
}
.hero__inner{
  position: relative; z-index: 3;
  max-width: var(--maxw); margin: 0 auto;
  padding: 0 28px;
  display: grid; grid-template-columns: 1.15fr .85fr;
  gap: 48px; align-items: center;
}
.hero__copy{
  background: rgba(251,247,236,.86);
  backdrop-filter: blur(4px);
  border-radius: var(--radius-lg);
  padding: 40px 44px;
  border: 1px solid rgba(184,160,85,.3);
  box-shadow: var(--shadow-md);
}
.hero__ctas{display: flex; gap: 12px; margin: 26px 0 30px; flex-wrap: wrap}
.hero__meta{display: flex; gap: 14px; flex-wrap: wrap; border-top: 1px solid var(--c-line); padding-top: 22px}
.meta{display:flex; flex-direction: column}
.meta__k{
  font-size: .7rem; text-transform: uppercase; letter-spacing: .12em;
  color: var(--c-bronze-deep); font-weight: 700;
}
.meta__v{font-weight: 700; color: var(--c-ink); font-size: .95rem; margin-top: 2px}

.hero__visual{display: flex; justify-content: center; position: relative}
.medal{
  position: relative;
  filter: drop-shadow(0 30px 40px rgba(31,81,50,.25));
  animation: float 6s ease-in-out infinite;
}
.medal__img{width: 100%; max-width: 440px; height: auto; display: block}
@keyframes float{
  0%,100%{transform: translateY(0)}
  50%{transform: translateY(-10px)}
}

/* ============================================================
   MANIFIESTO
   ============================================================ */
.manifiesto{
  background: var(--c-green);
  color: var(--c-cream);
  padding: 64px 0;
  position: relative;
}
.manifiesto::before{
  content:''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, var(--c-bronze-deep), var(--c-bronze-light), var(--c-bronze-deep));
}
.manifiesto__inner{
  max-width: 920px; margin: 0 auto; padding: 0 28px; text-align: center;
}
.manifiesto__text{
  font-family:'Fraunces', serif; font-size: clamp(1.15rem, 2vw, 1.5rem);
  line-height: 1.55; color: var(--c-cream); max-width: 780px; margin: 0 auto;
}
.manifiesto__text em{color: var(--c-bronze-light); font-weight: 500}
.manifiesto__text strong{color: #fff}

/* ============================================================
   SECTIONS
   ============================================================ */
.section{padding: 100px 0}
.section--cream{background: var(--c-cream)}
.section--dark{background: var(--c-green); color: var(--c-cream); position: relative}
.section--dark::before{
  content:''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--c-bronze);
}
.section--dark h2{color: var(--c-cream)}
.section--dark .lede{color: #C9D4C5}
.section__inner{max-width: var(--maxw); margin: 0 auto; padding: 0 28px}
.section__head{max-width: 820px; margin: 0 auto 56px; text-align: center}
.section__head .lede{margin: 0 auto}

/* ============================================================
   PRODUCTOR DEL MES (featured)
   ============================================================ */
.featured__grid{
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px;
  align-items: center;
}
.featured__photo{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-lg);
}
.featured__photo img{width:100%; height:100%; object-fit: cover; display: block}
.featured__ribbon{
  position: absolute; top: 24px; left: -8px;
  background: var(--c-green);
  color: var(--c-cream);
  padding: 8px 18px 8px 24px;
  font-family:'Fraunces', serif; font-weight: 700; font-size: .82rem;
  letter-spacing: .12em; text-transform: uppercase;
  box-shadow: var(--shadow-md);
  clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%);
}
.featured__copy h2{margin: 8px 0 16px}
.featured__facts{
  list-style: none; padding: 0; margin: 24px 0;
  display: grid; gap: 10px;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  padding: 20px 0;
}
.featured__facts li{
  display:flex; gap: 12px;
  font-size: .95rem; color: #4a4f45;
}
.featured__facts b{color: var(--c-green); font-weight: 700; min-width: 140px; font-family:'Fraunces', serif}

/* ============================================================
   FILTERS (chips)
   ============================================================ */
.filters{
  display: flex; gap: 10px; justify-content: center;
  flex-wrap: wrap; margin-bottom: 36px;
}
.chip{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px; border-radius: 999px;
  background: #fff; border: 1px solid var(--c-line);
  color: var(--c-ink); font-weight: 600; font-size: .9rem;
  cursor: pointer;
  transition: all .2s ease;
  font-family: 'Inter', sans-serif;
}
.chip:hover{border-color: var(--c-bronze); color: var(--c-bronze-deep)}
.chip--active{background: var(--c-green); border-color: var(--c-green); color: var(--c-cream)}
.chip__dot{
  width: 8px; height: 8px; border-radius: 50%;
  display: inline-block;
}

/* ============================================================
   PRODUCTS (catálogo con sello)
   ============================================================ */
.products{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.product{
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--c-line);
  transition: transform .25s ease, box-shadow .25s ease;
  display: flex; flex-direction: column;
}
.product:hover{transform: translateY(-4px); box-shadow: var(--shadow-md)}
.product__img{
  aspect-ratio: 4/3;
  background-size: cover; background-position: center;
  background-color: var(--c-cream);
  position: relative;
}
.product__img::after{
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(26,36,24,.35));
}
.product__cat{
  position: absolute; top: 14px; left: 14px;
  color: #fff; font-family:'Fraunces', serif; font-weight: 600;
  padding: 5px 12px; border-radius: 999px;
  font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
  z-index: 2;
}
.product__seal{
  position: absolute; top: 14px; right: 14px;
  background: var(--c-green);
  color: var(--c-bronze-light);
  font-family:'Fraunces', serif; font-weight: 700;
  padding: 6px 12px; border-radius: 999px;
  font-size: .72rem;
  border: 1px solid var(--c-bronze-light);
  z-index: 2;
  letter-spacing: .08em;
}
.product__body{padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column}
.product__body h3{margin: 0 0 6px; font-size: 1.2rem}
.product__maker{
  font-size: .86rem; color: #6a6f64; margin: 0 0 18px;
  font-family: 'Inter', sans-serif;
}
.product__maker em{color: var(--c-bronze-deep); font-style: normal; font-weight: 600}
.product__foot{
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--c-line);
}
.product__price{
  font-family:'Fraunces', serif; font-weight: 900; font-size: 1.4rem; color: var(--c-green);
}
.product__price span{font-family:'Inter', sans-serif; font-size: .78rem; font-weight: 500; color: #888; margin-left: 4px}
.product__link{
  font-family:'Inter', sans-serif; font-weight: 700; font-size: .88rem;
  color: var(--c-bronze-deep);
}
.product__link:hover{color: var(--c-green)}

/* ============================================================
   CERTIFICATION (oscura)
   ============================================================ */
.cert{
  display: grid; grid-template-columns: 1.1fr .9fr; gap: 60px; align-items: center;
}
.cert__list{
  padding-left: 0; list-style: none; counter-reset: n;
  margin: 24px 0 32px;
}
.cert__list li{
  counter-increment: n;
  padding: 14px 0 14px 56px;
  position: relative;
  border-bottom: 1px solid rgba(212,185,126,.15);
  font-size: 1rem; color: #D9DFD4;
}
.cert__list li:last-child{border-bottom: none}
.cert__list li::before{
  content: counter(n);
  position: absolute; left: 0; top: 12px;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--c-bronze-light);
  color: var(--c-green-deep);
  font-family:'Fraunces', serif; font-weight: 900;
  display: flex; align-items: center; justify-content: center;
}
.cert__list li b{color: var(--c-bronze-light); font-weight: 700}
.cert__actions{display: flex; gap: 12px; flex-wrap: wrap}
.cert__visual{display: flex; justify-content: center}
.cert__seal{
  max-width: 420px;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,.35));
  animation: float 6s ease-in-out infinite;
}
.cert__seal img{width: 100%; height: auto; display: block}

/* ============================================================
   MAKERS (productores)
   ============================================================ */
.makers{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.maker{
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--c-line);
  transition: transform .25s ease, box-shadow .25s ease;
}
.maker:hover{transform: translateY(-4px); box-shadow: var(--shadow-md)}
.maker__photo{
  aspect-ratio: 1/1;
  background-size: cover; background-position: center;
  background-color: var(--c-cream);
  position: relative;
}
.maker__photo::after{
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(26,36,24,.25));
}
.maker__body{padding: 20px 22px 22px}
.maker__body h3{margin: 0 0 4px; font-size: 1.15rem}
.maker__craft{
  font-size: .82rem; color: var(--c-bronze-deep); font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  margin: 0 0 10px;
}
.maker__craft em{color: var(--c-green); font-style: normal}
.maker__body p{font-size: .92rem; color: #5a5f54; margin: 0}

/* ============================================================
   FERIA
   ============================================================ */
.feria{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
}
.feria__card{
  background: #fff;
  border-radius: var(--radius);
  padding: 26px;
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-bronze);
  display: flex; gap: 22px; align-items: center;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.feria__card:hover{transform: translateY(-3px); box-shadow: var(--shadow-md)}
.feria__date{
  background: var(--c-green);
  color: var(--c-cream);
  padding: 14px 18px;
  border-radius: var(--radius-sm);
  text-align: center;
  min-width: 72px;
  font-family:'Fraunces', serif;
}
.feria__day{display:block; font-size: 2rem; font-weight: 900; line-height: 1}
.feria__month{display:block; font-size: .8rem; margin-top: 4px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-bronze-light)}
.feria__body h3{margin: 0 0 6px; font-size: 1.1rem}
.feria__body p{font-size: .88rem; color: #6a6f64; margin: 0 0 8px}
.feria__body a{font-weight: 700; font-size: .88rem; color: var(--c-bronze-deep)}
.feria__body a:hover{color: var(--c-green)}

/* ============================================================
   EXPORT (Ontario)
   ============================================================ */
.section--export{
  background: var(--c-green-deep);
  color: var(--c-cream);
  position: relative;
  overflow: hidden;
}
.section--export::before{
  content:''; position: absolute; inset: 0;
  background:
    radial-gradient(800px 400px at 90% 10%, rgba(212,185,126,.18), transparent 60%),
    radial-gradient(600px 300px at 10% 90%, rgba(212,39,62,.1), transparent 60%);
}
.section--export h2{color: var(--c-cream)}
.export{
  display: grid; grid-template-columns: 1.3fr .7fr; gap: 60px; align-items: center;
  position: relative;
}
.export__copy .lede{color: #C9D4C5}
.export__list{
  list-style: none; padding: 0; margin: 20px 0 28px;
  border-top: 1px solid rgba(212,185,126,.2);
}
.export__list li{
  padding: 12px 0; border-bottom: 1px solid rgba(212,185,126,.15);
  font-size: .95rem; color: #D9DFD4;
  position: relative; padding-left: 24px;
}
.export__list li::before{
  content:'✦'; position: absolute; left: 0; color: var(--c-bronze-light);
}
.export__flag{
  max-width: 260px; margin: 0 auto;
  filter: drop-shadow(0 12px 30px rgba(0,0,0,.4));
  border-radius: 8px; overflow: hidden;
}

/* ============================================================
   ECOSYSTEM
   ============================================================ */
.ecosystem{
  background: var(--c-ink-2);
  color: var(--c-cream);
  padding: 72px 28px;
  text-align: center;
  border-top: 3px solid var(--c-bronze);
  border-bottom: 3px solid var(--c-bronze);
}
.ecosystem__inner{max-width: 820px; margin: 0 auto}
.ecosystem h2{color: var(--c-cream); margin: 16px 0 12px}
.ecosystem h2 em{color: var(--c-bronze-light); font-style: italic}
.ecosystem a.accent-gold{color: var(--c-orange); text-decoration: underline; text-decoration-color: rgba(242,101,34,.5); text-underline-offset: 4px}
.ecosystem p{color: #bdc3b8; margin: 0 auto 24px; max-width: 600px}

/* ============================================================
   CTA
   ============================================================ */
.cta{
  padding: 100px 28px;
  background:
    radial-gradient(900px 400px at 85% 120%, rgba(212,185,126,.22), transparent 60%),
    linear-gradient(135deg, var(--c-green), var(--c-green-deep) 70%);
  color: var(--c-cream);
  text-align: center;
}
.cta__inner{max-width: 820px; margin: 0 auto}
.cta h2{color: var(--c-cream); margin: 0 auto 16px}
.cta p{max-width: 620px; margin: 0 auto 30px; font-size: 1.1rem; color: #D9DFD4}
.cta strong{color: var(--c-bronze-light)}
.cta__actions{display:flex; gap: 14px; justify-content: center; flex-wrap: wrap}

/* ============================================================
   FOOTER
   ============================================================ */
.foot{background: var(--c-ink-2); color: #8a9186; padding: 64px 0 24px}
.foot__inner{
  max-width: var(--maxw); margin: 0 auto; padding: 0 28px;
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 44px;
}
.foot__seal{margin-bottom: 12px}
.foot__brand p{color:#a5aba0; font-size: .9rem; max-width: 320px; line-height: 1.6}
.foot__domain{
  display: inline-block; margin-top: 12px;
  font-family:'Inter', monospace; font-weight: 800; font-size: 1rem;
  color: var(--c-bronze-light);
  padding: 8px 14px;
  background: rgba(212,185,126,.12);
  border: 1px solid rgba(212,185,126,.25);
  border-radius: 8px;
}
.foot__col h4{color: var(--c-cream); font-family:'Fraunces', serif; font-size: .95rem; margin-bottom: 14px}
.foot__col ul{list-style: none; padding: 0; margin: 0}
.foot__col li{margin: 8px 0}
.foot__col a{color: #a5aba0; font-size: .88rem}
.foot__col a:hover{color: var(--c-bronze-light)}
.foot__bottom{
  max-width: var(--maxw); margin: 40px auto 0; padding: 20px 28px 0;
  border-top: 1px solid rgba(212,185,126,.1);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
  font-size: .82rem; color: #6a6f64;
}

/* ============================================================
   TICKER (cintilla superior)
   ============================================================ */
.ticker{
  background: var(--c-green-deep);
  color: var(--c-cream);
  overflow: hidden;
  position: relative;
  border-bottom: 1px solid rgba(212,185,126,.2);
}
.ticker::before, .ticker::after{
  content:''; position: absolute; top: 0; bottom: 0; width: 60px;
  pointer-events: none; z-index: 2;
}
.ticker::before{left: 0; background: linear-gradient(90deg, var(--c-green-deep), transparent)}
.ticker::after{right: 0; background: linear-gradient(-90deg, var(--c-green-deep), transparent)}
.ticker__track{
  display: inline-flex; gap: 32px; align-items: center;
  white-space: nowrap;
  padding: 9px 24px;
  font-size: .82rem;
  letter-spacing: .02em;
  animation: ticker-scroll 38s linear infinite;
}
.ticker__item b{color: var(--c-bronze-light); font-weight: 700; margin-right: 6px}
.ticker__sep{color: var(--c-bronze); opacity: .6}
@keyframes ticker-scroll{
  0%{transform: translateX(0)}
  100%{transform: translateX(-50%)}
}
/* Duplicate content for seamless loop — done via JS-less trick: repeat span */
.ticker__track::after{
  content: "Drop del Instante: Miel de mezquite · solo 8 frascos   ✦   Próxima feria: sábado en Plaza de Guamúchil · 9–18h   ✦   Nuevo productor: Apiarios del Évora — Angostura   ✦   Calendario: abril es temporada de mango ataulfo   ✦   Exportación: primer envío confirmado a Toronto, Ontario   ✦   ";
  margin-left: 32px;
  color: rgba(244,238,221,.85);
}

/* ============================================================
   DROP (producto del instante)
   ============================================================ */
.drop{
  background: linear-gradient(135deg, #FBF7EC 0%, #F4EEDD 100%);
  border-top: 1px solid var(--c-line);
  border-bottom: 3px solid var(--c-bronze);
  padding: 22px 0;
  position: relative;
}
.drop__inner{
  max-width: var(--maxw); margin: 0 auto; padding: 0 28px;
  display: flex; gap: 28px; align-items: center; flex-wrap: wrap;
}
.drop__badge{
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--c-green-deep); color: var(--c-cream);
  padding: 8px 16px 8px 14px; border-radius: 999px;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700;
}
.drop__pulse{
  width: 9px; height: 9px; border-radius: 50%;
  background: #E74C3C;
  box-shadow: 0 0 0 0 rgba(231,76,60,.7);
  animation: pulse 1.6s infinite;
}
@keyframes pulse{
  0%{box-shadow: 0 0 0 0 rgba(231,76,60,.55)}
  70%{box-shadow: 0 0 0 10px rgba(231,76,60,0)}
  100%{box-shadow: 0 0 0 0 rgba(231,76,60,0)}
}
.drop__body{flex: 1; min-width: 260px}
.drop__title{font-family:'Fraunces', serif; font-size: 1.25rem; font-weight: 700; margin: 0 0 2px; color: var(--c-ink-2)}
.drop__title em{color: var(--c-bronze-deep); font-style: italic; font-weight: 500}
.drop__sub{font-size: .88rem; color: #6a6f64; margin: 0}
.drop__count{
  display: inline-flex; gap: 6px;
  background: var(--c-green-deep); color: var(--c-cream);
  padding: 8px 12px; border-radius: 10px;
  font-family:'Fraunces', serif;
}
.drop__count span{
  display: inline-flex; align-items: baseline;
  background: rgba(255,255,255,.06);
  padding: 6px 10px; border-radius: 6px;
  min-width: 52px; justify-content: center;
}
.drop__count b{font-weight: 900; font-size: 1.15rem; font-variant-numeric: tabular-nums}
.drop__count i{font-style: normal; font-size: .65rem; letter-spacing: .12em; color: var(--c-bronze-light); margin-left: 3px; text-transform: uppercase}
.drop__cta{white-space: nowrap}

/* ============================================================
   WEEKLY (producto de la semana)
   ============================================================ */
.weekly{
  background: var(--c-ivory);
  padding: 72px 0;
  border-bottom: 1px solid var(--c-line);
}
.weekly__inner{
  max-width: var(--maxw); margin: 0 auto; padding: 0 28px;
  display: grid; grid-template-columns: .9fr 1.6fr; gap: 44px; align-items: center;
}
.weekly__left h3{
  font-family:'Inter', sans-serif; text-transform: uppercase; letter-spacing: .18em;
  font-size: .78rem; font-weight: 700; color: var(--c-bronze-deep); margin: 14px 0 8px;
}
.weekly__left h2{font-size: clamp(1.6rem, 2.6vw, 2.3rem); margin-bottom: 14px}
.weekly__tag{
  display:inline-block; background: var(--c-cream); color: var(--c-green);
  padding: 6px 14px; border-radius: 999px;
  font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  border: 1px solid rgba(31,81,50,.15);
}
.weekly__right{display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px}
.weekly__card{
  background: #fff; border-radius: var(--radius);
  border: 1px solid var(--c-line);
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease;
  color: inherit;
}
.weekly__card:hover{transform: translateY(-3px); box-shadow: var(--shadow-md)}
.weekly__img{
  aspect-ratio: 4/3;
  background-size: cover; background-position: center;
  background-color: var(--c-cream);
}
.weekly__meta{padding: 14px 16px}
.weekly__cat{
  font-size: .68rem; color: var(--c-bronze-deep); font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
}
.weekly__meta h4{margin: 4px 0 3px; font-size: 1rem}
.weekly__meta p{margin: 0; font-size: .82rem; color: #6a6f64}

/* ============================================================
   BOXES (cajas curadas)
   ============================================================ */
.boxes__grid{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}
.box{
  background: #fff; border-radius: var(--radius);
  border: 1px solid var(--c-line);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease;
}
.box:hover{transform: translateY(-4px); box-shadow: var(--shadow-md)}
.box--featured{
  border-color: var(--c-bronze);
  box-shadow: 0 6px 0 -2px var(--c-bronze-light), var(--shadow-sm);
}
.box__head{
  padding: 20px 22px 16px;
  color: var(--c-cream);
  position: relative;
  min-height: 110px;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.box--mar{background: linear-gradient(135deg, #1F6F8B, #144A5E)}
.box--campo{background: linear-gradient(135deg, #5A8F29, #3D6619)}
.box--embajador{background: linear-gradient(135deg, var(--c-green), var(--c-green-deep)); border-bottom: 2px solid var(--c-bronze-light)}
.box--temporada{background: linear-gradient(135deg, var(--c-bronze), var(--c-wood-deep))}
.box__kind{
  font-family:'Fraunces', serif; font-weight: 900; font-size: 1.15rem;
  color: var(--c-cream);
}
.box__seal{
  position: absolute; top: 16px; right: 16px;
  background: rgba(0,0,0,.25); color: var(--c-bronze-light);
  padding: 4px 10px; border-radius: 999px;
  font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  border: 1px solid rgba(212,185,126,.4);
}
.box__ribbon{
  position: absolute; top: 16px; left: -6px;
  background: var(--c-bronze-light); color: var(--c-green-deep);
  padding: 4px 12px; font-size: .68rem; font-weight: 800;
  letter-spacing: .12em; text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%);
}
.box__contents{padding: 20px 22px; flex: 1}
.box__contents ul{
  list-style: none; padding: 0; margin: 0;
  font-size: .88rem; color: #5a5f54;
}
.box__contents li{
  padding: 8px 0 8px 20px;
  position: relative;
  border-bottom: 1px dashed var(--c-line);
}
.box__contents li:last-child{border-bottom: none}
.box__contents li::before{
  content:'✦'; position: absolute; left: 0; color: var(--c-bronze);
  font-size: .7rem; top: 10px;
}
.box__foot{
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 22px; border-top: 1px solid var(--c-line);
  background: var(--c-cream);
}
.box__price{
  font-family:'Fraunces', serif; font-weight: 900; font-size: 1.4rem; color: var(--c-green);
  font-variant-numeric: tabular-nums;
}
.box__price span{font-family:'Inter', sans-serif; font-size: .7rem; font-weight: 500; color: #888; margin-left: 4px}
.box__link{font-weight: 700; font-size: .85rem; color: var(--c-bronze-deep)}
.box__link:hover{color: var(--c-green)}

/* ============================================================
   VOICES (testimonios con cifra)
   ============================================================ */
.voices__grid{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.voice{
  margin: 0;
  background: rgba(251,247,236,.04);
  border: 1px solid rgba(212,185,126,.18);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex; flex-direction: column;
}
.voice__photo{
  aspect-ratio: 16/10;
  background-size: cover; background-position: center;
  position: relative;
}
.voice__photo::after{
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(14,21,16,.9));
}
.voice__figure{
  position: relative; margin-top: -80px; padding: 16px 24px 0;
  z-index: 2; color: var(--c-bronze-light);
}
.voice__num{
  display: block;
  font-family:'Fraunces', serif; font-weight: 900;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  line-height: 1;
  background: linear-gradient(135deg, var(--c-bronze-light), #F4E2B8);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
}
.voice__caption{
  display: block; font-size: .82rem; color: #C9D4C5;
  letter-spacing: .06em; margin-top: 4px;
}
.voice blockquote{
  margin: 0; padding: 18px 24px 24px;
  flex: 1; display: flex; flex-direction: column;
  justify-content: space-between;
}
.voice blockquote p{
  font-family:'Fraunces', serif; font-style: italic;
  font-size: 1.02rem; line-height: 1.5;
  color: var(--c-cream); margin: 0 0 14px;
}
.voice blockquote p b{color: var(--c-bronze-light); font-style: normal; font-weight: 700}
.voice blockquote p em{color: #C9D4C5; font-weight: 500}
.voice blockquote footer{
  font-size: .82rem; color: #C9D4C5;
  border-top: 1px solid rgba(212,185,126,.15);
  padding-top: 12px;
}
.voice blockquote footer strong{color: var(--c-bronze-light); font-weight: 700}
.voice blockquote footer em{color: #A5AB9E; font-style: normal}

/* ============================================================
   IMPACT (contador de impacto)
   ============================================================ */
.impact{
  background:
    radial-gradient(800px 400px at 90% 0%, rgba(212,185,126,.18), transparent 60%),
    linear-gradient(135deg, var(--c-green-deep), var(--c-green));
  color: var(--c-cream);
  padding: 72px 0;
  position: relative;
  border-top: 1px solid rgba(212,185,126,.18);
  border-bottom: 3px solid var(--c-bronze);
}
.impact__inner{max-width: var(--maxw); margin: 0 auto; padding: 0 28px}
.impact__head{text-align: center; max-width: 780px; margin: 0 auto 40px}
.impact__head h2{color: var(--c-cream); margin: 8px 0 0}
.impact__grid{
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.stat{
  background: rgba(251,247,236,.05);
  border: 1px solid rgba(212,185,126,.2);
  border-radius: var(--radius);
  padding: 28px 26px;
  text-align: center;
  backdrop-filter: blur(4px);
  transition: transform .25s ease;
}
.stat:hover{transform: translateY(-3px)}
.stat__num{
  display: block;
  font-family:'Fraunces', serif; font-weight: 900;
  font-size: clamp(2.2rem, 3.8vw, 3rem);
  line-height: 1;
  background: linear-gradient(135deg, var(--c-bronze-light), #F4E2B8);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
  margin-bottom: 10px;
}
.stat__k{
  display: block;
  font-family:'Fraunces', serif; font-weight: 600; font-size: 1.02rem;
  color: var(--c-cream);
  margin-bottom: 6px;
}
.stat__sub{
  display: block;
  font-size: .78rem; color: #C9D4C5;
  letter-spacing: .02em;
}

/* ============================================================
   COMITÉ (detrás del sello)
   ============================================================ */
.comite{background: var(--c-ivory)}
.comite__grid{
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 18px;
  margin-bottom: 44px;
}
.member{
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--c-line);
  transition: transform .22s ease, box-shadow .22s ease;
}
.member:hover{transform: translateY(-3px); box-shadow: var(--shadow-md)}
.member__photo{
  aspect-ratio: 1/1;
  background-size: cover; background-position: center top;
  background-color: var(--c-cream);
  position: relative;
}
.member__photo::after{
  content:''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(26,36,24,.3));
}
.member__body{padding: 18px 20px 22px}
.member__role{
  display: inline-block;
  font-family: 'Inter', sans-serif;
  font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  color: var(--c-bronze-deep);
  background: var(--c-cream);
  padding: 4px 10px; border-radius: 999px;
  border: 1px solid rgba(184,160,85,.3);
  margin-bottom: 10px;
}
.member__body h4{margin: 0 0 4px; font-size: 1rem}
.member__city{
  font-size: .78rem; color: var(--c-green);
  font-weight: 600; font-family: 'Fraunces', serif;
  margin: 0 0 10px;
}
.member__body p:last-child{font-size: .85rem; color: #5a5f54; margin: 0}

.reject{
  background: #fff;
  border-radius: var(--radius-lg);
  border: 1px solid var(--c-line);
  border-left: 6px solid #C14A27;
  padding: 36px 44px;
  box-shadow: var(--shadow-sm);
  position: relative;
}
.reject__tag{
  display: inline-block;
  background: rgba(193,74,39,.1);
  color: #A03A1C;
  padding: 5px 14px; border-radius: 999px;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 14px;
  border: 1px solid rgba(193,74,39,.25);
}
.reject__body h3{font-size: clamp(1.3rem, 2vw, 1.7rem); margin: 0 0 14px}
.reject__body h3 em{color: #C14A27; font-style: italic}
.reject__body p{color: #4a4f45; margin: 0 0 12px}
.reject__quote{
  font-family: 'Fraunces', serif; font-style: italic;
  font-size: 1.1rem; color: var(--c-ink-2);
  border-left: 3px solid var(--c-bronze);
  padding-left: 18px;
  margin: 20px 0 6px !important;
}
.reject__author{
  font-size: .85rem; color: var(--c-bronze-deep); font-weight: 600;
  margin-bottom: 0 !important;
}

/* ============================================================
   APADRINA (planes)
   ============================================================ */
.apadrina{
  background:
    radial-gradient(700px 340px at 90% 100%, rgba(184,160,85,.1), transparent 60%),
    var(--c-cream);
}
.plans{
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 36px;
  align-items: stretch;
}
.plan{
  background: #fff;
  border-radius: var(--radius-lg);
  border: 1px solid var(--c-line);
  padding: 34px 32px 32px;
  display: flex; flex-direction: column;
  transition: transform .25s ease, box-shadow .25s ease;
  position: relative;
}
.plan:hover{transform: translateY(-4px); box-shadow: var(--shadow-md)}
.plan--featured{
  border: 2px solid var(--c-bronze);
  box-shadow: 0 20px 40px rgba(184,160,85,.18);
  background: linear-gradient(180deg, #fff, #FDF9EC);
}
.plan__ribbon{
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(135deg, var(--c-bronze-light), var(--c-bronze-deep));
  color: var(--c-green-deep);
  padding: 6px 18px; border-radius: 999px;
  font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 800;
  box-shadow: var(--shadow-sm);
}
.plan__head{
  padding-bottom: 20px;
  border-bottom: 1px solid var(--c-line);
  margin-bottom: 20px;
}
.plan__label{
  display: inline-block;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  color: var(--c-bronze-deep);
  margin-bottom: 6px;
  font-family: 'Inter', sans-serif;
}
.plan__head h3{font-size: 1.4rem; margin: 0 0 12px}
.plan__price{display: flex; align-items: baseline; gap: 6px}
.plan__amount{
  font-family:'Fraunces', serif; font-weight: 900;
  font-size: 2.6rem; color: var(--c-green);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.plan__period{font-size: .9rem; color: #6a6f64; font-weight: 500}
.plan__list{
  list-style: none; padding: 0; margin: 0 0 24px;
  flex: 1;
}
.plan__list li{
  padding: 10px 0 10px 26px;
  font-size: .92rem; color: #3a3f38;
  border-bottom: 1px dashed var(--c-line);
  position: relative;
}
.plan__list li:last-child{border-bottom: none}
.plan__list li::before{
  content:'✓';
  position: absolute; left: 0; top: 10px;
  color: var(--c-green);
  font-weight: 900;
  font-family: 'Fraunces', serif;
}
.plan .btn{justify-content: center; width: 100%}
.apadrina__note{
  background: #fff;
  border-radius: var(--radius);
  padding: 20px 28px;
  border: 1px solid var(--c-line);
  text-align: center;
  font-size: .92rem;
  color: #4a4f45;
}
.apadrina__note b{color: var(--c-green); font-family: 'Fraunces', serif; font-weight: 700}

/* ============================================================
   WHATSAPP FLOTANTE
   ============================================================ */
.wa{
  position: fixed;
  right: 22px; bottom: 22px;
  background: #25D366;
  color: #fff;
  width: 58px; height: 58px;
  border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: flex-start;
  text-decoration: none;
  box-shadow: 0 14px 30px rgba(37,211,102,.45), 0 4px 10px rgba(0,0,0,.15);
  z-index: 100;
  overflow: hidden;
  transition: width .35s cubic-bezier(.2,.8,.2,1), box-shadow .2s ease;
  padding-left: 15px;
}
.wa::before{
  content:''; position: absolute; inset: 0;
  border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(37,211,102,.6);
  animation: wa-pulse 2.2s infinite;
}
@keyframes wa-pulse{
  0%{box-shadow: 0 0 0 0 rgba(37,211,102,.6)}
  70%{box-shadow: 0 0 0 16px rgba(37,211,102,0)}
  100%{box-shadow: 0 0 0 0 rgba(37,211,102,0)}
}
.wa:hover{width: 232px; box-shadow: 0 18px 34px rgba(37,211,102,.55), 0 6px 14px rgba(0,0,0,.2)}
.wa svg{flex-shrink: 0; position: relative; z-index: 1}
.wa__label{
  margin-left: 10px; white-space: nowrap;
  font-weight: 700; font-size: .88rem;
  opacity: 0; transition: opacity .2s ease .15s;
  position: relative; z-index: 1;
}
.wa:hover .wa__label{opacity: 1}

/* ============================================================
   SCROLL-SPY (nav activo)
   ============================================================ */
.nav__menu a.is-active{color: var(--c-green)}
.nav__menu a.is-active::after{
  content:''; position: absolute; left: 0; right: 0; bottom: -6px;
  height: 2px; background: var(--c-bronze);
}

/* ============================================================
   CALENDARIO AGRÍCOLA
   ============================================================ */
.calendar{
  background:
    radial-gradient(700px 340px at 10% 0%, rgba(184,160,85,.08), transparent 60%),
    linear-gradient(180deg, var(--c-cream), var(--c-ivory));
  padding: 86px 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.calendar__inner{max-width: var(--maxw); margin: 0 auto; padding: 0 28px}
.calendar__head{text-align: center; max-width: 780px; margin: 0 auto 32px}
.calendar__strip{
  display: grid; grid-template-columns: repeat(12, 1fr);
  gap: 8px;
  background: #fff;
  padding: 10px;
  border-radius: var(--radius);
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-sm);
  margin-bottom: 28px;
  overflow-x: auto;
}
.cal{
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  padding: 12px 8px;
  cursor: pointer;
  text-align: center;
  font-family: 'Inter', sans-serif;
  transition: all .18s ease;
  display: flex; flex-direction: column; gap: 4px;
  min-width: 72px;
}
.cal:hover{background: var(--c-cream); border-color: var(--c-line)}
.cal__m{
  font-family:'Fraunces', serif; font-weight: 800; font-size: 1rem;
  color: var(--c-ink); letter-spacing: .02em;
}
.cal__k{
  font-size: .68rem; color: #6a6f64;
  letter-spacing: .02em;
  line-height: 1.2;
}
.cal--active{
  background: var(--c-green); border-color: var(--c-green-deep);
  box-shadow: 0 6px 16px rgba(31,81,50,.28);
}
.cal--active .cal__m{color: var(--c-cream)}
.cal--active .cal__k{color: var(--c-bronze-light)}

.calendar__detail{
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 36px 44px;
  border: 1px solid var(--c-line);
  border-left: 6px solid var(--c-bronze);
  box-shadow: var(--shadow-sm);
}
.calendar__badge{
  display: inline-block;
  background: var(--c-green); color: var(--c-cream);
  padding: 6px 14px; border-radius: 999px;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 12px;
}
.calendar__detail h3{
  font-size: clamp(1.4rem, 2.2vw, 1.9rem);
  margin: 0 0 10px;
}
.calendar__detail h3 em{color: var(--c-green); font-style: italic; font-weight: 500}
.calendar__detail p{color: #4a4f45; margin: 0 0 20px; font-size: 1rem}
.calendar__products{display: flex; gap: 10px; flex-wrap: wrap}
.calendar__pill{
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff;
  border: 1px solid var(--c-line);
  border-left: 4px solid var(--c-green);
  border-radius: 8px;
  padding: 8px 14px;
  font-size: .85rem; color: #3a3f38;
}
.calendar__pill b{
  font-family:'Fraunces', serif; font-weight: 700;
  font-size: .7rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--c-bronze-deep);
  margin-right: 4px;
}

/* ============================================================
   MAPA (productores)
   ============================================================ */
.mapblock{background: var(--c-cream)}
.mapblock__filters{
  display: flex; gap: 10px; justify-content: center;
  flex-wrap: wrap; margin-bottom: 28px; align-items: center;
}
.mapchip{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: 999px;
  background: #fff; border: 1px solid var(--c-line);
  color: var(--c-ink); font-weight: 600; font-size: .86rem;
  cursor: pointer; font-family: 'Inter', sans-serif;
  transition: all .18s ease;
}
.mapchip span{width: 10px; height: 10px; border-radius: 50%; display: inline-block}
.mapchip:hover{border-color: var(--c-bronze); color: var(--c-bronze-deep)}
.mapchip--active{background: var(--c-green); border-color: var(--c-green); color: var(--c-cream)}
.mapchip--toggle.mapchip--on{background: var(--c-bronze-light); border-color: var(--c-bronze-deep); color: var(--c-green-deep)}
.mapblock__div{width: 1px; height: 22px; background: var(--c-line)}

.mapblock__wrap{
  display: grid; grid-template-columns: 1fr 300px;
  gap: 20px;
  background: #fff;
  padding: 16px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-md);
}
.mapblock__canvas{
  width: 100%;
  height: 520px;
  border-radius: var(--radius);
  overflow: hidden;
  background: #E4DCC5;
}
.mapblock__canvas .leaflet-control-attribution{background: rgba(255,255,255,.85); font-size: .65rem}
.mapblock__legend{
  background: var(--c-cream);
  border-radius: var(--radius);
  padding: 22px 24px;
  border: 1px solid var(--c-line);
}
.mapblock__legend h4{
  font-family:'Fraunces', serif; font-size: 1.02rem;
  margin: 0 0 12px; color: var(--c-green);
}
.mapblock__legend ul{list-style: none; padding: 0; margin: 0 0 14px; font-size: .88rem; color: #3a3f38}
.mapblock__legend li{padding: 6px 0; border-bottom: 1px dashed var(--c-line)}
.mapblock__legend li:last-child{border-bottom: none}
.mapblock__legend b{color: var(--c-green); font-weight: 700; font-family: 'Fraunces', serif}
.mapblock__note{font-size: .78rem; color: #7a7f74; margin: 0; font-style: italic}

/* Custom Leaflet pin */
.puro-pin{position: relative; display: block}
.puro-pin__inner{
  position: absolute; top: 8px; left: 8px;
  width: 12px; height: 12px; border-radius: 50%;
  box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(0,0,0,.35);
  z-index: 2;
}
.puro-pin__ring{
  position: absolute; top: 2px; left: 2px;
  width: 24px; height: 24px; border-radius: 50%;
  border: 2px solid rgba(184,160,85,.6);
  animation: pin-pulse 2.4s ease-out infinite;
  z-index: 1;
}
@keyframes pin-pulse{
  0%{transform: scale(.6); opacity: .9}
  100%{transform: scale(1.6); opacity: 0}
}

/* Popup styles */
.leaflet-popup-content-wrapper{border-radius: 12px; padding: 0; overflow: hidden; box-shadow: var(--shadow-md)}
.leaflet-popup-content{margin: 0; font-family: 'Inter', sans-serif}
.puro-pop{padding: 16px 18px; min-width: 220px}
.puro-pop__cat{
  display: inline-block; color: #fff; font-family:'Fraunces', serif; font-weight: 600;
  padding: 3px 10px; border-radius: 999px; font-size: .68rem;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px;
}
.puro-pop h4{margin: 0 0 2px; font-size: 1rem; font-family: 'Fraunces', serif; color: var(--c-ink-2)}
.puro-pop__maker{margin: 0 0 6px; font-size: .8rem; color: #6a6f64}
.puro-pop__maker em{color: var(--c-bronze-deep); font-style: normal; font-weight: 600}
.puro-pop__desc{margin: 0 0 10px; font-size: .85rem; color: #3a3f38}
.puro-pop__tags{display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px}
.puro-pop__tag{
  font-size: .7rem; padding: 3px 8px; border-radius: 6px;
  background: var(--c-cream); color: var(--c-green); font-weight: 600;
  border: 1px solid var(--c-line);
}
.puro-pop__tag--open{background: rgba(90,143,41,.15); color: #3F6619; border-color: rgba(90,143,41,.4)}
.puro-pop__tag--closed{background: rgba(138,117,54,.12); color: #7a6520; border-color: rgba(138,117,54,.3)}
.puro-pop__link{font-weight: 700; font-size: .8rem; color: var(--c-green)}

/* ============================================================
   BITÁCORA
   ============================================================ */
.bitacora{background: var(--c-ivory)}
.bita-feature{
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0;
  background: #fff;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--c-line);
  box-shadow: var(--shadow-md);
  margin-bottom: 32px;
}
.bita-feature__photo{
  aspect-ratio: 5/4;
  background-size: cover; background-position: center;
  background-color: var(--c-cream);
  min-height: 360px;
}
.bita-feature__body{padding: 40px 44px; display: flex; flex-direction: column; justify-content: center}
.bita-feature__body h3{font-size: clamp(1.4rem, 2.2vw, 1.9rem); margin: 12px 0 14px; line-height: 1.2}
.bita-feature__body p{color: #4a4f45; font-size: 1rem; margin: 0 0 18px}

.bita__grid{
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-bottom: 28px;
}
.bita{
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--c-line);
  transition: transform .22s ease, box-shadow .22s ease;
  display: flex; flex-direction: column;
  cursor: pointer;
}
.bita:hover{transform: translateY(-3px); box-shadow: var(--shadow-md)}
.bita__photo{
  aspect-ratio: 4/3;
  background-size: cover; background-position: center;
  background-color: var(--c-cream);
}
.bita__body{padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column}
.bita__body h4{font-size: 1.02rem; margin: 10px 0 8px; line-height: 1.3}
.bita__body p{font-size: .88rem; color: #5a5f54; margin: 0 0 14px; flex: 1}
.bita__tag{
  display: inline-block;
  font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700;
  padding: 4px 10px; border-radius: 999px;
  background: var(--c-cream); color: var(--c-green);
  border: 1px solid rgba(31,81,50,.18);
  align-self: flex-start;
  font-family: 'Inter', sans-serif;
}
.bita__tag--cronica{color: var(--c-bronze-deep); border-color: rgba(184,160,85,.4); background: rgba(212,185,126,.12)}
.bita__tag--receta{color: #C14A27; border-color: rgba(242,101,34,.35); background: rgba(242,101,34,.1)}
.bita__tag--historia{color: #1F6F8B; border-color: rgba(31,111,139,.3); background: rgba(31,111,139,.08)}
.bita__meta{
  font-size: .78rem; color: #8a8f84;
  font-family: 'Inter', sans-serif;
}
.bita__meta b{color: var(--c-green); font-weight: 700}
.bita-feature__body .bita__meta{margin: 0 0 20px; display: flex; gap: 8px; flex-wrap: wrap}
.bita__cta{text-align: center; margin-top: 20px}

/* ============================================================
   REVEAL (scroll animation)
   ============================================================ */
.reveal{
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}
.reveal.is-revealed{opacity: 1; transform: none}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px){
  .nav__menu a:not(.btn){display: none}
  .products, .makers, .boxes__grid{grid-template-columns: repeat(2, 1fr)}
  .voices__grid{grid-template-columns: 1fr}
  .weekly__inner{grid-template-columns: 1fr; gap: 28px}
  .bita__grid{grid-template-columns: repeat(2, 1fr)}
  .mapblock__wrap{grid-template-columns: 1fr}
  .mapblock__canvas{height: 440px}
  .bita-feature{grid-template-columns: 1fr}
  .bita-feature__photo{min-height: 280px}
  .impact__grid{grid-template-columns: repeat(2, 1fr)}
  .comite__grid{grid-template-columns: repeat(3, 1fr)}
  .plans{grid-template-columns: 1fr}
  .plan--featured{order: -1}
}
@media (max-width: 960px){
  .hero__inner, .featured__grid, .cert, .export{grid-template-columns: 1fr; gap: 40px}
  .hero__visual{order: -1}
  .medal__img{max-width: 320px}
  .cert__seal{max-width: 320px}
  .makers, .feria{grid-template-columns: 1fr 1fr}
  .foot__inner{grid-template-columns: 1fr 1fr}
  .section{padding: 72px 0}
  .drop__inner{gap: 16px}
  .drop__body{min-width: 100%}
  .weekly__right{grid-template-columns: repeat(3, 1fr)}
  .calendar__strip{grid-template-columns: repeat(6, minmax(80px, 1fr))}
  .calendar__detail{padding: 28px 24px}
}
@media (max-width: 640px){
  .impact__grid, .comite__grid{grid-template-columns: 1fr}
  .products, .makers, .feria, .foot__inner, .boxes__grid, .weekly__right, .bita__grid{grid-template-columns: 1fr}
  .reject{padding: 24px 22px}
  .wa{right: 14px; bottom: 14px}
  .wa:hover{width: 58px}
  .wa__label{display: none}
  .hero{padding: 52px 0 100px}
  .hero__copy{padding: 28px 24px}
  .section{padding: 56px 0}
  .section__head{margin-bottom: 36px}
  .ticker__track{padding: 9px 16px; font-size: .76rem}
  .voice__figure{margin-top: -60px}
  .calendar__strip{grid-auto-flow: column; grid-template-columns: unset; grid-auto-columns: 90px; overflow-x: auto}
  .mapblock__canvas{height: 360px}
  .bita-feature__body{padding: 28px 24px}
}
