

/*=========================================================
= RESPONSIVE · ALDA
=========================================================*/

/*========================
= ≤ 1024px
========================*/
@media (max-width: 1024px){
  :root{    --contenedor-pad: 1rem;  }
  .contenedor{    width: min(100% - (var(--contenedor-pad) * 2), var(--contenedor-max));    padding-inline: 1rem;  }

  /* Header */
  .cabeceraPagina-inner{    gap: 1rem;  }
  ul.cabeceraPagina-nav{    gap: 0.85rem;  }
  .cabeceraPagina-nav a{    min-height: 3.5rem;    font-size: 0.95rem;  }

/* Triángulo exterior (borde) */
  .cabeceraPagina-nav a::before{    bottom: -4px;}

/* Triángulo interior (relleno) */

  /* Hero home */
  .hero{    padding: 1.5rem 0 1.5rem;  }

  /* Cabeceras interiores */
  .header-estructura{    align-items: flex-start;    gap: 1.5rem;  }
  .header-acciones{    flex: 0 0 auto;  }

  /* Catálogo */
  .contenedor-grid{       gap: 1rem;  }
  .card{    gap:.8rem;  }
  .card-media{    max-width: 6rem;  }
  .card-contenido{    min-width: 70%;    padding: 0.5rem 0.5rem 0.5rem 0;  }
  .card-contenido p{line-height: 1.3;font-size:.9rem;}
  .card-contenido h3{padding-bottom:.2rem;}
  .card-contenido .card-acciones .btn{    padding:.5rem .8rem;    font-size:.8rem;}
  .card-acciones{margin-top:-.5rem;    flex-wrap: wrap;gap:.4rem;  }

  /* CTA general */
  .cta-final{    padding: 1.5rem;    gap: 1.5rem;  }

  /* Exposición */
  .expo-galeria{    grid-template-columns: 1fr;    grid-template-rows: auto auto;    height: auto;  }
  .galeria-img-principal{    grid-column: auto;    grid-row: auto;    aspect-ratio: 16 / 10;  }
  .galeria-thumbs{    grid-column: auto;    grid-row: auto;    grid-template-columns: repeat(4, 1fr);    grid-template-rows: none;  }
  .galeria-thumb{    aspect-ratio: 1.2 / 1;  }
  .info-estructura{    grid-template-columns: 1fr;    gap: 1.25rem;  }

  /* Empresa */
  .grid-QS{    grid-template-columns: 1fr;    gap: 1.25rem;  }
  .QS-logo{    max-width: 28rem;  }
  .grid-QH{    grid-template-columns: 1fr 1fr;  }
  .grid-Crisol{    grid-template-columns: 1fr;    gap: 1.25rem;  }
  .crisol-logo{    max-width: 20rem;  }
  .alda-cifras{    grid-template-columns: 1fr;    gap: 1rem;  }

  /* Contacto */
  .contacto-grid{    grid-template-columns: 1fr;    gap: 1.25rem;  }
  .contacto-form__row{    grid-template-columns: 1fr 1fr;  }
  .contacto-form-card{    padding: 1.35rem;  }
  .contacto-card{    padding: 1.15rem 1.2rem;  }
  .contacto #contacto-mapa .contenedor-mapa,
  .contacto #contacto-mapa .contenedor-mapa iframe{    height: 20rem;    min-height: 20rem;  }

  /* Footer */
  .footer{    padding: 2rem 1.5rem 6rem;  }
  .footer-flex{    align-items: flex-start;    flex-direction: column;    gap: 1rem;  }

  /* Mapa home: ajuste fino desktop-tablet */
  .mapa-stage{    gap: 1.25rem;  }
  .mapa-rail--left{    width: min(13rem, 24vw);  }
  .mapa-rail--right{    width: min(17rem, 29vw);  }
  .mapa-ayuda,  .mapa-card{    padding: 0.9rem;  }
}


/*========================
= ≤ 768px
========================*/
@media (max-width: 768px){  
  
section{    margin: 1.5rem 0;  }
body.index{
  --fondo-overlay: rgba(0, 0, 0, 0.38);
}
  /* Header */
.cabeceraPagina{  backdrop-filter: blur(0.55rem);}
.cabeceraPagina-inner{  position: relative;  min-height: 3.8rem;  padding-block: 0.7rem;  display: flex;  align-items: center;  justify-content: space-between;  gap: 1rem;}
.logo-Alda img{  width: 5.5rem;}

/* Botón hamburguesa */
.menu-toggle{  display: flex;  margin-left: auto;  position: relative;  z-index: 120;}

/* Quitamos decoraciones del menú desktop */
.cabeceraPagina-nav a::before,.cabeceraPagina-nav a::after{  display: none;}

/* ===== NAV POR DEFECTO (sin JS) ===== */

ul.cabeceraPagina-nav{  display: flex;  gap: 0.85rem;}

/* ===== NAV CON JS (modo real móvil) ===== */

.js nav.cabeceraPagina-nav{  position: absolute;  top: calc(100% + 1px);  left: 0;  right: 0;  width: 100%;  display: none;  padding: 0.5rem 0 0.85rem;
  background: var(--color-fondo);  border: 1px solid var(--color-linea);  border-top: 0;  border-radius: 0 0 1rem 1rem;
  box-shadow: 0 1rem 2rem rgba(26, 23, 37, 0.10);  z-index: 110;}
.js nav.cabeceraPagina-nav.abierto{  display: block;}

/* Lista en columna */

.js ul.cabeceraPagina-nav{  display: flex;  flex-direction: column;  align-items: flex-start;  gap: 0.15rem;  width: 100%;  padding: 0;}
.js .cabeceraPagina-nav li{  width: 100%;}
.js .cabeceraPagina-nav a{  display: flex;  align-items: center;  width: 100%;  min-height: 2.8rem;  padding: 0.65rem 1rem;  font-size: 0.98rem;}

  /* Hero */
  .hero{    padding: 1.5rem 0;  }
  .hero-acciones{display:none;}

  /* Cabeceras interiores */
  .header{    padding-bottom: 0.75rem;  }
  .header-estructura{    flex-direction: column;    gap: 1.25rem;  }

  /* Botones */
  .btn{    justify-content: center;    max-height: none;    min-height: 2.75rem;    padding: 0.7rem 1rem;  }

/*imagen portada*/
.imgP{display:block;border-radius:1rem 1rem 0 0;overflow:hidden;}
.valor-home .card-info{border-radius:0 0 1rem 1rem;}

  /* Cards catálogo */
  .card{    /*flex-direction: column;*/    gap: 0;  }
  .card-media{     max-width: 100%;  }
  .card-media img{    width: 100%;    height: 100%;    object-fit: cover;  }
  .card-contenido{    padding: .5rem .5rem .5rem .8rem;    min-width:60%;  }
  .card-contenido .card-acciones{position: absolute;        bottom: 0;width:100%;        left: 0;padding:.5rem;background:white;}
  .card-acciones{    margin-top: 0.75rem;    gap: 0.65rem;  }
  .card-acciones .btn{    flex: 1;    justify-content: center;  }

  /* CTA final */
  .cta-final{    flex-direction: column;    align-items: stretch;    padding: 1.25rem;  }
  .cta-final .header-acciones{    width: 100%; flex-direction:row;justify-content: flex-start; }

  /* Exposición */
  .expo-contenido{    grid-template-columns: 1fr;    gap: 1.25rem;  }
  .expo-info{    position: static;  }
  .expo-galeria{    grid-template-columns: 1fr;    gap: 0.75rem;  }
  .expo-secundarias{    grid-template-columns: repeat(3, 1fr);    grid-template-rows: none;    gap: 0.65rem;  }
  .expo-secundarias .galeria-thumb img{    aspect-ratio: 4 / 3;  }
  .galeria-img-principal{    aspect-ratio: 4 / 3;  }
  .galeria-thumbs{    grid-template-columns: repeat(4, 1fr);    gap: 0.65rem;  }
  .galeria-thumb{    aspect-ratio: 4 / 3;  }
  .contenedor-mapa{    min-height: 20rem;  }
  .contenedor-mapa iframe{    height: 20rem;  }

  /* Empresa */
  .grid-QH{    grid-template-columns: 1fr;  }
  .crisol-acciones{    flex-direction: column;  }
  .crisol-acciones .btn{    width: 100%;    justify-content: center;  }

  /* Contacto */
  .contacto-form__row{    grid-template-columns: 1fr;  }
  .contacto-check{    align-items: flex-start;  }
  .contacto-form__actions .btn,  .contacto-form__actions button{    width: 100%;    justify-content: center;  }
  .contacto-directo-lista li{    gap: 0.2rem;  }
  .contacto #contacto-mapa .contenedor-mapa,
  .contacto #contacto-mapa .contenedor-mapa iframe{    height: 18rem;    min-height: 18rem;  }

  /* Footer */
  .footer{    padding: 2rem 1rem 5.5rem;  }
  .footer-links{    flex-direction: column;    gap: 0.75rem 1rem;  }

  /* Home mapa */
  .mapa-sectores{    padding: 0;  }
  .zonas-lista{    gap: 0.45rem;  }
  .zonas-lista a{    min-height: 2.2rem;    margin-left: 0;    padding: 0.55rem 0.8rem;    font-size: 0.9rem;  }
  .mapa-ayuda::after{    display: none;  }

  /* Catálogo · fichas móviles en vertical */
  .main-grid .contenedor-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
  }

  .main-grid .card{
    flex-direction: column;
    gap: 0;
    border-radius: 1rem;
    overflow: hidden;
  }

  .main-grid .card-media{
    max-width: none;
    width: 100%;
    aspect-ratio: 16 / 9;
  }

  .main-grid .card-media img{
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .main-grid .card-contenido{
    min-width: 0;
    padding: 0.95rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .main-grid .card-contenido h3{
    padding-bottom: 0;
    margin: 0;
  }

  .main-grid .card-contenido p{
    margin: 0;
    line-height: 1.45;
  }

  .main-grid .card-contenido .card-acciones{
    position: static;
    width: 100%;
    left: auto;
    bottom: auto;
    padding: 0;
    margin-top: 0.05rem;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
  }

  .main-grid .card-acciones .btn{
    width: auto;
    justify-content: flex-start;
    min-height: auto;
    max-width: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-size: 1rem;
    line-height: 1.35;
   
  }

  .main-grid .card-acciones .btn.btn-primario{
    color: var(--alda);
    text-decoration-color: var(--alda);
  }

  .main-grid .card-acciones .btn.btn-secundario{
    color: var(--texto);
    text-decoration-color: var(--alda);
    font-weight: 600;
    width: auto;
    min-height: auto;
    padding-inline: 0;
    align-self: flex-start;
  }

  .main-grid .card-acciones .btn.btn-primario:hover,
  .main-grid .card-acciones .btn.btn-primario:focus-visible{
    color: var(--alda);
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .main-grid .card-acciones .btn.btn-secundario:hover,
  .main-grid .card-acciones .btn.btn-secundario:focus-visible{
    color: var(--texto);
    border: 0;
    border-radius: 0;
    background: transparent;
  }
}
/*========================
= ≤ 650px · Solo para los card del catálogo
========================*/
@media (max-width: 650px){
    .contenedor-grid{grid-template-columns: 1fr;grid-auto-rows:7.5rem;}
    .card-contenido{flex-direction:row;align-items:center;gap:1rem;}
    .card-contenido .card-acciones{justify-content:flex-end;padding:0;position:relative;width:fit-content;height:fit-content;}
    .contenedor-grid .card-media{max-width:fit-content;}
    .card-contenido .card-acciones .btn{text-wrap:nowrap;min-height:fit-content;max-width: fit-content;}

    .main-grid .contenedor-grid{grid-auto-rows:auto;}
    .main-grid .contenedor-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
    .main-grid .card-contenido{flex-direction:column;align-items:stretch;gap:0.75rem;}
    .main-grid .card-contenido .card-acciones{justify-content:flex-start;position:static;width:100%;height:auto;}
    .main-grid .card-contenido .card-acciones .btn{max-width:none;min-height:auto;width:auto;}
    .main-grid .card-contenido .card-acciones .btn.btn-secundario{max-width:none;min-height:auto;}

}


/*========================
= ≤ 560px
========================*/
@media (max-width: 560px){

  :root{--contenedor-pad: 0.8rem;  }
  .mapa-sectores{margin:1rem 0;}
  .contenedor{    padding-inline: 0.8rem;  }
  .mapa-sectores-intro h2{font-size: clamp(1.2rem, 1.3vw, 1.3rem);        line-height: clamp(1em, 1.1em, 1.1em);}
.mapa-sectores__nav{margin-left:0;}
.h_a_p{flex-direction:row;flex-wrap:wrap;}
  /* Header */
  .cabeceraPagina-inner{    gap: 0.55rem;    padding-block: 0.6rem;  }
  ul.cabeceraPagina-nav{    gap: 0.15rem 0.75rem;  }
  .cabeceraPagina-nav a{    min-height: 2.35rem;    font-size: 0.92rem;  }

  /* Hero */
  .hero{    padding: .5rem 0 1.5rem;  }
  .hero-contenido .hero-antetitulo {    font-size: clamp(.63rem, .9vw, .9rem);        margin-bottom: 5px;   }
  .hero-titulo{font-size: clamp(2rem, 2vw, 2rem);text-wrap:balance;margin-bottom:5px;}
  .hero-titulo-2 {    font-size: clamp(1.2rem, 1.5vw, 1.5rem);line-height: clamp(1.1em, 1.2em, 1.3em);}

  /* Cabeceras interiores */
  .antetitulo{    font-size: 0.76rem;  }
  .header h1{    margin-bottom: 0.6rem; font-size: clamp(1.9rem, 3.4vw, 3rem); }
  .main-intro-titulo{    margin-bottom: 0.6rem;  }

  /* Botones */
  .btn{    min-height: 2.6rem;    padding: 0.7rem 0.9rem;    border-radius: 0.9rem;    font-size: 0.95rem;    text-wrap: wrap;  }

  /* Cards / paneles */
  .card-info{    padding: 1.15rem;    border-radius: 0.9rem;  }
  .card-contenido{    padding: 0.9rem;  }
  .cta-final{    padding: 1rem;    border-radius: 0.9rem;  }
  .QH{display:none;}
  /* Exposición */
  .expo-info{    padding: 1.15rem;  }
  .expo-info-acciones .btn{    width: 100%;    justify-content: center;  }
  .expo-secundarias{    grid-template-columns: 1fr;    gap: 0.25rem;  }
  .expo-secundarias .galeria-thumb img{    aspect-ratio: 4 / 3;  }
  .galeria-thumbs{    grid-template-columns: repeat(4, 1fr);gap: 0.25rem;  }
  .galeria-thumb {        border-radius:.4rem;    }
  .contenedor-mapa{    min-height: 17rem;    border-radius: 0.9rem;  }
  .contenedor-mapa iframe{    height: 17rem;  }

  /* Empresa */
  .QS-logo,  .crisol-logo{    max-width: 100%;  }

  /* Contacto */
  .contacto-field input,  .contacto-field textarea{    padding: 0.8rem 0.9rem;    border-radius: 0.8rem;  }
  .contacto-field textarea{    min-height: 8.5rem;  }
  .contacto-ayuda,.parrafoMovil{display:none;}
  /* Footer */
  .footer-flex p,  .footer-links a{    font-size: 0.9rem;  }
  a.footer-instagram{    top: -24px;    padding: 0.85rem;  }

  /* Home mapa */
  .zonas-lista{    gap: 0.4rem;  }
  .zonas-lista a{    min-height: 2.1rem;    padding: 0.5rem 0.7rem;    border-radius: 0.75rem;    font-size: 0.86rem;  }
  .mapa-ayuda,  .mapa-card{    padding: 0.85rem;    border-radius: 0.9rem;  }
  .mapa-card__titulo{    font-size: 1.15rem;  }
  .mapa-card__texto{    font-size: 0.84rem;  }
}

/*========================
= ≤ 450px · Solo para los card del catálogo
========================*/
@media (max-width: 450px){
    .contenedor-grid{grid-auto-rows:6rem;}
    .card-contenido p{display:none;}
    .card-contenido{flex-direction: column;align-items:flex-start;gap:0;    padding: .5rem .5rem .5rem 1rem;}

    .main-grid .contenedor-grid{grid-auto-rows:auto;}
    .main-grid .contenedor-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
    .main-grid .card-contenido{gap:0.7rem;padding:0.9rem;}
    .main-grid .card-contenido p{display:block;}
    .main-grid .card-contenido .card-acciones .btn{width:auto;}
    .main-grid .card-contenido .card-acciones .btn.btn-secundario{width:auto;}

  }

/* responsive MAPA */

@media (max-width: 768px){
    .hero{margin:0;}

  /* Zonas → chips */
  .zonas-lista{    display: flex;    flex-wrap: wrap;    gap: 0.5rem;    margin-bottom: 1rem;      flex-direction: row;  }
  .zonas-lista a{    padding: 0.5rem 0.85rem;    border: 1px solid var(--color-linea);    border-radius: 999px;    font-size: 0.9rem;    background: white;  }

    /* ===== MAPA HOME · versión móvil real ===== */
  .mapa-stage{    display: block;    min-height: auto;  }
  .mapa-sectores-intro{width:100%;}
  .mapa-sectores__media,  .mapa-connector,  #mapa-svg{    display: none;  }
  .mapa-rail{    position: static;    width: 100%;    pointer-events: auto;  }
  .mapa-rail--left{    width: 100%;  }
  .mapa_sectores_header,  .mapa-side{    position: static;    pointer-events: auto;  }
  .mapa-sectores__nav{    margin-top: 0.85rem;  }
  .zonas-lista{    display: flex;    flex-wrap: wrap;    gap: 0.5rem;    margin-bottom: 1rem;  }
  .zonas-lista a{    display: inline-flex;    align-items: center;    justify-content: center;    min-height: 2.35rem;    margin-left: 0;    padding: 0.55rem 0.85rem;
    border: 1px solid var(--color-linea);    border-radius: 999px;    background: white;    font-size: 0.9rem;    line-height: 1;    box-shadow: none;    transform: none;  }
  .zonas-lista a:hover,  .zonas-lista a:focus-visible{    transform: none;  }
  .mapa-side{    margin-top: 0.25rem;  }
  .mapa-ayuda{    margin-bottom: 0.75rem;background:var(--alda-suave);color:var(--texto) !important;  }
  .mapa-ayuda{  font-size: 0.9rem;  color: var(--texto-suave);}
  .mapa-ayuda::after{    display: none;  }
  .mapa-ayuda:before{content:"↑";font-weight: 800;color:var(--alda);margin-right:10px;}
  .mapa-card{    position: static;    inset: auto;    width: 100%;    opacity: 1;    transform: none;    pointer-events: auto;    display: none;    margin-top: 0;  }
  .mapa-card.is-open{    display: block;  }
  .mapa-card__status,.mapa-card__volver{display:none;}
  .mapa-card.is-open {margin-top:-4rem;}
}

@media (max-width: 400px){  
  .zonas-lista{    gap: 0.35rem;  }
  .zonas-lista a{    min-height: 2rem;    padding: 0.45rem 0.65rem;    font-size: 0.82rem;  }
  .mapa-sectores__nav{    margin-top: 0.7rem;  }
}

@media (max-width: 1024px){
  .portada-a__grid{    grid-template-columns: 1fr;  }
  .portada-a__media{    min-height: 24rem;  }
  .portada-b__grid{    grid-template-columns: repeat(2, minmax(0, 1fr));  }
  .portada-c__hero,  .portada-c__content{    min-height: 34rem;  }
}

@media (max-width: 768px){
  .demo-badge{    bottom: 0.8rem;  }
  .portada-demo{    padding-top: 1rem;  }
  .portada-b__top{    padding: 1.5rem 1.25rem 0.5rem;  }
  .portada-b__grid{    padding: 1rem 1.25rem 1.25rem;  }
  .portada-link{    min-height: 13rem;  }
  .portada-c__hero,  .portada-c__content{    min-height: 30rem;  }
  .portada-c__content{    align-items: flex-end;    padding: 1.25rem;  }
}

@media (max-width: 560px){
  .demo-badge{    bottom: 0.7rem;  }
  .portada-contacto{    padding: 1rem 1rem 0;    flex-direction: column;    align-items: flex-start;    gap: 0.5rem;  }
  .portada-a__grid{    gap: 1rem;    padding: 1rem;  }
  .portada-copy{    padding: 0.5rem;  }
  .portada-copy h1,  .portada-c__card h1{    font-size: clamp(2rem, 9vw, 2.8rem);  }
  .portada-copy p,  .portada-c__card p{    font-size: 0.98rem;  }
  .portada-actions{    flex-direction: column;  }
  .portada-actions .btn{    width: 100%;  }
  .portada-b__grid{    grid-template-columns: 1fr;  }
  .portada-c__hero,  .portada-c__content{    min-height: 26rem;  }
  .portada-c__card{    padding: 1.1rem;  }
}

@media (max-width: 1024px){
  .demo-badge{    gap: 0.65rem;  }
  .portada-b__split{    grid-template-columns: 1fr;  }
  .portada-b__sheet{    grid-template-columns: 1fr;    gap: 1.5rem;  }
  .portada-b__linea{    display: none;  }
  .portada-b__image{    min-height: 24rem;  }
  .portada-c__frame{    grid-template-columns: 1fr;    min-height: auto;  }
  .portada-c__sticky-copy{    position: static;    max-width: 100%;  }
  .portada-c__mast{    min-height: auto;  }
  .portada-c__visual{    min-height: 28rem;  }
  .portada-c__section,
  .portada-c__section--reverse{    grid-template-columns: 1fr;  }
}

@media (max-width: 768px){
  .demo-switcher{    align-self: flex-start;  }
  .portada-b{    padding: 1.5rem 0 2.5rem;  }
  .portada-b__intro{    padding-bottom: 2rem;  }
  .portada-b__split h1{    font-size: clamp(2.4rem, 8vw, 4rem);  }
  .portada-b__links a{    padding: 0.85rem 0;  }
  .portada-c{    gap: 2rem;  }
  .portada-c__visual,
  .portada-c__imageblock{    min-height: 22rem;  }
  .portada-c__closing{    padding: 1.25rem;  }
}

@media (max-width: 560px){
  .demo-switcher__button{    width: 1.9rem;    height: 1.9rem;  }
  .portada-b__meta{    gap: 0.4rem;  }
  .portada-b__image{    min-height: 18rem;  }
  .portada-b__links a strong{    font-size: 1rem;  }
  .portada-c__sticky-copy h1{    font-size: clamp(2.15rem, 10vw, 3rem);  }
  .portada-c__visual,
  .portada-c__imageblock{    min-height: 18rem;  }
  .portada-c__contacto{    flex-direction: column;    gap: 0.5rem;  }
}

@media (max-width: 768px){
  .portada-a-hero{    min-height: 100svh;    padding: 1.5rem 1rem 6.4rem;  }
  .portada-a-logo{    width: clamp(10.2rem, 45vw, 14.2rem);    margin-bottom: 0.9rem;  }
  .portada-a-contenido h1{    max-width: 15ch;    font-size: clamp(1.5rem, 6.4vw, 2.05rem);    margin-bottom: 0.85rem;  }
  .portada-a-contacto{    bottom: 0.75rem;    border-radius: 0.75rem;    width: calc(100% - 1rem);    gap: 0.3rem 0.8rem;    padding: 0.55rem 0.7rem;  }
  .portada-a-contacto a{    font-size: 0.82rem;  }
}

@media (max-width: 560px){
  .portada-a-cta{    min-height: 2.7rem;    padding-inline: 1.25rem;  }
  .portada-a-contacto{    flex-direction: column;    gap: 0.25rem;    padding: 0.58rem 0.75rem;  }
}

@media (min-width: 769px) and (max-width: 1024px){
  .portada-a-logo{    width: clamp(11rem, 30vw, 16.2rem);  }
  .portada-a-contenido h1{    font-size: clamp(1.8rem, 4.5vw, 2.45rem);  }
}

@media (max-width: 768px){
  body.index .hero{
    min-height: 100svh;
    padding: 1.75rem 1rem 6.3rem;
  }

  body.index .hero-img{
    width: calc(100% + 64px);
    margin-left: -32px;
  }

  body.index .hero-logo{
    width: clamp(9.8rem, 56vw, 13.5rem);
    margin-bottom: 1rem;
  }

  body.index .hero h1{
    font-size: clamp(1.45rem, 14vw, 2.05rem);
    margin-bottom: 1rem;
  }

  body.index .hero-contacto{
    width: 100%;
    border-radius: 0;
    gap: 0.5rem 0.75rem;
  }

  body.index .hero-contacto a{
    font-size: .9rem;
  }

  body.index .hero-badge{
    margin-top: 0.3rem;
    font-size: 0.7rem;
  }

  body.index .contenedor{
    width: min(calc(100% - 2rem), 78rem);
    padding-inline: 1rem;
  }

  body.index .cabeceraPagina-inner{
    min-height: 3.8rem;
    padding-block: 0.7rem;
    gap: 1rem;
  }

  body.index .logo-Alda img{
    width: 5.5rem;
  }
}

@media (max-width: 520px){
  body.index .hero-contacto{
    flex-direction: row;
        display: flex;
        padding: 0.75rem 1rem;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
  }
  body.index .hero-contacto{
    bottom:2rem;
  }

  body.index .hero-badge{
    margin-top: 0.28rem;
    font-size: 0.68rem;
  }
}

/*========================
= Espacios mobile only
========================*/
@media (max-width: 768px){
  body.espacios section{
    margin: 1rem 0;
  }

  body.espacios .hero.hero-home{
    margin: 0;
    padding: 0.85rem 0 0.9rem;
  }

  body.espacios .hero-contenido{
    max-width: 36rem;
  }

  body.espacios .hero-contenido .hero-antetitulo{
    margin-bottom: 0.45rem;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
  }

  body.espacios .hero-titulo{
    margin-bottom: 0.35rem;
    font-size: clamp(1.58rem, 7.2vw, 1.92rem);
    line-height: 1.08;
  }

  body.espacios .hero-titulo-2{
    display: block;
    font-size: clamp(1.14rem, 5.6vw, 1.42rem);
    line-height: 1.2;
  }

  body.espacios .hero-acciones{
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.7rem;
  }

  body.espacios .hero-acciones .btn{
    width: fit-content;
    justify-content: center;
  }

  body.espacios .asociadoCrisol{
    position: static;
    left: auto;
    bottom: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin: 0.7rem auto 0;
    padding: 0.34rem 0.6rem;
    border-radius: 999px;
    font-size: 0.68rem;
  }

  body.espacios .mapa-sectores{
    margin: 0;
    padding: 0.35rem 0 1.2rem;
  }

  body.espacios .mapa-sectores-intro h2{
    font-size: clamp(1.28rem, 5.8vw, 1.55rem);
    line-height: 1.14;
    margin-bottom: 0.2rem;
  }

  body.espacios .mapa-sectores__nav{
    margin-top: 0.65rem;
  }

  body.espacios .zonas-lista{
    gap: 0.58rem;
    margin-bottom: 0.6rem;
  }

  body.espacios .zonas-lista a{
    min-height: 2.2rem;
    padding: 0.56rem 0.86rem;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 600;
    line-height: 1.1;
    background: rgba(255, 255, 255, 0.92);
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
  }

  body.espacios .zonas-lista a:hover,
  body.espacios .zonas-lista a:focus-visible{
    transform: none;
  }

  body.espacios .zonas-lista a.is-active,
  body.espacios .zonas-lista a.is-fixed{
    border-color: var(--alda);
    background: var(--alda);
    color: #fff;
    box-shadow: 0 0.35rem 0.9rem rgba(199, 16, 43, 0.2);
  }

  body.espacios .mapa-sectores__media{
    display: block;
    margin: 0.6rem 0 0.65rem;
  }

  body.espacios #mapa-svg{
    display: block;
  }

  body.espacios .mapa-svg{
    width: min(100%, 31rem);
    border-radius: 0.9rem;
    overflow: hidden;
  }

  body.espacios .mapa-ayuda{
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.55rem;
    padding: 0.72rem 0.85rem;
    font-size: 0.86rem;
    line-height: 1.35;
    border-radius: 0.8rem;
  }

  body.espacios .mapa-ayuda:before{
    margin-right: 0;
    font-size: 0.92rem;
    line-height: 1;
  }

  body.espacios .mapa-card{
    margin-top: 0.35rem;
  }

  body.espacios .mapa-card.is-open{
    margin-top: 0.35rem;
  }

  body.espacios .valor-home{
    margin: 0.9rem auto 1.25rem;
  }

  body.espacios .valor-home .imgP img{
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }

  body.espacios .valor-home .card-info{
    padding: 1rem 1rem 1.1rem;
  }

  body.espacios .valor-home h2{
    font-size: clamp(1.32rem, 6.2vw, 1.6rem);
    line-height: 1.13;
    margin: 0 0 0.52rem;
  }

  body.espacios .valor-home .textoEspecial{
    margin: 0;
    max-width: 36ch;
    font-size: 0.93rem;
    line-height: 1.5;
  }

  body.espacios .faldon-cta{
    margin-top: 0.2rem;
  }

  body.espacios .faldon-cta .cta-final{
    margin-bottom: 1rem;
    padding: 1rem 1rem 1.1rem;
    gap: 0.9rem;
  }

  body.espacios .faldon-cta .cta-final h2{
    margin-bottom: 0.45rem;
    font-size: clamp(1.28rem, 5.9vw, 1.62rem);
    line-height: 1.14;
  }

  body.espacios .faldon-cta .cta-final p{
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.46;
  }

  body.espacios .faldon-cta .header-acciones{
    gap: 0.6rem;
  }

  body.espacios .faldon-cta .btn{
    min-height: 2.62rem;
  }
}

@media (max-width: 560px){
  body.espacios .hero.hero-home{
    padding: 0.2rem 0;
  }

  body.espacios .hero-contenido .hero-antetitulo{
    font-size: 0.68rem;
  }

  body.espacios .hero-titulo{
    font-size: clamp(1.42rem, 7.5vw, 1.7rem);
  }

  body.espacios .hero-titulo-2{
    font-size: clamp(1.06rem, 5.4vw, 1.26rem);
  }

  body.espacios .hero-acciones{
    gap: 0.5rem;
  }

  body.espacios .hero-acciones .btn{
    min-height: 2.5rem;
    font-size: 0.9rem;
  }

  body.espacios .asociadoCrisol{
    margin-top: 0.58rem;
    font-size: 0.64rem;
    padding: 0.32rem 0.55rem;
  }

  body.espacios .mapa-sectores{
    padding-bottom: 1rem;
  }

  body.espacios .mapa-sectores-intro h2{
    font-size: clamp(1.2rem, 6.5vw, 1.38rem);
  }

  body.espacios .zonas-lista{
    gap: 0.45rem;
  }

  body.espacios .zonas-lista a{
    min-height: 2.05rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.82rem;
  }

  body.espacios .mapa-ayuda{
    padding: 0.66rem 0.75rem;
    font-size: 0.82rem;
  }

  body.espacios .mapa-svg{
    border-radius: 0.75rem;
  }

  body.espacios .valor-home{
    margin-bottom: 1.05rem;
  }

  body.espacios .valor-home .card-info{
    padding: 0.9rem;
  }

  body.espacios .valor-home h2{
    font-size: clamp(1.22rem, 6.8vw, 1.25rem);
  }

  body.espacios .valor-home .textoEspecial{
    font-size: 0.89rem;
  }

  body.espacios .faldon-cta .cta-final{
    padding: 0.92rem;
    gap: 0.75rem;
  }

  body.espacios .faldon-cta .cta-final h2{
    font-size: clamp(1.18rem, 6vw, 1.25rem);
  }

  body.espacios .faldon-cta .header-acciones{
    flex-direction: column;
    align-items: stretch;
    gap: 0.52rem;
  }

  body.espacios .faldon-cta .header-acciones .btn{
    width: 100%;
    justify-content: center;
  }
}

/*========================
= Espacios nav hierarchy (mobile only)
========================*/
@media (max-width: 768px){
  body.espacios .mapa-sectores{
    padding-top: 0.55rem;
  }

  body.espacios .mapa-stage{
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
  }

  body.espacios .mapa-rail--left,
  body.espacios .mapa_sectores_header,
  body.espacios .mapa-rail--right,
  body.espacios .mapa-side{
    display: contents;
  }

  body.espacios .mapa-sectores-intro{
    order: 1;
    gap: 0.3rem;
  }

  body.espacios .mapa-ayuda{
    order: 2;
    margin: 0;
    padding: 0.78rem 0.95rem;
    border-radius: 0.82rem;
    border: 1px solid rgba(26, 23, 37, 0.14);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: none;
  }

  body.espacios .mapa-sectores__nav{
    order: 3;
    margin-top: 0;
    padding: 0.8rem;
    border: 1px solid var(--color-linea);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.96);
  }

  body.espacios .zonas-lista{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 0.56rem;
    margin-bottom: 0;
  }

  body.espacios .zonas-lista li{
    min-width: 0;
  }

  body.espacios .zonas-lista a{
    width: 100%;
    min-height: 2.72rem;
    justify-content: flex-start;
    margin-left: 0;
    padding: 0.68rem 0.86rem;
    border-radius: 0.8rem;
    border: 1px solid rgba(26, 23, 37, 0.16);
    background: #fff;
    color: var(--texto);
    font-size: 0.92rem;
    font-weight: 650;
    line-height: 1.2;
    box-shadow: none;
    transform: none;
  }

  body.espacios .zonas-lista a:hover,
  body.espacios .zonas-lista a:focus-visible{
    border-color: var(--aldaBtnMap);
    background: #fff;
    color: var(--texto);
    box-shadow: none;
    transform: none;
  }

  body.espacios .zonas-lista a.is-active,
  body.espacios .zonas-lista a.is-fixed{
    border-color: var(--alda);
    background: var(--alda);
    color: #fff;
    box-shadow: 0 0.35rem 0.85rem rgba(199, 16, 43, 0.2);
  }

  body.espacios .mapa-sectores__media{
    order: 4;
    margin: 0.4rem 0 0;
  }

  body.espacios .mapa-svg{
    width: 100%;
    border-radius: 0.92rem;
    overflow: hidden;
  }

  body.espacios .mapa-card{
    order: 5;
    margin-top: 0.5rem;
  }
}

@media (max-width: 768px){
  body.espacios .mapa-sectores-intro h2{
    font-size: clamp(1.36rem, 6vw, 1.62rem);
    margin-bottom: 0.12rem;
    line-height: 1.12;
  }

  body.espacios .mapa-ayuda{
    padding: 0.72rem 0.84rem;
    font-size: 0.87rem;
    line-height: 1.34;
  }

  body.espacios .mapa-sectores__nav{
    padding: 0.72rem;
  }

  body.espacios .zonas-lista{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.56rem;
  }

  body.espacios .zonas-lista a{
    min-height: 2.62rem;
    padding: 0.62rem 0.76rem;
    font-size: 0.88rem;
  }

  body.espacios .mapa-sectores__media{
    margin-top: 0.32rem;
  }
}

@media (max-width: 560px){
  body.espacios .mapa-sectores{
    padding-top: 0.25rem;
  }

  body.espacios .mapa-sectores__nav{
    padding: 0.54rem;
    border-radius: 0.82rem;
  }

  body.espacios .zonas-lista{
    grid-template-columns: 1fr;
    gap: 0.42rem;
  }

  body.espacios .zonas-lista a{
    min-height: 2.42rem;
    padding: 0.56rem 0.7rem;
    border-radius: 0.72rem;
    font-size: 0.84rem;
  }

  body.espacios .mapa-ayuda{
    padding: 0.62rem 0.72rem;
    border-radius: 0.76rem;
  }
}

/*========================
= Espacios mobile match
========================*/
@media (max-width: 768px){
  body.espacios .hero-acciones .btn{
    border-radius: 1.18rem;
  }

  body.espacios .hero-acciones .btn-secundario{
    background: #f2f2f4;
    border-color: rgba(26, 23, 37, 0.12);
    color: var(--texto);
  }

  body.espacios .mapa-stage{
    position: relative;
    gap: 0.55rem;
  }

  body.espacios .mapa-ayuda{
    display: none;
  }

  body.espacios .mapa-sectores__nav{
    margin-top: 0.55rem;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
  }

  body.espacios .zonas-lista{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.62rem 0.52rem;
  }

  body.espacios .zonas-lista a{
    width: auto;
    min-height: 2.56rem;
    justify-content: center;
    padding: 0.5rem 1.12rem;
    border-radius: 1rem;
    border: 1px solid rgba(26, 23, 37, 0.14);
    background: #f7f7f8;
    color: rgba(26, 23, 37, 0.78);
    font-size: 0.76rem;
    font-weight: 600;
  }

  body.espacios .mapa-sectores__media{
    width: 104%;
    order: 5;
    margin-top: 0.55rem;
    margin-inline: -0.5rem;
    position: relative;
    z-index: 1;
  }

  body.espacios .mapa-svg{
    width: 100%;
    margin-inline: auto;
    border-radius: 0;
    overflow: visible;
  }

  body.espacios .mapa-card{
    order: 4;
    position: absolute;
    left: 0;
    right: 0;
    top: var(--espacios-card-top, 0px);
    width: 100%;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    display: none;
    margin: 0;
    z-index: 8;
  }

  body.espacios .mapa-card.is-open{
    display: block;
    margin: 0;
  }

  body.espacios .mapa-card__status{
    display: none;
  }

  body.espacios .mapa-card__volver{
    display: none;
  }

  body.espacios .mapa-sectores-intro h2{
    font-size: clamp(1.22rem, 5.2vw, 1.42rem);
    line-height: 1.14;
  }

  body.espacios .mapa-sectores{
    overflow-x: clip;
  }

  body.espacios .valor-home .imgP{
    display: none;
  }

  body.espacios .valor-home .card-info{
    border-radius: 1rem;
  }

  body.espacios .faldon-cta{
    margin-top: 1.2rem;
    margin-inline: auto;
  }
}

@media (max-width: 560px){
  body.espacios .zonas-lista{
    gap: 0.54rem 0.44rem;
  }

  body.espacios .zonas-lista a{
    min-height: 2.46rem;
    padding: 0.48rem 1rem;
    border-radius: 0.95rem;
    font-size: 0.72rem;
  }

  body.espacios .mapa-svg{
    width: 100%;
  }

  body.espacios .mapa-sectores-intro h2{
    font-size: clamp(1.14rem, 5.8vw, 1.28rem);
  }
}

@media (max-width: 768px){
  body.exposicion-page .header{
    margin-bottom: 0.8rem;
  }

  body.exposicion-page .header-acciones{
    gap: 0.65rem;
  }

  body.exposicion-page #info-visita{
    scroll-margin-top: 5.1rem;
  }

  body.exposicion-page .exposicion > .contenedor:first-child{
    margin-bottom: 0.75rem;
  }

  body.exposicion-page .expo-contenido{
    gap: 1rem;
  }

  body.exposicion-page .expo-galeria{
    grid-template-columns: 1fr;
    gap: 0.62rem;
    height: auto;
  }

  body.exposicion-page .expo-principal{
    height: auto;
  }

  body.exposicion-page .expo-principal img{
    width: 100%;
    height: clamp(220px, 42vw, 320px);
    object-fit: cover;
    display: block;
    border-radius: 0.75rem;
  }

  body.exposicion-page .expo-secundarias{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    height: auto;
    grid-template-columns: none;
    grid-template-rows: none;
  }

  body.exposicion-page .expo-secundarias .galeria-thumb{
    width: 50px;
    height: 50px;
    border-radius: 10px;
    border: 1px solid rgba(26, 23, 37, 0.15);
    overflow: hidden;
    opacity: 0.9;
    filter: none;
  }

  body.exposicion-page .expo-secundarias .galeria-thumb img{
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }

  body.exposicion-page .expo-secundarias .galeria-thumb.activa{
    border-color: rgba(199, 16, 43, 0.58);
    box-shadow: 0 0 0 1px rgba(199, 16, 43, 0.22);
    opacity: 1;
  }

  body.exposicion-page .expo-info{
    order: 2;
    margin-top: 0.72rem;
    padding: 1.05rem;
  }

  body.exposicion-page .expo-info h3{
    margin-bottom: 0.72rem;
    font-size: 1.08rem;
  }

  body.exposicion-page .expo-info p{
    margin-bottom: 0.62rem;
    font-size: 0.88rem;
    line-height: 1.4;
  }

  body.exposicion-page .expo-info-acciones{
    margin-top: 0.7rem;
  }
}

@media (max-width: 560px){
  body.exposicion-page .expo-principal img{
    height: clamp(220px, 58vw, 300px);
  }

  body.exposicion-page .expo-secundarias{
    gap: 9px;
  }

  body.exposicion-page .expo-info{
    margin-top: 0.6rem;
    padding: 0.95rem;
  }
}
