/* ═══════════════════════════════════════════════
   TRABAJO-ECOTERRA.CSS — Diseñoverde
   Estilos exclusivos de trabajo/ecoterra.html.
   Requiere base.css cargado ANTES que esta hoja.
   Tokens, reset, nav, footer, botones y .reveal
   viven en base.css — no se redefinen aquí.
   ═══════════════════════════════════════════════ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
/* GALERÍA FOTOS */
.foto-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:40px 0; }
.foto-strip img { width:100%; height:220px; object-fit:cover; border-radius:var(--radio-hoja-sm); display:block; }
.foto-strip .foto-wide { grid-column:span 2; }
/* MODAL */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(15,42,13,0.75); z-index:500; backdrop-filter:blur(6px); align-items:center; justify-content:center; padding:32px; }
.modal-overlay.open { display:flex; }
.modal-box { background:var(--fondo-neutro); border-radius:var(--radio-hoja); max-width:880px; width:100%; max-height:88vh; overflow-y:auto; position:relative; display:grid; grid-template-columns:1fr 1fr; box-shadow:0 32px 80px rgba(15,42,13,0.3); }
.modal-close { position:absolute; top:18px; right:18px; background:var(--gris-1); border:none; cursor:pointer; width:36px; height:36px; border-radius:50%; font-size:18px; color:var(--gris-4); display:flex; align-items:center; justify-content:center; transition:all .2s; z-index:10; }
.modal-close:hover { background:var(--verde); color:white; }
.modal-content { padding:48px; }
.modal-tag { font-size:10px; font-weight:400; text-transform:uppercase; letter-spacing:3px; color:var(--acento); margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.modal-tag::before { content:''; width:16px; height:1px; background:var(--acento); }
.modal-title { font-size:24px; font-weight:800; color:var(--verde-oscuro); letter-spacing:-0.5px; line-height:1.15; margin-bottom:16px; }
.modal-desc { font-size:14px; font-weight:300; color:var(--gris-4); line-height:1.9; }
.modal-desc + .modal-desc { margin-top:12px; }
.modal-link { display:inline-flex; align-items:center; gap:8px; margin-top:24px; background:var(--verde); color:white; padding:12px 24px; border-radius:var(--radio-hoja-sm); font-size:11px; font-weight:400; text-transform:uppercase; letter-spacing:2px; text-decoration:none; transition:background .2s; }
.modal-link:hover { background:var(--verde-oscuro); }
.modal-imgs { background:var(--gris-1); border-radius:0 var(--radio-hoja) var(--radio-hoja) 0; overflow:hidden; display:flex; flex-direction:column; gap:3px; }
.modal-imgs img { width:100%; flex:1; object-fit:cover; display:block; }
/* HERO */
.caso-hero {
  min-height:80vh;
  background:var(--verde-oscuro);
  padding:140px 48px 80px;
  position:relative; overflow:hidden;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:end;
}
.caso-hero-bg {
  position:absolute; inset:0; z-index:0;
}
.caso-hero-bg img {
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block;
}
.caso-hero-bg::after {
  content:''; position:absolute; inset:0;
  background:rgba(15,42,13,0.72);
  mix-blend-mode:multiply;
}
.caso-hero-overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to right, rgba(15,42,13,0.93) 0%, rgba(15,42,13,0.6) 55%, rgba(15,42,13,0.7) 100%);
}
.caso-hero::before {
  content:''; position:absolute; top:-200px; right:-100px;
  width:700px; height:700px; border-radius:50%;
  background:radial-gradient(circle, rgba(139,105,20,0.15) 0%, transparent 65%);
  z-index:2;
}
.caso-hero::after {
  content:''; position:absolute; bottom:-100px; left:10%;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(82,168,76,0.08) 0%, transparent 65%);
  z-index:2;
}
.caso-hero-left { position:relative; z-index:3; }
.caso-meta { position:relative; z-index:3; display:grid; grid-template-columns:1fr 1fr; gap:2px; align-self:end; }
.caso-tag {
  display:inline-flex;
  align-items:center;
  font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:3px;
  color:#7dd97a;
  border:2px solid rgba(82,168,76,0.7);
  padding:6px 14px;
  border-radius:999px;
  margin-bottom:18px;
}
.caso-h1 { font-size:58px; font-weight:800; color:var(--blanco); line-height:1.04; letter-spacing:-2px; margin-bottom:12px; }
.caso-h1 span { font-weight:200; color:rgba(255,255,255,0.4); display:block; }
.caso-h1 .frase { color:#f0c040; font-weight:800; display:block; }
.caso-sub { font-size:16px; font-weight:300; color:rgba(255,255,255,0.82); line-height:1.85; margin-top:24px; max-width:440px; }
.caso-meta { position:relative; z-index:3; display:grid; grid-template-columns:1fr 1fr; gap:2px; align-self:end; }
.meta-item { background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.22); padding:24px 28px; border-radius:var(--radio-hoja-sm); }
.meta-label { font-size:10px; font-weight:400; text-transform:uppercase; letter-spacing:3px; color:rgba(255,255,255,0.55); margin-bottom:8px; }
.meta-valor { font-size:14px; font-weight:600; color:rgba(255,255,255,0.95); }
/* BODY */
.caso-body { max-width:1200px; margin:0 auto; padding:0 48px; }
.sec { padding:80px 0; border-bottom:1px solid var(--gris-1); }
.sec:last-child { border-bottom:none; }
.sec-label { font-size:10px; font-weight:400; text-transform:uppercase; letter-spacing:4px; color:var(--acento); margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.sec-label::before { content:''; width:24px; height:1px; background:var(--acento); }
.sec h2 { font-size:32px; font-weight:800; color:var(--verde-oscuro); letter-spacing:-0.8px; line-height:1.15; margin-bottom:24px; }
.sec p { font-size:15px; font-weight:300; color:var(--gris-4); line-height:1.9; }
.sec p + p { margin-top:16px; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:24px; }
.visual { background:var(--gris-1); border-radius:var(--radio-hoja); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; border:1px dashed var(--gris-2); overflow:hidden; }
.visual span { font-size:11px; color:var(--gris-3); text-transform:uppercase; letter-spacing:2px; }
/* ANTES/DESPUÉS */
.antes-despues {
  display:grid; grid-template-columns:1fr 1fr;
  gap:3px; margin:40px 0;
  border-radius:var(--radio-hoja); overflow:hidden;
}
.antes, .despues { padding:36px; position:relative; }
.antes { background:var(--gris-1); }
.despues { background:var(--verde-oscuro); }
.ad-label {
  font-size:10px; font-weight:400; text-transform:uppercase;
  letter-spacing:3px; margin-bottom:20px;
  display:flex; align-items:center; gap:8px;
}
.antes .ad-label { color:var(--gris-3); }
.despues .ad-label { color:rgba(82,168,76,0.7); }
.antes .ad-label::before { content:'✕'; color:var(--gris-3); }
.despues .ad-label::before { content:'✓'; color:var(--acento); }
.ad-img { height:200px; background:rgba(255,255,255,0.5); border-radius:var(--radio-hoja-sm); display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.antes .ad-img { background:rgba(255,255,255,0.6); }
.despues .ad-img { background:rgba(255,255,255,0.06); border:1px dashed rgba(255,255,255,0.1); }
.ad-img span { font-size:11px; color:var(--gris-3); text-transform:uppercase; letter-spacing:2px; }
.despues .ad-img span { color:rgba(255,255,255,0.2); }
.ad-titulo { font-size:17px; font-weight:700; margin-bottom:8px; }
.antes .ad-titulo { color:var(--gris-4); }
.despues .ad-titulo { color:var(--blanco); }
.ad-desc { font-size:13px; font-weight:300; line-height:1.75; }
.antes .ad-desc { color:var(--gris-4); }
.despues .ad-desc { color:rgba(255,255,255,0.5); }
/* FRASE GANADORA */
.frase-ganadora {
  margin:48px 0;
  padding:56px 48px;
  background:var(--verde-oscuro);
  border-radius:var(--radio-hoja);
  text-align:center;
  position:relative; overflow:hidden;
}
.frase-ganadora::before {
  content:''; position:absolute; top:-100px; left:50%; transform:translateX(-50%);
  width:500px; height:300px;
  background:radial-gradient(ellipse, rgba(240,192,64,0.1) 0%, transparent 65%);
}
.fg-label { font-size:10px; font-weight:400; text-transform:uppercase; letter-spacing:4px; color:rgba(255,255,255,0.55); margin-bottom:20px; }
.fg-frase { font-size:48px; font-weight:800; color:#f0c040; letter-spacing:-1.5px; line-height:1.05; position:relative; z-index:2; }
.fg-sub { font-size:15px; font-weight:300; color:rgba(255,255,255,0.75); margin-top:20px; max-width:500px; margin-left:auto; margin-right:auto; line-height:1.7; position:relative; z-index:2; }
/* LÍNEA DE TIEMPO */
.timeline { display:flex; flex-direction:column; gap:0; margin:40px 0; }
.tl-item { display:grid; grid-template-columns:120px 1fr; gap:32px; align-items:start; position:relative; }
.tl-item::before { content:''; position:absolute; left:52px; top:32px; bottom:-24px; width:1px; background:var(--gris-2); }
.tl-item:last-child::before { display:none; }
.tl-año { font-size:13px; font-weight:700; color:var(--acento); padding:24px 0; }
.tl-content { padding:20px 0 44px; }
.tl-titulo { font-size:17px; font-weight:700; color:var(--verde-oscuro); margin-bottom:6px; }
.tl-desc { font-size:14px; font-weight:300; color:var(--gris-4); line-height:1.8; }
.tl-dot { width:10px; height:10px; border-radius:50%; background:var(--acento); position:absolute; left:48px; top:28px; }
/* INSIGHT */
.insight { background:var(--fondo); border-radius:var(--radio-hoja); padding:28px 32px; border-left:3px solid var(--acento); }
.insight-num { font-size:36px; font-weight:800; color:var(--acento); letter-spacing:-1px; line-height:1; margin-bottom:6px; }
.insight-label { font-size:13px; font-weight:300; color:var(--gris-4); line-height:1.6; }
/* CITA */
.cita { margin:48px 0; padding:36px 44px; background:var(--verde-oscuro); border-radius:var(--radio-hoja); position:relative; overflow:hidden; }
.cita::before { content:'"'; position:absolute; top:-20px; left:24px; font-size:160px; font-weight:800; color:rgba(82,168,76,0.1); line-height:1; font-family:Georgia,serif; }
.cita p { font-size:20px; font-weight:300; color:rgba(255,255,255,0.8); line-height:1.7; font-style:italic; position:relative; z-index:2; }
/* CIERRE NARRATIVO */
.cierre {
  margin:48px 0;
  padding:48px;
  background:var(--tierra-claro);
  border-radius:var(--radio-hoja);
  border-left:4px solid var(--tierra);
}
.cierre p { font-size:16px; font-weight:300; color:#5a3e08; line-height:1.85; }
.cierre p + p { margin-top:14px; }
/* OTROS CULTIVOS */
.otros-sec { background:var(--gris-1); padding:60px 48px; margin-top:0; }
.otros-titulo { font-size:12px; font-weight:300; text-transform:uppercase; letter-spacing:4px; color:var(--gris-3); margin-bottom:36px; text-align:center; }
.otros-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; max-width:1200px; margin:0 auto; }
.otro-card { background:var(--blanco); border-radius:var(--radio-hoja); overflow:hidden; transition:transform .2s, box-shadow .2s; cursor:pointer; }
.otro-card:hover { transform:translateY(-4px); box-shadow:0 8px 32px rgba(15,42,13,0.1); }
.otro-card-img { height:140px; background:var(--gris-1); display:flex; align-items:center; justify-content:center; }
.otro-card-img span { font-size:11px; color:var(--gris-3); text-transform:uppercase; letter-spacing:2px; }
.otro-card-body { padding:18px 22px; }
.otro-card-tag { font-size:10px; font-weight:300; letter-spacing:3px; text-transform:uppercase; color:var(--acento); margin-bottom:4px; }
.otro-card-nombre { font-size:15px; font-weight:700; color:var(--verde-oscuro); }
/* ── HAMBURGUESA ── */
/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .caso-hero { padding-top:64px; min-height:60vh; }
  .caso-hero-contenido h1 { font-size:32px; letter-spacing:-1px; }
  .caso-hero-contenido { padding:40px 24px; }
  .caso-meta { flex-wrap:wrap; gap:12px; }
  .caso-body { padding:48px 24px; }
  .caso-body h2, .caso-body h3 { font-size:22px; }
  .caso-body p, .caso-body li { font-size:15px; }
  .grid-2, .grid-3, .grid-col-2, .dos-col, .tres-col,
    [style*="grid-template-columns"] { grid-template-columns:1fr !important; }
  .galeria-grid, .imagenes-grid, .imgs-grid { grid-template-columns:1fr !important; }
  section, .seccion, .bloque { padding-left:24px !important; padding-right:24px !important; }
  .otros-cultivos-grilla { padding:48px 0 0; }
  .oc-grilla { grid-template-columns:1fr 1fr; }
}
@media (max-width: 480px) {
  .caso-hero-contenido h1 { font-size:26px; }
  .oc-grilla { grid-template-columns:1fr; }
}
