/* Davencrest - layout: header, nav, hero, sections, footer */

.envoltura {
  width:100%;
  max-width:var(--ancho-max);
  margin-inline:auto;
  padding-inline:clamp(1rem, 4vw, 2.5rem);
}

.pagina {
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

main {
  flex:1 0 auto;
}

/* ---------- header ---------- */
.cabecera-sitio {
  position:sticky;
  top:0;
  z-index:80;
  background:hsla(270, 9%, 97%, 0.94);
  border-bottom:1px solid var(--bano-linea);
  backdrop-filter:saturate(1.1) blur(6px);
}
.cabecera-fila {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  min-height:72px;
}
.marca-logo {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:11px;
  font-family:var(--fuente-titulo);
  font-size:1.35rem;
  letter-spacing:0.04em;
  text-decoration:none;
  color:var(--bano-texto);
}
.marca-logo img {
  width:34px;
  height:34px;
}
.navegacion-principal {
  display:flex;
  align-items:center;
  gap:1.75rem;
}
.menu-enlaces {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1.5rem;
  margin:0;
  padding:0;
  list-style:none;
}
.menu-enlaces a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:0.95rem;
  font-weight:500;
  color:var(--bano-texto);
  text-decoration:none;
}
.menu-enlaces a:hover,
.menu-enlaces a[aria-current='page'] {
  color:var(--ciruela);
}
.bolsa-acceso {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  padding:8px 15px;
  border:1px solid var(--bano-linea);
  border-radius:var(--radio-boton);
  background:var(--bano-fondo);
  font-size:0.92rem;
  font-weight:600;
  text-decoration:none;
  color:var(--bano-texto);
}
.bolsa-acceso:hover {
  border-color:var(--ciruela);
  color:var(--ciruela);
}
.bolsa-contador {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:var(--ciruela);
  color:hsl(0, 0%, 100%);
  font-size:0.78rem;
}
.boton-menu {
  display:none;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border:1px solid var(--bano-linea);
  border-radius:var(--radio-boton);
  background:var(--bano-fondo);
  cursor:pointer;
}
.boton-menu span,
.boton-menu span::before,
.boton-menu span::after {
  content:'';
  display:block;
  width:20px;
  height:2px;
  background:var(--bano-texto);
  position:relative;
}
.boton-menu span::before {
  position:absolute;
  top:-6px;
}
.boton-menu span::after {
  position:absolute;
  top:6px;
}

/* ---------- mobile menu panel ---------- */
.panel-movil {
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
  flex-direction:column;
  padding:clamp(1.5rem, 6vw, 3rem);
  background:var(--bano-fondo);
}
.panel-movil.toggled {
  display:flex;
}
.panel-movil-cierre {
  align-self:flex-end;
  width:46px;
  height:46px;
  border:1px solid var(--bano-linea);
  border-radius:var(--radio-boton);
  background:var(--bano-tinte);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
  color:var(--bano-texto);
}
.panel-movil ul {
  list-style:none;
  margin:2rem 0 0;
  padding:0;
}
.panel-movil li {
  border-bottom:1px solid var(--bano-linea);
}
.panel-movil a {
  display:block;
  padding:16px 2px;
  font-family:var(--fuente-titulo);
  font-size:1.3rem;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--bano-texto);
}

/* ---------- sections ---------- */
.seccion {
  padding-top:var(--paso);
  padding-bottom:var(--paso);
}
.seccion-tinte {
  background:var(--bano-tinte);
}
.seccion-degradado {
  background:linear-gradient(180deg, var(--bano-fondo) 0%, var(--bano-tinte) 100%);
}
.seccion-degradado-inv {
  background:linear-gradient(180deg, var(--bano-tinte) 0%, var(--bano-fondo) 100%);
}
.seccion-ciruela {
  background:var(--ciruela);
  color:hsl(0, 0%, 96%);
}
.seccion-ciruela h2,
.seccion-ciruela h3 {
  color:hsl(0, 0%, 100%);
}
.seccion-ciruela a {
  color:hsl(0, 0%, 100%);
}
.cabeza-seccion {
  max-width:40rem;
  margin-bottom:2.5rem;
}
.cabeza-seccion p {
  color:var(--bano-texto-suave);
  margin-bottom:0;
}

/* ---------- hero ---------- */
.portada {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(170deg, var(--bano-fondo) 0%, var(--bano-tinte) 100%);
  border-bottom:1px solid var(--bano-linea);
}
.portada-marca-agua {
  display:block;
  position:absolute;
  left:-2vw;
  top:9vh;
  z-index:-1;
  margin:0;
  font-family:var(--fuente-titulo);
  font-size:clamp(7rem, 22vw, 20rem);
  line-height:0.8;
  color:hsla(324, 30%, 33%, 0.13);
  letter-spacing:-0.02em;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
}
.portada-rejilla {
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:center;
  padding-top:clamp(3rem, 7vw, 5.5rem);
  padding-bottom:clamp(3rem, 7vw, 5.5rem);
}
.portada-texto {
  max-width:34rem;
}
.portada h1 {
  font-size:clamp(2.6rem, 6vw, 4.5rem);
  margin-bottom:0.6em;
}
.portada h1 .acento-ciruela {
  color:var(--ciruela);
}
.portada-entrada {
  font-size:1.12rem;
  color:var(--bano-texto-suave);
  margin-bottom:1.8rem;
}
.portada-botones {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:1.8rem;
}
.portada-fichas {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.portada-media {
  position:relative;
}
.portada-media img {
  display:block;
  width:100%;
  height:clamp(360px, 48vh, 540px);
  object-fit:cover;
  border:1px solid var(--bano-linea);
}
.media-inclinada {
  transform:rotate(-1.2deg);
}

/* ---------- horizontal rail ---------- */
.riel {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(260px, 1fr);
  gap:1.25rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:1rem;
  scrollbar-width:thin;
}
.riel > * {
  scroll-snap-align:start;
  min-width:0;
}
.riel-controles {
  display:flex;
  gap:10px;
  margin-top:1rem;
}
.riel-boton {
  width:46px;
  height:46px;
  border:1px solid var(--bano-linea);
  border-radius:var(--radio-boton);
  background:var(--bano-fondo);
  font-size:1.2rem;
  cursor:pointer;
  color:var(--bano-texto);
}
.riel-boton:hover {
  border-color:var(--ciruela);
  color:var(--ciruela);
}

/* ---------- footer ---------- */
.pie-sitio {
  margin-top:auto;
  background:var(--bano-texto);
  color:hsl(270, 9%, 82%);
  padding-top:3.5rem;
}
.pie-rejilla {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:2.5rem;
}
.pie-sitio h2 {
  color:hsl(0, 0%, 100%);
  font-size:0.82rem;
  text-transform:uppercase;
  letter-spacing:0.14em;
  margin-bottom:1rem;
}
.pie-sitio a {
  color:hsl(270, 9%, 85%);
  text-decoration:none;
}
.pie-sitio a:hover {
  color:hsl(0, 0%, 100%);
}
.pie-lista {
  list-style:none;
  margin:0;
  padding:0;
}
.pie-lista li {
  margin-bottom:0.2em;
}
.pie-lista a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
}
.pie-marca {
  font-family:var(--fuente-titulo);
  font-size:1.4rem;
  color:hsl(0, 0%, 100%);
  margin-bottom:0.8rem;
}
.pie-legal {
  border-top:1px solid hsl(276, 10%, 24%);
  padding-top:1.5rem;
  padding-bottom:2rem;
  font-size:0.82rem;
  color:hsl(270, 6%, 62%);
}
.pie-legal p {
  max-width:none;
  margin-bottom:0.6em;
}

/* ---------- responsive ---------- */
@media (max-width:860px) {
  .portada-rejilla {
    grid-template-columns:1fr;
  }
  .portada-media {
    order:-1;
  }
  .pie-rejilla {
    grid-template-columns:1fr;
    gap:1.75rem;
  }
}

@media (max-width:720px) {
  .js .menu-enlaces {
    display:none;
  }
  .js .boton-menu {
    display:inline-flex;
  }
  .cabecera-fila {
    gap:0.6rem;
  }
  .navegacion-principal {
    gap:0.5rem;
  }
  .marca-logo {
    font-size:1.15rem;
  }
  .marca-logo img {
    width:30px;
    height:30px;
  }
  .bolsa-acceso {
    padding:7px 12px;
    font-size:0.85rem;
  }
  #mini-toggle,
  #mini-bolsa {
    display:none;
  }
}
