/* =============================================================
   Escombros.cl — hoja de estilos de la home / landing
   Orden: tokens · base · utilidades · componentes · secciones · responsive
   ============================================================= */

/* ------------------------------ FUENTES LOCALES ------------------------------ */
/* Manrope Variable (SIL OFL 1.1) — latin + latin-ext; pesos 200–800 */
@font-face{
  font-family:"Manrope";
  font-style:normal;
  font-display:swap;
  font-weight:200 800;
  src:url("../fonts/manrope-latin-ext-wght-normal.woff2") format("woff2-variations"),
      url("../fonts/manrope-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Manrope";
  font-style:normal;
  font-display:swap;
  font-weight:200 800;
  src:url("../fonts/manrope-latin-wght-normal.woff2") format("woff2-variations"),
      url("../fonts/manrope-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ------------------------------ TOKENS ------------------------------ */
:root{
  /* Color */
  --verde:        #4C8C2B;
  --verde-oscuro: #3D7223;
  --verde-800:    #2A5A1E;
  --verde-900:    #17441C;
  --tinta:        #1E4426;
  --texto:        #3C4539;
  /* Anterior #6B7466 fallaba AA sobre salvia/verde-tenue; verde grisáceo más sólido */
  --texto-suave:  #525A4E;
  --crema:        #FAF9F3;
  --crema-2:      #F3F2E9;
  --verde-tenue:  #F1F5EA;
  --verde-medallon:#E3EBD6;
  --borde:        #E4E6DA;
  --borde-suave:  #EDEEE5;
  --blanco:       #FFFFFF;
  --gris-hueso:   #E7E7E1;
  --marfil:       #FBFAF4;
  --salvia:       #EDF2E4;
  --salvia-2:     #E3EBD6;

  /* Tipografía — Manrope única familia principal (PROMPT 03.6) */
  --font-sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fuente-titulo: var(--font-sans);
  --fuente-texto:  var(--font-sans);

  --text-body-desktop: 17px;
  --text-body-mobile: 16px;
  --text-hero-desktop: 19px;
  --text-hero-mobile: 17px;
  --leading-body-desktop: 1.65;
  --leading-body-mobile: 1.6;
  --leading-hero: 1.55;

  /* Medidas */
  --ancho: 1160px;
  --radio-sm: 8px;
  --radio: 12px;
  --radio-lg: 18px;
  --sombra-card: 0 18px 40px rgba(23, 68, 28, .12);
  --sombra-suave: 0 2px 10px rgba(23, 68, 28, .05);
}

/* ------------------------------ BASE ------------------------------ */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  font-family:var(--font-sans);
  /* Base UI 15px: no subir el body global para evitar escalar botones/menú vía herencias */
  font-size:15px;
  line-height:1.6;
  color:var(--texto);
  background:var(--blanco);
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{ font-family:var(--fuente-titulo); color:var(--tinta); margin:0; line-height:1.22; font-weight:700; }

/* Textos de lectura — selectores semánticos (no chrome UI) */
.hero__bajada{
  font-size:var(--text-hero-desktop);
  line-height:var(--leading-hero);
  font-weight:400;
}
.parrafo-intro,
.tarjeta-servicio p,
.situacion__texto,
.factor__texto,
.paso__texto,
.resultado__texto,
.panel__texto,
.estado p,
.guia__texto,
.pregunta__respuesta,
.banda__texto,
.cierre__texto,
.lista-cobertura,
.nota-reservada{
  font-size:var(--text-body-desktop);
  line-height:var(--leading-body-desktop);
  font-weight:400;
}
/* Apoyo breve del formulario: legible sin igualar el cuerpo editorial */
.campo__ayuda,
.aviso-demo{
  font-size:13px;
  line-height:1.55;
}
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
[hidden]{ display:none !important; }

:focus-visible{ outline:2px solid var(--verde); outline-offset:3px; border-radius:4px; }

/* Los anchors deben quedar bajo la cabecera fija, no debajo de ella. */
:target,
section[id],
[id="cotizar"]{ scroll-margin-top:88px; }

.sprite{ position:absolute; width:0; height:0; overflow:hidden; }

.salto-contenido{
  position:absolute; left:-9999px; top:0; z-index:99;
  background:var(--verde); color:#fff; padding:10px 16px; border-radius:0 0 8px 0;
}
.salto-contenido:focus{ left:0; }

/* ------------------------------ UTILIDADES ------------------------------ */
.contenedor{
  width:100%;
  max-width:var(--ancho);
  margin-inline:auto;
  padding-inline:24px;
}

.icon{ width:22px; height:22px; flex:none; }
.icon--sm{ width:17px; height:17px; }
.icon--xs{ width:13px; height:13px; }
.icon--whatsapp{ width:18px; height:18px; }

.grilla{ display:grid; gap:16px; }
.grilla--3{ grid-template-columns:repeat(3,1fr); }
.grilla--4{ grid-template-columns:repeat(4,1fr); }
.grilla--6{ grid-template-columns:repeat(6,1fr); gap:12px; }

.seccion{ padding:64px 0; background:var(--blanco); }
.seccion--clara{ background:var(--crema); }
.seccion--marfil{ background:var(--marfil); }
.seccion--salvia{
  background:linear-gradient(180deg, var(--salvia) 0%, #F3F6EC 100%);
}

.titulo-seccion{
  font-size:clamp(21px, 2.2vw, 27px);
  font-weight:700;
  text-align:center;
  letter-spacing:-.01em;
  margin-bottom:34px;
}

.etiqueta{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--verde-oscuro);
  margin-bottom:16px;
}

/* ------------------------------ BOTONES ------------------------------ */
.boton{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:13px 22px;
  border:1px solid transparent;
  border-radius:var(--radio-sm);
  font-family:var(--fuente-titulo);
  font-size:14px; font-weight:600;
  cursor:pointer;
  transition:background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.boton--primario{ background:var(--verde); color:#fff; }
.boton--primario:hover{ background:var(--verde-oscuro); }
.boton--contorno{ background:var(--blanco); color:var(--tinta); border-color:var(--borde); }
.boton--contorno:hover{ border-color:var(--verde); color:var(--verde-oscuro); }
.boton--contorno-claro{ background:transparent; color:#fff; border-color:rgba(255,255,255,.45); }
.boton--contorno-claro:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
.boton--compacto{ padding:10px 20px; font-size:13.5px; }
.boton--bloque{ width:100%; padding:14px 20px; }
.boton:active{ transform:translateY(1px); }

/* ------------------------------ CABECERA ------------------------------ */
.cabecera{
  position:sticky; top:0; z-index:40;
  background:var(--blanco);
  border-bottom:1px solid var(--borde-suave);
}
.cabecera__fila{
  display:flex; align-items:center; gap:24px;
  min-height:68px;
}

.logo{ display:inline-flex; align-items:center; gap:8px; }
.logo__marca{ width:52px; height:28px; }
.logo__texto{
  font-family:var(--fuente-titulo);
  font-size:19px; font-weight:800; font-style:italic;
  color:var(--verde-800); letter-spacing:-.02em;
}
.logo__punto{ color:var(--verde); }

.menu{ margin-left:auto; }
.menu__lista{ display:flex; align-items:center; gap:28px; }
.menu__item{ position:relative; }
.menu__item--cta{ display:none; }
.menu__enlace{
  display:inline-flex; align-items:center; gap:5px;
  font-size:13.5px; font-weight:500; color:var(--texto);
  padding:8px 0; background:none; border:0; cursor:pointer;
}
.menu__enlace:hover{ color:var(--verde-oscuro); }

.submenu{
  position:absolute; top:100%; left:-14px; min-width:250px;
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  box-shadow:var(--sombra-card);
  padding:8px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s;
}
.menu__item--desplegable:hover .submenu,
.menu__item--desplegable:focus-within .submenu{ opacity:1; visibility:visible; transform:translateY(0); }
.submenu a{ display:block; padding:9px 12px; font-size:13px; border-radius:6px; }
.submenu a:hover{ background:var(--verde-tenue); color:var(--verde-oscuro); }

.cabecera__cta{ margin-left:8px; }
.cabecera__hamburguesa{
  display:none; margin-left:auto;
  background:none; border:1px solid var(--borde); border-radius:8px;
  padding:8px; color:var(--tinta); cursor:pointer;
}

/* ------------------------------ HERO ------------------------------ */
.hero{
  position:relative;
  overflow:hidden;
  border-bottom-right-radius:40px;
  background:linear-gradient(160deg,#FBFBF4 0%, #F4F7EB 55%, #EEF3E4 100%);
}
.hero__fondo{
  position:absolute; inset:0;
  background:radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 60%);
  pointer-events:none;
}
.hero__grilla{
  position:relative; z-index:2;
  display:grid;
  gap:32px;
  padding-top:52px; padding-bottom:56px;
}

.hero__titulo{
  font-size:clamp(34px, 5vw, 52px);
  font-weight:800;
  letter-spacing:-.025em;
  margin-bottom:18px;
  max-width:11ch;
}
.hero__bajada{
  color:var(--texto-suave);
  max-width:38ch; margin-bottom:26px;
}
.hero__acciones{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px; }

.respaldos{ display:flex; flex-wrap:wrap; gap:26px; }
.respaldo{
  display:flex; align-items:center; gap:9px;
  font-size:11.5px; line-height:1.35; color:var(--texto-suave);
}
.respaldo .icon{ width:19px; height:19px; color:var(--verde); }

.hero__imagen{
  margin:0;
  min-width:0;               /* evita que el contenido fije un ancho mínimo mayor a la columna */
  border-radius:var(--radio-lg);
  overflow:hidden;
  background:var(--verde-medallon);
}
.hero__imagen img{ width:100%; height:100%; object-fit:cover; }

/* ---------- Tarjeta del cotizador ---------- */
.tarjeta-cotizador{
  background:var(--blanco);
  border:1px solid var(--borde-suave);
  border-radius:var(--radio);
  box-shadow:var(--sombra-card);
  padding:24px 22px 22px;
  align-self:start;
}
.tarjeta-cotizador__titulo{
  font-size:16.5px; font-weight:700; text-align:center;
  margin-bottom:16px;
}

.pasos__rotulo{
  font-size:11.5px; color:var(--texto-suave);
  text-align:center; margin-bottom:10px;
}

/* Tres hitos reales: el primero activo, los otros dos pendientes */
.pasos{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:6px; margin:0 4px 20px;
}
.pasos__hito{
  display:grid; justify-items:center; gap:7px;
  position:relative;
  font-size:10.5px; color:var(--texto-suave);
}
.pasos__hito::before{
  content:""; position:absolute; top:5px; left:0; right:0;
  height:3px; border-radius:3px; background:var(--gris-hueso);
}
.pasos__punto{
  position:relative; z-index:1;
  width:11px; height:11px; border-radius:50%;
  background:var(--gris-hueso);
  box-shadow:0 0 0 3px var(--blanco);
}
.pasos__hito--activo{ color:var(--verde-oscuro); font-weight:600; }
.pasos__hito--activo::before{ background:var(--verde); }
.pasos__hito--activo .pasos__punto{ background:var(--verde); }

.formulario{ display:grid; gap:14px; }
.campo{ display:grid; gap:6px; }
.campo__rotulo{ font-size:12px; font-weight:500; color:var(--texto); }
.campo__select{ position:relative; }
.campo__flecha{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  color:var(--texto-suave); pointer-events:none;
}

.control{
  width:100%;
  appearance:none; -webkit-appearance:none;
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio-sm);
  padding:11px 13px;
  font-family:var(--fuente-texto); font-size:13px; color:var(--texto);
}
.campo__select .control{ padding-right:34px; }
.control:invalid{ color:#9AA294; }
.control:focus{ border-color:var(--verde); outline:none; box-shadow:0 0 0 3px rgba(76,140,43,.12); }

.zona-carga{
  display:block; position:relative;
  border:1.5px dashed var(--borde);
  border-radius:var(--radio-sm);
  background:var(--blanco);
  padding:22px 16px;
  text-align:center;
  cursor:pointer;
  transition:border-color .18s ease, background-color .18s ease;
}
.zona-carga:hover,
.zona-carga.esta-encima{ border-color:var(--verde); background:var(--verde-tenue); }
.zona-carga__texto{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12.5px; color:var(--texto);
}
.zona-carga__icono{ width:18px; height:18px; color:var(--verde); }
.zona-carga__ayuda{ display:block; margin-top:5px; font-size:11px; color:var(--texto-suave); }
.zona-carga__input{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:0; cursor:pointer;
}
.zona-carga__estado{ font-size:11.5px; color:var(--verde-oscuro); }

.campo__ayuda{ color:var(--texto-suave); }

.aviso-demo{
  display:flex; align-items:flex-start; gap:8px;
  background:var(--verde-tenue);
  border:1px solid #DCE7CC;
  border-radius:var(--radio-sm);
  padding:10px 12px;
  color:var(--verde-oscuro);
}

.nota-formulario{
  display:flex; align-items:center; justify-content:center; gap:6px;
  font-size:11px; color:var(--texto-suave); text-align:center;
}

.formulario__paso{ display:grid; gap:14px; }
.formulario__paso[hidden]{ display:none !important; }
.formulario__acciones{ display:flex; flex-wrap:wrap; gap:10px; }
.formulario__acciones .boton{ flex:1; min-width:120px; }
.campo__opcional{ font-weight:500; color:var(--texto-suave); font-size:12px; }
.campo--check{ margin-top:2px; }
.campo__check{
  display:flex; align-items:flex-start; gap:10px;
  font-size:12.5px; line-height:1.45; color:var(--texto-suave); cursor:pointer;
}
.campo__check input{ margin-top:3px; flex:none; }
.control--area{ resize:vertical; min-height:96px; }

/* ------------------------------ SERVICIOS ------------------------------ */
.tarjeta-servicio{
  background:var(--verde-tenue);
  border:1px solid #E7EDDC;
  border-radius:var(--radio);
  padding:28px 20px 24px;
  text-align:center;
}
.medallon{
  display:inline-flex; align-items:center; justify-content:center;
  width:54px; height:54px; border-radius:50%;
  background:var(--verde-medallon); color:var(--verde-oscuro);
  margin-bottom:14px;
}
.tarjeta-servicio h3{ font-size:14.5px; font-weight:700; margin-bottom:8px; }
.tarjeta-servicio p{ color:var(--texto-suave); }
.tarjeta-servicio .enlace-accion{ margin-top:10px; }
.seccion__pie{ margin-top:22px; text-align:center; }
.panel__nota{ margin:14px 0; font-size:13px; line-height:1.5; color:var(--texto-suave); }
.resenas-cta{
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
  margin-bottom:36px;
  max-width:520px;
}

/* ------------------------------ BANDA ------------------------------ */
.banda{ position:relative; isolation:isolate; overflow:hidden; background:var(--verde-900); }
.banda__imagen{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 40%;
  z-index:0;
}
/* Placeholder estructural de la banda (oculto cuando hay fotografía P3) */
.banda__marco{
  position:absolute; inset:0; z-index:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  background:linear-gradient(115deg,#2F5A2C 0%, #47703C 55%, #6E8C55 100%);
  text-align:center; padding:20px;
}
.banda__marco .marco-foto__marca{ background:rgba(255,255,255,.22); color:#F1F7E9; }
.banda__marco .marco-foto__texto{ color:#EAF2DF; opacity:.85; }

.banda__velo{
  position:absolute; inset:0; z-index:1;
  /* Velo aligerado: texto legible + jardín/patio visibles (PROMPT 03.9B) */
  background:linear-gradient(90deg, rgba(19,54,24,.72) 0%, rgba(19,54,24,.46) 48%, rgba(19,54,24,.18) 100%);
}
.banda__contenido{ position:relative; z-index:2; padding:58px 24px; color:#fff; max-width:var(--ancho); min-height:230px; }
.banda__hoja{ color:#9CC97A; margin-bottom:12px; }
.banda__titulo{
  color:#fff; font-size:clamp(21px,2.4vw,28px); font-weight:700;
  margin-bottom:14px;
}
.banda__texto{ color:rgba(255,255,255,.85); max-width:46ch; }

/* ------------------------------ CÓMO FUNCIONA ------------------------------ */
.proceso{
  display:grid;
  grid-template-columns:290px 1fr;
  gap:44px;
  align-items:center;
}
.proceso__imagen{
  margin:0;
  border-radius:var(--radio);
  overflow:hidden;
  border:1px solid var(--borde);
  background:var(--crema-2);
  aspect-ratio:7/8;
}
.proceso__imagen img{ width:100%; height:100%; object-fit:cover; }

.proceso__pasos{
  position:relative;
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.proceso__pasos::before{
  content:""; position:absolute; top:14px; left:12%; right:12%;
  height:2px; background:var(--borde); z-index:0;
}
.paso{ position:relative; z-index:1; text-align:center; padding-inline:6px; }
.paso__numero{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%;
  background:var(--verde); color:#fff;
  font-family:var(--fuente-titulo); font-size:12.5px; font-weight:700;
  box-shadow:0 0 0 5px var(--blanco);
  margin-bottom:22px;
}
.paso__icono{ display:block; margin:0 auto 10px; color:var(--verde-oscuro); }
.paso__titulo{ font-size:13.5px; font-weight:700; margin-bottom:7px; }
.paso__texto{ color:var(--texto-suave); }

/* ------------------------------ MARCOS DE FOTOGRAFÍA (SLOTS) ------------------------------ */
/* Placeholder estructural: mantiene la proporción definitiva y documenta el slot.
   Al existir la fotografía se reemplaza el marco por <picture>/<img> con la misma proporción. */
.marco-foto{
  position:relative;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px;
  border-radius:var(--radio);
  background:
    linear-gradient(135deg, var(--salvia) 0%, var(--salvia-2) 55%, #DCE6CC 100%);
  border:1px solid #DDE5D0;
  overflow:hidden;
  text-align:center;
  padding:20px;
}
.marco-foto::after{
  /* Forma vegetal muy discreta, sin imágenes ni ruido visual */
  content:"";
  position:absolute; right:-40px; bottom:-50px;
  width:180px; height:180px;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), rgba(255,255,255,0) 70%);
  pointer-events:none;
}
.marco-foto__marca{
  position:relative; z-index:2;
  font-family:var(--fuente-titulo);
  font-size:11px; font-weight:700; letter-spacing:.08em;
  color:var(--verde-oscuro);
  background:rgba(255,255,255,.75);
  border-radius:999px;
  padding:3px 10px;
}
.marco-foto__texto{
  position:relative; z-index:2;
  font-size:11.5px; color:var(--verde-800); opacity:.8;
  max-width:24ch; line-height:1.4;
}
.marco-foto--hero{
  aspect-ratio:4/3;
  align-items:flex-start; justify-content:flex-end;
  padding:26px; text-align:left;
}
.marco-foto--vertical{ aspect-ratio:4/5; }
.marco-foto--ancho{ aspect-ratio:3/2; }
.marco-foto--panoramico{ aspect-ratio:16/9; }

/* Fotografías reales en slots (PROMPT 03.9) */
.foto-home{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.foto-home--hero{ object-position:42% center; } /* 14.4C: jardín + sendero (sin priorizar camión) */
.marco-foto--con-foto{
  padding:0;
  display:block;
  border:0;
  background:var(--salvia);
}
.marco-foto--con-foto::after{ content:none; }
.hero__imagen{
  /* contenedor del P0: ya posicionado en responsive */
  overflow:hidden;
}
.banda__marco{ display:none; } /* placeholder P3 retirado */

/* Identidad: slot editorial con foto (14.4C) o placeholder neutro */
.identidad__foto.marco-foto{
  min-height:200px;
  padding:0;
  border:1px solid var(--borde-suave);
  background:linear-gradient(160deg, #E7EEDC 0%, #F3F6EC 100%);
  display:flex; align-items:center; justify-content:center;
}
.identidad__foto.marco-foto::after{ content:none; }
.identidad__foto .marco-foto__texto{
  opacity:.55;
  font-size:12px;
  letter-spacing:.02em;
  max-width:none;
}
.identidad__foto.marco-foto--con-foto{
  display:block;
  min-height:0;
  max-height:420px;
  aspect-ratio:3/2;
  background:var(--salvia);
  border:0;
  overflow:hidden;
}
.identidad__foto.marco-foto--con-foto img{
  width:100%; height:100%; object-fit:cover;
  object-position:62% center; /* camión 4 m³ secundario reconocible a la derecha */
}
@media (max-width:820px){
  .identidad__foto.marco-foto--con-foto{ max-height:260px; }
}

/* Ornamentos ambientales — muy sutiles */
.ornamento{
  position:absolute;
  pointer-events:none;
  user-select:none;
  z-index:0;
  opacity:.14;
}
.ornamento--esquina{
  right:12px; top:8px;
  width:min(120px, 24vw); height:auto;
}
.ornamento--horizonte{
  left:50%; bottom:0;
  transform:translateX(-50%);
  width:min(640px, 88%); height:auto;
  opacity:.12;
}
.seccion--ornamento-contornos{ position:relative; }
.seccion--ornamento-contornos::before{
  content:"";
  position:absolute; inset:0;
  background:url("../img/decorative/organic-contours.svg") center / cover no-repeat;
  opacity:.09;
  pointer-events:none;
  z-index:0;
}
.seccion--ornamento-contornos > .contenedor{ position:relative; z-index:1; }

.seccion--ornamento-lateral{ position:relative; }
.seccion--ornamento-lateral::after{
  content:"";
  position:absolute; right:0; top:12%; bottom:12%;
  width:min(140px, 16vw);
  background:url("../img/decorative/botanical-side.svg") right center / contain no-repeat;
  opacity:.11;
  pointer-events:none;
  z-index:0;
}
.seccion--ornamento-lateral > .contenedor{ position:relative; z-index:1; }

@media (max-width:767px){
  .seccion--ornamento-lateral::after{ display:none; }
  .ornamento--esquina{ width:72px; opacity:.10; }
  .ornamento--horizonte{ opacity:.08; }
  .banda__contenido{ min-height:200px; }
}

/* ------------------------------ PIEZAS EDITORIALES COMPARTIDAS ------------------------------ */
.titulo-bloque{
  font-size:clamp(20px, 2.1vw, 26px);
  font-weight:700; letter-spacing:-.01em;
  margin-bottom:14px;
}
.titulo-menor{ font-size:15px; font-weight:700; margin-bottom:14px; }
.parrafo-intro{ color:var(--texto-suave); max-width:52ch; }

.encabezado-bloque{
  display:flex; align-items:flex-end; justify-content:space-between; gap:28px;
  margin-bottom:30px;
}
.encabezado-bloque__texto{ max-width:38ch; }
.encabezado-bloque__enlace{ flex:none; }

.enlace-accion{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--fuente-titulo);
  font-size:13px; font-weight:600; color:var(--verde-oscuro);
}
.enlace-accion:hover{ color:var(--verde); }
.enlace-accion .icon{ transition:transform .18s ease; }
.enlace-accion:hover .icon{ transform:translateX(3px); }
.enlace-accion--claro{ color:#DCEBCB; }
.enlace-accion--claro:hover{ color:#fff; }

.etiqueta--clara{ color:#B6D79A; }

.nota-reservada{
  display:flex; align-items:flex-start; gap:9px;
  background:rgba(255,255,255,.7);
  border:1px dashed #CFDCBC;
  border-radius:var(--radio-sm);
  padding:12px 14px;
  margin:20px 0 22px;
  color:var(--texto-suave);
  max-width:44ch;
}
.nota-reservada .icon{ color:var(--verde-oscuro); margin-top:1px; }

/* ------------------------------ 3. SITUACIONES REALES ------------------------------ */
.situaciones{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:52px;
  align-items:center;
}
.situaciones__foto{ width:100%; }
/* 14.4D: asset 4:5 + marco 4:5 no recortaba; acortar marco para priorizar patio/piso */
.situaciones__foto.marco-foto--vertical{
  aspect-ratio:1 / 1.12;
}
.situaciones__foto img{
  object-fit:cover;
  object-position:center 88%;
}
@media (max-width:1023px){
  .situaciones__foto.marco-foto--vertical{
    aspect-ratio:1 / 1.08;
  }
  .situaciones__foto img{ object-position:center 90%; }
}
.situaciones__lista{
  display:grid; grid-template-columns:1fr 1fr;
  gap:26px 28px;
  margin:28px 0 26px;
}
.situacion__icono{ color:var(--verde-oscuro); margin-bottom:10px; }
.situacion__titulo{ font-size:14px; font-weight:700; margin-bottom:6px; }
.situacion__texto{ color:var(--texto-suave); }

/* ------------------------------ 5. CÓMO SE CONSTRUYE LA COTIZACIÓN ------------------------------ */
.cotizacion{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1fr);
  gap:56px;
  align-items:start;
}
.cotizacion__factores{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  padding:26px 26px 22px;
  box-shadow:var(--sombra-suave);
}
.factores{ display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; }
.factor{ display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; }
.factor__icono{ color:var(--verde-oscuro); margin-top:2px; }
.factor__titulo{ font-family:var(--fuente-titulo); font-size:13px; font-weight:700; color:var(--tinta); margin:0 0 5px; }
.factor__texto{ color:var(--texto-suave); }

/* ------------------------------ 8. RESULTADOS Y TRABAJOS (DATA-FIRST · 14.3) ------------------------------ */
.home-casos{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
  margin-top:8px;
}
.home-caso{
  margin:0;
  padding:18px 18px 16px;
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  box-shadow:var(--sombra-suave);
}
.home-caso__cabecera{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:start;
  margin-bottom:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--borde-suave);
}
.home-caso__num{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background:var(--verde-tenue); color:var(--verde-800);
  font-size:12px; font-weight:800; letter-spacing:.04em;
}
.home-caso__badge{
  margin:0 0 4px;
  font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--verde-800);
}
.home-caso__comuna{
  margin:0 0 2px;
  font-size:15px; font-weight:800; color:var(--tinta); letter-spacing:-.01em;
}
.home-caso__tipo{
  margin:0;
  font-size:14px; font-weight:600; line-height:1.35; color:var(--texto);
}
.home-caso__materiales{
  margin:0 0 12px;
  font-size:13.5px; line-height:1.5; color:var(--texto);
}
.home-caso__rotulo{
  display:block;
  margin:0 0 4px;
  font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--texto-suave);
}
.home-caso__datos{
  margin:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 12px;
  padding:12px;
  border-radius:var(--radio-sm);
  background:#F3F8EC;
  border:1px solid #D5E4C0;
}
.home-caso__datos > div{ margin:0; }
.home-caso__datos dt{
  margin:0;
  font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  color:var(--texto-suave);
}
.home-caso__datos dd{
  margin:2px 0 0;
  font-size:13px; font-weight:600; color:var(--tinta);
}
.home-caso__valor{
  font-size:14px; font-weight:700; color:var(--verde-800);
}
.avisos-casos-home{
  display:grid; gap:10px;
  margin-top:22px; max-width:70ch;
}
.aviso-casos{
  margin:0;
  padding:14px 16px;
  border-radius:var(--radio-sm);
  background:var(--blanco);
  border:1px solid var(--borde);
  font-size:14.5px; line-height:1.55; font-weight:600; color:var(--tinta);
}
.aviso-casos--tiempo{
  font-weight:500; color:var(--texto); background:#F7F8F3;
}

/* ------------------------------ 9. MATERIALES Y COBERTURA ------------------------------ */
.paneles{ display:grid; grid-template-columns:1fr 1fr; gap:22px; align-items:stretch; }
.panel{
  display:flex; flex-direction:column;
  border-radius:var(--radio-lg);
  padding:32px 30px;
}
.panel--claro{ background:var(--marfil); border:1px solid var(--borde); }
.panel--oscuro{ background:var(--verde-900); color:rgba(255,255,255,.82); }
.panel--oscuro .panel__titulo{ color:#fff; }
.panel__titulo{ font-size:19px; font-weight:700; margin-bottom:10px; }
.panel__texto{ margin-bottom:22px; }
.panel--claro .panel__texto{ color:var(--texto-suave); }

.lista-estados{ display:grid; gap:16px; margin-bottom:24px; }
.estado{ display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:start; }
.estado h4{ font-family:var(--fuente-titulo); font-size:13px; font-weight:700; color:var(--tinta); margin:0 0 4px; }
.estado p{ color:var(--texto-suave); }
.estado .icon{ margin-top:2px; }
.estado--ok .icon{ color:var(--verde); }
.estado--evaluar .icon{ color:#B98A21; }
.estado--no .icon{ color:#A45B4C; }

.lista-cobertura{ display:grid; gap:13px; margin-bottom:26px; }
.lista-cobertura li{ display:flex; align-items:flex-start; gap:10px; }
.lista-cobertura .icon{ color:#9CC97A; margin-top:1px; flex:none; }

.panel__acciones{
  display:flex; flex-wrap:wrap; align-items:center; gap:18px;
  margin-top:auto;
}

/* ------------------------------ 11. IDENTIDAD DEL OPERADOR ------------------------------ */
.identidad{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:34px; align-items:center;
  margin-top:38px; padding-top:34px;
  border-top:1px solid var(--borde);
}
.identidad__datos{
  display:grid; gap:10px;
  margin:18px 0 18px;
  font-size:12.5px; color:var(--texto-suave);
}
.identidad__datos li{ display:flex; align-items:center; gap:9px; }
.identidad__datos .icon{ color:var(--verde); }

.resena__aviso{
  display:flex; align-items:center; gap:6px;
  font-size:11px; font-weight:600; color:var(--texto-suave);
  margin-bottom:14px;
}

/* ------------------------------ 12. GUÍAS ------------------------------ */
.guias{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:22px; }
.guias__secundarias{ display:grid; gap:22px; align-content:start; }
.guia{
  display:flex; flex-direction:column;
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio);
  overflow:hidden;
}
.guia__cuerpo{ padding:20px 22px 22px; display:flex; flex-direction:column; gap:9px; align-items:flex-start; }
.guia__titulo{ font-size:15px; font-weight:700; }
.guia--principal .guia__titulo{ font-size:18px; }
/* La guía principal iguala la altura de la columna secundaria: el espacio
   sobrante lo toma el marco de la fotografía, no el fondo vacío de la tarjeta. */
.guia--principal .marco-foto{ flex:1; aspect-ratio:auto; min-height:300px; }
.guia__texto{ color:var(--texto-suave); }

/* ------------------------------ 15. BARRA MÓVIL PERSISTENTE ------------------------------ */
.barra-movil{
  display:none;
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  gap:10px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);
  border-top:1px solid var(--borde);
  box-shadow:0 -6px 20px rgba(23,68,28,.08);
}
.barra-movil__principal{ flex:1; min-height:48px; }
.barra-movil__secundario{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; min-height:48px; flex:none;
  border:1px solid var(--borde); border-radius:var(--radio-sm);
  color:var(--verde-oscuro); background:var(--blanco);
}
.barra-movil__secundario:hover{ border-color:var(--verde); }

/* ------------------------------ AVISO FLOTANTE ------------------------------ */
.toast{
  position:fixed; left:50%; bottom:24px; z-index:60;
  transform:translateX(-50%);
  max-width:min(420px, calc(100vw - 32px));
  background:var(--verde-900); color:#fff;
  border-radius:var(--radio-sm);
  padding:11px 16px;
  font-size:12.5px; line-height:1.4;
  box-shadow:var(--sombra-card);
}

/* ------------------------------ PREGUNTAS ------------------------------ */
.preguntas{ display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; }
.preguntas__columna{ display:grid; gap:14px; align-content:start; }

.pregunta{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio-sm);
}
.pregunta summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:14px 16px;
  font-size:12.5px; font-weight:500; color:var(--texto);
  cursor:pointer; list-style:none;
}
.pregunta summary::-webkit-details-marker{ display:none; }
.pregunta summary .icon{ color:var(--texto-suave); transition:transform .2s ease; }
.pregunta[open] summary{ color:var(--verde-oscuro); }
.pregunta[open] summary .icon{ transform:rotate(180deg); color:var(--verde); }
.pregunta__respuesta{
  padding:0 16px 15px;
  color:var(--texto-suave);
}

/* ------------------------------ RESEÑAS ------------------------------ */
.resenas{ gap:18px; }
.resena{
  background:var(--blanco);
  border:1px solid var(--borde);
  border-radius:var(--radio-sm);
  padding:18px 18px 12px;
}
.resena__cuerpo{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:10px 12px;
  margin-bottom:16px;
}
.resena__avatar{
  grid-row:1 / span 2;
  width:44px; height:44px; border-radius:50%;
  background:var(--gris-hueso);
}
.resena__linea{ align-self:center; height:9px; border-radius:5px; background:var(--gris-hueso); }
.resena__linea--corta{ width:65%; }
.resena__pie{
  background:var(--crema-2);
  border-radius:6px;
  padding:8px 10px;
  font-size:10.5px; color:var(--texto-suave); text-align:center;
}

/* ------------------------------ CIERRE ------------------------------ */
.cierre{
  position:relative; overflow:hidden;
  background:var(--verde-900);
  color:#fff;
}
.cierre__grilla{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:space-between; gap:32px;
  padding-block:44px;
}
.cierre__titulo{ color:#fff; font-size:clamp(20px,2.2vw,26px); font-weight:700; margin-bottom:10px; }
.cierre__texto{ color:rgba(255,255,255,.78); max-width:44ch; }
.cierre__acciones{ display:flex; flex-wrap:wrap; gap:12px; }
.cierre__hoja{
  position:absolute; width:190px; height:190px;
  color:rgba(255,255,255,.06); z-index:1;
  pointer-events:none;
}
.cierre__hoja--izq{ left:-40px; top:-30px; transform:rotate(-15deg); }
.cierre__hoja--der{ right:-40px; bottom:-50px; transform:rotate(160deg); }

/* ------------------------------ PIE ------------------------------ */
.pie{ background:var(--crema); color:var(--texto-suave); }
.pie__grilla{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:32px;
  padding-block:44px;
}
.pie__lema{ font-size:12px; margin:14px 0 16px; line-height:1.5; }
.redes{ display:flex; gap:10px; }
.redes a{
  display:inline-flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:50%;
  border:1px solid var(--borde); color:var(--verde-oscuro);
  transition:background-color .18s ease, color .18s ease;
}
.redes a:hover{ background:var(--verde); border-color:var(--verde); color:#fff; }

.pie__titulo{ font-size:13px; font-weight:700; color:var(--tinta); margin-bottom:14px; }
.pie__lista{ display:grid; gap:9px; font-size:12px; }
.pie__lista a:hover{ color:var(--verde-oscuro); }
.pie__lista--iconos li{ display:flex; align-items:flex-start; gap:9px; }
.pie__lista--iconos .icon{ color:var(--verde); margin-top:1px; }

.pie__base{ border-top:1px solid var(--borde); }
.pie__base-fila{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding-block:16px;
  font-size:11px;
}
.pie__legales{ display:flex; flex-wrap:wrap; gap:16px; }
.pie__legales a:hover{ color:var(--verde-oscuro); }

/* ============================================================
   RESPONSIVE
   Cortes validados: 1440 · 1280 · 1024 · 820 · 768 · 640 · 390 · 360
   ============================================================ */
@media (min-width:1024px){
  .hero{ min-height:640px; }
  .hero__grilla{
    grid-template-columns:minmax(0,1fr) 400px;
    align-items:center;
    padding-top:64px; padding-bottom:72px;
    min-height:600px;
  }
  /* La grilla vuelve a estático para que la foto se posicione respecto
     de la sección y pueda sangrar hasta el borde de la ventana. */
  .hero__grilla{ position:static; }
  .hero__texto{ grid-column:1; max-width:520px; position:relative; z-index:3; }
  .hero__imagen{
    position:absolute; top:0; right:0; z-index:1;
    width:64%; height:100%;
    border-radius:0 0 0 90px;
    aspect-ratio:auto;
    min-height:0;
  }
  .hero__imagen::before{
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg,#F4F7EB 0%, rgba(244,247,235,.72) 18%, rgba(244,247,235,0) 52%);
    pointer-events:none;
  }
  .tarjeta-cotizador{ grid-column:2; width:400px; margin-left:auto; position:relative; z-index:3; }
}

@media (max-width:1023px){
  .cabecera__hamburguesa{ display:inline-flex; order:3; margin-left:8px; }
  .cabecera__cta{ order:2; margin-left:auto; }
  .menu{
    display:none;
    order:4; width:100%; margin-left:0;
    border-top:1px solid var(--borde-suave);
    padding-block:10px 16px;
  }
  .menu.esta-abierto{ display:block; }
  .menu__lista{ flex-direction:column; align-items:stretch; gap:0; }
  .menu__enlace{ width:100%; justify-content:space-between; padding:13px 2px; }
  .menu__item + .menu__item{ border-top:1px solid var(--borde-suave); }
  .menu__item--cta{ display:block; }
  .menu__item--cta .menu__enlace{ color:var(--verde-oscuro); font-weight:600; }
  .submenu{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:0; padding:0 0 8px 10px; min-width:0;
  }
  .cabecera__fila{ flex-wrap:wrap; }

  .hero__grilla{ grid-template-columns:1fr; }
  .hero__imagen{ order:2; }
  .tarjeta-cotizador{ order:3; width:100%; max-width:460px; }

  .situaciones{ grid-template-columns:1fr; gap:32px; }
  /* 14.4D: mantener crop patio (no forzar 4/5 exacto del asset) */
  .situaciones__foto{ aspect-ratio:1 / 1.08; max-height:400px; }

  .cotizacion{ grid-template-columns:1fr; gap:32px; }
  .proceso{ grid-template-columns:1fr; gap:32px; }
  /* P2 vertical: conservar lectura de la persona fotografiando */
  .proceso__imagen{ aspect-ratio:4/5; max-height:380px; }

  .guias{ grid-template-columns:1fr; }
}

@media (max-width:820px){
  .seccion{ padding:52px 0; }
  .grilla--4{ grid-template-columns:repeat(2,1fr); }
  .grilla--3{ grid-template-columns:1fr; }
  .preguntas{ grid-template-columns:1fr; }
  .paneles{ grid-template-columns:1fr; }
  .identidad{ grid-template-columns:1fr; gap:26px; }
  .encabezado-bloque{ flex-direction:column; align-items:flex-start; gap:14px; }
  .pie__grilla{ grid-template-columns:1fr 1fr; gap:28px; }
  .cierre__grilla{ flex-direction:column; align-items:flex-start; }
  .home-casos{ grid-template-columns:1fr; gap:14px; }
  .home-caso{ padding:14px 14px 12px; }
  .home-caso__datos{ grid-template-columns:1fr 1fr; gap:6px 10px; padding:10px; }
  .home-caso__materiales{ font-size:13px; margin-bottom:10px; }
}

/* Barra móvil: activa bajo 768px. Reserva espacio inferior para no tapar contenido. */
@media (max-width:767px){
  /* Bajo 768 px: mensaje → formulario → fotografía principal (P0). */
  .tarjeta-cotizador{ order:2; }
  .hero__imagen{ order:3; }

  /* Tipografía de lectura — escala mobile */
  .hero__bajada{
    font-size:var(--text-hero-mobile);
    line-height:var(--leading-hero);
  }
  .parrafo-intro,
  .tarjeta-servicio p,
  .situacion__texto,
  .factor__texto,
  .paso__texto,
  .resultado__texto,
  .panel__texto,
  .estado p,
  .guia__texto,
  .pregunta__respuesta,
  .banda__texto,
  .cierre__texto,
  .lista-cobertura,
  .nota-reservada{
    font-size:var(--text-body-mobile);
    line-height:var(--leading-body-mobile);
  }

  /* Bajo 768 px la barra persistente asume la llamada a la acción y el CTA del header se retira. */
  .cabecera__cta{ display:none; }
  .barra-movil{ display:flex; }
  body{ padding-bottom:84px; }
  .toast{ bottom:calc(84px + env(safe-area-inset-bottom)); }
}

@media (max-width:640px){
  .proceso__pasos{ grid-template-columns:1fr; gap:26px; }
  .proceso__pasos::before{ display:none; }
  .paso{ text-align:left; display:grid; grid-template-columns:28px 1fr; column-gap:14px; }
  .paso__numero{ grid-row:1 / span 3; margin-bottom:0; }
  .paso__icono{ margin:0 0 8px; }

  .situaciones__lista{ grid-template-columns:1fr; gap:20px; }
  .factores{ grid-template-columns:1fr; gap:18px; }
  .cotizacion__factores{ padding:22px 20px 18px; }
  .panel{ padding:26px 22px; }

  .grilla--4{ grid-template-columns:repeat(2,1fr); }
  .respaldos{ gap:16px; }
  .hero__acciones .boton{ flex:1 1 100%; }
  .boton{ min-height:46px; }
  .pie__grilla{ grid-template-columns:1fr; }
  .pie__base-fila{ flex-direction:column; align-items:flex-start; gap:8px; }
}

@media (max-width:420px){
  .contenedor{ padding-inline:18px; }
  .grilla--4{ grid-template-columns:1fr; }
  .situaciones__foto{ aspect-ratio:1 / 1.05; max-height:340px; }
  .proceso__imagen{ aspect-ratio:4/5; max-height:340px; }
  /* P0 mobile: limitar altura para no alargar el Hero en exceso */
  .hero__imagen{ max-height:220px; }
}

/* ------------------------------ FORMULARIO: vista previa fotografía (Stage 1) ------------------------------ */
.foto-preview{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:10px;
  padding:8px 10px;
  border:1px solid var(--borde-suave, #d8e3dc);
  border-radius:var(--radio-md, 10px);
  background:var(--verde-tenue, #f4f8f5);
  max-width:100%;
}
.foto-preview__thumb{
  flex:0 0 96px;
  width:96px;
  height:96px;
  object-fit:cover;
  border-radius:var(--radio-sm, 8px);
  background:var(--blanco, #fff);
}
.foto-preview__meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  min-width:0;
}
.foto-preview__estado{
  margin:0;
  font-size:14px;
  font-weight:600;
  color:var(--verde-oscuro, #2F5A2C);
}
.foto-preview__quitar{
  border:0;
  background:transparent;
  color:var(--verde-medio, #47703C);
  font-size:13px;
  font-weight:600;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
}
.foto-preview__quitar:hover,
.foto-preview__quitar:focus-visible{
  color:var(--verde-oscuro, #2F5A2C);
}
@media (max-width:400px){
  .foto-preview{
    flex-direction:row;
    align-items:center;
  }
  .foto-preview__thumb{
    flex:0 0 72px;
    width:72px;
    height:72px;
  }
}

/* ------------------------------ FORMULARIO: galería multi-foto (Stage 1 · 15.4H) ------------------------------ */
.foto-contador{
  margin:8px 0 0;
  font-size:13px;
  color:var(--texto-suave, #5a6b5f);
}
.foto-galeria{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(96px, 1fr));
  gap:12px;
  margin-top:12px;
  max-width:100%;
}
.foto-galeria__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-width:0;
}
.foto-galeria__thumb{
  width:96px;
  height:96px;
  object-fit:cover;
  border-radius:var(--radio-sm, 8px);
  background:var(--blanco, #fff);
  border:1px solid var(--borde-suave, #d8e3dc);
}
.foto-galeria__meta{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  width:100%;
}
.foto-galeria__estado{
  margin:0;
  font-size:12px;
  font-weight:600;
  color:var(--verde-oscuro, #2F5A2C);
  text-align:center;
}
.foto-galeria__quitar{
  border:0;
  background:transparent;
  color:var(--verde-medio, #47703C);
  font-size:12px;
  font-weight:600;
  text-decoration:underline;
  cursor:pointer;
  padding:0;
}
@media (max-width:390px){
  .foto-galeria{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .foto-galeria__thumb{
    width:80px;
    height:80px;
  }
}

/* ------------------------------ ACCESIBILIDAD ------------------------------ */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

/* ------------------------------ IMPRESIÓN ------------------------------ */
@media print{
  .cabecera, .cierre, .tarjeta-cotizador, .barra-movil, .toast{ display:none; }
  body{ color:#000; }
}
