/* ============================================================================
   GRANJA BLAVA — Home (reconstrucción responsive desde Figma Dev Mode)
   Fuente: frame Home 40:136. Tokens en gb-tokens.css.
   ============================================================================ */

.gb-container{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.center{text-align:center;}
/* Evita el scroll lateral fantasma en móvil (drawer del menú fijo off-screen). clip (no hidden) para no romper position:sticky del ciclo ni el scroll nativo de Lenis */
html,body{overflow-x:clip;}

/* Tipografías utilitarias */
.h2{font-family:var(--font-display);color:var(--gb-marino);font-size:var(--fs-h2);
  line-height:.93;letter-spacing:var(--tracking-display);font-weight:400;max-width:20ch;}
.h2 b{font-weight:700;}
.h3{font-family:var(--font-display);color:var(--gb-marino);font-size:var(--fs-h3);
  line-height:.9;letter-spacing:var(--tracking-display);font-weight:700;}
.eyebrow{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:-.01em;font-size:var(--fs-eyebrow);color:var(--gb-marino);
  margin-bottom:var(--space-16);}
.eyebrow.center{margin-inline:auto;}

/* ---- Botones / pills ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);
  position:relative;overflow:hidden;isolation:isolate;
  border-radius:var(--radius-full);border:1.5px solid transparent;font-family:var(--font-body);
  font-weight:600;font-size:var(--fs-button);padding:.85em 2em;line-height:1;
  transition:transform .16s ease,color .32s ease,border-color .3s ease;}
/* relleno pop que crece desde la posición del cursor (--mx/--my/--r vía JS) */
.btn::before{content:"";position:absolute;z-index:-1;top:var(--my,50%);left:var(--mx,50%);
  width:calc(var(--r,150px)*2);height:calc(var(--r,150px)*2);
  margin-top:calc(var(--r,150px)*-1);margin-left:calc(var(--r,150px)*-1);
  border-radius:50%;background:var(--fill,var(--gb-marino));pointer-events:none;
  transform:scale(0);transform-origin:center;
  transition:transform .55s cubic-bezier(.22,1,.36,1);}
.btn:hover::before,.btn:focus-visible::before{transform:scale(1);}
.btn:active{transform:scale(.97);}
.btn--ghost{--fill:var(--gb-marino);background:transparent;color:var(--gb-marino);border-color:var(--gb-marino);}
.btn--ghost:hover{color:#fff;}
.btn--ghost-white{--fill:#fff;background:transparent;color:#fff;border-color:#fff;}
.btn--ghost-white:hover{color:var(--gb-marino);}
/* icono (img SVG) del botón ghost-white: blanco en default, marino (su color natural) al hover */
.btn--ghost-white .btn__arrow{filter:brightness(0) invert(1);transition:filter .3s ease;}
.btn--ghost-white:hover .btn__arrow{filter:none;}
.btn--amarillo{--fill:var(--gb-marino);background:var(--gb-amarillo);color:var(--gb-marino);border-color:var(--gb-amarillo);}
.btn--amarillo:hover{color:#fff;border-color:var(--gb-azul);}
@media (prefers-reduced-motion:reduce){.btn::before{transition:none;}}

/* ============================================================
   HEADER (sticky, transparente sobre hero → sólido al bajar)
   ============================================================ */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;
  transition:background-color .3s ease,box-shadow .3s ease,padding .3s ease;}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;
  padding-block:clamp(18px,2.2vw,30px);}
.site-header.is-solid{background:var(--gb-marino);box-shadow:0 6px 24px rgba(0,0,0,.16);}
.site-header.is-solid .site-header__inner{padding-block:14px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand__mark{height:clamp(38px,3.6vw,52px);width:auto;aspect-ratio:53.1/80;object-fit:contain;}
.brand__word{height:clamp(28px,2.8vw,40px);width:auto;aspect-ratio:132.773/68.272;object-fit:contain;}
.nav{display:flex;align-items:center;gap:clamp(20px,2.6vw,40px);}
.nav a{color:#fff;font-weight:500;font-size:1.0625rem;opacity:.94;transition:opacity .2s ease;}
.nav a:hover{opacity:1;text-decoration:underline;text-underline-offset:5px;}
.nav__toggle{display:none;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:88svh;display:flex;align-items:center;justify-content:center;
  text-align:center;color:#fff;overflow:hidden;
  padding:clamp(140px,20vh,240px) var(--gutter) clamp(120px,16vh,180px);}
.hero::before{content:'';position:absolute;inset:0;z-index:0;transform-origin:center;will-change:transform;
  transform:scale(var(--hz,1));
  background:linear-gradient(rgba(15,25,60,.22),rgba(15,25,60,.28)),
    url('img/hero.png') center/cover no-repeat;}
.hero__inner{position:relative;z-index:1;max-width:900px;}
.hero__title{font-size:var(--fs-display);line-height:.81;letter-spacing:var(--tracking-display);
  margin:0;text-shadow:0 2px 34px rgba(0,0,0,.18);}
.hero__title .lg{display:block;font-weight:300;}
.hero__title .xl{display:block;font-weight:800;}
.hero__lead{font-family:var(--font-body);font-size:var(--fs-lead);line-height:1.28;
  max-width:40ch;margin:clamp(22px,2.6vw,32px) auto 0;}
.hero__cta{margin-top:clamp(28px,3.4vw,40px);}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:clamp(28px,3.4vw,40px);}

/* ============================================================
   Secciones redondeadas que se solapan (patrón del prototipo)
   ============================================================ */
.section-round{position:relative;z-index:2;background:#fff;
  border-radius:var(--radius-md) var(--radius-md) 0 0;
  margin-top:clamp(-72px,-6vw,-40px);
  /* aire vertical único de TODA la web: cambia solo aquí para mantener consistencia */
  padding-block:clamp(84px,9vw,148px);
  box-shadow:1px -8px 40px rgba(0,0,0,.06);}
.section-round--soft{background:var(--gb-neutral-50);box-shadow:none;}

/* ============================================================
   INTRO + POP CARDS
   ============================================================ */
.intro .h2{margin-bottom:0;}

/* --- Coverflow autoplay (card central nítida; laterales detrás, escaladas y difuminadas) --- */
.coverflow{overflow:hidden;padding-block:clamp(48px,6vw,88px);}
/* Sello circular "¡VIVA LA LECHUGA VIVA!" estampado sobre la esquina sup-dcha del titular */
.hero__inner{position:relative;}
.viva-badge{position:absolute;top:clamp(-112px,-8.6vw,-52px);right:clamp(-128px,-9.5vw,-52px);
  width:clamp(160px,18vw,250px);z-index:4;pointer-events:none;}
.viva-badge img{display:block;width:100%;height:auto;}
@media (max-width:720px){.viva-badge{width:120px;top:-66px;right:-14px;}}
.coverflow__list{position:relative;list-style:none;margin-inline:auto;padding:0;
  max-width:var(--container);height:clamp(440px,32vw,480px);}
.pop-card{position:absolute;top:50%;left:50%;
  width:clamp(300px,54vw,760px);height:clamp(400px,29vw,440px);
  border-radius:12px;padding:clamp(24px,2.4vw,38px);
  display:flex;flex-direction:column;overflow:hidden;color:var(--gb-marino);cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.18);backface-visibility:hidden;
  transform:translate(-50%,-50%);
  transition:transform .66s cubic-bezier(.34,1.3,.42,1),opacity .5s ease,box-shadow .5s ease;}
.pop-card--salmon{background:var(--gb-salmon);}
.pop-card--verde{background:var(--gb-verde);}
.pop-card--azul{background:var(--gb-azul);}
.pop-card--amarillo{background:var(--gb-amarillo);}
.pop-card--navy{background:var(--gb-marino);color:var(--gb-azul);}
/* posiciones del coverflow */
.pop-card[data-pos="0"]{z-index:5;opacity:1;cursor:default;
  transform:translate(-50%,-50%) scale(1);box-shadow:0 22px 50px rgba(0,0,0,.28);}
/* laterales: nítidas; apenas asoman por detrás de la central */
.pop-card[data-pos="-1"]{z-index:4;opacity:1;
  transform:translate(calc(-50% - 20%),-50%) scale(.8);}
.pop-card[data-pos="1"]{z-index:4;opacity:1;
  transform:translate(calc(-50% + 20%),-50%) scale(.8);}
/* ±2: aparcadas DETRÁS de la central (ocultas) → entran/salen por detrás, sin fantasma lateral */
.pop-card[data-pos="-2"],
.pop-card[data-pos="2"]{z-index:3;opacity:0;pointer-events:none;
  transform:translate(-50%,-50%) scale(.7);}
.pop-card__title{font-family:var(--font-display);font-size:clamp(1.95rem,3.3vw,3.25rem);
  line-height:.9;font-weight:400;letter-spacing:var(--tracking-display);
  text-transform:uppercase;max-width:min(66%,15ch);position:relative;z-index:2;}
.pop-card__title b{font-weight:700;}
.pop-card__body{font-family:var(--font-body);font-size:1.02rem;line-height:1.24;
  margin-top:auto;max-width:min(52%,30ch);position:relative;z-index:2;}
/* foto volteada horizontalmente, anclada al borde derecho del frame */
.pop-card__photo{position:absolute;right:-8%;bottom:0;height:98%;width:auto;max-width:72%;
  object-fit:contain;object-position:right bottom;
  z-index:1;pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.16));}

/* ============================================================
   VARIEDADES
   ============================================================ */
.var-swipe{--inset:max(var(--gutter),calc((100% - var(--container))/2 + var(--gutter)));
  display:grid;grid-auto-flow:column;grid-auto-columns:min(72vw,300px);
  gap:clamp(16px,1.6vw,24px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-block:clamp(32px,4vw,56px);padding-inline:var(--inset) var(--gutter);
  scroll-padding-inline-start:var(--inset);scrollbar-width:none;}
.var-swipe::-webkit-scrollbar{display:none;}
/* cinta infinita (desktop): sin snap ni inset para que el bucle no dé saltos */
.var-swipe.is-marquee{scroll-snap-type:none;padding-inline:0;}

/* ============================================================================
   ESQUEMA DEL CICLO (home) — anillo + icono central que cambian con el scroll
   ============================================================================ */
/* Pinned + slot-machine: la infografía queda FIJA y a la derecha cambia solo el paso activo */
.cycle{position:relative;height:128vh;margin-block:clamp(44px,6vw,84px);color:var(--gb-marino);}
/* pin COMPACTO y CENTRADO: alto = contenido; se ancla centrado para que asomen un poco las secciones vecinas */
.cycle__pin{position:sticky;top:calc(50vh - 215px);display:grid;grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;column-gap:clamp(24px,5vw,72px);align-items:center;}
.cycle__head{grid-column:1/-1;margin-bottom:clamp(20px,3vw,44px);}
.cycle__visual{grid-column:1;grid-row:2;justify-self:center;display:flex;justify-content:center;}
.cycle__ring{position:relative;width:min(33vw,310px);aspect-ratio:1;color:var(--gb-marino);}
.cycle__ringsvg{position:absolute;inset:0;width:100%;height:100%;}
.cycle__icons{position:absolute;inset:24%;}
.cycle__icon{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  opacity:0;transform:scale(.88);transition:opacity .5s ease,transform .5s ease;}
.cycle__icon.is-active{opacity:1;transform:scale(1);}
.cycle__node{position:absolute;width:clamp(28px,2.6vw,36px);height:clamp(28px,2.6vw,36px);
  display:flex;align-items:center;justify-content:center;border-radius:50%;
  font-family:var(--font-display);font-weight:700;font-size:clamp(.9rem,1.1vw,1.05rem);
  background:var(--gb-white);color:var(--gb-marino);transform:translate(-50%,-50%);cursor:pointer;
  box-shadow:0 0 0 1.5px color-mix(in srgb,var(--gb-marino) 30%,transparent) inset;
  transition:background .4s ease,color .4s ease,box-shadow .4s ease,transform .4s ease;}
.cycle__node:hover{box-shadow:0 0 0 1.5px var(--gb-marino) inset;}
.cycle__node:focus-visible{outline:2px solid var(--gb-marino);outline-offset:3px;}
.cycle__node.is-active{background:var(--gb-marino);color:#fff;box-shadow:0 6px 16px rgba(31,42,99,.35);
  transform:translate(-50%,-50%) scale(1.15);}
/* colocados a 3%/97% para caer justo en la circunferencia (r=47) */
.cycle__node--0{top:3%;left:50%;}
.cycle__node--1{top:50%;left:97%;}
.cycle__node--2{top:97%;left:50%;}
.cycle__node--3{top:50%;left:3%;}
.cycle__steps{position:relative;grid-column:2;grid-row:2;list-style:none;margin:0;padding:0;min-height:clamp(200px,28vh,280px);}
/* cada paso ocupa el MISMO sitio; solo el activo es visible (efecto tragaperras) */
.cycle__step{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;max-width:46ch;
  opacity:0;transform:translateY(36px);pointer-events:none;
  transition:opacity .5s ease,transform .6s cubic-bezier(.22,1,.36,1);}
.cycle__step.is-prev{transform:translateY(-36px);}   /* el que ya pasó sale hacia arriba */
.cycle__step.is-active{opacity:1;transform:none;pointer-events:auto;}
.cycle__k{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--gb-azul);letter-spacing:.08em;}
.cycle__title{font-family:var(--font-display);font-size:clamp(1.6rem,2.6vw,2.4rem);color:var(--gb-marino);
  text-transform:uppercase;letter-spacing:var(--tracking-display);line-height:1;margin:.3em 0 .35em;}
.cycle__text{font-family:var(--font-body);font-size:var(--fs-lead);line-height:1.42;color:var(--gb-marino);}
@media (max-width:820px){
  .cycle{height:165vh;}
  .cycle__pin{grid-template-columns:1fr;grid-template-rows:none;row-gap:clamp(12px,3vh,22px);
    top:calc(env(safe-area-inset-top,0px) + 68px);justify-items:center;}
  .cycle__head{grid-column:auto;margin-bottom:clamp(8px,2vh,18px);}
  .cycle__visual,.cycle__steps{grid-column:auto;grid-row:auto;}
  .cycle__ring{width:min(46vw,190px);}
  .cycle__steps{width:100%;min-height:clamp(150px,24vh,220px);}
  .cycle__step{text-align:center;align-items:center;max-width:none;}
}
@media (prefers-reduced-motion:reduce){
  .cycle{height:auto;}
  .cycle__pin{position:static;min-height:0;}
  .cycle__steps{min-height:0;}
  .cycle__step{position:relative;inset:auto;opacity:1;transform:none;padding-block:22px;}
  .cycle__icon,.cycle__node,.cycle__step{transition:none;}
}

/* ============================================================================
   MICRO-ANIMACIONES (feedback V2 · "menos estático") — se activan con .is-in
   ============================================================================ */
/* 2 · Títulos display: revelado con máscara (sube desde un clip, no fade plano) */
.reveal-mask{clip-path:inset(0 0 108% 0);transform:translateY(.28em);
  transition:clip-path .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1);
  will-change:clip-path,transform;}
.reveal-mask.is-in{clip-path:inset(0 0 -12% 0);transform:none;}
/* versión premium por líneas: cada línea sube desde su propia máscara, con stagger */
.reveal-mask.is-split{clip-path:none;transform:none;transition:none;will-change:auto;}
.reveal-mask .rl{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em;}
.reveal-mask .rl__i{display:block;transform:translateY(110%);transition:transform .75s cubic-bezier(.22,1,.36,1);will-change:transform;}
.reveal-mask.is-in .rl__i{transform:none;}
.reveal-mask.is-in .rl:nth-child(2) .rl__i{transition-delay:.09s;}
.reveal-mask.is-in .rl:nth-child(3) .rl__i{transition-delay:.18s;}
.reveal-mask.is-in .rl:nth-child(4) .rl__i{transition-delay:.27s;}
.reveal-mask.is-in .rl:nth-child(5) .rl__i{transition-delay:.36s;}
/* 3 · Imágenes: visibles de inicio + zoom sutil ligado al scroll (donde el navegador lo soporta;
   si no, quedan estáticas y visibles). Los contenedores ya tienen overflow:hidden + object-fit:cover. */
/* zoom ligado al scroll: la variable --z la actualiza el JS según la posición en el viewport */
.img-zoom{transform:scale(var(--z,1));transform-origin:center;will-change:transform;}
/* 4 · Pop-cards "lechuga viva": la lechuga de la card central se balancea suave */
@keyframes gbSway{0%,100%{transform:rotate(-2.4deg);}50%{transform:rotate(2.4deg);}}
.pop-card[data-pos="0"] .pop-card__photo{animation:gbSway 5s ease-in-out infinite;transform-origin:82% 92%;}
.pop-card:hover .pop-card__photo{animation-duration:2.6s;}
/* 5 · Esquema del ciclo: el anillo se "ensambla" la primera vez que entra */
.cycle__ring{opacity:0;transform:rotate(-9deg) scale(.93);
  transition:opacity .7s ease,transform .95s cubic-bezier(.22,1,.36,1);}
.cycle.is-drawn .cycle__ring{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal-mask{clip-path:none!important;transform:none!important;transition:none;}
  .reveal-mask .rl__i{transform:none!important;transition:none;}
  .img-zoom,.hero::before{transform:none!important;}
  .pop-card__photo{animation:none!important;}
  .cycle__ring{opacity:1!important;transform:none!important;}
}
.var-card{scroll-snap-align:start;background:#fff;border-radius:var(--radius-sm);
  overflow:hidden;box-shadow:0 4px 5px rgba(0,0,0,.1);display:flex;flex-direction:column;
  cursor:pointer;transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease;
  will-change:transform;}
.var-card:hover{transform:translateY(-8px);box-shadow:0 18px 34px rgba(0,0,0,.16);}
.var-card__photo{aspect-ratio:395/326;background:var(--gb-neutral-100);overflow:hidden;}
.var-card__photo img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s cubic-bezier(.22,1,.36,1);}
/* zoom de imagen al hover retirado (petición Josan): con la foto con raíz molestaba */
@media (prefers-reduced-motion:reduce){
  .var-card,.var-card__photo img{transition:none;}
  .var-card:hover{transform:none;}
}
.var-card__photo--verde{background:var(--gb-verde);}
.var-card__photo--salmon{background:var(--gb-salmon);}
.var-card__photo--amarillo{background:var(--gb-amarillo);}
.var-card__photo--azul{background:var(--gb-azul);}
.var-card__name{font-family:var(--font-display);color:var(--gb-marino);
  font-size:var(--fs-h4);line-height:.9;letter-spacing:var(--tracking-display);
  text-transform:uppercase;font-weight:400;padding:clamp(16px,1.4vw,20px) clamp(16px,1.4vw,20px) 6px;}
.var-card__desc{font-family:var(--font-body);color:var(--gb-marino);font-size:.95rem;
  line-height:1.21;padding:0 clamp(16px,1.4vw,20px) clamp(18px,1.6vw,24px);}

/* ============================================================
   FILOSOFÍA / MÉTODO
   ============================================================ */
.method__title{margin-bottom:clamp(32px,4vw,54px);}
.method__feature{display:grid;grid-template-columns:1fr 1fr;gap:0;
  background:var(--gb-azul);border-radius:var(--radius-sm);overflow:hidden;
  padding:0;box-shadow:0 4px 12px rgba(0,0,0,.2);align-items:stretch;}
.method__heading{font-family:var(--font-display);color:var(--gb-marino);
  font-size:var(--fs-h1);line-height:.95;letter-spacing:var(--tracking-display);
  font-weight:700;text-transform:uppercase;}
.method__heading .reg{font-weight:400;}
.method__text{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);
  line-height:1.21;margin:clamp(20px,2vw,28px) 0;max-width:44ch;}
.method__media{position:relative;margin:0;border-radius:0;overflow:hidden;
  min-height:clamp(300px,26vw,440px);}
.method__media img{width:100%;height:100%;object-fit:cover;}

/* --- pastillas a sangre (home + blog): imagen pegada al borde de la pastilla --- */
.method__copy{padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;justify-content:center;}

/* --- Artículo: el HERO (masthead) queda sticky y por detrás; el bloque blanco
   (portada + cuerpo) se le superpone al hacer scroll, con esquinas redondeadas.
   Mismo patrón que las secciones redondeadas de la web. La cabecera NO se toca. --- */
.article__masthead{position:sticky;top:0;z-index:0;}
.article > .gb-container{position:relative;z-index:1;
  /* Solape fijo de 48px sobre el hero. El hero reserva ESE solape + un hueco visible
     dentro de su padding inferior (ver .article__head), de modo que el bloque blanco
     solo se mete en el padding (nunca en el texto): el título queda siempre visible,
     mida lo que mida (los títulos de artículo varían de longitud). */
  margin-top:-48px;padding-top:clamp(44px,5vw,68px);}
.article > .gb-container::before{content:'';position:absolute;z-index:-1;top:0;bottom:0;
  left:50%;transform:translateX(-50%);width:100vw;background:var(--gb-white);
  border-radius:var(--radius-md) var(--radius-md) 0 0;box-shadow:0 -12px 30px -16px rgba(0,0,0,.10);}
/* FAQ del articulo: reducir el aire gris superior (evita el bloque gris vacio antes de las preguntas) */
.page-article .pdp-faq{padding-top:clamp(40px,5vw,56px);}
.method__how{text-align:center;margin:clamp(56px,7vw,110px) auto clamp(40px,5vw,64px);}
.method__how .h3{max-width:none;}
.steps{list-style:none;margin:0 0 clamp(32px,5vw,72px);padding:0;display:grid;
  grid-template-columns:repeat(3,1fr);gap:clamp(28px,3vw,48px);}
.step__num{display:block;font-family:var(--font-display);color:var(--gb-marino);
  font-size:clamp(4rem,7vw,8.125rem);line-height:1;letter-spacing:var(--tracking-display);}
.step__title{font-family:var(--font-display);color:var(--gb-marino);font-size:var(--fs-h4);
  line-height:.9;letter-spacing:var(--tracking-display);text-transform:uppercase;
  font-weight:400;margin:clamp(12px,1.4vw,18px) 0 clamp(10px,1.2vw,16px);}
.step__text{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);line-height:1.21;}
/* reveal por fases (01 → 02 → 03) al entrar en pantalla */
.steps .step{opacity:0;transform:translateY(32px);
  transition:opacity .55s ease,transform .7s cubic-bezier(.34,1.3,.42,1);}
.steps .step:nth-child(2){transition-delay:.15s;}
.steps .step:nth-child(3){transition-delay:.3s;}
.steps.is-in .step{opacity:1;transform:translateY(0);}
.step__num{transform-origin:left center;}
.steps .step__num{transform:scale(.55);transition:transform .7s cubic-bezier(.34,1.3,.42,1);}
.steps .step:nth-child(1) .step__num{transition-delay:.12s;}
.steps .step:nth-child(2) .step__num{transition-delay:.27s;}
.steps .step:nth-child(3) .step__num{transition-delay:.42s;}
.steps.is-in .step__num{transform:scale(1);}
@media (prefers-reduced-motion:reduce){
  .steps .step,.steps .step__num{opacity:1!important;transform:none!important;transition:none;}
}

/* ============================================================
   DEL AGUA AL PLATO
   ============================================================ */
.agua{position:relative;overflow:hidden;}  /* section-round aplica padding-block simétrico → texto centrado */
.agua__inner{position:relative;z-index:2;
  padding-left:max(var(--gutter),calc((100% - var(--container))/2 + var(--gutter)));
  padding-right:calc(var(--gutter) + .4vw);}
.agua__title{margin:0;font-family:var(--font-display);color:var(--gb-marino);
  font-size:clamp(3.2rem,9.1vw,7.8rem);line-height:.84;
  letter-spacing:var(--tracking-display);font-weight:400;}
.agua__l1{display:block;font-weight:400;white-space:nowrap;}   /* Book, una línea */
.agua__l2{display:block;font-weight:300;}   /* Light — más ligero */
.agua .azul{color:var(--gb-azul);}
.agua__glyph{display:inline-block;width:auto;vertical-align:-.05em;margin:0 .1em;object-fit:contain;}
.agua__glyph--col{height:.66em;aspect-ratio:129/115;}
.agua__glyph--hojas{height:.82em;aspect-ratio:112/137;vertical-align:.06em;}
.agua__photo{position:absolute;right:0;bottom:0;width:min(46vw,660px);
  transform:scaleX(-1);z-index:1;pointer-events:none;}

/* --- Reveal editorial (líneas suben · glifos pop · foto sube) --- */
.agua__l1,.agua__l2{opacity:0;transform:translateY(38px);
  transition:opacity .6s ease,transform .85s cubic-bezier(.22,1,.36,1);}
.agua__l2{transition-delay:.12s;}
.agua.is-in .agua__l1,.agua.is-in .agua__l2{opacity:1;transform:translateY(0);}
.agua__glyph{opacity:0;transform:scale(.2);
  transition:opacity .4s ease,transform .7s cubic-bezier(.34,1.3,.42,1);}
.agua__glyph--col{transition-delay:.42s;}
.agua__glyph--hojas{transition-delay:.56s;}
.agua.is-in .agua__glyph{opacity:1;transform:scale(1);}
.agua__photo{opacity:0;transform:scaleX(-1) translateY(46px);
  transition:opacity .8s ease,transform .95s cubic-bezier(.22,1,.36,1);transition-delay:.18s;}
.agua.is-in .agua__photo{opacity:1;transform:scaleX(-1) translateY(0);}

@media (prefers-reduced-motion:reduce){
  .agua__l1,.agua__l2,.agua__glyph{opacity:1!important;transform:none!important;transition:none;}
  .agua__photo{opacity:1!important;transform:scaleX(-1)!important;transition:none;}
}
@media (max-width:820px){
  .agua{overflow:visible;padding-bottom:clamp(40px,8vw,64px);}
  .agua__inner{min-height:0;padding-inline:var(--gutter);padding-bottom:clamp(18px,4vw,28px);}
  .agua__l1{white-space:normal;}
  .agua__photo{position:static;width:min(84%,420px);margin:clamp(16px,4vw,28px) 0 0 auto;}
}

/* ============================================================
   CONTACTO
   ============================================================ */
.contact__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);align-items:start;}
.contact__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h1);line-height:.9;letter-spacing:var(--tracking-display);text-transform:uppercase;max-width:14ch;}
.contact__title b{font-weight:700;}
.contact__form{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,34px);}
.field{font-family:var(--font-body);font-size:1.15rem;color:var(--gb-marino);
  width:100%;background:transparent;border:0;outline:none;}
input.field{border-bottom:1px solid var(--gb-marino);padding:0 0 10px;}
input.field:focus{border-color:var(--gb-marino-deep);}
.field::placeholder{color:var(--gb-marino);opacity:.5;}
.field--area{border:1px solid var(--gb-marino);border-radius:var(--radius-md);
  padding:14px 16px;resize:vertical;min-height:130px;line-height:1.4;}
.contact__form .btn{align-self:flex-start;}

/* ============================================================
   FOOTER
   ============================================================ */
/* Footer con efecto parallax: fijo al fondo; el contenido se desliza y lo revela */
.site-footer{background:var(--gb-marino);color:#fff;border-radius:0;
  position:fixed;left:0;right:0;bottom:0;z-index:1;
  padding-block:clamp(48px,5vw,64px) clamp(28px,3vw,40px);}
main{position:relative;z-index:2;background:var(--gb-white);
  box-shadow:0 22px 42px -8px rgba(0,0,0,.28);}
@media (prefers-reduced-motion:reduce){
  .site-footer{position:relative;z-index:auto;}
  main{margin-bottom:0!important;box-shadow:none;}
}
.footer__top{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:clamp(28px,3vw,48px);
  padding-bottom:clamp(32px,4vw,54px);}
.footer__logo{display:flex;align-items:center;gap:12px;margin-bottom:20px;}
.footer__mark{height:52px;width:auto;aspect-ratio:53.1/80;object-fit:contain;}
.footer__word{height:40px;width:auto;aspect-ratio:132.773/68.272;object-fit:contain;}
.footer__tagline{font-family:var(--font-body);font-size:1.05rem;line-height:1.21;max-width:34ch;}
.footer__heading{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:1.15rem;letter-spacing:-.01em;margin:0 0 16px;}
.footer__col{display:flex;flex-direction:column;gap:10px;}
.footer__col a{font-family:var(--font-body);font-size:.95rem;opacity:.92;}
.footer__col a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px;}
/* ===== Hover "roll de texto" (acento verde lima) — menú + footer ===== */
.nav a,.footer__col a,.footer__legal a{position:relative;display:inline-block;
  overflow:hidden;line-height:1.32;text-decoration:none;}
.nav a > span,.footer__col a > span,.footer__legal a > span{display:block;
  transition:transform .4s cubic-bezier(.22,1,.36,1);}
.nav a::after,.footer__col a::after,.footer__legal a::after{content:attr(data-text);
  position:absolute;left:0;top:0;color:var(--gb-verde);transform:translateY(115%);
  transition:transform .4s cubic-bezier(.22,1,.36,1);}
.nav a:hover > span,.footer__col a:hover > span,.footer__legal a:hover > span{transform:translateY(-115%);}
.nav a:hover::after,.footer__col a:hover::after,.footer__legal a:hover::after{transform:translateY(0);}
.nav a:hover,.footer__col a:hover,.footer__legal a:hover{text-decoration:none;}
/* página activa del menú: se queda con el acento verde */
.nav a[aria-current="page"]{opacity:1;}
.nav a[aria-current="page"] > span{color:var(--gb-verde);}
@media (prefers-reduced-motion:reduce){
  .nav a > span,.footer__col a > span,.footer__legal a > span,
  .nav a::after,.footer__col a::after,.footer__legal a::after{transition:none;transform:none;}
}
.footer__news{gap:12px;}
.footer__newstext{font-family:var(--font-body);font-size:.95rem;line-height:1.3;opacity:.92;max-width:30ch;}
.footer__subscribe{display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.5);
  padding-bottom:8px;max-width:320px;}
.footer__subscribe input{flex:1;background:transparent;border:0;color:#fff;outline:none;
  font-family:var(--font-body);font-size:.95rem;}
.footer__subscribe input::placeholder{color:rgba(255,255,255,.6);}
.footer__subscribe button{width:29px;height:29px;border:0;border-radius:var(--radius-md);
  background:#fff;color:var(--gb-marino);font-size:1rem;line-height:1;flex:none;cursor:pointer;
  transition:background-color .25s ease,transform .2s ease;}
.footer__subscribe button:hover{background:var(--gb-verde);transform:translateX(2px);}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding-top:clamp(16px,2vw,24px);border-top:1px solid rgba(255,255,255,.3);
  font-family:var(--font-body);font-size:.9rem;}
.footer__bottom p{opacity:.7;}
.footer__legal{display:flex;gap:22px;}
.footer__legal a{opacity:.7;}
.footer__legal a:hover{opacity:1;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .method__feature{grid-template-columns:1fr;}
  .method__media{aspect-ratio:4/3;min-height:0;}
  .steps{grid-template-columns:1fr;gap:clamp(24px,5vw,40px);}
  .contact__inner{grid-template-columns:1fr;}
  .footer__top{grid-template-columns:1fr 1fr;}
  .footer__brand{grid-column:1/-1;}
}
@media (max-width:760px){
  /* CERRADO = display:none → el drawer NO existe off-screen (Android Chrome no lo cuenta como scroll).
     ABIERTO = display:flex dentro del viewport (right:0), con fade. Sin translateX (esa era la causa del scroll lateral). */
  .nav{position:fixed;inset:0 0 0 auto;width:min(82vw,320px);flex-direction:column;
    align-items:flex-start;justify-content:center;gap:28px;background:var(--gb-marino);
    padding:40px;display:none;}
  .nav.is-open{display:flex;box-shadow:-20px 0 60px rgba(0,0,0,.3);animation:navIn .26s ease both;}
  @keyframes navIn{from{opacity:0;}to{opacity:1;}}
  .nav a{font-size:1.4rem;opacity:1;}
  .nav__toggle{display:inline-flex;flex-direction:column;gap:5px;background:none;border:0;padding:8px;z-index:60;}
  .nav__toggle span{width:26px;height:2px;background:#fff;display:block;transition:transform .3s,opacity .3s;}
  .nav__toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav__toggle.is-open span:nth-child(2){opacity:0;}
  .nav__toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  /* X visible sobre el drawer marino, también en páginas con header claro */
  .site-header .nav__toggle.is-open span{background:#fff;}
}
@media (max-width:560px){
  .footer__top{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;align-items:flex-start;}
}

/* ============================================================================
   REVEAL genérico (páginas internas)
   ============================================================================ */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .6s ease,transform .8s cubic-bezier(.22,1,.36,1);}
.reveal.is-in{opacity:1;transform:none;}
.reveal-stagger > *{opacity:0;transform:translateY(28px);transition:opacity .55s ease,transform .75s cubic-bezier(.22,1,.36,1);}
.reveal-stagger.is-in > *{opacity:1;transform:none;}
.reveal-stagger.is-in > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.is-in > *:nth-child(3){transition-delay:.18s;}
.reveal-stagger.is-in > *:nth-child(4){transition-delay:.27s;}
@media (prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{opacity:1!important;transform:none!important;transition:none;}}

/* Botón sólido (CTA) */
.btn--solid{--fill:var(--gb-marino-deep);background:var(--gb-marino);color:#fff;border-color:var(--gb-marino);}
.btn--solid:hover{color:#fff;}
.btn__arrow{height:.95em;width:auto;aspect-ratio:1/1;object-fit:contain;}
.eyebrow--light{color:#fff;}
.q-lead{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-lead);
  line-height:1.24;max-width:72ch;margin-top:var(--space-20);opacity:.9;}

/* ============================================================================
   QUIÉNES SOMOS
   ============================================================================ */
/* Hero editorial */
.q-hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;
  padding:clamp(150px,20vh,230px) 0 clamp(70px,10vh,120px);}
.q-hero > .gb-container{width:100%;position:relative;z-index:1;}
/* capa de fondo que hace zoom al scroll (--hz vía JS) — compartida por los 3 heros de página */
.q-hero::before,.cat-hero::before{content:'';position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  transform:scale(var(--hz,1));transform-origin:center;will-change:transform;}
.q-hero::before{background-image:linear-gradient(rgba(15,25,60,.26),rgba(15,25,60,.36)),url('img/q-portada.jpg');}
.cat-hero::before{background-image:linear-gradient(rgba(15,25,60,.30),rgba(15,25,60,.46)),url('img/hero-producto.jpg');}
@media (prefers-reduced-motion:reduce){.q-hero::before,.cat-hero::before{transform:none;}}
.q-hero__inner{max-width:62ch;}
.q-hero__title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:.93;
  letter-spacing:var(--tracking-display);font-weight:400;margin:var(--space-16) 0 0;text-shadow:0 2px 24px rgba(0,0,0,.18);}
.q-hero__title b{font-weight:700;}
.q-hero__lead{font-family:var(--font-body);font-size:var(--fs-body);line-height:1.34;
  max-width:70ch;margin-top:clamp(20px,2.4vw,30px);opacity:.94;}

/* Nuestra historia (bloque azul) */
.q-historia{background:var(--gb-azul);}
.q-historia__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,60px);align-items:center;}
.q-historia .h2{margin-bottom:clamp(18px,2vw,26px);max-width:none;}
.q-historia__p{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);line-height:1.24;margin-bottom:16px;max-width:58ch;}
.q-historia__media{margin:0;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:554/520;box-shadow:0 8px 24px rgba(0,0,0,.14);}
.q-historia__media img{width:100%;height:100%;object-fit:cover;}

/* Cómo cultivamos (4 pasos) */
.q-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.4vw,18px);margin-top:clamp(36px,4.5vw,60px);}
.q-flow__card{background-color:var(--accent,var(--gb-neutral-50));border-radius:var(--radius-sm);padding:clamp(22px,2vw,28px);
  display:flex;flex-direction:column;gap:8px;min-height:210px;}
.q-flow__num{font-family:var(--font-display);color:var(--gb-marino);font-size:clamp(2.6rem,4vw,4rem);line-height:.91;opacity:.25;}
.q-flow__title{font-family:var(--font-display);color:var(--gb-marino);font-size:var(--fs-h4);line-height:.9;
  text-transform:uppercase;font-weight:400;letter-spacing:var(--tracking-display);}
.q-flow__desc{font-family:var(--font-body);color:var(--gb-marino);font-size:.95rem;line-height:1.3;margin-top:auto;}
/* Hover → foto real de cada elemento de la acuaponía (petición cliente V2) */
.q-flow__card{position:relative;overflow:hidden;isolation:isolate;transition:transform .4s ease, box-shadow .4s ease;}
.q-flow__num,.q-flow__title,.q-flow__desc{position:relative;z-index:1;transition:color .4s ease;}
.q-flow__photo{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;
  opacity:0;transform:scale(1.08);transition:opacity .55s ease, transform .7s ease;pointer-events:none;}
.q-flow__photo::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(18,28,70,.20) 0%, rgba(18,28,70,.40) 52%, rgba(18,28,70,.72) 100%);}
.q-flow__card:hover{transform:translateY(-4px);box-shadow:0 16px 30px -16px rgba(15,27,61,.5);}
.q-flow__card:hover .q-flow__photo{opacity:1;transform:scale(1);}
.q-flow__card:hover .q-flow__num{color:#fff;opacity:.85;}
.q-flow__card:hover .q-flow__title,.q-flow__card:hover .q-flow__desc{color:#fff;text-shadow:0 1px 10px rgba(8,14,40,.6);}
@media (prefers-reduced-motion:reduce){
  .q-flow__card,.q-flow__photo{transition:opacity .2s ease;}
  .q-flow__card:hover{transform:none;}
  .q-flow__photo{transform:none;}
  .q-flow__card:hover .q-flow__photo{transform:none;}
}

/* Acuaponía vs hidroponía (tabla) */
.q-vs__title{max-width:none;margin-inline:auto;}
.q-vs__lead{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-lead);line-height:1.24;
  margin:clamp(24px,3vw,42px) 0 clamp(20px,2vw,30px);}
.q-vs__lead b{font-weight:700;}
.q-table{border:1px solid var(--gb-marino);border-radius:var(--radius-sm);overflow:hidden;
  display:grid;grid-template-columns:1.1fr 1.3fr 1.1fr;color:var(--gb-marino);}
.q-table__row{display:contents;}
.q-table__cell{padding:15px 22px;border-bottom:1px solid var(--gb-marino);font-family:var(--font-body);
  font-weight:600;font-size:1.0625rem;line-height:1.2;display:flex;align-items:center;}
.q-table__row--last .q-table__cell{border-bottom:0;}
.q-table__attr{background:#fff;color:rgba(31,42,99,.6);}
.q-table__cell--acua{background:rgba(196,252,139,.5);}
.q-table__cell--hidro{background:#e8e8e8;}
.q-table__row--head .q-table__cell{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:1.1rem;letter-spacing:-.01em;}
.q-table__row--head .q-table__cell--acua{background:var(--gb-verde);color:var(--gb-marino);}
.q-table__row--head .q-table__cell--hidro{background:rgba(179,179,179,.55);color:var(--gb-marino);}
.q-table__row--head .q-table__cell:first-child{background:transparent;border-bottom-color:var(--gb-marino);}

/* Nuestros valores (yellow) */
.q-valores{background:var(--gb-amarillo);}
.q-valores__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px);
  margin:clamp(36px,4vw,56px) 0 clamp(30px,4vw,46px);align-items:stretch;}
.q-valor{background:#fff;border-radius:var(--radius-sm);padding:clamp(24px,2.4vw,32px);
  display:flex;flex-direction:column;justify-content:center;gap:clamp(12px,1.5vw,18px);
  box-shadow:0 4px 8px rgba(0,0,0,.12);min-height:clamp(360px,26vw,420px);}
.q-valor__icon{height:clamp(58px,5vw,88px);width:auto;align-self:flex-start;object-fit:contain;object-position:left center;}
.q-valor__title{font-family:var(--font-display);color:var(--gb-marino);font-size:clamp(1.7rem,2.15vw,2.35rem);
  line-height:.92;text-transform:uppercase;font-weight:700;letter-spacing:var(--tracking-display);
  margin-top:0;margin-bottom:10px;max-width:15ch;}
.q-valor__icon--prox{aspect-ratio:81.792/78.384;}
.q-valor__icon--vivo{aspect-ratio:975.8/1200;}
.q-valor__icon--quim{aspect-ratio:90.312/82.644;}
.q-valor__icon--efic{aspect-ratio:81.216/106.726;}
.q-valor__icon--conf{aspect-ratio:90.469/57.984;}
.q-valor__desc{font-family:var(--font-body);color:var(--gb-marino);font-size:1.0625rem;line-height:1.22;}

/* Nuestro equipo */
.q-equipo__title{max-width:none;}
.q-equipo__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.4vw,32px);margin-top:clamp(36px,4vw,56px);}
.q-persona__photo{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:clamp(14px,1.4vw,18px);}
.q-persona__photo--amarillo{background:var(--gb-amarillo);}
.q-persona__photo--azul{background:var(--gb-azul);}
.q-persona__photo--salmon{background:var(--gb-salmon);}
.q-persona__photo{display:flex;align-items:flex-end;justify-content:center;}
.q-persona__photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom;}
.q-persona__name{font-family:var(--font-display);color:var(--gb-marino);font-size:var(--fs-h4);line-height:.9;
  text-transform:uppercase;font-weight:400;letter-spacing:var(--tracking-display);}
.q-persona__role{font-family:var(--font-display);color:var(--gb-marino);font-weight:800;text-transform:uppercase;
  font-size:1.05rem;opacity:.65;margin:6px 0 12px;}
.q-persona__bio{font-family:var(--font-body);color:var(--gb-marino);font-size:1.0625rem;line-height:1.22;}

/* FAQ acordeón */
.q-faq__title{max-width:none;margin-bottom:clamp(36px,4vw,56px);}
.faq{border-top:1px solid rgba(31,42,99,.25);}
.faq__item{border-bottom:1px solid rgba(31,42,99,.25);}
.faq__q{width:100%;background:none;border:0;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:clamp(18px,2vw,24px) 0;cursor:pointer;text-align:left;
  font-family:var(--font-display);color:var(--gb-marino);font-size:clamp(1.35rem,2.2vw,1.875rem);
  line-height:1.05;letter-spacing:var(--tracking-display);font-weight:400;}
.faq__icon{position:relative;width:22px;height:22px;flex:none;}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;background:var(--gb-marino);border-radius:2px;transition:transform .42s cubic-bezier(.22,1,.36,1);}
.faq__icon::before{left:0;top:50%;width:100%;height:2px;transform:translateY(-50%);}
.faq__icon::after{top:0;left:50%;height:100%;width:2px;transform:translateX(-50%);}
.faq__item.is-open .faq__icon::after{transform:translateX(-50%) scaleY(0);}
/* apertura fluida: animamos la altura real del contenido (grid 0fr→1fr) en vez de un max-height fijo */
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.22,1,.36,1);}
.faq__item.is-open .faq__a{grid-template-rows:1fr;}
.faq__a p{overflow:hidden;min-height:0;font-family:var(--font-body);color:var(--gb-marino);font-size:1.0625rem;line-height:1.4;
  opacity:0;transform:translateY(-4px);transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1),padding-bottom .45s cubic-bezier(.22,1,.36,1);
  padding-bottom:0;max-width:82ch;}
.faq__item.is-open .faq__a p{opacity:.82;transform:none;transition-delay:.08s;padding-bottom:clamp(18px,2vw,24px);}
@media (prefers-reduced-motion:reduce){
  .faq__a{transition:none;}
  .faq__a p{transition:none;}}

/* Visita el invernadero (CTA) */
.q-visita{background:var(--gb-amarillo);}
.q-visita__inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,60px);flex-wrap:wrap;}
.q-visita__text{max-width:60ch;}
.q-visita .h2{margin:var(--space-16) 0;max-width:none;}
.q-visita__p{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);line-height:1.22;opacity:.85;max-width:52ch;}

/* Responsive Quiénes */
@media (max-width:900px){
  .q-flow{grid-template-columns:repeat(2,1fr);}
  .q-valores__grid,.q-equipo__grid,.q-historia__grid{grid-template-columns:1fr;}
  .q-visita__inner{flex-direction:column;align-items:flex-start;}
}
@media (max-width:560px){
  .q-flow{grid-template-columns:1fr;}
  .q-table{grid-template-columns:1fr;}
  .q-table__row{display:grid;grid-template-columns:1fr;border-bottom:1px solid var(--gb-marino);}
  .q-table__row--last{border-bottom:0;}
  .q-table__cell{border-bottom:1px solid rgba(31,42,99,.2);}
  .q-table__row--head{display:none;}
  .q-table__attr{font-family:var(--font-display);font-weight:800;text-transform:uppercase;color:var(--gb-marino);opacity:1;}
}

.q-cultivo__cta{margin-top:clamp(32px,4vw,52px);}

/* ---- Cómo cultivamos: acento por card (--accent) + iluminación al scroll ---- */
/* cards informativas, sin interacción → sin hover */
.q-flow__card:nth-child(1){--accent:var(--gb-salmon);}
.q-flow__card:nth-child(2){--accent:var(--gb-azul);}
.q-flow__card:nth-child(3){--accent:var(--gb-verde);}
.q-flow__card:nth-child(4){--accent:var(--gb-amarillo);}
.reveal-flow .q-flow__card{opacity:0;}
.reveal-flow.is-in .q-flow__card{animation:flowIn .8s cubic-bezier(.34,1.3,.42,1) both;}
.reveal-flow.is-in .q-flow__card:nth-child(1){animation-delay:.05s;}
.reveal-flow.is-in .q-flow__card:nth-child(2){animation-delay:.2s;}
.reveal-flow.is-in .q-flow__card:nth-child(3){animation-delay:.35s;}
.reveal-flow.is-in .q-flow__card:nth-child(4){animation-delay:.5s;}
@keyframes flowIn{
  0%{opacity:0;transform:translateY(56px) scale(.96);}
  62%{opacity:1;transform:translateY(-9px) scale(1.02);}
  100%{opacity:1;transform:translateY(0) scale(1);}
}
@media (prefers-reduced-motion:reduce){.reveal-flow .q-flow__card{opacity:1;animation:none;}}

/* ---- Reveal "pop" más exagerado (stagger) ---- */
.reveal-stagger--pop > *{opacity:0;transform:translateY(60px) scale(.92);
  transition:opacity .5s ease,transform .8s cubic-bezier(.34,1.3,.42,1);}
.reveal-stagger--pop.is-in > *{opacity:1;transform:none;}
.reveal-stagger--pop.is-in > *:nth-child(2){transition-delay:.13s;}
.reveal-stagger--pop.is-in > *:nth-child(3){transition-delay:.26s;}
.reveal-stagger--pop.is-in > *:nth-child(4){transition-delay:.39s;}
@media (prefers-reduced-motion:reduce){.reveal-stagger--pop>*{opacity:1!important;transform:none!important;transition:none;}}

/* ---- Coverflow de valores (3 cards, autoplay) ---- */
.q-vcf{overflow:hidden;padding-block:clamp(30px,4vw,54px);}
.q-vcf__list{position:relative;max-width:var(--container);margin-inline:auto;height:clamp(430px,34vw,470px);}
.q-vcf__list .q-valor{position:absolute;top:50%;left:50%;
  width:clamp(290px,32vw,420px);height:clamp(400px,32vw,440px);min-height:0;cursor:pointer;
  transform:translate(-50%,-50%);
  transition:transform .6s cubic-bezier(.34,1.3,.42,1),opacity .5s ease,box-shadow .5s ease;}
.q-vcf__list .q-valor[data-pos="0"]{z-index:3;opacity:1;cursor:default;
  transform:translate(-50%,-50%) scale(1);box-shadow:0 22px 48px rgba(0,0,0,.22);}
.q-vcf__list .q-valor[data-pos="-1"]{z-index:2;opacity:1;transform:translate(calc(-50% - 60%),-50%) scale(.8);}
.q-vcf__list .q-valor[data-pos="1"]{z-index:2;opacity:1;transform:translate(calc(-50% + 60%),-50%) scale(.8);}
/* 5 valores: las ±2 esperan ocultas detras del centro (entran/salen por ahi, sin fantasma) */
.q-vcf__list .q-valor[data-pos="-2"],
.q-vcf__list .q-valor[data-pos="2"]{z-index:1;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.7);}
.q-vcf__list .q-valor.cf-jump{opacity:0!important;transition:none!important;}
@media (max-width:900px){
  .q-vcf{overflow:visible;}
  .q-vcf__list .q-valor{width:min(300px,86vw);}
  .q-vcf__list .q-valor[data-pos="-1"]{transform:translate(calc(-50% - 15%),-50%) scale(.8);}
  .q-vcf__list .q-valor[data-pos="1"]{transform:translate(calc(-50% + 15%),-50%) scale(.8);}
}

/* Controles de coverflow (dots + pausa) — valores y pop-cards de la home.
   Inyectados por JS. Color base marino; los coverflows sobre fondo oscuro
   añaden .cf-controls--ondark para invertir. */
.cf-controls{display:flex;align-items:center;justify-content:center;gap:11px;
  margin-top:calc(20px - clamp(48px,6vw,88px));}
/* el coverflow de valores tiene menos holgura interna: se sube el mismo aire que la home */
.q-vcf + .cf-controls{margin-top:calc(70px - clamp(48px,6vw,88px));}
/* aire entre los dots y el botón/CTA que va debajo, igual en home y quiénes */
.cf-controls + .center{margin-top:clamp(30px,3.4vw,48px);}
.cf-dots{display:flex;align-items:center;gap:9px;}
.cf-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:color-mix(in srgb,var(--gb-marino) 26%,transparent);
  transition:transform .25s ease,background .25s ease;}
.cf-dot:hover{background:color-mix(in srgb,var(--gb-marino) 50%,transparent);}
.cf-dot.is-active{background:var(--gb-marino);transform:scale(1.4);}
.cf-toggle{width:34px;height:34px;padding:0;border-radius:50%;cursor:pointer;
  border:1.5px solid color-mix(in srgb,var(--gb-marino) 38%,transparent);background:#fff;color:var(--gb-marino);
  display:flex;align-items:center;justify-content:center;transition:background .25s ease,border-color .25s ease;}
.cf-toggle:hover{background:var(--gb-neutral-50);border-color:var(--gb-marino);}
.cf-toggle svg{width:13px;height:13px;display:block;fill:currentColor;}
.cf-controls--ondark .cf-dot{background:rgba(255,255,255,.35);}
.cf-controls--ondark .cf-dot:hover{background:rgba(255,255,255,.6);}
.cf-controls--ondark .cf-dot.is-active{background:#fff;}
.cf-controls--ondark .cf-toggle{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.cf-controls--ondark .cf-toggle:hover{background:rgba(255,255,255,.12);border-color:#fff;}
@media (prefers-reduced-motion:reduce){
  .cf-dot,.cf-toggle{transition:none;}
}

/* ============================================================================
   HEADER — variante clara (logo/nav marino sobre fondo claro; blanco al scroll)
   ============================================================================ */
.brand__mark--onlight,.brand__word--onlight{display:none;}
.site-header--light .brand__mark--onlight,.site-header--light .brand__word--onlight{display:block;}
.site-header--light .brand__mark--ondark,.site-header--light .brand__word--ondark{display:none;}
.site-header--light.is-solid .brand__mark--onlight,.site-header--light.is-solid .brand__word--onlight{display:none;}
.site-header--light.is-solid .brand__mark--ondark,.site-header--light.is-solid .brand__word--ondark{display:block;}
.site-header--light .nav a{color:var(--gb-marino);}
.site-header--light.is-solid .nav a{color:#fff;}
.site-header--light .nav.is-open a{color:#fff;}
.site-header--light .nav__toggle span{background:var(--gb-marino);}
.site-header--light.is-solid .nav__toggle span{background:#fff;}

/* ============================================================================
   CATÁLOGO
   ============================================================================ */
/* Hero (fondo claro) */
/* Hero unificado con el de Quiénes: foto a sangre + overlay + texto blanco, misma altura */
.cat-hero{position:relative;min-height:88svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;
  padding:clamp(150px,20vh,230px) 0 clamp(70px,10vh,120px);}
.cat-hero > .gb-container{width:100%;position:relative;z-index:1;}
.cat-hero__title{font-family:var(--font-display);color:#fff;font-weight:400;
  font-size:var(--fs-h2);line-height:.93;letter-spacing:var(--tracking-display);
  text-transform:none;max-width:22ch;margin:var(--space-16) 0 clamp(18px,2vw,26px);text-shadow:0 2px 24px rgba(0,0,0,.22);}
.cat-hero__title b{font-weight:700;}
.cat-hero__lead{font-family:var(--font-body);color:#fff;font-size:var(--fs-lead);
  line-height:1.24;max-width:62ch;opacity:.94;}
.cat-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:clamp(24px,3vw,36px);}

/* Filtros */
.cat-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:clamp(36px,4vw,56px);}
.cat-filter{font-family:var(--font-body);font-weight:600;font-size:var(--fs-button);
  padding:11px 26px;border-radius:var(--radius-full);border:0;cursor:pointer;
  background:var(--gb-neutral-50);color:var(--gb-marino);transition:background-color .25s ease,color .25s ease;
  /* color por categoría (hover / seleccionada); "Todos" = marino por defecto */
  --chip-bg:var(--gb-marino);--chip-text:#fff;}
.cat-filter[data-filter="lechugas"]{--chip-bg:var(--gb-amarillo);--chip-text:var(--gb-marino);}
.cat-filter[data-filter="aromaticas"]{--chip-bg:var(--gb-salmon);--chip-text:var(--gb-marino);}
.cat-filter:hover,.cat-filter.is-active{background:var(--chip-bg);color:var(--chip-text);}

/* Grid de productos (reutiliza .var-card) */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.4vw,20px);}
.cat-grid .var-card{scroll-snap-align:unset;}
.cat-grid a.var-card{text-decoration:none;color:inherit;}
.cat-grid .var-card[hidden]{display:none;}
/* Card de variedad: recorte nítido (PNG transparente) + sombra REAL (imagen sobre blanco en
   mix-blend-mode:multiply) sobre color de marca por categoría. Reutilizable en cualquier .var-card
   con 2 imgs (.var-card__shadow + .var-card__cut) añadiendo .var-card--multiply + data-cat. */
.var-card--multiply[data-cat="lechugas"] .var-card__photo{background:var(--gb-amarillo);}
.var-card--multiply[data-cat="aromaticas"] .var-card__photo{background:var(--gb-salmon);}
.var-card--multiply .var-card__photo{position:relative;}
.var-card--multiply .var-card__photo > img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;padding:0 clamp(6px,1vw,14px);}   /* padding-block:0 (arriba/abajo a tope) */
/* brightness sube el casi-blanco del fondo (~#f7f8fa) a blanco puro antes del multiply → sin recuadro */
/* sombra adaptada al diseño actual: fuera el multiply "pegatina"; drop-shadow limpio que sigue el recorte */
.var-card--multiply .var-card__shadow{display:none;}
.var-card--multiply .var-card__cut{filter:drop-shadow(0 8px 11px rgba(0,0,0,.16));}
/* hover: crossfade de la entera (sin raíz) a la versión con raíz viva */
.var-card__cut--raiz,.var-card__shadow--raiz{opacity:0;}
.var-card--multiply .var-card__photo > img{transition:opacity .45s ease,transform .32s cubic-bezier(.22,1,.36,1);}
.var-card:hover .var-card__cut--raiz,.var-card:hover .var-card__shadow--raiz{opacity:1;}
.var-card:hover .var-card__cut:not(.var-card__cut--raiz),
.var-card:hover .var-card__shadow:not(.var-card__shadow--raiz){opacity:0;}
@media (hover:none){
  /* en táctil no hay hover: la raíz se revela (con crossfade) en la card centrada al
     hacer swipe, vía .show-raiz que añade el IntersectionObserver. Base sigue en entera. */
  .var-card.show-raiz .var-card__cut--raiz,
  .var-card.show-raiz .var-card__shadow--raiz{opacity:1;}
  .var-card.show-raiz .var-card__cut:not(.var-card__cut--raiz),
  .var-card.show-raiz .var-card__shadow:not(.var-card__shadow--raiz){opacity:0;}
}

/* Banda Catálogo 2026 (con mockup PDF de fondo) */
.cat-download{background:#fff;position:relative;overflow:hidden;}
.cat-download::after{content:"";position:absolute;right:-4%;top:50%;transform:translateY(-50%);
  width:min(46%,620px);aspect-ratio:1/1;
  background:url('img/catalog-mockup-nobg.png') center/contain no-repeat;pointer-events:none;}
.cat-download__inner{position:relative;z-index:2;}
.cat-download__text{max-width:56ch;}
.cat-download__title{margin:var(--space-16) 0;max-width:16ch;}
.cat-download__p{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);
  line-height:1.24;opacity:.85;max-width:48ch;margin-bottom:clamp(22px,2.4vw,30px);}

/* CTA muestra gratis (fondo gris claro) */
.cat-muestra{background:var(--gb-neutral-100);}
.cat-muestra__inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,60px);flex-wrap:wrap;}
.cat-muestra__text{max-width:60ch;}
.cat-muestra .h2{margin:var(--space-16) 0;}
.cat-muestra__p{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);line-height:1.22;opacity:.85;max-width:52ch;}
.cat-muestra__promo{display:inline-flex;align-items:center;gap:9px;margin-top:var(--space-16);
  font-family:var(--font-body);font-size:var(--fs-body);color:var(--gb-marino);
  background:var(--gb-verde);border-radius:999px;padding:10px 18px;line-height:1.1;}
.cat-muestra__promo b{font-weight:700;}
.cat-muestra__promo sup{font-size:.62em;}
.cat-muestra__promo-arrow{font-size:1.2em;line-height:1;transform:translateY(1px);}

@media (max-width:1040px){ .cat-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){
  .cat-grid{grid-template-columns:repeat(2,1fr);}
  .cat-download::after{display:none;}
  .cat-muestra__inner{flex-direction:column;align-items:flex-start;}
}
@media (max-width:440px){ .cat-grid{grid-template-columns:repeat(2,1fr);gap:12px;} }

/* Catálogo — bloque "Lo que hace diferente" (azul marino) */
.cat-diff{background:var(--gb-marino);}
.cat-diff__head{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;
  gap:clamp(24px,4vw,56px);margin-bottom:clamp(40px,5vw,68px);}
.cat-diff__headmain{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(20px,2.6vw,32px);}
.cat-diff__headmedia{border-radius:18px;overflow:hidden;aspect-ratio:16/10;box-shadow:0 18px 40px -22px rgba(0,0,0,.55);}
.cat-diff__headmedia img{width:100%;height:100%;object-fit:cover;display:block;}
.cat-diff__title{font-family:var(--font-display);color:#fff;font-weight:400;
  font-size:var(--fs-h2);line-height:.93;letter-spacing:var(--tracking-display);max-width:17ch;}
@media (max-width:760px){.cat-diff__head{grid-template-columns:1fr;}.cat-diff__headmedia{aspect-ratio:16/9;}}
.cat-diff__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2vw,24px);}
.cat-diff__item{border-top:2px solid rgba(255,255,255,.3);padding-top:22px;display:flex;flex-direction:column;gap:6px;}
.cat-diff__num{font-family:var(--font-display);color:var(--gb-verde);font-size:clamp(3rem,4vw,4.05rem);
  line-height:.91;letter-spacing:var(--tracking-display);}
.cat-diff__itemtitle{font-family:var(--font-display);color:#fff;font-weight:700;font-size:var(--fs-h4);
  line-height:.9;text-transform:uppercase;letter-spacing:var(--tracking-display);margin-top:8px;}
.cat-diff__itemdesc{font-family:var(--font-body);color:#fff;font-size:var(--fs-body);line-height:1.21;opacity:.92;}
@media (max-width:900px){.cat-diff__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.cat-diff__grid{grid-template-columns:1fr;}}

/* Catálogo: hover de elevación de las cards (gana al transform:none del reveal-stagger) */
.cat-grid .var-card{transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease,opacity .5s ease;}
/* el reveal-stagger deja un transition-delay pegado en las cards 2-4 que retrasa el hover;
   lo anulamos para que la elevación sea instantánea y uniforme como en la home */
.cat-grid.is-in .var-card{transition-delay:0s;}
.cat-grid.is-in .var-card:hover{transform:translateY(-8px);box-shadow:0 18px 34px rgba(0,0,0,.16);}

/* ============================================================================
   FICHA DE PRODUCTO (ficha.html)
   ============================================================================ */
/* --- Hero / detalle --- */
/* el bottom compensa el solape (-40/-72px) de la sección siguiente + deja aire real */
.pdp-hero{padding-block:clamp(96px,10vw,140px) clamp(104px,11vw,156px);}
.pdp-breadcrumb{display:flex;align-items:center;gap:10px;font-family:var(--font-body);
  font-size:.95rem;color:var(--gb-marino);opacity:.7;margin-bottom:clamp(24px,3vw,40px);}
.pdp-breadcrumb a{color:inherit;text-decoration:none;}
.pdp-breadcrumb a:hover{opacity:.6;text-decoration:underline;}
.pdp-breadcrumb span[aria-hidden]{opacity:.5;}
.pdp-hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:start;}

.pdp-gallery{display:flex;flex-direction:column;gap:16px;}
.pdp-gallery__main{background:var(--gb-verde);border-radius:var(--radius-md);overflow:hidden;
  aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;padding:clamp(20px,3vw,44px);}
.pdp-gallery__main img{width:100%;height:100%;object-fit:contain;
  transition:opacity .35s ease;filter:drop-shadow(0 22px 30px rgba(0,0,0,.18));}
.pdp-gallery__thumbs{display:flex;gap:12px;}
/* fijas y alineadas a la izquierda: con flex:1 se estiraban a todo el ancho de la galeria y pesaban demasiado */
.pdp-thumb{flex:0 0 64px;aspect-ratio:1/1;border:2px solid transparent;border-radius:var(--radius-sm);
  overflow:hidden;background:var(--gb-neutral-100);cursor:pointer;padding:0;
  transition:border-color .25s ease,transform .25s ease;}
.pdp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pdp-thumb:hover{transform:translateY(-2px);}
.pdp-thumb.is-active{border-color:var(--gb-marino);}
/* .pdp-gallery__thumbs fija display:flex, que gana al [hidden] del navegador: hay que anularlo */
.pdp-gallery__thumbs[hidden]{display:none;}
/* Miniaturas en modo variedad: son recortes, necesitan contain (cover los cortaria) */
.pdp-gallery--variety .pdp-thumb{background:var(--cat);}
.pdp-gallery--variety .pdp-thumb img{object-fit:contain;padding:5px;}
/* variante de galería con foto a sangre (aromáticas: fotos con fondo de color, no recortes) */
.pdp-gallery--photo .pdp-gallery__main{background:var(--gb-neutral-100);padding:0;}
.pdp-gallery--photo .pdp-gallery__main img{object-fit:cover;filter:none;}

/* galería en modo VARIEDAD: recorte nítido + sombra real (multiply) sobre color de categoría */
/* El color de categoria se define UNA vez y lo heredan el main y las miniaturas */
.pdp-gallery--variety[data-cat="lechugas"]{--cat:var(--gb-amarillo);}
.pdp-gallery--variety[data-cat="aromaticas"]{--cat:var(--gb-salmon);}
.pdp-gallery--variety .pdp-gallery__main{background:var(--cat);position:relative;padding:0;aspect-ratio:1/1;}
/* recorte cuadrado en caja cuadrada: la imagen llena la caja, sin padding arriba/abajo y sin letterbox */
.pdp-gallery--variety .pdp-gallery__main > img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:0;}
.pdp-gallery--variety .var-card__cut{filter:drop-shadow(0 10px 14px rgba(0,0,0,.15));}
/* brightness aplicado a la capa multiply (fondo casi-blanco -> blanco puro -> sin cuadro de sombra) */
.pdp-gallery--variety .var-card__shadow{display:none;}
/* la imagen queda arriba y sticky mientras se hace scroll, hasta que el hero termina ("Activos y propiedades") */
@media (min-width:821px){
  .pdp-gallery--variety{position:sticky;top:clamp(84px,10vh,104px);align-self:start;}
}

/* Ficha: selector de variedad (cambia la cabecera) */
.pdp-variety{margin:clamp(22px,3vw,30px) 0 4px;}
.pdp-variety__label{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:-.5px;color:var(--gb-marino);font-size:.95rem;margin:0 0 12px;
  display:flex;align-items:center;gap:10px;}
.pdp-variety__season{font-family:var(--font-body);font-weight:600;text-transform:none;letter-spacing:0;
  font-size:.72rem;color:var(--gb-marino);background:var(--gb-verde);border-radius:var(--radius-full);
  padding:3px 10px;line-height:1.3;}
.pdp-variety__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
/* mismo lenguaje que .btn--ghost: stroke marino + relleno que crece desde el centro en hover */
.pdp-variety__chip{position:relative;overflow:hidden;isolation:isolate;
  border:1.5px solid var(--gb-marino);background:transparent;color:var(--gb-marino);
  font:inherit;font-weight:600;font-size:.92rem;padding:8px 16px;border-radius:var(--radius-full);
  cursor:pointer;transition:color .32s ease,transform .16s ease;}
.pdp-variety__chip::before{content:"";position:absolute;z-index:-1;top:var(--my,50%);left:var(--mx,50%);
  width:calc(var(--r,120px)*2);height:calc(var(--r,120px)*2);
  margin-top:calc(var(--r,120px)*-1);margin-left:calc(var(--r,120px)*-1);
  border-radius:50%;background:var(--gb-marino);pointer-events:none;
  transform:scale(0);transform-origin:center;transition:transform .55s cubic-bezier(.22,1,.36,1);}
.pdp-variety__chip:hover,.pdp-variety__chip:focus-visible{color:#fff;}
.pdp-variety__chip:hover::before,.pdp-variety__chip:focus-visible::before{transform:scale(1);}
.pdp-variety__chip:active{transform:scale(.97);}
.pdp-variety__chip.is-active{background:var(--gb-marino);border-color:var(--gb-marino);color:#fff;}
.pdp-variety__desc{font-family:var(--font-body);color:var(--gb-marino);opacity:.85;line-height:1.4;
  margin:0 0 16px;max-width:46ch;}
.pdp-variety__specs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;
  padding:16px 0 0;border-top:1px solid rgba(31,42,99,.3);}   /* marino ~30% (línea divisoria) */
.pdp-variety__spec dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;
  color:var(--gb-marino);opacity:.4;font-weight:700;margin-bottom:5px;}   /* marino 40% */
.pdp-variety__spec dd{margin:0;font-weight:600;color:var(--gb-marino);font-size:.95rem;line-height:1.3;}
[data-variety-cut],[data-variety-shadow]{transition:opacity .18s ease;}
@media (max-width:560px){.pdp-variety__specs{grid-template-columns:1fr;gap:12px;}}

.pdp-info__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h1);line-height:.92;letter-spacing:var(--tracking-display);margin:8px 0 0;}
.pdp-info__tagline{font-family:var(--font-display);color:var(--gb-marino);font-size:clamp(1.3rem,2vw,1.75rem);
  line-height:1;margin:14px 0 0;opacity:.9;}
.pdp-info__desc{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);
  line-height:1.35;opacity:.85;margin:20px 0 0;max-width:52ch;}
.pdp-formats{margin-top:clamp(24px,3vw,32px);}
.pdp-formats__label{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  letter-spacing:-.5px;color:var(--gb-marino);font-size:.95rem;margin-bottom:12px;}
/* Formatos: tamaño x caja -> unidades. Lo pinta gb.js por variedad (ver data-varieties). */
.fmt{display:flex;flex-direction:column;gap:14px;}
.fmt__row{display:flex;flex-direction:column;gap:8px;}
.fmt__legend{font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:.78rem;letter-spacing:.02em;color:var(--gb-marino);opacity:.55;}
.fmt__opts{display:flex;flex-wrap:wrap;gap:8px;}
.fmt__size,.fmt__box{font-family:var(--font-body);font-size:.95rem;color:var(--gb-marino);
  cursor:pointer;background:transparent;border:1.5px solid rgba(31,42,99,.3);
  border-radius:var(--radius-full);
  transition:background .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;}
.fmt__size{padding:9px 16px;line-height:1;}
.fmt__size:hover{border-color:var(--gb-marino);}
.fmt__size.is-active{background:var(--gb-marino);border-color:var(--gb-marino);color:#fff;}
/* La caja lleva miniatura, pero mantiene la MISMA lógica que el resto de pills del sitio:
   activo = relleno marino. Para que el marino no se coma la foto (la caja es oscura), la
   miniatura va sobre su propio token blanco: sobre fondo blanco no se percibe, y al activarse
   el boton aparece solo. Token rectangular redondeado y no circular porque la foto es
   apaisada (~1.29): en un circulo del mismo alto perderia ~20% de tamaño. */
.fmt__box{display:inline-flex;align-items:center;gap:10px;padding:5px 18px 5px 5px;}
/* Token circular: acompaña el redondeo de la pildora. SIN padding a proposito: los PNG de
   caja ya traen ~14% de margen por lado (la caja ocupa el 71% del lienzo), asi que ese
   margen propio es el que evita que el border-radius:50% le recorte las esquinas. Añadir
   padding aqui se sumaria a ese margen y encogeria la caja a la mitad. */
.fmt__box img{width:56px;height:56px;object-fit:contain;flex:none;
  background:var(--gb-neutral-50);border-radius:50%;}
.fmt__box:hover:not(:disabled){border-color:var(--gb-marino);}
.fmt__box.is-active{background:var(--gb-marino);border-color:var(--gb-marino);color:#fff;}
.fmt__box:disabled{opacity:.35;cursor:not-allowed;}
.fmt__result{font-family:var(--font-body);color:var(--gb-marino);font-size:1.05rem;}
.fmt__result b{font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:-.5px;}
.pdp-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(28px,3vw,36px);}

/* --- Activos y propiedades (marino) --- */
.pdp-props{background:var(--gb-marino);}
.pdp-props__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:clamp(36px,4vw,56px);}
.pdp-props__title{font-family:var(--font-display);color:#fff;font-weight:400;
  font-size:var(--fs-h2);line-height:.93;letter-spacing:var(--tracking-display);}
.pdp-props__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(18px,2vw,24px);}
.pdp-prop{border-top:2px solid rgba(255,255,255,.3);padding-top:20px;display:flex;flex-direction:column;gap:8px;}
.pdp-prop__num{font-family:var(--font-display);color:var(--gb-verde);font-weight:400;
  font-size:clamp(2.6rem,3.4vw,3.4rem);line-height:.9;letter-spacing:var(--tracking-display);}
.pdp-prop__title{font-family:var(--font-display);color:#fff;font-weight:700;text-transform:uppercase;
  font-size:1.35rem;line-height:.95;letter-spacing:-.5px;margin-top:8px;}
.pdp-prop__desc{font-family:var(--font-body);color:#fff;font-size:1rem;line-height:1.25;opacity:.9;}

/* --- Usos en cocina (blanco) --- */
.pdp-usos__head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,56px);
  align-items:center;margin-bottom:clamp(40px,5vw,64px);}
.pdp-usos__title{margin:12px 0 0;}
.pdp-usos__lead{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-lead);
  line-height:1.32;opacity:.85;margin-top:18px;max-width:54ch;}
.pdp-usos__media{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
.pdp-usos__media img{width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 24px 34px rgba(0,0,0,.16));transition:opacity .3s ease;}
.pdp-usos__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,24px);}
/* cards gris por defecto; al hover cada una toma su color pop (y cambia la imagen vía JS) */
.pdp-uso{background:var(--gb-neutral-50);border-radius:var(--radius-sm);
  padding:clamp(22px,2vw,30px);display:flex;flex-direction:column;gap:8px;cursor:pointer;
  transition:background .35s ease,transform .35s cubic-bezier(.22,1,.36,1);}
.pdp-usos__grid .pdp-uso:nth-child(1){--accent:var(--gb-verde);}
.pdp-usos__grid .pdp-uso:nth-child(2){--accent:var(--gb-salmon);}
.pdp-usos__grid .pdp-uso:nth-child(3){--accent:var(--gb-azul);}
.pdp-usos__grid .pdp-uso:nth-child(4){--accent:var(--gb-amarillo);}
.pdp-uso:hover,.pdp-uso.is-active{background:var(--accent);transform:translateY(-4px);}
.pdp-uso__num{font-family:var(--font-display);color:rgba(31,42,99,.28);font-weight:400;
  font-size:clamp(2.4rem,3vw,3rem);line-height:.9;letter-spacing:var(--tracking-display);
  transition:color .35s ease;}
.pdp-uso:hover .pdp-uso__num,.pdp-uso.is-active .pdp-uso__num{color:rgba(31,42,99,.45);}
.pdp-uso__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:clamp(1.35rem,1.7vw,1.6rem);line-height:1;letter-spacing:-.5px;margin-top:6px;}
.pdp-uso__desc{font-family:var(--font-body);color:var(--gb-marino);font-size:1rem;line-height:1.32;opacity:.82;}

/* --- También te puede interesar --- */
.pdp-related__title{margin-bottom:clamp(28px,3vw,44px);}
.pdp-related__grid{grid-template-columns:repeat(4,1fr);}
.pdp-related__grid .var-card{text-decoration:none;}

/* --- Tarjetas conservación / cultivo (gris) --- */
.pdp-cards__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.5vw,32px);}
.pdp-card{background:#fff;border-radius:var(--radius-md);padding:clamp(28px,3vw,40px);
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
/* los SVG del proyecto traen preserveAspectRatio="none": el ratio de la caja DEBE igualar
   al del viewBox de cada icono, o se estiran (regadera 101/66, conservación 70/67) */
.pdp-card__icon{align-self:flex-start;margin-bottom:4px;}
.pdp-cards__grid .pdp-card:nth-child(1) .pdp-card__icon{width:54px;aspect-ratio:70/67;}
.pdp-cards__grid .pdp-card:nth-child(2) .pdp-card__icon{width:82px;aspect-ratio:101/66;}
.pdp-card__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:var(--fs-h4);line-height:.95;letter-spacing:-1px;}
.pdp-card__text{font-family:var(--font-body);color:var(--gb-marino);font-size:1.02rem;line-height:1.35;opacity:.82;}
.pdp-card__link{margin-top:auto;font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:.95rem;letter-spacing:-.5px;color:var(--gb-marino);text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;}
.pdp-card__link span{transition:transform .28s cubic-bezier(.22,1,.36,1);}
.pdp-card__link:hover span{transform:translateX(5px);}

/* --- Testimonios (slider, marino) --- */
.pdp-testis{background:var(--gb-marino);}
.testis{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(16px,3vw,40px);}
.testis__viewport{overflow:hidden;}
.testis__track{display:flex;list-style:none;padding:0;margin:0;
  transition:transform .6s cubic-bezier(.22,1,.36,1);}
.testis__item{flex:0 0 100%;min-width:0;text-align:center;padding-inline:clamp(4px,2vw,32px);}
.testis__quote{font-family:var(--font-display);color:#fff;font-weight:400;
  font-size:clamp(1.6rem,3.2vw,2.6rem);line-height:1.02;letter-spacing:var(--tracking-display);margin:0;}
.testis__cite{display:flex;flex-direction:column;gap:2px;margin-top:clamp(20px,2.5vw,32px);
  font-style:normal;font-family:var(--font-display);color:var(--gb-verde);font-size:1.25rem;}
.testis__cite span{font-family:var(--font-body);color:#fff;opacity:.7;font-size:.95rem;}
.testis__arrow{width:52px;height:52px;flex:none;border-radius:var(--radius-full);
  border:1.5px solid rgba(255,255,255,.4);background:transparent;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .25s ease,color .25s ease,border-color .25s ease;}
.testis__arrow:hover{background:#fff;color:var(--gb-marino);border-color:#fff;}
.testis__dots{grid-column:2;display:flex;justify-content:center;gap:8px;margin-top:clamp(24px,3vw,36px);}
.testis__dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;
  background:rgba(255,255,255,.35);cursor:pointer;transition:background .25s ease,transform .25s ease;}
.testis__dots button.is-active{background:var(--gb-verde);transform:scale(1.25);}

/* --- FAQ head --- */
.pdp-faq__head{text-align:center;margin-bottom:clamp(28px,3vw,44px);}
.pdp-faq__head .eyebrow{margin-inline:auto;}
.pdp-faq__title{margin-top:10px;max-width:none;}

/* --- CTA muestra en verde (override de cat-muestra) --- */
.pdp-muestra{background:var(--gb-verde);}

/* ============================ RESPONSIVE FICHA ============================ */
@media (max-width:1024px){
  .pdp-props__grid{grid-template-columns:repeat(3,1fr);row-gap:clamp(28px,4vw,40px);}
  .pdp-usos__grid,.pdp-related__grid{grid-template-columns:repeat(2,1fr);row-gap:clamp(28px,4vw,40px);}
}
@media (max-width:820px){
  .pdp-hero__grid{grid-template-columns:1fr;gap:clamp(28px,5vw,44px);}
  .pdp-usos__head{grid-template-columns:1fr;}
  /* imagen del hover: después del intro (eyebrow/título/lead), antes del punto 01 */
  .pdp-cards__grid{grid-template-columns:1fr;}
  .testis__quote{font-size:clamp(1.5rem,6vw,2rem);}
  /* la imagen de la variedad se coloca justo encima del selector "Elige tu variedad":
     display:contents hace que los hijos de .pdp-info participen en el flex y podamos
     intercalar la galería entre la descripción y el selector (order). */
  .pdp-hero__grid[data-variety-scope]{display:flex;flex-direction:column;align-items:stretch;}
  .pdp-hero__grid[data-variety-scope] > .pdp-info{display:contents;}
  .pdp-hero__grid[data-variety-scope] .pdp-gallery--variety{order:1;margin-top:clamp(18px,4vw,26px);}
  .pdp-hero__grid[data-variety-scope] .pdp-variety,
  .pdp-hero__grid[data-variety-scope] .pdp-formats,
  .pdp-hero__grid[data-variety-scope] .pdp-actions{order:2;}
}
@media (max-width:560px){
  .pdp-props__grid{grid-template-columns:repeat(2,1fr);}
  .pdp-usos__grid{grid-template-columns:1fr;}
  .pdp-related__grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .testis{grid-template-columns:1fr;}
  .testis__arrow{display:none;}
  .testis__dots{grid-column:1;}
}

/* ============================================================================
   CONTACTO (contact.html)
   ============================================================================ */
/* clases con prefijo -page para NO colisionar con la sección .contact/.contact__title de la Home */
.contact-page{background:var(--gb-neutral-50);
  padding-block:clamp(120px,13vw,168px) clamp(64px,7vw,104px);}
.contact-page__head{max-width:62ch;margin-bottom:clamp(36px,4vw,56px);}
.contact-page__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;text-transform:none;
  font-size:var(--fs-h2);line-height:.93;letter-spacing:var(--tracking-display);margin:10px 0 0;max-width:18ch;}
.contact-page__lead{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);
  line-height:1.3;opacity:.82;margin-top:16px;max-width:58ch;}
.contact-page__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(20px,2.5vw,32px);align-items:stretch;}

/* --- Columna izquierda: tarjetas de datos + foto --- */
.contact-page__info{display:flex;flex-direction:column;gap:14px;}
.contact-card{display:flex;align-items:center;gap:18px;background:#fff;border-radius:var(--radius-sm);
  padding:clamp(18px,1.6vw,22px) clamp(20px,1.8vw,26px);text-decoration:none;
  box-shadow:0 1px 2px rgba(20,21,26,.08);transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease;}
.contact-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.1);}
.contact-card__icon{width:26px;height:26px;flex:none;object-fit:contain;}
.contact-card__body{display:flex;flex-direction:column;gap:2px;min-width:0;}
.contact-card__label{font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:.8rem;letter-spacing:-.3px;color:var(--gb-marino);opacity:.55;}
.contact-card__main{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:1.25rem;line-height:1;letter-spacing:-.5px;}
.contact-card__sub{font-family:var(--font-body);color:var(--gb-marino);font-size:.95rem;opacity:.7;}

.contact-map{display:block;position:relative;border-radius:var(--radius-sm);overflow:hidden;
  flex:1 1 auto;min-height:clamp(200px,24vw,300px);margin-top:4px;background:var(--gb-neutral-100);}
.contact-map img{width:100%;height:100%;object-fit:cover;display:block;}

/* --- Formulario (panel azul) --- */
.contact-form{background:var(--gb-amarillo);border-radius:var(--radius-md);
  padding:clamp(24px,2.6vw,40px);display:flex;flex-direction:column;gap:clamp(16px,1.6vw,20px);}
.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.4vw,18px);}
.field{display:flex;flex-direction:column;gap:8px;}
.field__label{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:1.02rem;letter-spacing:-.3px;}
.field__label em{font-style:normal;font-weight:400;opacity:.6;}
.field input,.field textarea{width:100%;background:#fff;border:1.5px solid transparent;
  border-radius:12px;padding:13px 16px;font-family:var(--font-body);font-size:1rem;color:var(--gb-marino);
  transition:border-color .2s ease,box-shadow .2s ease;}
.field textarea{resize:vertical;min-height:96px;line-height:1.35;}
.field input::placeholder,.field textarea::placeholder{color:var(--gb-marino);opacity:.45;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gb-marino);
  box-shadow:0 0 0 3px rgba(31,42,99,.18);}

/* selectores tipo pastilla (radio / checkbox) */
.choice{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
/* El <legend> queda fuera del flujo flex del <fieldset>, asi que el gap de .choice NO le
   afecta (se quedaban las chips pegadas al titulo). Hay que separarlo con margin propio. */
.choice .field__label{margin-bottom:12px;}
.choice__pills{display:flex;flex-wrap:wrap;gap:8px;}
.pill{position:relative;cursor:pointer;}
.pill input{position:absolute;opacity:0;width:0;height:0;}
.pill span{display:inline-block;font-family:var(--font-body);font-size:.95rem;color:var(--gb-marino);
  background:transparent;border:1.5px solid rgba(31,42,99,.3);border-radius:var(--radius-full);
  padding:9px 16px;line-height:1;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.pill:hover span{border-color:var(--gb-marino);}
.pill:has(input:checked) span{background:var(--gb-marino);color:#fff;border-color:var(--gb-marino);}
.pill input:focus-visible + span{box-shadow:0 0 0 3px rgba(31,42,99,.28);}

/* consentimiento */
.consent{display:flex;align-items:flex-start;gap:12px;cursor:pointer;
  font-family:var(--font-body);font-size:.9rem;color:var(--gb-marino);line-height:1.35;opacity:.9;}
.consent input{appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin-top:1px;
  background:#fff;border:1.5px solid rgba(31,42,99,.4);border-radius:6px;cursor:pointer;
  display:grid;place-content:center;transition:background .2s ease,border-color .2s ease;}
.consent input::before{content:"";width:11px;height:11px;transform:scale(0);transition:transform .15s ease;
  background:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);}
.consent input:checked{background:var(--gb-marino);border-color:var(--gb-marino);}
.consent input:checked::before{transform:scale(1);}
.consent a{color:var(--gb-marino);text-decoration:underline;}
.contact-form .btn{align-self:flex-start;margin-top:4px;}

/* --- FAQ contacto --- */
.contact-faq__head{text-align:center;margin-bottom:clamp(28px,3vw,44px);}
.contact-faq__head{text-align:center;}
.contact-faq__title{margin-top:8px;max-width:none;}
.contact-faq .faq{max-width:none;}

/* ============================ RESPONSIVE CONTACTO ============================ */
@media (max-width:900px){
  .contact-page__grid{grid-template-columns:1fr;gap:clamp(24px,4vw,36px);}
  .contact-page__head{max-width:none;}
}
@media (max-width:520px){
  .contact-form__row{grid-template-columns:1fr;}
}

/* ============================================================================
   BLOG · listado (blog.html)
   ============================================================================ */
/* Hero unificado con el de Quiénes: foto a sangre + overlay + texto blanco, misma altura */
/* Hero de Blog: comprimido (trato especial), el texto arranca a la altura del de Contacto; fondo gris + recorte grande de albahaca al lateral con zoom al scroll */
.blog-hero{background:var(--gb-neutral-50);position:relative;overflow:hidden;
  padding-block:clamp(120px,13vw,168px) clamp(70px,10vh,120px);}
.blog-hero__inner{position:relative;z-index:2;width:100%;}
.blog-hero__text{max-width:min(56%,58ch);}
.blog-hero__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  text-transform:none;font-size:var(--fs-h2);line-height:.93;letter-spacing:var(--tracking-display);margin:var(--space-16) 0 0;}
.blog-hero__title span{font-weight:700;}
.blog-hero__lead{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-body);
  line-height:1.34;opacity:.82;margin-top:clamp(18px,2vw,26px);max-width:48ch;}
.blog-hero__media{position:absolute;top:-6%;right:0;bottom:-6%;width:min(52%,680px);z-index:1;
  display:flex;align-items:center;justify-content:flex-end;pointer-events:none;}
.blog-hero__media img{height:118%;width:auto;max-width:none;object-fit:contain;object-position:right center;
  transform:scale(var(--z,1));transform-origin:right center;will-change:transform;
  filter:drop-shadow(0 24px 38px rgba(20,45,20,.16));}
@media (max-width:820px){
  .blog-hero{padding-block:clamp(112px,20vw,140px) clamp(64px,14vw,96px);}
  .blog-hero__text{max-width:100%;}
}

/* filtro de categorías */
.blog-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 clamp(28px,3.5vw,44px);}
.blog-filter{font-family:var(--font-body);font-weight:600;font-size:var(--fs-button);color:var(--gb-marino);cursor:pointer;
  background:var(--gb-neutral-50);border:0;border-radius:var(--radius-full);
  padding:11px 26px;line-height:1;transition:background .2s ease,color .2s ease;
  /* color por categoría (hover / seleccionada); "Todos" = marino por defecto */
  --chip-bg:var(--gb-marino);--chip-text:#fff;}
.blog-filter[data-filter="producto"]{--chip-bg:var(--gb-amarillo);--chip-text:var(--gb-marino);}
.blog-filter[data-filter="cocina"]{--chip-bg:var(--gb-salmon);--chip-text:var(--gb-marino);}
.blog-filter[data-filter="sostenibilidad"]{--chip-bg:var(--gb-verde);--chip-text:var(--gb-marino);}
.blog-filter[data-filter="acuaponia"]{--chip-bg:var(--gb-azul);--chip-text:var(--gb-marino);}
.blog-filter:hover,.blog-filter.is-active{background:var(--chip-bg);color:var(--chip-text);}

/* --- tags de categoría (color por taxonomía) --- */
.blog-tag{align-self:flex-start;font-family:var(--font-display);font-weight:800;text-transform:uppercase;
  font-size:.78rem;letter-spacing:-.2px;color:var(--gb-marino);border-radius:var(--radius-full);
  padding:6px 14px;line-height:1;}
.blog-tag--azul{background:var(--gb-azul);}
.blog-tag--amarillo{background:var(--gb-amarillo);}
.blog-tag--verde{background:var(--gb-verde);}
.blog-tag--salmon{background:var(--gb-salmon);}
.blog-meta{font-family:var(--font-body);color:var(--gb-marino);opacity:.55;font-size:.9rem;}

/* --- post destacado --- */
.blog-posts .blog-featured{display:grid;grid-template-columns:1.05fr 1fr;gap:0;
  align-items:stretch;background:var(--gb-neutral-50);border-radius:var(--radius-md);overflow:hidden;
  padding:0;text-decoration:none;margin-bottom:clamp(40px,5vw,72px);
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease;}
.blog-featured:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(0,0,0,.1);}
.blog-featured__media{border-radius:0;overflow:hidden;min-height:clamp(300px,28vw,420px);background:var(--gb-neutral-100);}
.blog-featured__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.blog-featured:hover .blog-featured__media img{transform:scale(1.04);}
.blog-featured__body{display:flex;flex-direction:column;gap:14px;justify-content:center;padding:clamp(24px,2.4vw,40px);}
.blog-featured__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h3);line-height:.95;letter-spacing:var(--tracking-display);}
.blog-featured__excerpt{font-family:var(--font-body);color:var(--gb-marino);font-size:1.05rem;line-height:1.35;opacity:.8;max-width:46ch;}

/* --- grid de posts --- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,2.6vw,40px);}
.blog-grid .blog-card[hidden]{display:none;}
.blog-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-decoration:none;
  transition:transform .3s cubic-bezier(.22,1,.36,1);}
.blog-card:hover{transform:translateY(-4px);}
.blog-card__media{width:100%;aspect-ratio:16/11;border-radius:var(--radius-sm);overflow:hidden;
  background:var(--gb-neutral-100);margin-bottom:2px;}
.blog-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.blog-card:hover .blog-card__media img{transform:scale(1.05);}
.blog-card__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:1.5rem;line-height:1;letter-spacing:-.5px;}

/* --- newsletter (banda azul) --- */
.blog-news{background:var(--gb-azul);box-shadow:none;}
.blog-news__inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(28px,5vw,72px);flex-wrap:wrap;}
.blog-news__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h2);line-height:.95;letter-spacing:var(--tracking-display);}
.blog-news__sub{font-family:var(--font-body);color:var(--gb-marino);opacity:.75;margin-top:12px;}
.blog-news__form{display:flex;align-items:center;gap:16px;flex:1;min-width:min(100%,340px);max-width:520px;}
.blog-news__form input{flex:1;min-width:0;background:transparent;border:0;border-bottom:2px solid rgba(31,42,99,.4);
  padding:12px 4px;font-family:var(--font-body);font-size:1.05rem;color:var(--gb-marino);}
.blog-news__form input::placeholder{color:var(--gb-marino);opacity:.55;}
.blog-news__form input:focus{outline:none;border-bottom-color:var(--gb-marino);}
.blog-news__form .btn{flex:none;}

/* ============================ RESPONSIVE BLOG ============================ */
@media (max-width:1024px){
  .blog-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:820px){
  /* la foto pasa a estática (arriba) y el texto a ancho completo */
  .blog-hero__text{max-width:none;}
  .blog-hero__media{position:static;width:auto;max-width:260px;margin:0 auto clamp(12px,4vw,24px);justify-content:center;}
  .blog-hero__media img{transform:scaleX(-1);height:auto;width:100%;max-height:230px;}
  .blog-posts .blog-featured{grid-template-columns:1fr;}
  .blog-featured__media{aspect-ratio:16/9;min-height:0;}
}
@media (max-width:560px){
  .blog-grid{grid-template-columns:1fr;}
  .blog-news__inner{flex-direction:column;align-items:flex-start;}
}

/* ============================================================================
   ARTÍCULO · single del blog (articulo.html)
   ============================================================================ */
.article{padding-top:0;padding-bottom:clamp(96px,10vw,150px);}   /* aire antes de la siguiente sección */
/* mini-header con el color de la categoría (Fase 2: color = término de la taxonomía) */
.article__masthead{background:var(--gb-azul);}
.article__masthead--producto{background:var(--gb-amarillo);}
.article__masthead--cocina{background:var(--gb-salmon);}
.article__masthead--sostenibilidad{background:var(--gb-verde);}
.article__masthead--acuaponia{background:var(--gb-azul);}
.article__head{display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  /* fondo = solape del bloque blanco (48px) + hueco visible siempre presente (28–48px) */
  padding-block:clamp(120px,13vw,168px) calc(48px + clamp(28px,3.5vw,48px));}
.article__back{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:.9rem;
  letter-spacing:-.3px;color:var(--gb-marino);opacity:.65;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.article__back:hover{opacity:1;}
.article__cat{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1rem;
  letter-spacing:-.3px;color:var(--gb-marino);margin-top:2px;}
.article__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h2);line-height:.94;letter-spacing:var(--tracking-display);max-width:16ch;}
.article__subtitle{font-family:var(--font-body);color:var(--gb-marino);font-size:var(--fs-lead);
  line-height:1.32;opacity:.88;max-width:60ch;}
.article__meta{display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.article__author{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;font-size:1.1rem;letter-spacing:-.3px;}
.article__date{font-family:var(--font-body);color:var(--gb-marino);opacity:.72;font-size:.95rem;}
/* cover y cuerpo alineados a la IZQUIERDA (al borde del contenedor, como el logo del nav) */
.article__cover{max-width:1000px;margin:clamp(40px,5vw,64px) 0 0;border-radius:var(--radius-md);
  overflow:hidden;aspect-ratio:16/8;background:var(--gb-neutral-100);}
.article__cover img{width:100%;height:100%;object-fit:cover;display:block;}

/* --- cuerpo editable nativo (WordPress the_content): estilos genéricos --- */
.article-body{max-width:720px;margin:clamp(40px,5vw,64px) 0 0;}
.article-body > * + *{margin-top:clamp(18px,2vw,26px);}
.article-body p{font-family:var(--font-body);color:var(--gb-marino);font-size:1.15rem;line-height:1.6;opacity:.9;}
.article-body h2{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:clamp(1.8rem,2.6vw,2.35rem);line-height:1;letter-spacing:var(--tracking-display);
  margin-top:clamp(40px,4.5vw,60px);}
.article-body h3{font-family:var(--font-display);color:var(--gb-marino);font-weight:700;
  font-size:var(--fs-h4);line-height:1;letter-spacing:-1px;margin-top:clamp(28px,3vw,40px);}
.article-body ol,.article-body ul{padding-left:1.3em;display:flex;flex-direction:column;gap:14px;}
.article-body li{font-family:var(--font-body);color:var(--gb-marino);font-size:1.15rem;line-height:1.5;opacity:.9;padding-left:6px;}
.article-body li::marker{color:var(--gb-marino);font-family:var(--font-display);font-weight:700;}
.article-body strong{font-weight:700;opacity:1;}
.article-body a{color:var(--gb-marino);text-decoration:underline;text-underline-offset:3px;font-weight:600;}
.article-body a:hover{text-decoration-thickness:2px;}
/* tabla (bloque de Gutenberg) */
.article-body table{width:100%;border-collapse:collapse;font-family:var(--font-body);
  color:var(--gb-marino);font-size:1.02rem;margin-block:clamp(24px,3vw,36px);}
.article-body thead th{text-align:left;font-family:var(--font-display);font-weight:700;
  font-size:1.05rem;letter-spacing:-.3px;padding:12px 14px;border-bottom:2px solid var(--gb-marino);}
.article-body tbody td{padding:12px 14px;border-bottom:1px solid rgba(31,42,99,.18);vertical-align:top;line-height:1.35;}
.article-body tbody tr:last-child td{border-bottom:0;font-weight:600;background:rgba(196,252,139,.28);}
/* Tablas del cuerpo: envueltas en .table-scroll -> scroll horizontal en movil manteniendo
   la alineacion de columnas (display:table). El min-width en movil fuerza el scroll. */
.article-body .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media (max-width:820px){ .article-body .table-scroll table{min-width:480px;} }
.article-body figure{margin:clamp(32px,4vw,48px) 0;}   /* reset del margen inline por defecto del navegador */
.article-body figure img{width:100%;border-radius:var(--radius-sm);display:block;}
.article-body figcaption{font-family:var(--font-body);color:var(--gb-marino);opacity:.55;
  font-size:.92rem;margin-top:12px;text-align:center;}
/* pull-quote (bloque cita de Gutenberg) */
.article-body blockquote{margin:clamp(36px,4.5vw,60px) 0;padding:0;border:0;   /* idem: sin margen inline por defecto */
  font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.02;letter-spacing:var(--tracking-display);}
.article-body blockquote strong{font-weight:700;}

/* --- títulos de sección (dos tonos) --- */
.article-section-title{text-transform:uppercase;font-weight:400;margin-bottom:clamp(28px,3vw,44px);max-width:none;}
.article-section-title b{font-weight:700;}
.article-product .article-section-title{text-align:center;}   /* productos: centrado */
.article-more .article-section-title{text-align:center;}      /* sigue leyendo: centrado */
.article-product__grid{grid-template-columns:repeat(4,1fr);}
.article-product__grid .var-card{text-decoration:none;}

/* ============================ RESPONSIVE ARTÍCULO ============================ */
@media (max-width:1024px){
  .article-product__grid{grid-template-columns:repeat(2,1fr);row-gap:clamp(28px,4vw,40px);}
}
@media (max-width:560px){
  .article__cover{aspect-ratio:3/2;}
  .article-product__grid{grid-template-columns:repeat(2,1fr);gap:14px;}
}

/* ======================= PÁGINAS LEGALES ======================= */
.legal-hero{padding:clamp(120px,17vh,190px) 0 clamp(24px,4vw,40px);}
.legal-hero .eyebrow{margin-bottom:10px;}
.legal-hero__title{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:var(--fs-h1);line-height:.95;letter-spacing:var(--tracking-display);margin:0;}
.legal-hero__meta{margin-top:14px;color:var(--gb-marino);opacity:.5;font-size:.9rem;}
.legal-body{padding-bottom:clamp(56px,8vw,110px);}
/* ancho de lectura alineado con el logo (gb-container), no centrado ni a sangre */
.legal-body .gb-container > *{max-width:74ch;}
.legal-body h2{font-family:var(--font-display);color:var(--gb-marino);font-weight:400;
  font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.08;margin:clamp(34px,4.5vw,52px) 0 12px;}
.legal-body h3{font-family:var(--font-body);color:var(--gb-marino);font-weight:700;font-size:1.05rem;margin:26px 0 8px;}
.legal-body p,.legal-body li{font-family:var(--font-body);color:var(--gb-marino);opacity:.85;line-height:1.62;font-size:var(--fs-body);}
.legal-body p{margin:0 0 14px;}
.legal-body ul{margin:0 0 16px;padding-left:1.2em;}
.legal-body li{margin-bottom:8px;}
.legal-body a{color:var(--gb-marino);text-decoration:underline;}
.legal-body strong{font-weight:700;opacity:1;}
.legal-data{background:var(--gb-neutral-50);border-radius:var(--radius-sm);padding:clamp(16px,2vw,22px);margin:0 0 22px;}
.legal-data p{margin:0 0 4px;opacity:1;}
.legal-table{width:100%;border-collapse:collapse;margin:6px 0 22px;font-size:.9rem;}
.legal-table th,.legal-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--gb-neutral-300);color:var(--gb-marino);vertical-align:top;}
.legal-table th{font-weight:700;}
.legal-table td{opacity:.82;}
.legal-table td:first-child{white-space:nowrap;font-weight:600;opacity:1;}

/* Footer: icono social (Instagram) */
.footer__social{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  margin-top:20px;border-radius:var(--radius-full);border:1.5px solid rgba(255,255,255,.35);color:#fff;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;}
.footer__social:hover{background:#fff;color:var(--gb-marino);border-color:#fff;transform:translateY(-2px);}


/* ============================================================
   Ajustes movil (feedback jul-2026)
   ============================================================ */
@media (max-width:820px){
  /* Categoria PDP: juntar los textos de arriba (antes de la foto de variedad) */
  .pdp-hero__grid[data-variety-scope]{gap:6px;}
  /* (Valores: coverflow tambien en movil; el ajuste anti-corte va en el @media 900) */
  /* Blog: ocultar imagen del hero (colgaba en movil) */
  .blog-hero__media{display:none;}
  /* Articulo: texto mas compacto */
  .article-body p,.article-body li{font-size:1rem;line-height:1.5;}
  /* Footer mas compacto (sticky: no cabia y se cortaba por arriba) */
  .site-footer{padding-block:clamp(28px,6vw,40px) clamp(18px,3vw,26px);}
  .footer__top{gap:clamp(18px,4vw,28px);padding-bottom:clamp(20px,4vw,28px);}
  .footer__logo{margin-bottom:12px;}
  .footer__mark{height:42px;}
  .footer__word{height:32px;}
}
@media (max-width:560px){
  /* Footer: 2 columnas de enlaces (en vez de apilar todo) para reducir alto */
  .footer__top{grid-template-columns:1fr 1fr;}
  .footer__brand{grid-column:1/-1;}
  .footer__news{grid-column:1/-1;}
}


/* ============================================================
   Usos en cocina (movil): swiper horizontal con scroll-snap; la foto la sincroniza el JS
   ============================================================ */
@media (max-width:820px){
  .pdp-usos__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .pdp-usos__grid::-webkit-scrollbar{display:none;}
  .pdp-usos__grid .pdp-uso{flex:0 0 84%;scroll-snap-align:start;}
  .pdp-usos__grid .pdp-uso.is-active{transform:none;} /* sin lift: evita overflow vertical en el scroller */
}


/* ============================================================
   WhatsApp flotante (todas las paginas)
   z-index 40: por encima de main(2) y del footer fijo(1), por debajo del
   header(50) para que el nav movil abierto lo tape.
   ============================================================ */
.wa-float{position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);z-index:40;
  width:clamp(52px,4vw,58px);aspect-ratio:1;border-radius:var(--radius-full);
  background:var(--gb-verde);color:var(--gb-marino);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,.26);
  transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease;}
.wa-float:hover{transform:scale(1.06);box-shadow:0 14px 34px rgba(0,0,0,.32);}
.wa-float svg{width:56%;height:auto;display:block;}
@media (prefers-reduced-motion:reduce){
  .wa-float{transition:none;}
  .wa-float:hover{transform:none;}
}

/* ======================= CLIENTES / RESEÑAS (home) ======================= */
.clientes__head{max-width:62ch;}
.cli-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:22px;margin-top:clamp(28px,4vw,42px);}
.cli-card{background:#fff;border:1px solid rgba(31,42,99,.1);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;}
.cli-card__photo{aspect-ratio:16/11;width:100%;object-fit:cover;display:block;background:var(--gb-azul-soft);}
.cli-card__body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:13px;flex:1;}
.cli-card__head{display:flex;align-items:center;gap:12px;}
.cli-card__logo{height:44px;width:auto;border-radius:8px;display:block;flex:none;}
.cli-card__id{min-width:0;}
.cli-card__name{font-family:var(--font-display);font-size:1.05rem;line-height:1.1;color:var(--gb-marino);display:block;}
.cli-card__sub{font-family:var(--font-body);font-size:.78rem;opacity:.55;color:var(--gb-marino);display:block;margin-top:2px;}
.cli-card__stars{color:#EBA400;font-size:.95rem;letter-spacing:2px;line-height:1;}
.cli-card__quote{font-family:var(--font-body);font-size:.97rem;line-height:1.5;color:var(--gb-marino);opacity:.92;margin:0;}
.cli-card__quote::before{content:"\201C";font-family:var(--font-display);font-size:1.5rem;color:var(--gb-azul);margin-right:3px;line-height:0;vertical-align:-.35em;}
.cli-card--logo{align-items:center;justify-content:center;text-align:center;gap:16px;padding:36px 22px;}
.cli-card--logo .cli-card__logo{height:60px;}
.cli-card--logo .cli-card__name{font-size:1rem;opacity:.8;}
@media (prefers-reduced-motion:no-preference){
  .clientes.is-in .cli-card{animation:cliIn .6s ease both;}
  .clientes.is-in .cli-card:nth-child(2){animation-delay:.08s;}
  .clientes.is-in .cli-card:nth-child(3){animation-delay:.16s;}
  .clientes.is-in .cli-card:nth-child(n+4){animation-delay:.24s;}
  @keyframes cliIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
}

/* carrusel de reseñas (se activa con >3 clientes) */
.cli-carousel{--per:3;margin-top:clamp(28px,4vw,42px);}
.cli-viewport{overflow:hidden;}
.cli-track{display:flex;gap:22px;transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform;}
.cli-track .cli-card{flex:0 0 calc((100% - (var(--per) - 1) * 22px) / var(--per));}
.cli-controls{display:flex;justify-content:center;margin-top:clamp(28px,3.5vw,40px);}

/* ======================= CTA "Solicitar precios" (selector -> WhatsApp) ======================= */
.price-cta{position:relative;display:inline-block;}
.cat-download__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.price-cta__menu{position:absolute;top:calc(100% + 10px);left:0;z-index:40;min-width:270px;max-width:calc(100vw - 32px);
  background:#fff;border:1px solid rgba(31,42,99,.12);border-radius:16px;padding:12px;
  box-shadow:0 18px 50px rgba(31,42,99,.16);display:flex;flex-direction:column;gap:3px;}
.price-cta__menu[hidden]{display:none;}
.price-cta__label{font-family:var(--font-display);font-size:.9rem;color:var(--gb-marino);opacity:.65;margin:2px 8px 8px;}
.price-cta__opt{display:flex;align-items:center;gap:11px;font-family:var(--font-body);font-size:1rem;line-height:1.2;
  color:var(--gb-marino);text-decoration:none;padding:12px 14px;border-radius:10px;cursor:pointer;
  transition:background .18s ease;}
.price-cta__opt:hover,.price-cta__opt:focus-visible{background:var(--gb-azul-soft);outline:none;}
.price-cta__opt::before{content:"";width:9px;height:9px;flex:none;border-radius:50%;background:#25D366;}

/* fix: el desplegable de "Solicitar precios" en la banda de catálogo no debe recortarse ni quedar bajo la banda gris */
.cat-download{overflow:visible;z-index:3;}
/* hover del botón "Solicitar precios": stroke navy (no azul claro) */
.price-cta__trigger.btn--amarillo:hover{border-color:var(--gb-marino);}

/* ============================================================
   FLUENT FORMS — estilo de marca POR CONTEXTO (form "Muestra gratis")
   Estructura FF: .fluentform > form.frm-fluent-form > fieldset > .ff-el-group*N
   HOME (.contact): minimalista, inputs SUBRAYADOS, solo nombre/email/empresa/mensaje.
   CONTACTO (.contact-page): TARJETA AMARILLA, 2 columnas, cajas blancas compactas.
   (.contact y .contact-page son clases distintas → no se solapan.)
   ============================================================ */
/* ---------- base común ---------- */
.fluentform.ff-default{color:var(--gb-marino);font-family:var(--font-body);}
.fluentform fieldset{border:0;margin:0;padding:0;min-inline-size:0;}
.fluentform .ff-el-input--label label{font-family:var(--font-display);font-weight:700;
  font-size:1.02rem;letter-spacing:-.3px;color:var(--gb-marino);margin-bottom:8px;display:inline-block;}
.fluentform .ff-el-input--label.asterisk-right label:after{color:#C43C2B;}
.fluentform input.ff-el-form-control,
.fluentform textarea.ff-el-form-control,
.fluentform select.ff-el-form-control{width:100%;box-sizing:border-box;font-family:var(--font-body);
  color:var(--gb-marino);transition:border-color .2s ease,box-shadow .2s ease;}
.fluentform input.ff-el-form-control::placeholder,
.fluentform textarea.ff-el-form-control::placeholder{color:var(--gb-marino);opacity:.45;}
/* radio (¿Quién eres?) + checkbox de interés -> PILLS (ambos contextos) */
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-input--content,
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-input--content{display:flex;flex-wrap:wrap;gap:8px;}
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-form-check,
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-form-check{margin:0;padding:0;min-height:0;}
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-form-check-label,
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-form-check-label{
  display:inline-block;cursor:pointer;font-family:var(--font-body);font-size:.95rem;color:var(--gb-marino);
  border:1.5px solid rgba(31,42,99,.3);border-radius:var(--radius-full);padding:9px 16px;line-height:1;
  transition:background .2s ease,color .2s ease,border-color .2s ease;}
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-form-check-input,
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-form-check-input{position:absolute;opacity:0;width:0;height:0;margin:0;}
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-form-check-label:hover,
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-form-check-label:hover{border-color:var(--gb-marino);}
.fluentform .ff-el-group:has(input[type=radio]) .ff-el-form-check-label:has(input:checked),
.fluentform .ff-el-group:has(input[name="interes[]"]) .ff-el-form-check-label:has(input:checked){
  background:var(--gb-marino);color:#fff;border-color:var(--gb-marino);}
/* consentimiento -> checkbox real + texto (ambos) */
.fluentform .ff-el-group:has(input[name="privacidad[]"]) .ff-el-form-check-label{
  display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-family:var(--font-body);
  font-size:.9rem;line-height:1.35;color:var(--gb-marino);opacity:.9;}
.fluentform .ff-el-group:has(input[name="privacidad[]"]) .ff-el-form-check-input{
  appearance:none;-webkit-appearance:none;flex:none;width:20px;height:20px;margin:1px 0 0;
  border:1.5px solid rgba(31,42,99,.4);border-radius:6px;background:#fff;position:static;opacity:1;
  display:grid;place-content:center;cursor:pointer;transition:background .2s ease;}
.fluentform .ff-el-group:has(input[name="privacidad[]"]) .ff-el-form-check-input:checked{background:var(--gb-marino);border-color:var(--gb-marino);}
.fluentform .ff-el-group:has(input[name="privacidad[]"]) .ff-el-form-check-input:checked:after{
  content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px);}
/* botón enviar (base). FF emite un CSS por-formulario (form.fluent_form_3 .ff-btn-submit,
   especificidad 0,3,2) con el color del ajuste → hay que ganarle con !important. */
.fluentform .ff_submit_btn_wrapper{margin-top:4px;}
.fluentform .ff-btn-submit{border-radius:var(--radius-full)!important;font-family:var(--font-body)!important;font-weight:600;
  font-size:var(--fs-button);padding:.85em 2em!important;line-height:1;cursor:pointer;border:1.5px solid var(--gb-marino)!important;
  width:auto!important;transition:background .25s ease,color .25s ease,transform .16s ease;}
.fluentform .ff-btn-submit:hover{transform:translateY(-1px);}

/* ---------- CONTACTO: tarjeta amarilla + 2 columnas ---------- */
.contact-page .fluentform.ff-default{background:var(--gb-amarillo);border-radius:var(--radius-md);padding:clamp(24px,2.6vw,40px);}
.contact-page .fluentform fieldset{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.4vw,18px);align-items:start;}
.contact-page .fluentform .ff-el-group{margin:0;}
.contact-page .fluentform fieldset > .ff-el-group:has(input[type=radio]),
.contact-page .fluentform fieldset > .ff-el-group:has(input[name="interes[]"]),
.contact-page .fluentform fieldset > .ff-el-group:has(textarea),
.contact-page .fluentform fieldset > .ff-el-group:has(input[name="privacidad[]"]),
.contact-page .fluentform fieldset > .ff_submit_btn_wrapper{grid-column:1 / -1;}
.contact-page .fluentform input.ff-el-form-control,
.contact-page .fluentform textarea.ff-el-form-control,
.contact-page .fluentform select.ff-el-form-control{background:#fff;border:1.5px solid transparent;
  border-radius:12px;padding:13px 16px;font-size:1rem;}
.contact-page .fluentform textarea.ff-el-form-control{min-height:96px;line-height:1.35;resize:vertical;}
.contact-page .fluentform input.ff-el-form-control:focus,
.contact-page .fluentform textarea.ff-el-form-control:focus{outline:none;border-color:var(--gb-marino);box-shadow:0 0 0 3px rgba(31,42,99,.18);}
.contact-page .fluentform .ff-btn-submit{background:var(--gb-marino)!important;color:#fff!important;}
.contact-page .fluentform .ff-btn-submit:hover{background:var(--gb-marino-hover)!important;}
.contact-page .fluentform .ff-btn-submit:after{content:"→";margin-left:.6em;}
@media (max-width:520px){ .contact-page .fluentform fieldset{grid-template-columns:1fr;} }

/* ---------- HOME: minimalista subrayado + 4 campos (placeholder-only) ---------- */
.contact .fluentform.ff-default{background:transparent;padding:0;}
.contact .fluentform fieldset{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,32px);}
.contact .fluentform .ff-el-group{margin:0;}
/* sin etiquetas: el campo se identifica por el placeholder (home.js los fija) */
.contact .fluentform .ff-el-input--label{display:none;}
/* la home solo muestra nombre, email, empresa, mensaje (+consentimiento) */
.contact .fluentform .ff-el-group:has(input[name="telefono"]),
.contact .fluentform .ff-el-group:has(input[type=radio]),
.contact .fluentform .ff-el-group:has(input[name="interes[]"]){display:none;}
/* inputs subrayados */
.contact .fluentform input.ff-el-form-control{background:transparent;border:0;border-bottom:1px solid var(--gb-marino);
  border-radius:0;padding:0 0 10px;font-size:1.15rem;}
.contact .fluentform input.ff-el-form-control:focus{outline:none;box-shadow:none;border-bottom-color:var(--gb-marino-deep);}
/* textarea en caja */
.contact .fluentform textarea.ff-el-form-control{background:transparent;border:1px solid var(--gb-marino);
  border-radius:var(--radius-md);min-height:130px;padding:14px 16px;font-size:1.05rem;line-height:1.4;resize:vertical;}
/* botón ghost */
.contact .fluentform .ff-btn-submit{background:transparent!important;color:var(--gb-marino)!important;}
.contact .fluentform .ff-btn-submit:hover{background:var(--gb-marino)!important;color:#fff!important;}

/* mensajes */
.fluentform .ff-el-is-error .ff-el-form-control{border-color:#C43C2B;}
.fluentform .error.text-danger,.fluentform .ff-el-is-error-message{color:#C43C2B;font-size:.85rem;}
.ff-message-success{background:var(--gb-verde-soft);border:1.5px solid var(--gb-verde);
  color:var(--gb-marino);border-radius:var(--radius-md);padding:18px 20px;font-family:var(--font-body);}
