/* =========================================================
   CAUQUE — Navy + Amarillo (brand) + aqua marina (mood)
   ========================================================= */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  min-height:100vh;
  max-width:100vw;
  overflow-x:hidden;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg,video{display:block;max-width:100%;height:auto}
button,input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}

/* ---------- Tokens ---------- */
:root{
  /* Brand colors (de Linkedin) */
  --navy:#1a2c54;
  --navy-dark:#0f1d3a;
  --navy-light:#2d4477;
  --yellow:#d4c14a;
  --yellow-soft:#e6d570;
  --yellow-dark:#a89826;

  /* Supporting — aqua marina (los productos son de algas) */
  --teal:#1f8b82;
  --teal-light:#4cc1b8;
  --aqua:#5fd1c5;

  /* Neutrals */
  --bg:#ffffff;
  --bg-cream:#f5fbfa;
  --bg-soft:#eaf3f1;
  --text:#162a28;
  --text-soft:#566866;
  --border:#dde7e4;
  --rule:1px solid var(--border);

  --serif:"Lora",ui-serif,Georgia,serif;
  --sans:"Manrope",ui-sans-serif,system-ui,sans-serif;

  --maxw:1240px;
  --gutter:clamp(1rem,4vw,2rem);
}

/* ---------- Base ---------- */
body{
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
  font-weight:400;
}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.15;color:var(--navy);letter-spacing:-.01em}
h1{font-size:clamp(1.9rem,5.5vw,3.6rem);font-weight:600}
h2{font-size:clamp(1.5rem,3.5vw,2.5rem)}
h3{font-size:clamp(1.2rem,2.5vw,1.55rem)}
h4{font-size:1.1rem;font-weight:600}
p{max-width:65ch}
.lead{font-size:clamp(1rem,2.5vw,1.2rem);line-height:1.55;color:var(--text-soft);max-width:55ch}

/* ---------- Container ---------- */
.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.section{padding-block:clamp(2.5rem,6vw,5.5rem)}
.section--tight{padding-block:clamp(2rem,4vw,3.5rem)}

/* Backgrounds */
.bg-white{background:var(--bg)}
.bg-cream{background:var(--bg-cream)}
.bg-soft{background:var(--bg-soft)}
.bg-teal{background:var(--teal);color:#fff;position:relative;overflow:hidden}
.bg-teal h2,.bg-teal h3,.bg-teal h4{color:#fff}
.bg-navy{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.bg-navy h2,.bg-navy h3,.bg-navy h4{color:#fff}
.bg-navy-dark{background:var(--navy-dark);color:#fff}
.bg-navy-dark h2,.bg-navy-dark h3,.bg-navy-dark h4{color:#fff}

/* Bg-teal animated gradient */
.bg-teal::before{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 70% 30%,rgba(95,209,197,.4) 0%,transparent 60%),
             radial-gradient(ellipse 70% 50% at 20% 80%,rgba(14,94,88,.35) 0%,transparent 60%);
  animation:aquaShift 16s ease-in-out infinite alternate;
  z-index:0;
  pointer-events:none;
}
.bg-teal > *{position:relative;z-index:1}
@keyframes aquaShift{
  0%{transform:translate(0,0) scale(1)}
  100%{transform:translate(-30px,20px) scale(1.1)}
}

/* ---------- Nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:var(--rule);
}
.nav__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding-block:.75rem;gap:1rem;
}
.nav__logo{display:flex;align-items:center;gap:.5rem;flex-shrink:0}

/* Brand logo: navy box with yellow lowercase serif */
.logo-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--navy);
  color:var(--yellow);
  font-family:var(--serif);
  font-weight:500;
  font-size:clamp(.95rem,2.2vw,1.1rem);
  padding:.55rem .85rem;
  border-radius:3px;
  letter-spacing:.005em;
  line-height:1;
}

.nav__menu{
  display:flex;gap:clamp(1.1rem,2vw,1.85rem);
  font-size:.94rem;font-weight:500;align-items:center;
}
.nav__menu a{
  position:relative;
  padding-block:.5rem;
  color:var(--text);
  transition:color .2s;
}
.nav__menu a:hover{color:var(--navy)}
.nav__menu a[aria-current="page"]{color:var(--navy);font-weight:600}
.nav__menu a[aria-current="page"]::after{
  content:"";position:absolute;
  left:0;right:0;bottom:-1px;height:2px;
  background:var(--yellow);
}
.nav__cta{
  font-size:.94rem;font-weight:600;
  padding:.55rem 1.1rem;
  background:var(--navy);color:#fff !important;
  border-radius:6px;
  transition:background .2s,color .2s;
}
.nav__cta:hover{background:var(--navy-light);color:#fff !important}
.nav__toggle{
  display:none;
  background:none;border:0;
  width:44px;height:44px;
  align-items:center;justify-content:center;
  cursor:pointer;
  position:relative;
}
.nav__toggle span{
  display:block;width:22px;height:2px;background:var(--text);
  position:relative;
  transition:transform .3s,background .2s;
}
.nav__toggle span::before,.nav__toggle span::after{
  content:"";position:absolute;left:0;width:22px;height:2px;background:var(--text);
  transition:transform .3s,top .3s;
}
.nav__toggle span::before{top:-7px}
.nav__toggle span::after{top:7px}

@media (max-width:880px){
  .nav__menu{
    position:fixed;
    top:0;left:0;right:0;
    /* Use viewport-based height because .nav's backdrop-filter makes it
       the containing block for fixed children — bottom:0 alone would
       only stretch to .nav's height, not the viewport */
    height:100vh;
    height:100dvh;
    background:var(--bg);
    backdrop-filter:blur(24px) saturate(180%);
    -webkit-backdrop-filter:blur(24px) saturate(180%);
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding:5rem var(--gutter) 2rem;
    gap:1.25rem;
    font-size:1.3rem;
    z-index:60;
    visibility:hidden;
    opacity:0;
    pointer-events:none;
    transform:translateY(-12px);
    transition:opacity .3s ease,transform .3s ease,visibility 0s .3s;
  }
  .nav__menu.is-open{
    visibility:visible;
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
    transition:opacity .3s ease,transform .3s ease,visibility 0s 0s;
  }
  /* Lift the whole nav above any sibling stacking contexts (hero, sections)
     when the menu is open. Without this, the .nav's own stacking context
     (z-index:50 + backdrop-filter) traps the menu so siblings show through. */
  .nav.is-open{z-index:1000}
  .nav__toggle{display:flex;z-index:70}
  .nav__cta{order:99;font-size:1rem}
  .nav.is-open .nav__toggle span{background:transparent}
  .nav.is-open .nav__toggle span::before{transform:rotate(45deg);top:0}
  .nav.is-open .nav__toggle span::after{transform:rotate(-45deg);top:0}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:min(480px,68vh);
  display:flex;align-items:center;
  background-color:var(--navy-dark);
  overflow:hidden;
}
.hero__slides{
  position:absolute;inset:0;
  z-index:0;
  pointer-events:none;
}
.hero__slide{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  background-color:var(--teal-light);
  opacity:0;
  animation:heroFade 40s infinite;
  will-change:opacity,transform;
}
.hero__slide:nth-child(1){animation-delay:0s}
.hero__slide:nth-child(2){animation-delay:8s}
.hero__slide:nth-child(3){animation-delay:16s}
.hero__slide:nth-child(4){animation-delay:24s}
.hero__slide:nth-child(5){animation-delay:32s}
@keyframes heroFade{
  0%{opacity:0;transform:scale(1)}
  2.5%{opacity:1}
  17.5%{opacity:1;transform:scale(1.08)}
  20%{opacity:0;transform:scale(1.08)}
  100%{opacity:0;transform:scale(1)}
}
.hero::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(15,29,58,.82) 0%,rgba(15,29,58,.4) 60%,rgba(15,29,58,.6) 100%);
  z-index:1;
  pointer-events:none;
}
.hero__content{
  position:relative;z-index:2;
  color:#fff;
  padding-block:clamp(2rem,5vw,3.5rem);
  max-width:680px;
  width:100%;
}
.hero__eyebrow{
  display:inline-block;
  font-size:clamp(.75rem,1.6vw,.85rem);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--navy-dark);
  background:var(--yellow);
  padding:.4rem .85rem;
  border-radius:3px;
  margin-bottom:1rem;
}
.hero h1{
  color:#fff;
  font-size:clamp(1.8rem,5.5vw,3.2rem);
  line-height:1.08;
  margin-bottom:1rem;
  font-weight:500;
  letter-spacing:-.01em;
}
.hero__lead{
  font-size:clamp(.98rem,2.2vw,1.12rem);
  line-height:1.5;
  color:rgba(255,255,255,.92);
  margin-bottom:1.5rem;
  max-width:55ch;
}
.hero__cta{display:flex;gap:.6rem;flex-wrap:wrap}

/* ---------- Page header ---------- */
.page-header{
  position:relative;
  background-color:var(--navy-dark);
  background-size:cover;
  background-position:center;
  padding-block:clamp(2.5rem,6vw,4.5rem);
  color:#fff;
  overflow:hidden;
}
.page-header__bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center;
  animation:heroFade 24s infinite;
  will-change:opacity,transform;
}
.page-header__bg:nth-child(1){animation-delay:0s}
.page-header__bg:nth-child(2){animation-delay:8s}
.page-header__bg:nth-child(3){animation-delay:16s}
.page-header::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg,rgba(15,29,58,.85) 0%,rgba(15,29,58,.55) 100%);
  z-index:1;
  pointer-events:none;
}
.page-header__content{position:relative;z-index:2}
.page-header__eyebrow{
  display:inline-block;
  font-size:clamp(.75rem,1.6vw,.85rem);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--navy-dark);
  background:var(--yellow);
  padding:.4rem .85rem;
  border-radius:3px;
  margin-bottom:.85rem;
}
.page-header h1{
  color:#fff;font-weight:500;
  font-size:clamp(1.8rem,5.5vw,3.5rem);
  margin-bottom:.85rem;
  max-width:20ch;
}
.page-header__lead{
  font-size:clamp(1rem,2.3vw,1.15rem);
  color:rgba(255,255,255,.88);
  max-width:55ch;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.8rem 1.4rem;
  font-family:var(--sans);
  font-size:.95rem;font-weight:600;
  border-radius:6px;
  background:var(--navy);color:#fff;
  border:1px solid var(--navy);
  cursor:pointer;
  transition:background .2s,border-color .2s,transform .15s,color .2s;
  text-align:center;
  white-space:nowrap;
}
.btn:hover{background:var(--navy-dark);border-color:var(--navy-dark);transform:translateY(-1px)}
.btn--yellow{background:var(--yellow);border-color:var(--yellow);color:var(--navy-dark)}
.btn--yellow:hover{background:var(--yellow-soft);border-color:var(--yellow-soft);color:var(--navy-dark)}
.btn--teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn--teal:hover{background:var(--navy);border-color:var(--navy)}
.btn--outline{background:transparent;border-color:#fff;color:#fff}
.btn--outline:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn--ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--ghost:hover{background:var(--navy);color:#fff}

/* ---------- Section header ---------- */
.section-head{margin-bottom:clamp(1.5rem,4vw,3rem);max-width:680px}
.section-head__eyebrow{
  display:inline-block;
  font-size:clamp(.75rem,1.6vw,.85rem);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--yellow-dark);
  margin-bottom:.6rem;
}
.section-head h2{margin-bottom:.75rem}
.section-head__lead{font-size:clamp(1rem,2.3vw,1.1rem);color:var(--text-soft);max-width:55ch}

/* ---------- Two-column split ---------- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center;
}
.split--asym{grid-template-columns:1.2fr 1fr}
@media (max-width:780px){.split,.split--asym{grid-template-columns:1fr}}

.split__img{
  width:100%;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 10px 30px -10px rgba(15,29,58,.25);
  position:relative;
  aspect-ratio:4/3;
  background-size:cover;
  background-position:center;
  background-color:var(--teal-light);
}
.split__img img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  position:absolute;inset:0;
  animation:kenBurns 20s ease-in-out infinite alternate;
}
@keyframes kenBurns{
  from{transform:scale(1) translate(0,0)}
  to{transform:scale(1.1) translate(-1%,-1%)}
}

/* ---------- Categories ---------- */
.categories{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(1rem,3vw,2rem);
}
@media (max-width:780px){.categories{grid-template-columns:1fr}}
.category{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .25s,box-shadow .25s;
}
.category:hover{transform:translateY(-3px);box-shadow:0 16px 32px -16px rgba(15,29,58,.25)}
.category__img{
  width:100%;
  height:200px;
  background-color:var(--teal);
  background-size:cover;
  background-position:center;
  transition:transform .8s ease;
}
.category:hover .category__img{transform:scale(1.05)}
.category__body{padding:1.5rem;flex:1;display:flex;flex-direction:column}
.category__tag{
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin-bottom:.5rem;
}
.category h3{margin-bottom:.65rem}
.category p{color:var(--text-soft);margin-bottom:1.25rem;flex:1;font-size:.97rem}
.category__link{
  font-weight:600;color:var(--navy);
  display:inline-flex;align-items:center;gap:.4rem;
  transition:gap .2s;
}
.category__link:hover{gap:.7rem;color:var(--yellow-dark)}

/* ---------- Specialties chips ---------- */
.chips{
  display:flex;gap:.65rem;flex-wrap:wrap;justify-content:center;
}
.chip{
  font-size:clamp(.78rem,1.5vw,.86rem);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.6rem 1.1rem;
  background:var(--bg);
  border:1px solid var(--border);
  color:var(--navy);
  border-radius:99px;
  transition:background .2s,border-color .2s,transform .15s;
}
.chip:hover{background:var(--yellow);border-color:var(--yellow);transform:translateY(-1px)}

/* ---------- Product cards ---------- */
.products-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));
  gap:1.25rem;
}
.product-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem;
  display:flex;flex-direction:column;
  transition:transform .25s,box-shadow .25s,border-color .25s;
  overflow:hidden;
}
.product-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px -12px rgba(15,29,58,.2);
  border-color:var(--navy-light);
}
.product-card__photo{
  display:flex;align-items:center;justify-content:center;
  height:220px;
  background:linear-gradient(180deg,var(--bg-cream) 0%,#ffffff 100%);
  border-bottom:var(--rule);
  margin:-1.5rem -1.5rem 1.25rem;
  padding:1rem;
}
.product-card__photo img{
  max-height:100%;max-width:100%;width:auto;
  object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(15,29,58,.10));
  transition:transform .4s ease;
  animation:floatY 5s ease-in-out infinite;
}
.product-card:nth-child(1) .product-card__photo img{animation-delay:0s}
.product-card:nth-child(2) .product-card__photo img{animation-delay:-.8s}
.product-card:nth-child(3) .product-card__photo img{animation-delay:-1.6s}
.product-card:nth-child(4) .product-card__photo img{animation-delay:-2.4s}
.product-card:nth-child(5) .product-card__photo img{animation-delay:-3.2s}
.product-card:nth-child(6) .product-card__photo img{animation-delay:-4s}
.product-card:hover .product-card__photo img{transform:scale(1.04) translateY(0);animation:none}
@keyframes floatY{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* ---------- Stats section ---------- */
.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(1rem,3vw,2.5rem);
  text-align:center;
}
@media (max-width:780px){.stats{grid-template-columns:repeat(2,1fr);gap:2.5rem 1rem}}
.stat__num{
  font-family:var(--serif);
  font-size:clamp(2.5rem,7vw,4.5rem);
  font-weight:600;
  color:var(--yellow);
  line-height:1;
  margin-bottom:.4rem;
  letter-spacing:-.02em;
}
.stat__suffix{font-size:.6em;color:var(--yellow-soft);margin-left:.1em}
.stat__label{
  font-size:clamp(.78rem,1.4vw,.9rem);
  color:rgba(255,255,255,.85);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:600;
}

/* ---------- Bubbles (decorative for bg-teal / bg-navy sections) ---------- */
.bubbles{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:0;
}
.bubble{
  position:absolute;
  bottom:-60px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.18);
  animation:bubble-rise linear infinite;
  will-change:transform,opacity;
}
@keyframes bubble-rise{
  0%{transform:translateY(0) translateX(0) scale(1);opacity:0}
  10%{opacity:.55}
  90%{opacity:.55}
  100%{transform:translateY(-110vh) translateX(28px) scale(.4);opacity:0}
}

/* ---------- Kelp SVG decoration ---------- */
.kelp{
  position:absolute;
  pointer-events:none;
  opacity:.16;
  z-index:0;
  transform-origin:bottom center;
  animation:sway 8s ease-in-out infinite alternate;
}
.kelp--left{left:-3%;bottom:-5%;height:120%;animation-duration:9s}
.kelp--right{right:-3%;bottom:-5%;height:110%;animation-duration:7s;animation-delay:-2s}
@keyframes sway{
  0%{transform:rotate(-3deg)}
  100%{transform:rotate(3deg)}
}
.product-card__tag{
  display:inline-block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--navy);
  background:rgba(212,193,74,.18);
  padding:.28rem .6rem;
  border-radius:4px;
  margin-bottom:.75rem;
  width:fit-content;
}
.product-card h3{
  margin-bottom:.65rem;
  font-size:clamp(1.2rem,2.2vw,1.4rem);
  color:var(--navy);
}
.product-card__desc{
  color:var(--text-soft);
  margin-bottom:1.1rem;
  font-size:.95rem;
  line-height:1.55;
}
.product-card__section{
  border-top:var(--rule);
  padding-top:.9rem;
  margin-top:auto;
}
.product-card__label{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin-bottom:.4rem;
}
.product-card__list{
  font-size:.9rem;
  color:var(--text);
  margin-bottom:.9rem;
  line-height:1.55;
}
.product-card__list li{padding-left:.95rem;position:relative;margin-bottom:.2rem}
.product-card__list li::before{
  content:"";
  position:absolute;left:0;top:.55em;
  width:5px;height:5px;
  background:var(--yellow);
  border-radius:50%;
}
.product-card__dosis{
  font-size:.88rem;
  color:var(--text-soft);
  line-height:1.55;
}
.product-card__dosis strong{color:var(--navy)}

/* ---------- Science cards ---------- */
.science-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:1.25rem;
}
.science-card{
  background:var(--bg);
  border-left:3px solid var(--yellow);
  padding:1.1rem 1.35rem;
  border-radius:0 6px 6px 0;
}
.science-card h4{color:var(--navy);margin-bottom:.5rem;font-family:var(--sans);font-size:.95rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.science-card ul{font-size:.92rem;color:var(--text-soft)}
.science-card li{padding-left:.95rem;position:relative;margin-bottom:.25rem;line-height:1.45}
.science-card li::before{content:"·";position:absolute;left:.2rem;color:var(--yellow-dark);font-weight:700}

/* ---------- Ensayo cards ---------- */
.ensayos-section h3{
  font-size:clamp(.95rem,2vw,1.1rem);
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--yellow-dark);
  margin:2rem 0 1rem;
  font-family:var(--sans);
  font-weight:700;
}
.ensayos-section h3:first-child{margin-top:0}
.ensayos-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));
  gap:1rem;
}
.ensayo-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:8px;
  overflow:hidden;
  transition:transform .2s,box-shadow .2s;
  display:flex;
  flex-direction:column;
}
.ensayo-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px -8px rgba(15,29,58,.18)}
.ensayo-card__img{
  width:100%;
  aspect-ratio:1/1;
  background-color:var(--teal-light);
  background-size:cover;
  background-position:center;
  transition:transform .6s ease;
}
.ensayo-card:hover .ensayo-card__img{transform:scale(1.05)}
.ensayo-card__body{
  padding:.75rem .85rem .85rem;
  display:flex;
  flex-direction:column;
  flex:1;
}
.ensayo-card__title{
  font-family:var(--serif);
  font-size:.98rem;
  color:var(--navy);
  margin-bottom:.2rem;
  font-weight:500;
  line-height:1.2;
}
.ensayo-card__meta{
  font-size:.8rem;
  color:var(--text-soft);
  margin-bottom:.5rem;
}
.ensayo-card__author{
  font-size:.74rem;
  color:var(--navy);
  margin-bottom:.55rem;
  display:flex;
  align-items:flex-start;
  gap:.32rem;
  line-height:1.32;
}
.ensayo-card__author svg{flex:none;width:13px;height:13px;margin-top:1px;opacity:.55}
.ensayo-card__link{
  font-size:.82rem;
  font-weight:600;
  color:var(--yellow-dark);
}
.ensayo-card__link.is-paper{
  /* Botón rectangular verde pasto seco para cards con mini-paper */
  display:inline-block;
  align-self:flex-start;
  margin-top:auto;
  background:#8a8542;
  color:#fff;
  padding:.45rem .95rem;
  border-radius:6px;
  font-size:.85rem;
  font-weight:600;
  text-align:center;
  transition:background .2s;
}
.ensayo-card__link.is-paper:hover{
  background:#6f6a32;
  color:#fff;
}

/* ---------- Botón "Volver" (esquina sup. izq. de cada página) ---------- */
.back-bar{
  background:var(--bg);
  border-bottom:var(--rule);
}
.back-bar__wrap{
  max-width:var(--maxw);
  margin-inline:auto;
  padding:.7rem var(--gutter);
}
.btn-back{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.55rem 1.1rem;
  background:var(--navy);
  border:0;
  border-radius:6px;
  color:#fff;
  font-family:var(--sans);
  font-size:.94rem;
  font-weight:600;
  text-decoration:none;
  transition:background .2s,color .2s;
}
.btn-back:hover{
  background:var(--navy-light);
  color:#fff;
}
.btn-back__arrow{
  font-size:1.05em;
  line-height:1;
  display:inline-block;
  transform:translateY(-1px);
}

/* ---------- Shop cards ---------- */
.shop-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:1.25rem;
  max-width:760px;
  margin-inline:auto;
}
.shop-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem;
  text-align:center;
  transition:transform .2s,box-shadow .2s;
}
.shop-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px -12px rgba(15,29,58,.22)}
.shop-card__name{
  font-family:var(--serif);
  font-size:clamp(1.3rem,2.5vw,1.55rem);
  color:var(--navy);
  margin-bottom:.35rem;
}
.shop-card__size{
  font-size:.92rem;color:var(--text-soft);
  margin-bottom:.85rem;
  letter-spacing:.04em;
}
.shop-card__price{
  font-size:clamp(1.2rem,2.5vw,1.45rem);
  color:var(--yellow-dark);
  font-weight:700;
  margin-bottom:1.2rem;
}

/* ---------- Form ---------- */
.form{display:grid;gap:1rem;max-width:520px}
.form[hidden]{display:none}

/* Mensaje de éxito del formulario de contacto (envío AJAX a Netlify) */
.form__success{
  max-width:520px;
  text-align:center;
  padding:2.75rem 1.75rem;
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:14px;
}
.form__success svg{
  display:block;
  margin:0 auto 1rem;
  width:60px;height:60px;
  padding:14px;
  color:var(--teal);
  background:rgba(31,139,130,.1);
  border-radius:50%;
}
.form__success h3{margin:0 0 .5rem;color:var(--navy);font-size:1.4rem}
.form__success p{margin:0 auto;max-width:36ch;color:var(--text-soft);line-height:1.6}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
@media (max-width:560px){.form__row{grid-template-columns:1fr}}
.form__field{display:flex;flex-direction:column;gap:.3rem}
.form__field label{
  font-size:.82rem;
  font-weight:600;
  color:var(--navy);
}
.form__field input,.form__field textarea,.form__field select{
  font-family:var(--sans);
  font-size:1rem;
  padding:.65rem .8rem;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:6px;
  outline:none;
  transition:border-color .2s,box-shadow .2s;
  color:var(--text);
  width:100%;
}
.form__field input:focus,.form__field textarea:focus,.form__field select:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,44,84,.12);
}
.form__field textarea{min-height:110px;resize:vertical}

/* ---------- Info block ---------- */
.info{
  background:var(--bg-cream);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem;
}
.info h3{margin-bottom:1rem;font-size:clamp(1.15rem,2.5vw,1.3rem)}
.info__row{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  padding-block:.75rem;
  border-bottom:var(--rule);
}
.info__row:last-of-type{border-bottom:0}
.info__label{
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--navy);
}
.info__value{font-size:.97rem;color:var(--text);word-break:break-word}
.info__value a{color:var(--text);transition:color .2s}
.info__value a:hover{color:var(--yellow-dark)}
.info__socials{
  display:flex;gap:.65rem;
  margin-top:1.1rem;
  flex-wrap:wrap;
}
.info__socials a{
  width:38px;height:38px;
  background:var(--navy);color:#fff;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,transform .2s;
}
.info__socials a:hover{background:var(--yellow);color:var(--navy);transform:scale(1.08)}
.info__socials svg{width:18px;height:18px}

/* ---------- WhatsApp FAB ---------- */
.wa-fab{
  position:fixed;bottom:1.25rem;right:1.25rem;z-index:40;
  width:56px;height:56px;
  background:#25d366;color:#fff;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px -6px rgba(0,0,0,.3);
  transition:transform .2s,box-shadow .2s;
  animation:waPulse 3s ease-in-out infinite;
}
.wa-fab:hover{transform:scale(1.08);box-shadow:0 12px 30px -6px rgba(0,0,0,.4)}
.wa-fab svg{width:28px;height:28px}
@keyframes waPulse{
  0%,100%{box-shadow:0 8px 24px -6px rgba(0,0,0,.3),0 0 0 0 rgba(37,211,102,.5)}
  50%{box-shadow:0 8px 24px -6px rgba(0,0,0,.3),0 0 0 12px rgba(37,211,102,0)}
}

/* ---------- Footer ---------- */
footer{
  background:var(--navy-dark);
  color:rgba(255,255,255,.9);
  padding:clamp(2rem,5vw,3.5rem) 0 1.25rem;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:clamp(1.25rem,3vw,2.5rem);
  margin-bottom:2rem;
}
@media (max-width:780px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.footer__grid{grid-template-columns:1fr}}
.footer__brand{margin-bottom:.85rem}
.footer__tagline{
  font-family:var(--serif);
  font-style:italic;
  font-size:1rem;
  color:rgba(255,255,255,.75);
  max-width:28ch;
  margin-bottom:1rem;
}
.footer__col h4{
  font-family:var(--sans);
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:.85rem;
  color:var(--yellow);
}
.footer__col ul{display:flex;flex-direction:column;gap:.45rem;font-size:.92rem}
.footer__col a{
  color:rgba(255,255,255,.85);
  transition:color .2s;
}
.footer__col a:hover{color:var(--yellow)}
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.15);
  padding-top:1.1rem;
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:.65rem;
  font-size:.82rem;
  color:rgba(255,255,255,.6);
}

/* ---------- Utility ---------- */
.flex{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.center{text-align:center;margin-inline:auto}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}

/* Reveal — scroll triggered */
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.no-js .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal,.hero__slide,.page-header__bg,.split__img img,.bg-teal::before,.wa-fab,.product-card__photo img,.bubble,.kelp{animation:none!important}
  .reveal{opacity:1;transform:none}
  *{transition-duration:0s!important}
}

/* ---------- Features (Por qué Cauque) ---------- */
.features-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1rem,2.5vw,1.75rem);
}
@media (max-width:780px){.features-grid{grid-template-columns:1fr}}
.feature{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.75rem 1.5rem;
  text-align:left;
  transition:transform .25s,box-shadow .25s,border-color .25s;
  position:relative;
}
.feature:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 32px -16px rgba(15,29,58,.18);
  border-color:var(--yellow);
}
.feature__icon{
  width:50px;height:50px;
  background:var(--yellow);color:var(--navy);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.1rem;
}
.feature__icon svg{width:26px;height:26px}
.feature h3{margin-bottom:.6rem;font-size:1.25rem}
.feature p{color:var(--text-soft);font-size:.95rem;line-height:1.55}

/* ---------- Cultivos grid ---------- */
.cultivos-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));
  gap:.85rem;
}
.cultivo{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.25rem .75rem;
  text-align:center;
  transition:transform .2s,background .2s,border-color .2s,color .2s;
}
.cultivo:hover{
  transform:translateY(-2px);
  background:var(--navy);
  border-color:var(--navy);
  color:#fff;
}
.cultivo:hover .cultivo__icon{filter:brightness(0) invert(1)}
.cultivo__icon{
  font-size:1.75rem;
  margin-bottom:.4rem;
  display:inline-block;
  transition:filter .2s;
}
.cultivo__name{
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.04em;
}

/* ---------- Campos gallery ---------- */
.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-template-rows:200px 200px;
  gap:.85rem;
}
.gallery__item{
  border-radius:10px;
  overflow:hidden;
  background-color:var(--teal-light);
  background-size:cover;
  background-position:center;
  position:relative;
  transition:transform .3s;
}
.gallery__item:hover{transform:scale(1.02)}
.gallery__item::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(15,29,58,.55) 100%);
  opacity:0;
  transition:opacity .3s;
}
.gallery__item:hover::after{opacity:1}
.gallery__label{
  position:absolute;
  bottom:.85rem;left:1rem;
  color:#fff;
  font-family:var(--serif);
  font-size:1.1rem;
  font-weight:500;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .3s,transform .3s;
  z-index:1;
}
.gallery__item:hover .gallery__label{opacity:1;transform:translateY(0)}
.gallery__item--big{grid-column:span 2;grid-row:span 2}
@media (max-width:780px){
  .gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}
  .gallery__item{aspect-ratio:4/3}
  .gallery__item--big{grid-column:span 2}
}

/* ---------- Kelp SVG ---------- */
.kelp-deco{
  position:absolute;
  pointer-events:none;
  z-index:0;
}
.kelp-deco--left{left:-2%;bottom:-5%;width:140px;height:100%;opacity:.25}
.kelp-deco--right{right:-2%;bottom:-5%;width:120px;height:90%;opacity:.22;transform:scaleX(-1)}
.kelp-stem{
  transform-origin:bottom center;
  animation:kelpSway 7s ease-in-out infinite alternate;
}
.kelp-deco--right .kelp-stem{animation-duration:9s;animation-delay:-2s}
@keyframes kelpSway{
  0%{transform:rotate(-4deg)}
  100%{transform:rotate(4deg)}
}

/* ---------- Newsletter ---------- */
.newsletter{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.15);
  border-radius:10px;
  padding:1.5rem;
  margin-bottom:2rem;
}
.newsletter h4{color:#fff;font-family:var(--serif);font-size:1.15rem;margin-bottom:.4rem;letter-spacing:0;text-transform:none;font-weight:500}
.newsletter p{color:rgba(255,255,255,.7);font-size:.9rem;margin-bottom:.85rem}
.newsletter__form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.newsletter__form input{
  flex:1;min-width:180px;
  padding:.65rem .85rem;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.18);
  border-radius:6px;
  color:#fff;font-size:.92rem;
  outline:none;
  transition:border-color .2s;
}
.newsletter__form input::placeholder{color:rgba(255,255,255,.5)}
.newsletter__form input:focus{border-color:var(--yellow)}
.newsletter__form button{
  padding:.65rem 1rem;
  background:var(--yellow);color:var(--navy-dark);
  border:0;border-radius:6px;
  font-weight:700;font-size:.9rem;
  cursor:pointer;
  transition:background .2s;
}
.newsletter__form button:hover{background:var(--yellow-soft)}

/* ---------- Por qué algas: section ---------- */
.why-algae{position:relative;overflow:hidden}
.why-algae__intro{max-width:780px;margin:0 auto clamp(2rem,4vw,3rem)}
.why-algae__intro p{font-size:clamp(1rem,2.3vw,1.1rem);line-height:1.65;color:var(--text-soft);margin-bottom:.75rem}

.stat-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
  margin-bottom:clamp(2rem,4vw,3rem);
}
@media (max-width:880px){.stat-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.stat-cards{grid-template-columns:1fr}}
.stat-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem 1.25rem;
  text-align:left;
  border-left:4px solid var(--yellow);
  transition:transform .25s,box-shadow .25s;
}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(15,29,58,.15)}
.stat-card__num{
  font-family:var(--serif);
  font-size:clamp(2rem,4.5vw,2.75rem);
  font-weight:600;
  color:var(--navy);
  line-height:1;
  margin-bottom:.5rem;
}
.stat-card__num small{font-size:.55em;color:var(--yellow-dark);font-weight:500;margin-left:.1em}
.stat-card__label{
  font-size:.95rem;
  color:var(--text);
  line-height:1.4;
  margin-bottom:.5rem;
  font-weight:500;
}
.stat-card__source{
  font-size:.75rem;
  color:var(--text-soft);
  font-style:italic;
}

/* ---------- Pie chart with conic-gradient ---------- */
.chart-block{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:clamp(1.5rem,4vw,3rem);
  align-items:center;
  background:var(--bg);
  border:var(--rule);
  border-radius:12px;
  padding:clamp(1.5rem,3vw,2rem);
  margin-bottom:clamp(2rem,4vw,3rem);
  box-shadow:0 4px 12px -8px rgba(15,29,58,.1);
}
@media (max-width:780px){.chart-block{grid-template-columns:1fr;text-align:center}}
.pie{
  width:240px;height:240px;
  border-radius:50%;
  position:relative;
  margin:0 auto;
  background:conic-gradient(
    var(--yellow) 0deg 126deg,
    var(--navy) 126deg 216deg,
    var(--teal) 216deg 252deg,
    var(--clay) 252deg 288deg,
    var(--navy-light) 288deg 360deg
  );
  box-shadow:0 8px 24px -8px rgba(15,29,58,.18);
}
.pie::before{
  content:"";
  position:absolute;inset:18%;
  background:var(--bg);
  border-radius:50%;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.04);
}
.pie__center{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  flex-direction:column;
  z-index:1;
}
.pie__center strong{
  font-family:var(--serif);
  font-size:2rem;font-weight:600;color:var(--navy);
}
.pie__center span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);font-weight:600;margin-top:.15rem}
@keyframes spinIn{
  from{transform:scale(.6) rotate(-30deg);opacity:0}
  to{transform:scale(1) rotate(0);opacity:1}
}

.chart-legend{display:flex;flex-direction:column;gap:.6rem}
.legend-item{display:flex;align-items:center;gap:.7rem;font-size:.95rem}
.legend-color{
  width:14px;height:14px;border-radius:3px;flex-shrink:0;
}
.legend-pct{font-weight:700;color:var(--navy);min-width:42px}
.legend-name{color:var(--text)}

/* Comparison: synthetic vs algae */
.compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  margin-bottom:clamp(2rem,4vw,3rem);
}
@media (max-width:680px){.compare{grid-template-columns:1fr}}
.compare__col{
  padding:1.5rem;
  border-radius:10px;
}
.compare__col--bad{background:#fdf1e8;border:1px solid #e9c8a5}
.compare__col--good{background:#eef9f7;border:1px solid #b7e3dc}
.compare__title{
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:.85rem;
}
.compare__col--bad .compare__title{color:#a05822}
.compare__col--good .compare__title{color:#0e5e58}
.compare__col h3{font-size:1.2rem;margin-bottom:.85rem;color:var(--navy)}
.compare__col ul{display:flex;flex-direction:column;gap:.55rem}
.compare__col li{padding-left:1.5rem;position:relative;font-size:.95rem;line-height:1.5}
.compare__col--bad li::before{
  content:"✕";position:absolute;left:0;top:.05em;
  color:#c66a2a;font-weight:700;
}
.compare__col--good li::before{
  content:"✓";position:absolute;left:0;top:.05em;
  color:#0e5e58;font-weight:700;
}

/* Sources block */
.sources{
  background:var(--bg-cream);
  border:var(--rule);
  border-radius:10px;
  padding:1.25rem 1.5rem;
  font-size:.83rem;
  color:var(--text-soft);
}
.sources h4{
  font-family:var(--sans);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--navy);
  margin-bottom:.6rem;
  font-weight:700;
}
.sources ol{padding-left:1.2rem;display:flex;flex-direction:column;gap:.35rem}
.sources li{list-style:decimal;line-height:1.45}
.sources a{color:var(--navy);text-decoration:underline;text-decoration-color:rgba(26,44,84,.3)}
.sources a:hover{color:var(--yellow-dark);text-decoration-color:currentColor}

/* ---------- Programa de aplicación timeline ---------- */
.timeline-intro{max-width:680px;margin:0 auto 2.5rem;text-align:center}
.timeline{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:1rem;
}
@media (max-width:880px){
  .timeline{grid-template-columns:1fr;gap:0}
}
.timeline::before{
  content:"";
  position:absolute;
  left:0;right:0;top:38px;
  height:3px;
  background:linear-gradient(90deg,var(--yellow) 0%,var(--teal) 50%,var(--navy) 100%);
  border-radius:3px;
  z-index:0;
}
@media (max-width:880px){
  .timeline::before{
    left:24px;right:auto;top:0;bottom:0;
    width:3px;height:auto;
    background:linear-gradient(180deg,var(--yellow) 0%,var(--teal) 50%,var(--navy) 100%);
  }
}
.stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center}
@media (max-width:880px){
  .stage{flex-direction:row;align-items:flex-start;text-align:left;gap:1rem;padding-bottom:1.5rem}
}
.stage__marker{
  width:50px;height:50px;
  border-radius:50%;
  background:var(--bg);
  border:3px solid var(--yellow);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);
  font-weight:600;
  color:var(--navy);
  font-size:1.05rem;
  margin-bottom:.85rem;
  flex-shrink:0;
  transition:transform .2s;
}
@media (max-width:880px){
  .stage__marker{margin-bottom:0;margin-left:0}
}
.stage:hover .stage__marker{transform:scale(1.1);background:var(--yellow)}
.stage:nth-child(2) .stage__marker{border-color:#86b86c}
.stage:nth-child(3) .stage__marker{border-color:var(--teal-light)}
.stage:nth-child(4) .stage__marker{border-color:var(--teal)}
.stage:nth-child(5) .stage__marker{border-color:var(--navy)}
.stage__body{flex:1}
.stage__phase{
  font-size:.74rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--yellow-dark);
  margin-bottom:.3rem;
}
.stage__title{
  font-family:var(--serif);
  font-size:1.1rem;
  color:var(--navy);
  margin-bottom:.4rem;
  font-weight:500;
}
.stage__desc{
  font-size:.85rem;
  color:var(--text-soft);
  line-height:1.45;
  margin-bottom:.65rem;
}
.stage__products{
  display:flex;flex-wrap:wrap;gap:.35rem;
  justify-content:center;
}
@media (max-width:880px){.stage__products{justify-content:flex-start}}
.stage__product{
  font-size:.74rem;
  font-weight:700;
  padding:.3rem .65rem;
  background:var(--bg-cream);
  border:1px solid var(--border);
  border-radius:99px;
  color:var(--navy);
  transition:background .2s,color .2s;
}
.stage__product:hover{background:var(--navy);color:#fff}

/* ---------- Popup 15% off ---------- */
.popup-overlay{
  position:fixed;inset:0;
  background:rgba(15,29,58,.6);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  z-index:100;
  display:flex;align-items:center;justify-content:center;
  padding:1rem;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s,visibility 0s .3s;
}
.popup-overlay.is-open{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s 0s}
.popup{
  background:#fff;
  border-radius:14px;
  max-width:480px;width:100%;
  padding:clamp(1.5rem,4vw,2.25rem);
  position:relative;
  transform:translateY(20px) scale(.96);
  transition:transform .35s cubic-bezier(.2,.7,.3,1);
  max-height:90vh;overflow-y:auto;
}
.popup-overlay.is-open .popup{transform:translateY(0) scale(1)}
.popup__close{
  position:absolute;top:.85rem;right:.85rem;
  width:32px;height:32px;
  border-radius:50%;
  background:var(--bg-cream);
  border:0;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  color:var(--text-soft);
  transition:background .2s,color .2s;
}
.popup__close:hover{background:var(--navy);color:#fff}
.popup__close svg{width:14px;height:14px}
.popup__badge{
  display:inline-block;
  font-family:var(--serif);
  font-size:clamp(2.2rem,5vw,2.8rem);
  font-weight:600;
  color:var(--yellow-dark);
  line-height:1;
  margin-bottom:.5rem;
}
.popup h3{
  color:var(--navy);
  font-size:clamp(1.2rem,2.4vw,1.45rem);
  margin-bottom:.6rem;
}
.popup p{color:var(--text-soft);font-size:.95rem;margin-bottom:1.25rem;line-height:1.5}
.popup__form{display:flex;flex-direction:column;gap:.75rem}
.popup__form input[type="email"]{
  padding:.75rem .9rem;
  border:1px solid var(--border);
  border-radius:6px;
  font-size:1rem;
  outline:none;
  transition:border-color .2s;
}
.popup__form input[type="email"]:focus{border-color:var(--navy)}
.popup__form button{
  padding:.85rem;
  background:var(--navy);color:#fff;
  border:0;border-radius:6px;
  font-weight:700;font-size:.95rem;
  cursor:pointer;
  transition:background .2s;
}
.popup__form button:hover{background:var(--navy-light)}
.popup__consent{
  display:flex;gap:.5rem;align-items:flex-start;
  font-size:.78rem;
  color:var(--text-soft);
  line-height:1.4;
  margin-top:.25rem;
}
.popup__consent input{margin-top:.2rem;flex-shrink:0}
.popup__consent a{color:var(--navy);text-decoration:underline}
.popup__success{
  text-align:center;
  padding:1.5rem 0;
  display:none;
}
.popup.is-success .popup__form{display:none}
.popup.is-success .popup__success{display:block}
.popup__success svg{width:48px;height:48px;color:var(--teal);margin-bottom:1rem}

/* Consent checkbox in forms */
.consent-row{
  display:flex;gap:.5rem;align-items:flex-start;
  font-size:.83rem;
  color:var(--text-soft);
  line-height:1.4;
  padding:.5rem 0;
}
.consent-row input{margin-top:.2rem;flex-shrink:0}
.consent-row a{color:var(--navy);text-decoration:underline}

/* Privacy policy page */
.policy{max-width:740px;margin:0 auto}
.policy h2{font-size:clamp(1.3rem,2.5vw,1.6rem);margin:2rem 0 .85rem;color:var(--navy)}
.policy h2:first-child{margin-top:0}
.policy p{margin-bottom:.85rem;color:var(--text);line-height:1.65;max-width:none}
.policy ul{padding-left:1.4rem;margin-bottom:.85rem;display:flex;flex-direction:column;gap:.3rem}
.policy li{list-style:disc;color:var(--text);line-height:1.55}
.policy a{color:var(--navy);text-decoration:underline}
.policy .updated{font-size:.85rem;color:var(--text-soft);font-style:italic;margin-bottom:1.5rem}

/* ============================================================
   POR QUÉ ALGAS — Stats with pie charts, comparison
   ============================================================ */
.stats-evidence{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:1rem;
}
@media (max-width:880px){.stats-evidence{grid-template-columns:1fr}}
.stat-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem;
  display:flex;flex-direction:column;
  position:relative;
  overflow:hidden;
}
.stat-card--feature{grid-column:span 6}
.stat-card--small{grid-column:span 3}
.stat-card--wide{grid-column:span 6}
@media (max-width:880px){
  .stat-card--feature,.stat-card--small,.stat-card--wide{grid-column:span 1}
}
.stat-card--dark{background:var(--navy);color:#fff}
.stat-card--dark .stat-card__num{color:var(--yellow)}
.stat-card--dark .stat-card__source{color:rgba(255,255,255,.55)}
.stat-card__num{
  font-family:var(--serif);
  font-size:clamp(2.6rem,5vw,3.6rem);
  font-weight:600;
  line-height:1;
  color:var(--navy);
  margin-bottom:.5rem;
}
.stat-card__title{
  font-weight:600;
  font-size:1rem;
  color:inherit;
  margin-bottom:.5rem;
  line-height:1.3;
}
.stat-card__desc{
  font-size:.92rem;
  color:var(--text-soft);
  line-height:1.5;
  flex:1;
}
.stat-card--dark .stat-card__desc{color:rgba(255,255,255,.85)}
.stat-card__source{
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--text-soft);
  margin-top:.85rem;
  font-style:italic;
}

/* Pie chart inside stat card */
.pie-wrap{
  display:flex;align-items:center;gap:1.25rem;
}
.pie{
  width:130px;height:130px;
  flex-shrink:0;
}
.pie__ring-bg{stroke:rgba(0,0,0,.08)}
.stat-card--dark .pie__ring-bg{stroke:rgba(255,255,255,.15)}
.pie__ring-fill{
  stroke:var(--yellow);
  stroke-linecap:butt;
  transition:stroke-dasharray 1.5s cubic-bezier(.2,.6,.2,1);
}
.pie__num{
  font-family:var(--serif);
  font-size:1.55rem;
  font-weight:600;
  fill:var(--navy);
}
.stat-card--dark .pie__num{fill:var(--yellow)}
.pie__label{
  font-size:.6rem;
  fill:var(--text-soft);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.stat-card--dark .pie__label{fill:rgba(255,255,255,.6)}

/* Comparison cards (algas vs sintético) */
.compare-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
@media (max-width:680px){.compare-grid{grid-template-columns:1fr}}
.compare-card{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.5rem;
}
.compare-card--bad{border-left:3px solid #c44a4a}
.compare-card--good{border-left:3px solid var(--teal)}
.compare-card__label{
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:.75rem;
}
.compare-card--bad .compare-card__label{color:#c44a4a}
.compare-card--good .compare-card__label{color:var(--teal)}
.compare-card h3{font-size:1.1rem;margin-bottom:.85rem;color:var(--navy)}
.compare-card ul{margin:0;padding:0;list-style:none}
.compare-card li{
  padding:.5rem 0 .5rem 1.5rem;
  position:relative;
  font-size:.92rem;
  line-height:1.45;
  border-bottom:1px solid var(--border);
}
.compare-card li:last-child{border-bottom:0}
.compare-card--bad li::before{
  content:"−";position:absolute;left:.4rem;top:.5rem;
  color:#c44a4a;font-weight:700;
}
.compare-card--good li::before{
  content:"✓";position:absolute;left:.3rem;top:.5rem;
  color:var(--teal);font-weight:700;
}

/* Sources list */
.sources{
  margin-top:2rem;
  padding-top:1.25rem;
  border-top:var(--rule);
  font-size:.78rem;
  color:var(--text-soft);
  line-height:1.6;
}
.sources strong{color:var(--navy);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:.4rem}
.sources a{color:var(--text-soft);text-decoration:underline}
.sources a:hover{color:var(--navy)}

/* ============================================================
   PROGRAMA DE APLICACIÓN — Timeline
   ============================================================ */
.timeline{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:.5rem;
  position:relative;
  margin-top:2rem;
}
.timeline::before{
  content:"";
  position:absolute;
  top:34px;left:7%;right:7%;
  height:2px;
  background:linear-gradient(90deg,var(--yellow) 0%,var(--teal) 100%);
  z-index:0;
}
@media (max-width:880px){
  .timeline{grid-template-columns:1fr;gap:0}
  .timeline::before{
    top:0;bottom:0;left:34px;right:auto;
    width:2px;height:auto;
    background:linear-gradient(180deg,var(--yellow) 0%,var(--teal) 100%);
  }
}
.tl-stage{
  background:var(--bg);
  border:var(--rule);
  border-radius:10px;
  padding:1.25rem 1rem;
  text-align:center;
  position:relative;
  z-index:1;
  transition:transform .2s,box-shadow .2s;
}
.tl-stage:hover{transform:translateY(-3px);box-shadow:0 12px 28px -14px rgba(15,29,58,.2)}
@media (max-width:880px){
  .tl-stage{
    text-align:left;
    margin-left:60px;
    margin-bottom:1rem;
  }
}
.tl-stage__dot{
  width:50px;height:50px;
  background:var(--navy);
  color:var(--yellow);
  border:3px solid #fff;
  box-shadow:0 0 0 2px var(--yellow);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);
  font-weight:700;
  font-size:1.15rem;
  margin:0 auto .85rem;
  position:relative;
  z-index:2;
}
@media (max-width:880px){
  .tl-stage__dot{
    position:absolute;
    left:-60px;
    top:50%;
    margin:0;
    transform:translateY(-50%);
  }
}
.tl-stage__when{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin-bottom:.35rem;
}
.tl-stage h4{
  font-family:var(--serif);
  font-weight:500;
  font-size:1.1rem;
  color:var(--navy);
  margin-bottom:.75rem;
  letter-spacing:0;
  text-transform:none;
}
.tl-stage__products{
  display:flex;flex-direction:column;gap:.3rem;
  margin-bottom:.65rem;
}
.tl-stage__product{
  font-size:.84rem;
  font-weight:600;
  color:var(--navy);
  padding:.35rem .55rem;
  background:rgba(212,193,74,.12);
  border-radius:4px;
  display:inline-block;
}
.tl-stage__desc{
  font-size:.82rem;
  color:var(--text-soft);
  line-height:1.45;
}

/* ============================================================
   POPUP 15% OFF
   ============================================================ */
.popup-overlay{
  position:fixed;inset:0;
  background:rgba(15,29,58,.7);
  backdrop-filter:blur(4px);
  z-index:200;
  display:none;
  align-items:center;justify-content:center;
  padding:1rem;
  animation:popupFadeIn .3s ease;
}
.popup-overlay.is-open{display:flex}
@keyframes popupFadeIn{from{opacity:0}to{opacity:1}}
.popup{
  background:var(--bg);
  border-radius:14px;
  max-width:480px;
  width:100%;
  padding:2rem;
  position:relative;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.4);
  animation:popupSlideIn .4s cubic-bezier(.2,.6,.2,1);
}
@keyframes popupSlideIn{
  from{opacity:0;transform:translateY(20px) scale(.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.popup__close{
  position:absolute;top:.85rem;right:.85rem;
  width:32px;height:32px;
  background:transparent;border:0;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--text-soft);
  border-radius:50%;
  transition:background .2s;
}
.popup__close:hover{background:rgba(0,0,0,.06)}
.popup__close svg{width:18px;height:18px}
.popup__badge{
  display:inline-block;
  background:var(--yellow);color:var(--navy-dark);
  font-size:.78rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:.35rem .75rem;border-radius:4px;
  margin-bottom:1rem;
}
.popup h3{
  font-family:var(--serif);
  font-size:1.55rem;
  margin-bottom:.5rem;
  color:var(--navy);
  line-height:1.15;
}
.popup p{
  color:var(--text-soft);
  font-size:.95rem;
  margin-bottom:1.25rem;
  line-height:1.55;
}
.popup__form{display:flex;flex-direction:column;gap:.85rem}
.popup__form input[type=email]{
  width:100%;
  padding:.85rem 1rem;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:8px;
  font-size:1rem;
  outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.popup__form input[type=email]:focus{
  border-color:var(--navy);
  box-shadow:0 0 0 3px rgba(26,44,84,.12);
}
.popup__consent{
  display:flex;gap:.55rem;
  font-size:.82rem;
  color:var(--text-soft);
  line-height:1.45;
  cursor:pointer;
}
.popup__consent input{
  margin-top:.2rem;
  flex-shrink:0;
  accent-color:var(--navy);
}
.popup__consent a{color:var(--navy);text-decoration:underline}
.popup__submit{
  width:100%;
  padding:.9rem;
  background:var(--navy);color:#fff;
  border:0;border-radius:8px;
  font-weight:700;font-size:1rem;
  cursor:pointer;
  transition:background .2s;
}
.popup__submit:hover{background:var(--navy-dark)}
.popup__submit:disabled{opacity:.5;cursor:not-allowed}
.popup__no{
  background:transparent;
  border:0;
  font-size:.82rem;
  color:var(--text-soft);
  text-decoration:underline;
  cursor:pointer;
  padding:.4rem;
  align-self:center;
}
.popup__success{
  text-align:center;
  padding:1rem 0;
}
.popup__success svg{
  width:50px;height:50px;
  color:var(--teal);
  margin-bottom:.85rem;
}
.popup__code{
  display:inline-block;
  background:var(--bg-cream);
  border:1px dashed var(--navy);
  padding:.55rem 1rem;
  border-radius:6px;
  font-family:var(--sans);
  font-weight:700;
  color:var(--navy);
  letter-spacing:.1em;
  margin-top:.85rem;
}

/* ============================================================
   PRIVACY PAGE
   ============================================================ */
.privacy-content{max-width:760px;margin-inline:auto}
.privacy-content h2{
  font-size:1.45rem;
  margin-top:2rem;
  margin-bottom:.85rem;
  color:var(--navy);
}
.privacy-content h2:first-child{margin-top:0}
.privacy-content p,.privacy-content li{
  font-size:.97rem;
  color:var(--text);
  line-height:1.65;
  margin-bottom:.85rem;
}
.privacy-content ul{padding-left:1.25rem;list-style:disc}
.privacy-content ul li{margin-bottom:.35rem}
.privacy-meta{
  font-size:.85rem;
  color:var(--text-soft);
  margin-top:2rem;
  padding-top:1rem;
  border-top:var(--rule);
}

/* ============================================================
   CONSENT CHECKBOX (forms)
   ============================================================ */
.consent-row{
  display:flex;gap:.55rem;
  font-size:.85rem;
  color:var(--text-soft);
  line-height:1.45;
  cursor:pointer;
  margin:.4rem 0 .4rem;
}
.consent-row input{
  margin-top:.2rem;
  flex-shrink:0;
  accent-color:var(--navy);
}
.consent-row a{color:var(--navy);text-decoration:underline}

/* ---------- Ensayo tags ---------- */
.ensayo-card__products{
  display:flex;flex-wrap:wrap;gap:.3rem;
  margin:.5rem 0 .65rem;
}
.ensayo-card__product-tag{
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
  padding:.18rem .5rem;
  background:rgba(212,193,74,.18);
  color:var(--navy);
  border-radius:99px;
  transition:background .2s,color .2s;
}
.ensayo-card__product-tag:hover{background:var(--navy);color:#fff}

/* Related ensayos in product page */
.related-ensayos{
  margin-top:2.5rem;
  padding-top:2rem;
  border-top:var(--rule);
}
.related-ensayos__title{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin-bottom:1rem;
}
.related-ensayos__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));
  gap:.85rem;
}
.related-ensayo{
  display:flex;
  flex-direction:column;
  padding:.85rem 1rem;
  background:var(--bg-cream);
  border:var(--rule);
  border-radius:8px;
  text-decoration:none;
  transition:transform .2s,border-color .2s,background .2s;
}
.related-ensayo:hover{
  transform:translateY(-2px);
  border-color:var(--yellow);
  background:var(--bg);
}
.related-ensayo__cultivo{
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin-bottom:.25rem;
}
.related-ensayo__loc{
  font-family:var(--serif);
  font-size:.95rem;
  font-weight:500;
  color:var(--navy);
  line-height:1.3;
}

/* ---------- Image quality optimizations ---------- */
/* Better rendering for all images */
img, .hero__slide, .page-header__bg, .split__img, .gallery__item, .ensayo-card__img, .category__img{
  image-rendering:auto;
  image-rendering:-webkit-optimize-contrast;
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* Sharper background images */
.hero__slide, .page-header__bg{
  background-color:var(--navy-dark);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  filter:saturate(1.05) contrast(1.02);
}

/* Higher-quality gallery render */
.gallery__item{
  filter:saturate(1.05);
}

/* Better contrast on ensayo thumbnails */
.ensayo-card__img{
  filter:saturate(1.08) contrast(1.03);
  background-repeat:no-repeat;
}

/* Subtle vignette on hero for better text readability without losing image quality */
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(ellipse at center,transparent 50%,rgba(15,29,58,.15) 100%);
  z-index:1;
  pointer-events:none;
}

/* ---------- Mercado Libre CTA block ---------- */
.ml-cta{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:clamp(1.5rem,3vw,2.5rem);
  align-items:center;
  background:linear-gradient(135deg, #FFF9C8 0%, #FFFCE5 100%);
  border:1px solid #f0e070;
  border-radius:12px;
  padding:clamp(1.5rem,3vw,2.25rem);
  box-shadow:0 4px 16px -8px rgba(45,50,119,.1);
}
@media (max-width:780px){
  .ml-cta{grid-template-columns:1fr;text-align:center}
  .ml-cta__benefits{justify-content:center}
  .ml-cta__buttons{justify-content:center}
}
.ml-cta__logo{
  display:flex;align-items:center;justify-content:center;
  background:#FFE600;border-radius:50%;
  width:160px;height:160px;
  margin:0 auto;
  box-shadow:0 8px 20px -8px rgba(45,50,119,.25);
}
.ml-cta__logo svg{width:120px;height:auto}
.ml-cta__body h3{
  color:#2D3277;
  font-size:clamp(1.3rem,2.8vw,1.65rem);
  margin-bottom:.6rem;
}
.ml-cta__body p{color:var(--text);font-size:1rem;line-height:1.55;margin-bottom:1.1rem}
.ml-cta__benefits{
  display:flex;flex-wrap:wrap;gap:.4rem;
  margin-bottom:1.25rem;
}
.ml-cta__chip{
  font-size:.78rem;font-weight:600;
  padding:.3rem .7rem;
  background:rgba(255,255,255,.7);
  color:#2D3277;
  border:1px solid rgba(45,50,119,.15);
  border-radius:99px;
}
.ml-cta__buttons{display:flex;gap:.6rem;flex-wrap:wrap}
.ml-cta__note{
  margin-top:1rem !important;
  font-size:.82rem !important;
  color:var(--text-soft) !important;
  font-style:italic;
}

/* Yellow button variant for ML */
.btn--yellow{
  background:#FFE600;
  color:#2D3277 !important;
  border-color:#FFE600;
  font-weight:700;
}
.btn--yellow:hover{
  background:#FFD600;
  border-color:#FFD600;
  color:#2D3277 !important;
}

/* Teal button variant for WhatsApp B2B */
.btn--teal{
  background:#25d366;
  color:#fff !important;
  border-color:#25d366;
}
.btn--teal:hover{
  background:#1da851;
  border-color:#1da851;
  color:#fff !important;
}

/* ============================================================
   Proof panel — credibility-driven data grid for index.html
   "Los números que tenemos para mostrarte"
   ============================================================ */

.proof-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(.85rem,1.8vw,1.5rem);
  margin-top:clamp(2rem,4vw,3rem);
}
@media (max-width:920px){
  .proof-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .proof-grid{grid-template-columns:1fr}
}
/* When grid has exactly 7 cards, center the lone last card to balance the row.
   Desktop (3 cols): place it in column 2.
   Tablet (2 cols): span both columns. Mobile already 1 col, no issue. */
@media (min-width:921px){
  .proof-tile:nth-child(7):last-child{grid-column:2 / 3}
}
@media (min-width:561px) and (max-width:920px){
  .proof-tile:nth-child(7):last-child{grid-column:1 / -1}
}

.proof-tile{
  display:flex;
  flex-direction:column;
  gap:.6rem;
  padding:clamp(1.25rem,2.2vw,1.6rem);
  background:#fff;
  border:var(--rule);
  border-radius:10px;
  color:var(--text);
  text-decoration:none;
  transition:transform .25s cubic-bezier(.2,.6,.2,1),
             box-shadow .25s cubic-bezier(.2,.6,.2,1),
             border-color .25s cubic-bezier(.2,.6,.2,1);
  position:relative;
  overflow:hidden;
}
.proof-tile::before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:4px;height:0;
  background:var(--yellow);
  transition:height .35s cubic-bezier(.2,.6,.2,1);
}
.proof-tile:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(26,44,84,.12);
  border-color:var(--yellow);
}
.proof-tile:hover::before{height:100%}

.proof-tile__top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.5rem;
  flex-wrap:wrap;
}
.proof-tile__crop{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--navy);
}
.proof-tile__type{
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  background:rgba(212,193,74,.14);
  padding:.18rem .55rem;
  border-radius:3px;
  white-space:nowrap;
}

.proof-tile__number{
  font-family:var(--serif);
  font-size:clamp(2.3rem,5.5vw,3.4rem);
  font-weight:600;
  line-height:1;
  color:var(--navy);
  letter-spacing:-.02em;
  margin:.2rem 0 .15rem;
  display:flex;
  align-items:baseline;
  gap:.05em;
}
.proof-tile__unit,
.proof-tile__unit-pre{
  font-size:.42em;
  font-weight:500;
  color:var(--text-soft);
  letter-spacing:0;
}
.proof-tile__unit-pre{
  margin-right:.05em;
}

.proof-tile__label{
  font-size:.95rem;
  line-height:1.5;
  color:var(--text);
  min-height:2.85em;
}
.proof-tile__label em{font-style:italic;color:var(--navy)}

.proof-tile__cite{
  font-size:.78rem;
  line-height:1.45;
  color:var(--text-soft);
  padding-top:.7rem;
  border-top:var(--rule);
  margin-top:auto;
}

.proof-tile__cta{
  display:inline-flex;
  align-items:center;
  font-size:.85rem;
  font-weight:600;
  color:var(--navy);
  letter-spacing:.02em;
  transition:color .2s, transform .2s;
}
.proof-tile:hover .proof-tile__cta{
  color:var(--yellow-dark);
  transform:translateX(2px);
}

/* Tira de credibilidad debajo del grid */
.proof-credibility{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:.4rem .8rem;
  margin-top:clamp(2rem,3.5vw,2.5rem);
  padding:1rem clamp(1rem,2vw,1.5rem);
  background:rgba(26,44,84,.04);
  border-radius:8px;
  font-size:.85rem;
  color:var(--text-soft);
  line-height:1.5;
  text-align:center;
}
.proof-credibility__label{
  font-weight:700;
  color:var(--navy);
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:.72rem;
  margin-right:.5rem;
}
.proof-credibility > span[aria-hidden]{
  color:var(--yellow-dark);
  font-weight:700;
  opacity:.7;
}

.proof-cta{
  text-align:center;
  margin-top:clamp(1.5rem,3vw,2rem);
}

/* ============================================================
   Responsive improvements for ensayo papers on mobile.
   Targets ".paper-body .paper-..." selectors so they win over
   the embedded <style> blocks inside each paper.
   ============================================================ */

/* Tables: scroll hint on the right edge + smaller font on narrow screens.
   The .is-scrollable class is added by JS only when the table actually
   overflows its container. */
.paper-body .paper-table-wrap{
  position:relative;
}
/* Right-edge fade — indicates more content to the right */
.paper-body .paper-table-wrap.is-scrollable::after{
  content:"";
  position:sticky;
  display:block;
  left:auto;right:0;
  margin-top:-2.5rem;
  margin-left:auto;
  width:42px;height:2.5rem;
  background:linear-gradient(to right, rgba(255,255,255,0), rgba(255,251,235,.98) 55%);
  pointer-events:none;
  z-index:2;
}
@media (min-width:700px){
  .paper-body .paper-table-wrap.is-scrollable::after{display:none}
}
@media (max-width:560px){
  .paper-body .paper-table{
    font-size:.76rem;
    min-width:0;
  }
  .paper-body .paper-table th,
  .paper-body .paper-table td{
    padding:.4rem .5rem;
    word-break:normal;
  }
  .paper-body .paper-table caption{padding:.55rem .7rem;font-size:.76rem}
}
/* Floating "← deslizá" badge for narrow screens. Lives on the wrap (not inside
   the scrollable area) so it stays visible while user scrolls horizontally. */
.paper-body .paper-table-wrap.is-scrollable::before{
  content:"← deslizá →";
  position:absolute;
  top:.55rem;right:.7rem;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--yellow-dark);
  background:rgba(255,251,235,.95);
  padding:.18rem .5rem;
  border-radius:3px;
  z-index:3;
  pointer-events:none;
  white-space:nowrap;
}
@media (min-width:700px){
  .paper-body .paper-table-wrap.is-scrollable::before{display:none}
}

/* Charts: keep readable on narrow screens */
@media (max-width:560px){
  .paper-body .paper-chart__title{font-size:.92rem}
  .paper-body .paper-chart__sub{font-size:.78rem}
}

/* ============================================================
   Product cards — simple variant (used on productos.html)
   Shows: photo + larger tag + name + "Más detalles" button.
   Full info lives on the individual producto-*.html pages.
   ============================================================ */

/* Bigger tag (+15% over base .72rem = .83rem) */
.product-card__tag--lg{
  font-size:.83rem;
  padding:.34rem .75rem;
  letter-spacing:.08em;
}

/* The whole card is a clickable link */
.product-card--simple{
  padding:0;
}
.product-card--simple .product-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:1.4rem;
  color:inherit;
  text-decoration:none;
  transition:transform .25s cubic-bezier(.2,.6,.2,1),
             box-shadow .25s cubic-bezier(.2,.6,.2,1);
}
.product-card--simple:hover{
  border-color:var(--yellow);
}
.product-card--simple .product-card__link:hover{
  transform:translateY(-3px);
}
.product-card--simple .product-card__photo{
  margin-bottom:1rem;
}
.product-card--simple h3{
  margin-bottom:1.2rem;
}
.product-card--simple .product-card__cta{
  margin-top:auto;
  font-size:.88rem;
  align-self:flex-start;
  padding:.55rem 1.1rem;
  /* Override base .btn which assumes dark background */
  color:var(--navy);
  background:transparent;
  border:1.5px solid var(--navy);
  transition:background .2s, color .2s;
}
.product-card--simple .product-card__link:hover .product-card__cta{
  background:var(--navy);
  color:#fff;
}

/* ============================================================
   Product detail page (producto-*.html)
   Two-column layout on desktop, stacks on mobile.
   ============================================================ */

.product-detail{
  padding:clamp(2rem,5vw,4rem) 0 clamp(3rem,6vw,5rem);
  background:var(--bg-cream);
  min-height:60vh;
}
.product-detail__layout{
  display:grid;
  grid-template-columns:minmax(280px, 1fr) 1.4fr;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:start;
}
@media (max-width:780px){
  .product-detail__layout{
    grid-template-columns:1fr;
    gap:1.5rem;
  }
}
.product-detail__media{
  position:sticky;
  top:5rem;
  display:flex;
  flex-direction:column;
  gap:.85rem;
}
@media (max-width:780px){
  .product-detail__media{position:static}
}
.product-detail__photo{
  background:#fff;
  border:var(--rule);
  border-radius:10px;
  padding:clamp(1.5rem, 4vw, 2.5rem);
  display:flex;
  align-items:center;
  justify-content:center;
}
.product-detail__photo img{
  width:100%;
  height:auto;
  max-height:380px;
  object-fit:contain;
}

/* Descarga de folleto / ficha (debajo de la foto) */
.product-doc{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.85rem 1rem;
  background:#fff;
  border:var(--rule);
  border-radius:10px;
  text-decoration:none;
  color:var(--navy);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.product-doc:hover{
  border-color:var(--teal);
  box-shadow:0 6px 18px rgba(26,44,84,.08);
  transform:translateY(-1px);
}
.product-doc__icon{
  width:30px;height:30px;
  color:var(--teal);
  flex-shrink:0;
}
.product-doc__text{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.product-doc__title{font-weight:600;font-size:.98rem}
.product-doc__meta{font-size:.8rem;color:var(--text-soft)}
.product-doc__dl{width:20px;height:20px;color:var(--text-soft);flex-shrink:0}

/* Tablas de especificaciones (composición, dosis) en el detalle de producto */
.spec-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.spec-table{
  width:100%;
  border-collapse:collapse;
  font-size:.92rem;
  background:#fff;
  border:var(--rule);
  border-radius:8px;
  overflow:hidden;
  margin:.4rem 0 0;
}
.spec-table th,.spec-table td{
  text-align:left;
  padding:.55rem .85rem;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}
.spec-table thead th{
  background:var(--navy);
  color:#fff;
  font-family:var(--sans);
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.01em;
  line-height:1.2;
}
.spec-table tbody tr:last-child td{border-bottom:none}
.spec-table tbody tr:nth-child(even){background:rgba(26,44,84,.025)}
.spec-table__val{
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  color:var(--navy);
  font-weight:500;
}
.spec-table__num{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.spec-table--dosis{min-width:440px}
.product-detail__content h1{
  font-family:var(--serif);
  font-size:clamp(2rem, 4.5vw, 3rem);
  line-height:1.1;
  color:var(--navy);
  margin:.6rem 0 1rem;
}
.product-detail__content .product-card__tag--lg{
  margin-bottom:.4rem;
}
.product-detail__desc{
  font-size:1.05rem;
  line-height:1.6;
  color:var(--text);
  margin:0 0 1.5rem;
}
.product-detail__content .product-card__section{
  padding:1.25rem 0 0;
  border-top:var(--rule);
  margin-top:1.5rem;
}
.product-detail__content .product-card__label{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--yellow-dark);
  margin:1.2rem 0 .55rem;
}
.product-detail__content .product-card__label:first-child{margin-top:0}
.product-detail__content .product-card__list{
  margin:0 0 .85rem;
  padding-left:1.1rem;
}
.product-detail__content .product-card__list li{margin-bottom:.35rem}
.product-detail__content .product-card__dosis{
  background:#fff;
  border:var(--rule);
  border-radius:8px;
  padding:.9rem 1.1rem;
  margin:.4rem 0 0;
  font-size:.95rem;
  line-height:1.6;
}

/* CTAs at bottom of detail page */
.product-detail__cta{
  margin-top:2rem;
  padding-top:1.5rem;
  border-top:var(--rule);
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

/* ============================================================
   Override paper-back at end of ensayo papers — make it a clear,
   chunky button instead of a small text link. Higher specificity
   (.paper-body .paper-back) wins over the embedded styles inside
   each paper.
   ============================================================ */
.paper-body .paper-back{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.95rem;
  font-weight:600;
  color:#fff;
  background:var(--navy);
  padding:.75rem 1.25rem;
  border-radius:6px;
  margin-top:2rem;
  text-decoration:none;
  transition:background .2s, transform .2s;
  border:1.5px solid var(--navy);
}
.paper-body .paper-back:hover{
  background:var(--navy-light);
  border-color:var(--navy-light);
  color:#fff;
  transform:translateX(-2px);
}

/* ============================================================
   Ensayos page — compact cards + cultivo filter (v24)
   Smaller photos, tighter grid, filterable groups.
   ============================================================ */

/* Card ~20% smaller overall (235px -> 190px min width) so more fit per row.
   Photo is back to square (1/1) and shows the full image — shrinking the
   whole card instead of cropping the photo keeps names/text in the photo
   readable. */
.ensayos-grid{
  grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));
  gap:.9rem;
}

/* Photo: square again, shows full image (no vertical crop) */
.ensayo-card__img{
  aspect-ratio:1/1;
}

/* Tighter body */
.ensayo-card__body{padding:.7rem .75rem .75rem}
.ensayo-card__title{
  font-size:.9rem;
  margin-bottom:.2rem;
}
.ensayo-card__meta{
  font-size:.76rem;
  margin-bottom:.5rem;
}
.ensayo-card__products{margin-bottom:.55rem}
.ensayo-card__link.is-paper{
  padding:.45rem .85rem;
  font-size:.82rem;
  width:100%;
}

/* On phones: 2 columns instead of 1, so the page is ~half as tall.
   Cards get smaller but stay legible thanks to the compact layout. */
@media (max-width:560px){
  .ensayos-grid{
    grid-template-columns:1fr 1fr;
    gap:.7rem;
  }
  .ensayo-card__body{padding:.6rem .65rem .7rem}
  .ensayo-card__title{font-size:.86rem;line-height:1.2}
  .ensayo-card__meta{font-size:.72rem;margin-bottom:.45rem}
  .ensayo-card__link.is-paper{
    padding:.45rem .5rem;
    font-size:.76rem;
  }
  .ensayo-card__products{margin-bottom:.45rem}
  .ensayo-card__product-tag{font-size:.66rem;padding:.15rem .4rem}
}

/* Group spacing */
.ensayos-group{margin-bottom:2.5rem}
.ensayos-group > h3{
  font-size:1.35rem;
  color:var(--navy);
  margin-bottom:.9rem;
  padding-bottom:.5rem;
  border-bottom:2px solid var(--yellow);
  display:inline-block;
}
/* Hidden group when filtered out */
.ensayos-group[hidden]{display:none}

/* ---------- Tiers: cultivos intensivos vs extensivos ---------- */
.ensayos-tier{margin-bottom:3.75rem}
.ensayos-tier:last-child{margin-bottom:0}
.ensayos-tier[hidden]{display:none}
.ensayos-tier__title{
  font-size:clamp(1.5rem,3vw,2rem);
  color:var(--navy);
  margin:0 0 1.75rem;
  padding-left:.9rem;
  border-left:5px solid var(--teal);
  line-height:1.15;
}

/* ---------- Filter bar ---------- */
.ensayos-filter{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0 0 2rem;
  padding-bottom:1.25rem;
  border-bottom:var(--rule);
}
.ensayos-filter__btn{
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:600;
  color:var(--navy);
  background:#fff;
  border:1.5px solid var(--border);
  border-radius:999px;
  padding:.5rem 1rem;
  cursor:pointer;
  transition:all .18s ease;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  line-height:1;
}
.ensayos-filter__btn:hover{
  border-color:var(--navy);
}
.ensayos-filter__btn.is-active{
  background:var(--navy);
  color:#fff;
  border-color:var(--navy);
}
.ensayos-filter__count{
  font-size:.72rem;
  font-weight:700;
  background:rgba(26,44,84,.1);
  color:var(--navy);
  border-radius:999px;
  padding:.1rem .45rem;
  min-width:1.4em;
  text-align:center;
}
.ensayos-filter__btn.is-active .ensayos-filter__count{
  background:rgba(255,255,255,.25);
  color:#fff;
}
/* Botones de tipo (intensivo/extensivo): acento teal para distinguirlos de los de cultivo */
.ensayos-filter__btn--tier.is-active{
  background:var(--teal);
  border-color:var(--teal);
}
/* Separador entre los botones de tipo y los de cultivo */
.ensayos-filter__sep{
  width:1px;
  align-self:stretch;
  background:var(--border);
  margin:.15rem .4rem;
}

@media (max-width:560px){
  .ensayos-filter{
    gap:.4rem;
    /* Horizontal scroll on very small screens to avoid wrapping into many rows */
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:1rem;
    scrollbar-width:thin;
  }
  .ensayos-filter__btn{
    flex-shrink:0;
    font-size:.82rem;
    padding:.45rem .8rem;
  }
  .ensayos-filter__sep{display:none}
  .ensayos-tier__title{font-size:1.45rem}
}

/* Productos: filtro por uso */
.productos-filter{justify-content:center}
.productos-empty{
  text-align:center;
  color:var(--text-soft);
  font-size:.95rem;
  margin:1.5rem auto 0;
  max-width:40rem;
}
.productos-empty a{color:var(--teal);text-decoration:underline}
/* El atributo [hidden] debe vencer al display:flex de las tarjetas/secciones al filtrar */
.product-card[hidden], section[hidden]{display:none !important}

/* Píldora con la cantidad de ensayos detrás de cada número de proof-tile */
.proof-tile__number-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.6rem;
  margin:.2rem 0 .15rem;
  flex-wrap:wrap;
}
.proof-tile__number-row .proof-tile__number{margin:0}
.proof-tile__count{
  display:inline-flex;
  align-items:center;
  gap:.32rem;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--navy);
  background:rgba(26,44,84,.07);
  padding:.28rem .55rem;
  border-radius:999px;
  white-space:nowrap;
  flex:none;
  align-self:flex-end;
  margin-bottom:.35rem;
}
.proof-tile__count svg{width:13px;height:13px;opacity:.7;flex:none}
.proof-tile__count strong{font-weight:800}
