:root{
  --cal:#fbf5e9;--papel:#f3e8d3;--tinta:#33261c;--suave:#6d5a48;
  --teja:#b9542b;--ocre:#d99a3d;--anil:#27496d;--encina:#59633a;
  --linea:#dfd0b5;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --mano:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cal);color:var(--tinta);font:1.13rem/1.7 var(--serif)}
img,svg{display:block;max-width:100%}
a{color:var(--teja)}
a:focus-visible{outline:3px solid var(--anil);outline-offset:3px}
.saltar{position:absolute;left:-999px}.saltar:focus{left:12px;top:12px;background:var(--cal);padding:.5rem 1rem;z-index:5}
.ancho{width:min(100% - 2.5rem,66rem);margin-inline:auto}
.estrecho{width:min(100% - 2.5rem,40rem);margin-inline:auto}

/* Portada */
.portada{position:relative;isolation:isolate;min-height:max(min(100svh,56rem),61vw);overflow:hidden;background:#1d4f86;color:#fff;display:flex;flex-direction:column}
.foto-fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:48% 58%;z-index:-2}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,32,62,.72) 0%,rgba(9,32,62,.5) 32%,rgba(9,32,62,0) 58%)}
.barra{display:flex;justify-content:space-between;align-items:center;gap:.8rem 1.5rem;flex-wrap:wrap;padding:1.1rem 0}
.marca{font-size:1.2rem;letter-spacing:.04em;color:inherit;text-decoration:none;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.botones{display:flex;flex-wrap:wrap;gap:.5rem}
.botones a{display:inline-flex;align-items:center;min-height:2.6rem;padding:.2rem 1rem;border:1px solid rgba(255,255,255,.75);border-radius:999px;background:rgba(9,32,62,.35);color:#fff;font-size:.98rem;line-height:1.2;text-decoration:none;backdrop-filter:blur(3px);transition:background-color .2s,color .2s}
.botones a:hover,.botones a:focus-visible{background:var(--cal);color:var(--tinta)}
.titular{text-align:center;padding-top:clamp(.75rem,3vh,2rem);text-shadow:0 2px 16px rgba(5,22,44,.75)}
.titular p.antes{font-family:var(--mano);font-size:1.15rem;margin:0 0 .35rem}
h1{font-size:clamp(2.4rem,5vw,4.3rem);line-height:1.05;font-weight:500;margin:0 auto .8rem;max-width:15em;text-wrap:balance}
.intro{max-width:40rem;margin:0 auto;padding:clamp(2.5rem,6vw,4rem) 1.25rem 0;text-align:center;font-size:clamp(1.25rem,2.4vw,1.55rem);line-height:1.45;text-wrap:balance}

/* Secciones */
section{padding:clamp(3.5rem,9vw,6.5rem) 0}
h2{font-size:clamp(2rem,5vw,3.1rem);line-height:1.1;font-weight:500;margin:0 0 1.2rem;text-wrap:balance}
h3{font-size:1.32rem;line-height:1.25;font-weight:600;margin:0 0 .45rem}
.nota{font-family:var(--mano);color:var(--teja);font-size:1.08rem;margin:0 0 .5rem}
p{margin:0 0 1.1rem;text-wrap:pretty}

/* Castillo */
#castillo{background:var(--cal)}
.castillo-rejilla{display:grid;gap:clamp(2rem,6vw,4.5rem);grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}
.cifra{font-size:clamp(4.2rem,12vw,7rem);line-height:.95;color:var(--teja);margin:0}
.cifra-pie{margin:.2rem 0 1.5rem;color:var(--suave)}
.datos{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea)}
.datos li{padding:.8rem 0;border-bottom:1px solid var(--linea);font-size:1.02rem;line-height:1.45}
.datos b{display:block;font-weight:600}

/* A la fresca */
#fresca{background:var(--anil);color:var(--cal)}
#fresca .nota{color:#f0c070}
#fresca blockquote{margin:0;font-size:clamp(1.55rem,4.2vw,2.35rem);line-height:1.32;text-wrap:pretty}
#fresca .sigue{margin-top:1.8rem;color:#dce4ea}

/* Verano */
#veranos{background:var(--papel)}
.lista-verano{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2.2rem 2.8rem}
.lista-verano li{border-top:3px solid var(--ocre);padding-top:.9rem}
.lista-verano p{margin:0;font-size:1.04rem}

/* Tradiciones */
.trad{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(2rem,6vw,4.5rem)}
.trad article{padding:0 0 1.5rem;margin:0 0 1.5rem;border-bottom:1px solid var(--linea)}
.trad article:last-child{border:0;margin:0;padding:0}
.trad article p{margin:0}

/* Cuéntanos */
#cuentanos{background:var(--teja);color:var(--cal)}
#cuentanos .nota{color:#f6dfa8}
#cuentanos p{font-size:1.2rem}

footer{background:var(--tinta);color:#e4d8c5;padding:2.5rem 0;font-size:.95rem}
footer a{color:#f0c070}
footer .fuentes{margin:0;line-height:1.6}

@media (max-width:48rem){
  .castillo-rejilla,.trad{grid-template-columns:1fr}
  .barra{justify-content:center;text-align:center}
  .botones{justify-content:center}
  .portada{min-height:max(100svh,44rem)}
}

/* Botón de la página actual */
.botones a[aria-current="page"]{background:var(--cal);color:var(--tinta);border-color:var(--cal)}

/* Páginas secundarias */
.cabecera{background:var(--anil);color:#fff}
.cabecera-texto{padding:clamp(1.5rem,5vw,3rem) 0 clamp(2.5rem,6vw,4rem);text-align:center}
.cabecera-texto .antes{font-family:var(--mano);font-size:1.15rem;margin:0 0 .35rem;color:#f0c070}
.cabecera-texto p:last-child{max-width:36rem;margin:0 auto;text-wrap:balance}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:clamp(1.25rem,3vw,2rem);padding:clamp(2.5rem,6vw,4rem) 0}
.galeria figure{margin:0}
.galeria a{display:block;border-radius:4px;overflow:hidden}
.galeria img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;transition:transform .3s}
.galeria a:hover img{transform:scale(1.02)}
.galeria figcaption{margin-top:.55rem;font-size:1rem;color:var(--suave)}
@media (prefers-reduced-motion:reduce){.galeria img{transition:none}.galeria a:hover img{transform:none}}

/* Estrellas */
#estrellas{position:relative;color:#eef2f7;background-color:#0d1a30;
  background-image:
    radial-gradient(1.5px 1.5px at 14px 26px,#fff,transparent),radial-gradient(1px 1px at 70px 90px,#fff,transparent),
    radial-gradient(1.5px 1.5px at 130px 40px,#dfe9ff,transparent),radial-gradient(1px 1px at 190px 150px,#fff,transparent),
    radial-gradient(2px 2px at 240px 70px,#fff,transparent),radial-gradient(1px 1px at 300px 190px,#cfdcff,transparent),
    radial-gradient(1.5px 1.5px at 40px 200px,#fff,transparent),radial-gradient(1px 1px at 110px 250px,#fff,transparent),
    radial-gradient(1px 1px at 270px 260px,#fff,transparent),
    linear-gradient(180deg,#0a1528 0%,#12233f 70%,#27496d 100%);
  background-size:320px 290px,320px 290px,320px 290px,320px 290px,320px 290px,320px 290px,320px 290px,320px 290px,320px 290px,auto}
#estrellas .nota{color:#f0c070}
#estrellas a{color:#f6dfa8}
#estrellas .cifra{color:#f0c070}
#estrellas .cifra-pie{color:#d6deea}
#estrellas .datos,#estrellas .datos li{border-color:rgba(255,255,255,.28)}

/* Contacto */
.contacto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:clamp(2rem,6vw,4.5rem);padding:clamp(3rem,7vw,5rem) 0}
.contacto section{padding:0;border-top:3px solid var(--ocre);padding-top:1.25rem}
.contacto h2{font-size:clamp(1.7rem,4vw,2.3rem)}
.contacto p:last-child{margin:0}

/* Menú: mismos botones y misma posición en todas las páginas */
.botones a.inicio{gap:.4rem}
.botones a.inicio svg{flex:none}
.botones a[aria-current="page"]{background:var(--cal);color:var(--tinta);border-color:var(--cal)}
@media (max-width:48rem){
  .barra{flex-direction:column;justify-content:center;text-align:center}
  .botones{justify-content:center}
}
@media (max-width:34rem){
  .botones{gap:.3rem}
  .botones a{min-height:2.75rem;padding:.2rem .55rem;font-size:.86rem;white-space:nowrap}
  .botones a.inicio{padding-inline:.7rem}
  .botones a.inicio span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}

/* Privacidad */
.legal{padding:clamp(3rem,7vw,5rem) 0}
.legal h2{font-size:clamp(1.4rem,3vw,1.75rem);margin:2rem 0 .5rem}
.legal h2:first-child{margin-top:0}
.mini-privacidad{margin-top:.8rem!important;font-size:.95rem;color:var(--suave)}

/* Carpetas de fotos */
.carpetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));gap:clamp(1.25rem,3vw,2rem);padding:clamp(2.5rem,6vw,4rem) 0}
.carpeta{display:flex;flex-direction:column;color:var(--tinta);text-decoration:none}
.carpeta-portada{display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:6px;background:var(--papel);color:var(--teja);border:1px solid var(--linea)}
.carpeta-portada{position:relative}
.carpeta-portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 72%;transition:transform .3s}
.carpeta:hover .carpeta-portada img{transform:scale(1.03)}
.carpeta:hover .carpeta-titulo{color:var(--teja)}
.carpeta-titulo{margin-top:.7rem;font-size:1.18rem;line-height:1.25;font-weight:600}
.carpeta-num{margin-top:.15rem;font-size:.95rem;color:var(--suave)}
.album{padding:clamp(2rem,5vw,3rem) 0 clamp(2.5rem,6vw,4rem)}
.album .galeria{width:100%;padding:0;margin-top:1.25rem}
.volver{margin:0}
.album-vacio{margin:1.5rem 0 0;font-size:1.15rem;color:var(--suave)}
@media (prefers-reduced-motion:reduce){.carpeta-portada img{transition:none}.carpeta:hover .carpeta-portada img{transform:none}}

/* Invitación a compartir fotos */
.invita{margin-bottom:clamp(2.5rem,6vw,4rem);padding:clamp(1.5rem,4vw,2.5rem);background:var(--papel);border-left:4px solid var(--ocre);border-radius:4px}
.invita h2{font-size:clamp(1.7rem,4vw,2.4rem)}
.invita-correo{margin:1.2rem 0;font-size:1.1rem;font-weight:600;overflow-wrap:anywhere}
.invita .mini-privacidad{margin:0!important}
@media (max-width:34rem){.carpetas{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.carpeta-titulo{font-size:1.02rem}}

/* Portada con foto apaisada: título a la izquierda de la torre */
.foto-fondo{object-position:50% 30%}
.portada::after{background:linear-gradient(90deg,rgba(9,32,62,.68) 0%,rgba(9,32,62,.42) 32%,rgba(9,32,62,0) 56%),linear-gradient(180deg,rgba(9,32,62,.45) 0%,rgba(9,32,62,0) 22%)}
.titular{text-align:left;padding-top:clamp(1.5rem,6vh,3.5rem)}
.titular h1{margin-inline:0;max-width:min(26rem,38vw);font-size:clamp(2.5rem,4.4vw,4rem)}
@media (max-width:48rem){
  .portada{min-height:0;padding-bottom:calc(67.75vw - 2.5rem);background:linear-gradient(180deg,#22314d 0%,#8d6470 52%,#c98372 100%)}
  .foto-fondo{inset:auto 0 0;height:auto;object-position:50% 50%;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%);mask-image:linear-gradient(180deg,transparent 0,#000 16%)}
  .portada::after{background:none}
  .titular{text-align:center;padding-top:.75rem}
  .titular h1{margin-inline:auto;max-width:15em;font-size:clamp(2.2rem,8vw,3.2rem)}
}
.relato{max-width:46rem;margin:1.5rem 0 2.5rem}
.relato h2{font-size:clamp(1.7rem,4vw,2.3rem)}
.relato .fuentes-guia{margin-bottom:0}
.relato .fuentes-guia,#recetas .fuentes-guia{font-size:.9rem;color:var(--suave)}
.formulario{display:grid;gap:.45rem;margin-top:1.25rem}
.formulario label{font-weight:600;margin-top:.6rem}
.formulario input:not([type=checkbox]),.formulario textarea{width:100%;font:inherit;padding:.65rem .75rem;border:1px solid var(--suave);border-radius:6px;background:#fff;color:inherit}
.formulario .acepto{font-weight:400;font-size:.95rem;line-height:1.5}
.formulario button{justify-self:start;margin-top:.9rem;font:inherit;font-weight:600;padding:.7rem 1.3rem;border:0;border-radius:999px;background:var(--teja);color:#fff;cursor:pointer}
.formulario button:hover{opacity:.9}
.formulario :focus-visible{outline:3px solid var(--ocre);outline-offset:2px}
.aviso-contacto{margin:.2rem 0 0;font-size:.95rem}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.entrada{padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.12)}
.entrada h3{margin:0 0 .35rem;font-size:1.25rem}
.entrada p{margin:0 0 .4rem;overflow-wrap:anywhere}
.entrada-pie{font-size:.9rem;color:var(--suave)}
.formulario select{width:100%;font:inherit;padding:.65rem .75rem;border:1px solid var(--suave);border-radius:6px;background:#fff;color:inherit}
.formulario input[type=file]{width:100%;font:inherit;padding:.5rem 0}
.enviar-foto{margin:2rem 0 0}
.enviar-foto a{display:inline-block;font-weight:600;padding:.7rem 1.3rem;border-radius:999px;background:var(--teja);color:#fff;text-decoration:none}
.enviar-foto a:hover{opacity:.9}
.carpetas .enviar-foto{grid-column:1/-1}
.album h2.vecinos{margin:2.5rem 0 0;font-size:clamp(1.5rem,3.5vw,2rem)}
