/* Sistema de diseño: puesto de mercado a la hora dorada (crema, verde bosque y un único lima para la acción principal) */
@font-face{font-family:'Outfit';font-weight:300 700;font-style:normal;font-display:swap;src:url(/fonts/outfit.woff2) format('woff2')}

:root{
  --bosque:#00473c; --lima:#e6ff55; --salvia:#d8e5d6; --arena:#e8dcc6; --crema:#f4f3e7;
  --tinta:#0e150e; --gris:#8c8c82; --gris-2:#555555;
  --fuente:'Outfit',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ancho:1440px; --r-img:20px; --r-tarjeta:24px; --sombra:rgba(14,21,14,.4) 3px 3px 32px -10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--crema);color:var(--tinta);font:400 1.0625rem/1.38 var(--fuente);letter-spacing:.017em}
img{display:block;max-width:100%;height:auto}
a{color:var(--bosque)}
h1,h2,h3{font-family:var(--fuente);font-weight:400;margin:0 0 .45em;color:var(--tinta);letter-spacing:0}
h1{font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1;text-wrap:balance}
h2{font-size:clamp(2.1rem,4.6vw,3.8rem);line-height:1;text-wrap:balance;hyphens:manual}
h3{font-size:1.5rem;line-height:1.1;font-weight:400}
h4{font-size:1rem;font-weight:700;margin:0 0 .5em;letter-spacing:.03em}
p{margin:0 0 1em;max-width:62ch}
strong{font-weight:700}
:focus-visible{outline:3px solid var(--bosque);outline-offset:3px;border-radius:6px}
.saltar{position:absolute;left:-999px;top:8px;background:var(--bosque);color:#fff;padding:8px 14px;z-index:99;border-radius:999px}
.saltar:focus{left:8px}
section{padding:clamp(64px,9vw,120px) clamp(16px,4vw,48px)}
section>*{max-width:var(--ancho);margin-left:auto;margin-right:auto}

/* botones: solo pastillas */
.boton{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:9999px;font:700 1rem/1 var(--fuente);letter-spacing:.017em;text-decoration:none;border:2px solid transparent;transition:background-color .15s,color .15s}
.boton-reserva{background:var(--lima);color:var(--tinta);box-shadow:var(--sombra)}
.boton-reserva:hover{background:#d9f43c}
.boton-verde{background:var(--bosque);color:#fff}
.boton-verde:hover{background:#003a31}
.boton-claro,.boton-linea{background:transparent;border-color:var(--bosque);color:var(--bosque)}
.boton-claro:hover,.boton-linea:hover{background:var(--bosque);color:#fff}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 16px}
.enlace{font-weight:700;color:var(--tinta);text-decoration:none}
.enlace:hover{text-decoration:underline;text-underline-offset:4px}
.nota{font-size:.92rem;color:var(--gris-2)}

/* cabecera */
.cabecera{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:14px clamp(16px,4vw,48px);background:var(--crema);border-bottom:1px solid rgba(14,21,14,.12)}
.cabecera nav{grid-column:1;grid-row:1}
.marca{grid-column:2;grid-row:1;font:700 1.55rem/1 var(--fuente);color:var(--bosque);text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.cabecera>.boton{grid-column:3;justify-self:end;background:transparent;border-color:var(--bosque);color:var(--bosque);box-shadow:none;min-height:42px;padding:0 20px}
.cabecera>.boton:hover{background:var(--bosque);color:#fff}
.cabecera ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;white-space:nowrap}
.cabecera nav a{color:var(--tinta);text-decoration:none;font-weight:700;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}
.cabecera nav a:hover{color:var(--bosque);text-decoration:underline;text-underline-offset:5px}

/* portada: texto a la izquierda y la fachada a la derecha, a su tamaño (la foto original mide 1024 px) */
.portada{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(32px,5vw,64px)}
@media (min-width:1081px){.portada{padding-left:max(clamp(16px,4vw,48px),calc((100% - var(--ancho))/2));padding-right:max(clamp(16px,4vw,48px),calc((100% - var(--ancho))/2))}}
.portada>*{margin:0;max-width:none;min-width:0}
.portada picture{display:block;order:2}
.portada img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-img)}
.portada-texto>p{font-size:1.15rem}
.portada .tel{font-size:1rem;margin:0}
.portada .tel a{color:var(--tinta);font-weight:700}
/* bienvenida */
.columnas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,4vw,56px);font-size:1.15rem}

/* reservas, en banda salvia */
.reservar{background:var(--salvia);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
.reservar>*{margin:0}
@media (min-width:901px){.reservar,.habitaciones,.alrededores{padding-left:max(clamp(16px,4vw,48px),calc((100% - var(--ancho))/2));padding-right:max(clamp(16px,4vw,48px),calc((100% - var(--ancho))/2))}}
.reservar-tel{font-size:1.4rem;line-height:1.3}
.reservar-tel a{color:var(--tinta);font-weight:700}
.reservar-widget{background:#fff;border-radius:var(--r-tarjeta);padding:16px;box-shadow:var(--sombra)}
.reservar-widget iframe{border:0;display:block;width:100%;min-height:520px}
.reservar-widget .nota{margin:8px 4px 2px}

/* cocina: la foto es la tarjeta */
.cabeza-seccion{margin-bottom:36px}
.platos{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;margin:0 auto}
.platos img{aspect-ratio:1;object-fit:cover;border-radius:var(--r-img);width:100%}
.platos span{display:block;margin-top:14px;font-weight:700;font-size:1.25rem;line-height:1.2;letter-spacing:.03em}
.menus{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(24px,4vw,48px);margin-top:clamp(56px,7vw,96px)}
.menu-finde{background:var(--arena);border-radius:var(--r-tarjeta);padding:clamp(24px,3.5vw,40px)}
.menu-finde h3{font-size:clamp(2rem,3.6vw,2.8rem);line-height:.9}
.precio{font-size:1.4rem;font-weight:700}
.menu-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.menu-cols ul,.alr-texto ul{list-style:none;padding:0;margin:0 0 1em}
.menu-cols li{padding:6px 0;border-bottom:1px solid rgba(14,21,14,.18);line-height:1.3}
.bebidas{margin:10px 0 0;color:var(--gris-2)}
.otras-cartas h3{font-size:2rem;line-height:.95}
.otras-cartas .boton{margin:4px 0 14px}
.otras-cartas .enlace{display:block;margin-bottom:28px}
.desayuno{margin:0}
.desayuno img{border-radius:var(--r-img)}
figcaption{font-size:.95rem;color:var(--gris-2);margin-top:8px}

/* habitaciones, en banda arena */
.habitaciones{background:var(--arena);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,56px)}
.habitaciones>*{margin:0}
.hab-fotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hab-fotos figure{margin:0}
.hab-fotos .grande{grid-column:1/-1}
.hab-fotos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-img)}
.hab-fotos .grande img{aspect-ratio:16/9}

/* la casa */
.casa-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:56px}
.casa-grid figure{margin:0}
.casa-grid img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-img)}
.c1{grid-column:1/3;grid-row:1/3}.c1 img{aspect-ratio:3/4}
.c2{grid-column:3/7}.c2 img{aspect-ratio:16/9}
.c3 img,.c4 img,.c5 img{aspect-ratio:4/3}
.c3{grid-column:3/4}.c4{grid-column:4/5}.c5{grid-column:5/7}
.ventajas{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 auto 28px}
.ventajas li{background:var(--salvia);border-radius:var(--r-tarjeta);padding:24px}
.ventajas h3{font-size:1.6rem}
.ventajas p{font-size:1rem;margin:0}
.servicios{color:var(--gris-2)}

/* los cuadros: superficie verde bosque */
.cuadros{background:var(--bosque);color:#e6efe8}
.cuadros h2{color:#fff}
.pared{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(14px,2.4vw,30px);padding:clamp(8px,2vw,24px) 0}
.pared img{height:clamp(140px,19vw,250px);width:auto;object-fit:cover;border:clamp(6px,.9vw,10px) solid var(--crema);border-radius:4px;box-shadow:0 14px 26px -10px rgba(0,0,0,.55)}
.pared img.v{height:clamp(180px,25vw,320px)}
.pared img:nth-child(3n){transform:translateY(14px)}
.pared img:nth-child(4n){transform:translateY(-10px)}

/* alrededores */
.alrededores{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,56px);align-items:center}
.alrededores>*{margin:0}
.alr-foto{border-radius:var(--r-img);width:100%;aspect-ratio:4/3;object-fit:cover}
.alr-texto h3{font-size:1.25rem;font-weight:700;letter-spacing:.03em;margin-top:1.2em}
.alr-texto li{padding:5px 0;border-bottom:1px solid rgba(14,21,14,.14)}

/* contacto */
.contacto{background:var(--salvia)}
.con-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.con-grid h3{font-size:1rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.con-grid p{font-size:1.3rem}
.con-grid a{color:var(--tinta)}

/* pie */
.pie{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:32px clamp(16px,4vw,48px) 100px;background:var(--bosque);color:#cfe0d6;font-size:.95rem}
.pie p{margin:0}
.pie a{color:#fff;margin-left:18px}
.barra-movil{display:none}

/* páginas legales */
.texto-legal{max-width:760px;margin:0 auto;padding:56px 16px 80px}
.texto-legal h1{font-size:clamp(2.6rem,6vw,3.6rem)}
.texto-legal h2{font-size:1.6rem;line-height:1.1;margin-top:1.6em}
.legal .pie{padding-bottom:32px}
.legal .cabecera{grid-template-columns:1fr auto}
.legal .marca{grid-column:1}
.legal .cabecera>.boton{grid-column:2}

@media (max-width:1080px){
  .cabecera{grid-template-columns:1fr auto}
  .cabecera nav{display:none}
  .marca{grid-column:1}
  .cabecera>.boton{grid-column:2}
  .columnas,.reservar,.menus,.habitaciones,.alrededores,.con-grid{grid-template-columns:1fr}
  .platos{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}
  .menu-cols{grid-template-columns:1fr}
  .ventajas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .casa-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c1,.c2,.c3,.c4,.c5{grid-column:auto;grid-row:auto}
  .c2{grid-column:1/-1}
  .pared img:nth-child(n){transform:none}
  .barra-movil{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--crema);border-top:1px solid rgba(14,21,14,.12)}
  .barra-movil .boton{flex:1}
}
@media (max-width:520px){
  .cabecera>.boton{display:none}
  .ventajas{grid-template-columns:1fr}
  .platos span{font-size:1.05rem}
}
.antetitulo{font-weight:700;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;color:var(--bosque);margin-bottom:12px}

.marca{display:inline-flex;align-items:center;gap:10px}
.marca img{width:40px;height:auto;border-radius:6px}
.lema{font-size:1.25rem;margin:-4px 0 12px}
.whatsapp{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:var(--sombra)}
.whatsapp svg{width:32px;height:32px}
.whatsapp:hover{background:#1ebe5b}
@media (max-width:1080px){.portada{grid-template-columns:1fr}.portada picture{order:-1}}
@media (max-width:1080px){.whatsapp{bottom:calc(82px + env(safe-area-inset-bottom,0px))}}


/* aire: títulos de columnas estrechas más contenidos y más separación entre bloques */
.reservar h2,.habitaciones h2,.alrededores h2,.otras-cartas h3{font-size:clamp(2rem,3.2vw,2.8rem)}
.portada-texto{display:grid;gap:14px}
.portada-texto>*{margin:0}
.lema{margin:0}
.columnas p,.hab-texto p,.reservar-texto p{line-height:1.55}
.cabeza-seccion p,.cuadros p{margin-top:12px}
.ventajas li{display:grid;gap:10px;align-content:start}
.ventajas h3{margin:0}

/* ---- carácter: arcos de ventana de pueblo, sello redondo y una sola entrada animada ---- */
.portada-fotos{position:relative;order:2;min-width:0}
.portada .arco img{aspect-ratio:4/5;border-radius:999px 999px var(--r-img) var(--r-img);max-height:78vh;object-position:62% center}
.sello{position:absolute;left:-7%;bottom:8%;width:clamp(110px,15vw,210px);aspect-ratio:1;object-fit:cover;border-radius:50%;border:8px solid var(--crema);box-shadow:var(--sombra)}
.portada{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.portada h1{font-size:clamp(2.8rem,6.4vw,6rem);line-height:.95;letter-spacing:-.02em}
.antetitulo::before{content:"";display:inline-block;width:28px;height:2px;background:var(--bosque);vertical-align:middle;margin-right:10px}
@media (prefers-reduced-motion:no-preference){
  .portada .arco img{animation:abre 1.1s cubic-bezier(.2,.7,.1,1) both}
  .sello{animation:sube .9s .55s cubic-bezier(.2,.7,.1,1) both}
  .portada-texto{animation:sube .8s .15s cubic-bezier(.2,.7,.1,1) both}
}
@keyframes abre{from{clip-path:inset(100% 0 0 0 round 999px 999px 20px 20px)}to{clip-path:inset(0 0 0 0 round 999px 999px 20px 20px)}}
@keyframes sube{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* platos en mosaico: el primero manda */
.platos{grid-template-columns:repeat(4,minmax(0,1fr))}
.platos li:first-child{grid-column:span 2;grid-row:span 2}
.platos li:first-child img{aspect-ratio:auto;height:calc(100% - 40px)}
/* habitaciones y casa con arcos */
.hab-fotos figure:not(.grande) img{border-radius:999px 999px var(--r-img) var(--r-img)}
.c1 img{border-radius:999px 999px var(--r-img) var(--r-img)}
/* Peñalara a todo lo ancho */
.alrededores{grid-template-columns:1fr;padding:0;gap:0;position:relative}
.alrededores>*{max-width:none}
.alr-foto.banda{width:100%;height:clamp(360px,62vh,640px);aspect-ratio:auto;border-radius:0;object-fit:cover}
.alr-texto{position:relative;margin:-140px auto 0 max(clamp(16px,4vw,48px),calc((100% - var(--ancho))/2));width:min(560px,calc(100% - 32px));background:var(--arena);border-radius:var(--r-tarjeta);padding:clamp(24px,3vw,40px);box-shadow:var(--sombra);margin-bottom:clamp(48px,7vw,96px)}
@media (max-width:1080px){
  .portada{grid-template-columns:1fr}
  .portada-fotos{order:-1;max-width:560px;margin:0 auto;width:100%}
  .portada .arco img{max-height:none;aspect-ratio:4/4.4}
  .sello{left:auto;right:-4%;bottom:-6%}
  .platos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .alr-texto{margin-left:auto;margin-right:auto}
}
.portada .sello{position:absolute;width:clamp(110px,13vw,190px);height:auto;aspect-ratio:1;border-radius:50%;max-height:none}
.alr-foto.banda{max-width:var(--ancho);margin:0 auto;display:block;border-radius:var(--r-img);height:clamp(320px,52vh,560px)}
.alrededores{padding:clamp(48px,7vw,96px) clamp(16px,4vw,48px) 0}

.alr-texto{width:min(880px,calc(100% - 32px))}
.rutas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.rutas h3{min-height:2.6em}
@media (max-width:620px){.rutas{grid-template-columns:1fr}.rutas h3{min-height:0}}

/* portada v3: titular arriba y tres fotos reales en fila */
.portada{grid-template-columns:1fr !important;gap:clamp(24px,3vw,40px)}
.portada-texto{order:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:12px 48px;align-items:end}
.portada-texto .antetitulo,.portada-texto h1{grid-column:1}
.portada-texto .lema,.portada-texto .acciones,.portada-texto .tel{grid-column:2}
.portada-texto .lema{grid-row:2;align-self:start;font-size:1.35rem}
.portada-texto .acciones{grid-row:2;align-self:center;margin-top:44px}
.portada-texto .tel{grid-row:2;align-self:end}
.portada-fotos{order:2;display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;max-width:none;margin:0}
.portada-fotos img{width:100%;height:clamp(260px,38vw,520px);object-fit:cover;border-radius:var(--r-img);aspect-ratio:auto;animation:none;max-height:none}
.portada .arco img,.sello{animation:none}
@media (prefers-reduced-motion:no-preference){.portada-fotos img{animation:sube .8s cubic-bezier(.2,.7,.1,1) both}.portada-fotos .f2{animation-delay:.12s}.portada-fotos .f3{animation-delay:.24s}}
@media (max-width:1080px){
  .portada-texto{grid-template-columns:1fr}
  .portada-texto>*{grid-column:1 !important;grid-row:auto !important;margin-top:0 !important}
  .portada-fotos{order:2;grid-template-columns:1fr 1fr;max-width:none}
  .portada-fotos .f1{grid-column:1/-1}
  .portada-fotos img{height:clamp(180px,40vw,360px)}
}

.portada-fotos{grid-template-columns:1fr !important}
.portada-fotos .f1{height:clamp(280px,46vw,620px);object-position:center 40%}

.flotante.booking{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(88px + env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 18px 0 14px;border-radius:999px;background:#003580;color:#fff;font-weight:700;text-decoration:none;box-shadow:var(--sombra)}
.flotante.booking svg{width:24px;height:24px}
.flotante.booking:hover{background:#00256b}
@media (max-width:1080px){.flotante.booking{bottom:calc(152px + env(safe-area-inset-bottom,0px))}}
@media (max-width:1080px){.flotante.booking span{display:none}.flotante.booking{width:58px;height:58px;padding:0;justify-content:center}.flotante.booking svg{width:28px;height:28px}}

.whatsapp{width:auto;height:50px;padding:0 18px 0 14px;border-radius:999px;display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none}
.whatsapp svg{width:26px;height:26px}
.flotante.booking{bottom:calc(80px + env(safe-area-inset-bottom,0px))}
@media (max-width:1080px){.whatsapp{width:58px;height:58px;padding:0;justify-content:center}.whatsapp span{display:none}.whatsapp svg{width:32px;height:32px}.flotante.booking{bottom:calc(152px + env(safe-area-inset-bottom,0px))}}
/* páginas legales: el pie siempre abajo y dentro de la pantalla */
body.legal{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body.legal .texto-legal{flex:1;width:100%}
body.legal .pie{padding:24px clamp(16px,4vw,48px)}
body.legal .pie nav{display:flex;gap:18px}
body.legal .pie a{margin-left:0}

/* ---- color: cabecera verde bosque, bandas alternas y cierre oscuro ---- */
:root{--bosque-2:#003a31;--bosque-3:#002d26}
.cabecera{background:var(--bosque);border-bottom:0}
body::before{background:var(--bosque)}
.marca{color:#fff}
.marca img{background:#fff;padding:3px}
.cabecera nav a{color:#e3eee8}
.cabecera nav a:hover{color:var(--lima)}
.cabecera>.boton{background:var(--lima);border-color:var(--lima);color:var(--tinta)}
.cabecera>.boton:hover{background:#d9f43c;color:var(--tinta)}
.antetitulo,.antetitulo::before{color:var(--bosque)}
.bienvenida{background:var(--crema)}
.cocina{background:#fbfaf3}
.la-casa{background:var(--crema)}
.contacto{background:var(--bosque);color:#e3eee8}
.contacto h2,.contacto h3{color:#fff}
.contacto a,.con-grid a{color:var(--lima)}
.pie{background:var(--bosque-3);border-top:1px solid rgba(255,255,255,.08)}
.pie a{color:var(--lima)}
.cuadros{background:linear-gradient(var(--bosque-2),var(--bosque-2))}
.ventajas li{background:#fff;border:1px solid rgba(0,71,60,.12)}
.menu-finde{background:var(--arena)}
.platos span{color:var(--bosque)}
.barra-movil{background:var(--bosque);border-top:0}

/* contacto + pie en un solo cierre */
.contacto{padding-block:clamp(48px,6vw,80px) 0}
.con-marco{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:clamp(24px,4vw,56px);align-items:center;padding-bottom:clamp(40px,5vw,64px);border-bottom:1px solid rgba(255,255,255,.14)}
.con-marca h2{margin-bottom:.25em}
.con-marca p{font-size:1.2rem;color:#e3eee8}
.con-datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}
.con-datos dt{font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#a9c7b9;margin-bottom:6px}
.con-datos dd{margin:0;font-size:1.05rem;line-height:1.5;overflow-wrap:anywhere}
.con-foto{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-img)}
.boton-linea-claro{border-color:#fff;color:#fff;background:transparent}
.boton-linea-claro:hover{background:#fff;color:var(--bosque)}
.pie{background:var(--bosque);border-top:0;padding:20px clamp(16px,4vw,48px);padding-right:max(clamp(16px,4vw,48px),230px);align-items:center}
@media (max-width:1080px){.con-marco{grid-template-columns:1fr}.con-datos{grid-template-columns:1fr 1fr}.con-foto{display:none}.pie{padding-right:clamp(16px,4vw,48px);padding-bottom:96px}}
@media (max-width:520px){.con-datos{grid-template-columns:1fr}}

.contacto .boton-reserva{color:var(--tinta)}
.contacto .boton-linea-claro{color:#fff}
.contacto .boton-linea-claro:hover{color:var(--bosque)}

/* subpáginas */
.subpagina>.migas,.subpagina>.h1-sub{max-width:var(--ancho);margin-left:auto;margin-right:auto;padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}
.migas{padding-top:28px;font-size:.95rem;color:var(--gris-2)}
.migas a{color:var(--bosque)}
.h1-sub{margin-top:12px;margin-bottom:0}
.pie nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.pie nav a{margin-left:0}
.h1-sub{padding-bottom:24px}
.subpagina>section:first-of-type{padding-top:clamp(32px,4vw,56px)}

.con-datos{grid-template-columns:repeat(2,minmax(0,1fr))}

.ubicacion{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid rgba(0,71,60,.14);border-radius:var(--r-tarjeta);padding:14px 16px}
.ubicacion svg{width:34px;height:34px;color:var(--bosque);flex:none}
.ubicacion p{margin:0;line-height:1.35;flex:1;min-width:150px}
.ubicacion .boton{min-height:42px}
.portada-texto .ubicacion{grid-column:2;grid-row:3}
@media (max-width:1080px){.portada-texto .ubicacion{grid-column:1;grid-row:auto}}
/* fondo neutro mientras carga cada foto, para que no se vea un hueco blanco */
img{background:var(--arena)}
.pared img,.marca img{background:none}
@media (max-width:1080px){.casa-grid{grid-auto-rows:auto;align-items:start}.casa-grid figure{display:flex;flex-direction:column}.casa-grid img{height:auto;aspect-ratio:4/3}.casa-grid .c1 img{aspect-ratio:4/5}.casa-grid .c2 img{aspect-ratio:16/10}}

/* menos «plantilla»: etiquetas en minúscula normal y ventajas sin tarjetas iguales */
.con-datos dt{text-transform:none;letter-spacing:0;font-size:.95rem;color:#a9c7b9}
.ventajas{gap:32px 40px}
.ventajas li{background:none;border:0;border-radius:0;padding:0}
.ventajas h3{font-size:1.45rem;color:var(--bosque)}

/* portada: título a la izquierda y, a la derecha, lema, botones, teléfono y ubicación en columna */
.portada-texto{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:14px 48px;align-items:start}
.portada-texto h1{grid-column:1;grid-row:1/5;align-self:center;margin:0}
.portada-texto .lema{grid-column:2;grid-row:1;align-self:end}
.portada-texto .acciones{grid-column:2;grid-row:2;margin:0;align-self:start}
.portada-texto .tel{grid-column:2;grid-row:3;align-self:start}
.portada-texto .ubicacion{grid-column:2;grid-row:4}
@media (max-width:1080px){.portada-texto{grid-template-columns:1fr}.portada-texto>*{grid-column:1!important;grid-row:auto!important}}

.casa-grid .c6 img{aspect-ratio:4/3}
@media (min-width:1081px){.casa-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.c3{grid-column:3/4}.c4{grid-column:4/5}.c6{grid-column:5/7}.c5{grid-column:1/3}}
.foto-ventaja{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-img);margin-bottom:6px}

@media (min-width:1081px){.c5{grid-column:1/-1}.c5 img{aspect-ratio:16/6}}
.pagos{display:flex;flex-wrap:wrap;gap:6px}
.pagos span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(255,255,255,.35);border-radius:8px;font-size:.9rem;font-weight:700}
.pagos span::before{content:"";width:16px;height:11px;border:1.5px solid currentColor;border-radius:2px;box-shadow:inset 0 3px 0 -1px currentColor}
/* aviso de cookies: pequeño, abajo a la izquierda, sin tapar los botones de reservar */
.aviso-cookies{position:fixed;left:calc(16px + env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;width:min(380px,calc(100% - 32px));background:#fff;color:var(--tinta);border-radius:16px;padding:16px;box-shadow:var(--sombra);display:grid;gap:10px;font-size:.95rem}
.aviso-cookies[hidden]{display:none}
.aviso-cookies p{margin:0}
.aviso-botones{display:flex;gap:8px;flex-wrap:wrap}
.aviso-botones .boton{min-height:40px;padding:0 16px;font-size:.92rem}
@media (max-width:1080px){.aviso-cookies{bottom:calc(84px + env(safe-area-inset-bottom,0px));width:calc(100% - 100px)}}
.reserva-sin-cookies{display:grid;gap:12px;padding:24px;min-height:300px;align-content:center}
.reserva-sin-cookies[hidden]{display:none}
.enlace-cookies{background:none;border:0;padding:0;font:inherit;color:var(--lima);text-decoration:underline;cursor:pointer}
/* parte derecha de la cabecera: idioma + reservar */
.cab-der{grid-column:3;justify-self:end;display:flex;align-items:center;gap:16px}
.cab-der .boton{background:var(--lima);border-color:var(--lima);color:var(--tinta);min-height:42px;padding:0 20px}
.idiomas{display:flex;gap:4px;font-weight:700;font-size:.9rem;color:#a9c7b9}
.idiomas a,.idiomas span{padding:4px 7px;border-radius:6px;color:#e3eee8;text-decoration:none}
.idiomas [aria-current]{background:rgba(255,255,255,.14);color:#fff}
.idiomas a:hover{color:var(--lima)}
@media (max-width:1080px){.cab-der{grid-column:2}}
@media (max-width:520px){.cab-der .boton{display:none}}
@media (max-width:520px){.marca-r{display:none}.marca{font-size:1.25rem}.cab-der{gap:8px}}
@media (max-width:1080px) and (min-width:521px){.marca{font-size:1.3rem}}
.marca-r{white-space:pre}
@media (max-width:1300px){.cabecera{grid-template-columns:1fr auto}.cabecera nav{display:none}.marca{grid-column:1}.cab-der{grid-column:2}}
/* Móvil: cabecera = logo + idiomas + reservar */
@media (max-width:700px){.marca>span{display:none}.marca img{width:44px}.cab-der{gap:8px}.cab-der .boton{display:inline-flex!important;min-height:38px;padding:0 14px;font-size:.9rem}.idiomas{font-size:.85rem}}
/* Móvil: nombre en dos líneas, pequeño */
@media (max-width:700px){.marca>span{display:block;white-space:normal;font-size:.8rem;line-height:1.15;max-width:7.5em}.marca .marca-r{display:inline;white-space:normal}.marca{gap:8px;min-width:0}.marca img{width:38px}.cabecera{gap:8px}}
@media (max-width:370px){.marca>span{font-size:.72rem}.cab-der .boton{padding:0 11px;font-size:.82rem}.idiomas a,.idiomas span{padding:4px 5px}}
@media (max-width:700px) and (min-width:400px){.marca>span{max-width:11em;font-size:.88rem}}
/* Móvil: portada con la foto arriba y el texto debajo, separados */
@media (max-width:700px){.portada{display:flex;flex-direction:column;gap:24px}.portada-fotos{order:-1}.portada-fotos .f1{height:clamp(220px,62vw,340px)}.portada-texto .acciones{display:grid;grid-template-columns:1fr 1fr;gap:10px}.portada-texto .acciones .boton{justify-content:center;text-align:center}.portada-texto .acciones .boton:first-child{grid-column:1/-1}}
@media (max-width:700px){.portada-texto .acciones .boton{white-space:nowrap;padding:0 10px;font-size:.92rem}}
/* Preguntas frecuentes */
.preguntas{max-width:var(--ancho);margin:0 auto;padding:72px 24px}
.preguntas h2{margin:0 0 24px}
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}
.faq details{border-top:1px solid rgba(0,71,60,.18);padding:16px 0}
.faq summary{cursor:pointer;font-weight:700;color:var(--bosque);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::after{content:"+";font-weight:400;font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq p{margin:10px 0 0}
@media (max-width:820px){.faq{grid-template-columns:1fr}.preguntas{padding:48px 16px}}
/* Botón de preguntas y chat */
.flotante.ayuda{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:8px;height:50px;padding:0 18px 0 14px;border:0;border-radius:999px;background:var(--bosque);color:#fff;font:700 1rem var(--fuente);cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.flotante.ayuda svg{width:24px;height:24px}
.flotante.ayuda:hover{background:#00362e}
@media (max-width:1080px){.flotante.ayuda{bottom:calc(152px + env(safe-area-inset-bottom,0px));width:58px;height:58px;padding:0;justify-content:center}.flotante.ayuda span{display:none}.flotante.ayuda svg{width:28px;height:28px}}
.chat{position:fixed;z-index:45;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(142px + env(safe-area-inset-bottom,0px));width:min(380px,calc(100% - 32px));max-height:min(560px,calc(100dvh - 170px));display:flex;flex-direction:column;background:#fff;border-radius:18px;box-shadow:0 18px 48px rgba(0,0,0,.25);overflow:hidden}
.chat[hidden]{display:none}
@media (max-width:1080px){.chat{right:16px;bottom:calc(222px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 250px)}}
.chat-cab{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bosque);color:#fff}
.chat-cab img{border-radius:6px;background:#fff;padding:2px}
.chat-cab p{margin:0;font-weight:700;flex:1}
.chat-cerrar{background:none;border:0;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;padding:0 4px}
.chat-cuerpo{padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;flex:1;min-height:80px}
.burbuja{margin:0;padding:10px 12px;border-radius:14px 14px 14px 4px;background:#eef3ee;color:var(--tinta);max-width:88%;font-size:.95rem;line-height:1.4}
.burbuja.yo{align-self:flex-end;border-radius:14px 14px 4px 14px;background:var(--lima)}
.chat-opciones{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-top:1px solid #e4ebe6;max-height:180px;overflow-y:auto}
.chat-opciones button{border:1px solid var(--bosque);background:#fff;color:var(--bosque);border-radius:999px;padding:6px 12px;font:600 .85rem var(--fuente);cursor:pointer;text-align:left}
.chat-opciones button:hover{background:var(--bosque);color:#fff}
.chat-wa{display:block;padding:12px 14px;text-align:center;background:#25d366;color:#fff;font-weight:700;text-decoration:none}
.chat-escribir{display:flex;gap:6px;padding:10px 14px;border-top:1px solid #e4ebe6}
.chat-escribir input{flex:1;min-width:0;border:1px solid #c9d6ce;border-radius:999px;padding:10px 14px;font:16px var(--fuente);color:var(--tinta)}
.chat-escribir input:focus{outline:2px solid var(--bosque);outline-offset:1px}
.chat-escribir button{border:0;border-radius:999px;background:var(--bosque);color:#fff;font:700 .9rem var(--fuente);padding:0 16px;cursor:pointer}
.chat-sin a{display:inline-block;margin-top:6px;color:var(--bosque);font-weight:700}
.chat-opciones{max-height:120px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.flotante.ayuda svg{width:26px;height:26px;overflow:visible}
/* Escritorio: chat más grande */
@media (min-width:1081px){.chat{width:460px;max-height:min(720px,calc(100dvh - 170px))}.chat-cuerpo{min-height:260px}.chat-opciones{max-height:170px}.burbuja{font-size:1rem}.chat-cab p{font-size:1.1rem}}
.faq[hidden]{display:none!important}
/* Galería de arte: una fila que pasa en bucle continuo, sin pausas */
.pared{display:block;overflow:hidden;padding:24px 0 34px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.pared-pista{display:flex;align-items:center;gap:clamp(14px,2.4vw,30px);width:max-content;animation:pared-bucle 45s linear infinite}
.pared-pista img,.pared-pista img:nth-child(n){flex:none;transform:none}
@keyframes pared-bucle{from{transform:translateX(0)}to{transform:translateX(calc(-50% - clamp(14px,2.4vw,30px) / 2))}}
/* Efectos discretos */
.cabecera{transition:box-shadow .3s}
.cabecera.con-sombra{box-shadow:0 8px 24px -12px rgba(0,0,0,.45)}
@media (prefers-reduced-motion:no-preference){
  .aparece{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.1,1) var(--retraso,0ms),transform .7s cubic-bezier(.2,.7,.1,1) var(--retraso,0ms)}
  .aparece.visto{opacity:1;transform:none}
  .platos img,.casa-grid img,.habitaciones img{transition:transform .6s cubic-bezier(.2,.7,.1,1),filter .6s}
  .platos figure,.casa-grid figure,.habitaciones figure{overflow:hidden}
  @media (hover:hover){.platos img:hover,.casa-grid img:hover,.habitaciones img:hover{transform:scale(1.04);filter:saturate(1.08)}}
  .boton{transition:transform .2s,box-shadow .2s,background-color .2s}
  @media (hover:hover){.boton:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px rgba(0,0,0,.4)}}
}
.cuadros{position:relative}
.pared-vel{display:block;margin:0 0 0 auto;min-width:56px;height:40px;padding:0 14px;border:2px solid var(--lima);border-radius:999px;background:transparent;color:var(--lima);font:700 1rem var(--fuente);cursor:pointer}
.pared-vel[aria-pressed="true"]{background:var(--lima);color:var(--tinta)}
.pared-vel:focus-visible{outline:3px solid #fff;outline-offset:2px}
/* Galería: pie de foto visible también en escritorio */
@media (min-width:1081px){.casa-grid figure{display:flex;flex-direction:column;overflow:visible}.casa-grid img{flex:1 1 auto;min-height:0;height:auto}.casa-grid figcaption{flex:none}}
@media (hover:hover){.casa-grid img:hover{transform:none;filter:saturate(1.08)}}
/* Galería: cafetería y terraza (antes en el pie) comparten la última fila en escritorio */
@media (min-width:1081px){.casa-grid .c5{grid-column:1/4}.casa-grid .c7{grid-column:4/7}.casa-grid .c5 img,.casa-grid .c7 img{aspect-ratio:4/3}}
.casa-grid .c7 img{aspect-ratio:4/3}
@media (min-width:1081px){.con-marco{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}}
@media (max-width:1080px){.casa-grid .c7{grid-column:1/-1}.casa-grid .c7 img{aspect-ratio:16/9}}
/* Escritorio: foto de portada completa, sin recortes */
@media (min-width:1081px){.portada-fotos .f1{height:auto;aspect-ratio:16/8.6;object-fit:cover;object-position:center 80%}}
/* Aviso si el formulario de reservas no carga */
.reserva-fallo{padding:20px;border-radius:var(--r-img);background:#fff4e6;border:1px solid #e8b97a;color:var(--tinta)}
.reserva-fallo[hidden]{display:none}
.reserva-fallo p{margin:0 0 14px}
.reserva-fallo .acciones{display:flex;flex-wrap:wrap;gap:10px}
/* Escritorio: fotos más pequeñas (mismas proporciones, sin recortes nuevos) */
@media (min-width:1081px){
  .portada-fotos{max-width:820px;margin-left:auto;margin-right:auto}
  .platos{max-width:1020px}
  .hab-fotos{max-width:700px}
  .casa-grid{max-width:1020px;margin-left:auto;margin-right:auto}
  .alr-foto.banda{max-width:1020px;height:auto;aspect-ratio:1344/468}
  .alrededores .alr-texto{margin-left:calc(max(0px,(100% - 1020px)/2) + 48px)}
}
@media (min-width:1081px){.alrededores .alr-texto{margin-top:-80px}}
/* Escritorio: portada con los textos a la izquierda (apilados) y la foto a la derecha, mediana y completa */
@keyframes sube-foto{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (min-width:1081px){
  .portada{grid-template-columns:minmax(0,1fr) minmax(0,min(640px,46vw))!important;align-items:center;min-height:0}
  .portada-texto{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:18px}
  .portada-texto>*{grid-column:auto!important;grid-row:auto!important;margin:0!important}
  .portada-texto>*{align-self:flex-start!important}
  .portada-texto .ubicacion{align-self:stretch!important;max-width:560px}
  .portada-texto h1{font-size:clamp(2.8rem,4.4vw,4.2rem)}
  .portada-fotos{grid-column:2;grid-row:1;order:0;max-width:none;margin:0;width:100%;display:block;overflow:visible;position:relative;z-index:auto;pointer-events:auto}
  .portada-fotos .f1{position:static;width:100%;height:auto;aspect-ratio:1024/683;object-fit:contain;object-position:center;opacity:1;-webkit-mask-image:none;mask-image:none;border-radius:var(--r-img)}
}
/* Cabecera: menú desplegable en TODOS los tamaños y título centrado (no afecta a las páginas legales) */
body:not(.legal) .cabecera{grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
body:not(.legal) .cabecera .menu{grid-column:1;grid-row:1;justify-self:start;position:relative}
body:not(.legal) .cabecera .marca{grid-column:2;grid-row:1;justify-self:center}
body:not(.legal) .cabecera .cab-der{grid-column:3;grid-row:1;justify-self:end}
.menu summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 16px 0 12px;border:1.5px solid rgba(255,255,255,.4);border-radius:999px;color:#fff;font:700 .95rem var(--fuente);cursor:pointer;user-select:none;-webkit-user-select:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary svg{width:22px;height:22px;flex:none}
.menu summary:hover,.menu[open] summary{border-color:var(--lima);color:var(--lima)}
.menu summary:focus-visible{outline:3px solid #fff;outline-offset:2px}
.cabecera .menu nav{display:block;position:absolute;top:calc(100% + 14px);left:0;z-index:30;min-width:250px;padding:8px;background:var(--bosque);border:1px solid rgba(255,255,255,.18);border-radius:16px;box-shadow:0 20px 44px rgba(0,0,0,.4)}
.cabecera .menu ul{display:flex;flex-direction:column;gap:2px;white-space:normal}
.cabecera .menu nav a{display:block;padding:13px 16px;border-radius:10px;color:#e3eee8;font-size:1rem;letter-spacing:0;text-transform:none;text-decoration:none}
.cabecera .menu nav a:hover,.cabecera .menu nav a:focus-visible{background:rgba(255,255,255,.1);color:var(--lima);text-decoration:none}
@media (max-width:700px){
  body:not(.legal) .cabecera{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding-left:12px;padding-right:12px}
  .menu summary{padding:0 11px;min-height:42px}
  .menu summary span{display:none}
  body:not(.legal) .cabecera .marca{justify-self:start;min-width:0}
  .cabecera .menu nav{min-width:min(280px,calc(100vw - 24px))}
}
@media (max-width:420px){
  .cab-der .boton{padding:0 10px!important;font-size:.82rem!important;min-height:38px!important}
  .cab-der{gap:4px!important}
  .idiomas a,.idiomas span{padding:4px 4px}
  .marca>span{font-size:.68rem!important;max-width:6.2em!important}
  .marca img{width:30px!important}
}
.cab-der .boton{white-space:nowrap}
