.franja-contenedor { padding-inline: clamp(38px, 4.3vw, 82px); }
.franja-superior { min-height: 88px; padding: 12px 48px 14px; display: flex; align-items: center; justify-content: space-between; gap: 26px; color: #fff; background: var(--verde-oscuro); border-radius: 0 0 68px 68px; }
.contacto-superior, .horarios { display: flex; flex-direction: column; gap: 7px; }
.contacto-superior a { display: flex; align-items: center; gap: 10px; font-size: 16px; }
.contacto-superior svg { width: 20px; height: 20px; color: var(--amarillo); fill: currentColor; stroke: none; }
.superior-derecha { display: flex; align-items: center; gap: 28px; }
.horarios { min-width: 268px; font-size: 16px; }
.redes { display: flex; align-items: center; gap: 14px; }
.redes a { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #fff; transition: color .2s, background-color .2s; }
.redes a:hover { background: rgba(255, 255, 255, .11); color: var(--amarillo); }
.redes svg { width: 29px; height: 29px; stroke-width: 2.2; }
.redes #facebookEnlace svg { width: 21px; height: 28px; fill: currentColor; stroke: none; }
.portal { min-height: 38px; padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .4); display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 800; }
.portal svg { width: 25px; height: 25px; stroke-width: 1.8; }
.menu-envuelto { position: relative; z-index: 100; background: #fff; }
.encabezado.fijo { padding-bottom: 112px; }
.encabezado.fijo .menu-envuelto { position: fixed; inset: 0 0 auto; box-shadow: var(--sombra); }
.menu-principal { min-height: 112px; display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.logo { flex: 0 0 320px; }
.logo picture { display: block; }
.logo img { width: 304px; height: 102px; object-fit: contain; background: #fff; }
.menu-zona { display: flex; align-items: center; gap: 22px; }
.menu-lista { margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(26px, 2.4vw, 52px); list-style: none; }
.menu-lista > li { position: relative; }
.menu-lista a, .desplegable > button { padding: 11px 0; border: 0; display: flex; align-items: center; gap: 5px; background: transparent; color: var(--texto); cursor: pointer; font: 600 16px "Montserrat", sans-serif; white-space: nowrap; }
.desplegable > button svg { width: 16px; height: 16px; stroke-width: 2; transition: transform .2s; }
.menu-lista a:hover, .desplegable > button:hover, .menu-lista a.activo { color: var(--amarillo-hover); }
.desplegable ul { position: absolute; top: calc(100% + 8px); left: -20px; z-index: 20; width: 250px; margin: 0; padding: 10px 18px; border-radius: 8px; background: #fff; box-shadow: var(--sombra); list-style: none; opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; }
.desplegable:hover ul, .desplegable:focus-within ul, .desplegable.abierto ul { opacity: 1; visibility: visible; transform: none; }
.desplegable.abierto > button svg { transform: rotate(180deg); }
.desplegable ul a { padding: 12px 2px; white-space: normal; }
.menu-principal .btn-principal { min-width: 174px; }
.boton-cuadricula { width: 48px; height: 48px; padding: 0; border: 1px solid #ffe3a0; border-radius: 7px; background: #fff3d4; color: #eeb20a; display: grid; place-items: center; cursor: pointer; transition: background-color .2s, transform .2s; }
.boton-cuadricula:hover { background: #ffe8a9; transform: translateY(-1px); }
.boton-cuadricula svg { width: 22px; height: 22px; fill: currentColor; stroke: none; }
.menu-movil { display: none; }
.controles-movil { display: none; align-items: center; gap: 8px; }
.portal-menu-movil { display: none; }


/* =========================================================
   V29 — encabezado más compacto en PC y laptop
   Se conserva intacta la configuración tablet/móvil.
   ========================================================= */
@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;
  }
}

/* V38: CTA de agendamiento estándar del encabezado para PC y laptop. */
.encabezado-cta-agendar {
  flex: 0 0 auto;
  white-space: nowrap;
}


/* V65 · ajuste leve de altura del encabezado PC/Laptop */
@media (min-width:1541px){
  .menu-principal{min-height:102px!important;}
  .encabezado.fijo{padding-bottom:102px!important;}
}
@media (min-width:1121px) and (max-width:1540px){
  .menu-principal{min-height:96px!important;}
  .encabezado.fijo{padding-bottom:96px!important;}
}
