@media (max-width: 1540px) {
  :root { --ancho: 1320px; }
  .encabezado.fijo { padding-bottom: 102px; }
  .contenedor { width: min(var(--ancho), calc(100% - 90px)); }
  .franja-contenedor { padding-inline: 68px; }
  .franja-superior { min-height: 78px; padding: 10px 40px 12px; }
  .contacto-superior a, .horarios, .portal { font-size: 14px; }
  .menu-principal { min-height: 102px; }
  .logo { flex-basis: 286px; }
  .logo img { width: 272px; height: 91px; }
  .menu-lista { gap: 29px; }
  .menu-lista a, .desplegable > button { font-size: 14px; }
  .menu-principal .btn-principal { min-width: 166px; }
  .boton { min-height: 52px; padding-inline: 22px; font-size: 15px; border-radius: 11px; }
  .boton-cuadricula { width: 46px; height: 46px; }
  .hero, .hero-contenedor { min-height: 660px; }
  .hero-contenido { width: min(670px, 51%); padding-top: 46px; padding-bottom: 38px; }
  .hero-contenido .etiqueta-seccion { margin-bottom: 29px; }
  .hero h1 { font-size: clamp(44px, 3.5vw, 58px); max-width: 9em; }
  .hero-descripcion { max-width: 580px; font-size: 17px; }
  .acciones .boton { min-width: 205px; }
  .beneficios { gap: 16px; }
  .beneficio { font-size: 13px; gap: 10px; }
  .beneficio-icono { width: 44px; height: 44px; flex-basis: 44px; }
}

@media (max-width: 1120px) {
  .horarios, .redes, .portal { display: none; }
  .franja-superior { justify-content: flex-start; }
  .menu-movil { position: relative; z-index: 72; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 8px; display: grid; place-items: center; background: #fff0c9; cursor: pointer; }
  .menu-movil svg { width: 25px; }
  .logo, .controles-movil { position: relative; z-index: 72; }
  .menu-zona { position: fixed; inset: 0; z-index: 70; width: 100%; min-height: 100vh; min-height: 100dvh; max-height: none; padding: clamp(118px, 15vh, 165px) max(28px, 8vw) 34px; border: 0; border-radius: 0; background: linear-gradient(155deg, #fff 0 68%, #f1f8f4 100%); box-shadow: none; display: none; flex-direction: column; align-items: stretch; justify-content: center; overflow-y: auto; }
  .menu-zona.abierto { display: flex; }
  .menu-movil[aria-expanded="true"] svg { opacity: 0; }
  .menu-movil[aria-expanded="true"]::before, .menu-movil[aria-expanded="true"]::after { content: ""; position: absolute; width: 25px; height: 2px; border-radius: 2px; background: var(--verde-oscuro); }
  .menu-movil[aria-expanded="true"]::before { transform: rotate(45deg); }
  .menu-movil[aria-expanded="true"]::after { transform: rotate(-45deg); }
  .menu-lista { width: min(100%, 720px); margin-inline: auto; flex-direction: column; align-items: stretch; gap: 0; }
  .menu-lista a, .desplegable > button { width: 100%; justify-content: center; padding: 15px 8px; border-bottom: 1px solid #e5eeeb; font-size: 16px; text-align: center; }
  .desplegable ul { position: static; display: none; width: 100%; padding: 0 12px; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .desplegable:hover ul, .desplegable:focus-within ul { display: none; }
  .desplegable.abierto ul { display: block; }
  .portal-menu-movil { display: block; margin-top: 16px; }
  .portal-menu-movil a { min-height: 58px; justify-content: center; gap: 12px; padding-inline: 22px; border: 1px solid rgba(255,255,255,.28); border-radius: 12px; background: linear-gradient(105deg, #07594c, #04743e); color: #fff; font-size: 17px; font-weight: 800; box-shadow: 0 12px 24px rgba(3,58,53,.18); }
  .portal-menu-movil a:hover { color: var(--amarillo); }
  .portal-menu-movil svg { width: 24px; height: 24px; flex: 0 0 24px; color: var(--amarillo); stroke-width: 2; }
  .menu-principal .menu-zona > .btn-principal { display: none; }
  .boton-cuadricula { display: none; }
  .hero-foto { background-position: 76% center; }
  .hero-capa { background: linear-gradient(90deg, rgba(3, 58, 53, .97), rgba(3, 58, 53, .9) 46%, rgba(3, 58, 53, .54) 66%, rgba(3, 58, 53, .18)); }
  .hero, .hero-contenedor { min-height: 708px; }
  .hero-contenido { width: min(715px, 72%); padding-top: 90px; padding-bottom: 40px; transform: none; }
  .hero-contenido .etiqueta-seccion { margin-bottom: 30px; }
  .hero h1 { font-size: clamp(43px, 5vw, 52px); line-height: 1.08; max-width: 9em; }
  .hero-descripcion { max-width: 620px; font-size: 18px; line-height: 1.46; }
  .acciones .boton { min-width: 225px; min-height: 56px; font-size: 16px; }
  .beneficios { gap: 20px; }
  .beneficio { font-size: 14px; line-height: 1.45; }
  .beneficio-icono { width: 48px; height: 48px; flex-basis: 48px; }
  .logo { flex-basis: 274px; }
  .logo img { width: 260px; height: 89px; }
}

@media (max-width: 720px) {
  body { word-spacing: .055em; }
  h1, h2, h3, p, a, button, span, strong, b { letter-spacing: 0; }
  .contenedor { width: calc(100% - 32px); }
  .franja-contenedor { display: none; }
  .encabezado.fijo { padding-bottom: 88px; }
  .menu-principal { min-height: 88px; gap: 10px; }
  .logo { flex-basis: 220px; }
  .logo img { width: 218px; height: 80px; }
  .menu-zona { padding: 108px 22px 26px; }
  .hero { min-height: 890px; }
  .hero-foto { inset: 0; background-position: 64% 14%; }
  .hero-capa { background: linear-gradient(180deg, rgba(3, 58, 53, .54), rgba(3, 58, 53, .82) 33%, rgba(3, 58, 53, .94) 54%, #033a35 79%); }
  .hero::before { inset: 0 0 0 0; opacity: .18; clip-path: polygon(0 0, 100% 0, 74% 100%, 0 100%); }
  .hero-contenedor { min-height: 890px; align-items: flex-end; }
  .hero-contenido { width: 100%; padding: 330px 0 66px; transform: none; }
  .hero-contenido .etiqueta-seccion { margin-bottom: 24px; }
  .hero h1 { margin-top: 0; font-size: clamp(35px, 9vw, 42px); line-height: 1.1; max-width: 11.2em; }
  .hero-descripcion { font-size: 17px; line-height: 1.5; }
  .hero-descripcion br { display: none; }
  .acciones { margin-top: 27px; flex-direction: column; gap: 12px; }
  .acciones .boton { width: auto; min-width: 225px; min-height: 58px; align-self: flex-start; font-size: 16px; }
  .beneficios { margin-top: 38px; display: grid; grid-template-columns: 1fr; gap: 18px; }
  .beneficio { gap: 14px; font-size: 15px; line-height: 1.45; white-space: normal; }
  .beneficio-icono { width: 50px; height: 50px; flex-basis: 50px; }
  .beneficio-icono svg { width: 27px; height: 27px; }
  .linea { display: none; }
  .whatsapp-flotante { right: 17px; bottom: 17px; width: 48px; height: 48px; }
}

@media (max-width: 720px) {
  .acciones { justify-content: center; }
  .acciones .boton { margin-inline: auto; align-self: center; }
  .servicio-contenido .boton-servicio,
  .boton-todos-servicios,
  .boton-equipo,
  .boton-evaluacion { margin-left: auto; margin-right: auto; }
  .servicio-contenido .boton-servicio {
    width: min(100%, 255px);
    padding-inline: 10px;
    font-size: 13px;
  }
  .todos-servicios .boton-todos-servicios {
    width: min(100%, 245px);
    padding-inline: 10px;
    font-size: 13px;
  }
  .equipo-contenido .boton-equipo {
    width: min(100%, 280px);
    padding-inline: 10px;
    font-size: 12px;
  }
  .evaluacion-accion .boton-evaluacion {
    width: min(100%, 245px);
    padding-inline: 10px;
    font-size: 13px;
  }
}

@media (max-width: 390px) {
  .hero h1 { font-size: 35px; }
  .hero-descripcion { font-size: 16px; }
  .hero-contenido { padding-top: 306px; }
  .menu-principal { width: calc(100% - 12px); }
  .logo { flex-basis: 196px; }
  .logo img { width: 196px; height: 72px; }
  .menu-principal { gap: 6px; }
}


/* =========================================================
   V29 — sincronización del header compacto PC/laptop
   ========================================================= */
@media (min-width: 1121px) {
  .menu-principal { min-height: 96px; }
  .encabezado.fijo { padding-bottom: 96px; }
  .logo { flex-basis: 286px; }
  .logo img { width: 276px; height: 88px; }
}

@media (min-width: 1121px) and (max-width: 1540px) {
  .menu-principal { min-height: 90px; }
  .encabezado.fijo { padding-bottom: 90px; }
  .logo { flex-basis: 258px; }
  .logo img { width: 248px; height: 82px; }
}
