:root{
  --fondo:#FBF6EA;
  --superficie:#EFE7D3;
  --tinta:#13233F;
  --dorado:#B7791F;
  --apagado:#7E8399;
  --linea:rgba(19,35,63,.14);
  --tinta-suave:rgba(19,35,63,.72);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--fondo);
  color:var(--tinta);
  font-family:Karla,system-ui,sans-serif;
  font-weight:400;
  font-size:1.05rem;
  line-height:1.65;
  padding-bottom:120px;
}

img{max-width:100%;height:auto;display:block;}
a{color:var(--dorado);}
a:hover{color:var(--tinta);}
h1,h2,h3,h4{
  font-family:Rubik,system-ui,sans-serif;
  font-weight:600;
  line-height:1.22;
  color:var(--tinta);
  margin:0 0 .6em;
}
h1{font-size:clamp(1.7rem,3.4vw,2.55rem);font-weight:700;}
h2{font-size:clamp(1.28rem,2.2vw,1.7rem);font-weight:600;}
h3{font-size:1.12rem;font-weight:500;}
p{margin:0 0 1em;}
ul,ol{margin:0 0 1em;padding-left:1.2em;}
li{margin-bottom:.35em;}

:focus-visible{
  outline:2px solid #B7791F;
  outline-offset:2px;
}

.saltar{
  position:absolute;
  left:-9999px;
  top:0;
  z-index:80;
  background:var(--dorado);
  color:#1F2937;
  padding:.6rem 1rem;
  font-weight:700;
}
.saltar:focus{
  left:12px;
  top:12px;
}

/* Riel lateral */
.armazon{
  display:grid;
  grid-template-columns:0.7fr 1.3fr;
  gap:0;
  min-height:100vh;
}
.riel{
  background:var(--tinta);
  color:#FBF6EA;
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  padding:28px 26px 24px;
  overflow:auto;
}
.riel a{color:#FBF6EA;}
.riel a:hover{color:var(--dorado);}
.riel__marca{
  font-family:Rubik,system-ui,sans-serif;
  font-weight:700;
  font-size:1.22rem;
  letter-spacing:.01em;
  color:#FBF6EA;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:28px;
}
.riel__marca img{width:28px;height:28px;flex-shrink:0;}
.riel__boton{
  display:none;
  background:transparent;
  color:#FBF6EA;
  border:1px solid rgba(251,246,234,.55);
  border-radius:2px;
  padding:.45rem .8rem;
  font-family:Karla,sans-serif;
  font-weight:700;
  cursor:pointer;
}
.riel__menu{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0 0 28px;
}
.riel__enlace{
  display:block;
  text-decoration:none;
  color:#FBF6EA;
  padding:.35rem 0 .35rem 14px;
  border-left:3px solid transparent;
  font-weight:500;
}
.riel__enlace:hover{
  border-left-color:rgba(183,121,31,.55);
  color:var(--dorado);
}
.riel__enlace[aria-current="page"]{
  border-left-color:var(--dorado);
  color:#FBF6EA;
  font-weight:700;
}
.riel__contacto{
  margin-top:auto;
  padding-top:18px;
  border-top:1px solid rgba(251,246,234,.18);
  font-size:.95rem;
}
.riel__contacto p{margin:0 0 .4em;color:rgba(251,246,234,.88);}
.riel__contacto a{text-decoration:none;font-weight:500;}
.riel__horario{
  margin-top:14px;
  font-size:.88rem;
  color:rgba(251,246,234,.78);
  line-height:1.45;
}

.cuerpo{
  max-width:980px;
  padding:48px 52px 28px;
  width:100%;
  justify-self:center;
}

.portada-titular{
  text-align:center;
  padding:48px 8px 36px;
  border-top:3px solid var(--dorado);
  margin-bottom:12px;
}
.portada-titular h1{margin-bottom:.5em;}
.bajada{
  font-size:1.12rem;
  color:var(--tinta);
  max-width:40rem;
  margin-left:auto;
  margin-right:auto;
}
.acciones{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
  margin-top:22px;
}
.encabezado{
  padding:8px 0 28px;
  border-top:3px solid var(--dorado);
  margin-bottom:8px;
}
.encabezado .bajada{
  margin-left:0;
  margin-right:0;
  max-width:42rem;
}

.boton{
  display:inline-block;
  font-family:Karla,sans-serif;
  font-weight:700;
  font-size:.98rem;
  text-decoration:none;
  padding:.7rem 1.15rem;
  border-radius:2px;
  cursor:pointer;
  border:1px solid transparent;
  line-height:1.2;
}
.boton--solido{
  background:var(--dorado);
  color:#1F2937;
}
.boton--solido:hover{
  background:#9C6516;
  color:#FFFFFF;
}
.boton--contorno{
  background:transparent;
  color:var(--tinta);
  border:1px solid var(--tinta);
}
.boton--contorno:hover{
  background:var(--tinta);
  color:#FBF6EA;
}
.riel .boton--contorno{
  color:#FBF6EA;
  border-color:rgba(251,246,234,.55);
}
.riel .boton--contorno:hover{
  background:#FBF6EA;
  color:var(--tinta);
}

.bloque{margin:0 0 56px;}
.bloque__rotulo{
  font-family:Rubik,sans-serif;
  font-weight:500;
  font-size:.92rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--tinta);
  margin:0 0 16px;
}
.bloque__rotulo::before{
  content:"";
  display:block;
  width:48px;
  height:3px;
  background:var(--dorado);
  margin-bottom:14px;
}

.duo{
  display:grid;
  grid-template-columns:0.7fr 1.3fr;
  gap:38px;
  align-items:start;
}
.duo--espejo{grid-template-columns:1.3fr 0.7fr;}

.tira-datos{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.dato{
  background:var(--superficie);
  border:1px solid var(--linea);
  border-radius:4px;
  padding:18px 16px;
}
.dato strong{
  display:block;
  font-family:Rubik,sans-serif;
  font-size:1.35rem;
  font-weight:600;
  margin-bottom:.35em;
}
.dato span{color:var(--tinta);font-size:.95rem;}

.grilla-servicios{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}
.ficha-servicio{
  background:var(--superficie);
  border:1px solid var(--linea);
  border-radius:4px;
  padding:22px 22px 18px;
}
.ficha-servicio h3{margin-bottom:.45em;}
.ficha-servicio .incluye{
  margin:12px 0 8px;
  padding-left:1.1em;
}
.ficha-servicio .formato{
  font-size:.95rem;
  color:var(--tinta-suave);
  margin:0;
}
.ficha-extensa{grid-column:1 / -1;}

.lista-cobertura{display:grid;gap:18px;}
.item-cobertura{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:20px 22px;
  background:var(--fondo);
}
.item-cobertura h3{margin-bottom:.4em;}
.item-cobertura .indicadores{
  font-size:.95rem;
  color:var(--tinta-suave);
  margin:0;
}

.grilla-notas{display:grid;gap:22px;}
.nota-publicacion{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:22px;
  background:var(--superficie);
}
.nota-publicacion time,
.nota-publicacion .volanta{
  display:inline-block;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  margin-right:10px;
}
.nota-publicacion time{color:var(--apagado);}
.nota-publicacion .volanta{color:var(--dorado);}

.paso-proceso{
  border-left:3px solid var(--dorado);
  padding:4px 0 8px 16px;
  margin-bottom:18px;
}
.paso-proceso strong{
  font-family:Rubik,sans-serif;
  display:block;
  margin-bottom:.25em;
}

.acordeon-pregunta{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:14px 18px;
  margin-bottom:10px;
  background:var(--superficie);
}
.acordeon-pregunta summary{
  cursor:pointer;
  font-family:Rubik,sans-serif;
  font-weight:500;
  font-size:1.05rem;
  list-style:none;
}
.acordeon-pregunta summary::-webkit-details-marker{display:none;}
.acordeon-pregunta summary::before{
  content:"+ ";
  color:var(--dorado);
  font-weight:700;
}
.acordeon-pregunta[open] summary::before{content:"– ";}
.acordeon-pregunta p{margin-top:10px;}

.tabla-planes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.plan{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:22px;
  background:var(--superficie);
  display:flex;
  flex-direction:column;
}
.plan ul{flex:1;}
.plan .ideal{
  font-size:.95rem;
  color:var(--tinta);
  margin:8px 0 16px;
}
.tabla-simple{
  width:100%;
  border-collapse:collapse;
  font-size:.98rem;
}
.tabla-simple th,
.tabla-simple td{
  border:1px solid var(--linea);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}
.tabla-simple th{
  background:var(--superficie);
  font-family:Rubik,sans-serif;
  font-weight:500;
}

.recuadro-aviso{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:20px 22px;
  background:var(--superficie);
}

.foto{
  width:100%;
  height:auto;
  border-radius:4px;
  border:1px solid var(--linea);
}
.foto--banda{
  width:100%;
  max-height:360px;
  object-fit:cover;
  margin:0 0 56px;
  border-radius:4px;
  border:1px solid var(--linea);
}

.mapa iframe{
  width:100%;
  min-height:340px;
  border:1px solid var(--linea);
  border-radius:4px;
}

.formulario label{
  display:block;
  font-weight:700;
  margin:0 0 6px;
}
.formulario .campo-grupo{margin-bottom:16px;}
.formulario input[type="text"],
.formulario input[type="email"],
.formulario input[type="tel"],
.formulario select,
.formulario textarea{
  width:100%;
  font:inherit;
  color:var(--tinta);
  background:#fff;
  border:1px solid var(--linea);
  border-radius:4px;
  padding:.65rem .75rem;
}
.formulario textarea{min-height:140px;resize:vertical;}
.formulario .opcion{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-weight:400;
}
.formulario .opcion input{margin-top:.3rem;}
.error-campo{
  display:block;
  margin-top:6px;
  color:#7A1F1F;
  font-size:.92rem;
  min-height:0;
}
.campo-invalido{
  border-color:#7A1F1F !important;
}
.trampa{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
}
.aviso-sin-js{
  border:1px solid var(--linea);
  border-radius:4px;
  padding:12px 14px;
  background:var(--superficie);
  margin-bottom:16px;
}
html.js .aviso-sin-js{display:none;}
.gracias{
  border:1px solid var(--linea);
  border-left:3px solid var(--dorado);
  border-radius:4px;
  padding:16px 18px;
  background:var(--superficie);
  margin-bottom:18px;
}

.pie{
  margin-top:24px;
  padding-top:28px;
  border-top:1px solid var(--linea);
}
.pie__suscripcion{
  background:var(--superficie);
  border:1px solid var(--linea);
  border-radius:4px;
  padding:22px;
  margin-bottom:28px;
}
.pie__legal{
  font-size:.95rem;
  color:var(--tinta);
}
.pie__legal p{margin:0 0 .55em;}
.pie__legal nav{margin:12px 0;}
.pie__legal nav a{margin-right:12px;color:var(--tinta);font-weight:700;}
.copyright{font-weight:700;margin-top:12px;}

.aviso-cookies{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:50;
  background:var(--superficie);
  border-top:3px solid var(--dorado);
  padding:16px 22px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  justify-content:space-between;
}
.aviso-cookies p{margin:0;max-width:46rem;}

.alza-suave{
  opacity:1;
  transform:none;
  transition:opacity .5s ease,transform .5s ease;
}
html.js .alza-suave{opacity:0;transform:translateY(14px);}
html.js .alza-suave.visible{opacity:1;transform:none;}
html.no-js .alza-suave{opacity:1!important;transform:none!important;}
@media (prefers-reduced-motion: reduce){
  .alza-suave{opacity:1!important;transform:none!important;}
  html{scroll-behavior:auto;}
}

.lista-corta{list-style:none;padding:0;}
.lista-corta li{
  border-bottom:1px solid var(--linea);
  padding:10px 0;
  margin:0;
}
.lista-corta a{color:var(--tinta);font-weight:700;text-decoration:none;}
.lista-corta a:hover{color:var(--dorado);}

@media (max-width:1100px){
  .tira-datos{grid-template-columns:repeat(2,1fr);}
  .tabla-planes{grid-template-columns:1fr;}
  .cuerpo{padding:36px 28px 24px;}
}

@media (max-width:960px){
  .armazon{grid-template-columns:1fr;}
  .riel{
    position:sticky;
    top:0;
    height:auto;
    z-index:40;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    padding:14px 16px;
  }
  .riel__marca{margin:0 auto 0 0;}
  .riel__boton{display:inline-block;}
  .riel__menu{
    flex-basis:100%;
    margin:12px 0 0;
  }
  html.js .riel__menu{display:none;}
  html.js .riel--abierto .riel__menu{display:flex;}
  html.no-js .riel__menu{display:flex;}
  .riel__contacto{
    flex-basis:100%;
    margin-top:12px;
    display:none;
  }
  html.no-js .riel__contacto,
  html.js .riel--abierto .riel__contacto{display:block;}
  .duo,
  .duo--espejo{grid-template-columns:1fr;}
  .grilla-servicios{grid-template-columns:1fr;}
  .cuerpo{padding:28px 18px 20px;}
  .portada-titular{padding:28px 0 20px;}
}

@media (max-width:640px){
  .tira-datos{grid-template-columns:1fr;}
  .acciones{justify-content:flex-start;}
  .aviso-cookies{flex-direction:column;align-items:flex-start;}
}
