/* ═══════════════════════════════════════════════
   TRABAJO-CANTARANA.CSS — Diseñoverde
   Estilos exclusivos de trabajo/cantarana.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; }
/* 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:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(82,168,76,0.08) 0%, transparent 65%);
  z-index:2;
}
.caso-hero::after {
  content:''; position:absolute; bottom:-100px; left:5%;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(82,168,76,0.06) 0%, transparent 65%);
  z-index:2;
}
.caso-hero-left { position:relative; z-index:3; }
.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:56px; 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.5); display:block; }
.caso-h1 .chino { font-size:32px; font-weight:300; color:rgba(255,255,255,0.4); display:block; letter-spacing:8px; margin-top:8px; }
.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; }
/* 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; }
/* VIAJE */
.viaje {
  background:var(--fondo);
  border-radius:var(--radio-hoja);
  padding:48px;
  margin:40px 0;
  border-left:3px solid var(--acento);
}
.viaje-titulo { font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:3px; color:var(--verde); margin-bottom:24px; }
/* REFERENTES */
.ref-block {
  background:var(--gris-1);
  border-radius:var(--radio-hoja);
  padding:36px;
  margin:40px 0;
}
.ref-titulo { font-size:12px; font-weight:300; text-transform:uppercase; letter-spacing:3px; color:var(--gris-3); margin-bottom:20px; }
.ref-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.ref-item { background:var(--blanco); border-radius:var(--radio-hoja-sm); padding:16px; text-align:center; }
.ref-item-titulo { font-size:12px; font-weight:700; color:var(--verde-oscuro); margin-bottom:4px; }
.ref-item-desc { font-size:11px; font-weight:300; color:var(--gris-4); line-height:1.5; }
/* RESULTADO */
.resultado-visual {
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  margin:40px 0;
}
.rv-item { border-radius:var(--radio-hoja); overflow:hidden; }
.rv-img { height:220px; background:var(--gris-1); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; border:1px dashed var(--gris-2); }
.rv-img span { font-size:11px; color:var(--gris-3); text-transform:uppercase; letter-spacing:2px; }
.rv-label { padding:12px 16px; background:var(--blanco); }
.rv-label-tag { font-size:10px; font-weight:300; text-transform:uppercase; letter-spacing:2px; color:var(--acento); margin-bottom:4px; }
.rv-label-txt { font-size:13px; font-weight:700; color:var(--verde-oscuro); }
/* MENSAJES */
.mensajes {
  background:var(--verde-oscuro);
  border-radius:var(--radio-hoja);
  padding:48px;
  margin:40px 0;
  display:grid; grid-template-columns:1fr 1fr 1fr;
  gap:24px; position:relative; overflow:hidden;
}
.mensajes::before {
  content:''; position:absolute; top:-100px; right:-100px;
  width:400px; height:400px; border-radius:50%;
  background:radial-gradient(circle, rgba(82,168,76,0.1) 0%, transparent 65%);
}
.mensaje-item { position:relative; z-index:2; }
.mensaje-chino { font-size:28px; color:rgba(255,255,255,0.15); margin-bottom:12px; letter-spacing:4px; }
.mensaje-txt { font-size:18px; font-weight:700; color:var(--blanco); line-height:1.3; margin-bottom:8px; }
.mensaje-en { font-size:12px; font-weight:300; color:rgba(255,255,255,0.45); text-transform:uppercase; letter-spacing:2px; }
/* CIERRE */
.cierre { margin:48px 0; padding:48px; background:var(--fondo); border-radius:var(--radio-hoja); border-left:4px solid var(--acento); }
.cierre p { font-size:16px; font-weight:300; color:var(--gris-4); line-height:1.85; }
.cierre p + p { margin-top:14px; }
/* OTROS */
.otros-sec { background:var(--gris-1); padding:60px 48px; }
.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; }
.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; }
}
