:root{--guest-ink:#17342d;--guest-cream:#f5f1e8;--guest-line:#dce2dc;--guest-muted:#53675e;--guest-accent:#167d73}
.guest-button{display:inline-flex;justify-content:center;align-items:center;gap:20px;background:var(--guest-ink);color:#fff!important;border:1px solid var(--guest-ink);border-radius:30px;padding:15px 23px;text-decoration:none;font:700 14px Arial,sans-serif;min-height:48px}
.guest-button:hover{background:#295448}
.guest-footer{box-sizing:border-box;display:flex;justify-content:space-between;align-items:start;gap:24px;padding:36px clamp(20px,5vw,76px);background:var(--guest-cream);color:var(--guest-ink);font:14px/1.6 Arial,sans-serif;border-top:1px solid var(--guest-line)}
.guest-footer p{margin:7px 0 0;max-width:450px;color:var(--guest-muted)}
.guest-footer nav{display:flex;gap:12px 24px;flex-wrap:wrap}
.guest-footer a{color:var(--guest-ink);text-underline-offset:5px}
.price-caption{font:12px/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em}
:is(.stay-page,.booking-page,.payment-page,.holder-page,.home-page) :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #0d9586;outline-offset:4px}
.stay-page:not(.editing){background:var(--guest-cream);color:var(--guest-ink)}
.stay-page:not(.editing) .barra{position:relative;background:var(--guest-cream);padding:20px clamp(20px,5vw,76px);gap:16px;min-height:88px;border:0}
.stay-page:not(.editing) .barra .n14{font:24px/1.2 Georgia,serif!important;color:var(--guest-ink)!important;max-width:34%}
.stay-page:not(.editing) .barra a{font:700 12px/1.5 Arial,sans-serif;color:var(--guest-ink);padding:8px 0}
.stay-page:not(.editing) .barra [data-el=nav_reservar]{padding:11px 20px;background:var(--guest-ink);color:white;border-radius:24px}
.stay-page:not(.editing) .zona1{height:auto;min-height:660px;display:flex;background:#17342d}
.stay-page:not(.editing) .zona1:after{background:linear-gradient(90deg,rgba(0,0,0,.32),rgba(0,0,0,.10) 45%,transparent 72%)}
.stay-page:not(.editing) .centro{height:auto;min-height:660px;padding:70px clamp(24px,7vw,100px) 46px;justify-content:center;gap:0}
.stay-kicker{font:12px/1.6 Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;margin:0 0 18px;color:#fff}
.stay-title{font:400 clamp(38px,5.3vw,72px)/1.05 Georgia,serif;letter-spacing:-.035em;max-width:850px;color:#fff;margin:0 0 24px;text-wrap:balance}
.stay-page:not(.editing) .n15{font:400 clamp(24px,2.5vw,34px)/1.2 Georgia,serif!important;color:#fff!important;max-width:720px;width:auto;text-decoration:none!important}
.stay-page:not(.editing) :is(.n16,.n17){font:400 17px/1.5 Arial,sans-serif!important;color:#fff!important;max-width:640px;text-decoration:none!important;margin-top:12px}
.stay-page:not(.editing) .datos{font:15px/1.6 Arial,sans-serif!important;color:#fff!important;margin-top:28px;gap:10px}
.stay-page:not(.editing) .caracteristicas-destacadas{max-width:700px!important}
.stay-booking{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:30px;color:white;font:14px Arial,sans-serif}
.stay-booking strong{font:32px Georgia,serif}.stay-booking small{display:block;font:12px/1.5 Arial,sans-serif;margin-top:6px;max-width:280px;color:#e7eee8}
.stay-booking .guest-button{background:var(--guest-cream);border-color:var(--guest-cream);color:var(--guest-ink)!important}
.stay-page:not(.editing) .zona2{background:var(--guest-cream);grid-template-columns:1fr 1fr;min-height:520px}
.stay-page:not(.editing) .z2-fotos{height:100%;min-height:520px}
.stay-page:not(.editing) .z2-texto{padding:54px clamp(24px,5vw,72px);gap:16px}
.stay-page:not(.editing) .z2-texto :is(.etiqueta,.pregunta,.h2,.p){color:var(--guest-ink)!important;max-width:100%;margin:0}
.stay-page:not(.editing) .z2-texto .etiqueta{font:700 12px/1.5 Arial,sans-serif!important;text-transform:uppercase;letter-spacing:.12em}
.stay-page:not(.editing) .z2-texto .pregunta{font:400 clamp(26px,2.6vw,36px)/1.2 Georgia,serif!important}
.stay-page:not(.editing) .z2-texto :is(.h2,.p){font:400 16px/1.7 Arial,sans-serif!important}
.stay-page:not(.editing) .zona3{padding:54px clamp(20px,5vw,76px);background:#fff}
.stay-page:not(.editing) .z3-text{font:400 18px/1.6 Arial,sans-serif!important;color:var(--guest-ink)!important}
.z3-open{position:absolute;inset:0;z-index:2;border:0;background:transparent;cursor:pointer;width:100%;height:100%;border-radius:9px}
.z3-open:focus-visible{outline-offset:-5px!important}.z3-card-title{pointer-events:none;padding-right:62px}.z3-flechas{pointer-events:none}.z3-flechas button{pointer-events:auto}
.z3-caption{white-space:normal!important;text-align:center;max-width:100%;width:max-content;line-height:1.5}
.booking-page,.payment-page,.holder-page{background:var(--guest-cream);color:var(--guest-ink)}
.booking-page .wrap{max-width:1320px;padding:28px}
.booking-page .top{gap:18px;flex-wrap:wrap;line-height:1.5}
.booking-page .reserva-real{border:1px solid var(--guest-line);border-radius:20px;box-shadow:0 14px 35px rgba(23,52,45,.05)}
.booking-page .reserva-grid{grid-template-columns:minmax(250px,.7fr) minmax(0,1.5fr);min-height:0}
.booking-page .reserva-alojamiento{min-width:0;background:#f9f7f1;padding:26px}
.booking-property-name h2{font:400 28px/1.2 Georgia,serif!important;color:var(--guest-ink);margin:7px 0 10px!important}
.booking-page .reserva-foto{height:260px;aspect-ratio:4/3;border:0;border-radius:12px;margin-top:8px}
.booking-property-details{margin-top:16px}.booking-property-details summary{font:700 13px/1.5 Arial,sans-serif;cursor:pointer;color:var(--guest-ink);padding:8px 0}
.booking-page .reserva-formulario{padding:28px;min-width:0}
.booking-page .reserva-title{font:400 36px/1.15 Georgia,serif;color:var(--guest-ink);margin:0 0 10px}
.booking-page .reserva-sub{font-size:14px;line-height:1.5;color:var(--guest-muted)}
.booking-page .cal-reserva-row{grid-template-columns:1fr 1fr;gap:12px}
.booking-page .leyenda-estancia{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;background:#f8faf7;padding:12px;font-size:12px;line-height:1.6}
.booking-page .leyenda-estancia .leyenda-box{display:inline-flex;margin-right:9px;align-items:center;gap:5px}
.booking-page .cal-nav button{background:var(--guest-ink);min-height:38px;border-radius:8px}
.booking-page .cal-dia{min-height:38px}.booking-page .cal-dia.cal-sel{background:var(--guest-ink)}
.booking-page :is(input,select){border-radius:8px}.booking-page .seccion-reserva h3{color:var(--guest-ink)}
.booking-page .acciones-reserva button,.payment-page .btn,.holder-page .btn{background:var(--guest-ink);border-color:var(--guest-ink);border-radius:26px;min-height:46px}
.booking-page .acciones-reserva .btn-sec{background:white;color:var(--guest-ink);border:1px solid var(--guest-line)}
.booking-page .acciones-reserva button:disabled{opacity:.5;cursor:not-allowed}
.payment-page .title,.holder-page .title{font-family:Georgia,serif;font-weight:400;color:var(--guest-ink)}
@media(max-width:850px){
 .guest-footer{flex-direction:column}
 .stay-page:not(.editing) .barra{padding:16px 22px;gap:12px}
 .stay-page:not(.editing) .barra .n14{flex-basis:100%;max-width:none;font-size:22px!important}
 .stay-page:not(.editing) .barra .otros{margin-left:0;gap:14px}
 .stay-page:not(.editing) .zona2{grid-template-columns:1fr}
 .stay-page:not(.editing) .z2-fotos{height:360px;min-height:0}
 .stay-page:not(.editing) .z2-texto{padding:34px 24px}
 .stay-page:not(.editing) .zona1,.stay-page:not(.editing) .centro{min-height:560px}
 .stay-page:not(.editing) .centro{padding:42px 24px}
 .stay-page:not(.editing) .zona1:after{background:linear-gradient(90deg,rgba(0,0,0,.30),rgba(0,0,0,.08))}
 .stay-page:not(.editing) .z3-head{grid-template-columns:1fr}
 .stay-page:not(.editing) .z3-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .booking-page .wrap{padding:16px}
 .booking-page .reserva-grid{grid-template-columns:1fr}
 .booking-page .reserva-alojamiento{display:grid;grid-template-columns:1fr 80px;gap:0 12px;align-items:center;padding:18px;border-right:0;border-bottom:1px solid var(--guest-line)}
 .booking-property-name h2{font-size:23px!important}.booking-property-name .reserva-sub{margin-bottom:0}
 .booking-page .reserva-foto{width:80px;height:80px;grid-column:2;grid-row:1;margin:0}
 .booking-property-details{grid-column:1/-1;margin-top:4px}
 .booking-page .reserva-formulario{padding:20px}
 .booking-page .reserva-title{font-size:30px}
}
@media(max-width:520px){
 .stay-title{font-size:40px}.stay-kicker{font-size:10px;margin-bottom:14px}
 .stay-page:not(.editing) .n15{font-size:25px!important}
 .stay-page:not(.editing) :is(.n16,.n17){font-size:15px!important}
 .stay-booking{gap:18px;width:100%}.stay-booking .guest-button{width:100%;box-sizing:border-box}
 .stay-page:not(.editing) .barra{gap:8px 14px}.stay-page:not(.editing) .barra a{font-size:11px}
 .stay-page:not(.editing) .z3-card-title{font-size:16px;padding-right:0;bottom:50px;left:10px}.stay-page:not(.editing) .z3-card{aspect-ratio:1.15}
 .booking-page .wrap{padding:12px}.booking-page .reserva-formulario{padding:16px}
 .booking-page .cal-reserva-row{grid-template-columns:minmax(0,1fr)}
 .booking-page .leyenda-estancia{flex-direction:column;gap:8px}
 .booking-page .reserva-title{font-size:28px}
 .booking-page .mini-cal{padding:12px}.booking-page .cal-dia{min-height:36px}
 .guest-footer nav{gap:12px 18px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.stay,.stay-photo,.stay-button span{transition:none!important}}

/* Contraste localizado en las letras, sin teñir la fotografía. */
.stay-page:not(.editing) :is(.stay-title,.stay-kicker,.n15,.n16,.n17,.datos,.stay-booking>div){text-shadow:0 1px 3px rgba(0,0,0,.85),0 2px 10px rgba(0,0,0,.4)}

/* Portada despejada: reserva en la navegación y contenido situado más abajo. */
.stay-page:not(.editing) .centro{justify-content:flex-end;padding-top:150px;padding-bottom:66px}
.stay-page:not(.editing) .stay-title{margin-bottom:34px}
.stay-page:not(.editing) .datos{margin-top:48px}
.stay-page:not(.editing) .caracteristicas-destacadas{margin-top:24px!important;gap:12px!important}
@media(max-width:850px){
 .stay-page:not(.editing) .centro{padding-top:110px;padding-bottom:42px}
 .stay-page:not(.editing) .stay-title{margin-bottom:28px}
 .stay-page:not(.editing) .datos{margin-top:34px}
 .stay-page:not(.editing) .caracteristicas-destacadas{margin-top:20px!important}
}

/* Acciones principales legibles, sin cambiar enlaces secundarios. */
.stay-page:not(.editing) .barra a[data-el="nav_comentarios"],.stay-page:not(.editing) .barra a[data-el="nav_reservar"],.stay-page:not(.editing) .barra a[href^="/contactos.php"]{font-size:16px;min-height:44px;padding:10px 14px;display:inline-flex;align-items:center;text-transform:none}
.stay-page:not(.editing) .barra{flex-wrap:wrap}

/* Navegacion principal uniforme en las fichas publicas. */
.stay-page:not(.editing) .barra .otros a,
.stay-page:not(.editing) .barra a[data-el="nav_comentarios"],
.stay-page:not(.editing) .barra a[href^="/contactos.php"],
.stay-page:not(.editing) .barra a[data-el="nav_reservar"] {
 font:600 18px/24px Arial,sans-serif;
 display:inline-flex;align-items:center;justify-content:center;
 min-height:44px;box-sizing:border-box;padding:10px 8px;
 text-transform:none;white-space:nowrap;text-decoration:none;
}
.stay-page:not(.editing) .barra .otros {gap:16px;}
.stay-page:not(.editing) .barra a[data-el="nav_reservar"] {padding-inline:20px;}
.stay-page:not(.editing) .barra a:focus-visible {outline:2px solid currentColor;outline-offset:4px;}

/* Transicion compacta entre experiencia y galeria. */
.stay-page:not(.editing) .zona3 {padding-top:28px;}
.stay-page:not(.editing) .z3-head {margin-bottom:20px;row-gap:12px;}
.stay-page:not(.editing) .z3-text {margin-bottom:0;}
.stay-page:not(.editing) .z3-left .z3-text:nth-child(n+2) {margin-top:8px;}

/* Cierre compacto de la galeria y las opiniones. */
.stay-page:not(.editing) .zona3 {padding-bottom:24px;}
.stay-page:not(.editing) .cp-section {padding-top:20px!important;padding-bottom:28px!important;}
.stay-page:not(.editing) .cp-section h2 {margin:0 0 14px;}
.stay-page:not(.editing) .cp-section p {margin:0 0 16px;}
