/* /css/home.css · componentes que solo usa la home (Fase 16, 10/10/2026). Los comunes están en /styles.css.
   Va en un archivo aparte y no en un <style>: con el <style>, el HTML pasaba de 14 KB comprimidos y Lighthouse
   añadía un viaje de red antes de pintar el H1 (LCP 2,1 → 2,5 s).
   Movimiento (Emil): solo transform/opacity, hover que mueve solo con ratón, nada en el hero ni en el formulario,
   prefers-reduced-motion = quieto. La aparición la pone js/pagina.js; .escalon reparte la entrada de los hijos. */

/* Servicios: aerotermia destacada + clima y solar en fila + mantenimiento a todo el ancho */
.serv-home{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;}
.serv-lado{display:grid;grid-template-rows:1fr 1fr;gap:24px;}
.s-card.s-top,.s-card.s-fila{padding:0;overflow:hidden;}
.s-card .s-foto{border:0;border-radius:0;margin:0;}
.s-top .s-foto{aspect-ratio:16/9;}
.s-cuerpo{padding:28px 30px 26px;display:flex;flex-direction:column;flex:1;}
.s-titulo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px;}
.s-titulo h3{margin:0;}
.s-top .s-titulo h3{font-size:28px;}
.s-card .s-cuerpo p{margin-bottom:16px;flex:none;}
.s-top .check-list{list-style:none;margin:0 0 20px;}
.s-top .check-list li{font-size:15px;margin-bottom:10px;}
.s-cuerpo .s-link{margin-top:auto;}
.s-fila{flex-direction:row;}
.s-fila .s-foto{width:40%;flex-shrink:0;min-height:210px;}
.s-fila .s-cuerpo{padding:24px 26px 22px;}
.s-fila .s-titulo h3{font-size:21px;}
.s-mant{display:grid;grid-template-columns:190px 1fr auto;gap:28px;align-items:center;margin-top:24px;padding:14px 30px 14px 14px;background:#f4f8fc;border:1px solid var(--line);border-radius:16px;}
.s-mant .s-foto{aspect-ratio:16/11;border-radius:12px;border:0;}
.s-mant .s-cuerpo{padding:0;}
.s-mant .s-titulo h3{font-size:20px;color:var(--navy);}
.s-mant p{color:var(--muted);font-size:15px;margin:0;}
.s-mant .s-link{margin:0;}
.s-card .s-foto img,.oh-card .photo img,.ue-foto img{transition:transform 700ms cubic-bezier(.23,1,.32,1);}
@media (hover:hover) and (pointer:fine){
  .s-card:hover .s-foto img,.oh-card:hover .photo img{transform:scale(1.04);}
}

/* «Una sola empresa»: la foto gana presencia */
.ue-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;}
.ue-foto{aspect-ratio:4/5;max-height:640px;box-shadow:0 24px 60px rgba(13,39,71,.14);}
.ue-foto img{object-position:center 58%;}
.ue-txt h2{font-size:38px;color:var(--navy);margin-bottom:18px;}
.ue-txt>p{color:var(--muted);font-size:17px;margin-bottom:20px;max-width:60ch;}
.ue-txt .check-list{list-style:none;margin:0;}
.ue-pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;margin-top:26px;padding-top:24px;border-top:1px solid var(--line);}
.ue-pie .ruben-mini{margin:0;}

/* Obras reales (las mismas de /aerotermia y /climatizacion) */
.oh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.oh-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 12px 22px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;}
.oh-card .photo{aspect-ratio:4/3;border-radius:11px;border:0;margin-bottom:16px;}
.oh-card .obra-lugar,.oh-card h3,.oh-card p,.oh-ver{padding:0 10px;}
.oh-card h3{font-size:18px;color:var(--navy);margin-bottom:8px;}
.oh-card p{font-size:14.5px;color:var(--muted);line-height:1.55;margin-bottom:16px;flex:1;}
.oh-ver{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:15px;color:var(--blue);}
.oh-ver .ic{width:16px;height:16px;transition:transform .2s cubic-bezier(.23,1,.32,1);}
.oh-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
@media (hover:hover) and (pointer:fine){
  .oh-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(13,39,71,.1);border-color:#cfe0f0;}
  .oh-card:hover .oh-ver .ic{transform:translateX(4px);}
}

/* Reseñas: título a la izquierda, reseñas a la derecha */
.rs-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start;}
.rs-head h2{font-size:34px;color:var(--navy);margin-bottom:20px;}
.rs-grid .resenas-grid{grid-template-columns:1fr;max-width:none;margin:0;gap:18px;}
.rs-grid .resena{position:relative;padding:28px 30px 26px 30px;}
.rs-grid .resena blockquote p{font-size:17px;}
.rs-grid .resena::after{content:"\201C";position:absolute;right:24px;top:6px;font-family:'Heebo',sans-serif;font-weight:900;font-size:76px;line-height:1;color:var(--ice);pointer-events:none;}
.resena figcaption{flex-wrap:wrap;}
.r-fuente{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:12.5px;color:var(--muted);}
.r-fuente svg{width:16px;height:16px;}

/* Zonas: los 4 municipios con su página de aerotermia y de aire acondicionado */
.zh-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.zh-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 22px 8px;display:flex;flex-direction:column;}
.zh-card h3{font-size:19px;color:var(--navy);margin-bottom:4px;line-height:1.2;}
.zh-card p{font-size:13px;color:var(--muted);margin-bottom:14px;}
.zh-card a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;border-top:1px solid var(--line);font-weight:600;font-size:15px;color:var(--navy);transition:color .2s ease;}
.zh-card a .ic{width:16px;height:16px;color:var(--blue);transition:transform .2s cubic-bezier(.23,1,.32,1);}
.zh-card a:hover{color:var(--blue);}
.zh-card a:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px;}
@media (hover:hover) and (pointer:fine){.zh-card a:hover .ic{transform:translateX(4px);}}
.zh-resto{text-align:center;color:var(--muted);font-size:15px;margin-top:26px;}
.zh-resto a{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px;}

/* Entrada escalonada de los hijos (obras, reseñas, zonas): 70 ms entre cada uno */
.rv-on .escalon>*{opacity:0;transform:translateY(12px);transition:opacity 420ms cubic-bezier(.23,1,.32,1),transform 420ms cubic-bezier(.23,1,.32,1);}
.rv-on .escalon.rv-in>*{opacity:1;transform:none;}
.rv-on .escalon.rv-in>*:nth-child(2){transition-delay:70ms;}
.rv-on .escalon.rv-in>*:nth-child(3){transition-delay:140ms;}
.rv-on .escalon.rv-in>*:nth-child(4){transition-delay:210ms;}
/* Fase 17b: con fotos (obras, zonas), sin transparencia: solo el desplazamiento escalonado */
.rv-on .rv.escalon.rv-foto{transform:none;}
.rv-on .escalon.rv-foto>*{opacity:1;transition:transform 420ms cubic-bezier(.23,1,.32,1);}
@media (prefers-reduced-motion: reduce){
  .rv-on .escalon>*{opacity:1;transform:none;transition:none;}
  .s-card .s-foto img,.oh-card .photo img,.ue-foto img{transition:none;}
}

@media(max-width:980px){
  .serv-home,.rs-grid{grid-template-columns:1fr;}
  .serv-lado{grid-template-rows:none;}
  .ue-grid{grid-template-columns:1fr;gap:36px;}
  .ue-foto{aspect-ratio:16/10;max-height:none;}
  .ue-txt h2{font-size:30px;}
  .oh-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto;}
  .zh-grid{grid-template-columns:1fr 1fr;}
  .rs-grid{gap:28px;}
}
/* Fase 18: en móvil las 3 tarjetas de servicio son un carrusel (.carr): la columna .serv-lado se disuelve y las dos tarjetas en fila pasan a columna */
@media(max-width:768px){
  .serv-home.carr .serv-lado{display:contents;}
  .serv-home.carr .s-fila{flex:0 0 min(82%,320px);min-width:0;scroll-snap-align:start;}
  .carr .s-fila{flex-direction:column;}
  .carr .s-fila .s-foto{width:auto;min-height:0;aspect-ratio:16/9;}
  .carr .s-fila .s-cuerpo{padding:22px 20px 20px;}
  .carr .s-fila .s-cuerpo p{font-size:15px;}
  .carr .s-fila .s-titulo h3{font-size:21px;}
}
@media(max-width:680px){
  .s-top .s-titulo h3{font-size:24px;}
  .s-cuerpo{padding:22px 20px 20px;}
  .s-fila .s-foto{width:36%;min-height:0;}
  .s-fila .s-cuerpo{padding:18px 18px 16px;}
  .s-fila .s-titulo h3{font-size:19px;}
  .s-fila .s-cuerpo p{font-size:14px;}
  /* Fase 18: mantenimiento como fila compacta (foto cuadrada a la izquierda) */
  .s-mant{grid-template-columns:92px 1fr;gap:6px 14px;align-items:start;padding:12px 14px 10px 12px;}
  .s-mant .s-foto{aspect-ratio:1/1;border-radius:10px;}
  .s-mant .s-cuerpo{padding:0;}
  .s-mant .s-titulo{margin-bottom:6px;}
  .s-mant .s-titulo h3{font-size:17px;}
  .s-mant p{font-size:14px;}
  .s-mant .s-link{grid-column:2;padding:0;min-height:40px;}
  .ue-txt h2{font-size:24px;}
  .ue-txt>p{font-size:16px;}
  .rs-head h2{font-size:24px;}
  .rs-grid .resena{padding:24px 22px 22px;}
  .rs-grid .resena blockquote p{font-size:16px;}
  .oh-card .photo{aspect-ratio:16/10;}
  /* Fase 18: el carrusel de obras es el componente común .carr (styles.css); aquí solo el foco */
  .oh-card:focus-visible{outline-offset:-2px;}
  /* Zonas: rejilla 2×2 compacta */
  .zh-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .zh-card{padding:14px 10px 2px;border-radius:14px;}
  .zh-card h3{font-size:15.5px;}
  .zh-card p{font-size:11.5px;margin-bottom:8px;}
  .zh-card a{font-size:13px;gap:4px;min-height:44px;white-space:nowrap;}
  .zh-card a .ic{width:14px;height:14px;flex-shrink:0;}
}
