:root{
  --bg:#F8F6F1; --bg2:#F2EFE8; --linea:#E2DED4; --linea2:#CFCABD;
  --tinta:#232830; --texto:#3A3F49; --gris:#5C6270;
  --verde:#4E7F63; --verde-claro:#77A98B; --oscuro:#1D2129; --pie:#C9CCD3;
  --img:#E4DFD4;
  --serif:"Spectral",Georgia,serif; --sans:"Archivo",Helvetica,Arial,sans-serif; --mono:"IBM Plex Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tinta);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5}
img{max-width:100%;display:block}
a{color:var(--verde);text-decoration:none}
a:hover{color:var(--tinta)}
:focus-visible{outline:2px solid var(--verde);outline-offset:3px}
input,textarea,select,button{font:inherit;color:inherit}
.cont{max-width:1180px;margin:0 auto;padding-left:28px;padding-right:28px}
.etiqueta{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--gris);text-transform:uppercase}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;text-wrap:pretty}
h1{font-size:clamp(36px,5vw,52px);line-height:1.12;letter-spacing:-.005em}
h2{font-size:clamp(28px,3.4vw,34px);line-height:1.2}
h3{font-size:23px}
p{margin:0}

/* Encabezado */
.encabezado{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--linea)}
.encabezado .cont{padding-top:18px;padding-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:14px;color:var(--tinta)}
.marca:hover{color:var(--tinta)}
.barras{display:flex;flex-direction:column;gap:3px;flex:none}
.barras span{height:6px;background:var(--tinta);display:block}
.barras span:nth-child(1){width:34px}.barras span:nth-child(2){width:22px}.barras span:nth-child(3){width:28px;background:var(--verde)}
.marca-texto{display:flex;flex-direction:column;gap:2px}
.marca-nombre{font-family:var(--serif);font-size:19px;line-height:1;letter-spacing:.01em}
.marca-sub{font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;color:var(--gris)}
nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
nav a{font-size:14px;font-weight:500;color:var(--tinta)}
nav a:hover,nav a[aria-current="page"]{color:var(--verde)}
nav a.boton{color:var(--bg)}
nav a.boton[aria-current="page"]{background:var(--verde);color:var(--bg)}

/* Botones */
.boton{display:inline-block;font-size:14px;font-weight:500;padding:14px 24px;background:var(--tinta);color:var(--bg);border:none;cursor:pointer}
.boton:hover{background:var(--verde);color:var(--bg)}
.boton.chico{padding:10px 18px}
.boton.borde{background:transparent;color:var(--tinta);border:1px solid var(--linea2)}
.boton.borde:hover{border-color:var(--tinta);background:transparent;color:var(--tinta)}
.boton.claro{background:var(--bg);color:var(--tinta);padding:15px 26px}
.boton.claro:hover{background:var(--verde-claro);color:#16191F}

/* Portada */
.portada{padding-top:96px;padding-bottom:88px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:center}
.portada-texto{display:flex;flex-direction:column;gap:26px}
.portada-texto p{font-size:17px;line-height:1.65;max-width:46ch;color:var(--texto)}
.acciones{display:flex;flex-wrap:wrap;gap:14px;padding-top:6px}
.foto{overflow:hidden;background:var(--img)}
.foto img{width:100%;height:100%;object-fit:cover}
.foto.vertical{aspect-ratio:4/5}.foto.horizontal{aspect-ratio:5/4}

/* Servicios resumen */
.franja{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:var(--bg2)}
.franja .cont{padding-top:72px;padding-bottom:72px;display:flex;flex-direction:column;gap:40px}
.fila-titulo{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:16px}
.fila-titulo a{font-size:14px;font-weight:500}
.tarjetas{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.tarjeta{background:var(--bg);border:1px solid var(--linea);padding:30px;display:flex;flex-direction:column;gap:14px}
.tarjeta .acento{width:30px;height:6px;background:var(--verde)}
.tarjeta p{font-size:15px;line-height:1.6;color:var(--texto)}

/* Proceso */
.proceso{padding-top:84px;padding-bottom:84px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px}
.proceso-intro{display:flex;flex-direction:column;gap:16px}
.proceso-intro p{font-size:16px;line-height:1.65;color:var(--texto)}
.pasos{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.pasos li{display:flex;gap:22px;padding:24px 0;border-top:1px solid var(--linea)}
.pasos li:last-child{border-bottom:1px solid var(--linea)}
.pasos .num{font-family:var(--mono);font-size:12px;color:var(--verde);padding-top:3px}
.pasos strong{display:block;font-size:17px;font-weight:600;margin-bottom:6px}
.pasos span{font-size:15px;line-height:1.6;color:var(--texto)}

/* Llamado */
.llamado{background:var(--oscuro);color:var(--bg)}
.llamado .cont{padding-top:72px;padding-bottom:72px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.llamado .texto{display:flex;flex-direction:column;gap:12px;max-width:52ch}
.llamado p{font-size:16px;line-height:1.6;color:var(--pie)}

/* Paginas internas */
.cabecera{padding-top:84px;padding-bottom:56px;display:flex;flex-direction:column;gap:22px}
.cabecera p{font-size:17px;line-height:1.65;max-width:60ch;color:var(--texto)}
.servicio{padding-top:56px;padding-bottom:84px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;align-items:start;border-top:1px solid var(--linea)}
.servicio .detalle{display:flex;flex-direction:column;gap:18px}
.servicio .detalle p{font-size:16px;line-height:1.65;color:var(--texto)}
.barras.grande span{height:8px}
.barras.grande span:nth-child(1){width:44px}.barras.grande span:nth-child(2){width:28px}.barras.grande span:nth-child(3){width:36px}
.lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.lista li{display:flex;gap:14px;font-size:15px;line-height:1.5;color:var(--tinta)}
.lista li::before{content:"";flex:none;width:14px;height:2px;background:var(--verde);margin-top:10px}
.nota{font-size:14px;line-height:1.6;color:var(--gris);border-left:2px solid var(--linea2);padding-left:14px}
.sectores{background:var(--bg2);border:1px solid var(--linea);padding:34px;display:flex;flex-direction:column;gap:18px}
.sectores p{font-size:16px;line-height:1.65;color:var(--texto)}
@media (min-width:700px){.invertido .foto{order:-1}}

/* Contacto */
.contacto{padding-top:84px;padding-bottom:64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px;align-items:start}
.contacto-info{display:flex;flex-direction:column;gap:22px}
.contacto-info>p{font-size:17px;line-height:1.65;color:var(--texto);max-width:46ch}
.datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;padding-top:12px;border-top:1px solid var(--linea)}
.datos div{display:flex;flex-direction:column;gap:6px}
.datos .etiqueta{font-size:10px}
.datos span,.datos a{font-size:15px;line-height:1.55}
.formulario{background:var(--bg2);border:1px solid var(--linea);padding:34px;display:flex;flex-direction:column;gap:18px}
.formulario h2{font-size:26px}
.campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.formulario label{display:flex;flex-direction:column;gap:7px}
.formulario label>span{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--gris);text-transform:uppercase}
.formulario input,.formulario select,.formulario textarea{background:var(--bg);border:1px solid var(--linea2);padding:12px 14px;font-size:15px;border-radius:0;width:100%}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{outline:none;border-color:var(--verde)}
.formulario textarea{resize:vertical}
.formulario .boton{align-self:flex-start}
.oculto{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aviso-form{font-size:14px;line-height:1.55;padding:14px 16px;border-left:3px solid var(--verde);background:var(--bg)}
.aviso-form.error{border-left-color:#A4473B}
.aviso-form[hidden]{display:none}
.consentimiento{font-size:13px;line-height:1.55;color:var(--gris)}
.mapa{padding-bottom:96px}
.mapa iframe{width:100%;height:380px;border:1px solid var(--linea);display:block;filter:grayscale(.35)}

/* Texto legal */
.legal{padding-bottom:96px;max-width:760px}
.legal h2{font-size:24px;margin:36px 0 12px}
.legal p,.legal li{font-size:16px;line-height:1.7;color:var(--texto)}
.legal p+p{margin-top:12px}
.legal ul{padding-left:20px}

/* Pie */
footer{background:var(--oscuro);color:var(--pie)}
.pie-arriba{padding-top:56px;padding-bottom:56px;display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between}
footer .barras span{background:var(--bg)}
footer .barras span:nth-child(3){background:var(--verde-claro)}
footer .marca-nombre{color:var(--bg)}
footer .marca-sub{color:var(--pie)}
.pie-cols{display:flex;gap:48px;flex-wrap:wrap;font-size:14px}
.pie-cols div{display:flex;flex-direction:column;gap:10px}
footer a{color:var(--pie)}
footer a:hover{color:var(--bg)}
.pie-abajo{border-top:1px solid #2C313B}
.pie-abajo .cont{padding-top:20px;padding-bottom:20px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#7B818E;text-transform:uppercase}
.pie-abajo a{color:#7B818E}

/* WhatsApp flotante */
.whatsapp{position:fixed;right:20px;bottom:20px;z-index:20;width:54px;height:54px;border-radius:50%;background:var(--verde);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(35,40,48,.25)}
.whatsapp:hover{background:var(--tinta)}
.whatsapp svg{width:26px;height:26px;fill:#fff}

@media (max-width:600px){
  .portada{padding-top:56px;padding-bottom:56px}
  .cabecera,.contacto{padding-top:56px}
  nav{gap:18px}
  .formulario,.sectores{padding:24px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
