*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Arial,Helvetica,sans-serif;color:#08275a;background:#fff;line-height:1.6}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}.topbar{background:#001f40;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 7%;font-size:14px;gap:20px}.topbar-left,.topbar-right{display:flex;gap:24px;flex-wrap:wrap;align-items:center}.topbar a{color:#fff}.navbar{background:#fff;display:flex;align-items:center;justify-content:space-between;padding:18px 7%;box-shadow:0 3px 15px rgba(0,0,0,.08);position:sticky;top:0;z-index:1000}.logo img{width:280px}.menu{list-style:none;display:flex;gap:20px;font-size:13px;text-transform:uppercase;font-weight:bold}.menu a:hover,.menu a.active{color:#e2361f}.btn-nav{display:inline-block;padding:13px 22px;border-radius:5px;font-weight:bold;text-transform:uppercase;font-size:14px;background:#e2361f;color:#fff}.subtitle{color:#e2361f;text-transform:uppercase;font-size:14px;font-weight:bold;margin-bottom:8px}.works-hero{min-height:460px;background:linear-gradient(90deg,rgba(0,43,87,.9),rgba(0,43,87,.28)),url("img/obras-realizadas/promocion14-terminado.webp");background-size:cover;background-position:center;display:flex;align-items:center;padding:0 7%;color:#fff}.works-hero h1{font-size:58px;line-height:1.08;margin-bottom:22px}.works-hero p{font-size:20px;max-width:780px}.company-stats{background:#002b57;color:#fff;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:38px 7%;text-align:center}.company-stats div{border-left:4px solid #e2361f;padding:8px 15px}.company-stats strong{display:block;font-size:34px;line-height:1.1}.company-stats span{display:block;color:#dce8f4;margin-top:7px}.works-map-section,.history-section{padding:85px 7%;text-align:center}.works-map-section{background:#f4f7fa}.works-map-section h2,.history-section h2{font-size:42px;margin-bottom:16px}.section-intro{max-width:820px;margin:0 auto 40px;color:#42566b;font-size:18px}.works-map-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:start;text-align:left}.interactive-map-wrap{position:relative;min-width:0}#map{width:100%;height:650px;border:1px solid #dce4ec;border-radius:14px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.16);background:#e8eef3;z-index:1}.map-legend{position:absolute;left:14px;bottom:28px;z-index:500;display:flex;flex-direction:column;gap:6px;min-width:145px;padding:12px 14px;border-radius:9px;background:rgba(255,255,255,.96);box-shadow:0 4px 15px rgba(0,0,0,.18);font-size:12px;color:#33475b}.map-legend strong{color:#002b57}.map-legend span{display:flex;align-items:center;gap:8px}.legend-dot{width:12px;height:12px;border-radius:50%;flex:0 0 12px}.period-1973{background:#e2361f}.period-1990{background:#df7b16}.period-2000{background:#1769aa}.period-2010{background:#26834a}.works-location-list{list-style:none;max-height:650px;overflow:auto;background:#fff;border:1px solid #dce4ec;border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.06)}.works-location-list li{border-bottom:1px solid #e3e9ef}.works-location-list a{display:grid;grid-template-columns:42px 1fr;gap:3px 12px;padding:13px 16px;transition:.25s}.works-location-list a:hover,.works-location-list a.active-location{background:#eef4f9;box-shadow:inset 4px 0 0 #e2361f}.works-location-list span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#e2361f;color:#fff;font-weight:bold}.works-location-list strong{color:#002b57}.works-location-list small{color:#607184}.custom-numbered-marker{background:transparent;border:0;opacity:0;transform:translateY(-12px);transition:opacity .35s ease,transform .35s ease}.custom-numbered-marker.marker-visible{opacity:1;transform:translateY(0)}.marker-number{width:36px;height:36px;display:flex;justify-content:center;align-items:center;border:3px solid #fff;border-radius:50%;color:#fff;font-size:13px;font-weight:bold;box-shadow:0 3px 12px rgba(0,0,0,.38);transition:.25s}.custom-numbered-marker.is-active .marker-number{width:42px;height:42px;box-shadow:0 0 0 7px rgba(226,54,31,.22),0 6px 18px rgba(0,0,0,.45)}.work-popup-shell .leaflet-popup-content-wrapper{border-radius:14px;padding:0;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.25)}.work-popup-shell .leaflet-popup-content{margin:0;width:auto!important}.work-popup-image{width:100%;height:190px;object-fit:cover}.work-popup-body{padding:17px 18px 18px}.work-popup-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.popup-number{display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:#e2361f;color:#fff;font-weight:bold}.popup-period{color:#e2361f;font-size:13px;font-weight:bold}.work-popup h3{margin:0 0 9px;color:#002b57;font-size:20px;line-height:1.23}.work-popup p{margin:5px 0;color:#42566b;line-height:1.4}.work-popup-actions{display:flex;gap:9px;margin-top:14px}.work-popup-actions a{flex:1;text-align:center;padding:10px 8px;border-radius:6px;font-weight:bold;font-size:13px}.popup-card-link{background:#e2361f;color:#fff}.popup-map-link{background:#edf3f8;color:#002b57}.timeline-years{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:30px 0 45px}.timeline-years span{background:#002b57;color:#fff;padding:11px 17px;border-radius:30px;font-weight:bold;font-size:14px}.history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:left}.history-card{background:#fff;border:1px solid #dce4ec;border-radius:10px;box-shadow:0 8px 20px rgba(0,0,0,.07);overflow:hidden;scroll-margin-top:145px;transition:.35s}.history-card:hover{transform:translateY(-5px);box-shadow:0 15px 32px rgba(0,0,0,.13)}.history-card-highlight{box-shadow:0 0 0 5px rgba(226,54,31,.28),0 15px 35px rgba(0,0,0,.16)!important}.history-image{display:block;position:relative;overflow:hidden}.history-image img{width:100%;height:260px;object-fit:cover;transition:.35s}.history-image:hover img{transform:scale(1.04)}.history-number{position:absolute;left:16px;top:16px;width:42px;height:42px;border-radius:50%;background:#e2361f;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:bold;box-shadow:0 4px 12px rgba(0,0,0,.25)}.history-content{padding:25px}.history-year{color:#e2361f;font-weight:bold;font-size:15px;margin-bottom:4px}.history-content h3{font-size:23px;line-height:1.25;margin-bottom:12px}.history-address,.history-units{color:#42566b;margin-bottom:8px;font-weight:bold}.history-content>p:last-of-type{color:#42566b;margin-top:14px}.history-map-link{display:inline-block;color:#002b57;font-weight:bold;margin-top:18px}.history-map-link:hover{color:#e2361f}footer{background:#001f40;color:#fff;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;padding:55px 7%}.footer-brand p,.footer-column p{color:#dce8f4}.footer-bottom{background:#00172f;color:#dce8f4;text-align:center;padding:15px}.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:1100;background:#25d366;color:#fff;padding:13px 18px;border-radius:30px;font-weight:bold;box-shadow:0 5px 18px rgba(0,0,0,.25)}@media(max-width:1100px){.navbar{flex-wrap:wrap;gap:18px}.menu{order:3;width:100%;justify-content:center;flex-wrap:wrap}.history-grid{grid-template-columns:repeat(2,1fr)}.works-map-layout{grid-template-columns:1fr}.works-location-list{max-height:430px}}@media(max-width:900px){.topbar{flex-direction:column;text-align:center}.topbar-left,.topbar-right{justify-content:center}.navbar{flex-direction:column;gap:18px}.logo img{width:230px}.menu{flex-direction:column;text-align:center;gap:12px}.works-hero{min-height:470px;text-align:center;justify-content:center}.works-hero h1{font-size:40px}.company-stats,.history-grid,footer{grid-template-columns:1fr}.works-map-section,.history-section{padding:65px 5%}#map{height:480px}.history-image img{height:270px}}@media(max-width:560px){.works-hero h1{font-size:34px}.works-hero p{font-size:17px}.works-map-section h2,.history-section h2{font-size:32px}#map{height:410px;border-radius:8px}.map-legend{position:relative;left:auto;bottom:auto;margin-top:12px;display:grid;grid-template-columns:repeat(2,1fr)}.map-legend strong{grid-column:1/-1}.work-popup-image{height:155px}.history-content{padding:21px}.history-content h3{font-size:21px}}

/* =========================================================
   FASE 3 · MEJORA VISUAL DE OBRAS REALIZADAS
   Mantiene la estructura y mejora tarjetas, jerarquía,
   interacción, legibilidad y adaptación a móviles.
   ========================================================= */

/* Títulos y respiración general */
.works-map-section,
.history-section{
  position:relative;
}

.works-map-section h2,
.history-section h2{
  letter-spacing:-.02em;
  line-height:1.12;
}

.section-intro{
  line-height:1.75;
}

/* Barra cronológica */
.timeline-years{
  align-items:center;
}

.timeline-years span,
.timeline-years a{
  min-height:42px;
  padding:11px 18px;
  border-radius:999px;
  background:#002b57;
  color:#fff;
  font-weight:700;
  font-size:14px;
  line-height:1;
  box-shadow:0 5px 14px rgba(0,43,87,.14);
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.timeline-years span:hover,
.timeline-years a:hover{
  transform:translateY(-2px);
  box-shadow:0 9px 20px rgba(0,43,87,.2);
  background:#0a3b6c;
}

/* Tarjetas de promociones */
.history-grid{
  align-items:stretch;
}

.history-card{
  display:flex;
  flex-direction:column;
  height:100%;
  border:1px solid #dbe3ea;
  border-radius:14px;
  background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);
  box-shadow:0 8px 24px rgba(0,31,64,.08);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.history-card:hover{
  transform:translateY(-7px);
  border-color:#c9d5df;
  box-shadow:0 18px 38px rgba(0,31,64,.14);
}

.history-image{
  background:#e9eef3;
}

.history-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,31,64,0) 50%,rgba(0,31,64,.16) 100%);
  opacity:0;
  transition:opacity .3s ease;
  pointer-events:none;
}

.history-image:hover::after{
  opacity:1;
}

.history-image img{
  height:270px;
  transform:scale(1);
  transition:transform .42s ease, filter .42s ease;
}

.history-image:hover img{
  transform:scale(1.045);
  filter:saturate(1.04) contrast(1.02);
}

.history-number{
  width:44px;
  height:44px;
  border:3px solid rgba(255,255,255,.9);
  box-shadow:0 5px 16px rgba(0,0,0,.28);
  z-index:2;
}

.history-content{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:26px 26px 24px;
}

.history-year{
  display:inline-flex;
  align-self:flex-start;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  background:#fff0ed;
  color:#d52f1c;
  font-size:13px;
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.history-content h3{
  color:#002b57;
  font-size:23px;
  line-height:1.28;
  margin-bottom:14px;
  letter-spacing:-.015em;
}

.history-address,
.history-units{
  font-size:14.5px;
  line-height:1.5;
}

.history-address{
  padding-bottom:9px;
  margin-bottom:9px;
  border-bottom:1px solid #edf1f4;
}

.history-content>p:last-of-type{
  line-height:1.72;
  margin-top:14px;
}

.history-map-link{
  margin-top:auto;
  padding-top:18px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#002b57;
  font-size:14px;
  transition:color .2s ease, transform .2s ease;
}

.history-map-link:hover{
  color:#e2361f;
  transform:translateX(3px);
}

/* Mejora del mapa y de la lista lateral */
#map{
  border-radius:16px;
  box-shadow:0 16px 40px rgba(0,31,64,.15);
}

.works-location-list{
  border-radius:14px;
  box-shadow:0 10px 28px rgba(0,31,64,.08);
}

.works-location-list a{
  padding:14px 16px;
}

.works-location-list strong{
  line-height:1.35;
}

.works-location-list small{
  line-height:1.45;
}

.works-location-list a:hover,
.works-location-list a.active-location{
  background:#f1f6fa;
}

/* Popup del mapa */
.work-popup-shell .leaflet-popup-content-wrapper{
  border-radius:16px;
}

.work-popup-image{
  height:200px;
}

.work-popup-body{
  padding:18px 19px 19px;
}

.work-popup h3{
  font-size:20px;
  line-height:1.28;
}

.work-popup-actions a{
  border-radius:8px;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.work-popup-actions a:hover{
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(0,31,64,.12);
}

/* Bloque final 2016-Actualidad */
.current-period-section{
  margin-top:6px;
}

.current-period-card{
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,31,64,.09);
}

/* Accesibilidad: foco visible */
.timeline-years a:focus-visible,
.history-map-link:focus-visible,
.works-location-list a:focus-visible,
.work-popup-actions a:focus-visible{
  outline:3px solid rgba(226,54,31,.35);
  outline-offset:3px;
}

/* Tablets */
@media(max-width:1100px){
  .history-grid{
    gap:24px;
  }

  .history-image img{
    height:250px;
  }
}

/* Móviles y pantallas medianas */
@media(max-width:900px){
  .works-map-section,
  .history-section{
    padding-top:62px;
    padding-bottom:62px;
  }

  .history-grid{
    gap:22px;
  }

  .history-card{
    border-radius:13px;
  }

  .history-image img{
    height:280px;
  }

  .history-content{
    padding:24px;
  }
}

@media(max-width:640px){
  .timeline-years{
    gap:10px;
    margin:24px 0 34px;
  }

  .timeline-years span,
  .timeline-years a{
    flex:1 1 calc(50% - 10px);
    min-width:140px;
    text-align:center;
    justify-content:center;
    font-size:13px;
    padding:11px 12px;
  }

  .history-image img{
    height:235px;
  }

  .history-content{
    padding:22px 20px 21px;
  }

  .history-content h3{
    font-size:21px;
  }

  .history-address,
  .history-units,
  .history-content>p:last-of-type{
    font-size:14px;
  }

  .works-location-list a{
    grid-template-columns:38px 1fr;
    padding:12px 13px;
  }

  .works-location-list span{
    width:32px;
    height:32px;
    font-size:13px;
  }

  .work-popup-image{
    height:160px;
  }
}

/* Evita animaciones intensas cuando el usuario las desactiva */
@media(prefers-reduced-motion:reduce){
  .history-card,
  .history-image img,
  .history-image::after,
  .history-map-link,
  .timeline-years span,
  .timeline-years a,
  .work-popup-actions a{
    transition:none!important;
  }

  .history-card:hover,
  .timeline-years span:hover,
  .timeline-years a:hover,
  .history-map-link:hover,
  .work-popup-actions a:hover{
    transform:none!important;
  }
}

/* =========================================================
   AJUSTE FASE 3 · TARJETAS MÁS ANCHAS EN FORMATO 4:3
   ========================================================= */

/* Dos tarjetas por fila para evitar el aspecto estrecho y alargado */
@media (min-width: 901px){
  .history-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px;
    max-width:1240px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* Fotografía con proporción real 4:3 */
.history-image{
  aspect-ratio:4 / 3;
}

.history-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Contenido algo más compacto para equilibrar la altura */
.history-content{
  padding:23px 24px 22px;
}

.history-content h3{
  margin-bottom:11px;
}

.history-address{
  padding-bottom:8px;
  margin-bottom:8px;
}

.history-content>p:last-of-type{
  margin-top:12px;
  line-height:1.65;
}

.history-map-link{
  padding-top:15px;
}

/* En tablet se mantienen dos tarjetas por fila */
@media (min-width:641px) and (max-width:900px){
  .history-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
  }

  .history-content{
    padding:20px;
  }

  .history-content h3{
    font-size:20px;
  }

  .history-address,
  .history-units,
  .history-content>p:last-of-type{
    font-size:13.5px;
  }
}

/* En móvil, una tarjeta por fila */
@media (max-width:640px){
  .history-grid{
    grid-template-columns:1fr;
  }

  .history-image{
    aspect-ratio:4 / 3;
  }
}

/* =========================================================
   FASE 4 CORREGIDA · DESPLEGABLES HORIZONTALES DEL MAPA
   Las tarjetas generales mantienen el formato aprobado.
   ========================================================= */

.work-popup-shell .leaflet-popup-content{
  width:min(540px, calc(100vw - 90px))!important;
}

.work-popup{
  display:grid;
  grid-template-columns:46% 54%;
  min-height:235px;
  background:#fff;
}

.work-popup-image{
  width:100%;
  height:100%;
  min-height:235px;
  object-fit:cover;
}

.work-popup-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:20px 21px;
  min-width:0;
}

.work-popup-top{
  margin-bottom:9px;
}

.work-popup h3{
  font-size:21px;
  line-height:1.24;
  margin-bottom:9px;
}

.work-popup p{
  font-size:13.5px;
  line-height:1.42;
}

.work-popup-actions{
  margin-top:auto;
  padding-top:14px;
}

.work-popup-actions a{
  white-space:nowrap;
}

/* En pantallas pequeñas el desplegable vuelve a vertical */
@media(max-width:640px){
  .work-popup-shell .leaflet-popup-content{
    width:min(310px, calc(100vw - 58px))!important;
  }

  .work-popup{
    display:block;
    min-height:0;
  }

  .work-popup-image{
    height:155px;
    min-height:0;
  }

  .work-popup-body{
    padding:16px 17px 17px;
  }

  .work-popup h3{
    font-size:19px;
  }
}

/* =========================================================
   FASE 5 · REDISEÑO PROFESIONAL DE LA PÁGINA DE INICIO
   Todo queda limitado a body.home-page para no alterar
   Obras realizadas ni las demás páginas.
   ========================================================= */

.home-page{
  --home-navy:#002b57;
  --home-dark:#001f40;
  --home-red:#e2361f;
  --home-text:#42566b;
  --home-soft:#f4f7fa;
  overflow-x:hidden;
}

/* Cabecera más refinada */
.home-page .navbar{
  padding-top:15px;
  padding-bottom:15px;
  border-bottom:1px solid rgba(0,43,87,.06);
}

.home-page .menu{
  align-items:center;
}

.home-page .menu a{
  position:relative;
  padding:9px 0;
}

.home-page .menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:2px;
  height:2px;
  background:var(--home-red);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .22s ease;
}

.home-page .menu a:hover::after,
.home-page .menu a.active::after{
  transform:scaleX(1);
}

.home-page .btn-nav{
  box-shadow:0 7px 18px rgba(226,54,31,.22);
  transition:transform .22s ease,box-shadow .22s ease;
}

.home-page .btn-nav:hover{
  transform:translateY(-2px);
  box-shadow:0 11px 23px rgba(226,54,31,.29);
}

/* Hero */
.home-page .hero{
  min-height:690px;
  display:flex;
  align-items:center;
  position:relative;
  isolation:isolate;
  padding:90px 7%;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(0,31,64,.93) 0%,rgba(0,43,87,.82) 42%,rgba(0,43,87,.23) 100%),
    url("img/portada-suances.webp") center/cover no-repeat;
}

.home-page .hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,0) 65%,rgba(0,31,64,.18) 100%);
}

.home-page .hero-content{
  max-width:790px;
}

.home-page .hero-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 13px;
  margin-bottom:22px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(7px);
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.home-page .hero h1{
  max-width:780px;
  margin-bottom:22px;
  font-size:clamp(44px,5.6vw,76px);
  line-height:1.03;
  letter-spacing:-.045em;
  text-wrap:balance;
}

.home-page .hero-content>p{
  max-width:690px;
  margin-bottom:32px;
  color:#edf4fa;
  font-size:20px;
  line-height:1.7;
}

.home-page .hero-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:13px;
}

.home-page .btn-primary,
.home-page .btn-secondary,
.home-page .btn-whatsapp,
.home-page .btn-light{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:13px 21px;
  border-radius:7px;
  font-weight:700;
  transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease;
}

.home-page .btn-primary{
  background:var(--home-red);
  color:#fff;
  box-shadow:0 8px 22px rgba(226,54,31,.25);
}

.home-page .btn-whatsapp{
  background:#25d366;
  color:#fff;
}

.home-page .btn-secondary{
  border:1px solid rgba(255,255,255,.7);
  background:rgba(255,255,255,.08);
  color:#fff;
  backdrop-filter:blur(5px);
}

.home-page .btn-primary:hover,
.home-page .btn-secondary:hover,
.home-page .btn-whatsapp:hover,
.home-page .btn-light:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,31,64,.24);
}

.home-page .hero-trust{
  display:flex;
  flex-wrap:wrap;
  gap:12px 24px;
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.24);
  color:#e6eff7;
  font-size:14px;
  font-weight:700;
}

.home-page .hero-trust span{
  position:relative;
}

.home-page .hero-trust span:not(:last-child)::after{
  content:"";
  position:absolute;
  right:-13px;
  top:50%;
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--home-red);
}

/* Cuatro ventajas */
.home-page .features{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  width:min(1180px,86%);
  margin:-48px auto 0;
  background:#fff;
  border-radius:14px;
  box-shadow:0 18px 48px rgba(0,31,64,.16);
  overflow:hidden;
}

.home-page .features>div{
  position:relative;
  min-height:178px;
  padding:30px 27px;
  border-right:1px solid #e5ebf0;
}

.home-page .features>div:last-child{
  border-right:0;
}

.home-page .feature-icon{
  display:block;
  margin-bottom:12px;
  color:var(--home-red);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
}

.home-page .features h3{
  margin-bottom:7px;
  color:var(--home-navy);
  font-size:22px;
}

.home-page .features p{
  color:var(--home-text);
  font-size:14.5px;
  line-height:1.6;
}

/* Secciones generales */
.home-page .section,
.home-page .why,
.home-page .completed,
.home-page .contact{
  padding:95px 7%;
  text-align:center;
}

.home-page .section{
  padding-top:120px;
}

.home-page .section h2,
.home-page .why h2,
.home-page .completed h2,
.home-page .contact h2,
.home-page .about h2,
.home-page .highlight h2{
  color:var(--home-navy);
  font-size:clamp(32px,4vw,48px);
  line-height:1.12;
  letter-spacing:-.03em;
}

.home-page .section-intro{
  margin-top:15px;
  margin-bottom:46px;
  line-height:1.75;
}

/* Tarjetas principales */
.home-page .cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  max-width:1240px;
  margin:0 auto;
  text-align:left;
}

.home-page .card{
  display:grid;
  grid-template-columns:46% 54%;
  min-height:310px;
  overflow:hidden;
  border:1px solid #dce4ec;
  border-radius:15px;
  background:#fff;
  box-shadow:0 10px 28px rgba(0,31,64,.09);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}

.home-page .card:hover{
  transform:translateY(-7px);
  border-color:#c9d5df;
  box-shadow:0 20px 42px rgba(0,31,64,.15);
}

.home-page .card>img{
  width:100%;
  height:100%;
  min-height:310px;
  object-fit:cover;
  transition:transform .45s ease,filter .45s ease;
}

.home-page .card:hover>img{
  transform:scale(1.045);
  filter:saturate(1.05) contrast(1.02);
}

.home-page .card-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:29px 28px;
}

.home-page .card-content>span{
  margin-bottom:10px;
  color:var(--home-red);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.home-page .card-content h3{
  margin-bottom:12px;
  color:var(--home-navy);
  font-size:24px;
  line-height:1.25;
}

.home-page .card-content p{
  margin-bottom:20px;
  color:var(--home-text);
  line-height:1.65;
}

.home-page .card-content a{
  margin-top:auto;
  color:var(--home-navy);
  font-size:14px;
  font-weight:800;
  transition:color .2s ease,transform .2s ease;
}

.home-page .card-content a:hover{
  color:var(--home-red);
  transform:translateX(3px);
}

/* Franja de venta directa */
.home-page .highlight{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  padding:54px 7%;
  color:#fff;
  background:
    linear-gradient(110deg,rgba(0,31,64,.98),rgba(0,43,87,.9)),
    radial-gradient(circle at right,#0d568e,transparent 50%);
}

.home-page .highlight h2{
  margin-bottom:9px;
  color:#fff;
  font-size:36px;
}

.home-page .highlight p{
  max-width:760px;
  color:#dce8f4;
  font-size:17px;
}

.home-page .btn-light{
  flex:0 0 auto;
  background:#fff;
  color:var(--home-navy);
}

/* Por qué elegirnos */
.home-page .why{
  background:var(--home-soft);
}

.home-page .why-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  max-width:1120px;
  margin:42px auto 0;
  text-align:left;
}

.home-page .why-grid>div{
  position:relative;
  min-height:205px;
  padding:31px 28px;
  border:1px solid #dce4ec;
  border-radius:13px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,31,64,.07);
}

.home-page .why-grid>div::before{
  content:"";
  display:block;
  width:38px;
  height:4px;
  margin-bottom:22px;
  border-radius:4px;
  background:var(--home-red);
}

.home-page .why-grid h3{
  margin-bottom:10px;
  color:var(--home-navy);
  font-size:22px;
}

.home-page .why-grid p{
  color:var(--home-text);
}

/* Estadísticas de trayectoria */
.home-page .company-stats{
  padding:48px 7%;
  background:linear-gradient(105deg,#002b57,#064474);
}

.home-page .company-stats div{
  display:flex;
  min-height:118px;
  flex-direction:column;
  justify-content:center;
  border-left:0;
  border-right:1px solid rgba(255,255,255,.19);
}

.home-page .company-stats div:last-child{
  border-right:0;
}

.home-page .company-stats strong{
  font-size:clamp(31px,3.2vw,46px);
  letter-spacing:-.035em;
}

.home-page .company-stats span{
  max-width:220px;
  margin:9px auto 0;
  line-height:1.45;
}

/* Obras finalizadas */
.home-page .completed{
  background:#fff;
}

.home-page .completed-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px;
  max-width:1220px;
  margin:0 auto;
  text-align:left;
}

.home-page .completed-card{
  overflow:hidden;
  border:1px solid #dce4ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 9px 26px rgba(0,31,64,.08);
  transition:transform .28s ease,box-shadow .28s ease;
}

.home-page .completed-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 38px rgba(0,31,64,.14);
}

.home-page .completed-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .4s ease;
}

.home-page .completed-card:hover img{
  transform:scale(1.045);
}

.home-page .completed-content{
  padding:23px;
}

.home-page .completed-content h3{
  margin-bottom:9px;
  color:var(--home-navy);
  font-size:21px;
}

.home-page .completed-content p{
  color:var(--home-text);
}

/* Empresa */
.home-page .about{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  min-height:590px;
  background:var(--home-soft);
}

.home-page .about-text{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:75px 9% 75px 14%;
}

.home-page .about-text h2{
  margin-bottom:24px;
}

.home-page .about-text p:not(.subtitle){
  margin-bottom:17px;
  color:var(--home-text);
  font-size:17px;
  line-height:1.75;
}

.home-page .about-text .btn-primary{
  align-self:flex-start;
  margin-top:12px;
}

.home-page .about-img{
  min-height:590px;
  overflow:hidden;
}

.home-page .about-img img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Contacto */
.home-page .contact{
  background:#fff;
}

.home-page .contact-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  max-width:1180px;
  margin:0 auto;
  text-align:left;
}

.home-page .contact-grid>div{
  min-height:145px;
  padding:25px;
  border:1px solid #dce4ec;
  border-radius:12px;
  background:#f9fbfc;
}

.home-page .contact-grid h3{
  margin-bottom:10px;
  color:var(--home-navy);
  font-size:17px;
}

.home-page .contact-grid p,
.home-page .contact-grid a{
  color:var(--home-text);
  overflow-wrap:anywhere;
}

.home-page .contact-grid a:hover{
  color:var(--home-red);
}

/* Pie */
.home-page footer{
  grid-template-columns:1.4fr 1fr 1fr 1fr;
}

.home-page .footer-logo img{
  width:230px;
  margin-bottom:20px;
}

.home-page .footer-column h3{
  margin-bottom:16px;
}

.home-page .footer-column ul{
  list-style:none;
}

.home-page .footer-column li{
  margin-bottom:8px;
  color:#dce8f4;
}

.home-page .footer-column a:hover{
  color:#fff;
}

.home-page .footer-whatsapp{
  display:inline-block;
  margin-top:12px;
  padding:9px 15px;
  border-radius:6px;
  background:#25d366;
  color:#fff;
  font-weight:700;
}

/* Responsive */
@media(max-width:1180px){
  .home-page .cards{
    grid-template-columns:1fr;
    max-width:880px;
  }

  .home-page .contact-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .home-page footer{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:900px){
  .home-page .hero{
    min-height:640px;
    justify-content:center;
    text-align:center;
    background:
      linear-gradient(rgba(0,31,64,.85),rgba(0,43,87,.72)),
      url("img/portada-suances.webp") center/cover no-repeat;
  }

  .home-page .hero-content{
    margin:auto;
  }

  .home-page .hero-buttons,
  .home-page .hero-trust{
    justify-content:center;
  }

  .home-page .features{
    grid-template-columns:repeat(2,1fr);
    margin-top:-38px;
  }

  .home-page .features>div:nth-child(2){
    border-right:0;
  }

  .home-page .features>div{
    border-bottom:1px solid #e5ebf0;
  }

  .home-page .features>div:nth-last-child(-n+2){
    border-bottom:0;
  }

  .home-page .why-grid,
  .home-page .completed-grid{
    grid-template-columns:1fr;
    max-width:680px;
  }

  .home-page .highlight{
    flex-direction:column;
    text-align:center;
  }

  .home-page .about{
    grid-template-columns:1fr;
  }

  .home-page .about-text{
    padding:65px 7%;
  }

  .home-page .about-img{
    min-height:430px;
  }
}

@media(max-width:640px){
  .home-page .hero{
    min-height:610px;
    padding:72px 5%;
  }

  .home-page .hero h1{
    font-size:40px;
  }

  .home-page .hero-content>p{
    font-size:17px;
  }

  .home-page .hero-buttons{
    flex-direction:column;
  }

  .home-page .hero-buttons a{
    width:100%;
  }

  .home-page .hero-trust{
    gap:9px;
    flex-direction:column;
  }

  .home-page .hero-trust span::after{
    display:none;
  }

  .home-page .features{
    grid-template-columns:1fr;
    width:90%;
  }

  .home-page .features>div{
    min-height:auto;
    border-right:0;
    border-bottom:1px solid #e5ebf0!important;
  }

  .home-page .features>div:last-child{
    border-bottom:0!important;
  }

  .home-page .section,
  .home-page .why,
  .home-page .completed,
  .home-page .contact{
    padding:70px 5%;
  }

  .home-page .section{
    padding-top:95px;
  }

  .home-page .card{
    display:block;
    min-height:0;
  }

  .home-page .card>img{
    height:235px;
    min-height:0;
  }

  .home-page .card-content{
    padding:24px 21px;
  }

  .home-page .company-stats,
  .home-page .contact-grid,
  .home-page footer{
    grid-template-columns:1fr;
  }

  .home-page .company-stats div{
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.17);
  }

  .home-page .company-stats div:last-child{
    border-bottom:0;
  }

  .home-page .about-img{
    min-height:310px;
  }

  .home-page .whatsapp-float{
    right:14px;
    bottom:14px;
  }
}

@media(prefers-reduced-motion:reduce){
  .home-page *,
  .home-page *::before,
  .home-page *::after{
    scroll-behavior:auto!important;
    transition:none!important;
  }
}

/* =========================================================
   FASE 5.1 · PROMOCIÓN ACTUAL DESTACADA EN LA PORTADA
   Estilos limitados exclusivamente a body.home-page.
   ========================================================= */

.home-page .featured-promotion{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  width:min(1240px,86%);
  margin:72px auto 0;
  overflow:hidden;
  border:1px solid #d9e2ea;
  border-radius:18px;
  background:#fff;
  box-shadow:0 20px 52px rgba(0,31,64,.14);
}

.home-page .featured-promotion-image{
  position:relative;
  min-height:470px;
  overflow:hidden;
  background:#e8eef3;
}

.home-page .featured-promotion-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,31,64,0) 55%,rgba(0,31,64,.24) 100%);
  pointer-events:none;
}

.home-page .featured-promotion-image img{
  width:100%;
  height:100%;
  min-height:470px;
  object-fit:cover;
  transition:transform .55s ease,filter .55s ease;
}

.home-page .featured-promotion:hover .featured-promotion-image img{
  transform:scale(1.035);
  filter:saturate(1.04) contrast(1.02);
}

.home-page .featured-promotion-badge{
  position:absolute;
  z-index:2;
  top:24px;
  left:24px;
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:8px 15px;
  border-radius:999px;
  background:#e2361f;
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  box-shadow:0 8px 20px rgba(0,0,0,.2);
}

.home-page .featured-promotion-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:48px 46px;
}

.home-page .featured-promotion-content h2{
  margin-bottom:18px;
  color:#002b57;
  font-size:clamp(34px,4vw,52px);
  line-height:1.06;
  letter-spacing:-.035em;
}

.home-page .featured-promotion-lead{
  margin-bottom:26px;
  color:#42566b;
  font-size:18px;
  line-height:1.72;
}

.home-page .featured-promotion-details{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:30px;
  list-style:none;
}

.home-page .featured-promotion-details li{
  min-height:105px;
  padding:17px 14px;
  border:1px solid #dde5ec;
  border-radius:10px;
  background:#f7f9fb;
}

.home-page .featured-promotion-details strong,
.home-page .featured-promotion-details span{
  display:block;
}

.home-page .featured-promotion-details strong{
  margin-bottom:5px;
  color:#002b57;
  font-size:17px;
}

.home-page .featured-promotion-details span{
  color:#607184;
  font-size:12.5px;
  line-height:1.45;
}

.home-page .featured-promotion-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.home-page .featured-whatsapp{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:13px 21px;
  border-radius:7px;
  background:#25d366;
  color:#fff;
  font-weight:700;
  transition:transform .22s ease,box-shadow .22s ease;
}

.home-page .featured-whatsapp:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(0,31,64,.2);
}

/* La promoción ocupa ahora el primer gran bloque tras la cabecera. */
.home-page .features{
  margin-top:58px;
}

/* Tablet */
@media(max-width:1000px){
  .home-page .featured-promotion{
    grid-template-columns:1fr;
    max-width:820px;
  }

  .home-page .featured-promotion-image,
  .home-page .featured-promotion-image img{
    min-height:410px;
  }
}

/* Móvil */
@media(max-width:640px){
  .home-page .featured-promotion{
    width:90%;
    margin-top:42px;
    border-radius:14px;
  }

  .home-page .featured-promotion-image,
  .home-page .featured-promotion-image img{
    min-height:265px;
  }

  .home-page .featured-promotion-badge{
    top:16px;
    left:16px;
    max-width:calc(100% - 32px);
    font-size:10.5px;
  }

  .home-page .featured-promotion-content{
    padding:30px 21px 27px;
  }

  .home-page .featured-promotion-content h2{
    font-size:34px;
  }

  .home-page .featured-promotion-lead{
    font-size:16px;
  }

  .home-page .featured-promotion-details{
    grid-template-columns:1fr;
  }

  .home-page .featured-promotion-details li{
    min-height:auto;
  }

  .home-page .featured-promotion-actions{
    flex-direction:column;
  }

  .home-page .featured-promotion-actions a{
    width:100%;
  }

  .home-page .features{
    margin-top:42px;
  }
}


/* Technical polish: sharper typography and stable rendering */
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal;font-synthesis:none}
button,input,select,textarea{font:inherit}
img{height:auto}
:focus-visible{outline:3px solid #e2361f;outline-offset:3px}
@media (min-resolution:2dppx){body{letter-spacing:.001em}.menu{letter-spacing:.025em}}
