/*
Theme Name: Cultivo
Theme URI: https://cultivo.cl
Author: Perkin / Cultivo.cl
Description: Tema a medida para Cultivo.cl — semillas de cannabis a granel. Diseno propio, WooCommerce, precios por escalera via mu-plugin. Paleta y tipografia extraidas del logo.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: cultivo
*/

/* ============================================================
   CULTIVO.CL — Sistema de diseño
   Paleta extraída del logo por análisis de píxeles.
   ============================================================ */
:root{
  --negro:#040404;        /* fondo del logo */
  --carbon:#0D0F0B;
  --carbon-2:#151812;
  --hueso:#F6F5F5;        /* blanco del logo */
  --hueso-2:#B9BDB2;

  --verde:#8CBF3C;        /* verde de marca (p50 #87AF38 / p90 #93BD3F) */
  --verde-cl:#A8D45A;
  --verde-osc:#3E5220;

  --semilla:#C0902F;      /* dorado de las semillas de la foto */
  --lacre:#A6392E;        /* sello del acta */
  --papel:#E9E3D5;        /* el acta, único elemento claro */
  --tinta:#171410;

  --linea:rgba(246,245,245,.14);
  --linea-verde:rgba(140,191,60,.28);

  --display:'Saira',system-ui,sans-serif;   /* geométrica ancha, eco del logotipo */
  --cuerpo:'Inter',system-ui,sans-serif;
  --dato:'IBM Plex Mono',ui-monospace,monospace;
  --acta:'Source Serif 4',Georgia,serif;

  --gut:clamp(1.25rem,4vw,3rem);
  --sec:clamp(4rem,9vw,7.5rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--negro);color:var(--hueso);overflow-x:hidden;
  font-family:var(--cuerpo);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--verde);outline-offset:3px}

.wrap{width:min(1180px,100% - var(--gut)*2);margin-inline:auto;position:relative;z-index:2}
.band{padding-block:var(--sec);position:relative;isolation:isolate}

h1,h2{font-family:var(--display);font-weight:800;line-height:1.0;
  letter-spacing:.005em;text-transform:uppercase;margin:0}
h1{font-size:clamp(2.5rem,7vw,5.2rem)}
h2{font-size:clamp(1.85rem,4.2vw,3rem)}
h3{font-family:var(--display);font-weight:600;font-size:1.15rem;margin:0}

/* Rótulo: eco del divisor del logo (línea · punto · línea) */
.rotulo{font-family:var(--dato);font-size:.72rem;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--verde);display:flex;align-items:center;
  gap:.85rem;margin-bottom:1.5rem}
.rotulo::before{content:"";width:24px;height:1px;background:var(--verde)}
.rotulo::after{content:"";flex:1;height:1px;background:var(--linea)}

/* ---------- Fondos fotográficos ---------- */
.foto{position:absolute;inset:0;z-index:0;background-size:cover;
  background-position:center;background-repeat:no-repeat}
.foto::after{content:"";position:absolute;inset:0}

#hero .foto{background-image:url(assets/img/favicon.webp)}
#hero .foto::after{background:
  linear-gradient(105deg, rgba(4,4,4,.96) 0%, rgba(4,4,4,.86) 42%, rgba(4,4,4,.42) 72%, rgba(4,4,4,.62) 100%)}

/* Precios — el contador automático marca 10000, el mismo tramo mayorista */
#precios .foto{background-image:url(assets/img/hero-desktop.webp);background-position:center 22%}
#precios .foto::after{background:
  linear-gradient(180deg, var(--negro) 0%, rgba(4,4,4,.72) 18%, rgba(4,4,4,.80) 80%, var(--negro) 100%)}

/* La de Kilo — única foto diurna del sitio. Velo direccional: negro donde va
   el texto, la planta respira detrás del acta. */
#kilo .foto{background-image:url(assets/img/precios.webp);background-position:center 42%}
#kilo .foto::after{background:
  linear-gradient(92deg, rgba(4,4,4,.97) 0%, rgba(4,4,4,.92) 34%, rgba(4,4,4,.55) 62%, rgba(4,4,4,.74) 100%),
  radial-gradient(120% 90% at 50% 50%, transparent 40%, rgba(4,4,4,.70) 100%)}

/* Germinación — raíz, radícula, plántula. El único plano cerrado del sitio.
   Velo de izquierda a derecha: la prosa vive en negro, la foto respira a la derecha. */
#germinacion .foto{background-image:url(assets/img/kilo-desktop.webp);background-position:center 38%}
#germinacion .foto::after{background:
  linear-gradient(90deg, rgba(4,4,4,.97) 0%, rgba(4,4,4,.94) 40%, rgba(4,4,4,.62) 68%, rgba(4,4,4,.80) 100%),
  linear-gradient(180deg, var(--negro) 0%, transparent 14%, transparent 86%, var(--negro) 100%)}

#mayorista .foto{background-image:url(assets/img/germ-desktop.webp);opacity:.30}
#mayorista .foto::after{background:linear-gradient(180deg,var(--negro),rgba(4,4,4,.55),var(--negro))}

@media(max-width:900px){
  #hero .foto{background-image:url(assets/img/mayorista.webp);background-position:center bottom}
  #hero .foto::after{background:linear-gradient(180deg,rgba(4,4,4,.94) 0%,rgba(4,4,4,.88) 55%,rgba(4,4,4,.72) 100%)}
  #precios .foto{background-image:url(assets/img/hero-mobile.webp);background-position:center top}
  #kilo .foto{background-image:url(assets/img/precios-mobile.webp);background-position:center 30%}
  #kilo .foto::after{background:linear-gradient(180deg,rgba(4,4,4,.95) 0%,rgba(4,4,4,.88) 45%,rgba(4,4,4,.80) 100%)}
  #germinacion .foto{background-image:url(assets/img/kilo-mobile.webp);background-position:center 30%}
  #germinacion .foto::after{background:linear-gradient(180deg,rgba(4,4,4,.90) 0%,rgba(4,4,4,.93) 45%,rgba(4,4,4,.96) 100%)}
}

/* ---------- Gate +18 ---------- */
.edad{position:fixed;inset:0;z-index:100;background:var(--negro);display:grid;place-items:center;padding:var(--gut)}
.edad[hidden]{display:none}
.edad__caja{max-width:31rem;text-align:center}
.edad img{width:210px;margin:0 auto 2.25rem}
.edad h2{font-size:1.5rem;margin-bottom:1rem}
.edad p{color:var(--hueso-2);font-size:.95rem}
.edad__btns{display:flex;gap:.75rem;justify-content:center;margin-top:1.75rem}

/* ---------- Botones ---------- */
.btn{font-family:var(--dato);font-size:.78rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;padding:.95rem 1.7rem;border:1px solid var(--verde);
  background:var(--verde);color:var(--negro);cursor:pointer;text-decoration:none;
  display:inline-block;transition:background .18s,border-color .18s}
.btn:hover{background:var(--verde-cl);border-color:var(--verde-cl)}
.btn--linea{background:transparent;color:var(--hueso);border-color:var(--linea)}
.btn--linea:hover{background:transparent;border-color:var(--hueso)}

/* ---------- Cabecera ---------- */
.top{position:sticky;top:0;z-index:40;background:rgba(4,4,4,.90);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.top__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.9rem}
.top__in img{height:34px;width:auto}
.nav{display:flex;gap:1.85rem;font-family:var(--dato);font-size:.74rem;letter-spacing:.15em;text-transform:uppercase}
.nav a{text-decoration:none;color:var(--hueso-2)}
.nav a:hover{color:var(--verde)}
.nav .btn{display:none}

.menu-btn{display:none;background:none;border:1px solid var(--linea);color:var(--hueso);
  width:44px;height:44px;cursor:pointer;padding:0;align-items:center;justify-content:center}
.menu-btn span{display:block;width:20px;height:1.5px;background:currentColor;position:relative}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:20px;
  height:1.5px;background:currentColor;transition:transform .2s,top .2s}
.menu-btn span::before{top:-6px}
.menu-btn span::after{top:6px}
.menu-btn[aria-expanded=true] span{background:transparent}
.menu-btn[aria-expanded=true] span::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] span::after{top:0;transform:rotate(-45deg)}

@media(max-width:900px){
  .top__in img{height:28px}
  .menu-btn{display:flex}
  .top > .wrap > .btn{display:none}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--negro);border-bottom:1px solid var(--linea);
    max-height:0;overflow:hidden;transition:max-height .25s ease}
  .nav[data-open=true]{max-height:26rem}
  .nav a{padding:1.05rem 0;border-top:1px solid var(--linea);font-size:.82rem;color:var(--hueso)}
  .nav .btn{display:block;margin:1.1rem 0 1.4rem;text-align:center;border-top:0;color:var(--negro)}
}

/* Pantallas angostas: la báscula deja de ser una fila. */
@media(max-width:400px){
  .bascula__fila{flex-direction:column;align-items:flex-start;gap:.4rem}
  .bascula__qty{font-size:1.25rem}
  .confianza__in{gap:1.35rem}
}

/* ---------- Héroe ---------- */
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(max-width:900px){.hero__grid{grid-template-columns:1fr}}
.hero h1 em{font-style:normal;color:var(--verde);display:block}
.hero__bajada{font-size:1.15rem;color:var(--hueso-2);max-width:36ch;margin:1.75rem 0 2.25rem}

/* ---------- Báscula ---------- */
.bascula{background:rgba(13,15,11,.90);border:1px solid var(--linea-verde);
  padding:clamp(1.5rem,3vw,2.25rem);backdrop-filter:blur(6px)}
.bascula__cab{display:flex;justify-content:space-between;align-items:baseline;
  font-family:var(--dato);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--verde);border-bottom:1px solid var(--linea);padding-bottom:.9rem;margin-bottom:1.9rem}
.bascula__fila{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.bascula__unit{font-family:var(--display);font-weight:800;line-height:1;letter-spacing:-.01em;
  font-size:clamp(3.2rem,7.5vw,4.6rem);color:var(--hueso)}
.bascula__unit small{display:block;font-family:var(--dato);font-size:.72rem;font-weight:400;
  letter-spacing:.16em;color:var(--hueso-2);text-transform:uppercase;margin-top:.6rem}
.bascula__qty{font-family:var(--dato);font-size:1.5rem;font-weight:600;color:var(--verde)}

input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;
  background:var(--linea);margin:2.1rem 0 .6rem;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;
  border-radius:4px;background:var(--verde);border:3px solid var(--carbon);cursor:grab}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:4px;
  background:var(--verde);border:3px solid var(--carbon);cursor:grab}
.marcas{display:flex;justify-content:space-between;font-family:var(--dato);font-size:.66rem;
  color:var(--hueso-2);opacity:.55;letter-spacing:.06em}

.total{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.9rem;
  padding-top:1.4rem;border-top:1px solid var(--linea)}
.total__lbl{font-family:var(--dato);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--hueso-2)}
.total__val{font-family:var(--dato);font-size:1.45rem;font-weight:600}
.ahorro{font-family:var(--dato);font-size:.74rem;color:var(--verde);margin-top:.7rem;text-align:right}
.envio{font-family:var(--dato);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--semilla);margin-top:1.25rem}

/* ---------- Escalera ---------- */
.escalera{width:100%;border-collapse:collapse;font-family:var(--dato);font-size:.9rem}
.escalera th{text-align:left;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--verde);font-weight:600;padding:0 0 1rem;border-bottom:1px solid var(--linea)}
.escalera td{padding:1.05rem 0;border-bottom:1px solid var(--linea)}
.escalera td:nth-child(n+2){text-align:right}
.escalera tbody tr:hover td{background:rgba(140,191,60,.06)}
.escalera .destaca td{color:var(--verde)}
.escalera .destaca td:first-child::after{content:"MÁS PEDIDO";font-size:.58rem;letter-spacing:.16em;
  margin-left:.9rem;padding:.22rem .5rem;background:var(--lacre);color:var(--hueso)}
.escalera .mayor a{color:var(--verde);text-decoration:none}
.nota{font-family:var(--dato);font-size:.72rem;color:var(--hueso-2);opacity:.6;margin-top:1.5rem}

/* En móvil la tabla se rompe: cada fila pasa a ser una tarjeta con etiquetas. */
@media(max-width:720px){
  .escalera, .escalera tbody, .escalera tr, .escalera td{display:block;width:100%}
  .escalera thead{position:absolute;left:-9999px}
  .escalera tr{border:1px solid var(--linea);padding:1rem 1.1rem;margin-bottom:.75rem;
    background:rgba(13,15,11,.72)}
  .escalera tbody tr:hover td{background:none}
  .escalera td{border:0;padding:.42rem 0;display:flex;justify-content:space-between;
    align-items:baseline;gap:1rem}
  .escalera td:nth-child(n+2){text-align:right}
  .escalera td::before{content:attr(data-l);font-size:.64rem;letter-spacing:.16em;
    text-transform:uppercase;color:var(--hueso-2);opacity:.7;flex:none}
  .escalera td:first-child{font-size:1.1rem;color:var(--hueso);padding-bottom:.8rem;
    margin-bottom:.5rem;border-bottom:1px solid var(--linea)}
  .escalera .destaca{border-color:var(--verde)}
  .escalera .destaca td:first-child::after{display:block;margin:.55rem 0 0}
  .escalera .mayor td[colspan]{justify-content:flex-end}
  .escalera .mayor td[colspan]::before{content:none}
}

/* ---------- Acta (elemento firma) ---------- */
.dosgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(max-width:900px){.dosgrid{grid-template-columns:1fr}}
.acta{background:var(--papel);color:var(--tinta);padding:clamp(1.6rem,3vw,2.4rem);
  position:relative;box-shadow:0 30px 70px -20px rgba(0,0,0,.95), 0 0 0 1px rgba(0,0,0,.5)}
.acta::before{content:"";position:absolute;inset:.55rem;border:1px solid rgba(23,20,16,.16);pointer-events:none}
.acta__cab{font-family:var(--dato);font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;
  color:rgba(23,20,16,.5);margin-bottom:1.4rem}
.acta h3{font-family:var(--display);font-weight:800;font-size:1.55rem;text-transform:uppercase;
  line-height:1.02;margin-bottom:1.5rem}
.acta dl{display:grid;grid-template-columns:auto 1fr;gap:.7rem 1.5rem;font-family:var(--dato);font-size:.82rem;margin:0}
.acta dt{color:rgba(23,20,16,.55)}
.acta dd{margin:0;text-align:right;font-weight:600}
.acta__tasa{margin-top:1.6rem;padding-top:1.3rem;border-top:1px dashed rgba(23,20,16,.28);
  display:flex;justify-content:space-between;align-items:baseline}
.acta__tasa span{font-family:var(--dato);font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(23,20,16,.55)}
.acta__tasa b{font-family:var(--display);font-size:2.5rem;font-weight:800;color:var(--verde-osc)}
.sello{position:absolute;right:1.4rem;bottom:1.4rem;width:92px;height:92px;border:2px solid var(--lacre);
  border-radius:50%;color:var(--lacre);display:grid;place-items:center;text-align:center;
  transform:rotate(-11deg);font-family:var(--dato);font-size:.53rem;font-weight:600;
  letter-spacing:.1em;line-height:1.35;opacity:.85}
@media(max-width:520px){.sello{display:none}}

/* ---------- Catálogo ---------- */
.filtros{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2.5rem}
.chip{font-family:var(--dato);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;
  padding:.6rem 1rem;border:1px solid var(--linea);background:none;color:var(--hueso-2);cursor:pointer}
.chip[aria-pressed=true]{background:var(--verde);color:var(--negro);border-color:var(--verde)}
.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1px;
  background:var(--linea);border:1px solid var(--linea)}
.cepa{background:var(--negro);padding:1.6rem 1.4rem;display:flex;flex-direction:column;gap:.85rem;transition:background .18s}
.cepa:hover{background:var(--carbon-2)}
.cepa[hidden]{display:none}
.cepa__sku{font-family:var(--dato);font-size:.64rem;letter-spacing:.18em;color:var(--verde-osc)}
.cepa__nom{font-size:1.25rem;line-height:1.15}
.cepa__meta{font-family:var(--dato);font-size:.7rem;color:var(--hueso-2);margin-top:auto;
  padding-top:.9rem;border-top:1px solid var(--linea);display:flex;justify-content:space-between}
.cepa__meta b{color:var(--verde);font-weight:600}
.cepa--exc{background:var(--carbon-2);outline:1px solid var(--semilla);outline-offset:-1px}
.cepa--exc .cepa__sku{color:var(--semilla)}
.cepa--exc .cepa__meta b{color:var(--semilla)}

/* ---------- Germinación ---------- */
.prosa{max-width:min(62ch,58%)}
.prosa p{color:var(--hueso-2);margin:1.4rem 0 0}
.prosa p:first-of-type{font-size:1.1rem;color:var(--hueso)}
@media(max-width:900px){.prosa{max-width:100%}}

/* ---------- Legal / pie ---------- */
/* ---------- Franja de confianza ----------
   Fondo claro a propósito: los logos de Starken, Transbank y BancoEstado tienen
   guías de marca y no se pueden monocromar. Sobre hueso conservan su color y se leen. */
.confianza{background:var(--hueso);color:var(--tinta);padding-block:2.6rem;
  border-top:3px solid var(--verde)}
.confianza__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(1.75rem,5vw,4.5rem)}
.sello-pago{display:flex;align-items:center;gap:1rem;text-align:left}
.sello-pago img{height:44px;width:auto;flex:none}
.sello-pago img.tesela{border-radius:6px}
.sello-pago b{display:block;font-family:var(--display);font-weight:600;font-size:.9rem;
  text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.sello-pago span{display:block;font-family:var(--dato);font-size:.68rem;
  letter-spacing:.09em;text-transform:uppercase;color:rgba(23,20,16,.55);margin-top:.2rem}
@media(max-width:640px){
  .confianza__in{flex-direction:column;align-items:flex-start;gap:1.5rem}
  .confianza__in{width:min(420px,100%);margin-inline:auto}
}

/* ---------- WhatsApp ---------- */
.wsp{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;display:flex;align-items:center;
  gap:.7rem;background:#25D366;color:#04180C;text-decoration:none;
  padding:.85rem 1.25rem;border-radius:999px;
  box-shadow:0 10px 30px -8px rgba(0,0,0,.75);
  font-family:var(--dato);font-size:.78rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;transition:transform .16s}
.wsp:hover{transform:translateY(-2px)}
.wsp svg{width:22px;height:22px;flex:none;fill:currentColor}
.wsp span{white-space:nowrap}
@media(max-width:640px){.wsp span{display:none}.wsp{padding:1rem;border-radius:50%}}

.legal{border-top:1px solid var(--linea);background:var(--negro);padding-block:3.5rem}
.legal p{font-family:var(--dato);font-size:.72rem;line-height:1.95;color:var(--hueso-2);
  max-width:72ch;margin:0 auto;text-align:center;opacity:.62}
.pie{border-top:1px solid var(--linea);margin-top:2.5rem;padding-top:2.5rem;font-family:var(--dato);
  font-size:.7rem;letter-spacing:.1em;color:var(--hueso-2);display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;opacity:.55}
