/* =========================================================
   Amor Inagotable — hoja de estilos principal
   Paleta y tipografías tomadas del manual de marca.
   ========================================================= */

:root{
  --verde:#66704A;
  --verde-osc:#3E4630;
  --verde-prof:#2C3222;
  --verde-claro:#8A9268;
  --verde-humo:#E4E7DC;
  --crema:#FAF6F0;
  --beige:#EFE6DA;
  --cafe:#3A2B23;
  --cafe-suave:#6B5B50;
  --terracota:#B45A3C;       /* solo fondos y filetes */
  --terracota-txt:#9D4A2F;   /* texto sobre crema/beige — contraste 5.6 */
  --naranja:#C28E61;         /* solo fondos y filetes */
  --arena:#D9AC83;           /* texto sobre verde oscuro — contraste 4.8 */
  --verde-txt:#5A6341;       /* texto sobre beige/crema — contraste 5.2 */
  --blanco:#FFFFFF;

  --display:'Playfair Display',Georgia,'Times New Roman',serif;
  --texto:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;

  --max:1180px;
  --gut:clamp(20px,5vw,48px);
  --sec-y:clamp(64px,9vw,116px);
  --radio:4px;
  --linea:1px solid rgba(102,112,74,.28);
  --sombra:0 18px 44px -28px rgba(58,43,35,.45);
  --trans:280ms cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset acotado ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--crema);
  color:var(--cafe);
  font-family:var(--texto);
  font-size:16.5px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--verde-osc);text-decoration-color:rgba(102,112,74,.4);text-underline-offset:3px}
a:hover{color:var(--terracota-txt)}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--terracota-txt);outline-offset:3px}

h1,h2,h3,h4{font-family:var(--display);font-weight:700;color:var(--verde-osc);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.35rem,5.4vw,4.05rem)}
h2{font-size:clamp(1.85rem,3.9vw,2.85rem)}
h3{font-size:clamp(1.2rem,2.1vw,1.5rem)}
h4{font-size:1.05rem}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

/* ---------- Utilidades ---------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.wrap-ancho{max-width:1400px}
.sec{padding-block:var(--sec-y)}
.sec--beige{background:var(--beige)}
.sec--verde{background:var(--verde-osc);color:var(--beige)}
.sec--verde h2,.sec--verde h3{color:var(--crema)}
.sec--top0{padding-top:0}
.centrado{text-align:center}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--verde-osc);color:#fff;padding:12px 18px;z-index:999}
.skip-link:focus{left:8px;top:8px}

.eyebrow{
  font-size:.7rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;
  color:var(--verde-txt);margin:0 0 1.1rem;display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--verde-txt);flex:none}
.centrado .eyebrow{justify-content:center}
.sec--verde .eyebrow{color:var(--arena)}
.sec--verde .eyebrow::before{background:var(--arena)}

.entradilla{font-size:clamp(1rem,1.6vw,1.12rem);color:var(--cafe-suave);max-width:56ch}
.centrado .entradilla{margin-inline:auto}
.sec--verde .entradilla{color:rgba(239,230,218,.88)}

.cab-sec{margin-bottom:clamp(34px,4.5vw,58px)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.92rem 1.7rem;border:1px solid var(--verde-osc);background:var(--verde-osc);color:var(--crema);
  font-size:.78rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  text-decoration:none;border-radius:var(--radio);cursor:pointer;
  transition:background var(--trans),color var(--trans),transform var(--trans),border-color var(--trans);
}
.btn:hover{background:var(--verde);border-color:var(--verde);color:var(--crema);transform:translateY(-2px)}
.btn--fantasma{background:transparent;color:var(--verde-osc)}
.btn--fantasma:hover{background:var(--verde-osc);color:var(--crema)}
.btn--claro{background:var(--crema);border-color:var(--crema);color:var(--verde-osc)}
.btn--claro:hover{background:var(--arena);border-color:var(--arena);color:var(--verde-prof)}
.btn--wa{background:var(--terracota-txt);border-color:var(--terracota-txt);color:#fff}
.btn--wa:hover{background:#8B3D26;border-color:#8B3D26;color:#fff}
.btn svg{width:16px;height:16px;fill:currentColor;flex:none}
.acciones{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}

/* ---------- Cabecera ---------- */
.cabecera{
  position:sticky;top:0;z-index:60;background:rgba(250,246,240,.96);
  backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid transparent;
  transition:border-color var(--trans),box-shadow var(--trans);
}
.cabecera.fija{border-bottom-color:rgba(102,112,74,.22);box-shadow:0 10px 30px -26px rgba(58,43,35,.6)}
.cabecera__int{
  display:flex;align-items:center;justify-content:space-between;
  gap:clamp(14px,2.4vw,36px);min-height:76px;
}

/* Marca */
.marca{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:0 0 auto}
.marca img{height:34px;width:auto;display:block}
.marca__txt{font-family:var(--display);font-size:1.3rem;font-weight:700;color:var(--verde-osc);line-height:1;display:block}
.marca__sub{display:block;font-family:var(--texto);font-size:.58rem;letter-spacing:.26em;text-transform:uppercase;color:var(--verde-txt);font-weight:500;margin-top:3px}

/* Navegación: una sola línea, siempre */
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,28px);min-width:0}
.nav ul{
  list-style:none;display:flex;align-items:center;
  gap:clamp(12px,1.7vw,26px);margin:0;padding:0;
}
.nav li{flex:none}
.nav a{
  display:block;white-space:nowrap;
  font-size:clamp(.73rem,.92vw,.81rem);font-weight:500;letter-spacing:.02em;
  color:var(--cafe);text-decoration:none;position:relative;padding-block:6px;
  transition:color var(--trans);
}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--verde-txt);transition:width var(--trans)}
.nav a:hover{color:var(--verde-osc)}
.nav a:hover::after,.nav .current-menu-item>a::after{width:100%}
.nav .current-menu-item>a{color:var(--verde-osc);font-weight:600}

/* Botón de la cabecera: compacto, nunca se corta */
.cabecera .btn{
  flex:none;white-space:nowrap;padding:.66rem 1.1rem;
  font-size:.68rem;letter-spacing:.1em;gap:.45rem;
}
.cabecera .btn svg{width:14px;height:14px}
.cabecera .btn .btn__largo{display:inline}

/* Hamburguesa */
.hamb{
  display:none;width:44px;height:44px;flex:none;
  border:1px solid rgba(102,112,74,.3);background:transparent;border-radius:var(--radio);
  cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px;
}
.hamb span{display:block;width:19px;height:1.6px;background:var(--verde-osc);transition:transform var(--trans),opacity var(--trans)}
.hamb[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.hamb[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamb[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--crema);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1.02fr .98fr;align-items:stretch;min-height:min(84vh,760px)}
.hero__txt{display:flex;flex-direction:column;justify-content:center;padding:clamp(52px,7vw,96px) clamp(20px,4vw,64px) clamp(52px,7vw,96px) max(var(--gut),calc((100vw - var(--max))/2 + var(--gut)))}
.hero h1{margin-bottom:1rem}
.hero h1 em{font-style:italic;color:var(--verde);font-weight:400}
.hero__sub{font-size:clamp(1rem,1.5vw,1.13rem);color:var(--cafe-suave);max-width:44ch}
.hero__foto{position:relative;background:var(--verde-humo)}
.hero__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__nota{
  position:absolute;left:0;bottom:clamp(20px,4vw,42px);background:var(--crema);color:var(--verde-osc);
  padding:.85rem 1.3rem;font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:600;
  border-left:3px solid var(--terracota);
}

/* Tira de clientes */
.clientes{border-top:var(--linea);border-bottom:var(--linea);background:var(--crema)}
.clientes__int{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,4vw,52px);padding-block:22px}
.clientes__et{font-size:.66rem;letter-spacing:.19em;text-transform:uppercase;color:var(--cafe-suave);font-weight:600}
.clientes__lista{display:flex;flex-wrap:wrap;gap:clamp(18px,3.5vw,44px);list-style:none;margin:0;padding:0}
.clientes__lista li{font-family:var(--display);font-size:clamp(1rem,1.7vw,1.28rem);color:var(--verde-txt);font-weight:700;letter-spacing:.02em}

/* ---------- Compartimentos (elemento distintivo) ----------
   La retícula imita el interior de un box: celdas de tamaños
   distintos que comparten filetes, no tarjetas sueltas.        */
.caja{
  border-top:1px solid rgba(102,112,74,.34);
  border-left:1px solid rgba(102,112,74,.34);
  background:var(--crema);display:grid;grid-template-columns:repeat(6,1fr);
}
.comp{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:280px;padding:0;text-decoration:none;color:inherit;overflow:hidden;
  border-right:1px solid rgba(102,112,74,.34);border-bottom:1px solid rgba(102,112,74,.34);
  background:var(--crema);
}
.comp--g{grid-column:span 3;min-height:390px}
.comp--m{grid-column:span 3;min-height:320px}
.comp--p{grid-column:span 2;min-height:300px}
.comp__foto{position:absolute;inset:0;overflow:hidden}
.comp__foto img{width:100%;height:100%;object-fit:cover;transition:transform 700ms cubic-bezier(.22,.61,.36,1);filter:saturate(1.02)}
.comp__foto::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(44,50,34,.9) 0%,rgba(44,50,34,.55) 42%,rgba(44,50,34,.08) 78%);
}
.comp__cuerpo{position:relative;padding:clamp(22px,2.6vw,34px);width:100%}
.comp__num{
  display:block;font-size:.64rem;letter-spacing:.22em;color:var(--arena);font-weight:600;margin-bottom:.7rem;
}
.comp h3{color:var(--crema);margin:0 0 .35rem;font-size:clamp(1.28rem,2.3vw,1.72rem)}
.comp__frase{margin:0;color:rgba(239,230,218,.9);font-size:.95rem;line-height:1.55;max-width:34ch}
.comp__mod{
  margin:.9rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;
}
.comp__mod li{
  font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  color:var(--crema);border:1px solid rgba(239,230,218,.45);padding:.3rem .6rem;border-radius:2px;
}
.comp__mas{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:1.15rem;
  font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--arena);
  opacity:0;transform:translateY(6px);transition:opacity var(--trans),transform var(--trans);
}
.comp:hover .comp__foto img{transform:scale(1.055)}
.comp:hover .comp__mas,.comp:focus-visible .comp__mas{opacity:1;transform:translateY(0)}

/* ---------- Detalle de servicio (página Soluciones) ---------- */
.serv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;padding-block:clamp(38px,5vw,64px);border-bottom:var(--linea)}
.serv:last-child{border-bottom:0}
.serv:nth-child(even) .serv__foto{order:2}
.serv__foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--verde-humo)}
.serv__foto img{width:100%;height:100%;object-fit:cover}
.serv__foto::before{content:"";position:absolute;inset:10px;border:1px solid rgba(250,246,240,.42);z-index:2;pointer-events:none}
.serv h2{font-size:clamp(1.6rem,3vw,2.25rem)}
.serv__frase{font-family:var(--display);font-size:clamp(1.08rem,1.9vw,1.32rem);color:var(--verde-txt);font-style:italic;margin-bottom:1rem}
.serv__mod{list-style:none;margin:1.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.serv__mod li{border:1px solid rgba(102,112,74,.4);color:var(--verde-osc);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.42rem .8rem;border-radius:2px}

/* ---------- Catálogo ---------- */
.filtros{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:clamp(28px,4vw,44px)}
.filtro{
  border:1px solid rgba(102,112,74,.4);background:transparent;color:var(--verde-osc);
  font-size:.7rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  padding:.6rem 1.15rem;border-radius:2px;cursor:pointer;transition:background var(--trans),color var(--trans);
}
.filtro:hover{background:var(--verde-humo)}
.filtro.activo{background:var(--verde-osc);border-color:var(--verde-osc);color:var(--crema)}

.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:clamp(18px,2.4vw,30px)}
.prod{background:var(--crema);border:1px solid rgba(102,112,74,.24);display:flex;flex-direction:column;overflow:hidden;transition:transform var(--trans),box-shadow var(--trans),border-color var(--trans)}
.prod:hover{transform:translateY(-4px);box-shadow:var(--sombra);border-color:rgba(102,112,74,.45)}
.prod__foto{aspect-ratio:4/3;overflow:hidden;background:var(--verde-humo)}
.prod__foto img{width:100%;height:100%;object-fit:cover;transition:transform 600ms ease}
.prod:hover .prod__foto img{transform:scale(1.05)}
.prod__cuerpo{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.prod__linea{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--terracota-txt);font-weight:600;margin-bottom:.55rem}
.prod h3{font-size:1.12rem;margin-bottom:.45rem}
.prod p{font-size:.9rem;color:var(--cafe-suave);line-height:1.6;margin:0}
.prod__pie{margin-top:auto;padding-top:1rem;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;color:var(--verde-txt)}

/* ---------- Experiencia corporativa ---------- */
.casos{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:rgba(239,230,218,.24);border:1px solid rgba(239,230,218,.24)}
.caso{background:var(--verde-osc);padding:clamp(26px,3.4vw,40px);display:flex;flex-direction:column}
.caso__cliente{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.7rem);color:var(--crema);margin:0 0 .3rem;font-weight:700}
.caso__tipo{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--arena);font-weight:600;margin-bottom:1rem}
.caso p{color:rgba(239,230,218,.86);font-size:.93rem;margin:0}
.caso__foto{
  margin:calc(-1 * clamp(26px,3.4vw,40px)) calc(-1 * clamp(26px,3.4vw,40px)) clamp(20px,2.6vw,28px);
  aspect-ratio:16/10;overflow:hidden;
}
.caso__foto img{width:100%;height:100%;object-fit:cover}

.metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:rgba(102,112,74,.26);border:1px solid rgba(102,112,74,.26);margin-top:clamp(34px,5vw,56px)}
.metrica{background:var(--crema);padding:clamp(24px,3vw,34px);text-align:center}
.metrica strong{display:block;font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--verde-txt);line-height:1}
.metrica span{display:block;margin-top:.55rem;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cafe-suave);font-weight:600}

/* ---------- Sobre nosotros ---------- */
.nosotros{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(30px,5vw,72px);align-items:center}
.nosotros__foto{position:relative}
.nosotros__foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.nosotros__foto::after{content:"";position:absolute;inset:0;border:1px solid var(--verde);transform:translate(16px,16px);z-index:-1}
.nosotros__cita{
  font-family:var(--display);font-size:clamp(1.15rem,2.2vw,1.5rem);font-style:italic;color:var(--verde-txt);
  border-left:2px solid var(--terracota);padding-left:1.3rem;margin:1.8rem 0 0;line-height:1.5;
}
.valores{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:rgba(102,112,74,.24);border:1px solid rgba(102,112,74,.24);margin-top:clamp(40px,6vw,72px)}
.valor{background:var(--crema);padding:clamp(20px,2.6vw,30px)}
.valor h4{font-family:var(--texto);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--verde-txt);margin:0 0 .5rem}
.valor p{font-size:.88rem;color:var(--cafe-suave);margin:0}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto;border-top:var(--linea)}
.faq__item{border-bottom:var(--linea)}
.faq__q{
  width:100%;background:none;border:0;text-align:left;cursor:pointer;
  padding:1.4rem 2.6rem 1.4rem 0;position:relative;
  font-family:var(--display);font-size:clamp(1.02rem,1.9vw,1.2rem);font-weight:700;color:var(--verde-osc);line-height:1.35;
}
.faq__q::after{
  content:"";position:absolute;right:6px;top:50%;width:12px;height:12px;
  border-right:1.6px solid var(--verde);border-bottom:1.6px solid var(--verde);
  transform:translateY(-70%) rotate(45deg);transition:transform var(--trans);
}
.faq__item.abierto .faq__q::after{transform:translateY(-30%) rotate(-135deg)}
.faq__q:hover{color:var(--terracota-txt)}
.faq__a{max-height:0;overflow:hidden;transition:max-height 420ms cubic-bezier(.22,.61,.36,1)}
.faq__a > div{padding:0 2.6rem 1.5rem 0;color:var(--cafe-suave);font-size:.96rem}

/* ---------- Contacto ---------- */
.contacto{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,5vw,68px);align-items:start}
.form{display:grid;gap:1rem}
.campo{display:flex;flex-direction:column;gap:.4rem}
.campo label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--verde-osc)}
.campo input,.campo select,.campo textarea{
  width:100%;padding:.85rem 1rem;border:1px solid rgba(102,112,74,.36);border-radius:var(--radio);
  background:var(--crema);color:var(--cafe);font-family:var(--texto);font-size:.95rem;transition:border-color var(--trans),box-shadow var(--trans);
}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(102,112,74,.14)}
.campo textarea{min-height:130px;resize:vertical}
.form__fila{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form__nota{font-size:.78rem;color:var(--cafe-suave)}
.hp{position:absolute!important;left:-9999px}

.aviso{padding:1rem 1.2rem;border-radius:var(--radio);font-size:.92rem;margin-bottom:1.2rem}
.aviso--ok{background:var(--verde-humo);border-left:3px solid var(--verde);color:var(--verde-osc)}
.aviso--err{background:#F6E4DC;border-left:3px solid var(--terracota-txt);color:#7E3A22}

.datos{background:var(--beige);padding:clamp(26px,3.4vw,40px);border-top:3px solid var(--verde)}
.datos dl{margin:0;display:grid;gap:1.35rem}
.datos dt{font-size:.65rem;letter-spacing:.17em;text-transform:uppercase;color:var(--verde-txt);font-weight:600;margin-bottom:.25rem}
.datos dd{margin:0;font-size:.98rem;color:var(--cafe)}
.datos dd a{color:var(--cafe);text-decoration:none;border-bottom:1px solid rgba(102,112,74,.4)}
.datos dd a:hover{color:var(--terracota-txt)}

/* Banda CTA */
.cta{background:var(--verde-osc);color:var(--crema);text-align:center;position:relative;overflow:hidden}
.cta::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(circle at 1px 1px,rgba(239,230,218,.16) 1px,transparent 0);
  background-size:22px 22px;opacity:.5;
}
.cta .wrap{position:relative}
.cta h2{color:var(--crema);max-width:20ch;margin-inline:auto}
.cta p{color:rgba(239,230,218,.88);max-width:52ch;margin-inline:auto}
.cta .acciones{justify-content:center}

/* ---------- Pie ---------- */
.pie{background:var(--verde-prof);color:rgba(239,230,218,.78);padding-block:clamp(48px,6vw,72px) 0;font-size:.9rem}
.pie__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(28px,4vw,54px)}
.pie h4{color:var(--crema);font-family:var(--texto);font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;margin:0 0 1.1rem}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.pie a{color:rgba(239,230,218,.78);text-decoration:none}
.pie a:hover{color:var(--arena)}
.pie__marca img{height:54px;width:auto;margin-bottom:1.1rem}
.pie__legal{margin-top:clamp(38px,5vw,56px);border-top:1px solid rgba(239,230,218,.16);padding-block:22px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.76rem;color:rgba(239,230,218,.68)}

/* WhatsApp flotante */
.wa-flot{
  position:fixed;right:18px;bottom:18px;z-index:70;width:56px;height:56px;border-radius:50%;
  background:var(--verde);display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 28px -10px rgba(44,50,34,.6);transition:transform var(--trans),background var(--trans);
}
.wa-flot:hover{transform:scale(1.08);background:var(--terracota)}
.wa-flot svg{width:28px;height:28px;fill:var(--crema)}

/* ---------- Cabecera de página interna ---------- */
.pag-cab{background:var(--beige);padding-block:clamp(52px,7vw,88px) clamp(40px,5vw,64px);border-bottom:var(--linea)}
.pag-cab h1{margin-bottom:.6rem;max-width:18ch}
.miga{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cafe-suave);margin-bottom:1rem}
.miga a{color:var(--cafe-suave);text-decoration:none}
.miga a:hover{color:var(--verde-txt)}

/* Contenido editorial */
.editorial{max-width:760px}
.editorial h2{margin-top:2.2em}
.editorial ul,.editorial ol{padding-left:1.2rem}
.editorial li{margin-bottom:.5rem}
.editorial blockquote{border-left:2px solid var(--terracota);margin:2rem 0;padding-left:1.4rem;font-family:var(--display);font-style:italic;font-size:1.2rem;color:var(--verde-txt)}

/* ---------- Animación de entrada ---------- */
.js .rev{opacity:0;transform:translateY(22px);transition:opacity 700ms ease,transform 700ms cubic-bezier(.22,.61,.36,1)}
.js .rev.visible{opacity:1;transform:none}

/* ---------- Adaptable ---------- */
@media (max-width:1000px){
  .hero__grid{grid-template-columns:1fr;min-height:0}
  .hero__txt{padding:clamp(46px,8vw,72px) var(--gut)}
  .hero__foto{aspect-ratio:4/3;position:relative}
  .comp--g,.comp--m{grid-column:span 6}
  .comp--p{grid-column:span 3}
  .serv{grid-template-columns:1fr;gap:24px}
  .serv:nth-child(even) .serv__foto{order:0}
  .nosotros{grid-template-columns:1fr}
  .nosotros__foto{max-width:420px}
  .contacto{grid-template-columns:1fr}
  .pie__grid{grid-template-columns:1fr 1fr}
}
/* Entre 1080 y 1240: abrevio el botón para ganar espacio */
@media (max-width:1240px){
  .cabecera .btn .btn__largo{display:none}
  .cabecera .btn{padding:.66rem .95rem}
}

/* Por debajo de 1080 el menú no cabe en una línea: hamburguesa */
@media (max-width:1080px){
  .hamb{display:flex}
  .nav{
    position:absolute;left:0;right:0;top:100%;
    background:var(--crema);flex-direction:column;align-items:stretch;gap:0;
    padding:.6rem var(--gut) 2rem;border-bottom:var(--linea);
    box-shadow:0 24px 40px -30px rgba(58,43,35,.7);
    transform:translateY(-12px);opacity:0;pointer-events:none;
    transition:opacity var(--trans),transform var(--trans);
    max-height:calc(100dvh - 76px);overflow-y:auto;
  }
  .nav.abierto{opacity:1;transform:none;pointer-events:auto}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .nav li{border-bottom:1px solid rgba(102,112,74,.16);width:100%}
  .nav a{padding:1.05rem 0;font-size:1rem;white-space:normal}
  .nav a::after{display:none}
  .cabecera > .wrap > .btn{display:none}
  .nav .btn{margin-top:1.4rem;justify-content:center;padding:.95rem 1.5rem;font-size:.75rem}
  .nav .btn .btn__largo{display:inline}
}

@media (max-width:620px){
  .comp--p,.comp--g,.comp--m{grid-column:span 6;min-height:250px}
  .form__fila{grid-template-columns:1fr}
  .pie__grid{grid-template-columns:1fr}
  .clientes__int{flex-direction:column;align-items:flex-start;gap:12px}
  .caso__foto{margin-left:calc(-1 * clamp(26px,3.4vw,40px));margin-right:calc(-1 * clamp(26px,3.4vw,40px));margin-top:calc(-1 * clamp(26px,3.4vw,40px))}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .rev{opacity:1;transform:none}
}
