/* ============================================================
   BIOFARMS — Content sections
   ============================================================ */

/* color contexts */
.ctx-dark{ background:var(--ink); color:var(--on-dark); }
.ctx-light{ background:var(--paper); color:var(--on-light); }
.ctx-dark .chapter, .ctx-dark .eyebrow{ color:var(--on-dark-soft); }
.ctx-light .chapter, .ctx-light .eyebrow{ color:var(--on-light-soft); }

.section-head{ display:flex; flex-direction:column; gap:clamp(18px,2.2vw,30px); max-width:min(660px,100%); }
.section-head .h2{ max-width:16ch; }
.section-head .lead{ max-width:48ch; }
.section-head.wide{ max-width:880px; }
.section-head.wide .h2{ max-width:20ch; }

/* ---------- ORIGEN ---------- */
.origen{ overflow:hidden; }
.origen__top{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(30px,5vw,90px); align-items:end; }
.origen__lead{ color:var(--on-dark-soft); font-size:clamp(16px,1.25vw,20px); line-height:1.6; max-width:46ch; padding-bottom:.4em; }
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,40px); margin-top:clamp(50px,7vw,110px); }
.pillar{ border-top:1px solid var(--on-dark-faint); padding-top:24px; }
.pillar .k{ font-size:12px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--lime); margin-bottom:18px; }
.pillar .v{ font-family:var(--serif); font-size:clamp(22px,1.9vw,30px); line-height:1.12; letter-spacing:-0.01em; margin-bottom:14px; }
.pillar p{ color:var(--on-dark-soft); font-size:15px; line-height:1.6; }
@media (max-width:860px){ .origen__top{ grid-template-columns:1fr; } .pillars{ grid-template-columns:1fr; gap:0; } .pillar{ padding-block:24px; } }

/* ---------- CIFRAS (stat band) ---------- */
.cifras{ background:var(--ink-2); }
.cifras__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--on-dark-faint); border:1px solid var(--on-dark-faint); }
.stat{ background:var(--ink-2); padding:clamp(28px,3.2vw,52px) clamp(22px,2.4vw,40px); display:flex; flex-direction:column; gap:14px; min-height:clamp(220px,24vw,320px); justify-content:space-between; }
.stat__num{ font-family:var(--serif); font-weight:400; line-height:0.9; letter-spacing:-0.03em; font-size:clamp(56px,7vw,118px); }
.stat__num .unit{ font-size:.32em; letter-spacing:0; color:var(--lime); vertical-align:super; margin-left:.1em; }
.stat__lab{ font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--on-dark-soft); }
.stat__desc{ color:var(--on-dark-faint); font-size:14px; line-height:1.5; }
@media (max-width:860px){ .cifras__grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- CADENA DE FRÍO (split + parallax image) ---------- */
.frio{ background:var(--ink); overflow:hidden; }
.frio__grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:clamp(30px,5vw,80px); align-items:center; }
.frio__media{ position:relative; aspect-ratio:4/5; border-radius:6px; overflow:hidden; }
.frio__media img{ width:100%; height:118%; object-fit:cover; will-change:transform; }
.frio__media .tag{ position:absolute; left:20px; bottom:20px; z-index:2; background:rgba(6,23,15,.7); backdrop-filter:blur(8px); padding:10px 16px; border-radius:100px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark); border:1px solid rgba(237,242,236,.16); }
.frio__metrics{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--on-dark-faint); margin-top:clamp(34px,4vw,56px); border:1px solid var(--on-dark-faint); }
.metric{ background:var(--ink); padding:clamp(20px,2vw,30px); }
.metric .k{ font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--on-dark-faint); margin-bottom:12px; }
.metric .v{ font-family:var(--serif); font-size:clamp(20px,1.8vw,28px); line-height:1.05; }
.metric .v b{ color:var(--lime); font-weight:400; }
@media (max-width:860px){ .frio__grid{ grid-template-columns:1fr; } .frio__media{ aspect-ratio:4/3; } }

/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.chip{ display:inline-flex; align-items:center; gap:.6em; font-size:13px; font-weight:500; padding:.6em 1.05em; border-radius:100px; border:1px solid var(--on-dark-faint); color:var(--on-dark-soft); }
.chip i{ width:7px; height:7px; border-radius:50%; background:var(--lime); font-style:normal; }
.ctx-light .chip{ border-color:var(--on-light-faint); color:var(--on-light-soft); }
.ctx-light .chip i{ background:var(--green); }

/* ---------- COBERTURA ---------- */
.cober{ background:var(--paper); overflow:hidden; }
.cober__top{ display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(30px,4.5vw,72px); align-items:stretch; }
.cober__copy{ display:flex; flex-direction:column; justify-content:center; }
.cober__media{ position:relative; border-radius:16px; overflow:hidden; min-height:clamp(320px,34vw,480px); box-shadow:0 36px 80px -44px rgba(12,33,23,.45); }
.cober__media img{ position:absolute; left:0; top:-6%; width:100%; height:112%; object-fit:cover; will-change:transform; }
/* destinations band */
.dest-band{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--paper-3); border:1px solid var(--paper-3); border-radius:14px; overflow:hidden; margin-top:clamp(34px,4vw,56px); }
.dest{ background:var(--paper-2); padding:clamp(20px,1.8vw,30px) clamp(16px,1.4vw,22px); display:flex; flex-direction:column; gap:10px; min-height:clamp(140px,13vw,180px); transition:background .4s var(--ease); }
.dest:hover{ background:#fff; }
.dest .ix{ font-family:var(--serif); font-size:clamp(20px,1.8vw,28px); color:var(--on-light-faint); line-height:1; }
.dest .nm{ font-size:clamp(17px,1.35vw,22px); font-weight:600; letter-spacing:-0.01em; margin-top:auto; }
.dest .ty{ font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.dest .ty.o{ color:var(--blue); }
.dest .ty.d{ color:var(--green-deep); }
@media (max-width:980px){ .cober__top{ grid-template-columns:1fr; } .cober__media{ min-height:clamp(280px,60vw,420px); } .dest-band{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .dest-band{ grid-template-columns:repeat(2,1fr); } }

/* ---------- SERVICIOS ---------- */
.serv{ background:var(--paper); }
.serv__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,1.8vw,28px); margin-top:clamp(44px,5vw,76px); }
.scard{
  position:relative; background:var(--paper-2); border:1px solid var(--paper-3);
  border-radius:12px; padding:clamp(30px,2.6vw,46px); min-height:clamp(360px,32vw,460px);
  display:flex; flex-direction:column; overflow:hidden;
  transition:transform .6s var(--ease), box-shadow .6s var(--ease), border-color .6s;
}
.scard:hover{ transform:translateY(-8px); box-shadow:0 34px 70px -30px rgba(12,33,23,.32); border-color:transparent; }
.scard__head{ display:flex; align-items:baseline; gap:.6em; margin-bottom:clamp(28px,3vw,44px); }
.scard__no{ font-family:var(--serif); font-size:clamp(40px,3.6vw,58px); line-height:.8; color:var(--paper-3); transition:color .5s; }
.scard:hover .scard__no{ color:var(--green); }
.scard__kicker{ font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--on-light-faint); }
.scard__t{ font-family:var(--serif); font-size:clamp(26px,2.1vw,34px); line-height:1.04; margin-bottom:16px; letter-spacing:-0.01em; }
.scard__d{ color:var(--on-light-soft); font-size:clamp(15px,1.05vw,16.5px); line-height:1.62; margin-bottom:26px; }
.scard__tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.scard__bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--grad); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease); }
.scard:hover .scard__bar{ transform:scaleX(1); }
@media (max-width:920px){ .serv__grid{ grid-template-columns:1fr; } .scard{ min-height:0; } }

/* ---------- PRODUCTOS ---------- */
.prod{ background:var(--ink); overflow:hidden; }
.prod__tabs{ display:flex; gap:8px; margin-top:30px; }
.prod__tab{ font-size:13px; font-weight:600; letter-spacing:.04em; padding:.7em 1.3em; border-radius:100px; border:1px solid var(--on-dark-faint); color:var(--on-dark-soft); transition:all .4s var(--ease); }
.prod__tab.active{ background:var(--on-dark); color:var(--ink); border-color:var(--on-dark); }
.prod__origins{ display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:26px; color:var(--on-dark-soft); font-size:13px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
.prod__origins span{ position:relative; }
.prod__origins span:not(:last-child)::after{ content:"·"; position:absolute; right:-13px; opacity:.4; }
.pgrid{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--on-dark-faint); border:1px solid var(--on-dark-faint); margin-top:clamp(36px,4vw,60px); }
.pcell{
  background:var(--ink); padding:clamp(20px,1.8vw,30px); display:flex; flex-direction:column; gap:6px;
  min-height:clamp(220px,20vw,300px); position:relative; overflow:hidden; transition:background .5s;
}
.pcell:hover{ background:var(--ink-3); }
.pcell__img{ flex:1; display:flex; align-items:center; justify-content:center; min-height:0; margin-bottom:8px; }
.pcell__img img{ max-height:clamp(90px,9vw,150px); width:auto; object-fit:contain; transition:transform .6s var(--ease); filter:drop-shadow(0 12px 24px rgba(0,0,0,.45)); }
.pcell:hover .pcell__img img{ transform:scale(1.09) rotate(-2deg); }
.pcell__name{ font-family:var(--serif); font-size:clamp(18px,1.5vw,24px); line-height:1; }
.pcell__var{ font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--on-dark-faint); }
.pcell.span2{ grid-column:span 2; }
@media (max-width:1100px){ .pgrid{ grid-template-columns:repeat(3,1fr); } .pcell.span2{ grid-column:span 1; } }
@media (max-width:640px){ .pgrid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- ESPECIALIDADES ---------- */
.spec{ background:var(--ink-2); }
.spec__row{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(20px,4vw,60px); padding:clamp(34px,5vw,70px) 0; border-top:1px solid var(--on-dark-faint); transition:padding .5s; }
.spec__row:last-child{ border-bottom:1px solid var(--on-dark-faint); }
.spec__no{ font-family:var(--serif); font-size:clamp(28px,2.4vw,42px); color:var(--on-dark-faint); }
.spec__main{ }
.spec__t{ font-family:var(--serif); font-size:clamp(34px,5vw,82px); line-height:0.98; letter-spacing:-0.02em; display:flex; align-items:baseline; gap:.3em; flex-wrap:wrap; }
.spec__t em{ font-style:italic; color:var(--lime); font-size:.5em; }
.spec__d{ color:var(--on-dark-soft); font-size:clamp(14px,1.05vw,17px); line-height:1.55; max-width:48ch; margin-top:16px; }
.spec__media{ width:clamp(120px,14vw,210px); aspect-ratio:1; display:flex; align-items:center; justify-content:center; }
.spec__media img{ max-height:100%; width:auto; object-fit:contain; filter:drop-shadow(0 16px 30px rgba(0,0,0,.5)); transition:transform .7s var(--ease); }
.spec__row:hover .spec__media img{ transform:scale(1.1) rotate(3deg); }
.spec__vars{ display:flex; flex-wrap:wrap; gap:7px; margin-top:18px; }
@media (max-width:860px){ .spec__row{ grid-template-columns:1fr; gap:18px; } .spec__media{ order:-1; } }

/* ---------- CERTIFICACIONES ---------- */
.cert{ background:var(--paper); }
.cert__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--paper-3); border:1px solid var(--paper-3); margin-top:clamp(40px,5vw,70px); }
.cbadge{ background:#fff; min-width:0; aspect-ratio:4/3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:clamp(22px,2.4vw,40px); text-align:center; transition:background .4s; }
.cbadge:hover{ background:var(--paper-2); }
.cbadge img{ max-width:100%; max-height:clamp(58px,6vw,86px); width:auto; object-fit:contain; transition:transform .5s var(--ease); }
.cbadge:hover img{ transform:scale(1.06); }
.cbadge .sc{ font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--on-light-faint); }
@media (max-width:860px){ .cert__grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .cert__grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- CONFIANZA / TESTIMONIAL ---------- */
.trust{ background:var(--ink); overflow:hidden; }
.trust__quote{ font-family:var(--serif); font-size:clamp(28px,3.6vw,58px); line-height:1.14; letter-spacing:-0.015em; max-width:18ch; text-wrap:balance; }
.trust__quote .mark{ color:var(--lime); }
.trust__by{ margin-top:clamp(28px,3vw,44px); font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-soft); display:flex; align-items:center; gap:1em; }
.trust__by::before{ content:""; width:40px; height:1px; background:var(--lime); }

/* logo wall */
.clients__wall{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--on-dark-faint); border:1px solid var(--on-dark-faint); margin-top:clamp(40px,5vw,68px); }
.clogo{ background:#fff; min-width:0; aspect-ratio:3/2; display:flex; align-items:center; justify-content:center; padding:clamp(20px,2.2vw,38px); transition:background .4s var(--ease); }
.clogo img{ max-width:100%; max-height:100%; width:auto; object-fit:contain; filter:saturate(0); opacity:.62; transition:filter .5s var(--ease), opacity .5s var(--ease), transform .5s var(--ease); }
.clogo:hover img{ filter:saturate(1); opacity:1; transform:scale(1.05); }
@media (max-width:920px){ .clients__wall{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:480px){ .clients__wall{ grid-template-columns:repeat(2,1fr); } }

.trust__split{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(30px,5vw,80px); align-items:center; margin-top:clamp(50px,6vw,90px); padding-top:clamp(40px,5vw,70px); border-top:1px solid var(--on-dark-faint); }
.trust__feat{ display:flex; align-items:center; gap:22px; }
.trust__feat .badge{ width:clamp(76px,8vw,110px); height:clamp(76px,8vw,110px); background:#fff; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center; padding:12px; }
.trust__feat .badge img{ max-width:100%; max-height:100%; object-fit:contain; }
.trust__feat .meta .k{ font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--lime); margin-bottom:8px; }
.trust__feat .meta .v{ font-family:var(--serif); font-size:clamp(20px,1.8vw,27px); line-height:1.1; }
.trust__feat .meta .s{ color:var(--on-dark-soft); font-size:14px; margin-top:6px; }
@media (max-width:860px){ .trust__split{ grid-template-columns:1fr; } }

/* ---------- CONTACTO ---------- */
.contacto{ background:var(--paper); color:var(--on-light); }
.contacto__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,64px); align-items:stretch; }
.contacto__info .think{ display:inline-flex; align-items:baseline; gap:.18em; }
.contacto__info .display{ color:var(--on-light); margin:18px 0 0; }
.contacto__sub{ color:var(--on-light-soft); font-size:clamp(16px,1.2vw,20px); max-width:40ch; margin:clamp(20px,2vw,28px) 0 clamp(28px,3vw,38px); }
.contacto__rows{ display:grid; gap:2px; margin-bottom:clamp(28px,3vw,40px); }
.crow{ display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:baseline; padding:16px 0; border-top:1px solid var(--paper-3); }
.crow:last-child{ border-bottom:1px solid var(--paper-3); }
.crow .k{ font-size:11px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--on-light-faint); }
.crow .v{ font-size:clamp(16px,1.2vw,19px); font-weight:500; }
.crow .v a{ transition:color .3s; }
.crow .v a:hover{ color:var(--green-deep); }
.contacto__btns{ display:flex; gap:14px; flex-wrap:wrap; }
.contacto .btn--solid{ background:var(--ink); color:var(--paper); }
.contacto .btn--ghost{ color:var(--ink); }
.contacto .btn--ghost:hover span{ color:var(--paper); }
.contacto__map{ position:relative; min-height:clamp(360px,42vw,560px); border-radius:14px; overflow:hidden; border:1px solid var(--paper-3); box-shadow:0 30px 70px -40px rgba(12,33,23,.4); }
.contacto__map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:saturate(.92); }
.contacto__pin{ position:absolute; left:18px; top:18px; z-index:2; background:rgba(255,255,255,.95); backdrop-filter:blur(8px); border-radius:100px; padding:10px 16px; font-size:12px; font-weight:600; letter-spacing:.06em; color:var(--on-light); display:flex; align-items:center; gap:.6em; box-shadow:0 10px 24px -12px rgba(0,0,0,.4); }
.contacto__pin i{ width:8px; height:8px; border-radius:50%; background:var(--green); font-style:normal; }
@media (max-width:860px){ .contacto__grid{ grid-template-columns:1fr; } }

/* ---------- CTA / FOOTER ---------- */
.cta{ background:var(--paper); color:var(--on-light); text-align:center; }
.cta .display{ color:var(--on-light); }
.cta .think{ display:inline-flex; align-items:baseline; gap:.18em; }
.cta__sub{ color:var(--on-light-soft); font-size:clamp(16px,1.2vw,20px); max-width:42ch; margin:clamp(22px,2.5vw,34px) auto clamp(34px,4vw,48px); }
.cta__btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta .btn--solid{ background:var(--ink); color:var(--paper); }
.cta .btn--ghost{ color:var(--ink); }
.cta .btn--ghost:hover span{ color:var(--paper); }

.footer{ background:var(--ink); color:var(--on-dark); padding-top:clamp(60px,7vw,110px); }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:clamp(28px,3vw,50px); padding-bottom:clamp(50px,6vw,80px); border-bottom:1px solid var(--on-dark-faint); }
.footer__brand .brand{ font-size:30px; margin-bottom:20px; }
.footer__brand p{ color:var(--on-dark-soft); font-size:15px; line-height:1.6; max-width:32ch; }
.fcol h4{ font-size:11px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--on-dark-faint); margin-bottom:20px; }
.fcol a, .fcol p{ display:block; color:var(--on-dark-soft); font-size:15px; line-height:1.5; margin-bottom:12px; transition:color .3s; }
.fcol a:hover{ color:var(--lime); }
.footer__bottom{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding-block:30px; color:var(--on-dark-faint); font-size:13px; }
.footer__bottom .socials{ display:flex; gap:18px; }
.footer__bottom .socials a:hover{ color:var(--lime); }
@media (max-width:860px){ .footer__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer__top{ grid-template-columns:1fr; } }
