/* Functional additions, using the approved palette and type system. */
.header-actions{flex-wrap:nowrap;justify-content:flex-end;gap:26px}
.language-switch{position:relative;flex:none;width:44px}
.language-switch summary{display:flex;gap:7px;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:13px;line-height:1;list-style:none;cursor:pointer}
.language-switch summary::-webkit-details-marker{display:none}
.language-switch summary::after{content:'';width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.language-switch[open] summary::after{transform:translateY(1px) rotate(225deg)}
.language-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.language-options{position:absolute;top:100%;right:0;min-width:140px;padding:6px 0;background:#FAF8F3;color:#22466B;border:1px solid #22466b30;z-index:2}
.language-options a{display:flex;align-items:center;min-height:44px;padding:0 18px;font-size:14px;line-height:1.3;text-decoration:none;white-space:nowrap}
.language-options a:hover,.language-options a:focus-visible{background:#E3C489}
.language-switch summary:focus-visible,.language-options a:focus-visible{outline:2px solid currentColor;outline-offset:-3px}
#menu-dialog .language-switch{grid-column:1/-1;margin-top:18px}
#menu-dialog .language-options{display:block;left:0;right:auto;padding:6px 0}
#menu-dialog .language-options a{font:400 16px/1.3 'Barlow',sans-serif;text-transform:none;border:0;padding:0 18px;min-height:44px}
.booking-strip{width:min(920px,100%);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr) 80px}
@media(min-width:768px) and (max-width:1050px){.booking-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr) 65px}}
.booking-destination strong,.booking-strip strong[data-stay-dates],.booking-strip strong[data-stay-occupancy]{font:inherit;display:block;line-height:1.35}
.booking-strip button{min-width:0;overflow-wrap:anywhere}
.booking-strip [data-stay-dates]{font-size:15px}
.booking-strip [data-stay-occupancy]{font-size:14px}
.mobile-book p{max-width:calc(100% - 110px)}
.mobile-book [data-stay-mobile]{font-size:12px;line-height:1.25}
.general-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:80px}
.general-gallery button{min-width:0;background:transparent;border:0;padding:0}
.general-gallery img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover}
.gallery-controls{display:flex;justify-content:center;gap:22px;align-items:center;padding:10px}
.gallery-controls button{background:var(--blue,#22466B);color:var(--cream,#FAF8F3);border:0;min-width:48px;min-height:48px;font:inherit}
.lightbox{max-height:94dvh;overflow:auto}
.lightbox>img{width:100%;height:auto;max-height:calc(90dvh - 155px);object-fit:contain;touch-action:pan-y}
.lightbox .dialog-head{align-items:center}
.lightbox #photo-title{max-width:calc(100% - 50px);font-size:16px;line-height:1.4}
.sitemap-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:80px}
#consent-dialog{max-width:620px;width:calc(100% - 32px);border:0;background:#FAF8F3;color:#22466B;max-height:90dvh}
#consent-dialog h2{font-size:28px}
#consent-form{display:grid;gap:18px}
#consent-form label{display:flex;align-items:center;gap:12px;min-height:44px}
#consent-form input{width:22px;height:22px;accent-color:#22466B}
#consent-form .text-link,.footer-bottom button{background:transparent;border:0;color:inherit;font:inherit;cursor:pointer}
.footer-bottom button{min-height:44px;text-align:left}
#booking-error:focus-visible{outline:2px solid #22466B;outline-offset:4px}
.header-actions .language-switch{order:-1}
@media(max-width:1050px){.header-actions{gap:14px}}
@media(max-width:767px){.header-actions .language-switch{position:absolute;left:36px;top:16px}.header-actions .language-options{left:0;right:auto}}
@media(max-width:700px){.general-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sitemap-links{grid-template-columns:1fr}.menu-dialog nav>a{font-size:clamp(20px,6vw,30px)}.gallery-controls{gap:16px}.lightbox .dialog-head{padding:12px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:calas-dialog-in .18s ease-out}@keyframes calas-dialog-in{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}

/* Diego, 16 September: dates and occupancy remain available on every page. */
body{padding-bottom:var(--booking-dock-height,82px)}
.booking-dock{position:fixed;inset:auto 0 0;z-index:30;background:var(--cream,#FAF8F3);color:var(--blue,#22466B);border-top:1px solid rgba(34,70,107,.22);padding:10px 24px calc(10px + env(safe-area-inset-bottom,0px))}
.booking-dock-inner{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1.15fr 1.4fr 148px;align-items:stretch;gap:0}
.booking-dock-inner>button,.booking-dock-destination{min-width:0;text-align:left;padding:6px 24px;background:none;border:0;border-right:1px solid rgba(34,70,107,.2);color:inherit;font:inherit}
.booking-dock-inner>button{cursor:pointer}
.booking-dock span,.booking-dock strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.booking-dock span{font-size:12px;line-height:1.5}
.booking-dock strong{font-size:16px;line-height:1.5;font-weight:500}
.booking-dock .booking-dock-action{background:var(--sand,#E3C489);border:0;display:grid;place-items:center;padding:0;margin-left:12px;min-height:52px}
.booking-dock-action span{font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.02em}
.booking-dock button:hover{background:#EDE9DF}
.booking-dock .booking-dock-action:hover{background:#d7b676}
.booking-dock button:focus-visible{outline:2px solid #22466B;outline-offset:-3px}
.about-calas{scroll-margin-top:50px}
.about-purpose{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:56px}
.about-purpose h3,.about-values h3,.about-stays h3{font-family:'Barlow Condensed',sans-serif;font-size:30px;font-weight:500;margin-bottom:18px}
.about-purpose p,.about-values p,.about-stays p{font-size:18px;line-height:1.65}
.about-values{border-block:1px solid rgba(34,70,107,.2);padding:32px 0;margin:40px 0}
.about-stays{max-width:820px}
.about-stays p{margin-bottom:20px}
@media(max-width:1000px){.section-nav{gap:24px}.booking-dock-inner{grid-template-columns:1fr 1.3fr 132px}.booking-dock-destination{display:none}}
@media(max-width:767px){body{padding-bottom:var(--booking-dock-height,78px)}.review-bar{margin-bottom:0}.booking-dock{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}.booking-dock-inner{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 88px}.booking-dock-inner>button{padding:6px 8px;min-height:60px}.booking-dock strong{font-size:14px}.booking-dock span{font-size:11px}.booking-dock .booking-dock-action{min-height:52px;margin-left:8px;padding:0}.booking-dock-action span{font-size:12px}.about-calas{scroll-margin-top:20px}.about-purpose{grid-template-columns:1fr;gap:28px;margin-top:32px}.about-purpose p,.about-values p,.about-stays p{font-size:17px}}

/* Funding disclosure: original institutional artwork on white, without recolouring. */
.funding-notice{background:#fff;color:#22466B;padding:64px 0;scroll-margin-top:32px;border-top:1px solid #22466b20}
.funding-notice h2{font:500 clamp(26px,3vw,38px)/1.2 'Barlow Condensed',sans-serif;max-width:760px;margin:0 0 28px}
.funding-copy{max-width:1000px;font-size:16px;line-height:1.7}
.funding-copy p{margin:0 0 20px}
/* Compact funding signatures. Keep the EU flag around 40 CSS px high. */
.funding-logos{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;max-width:548px;margin-top:18px}
.funding-logo{position:relative;overflow:hidden;height:56px;flex:0 0 auto}
.funding-logo-eu{width:180px}
.funding-logo-prtr{width:164px}
.funding-logo-gobierno{width:172px}
/* Centre the visible artwork, compensating for the original white margins. */
.funding-logo img{position:absolute;top:50%;left:0;width:384.2294%;height:auto;max-width:none;display:block;transform:translateY(-57.8616%)}
.funding-logo-prtr img{width:376.1404%;transform:translate(-26.1194%,-53.4591%)}
.funding-logo-gobierno img{width:211.8577%;transform:translate(-52.7985%,-44.9686%)}
@media(max-width:700px){.funding-notice{padding:40px 0}.funding-copy{font-size:15px;line-height:1.7}.funding-logos{gap:8px 6px;margin-top:16px}}

/* The persistent selector has one position: the bottom of the viewport. */
.site-header{z-index:40}

@media(max-width:767px){.booking-dock span,.booking-dock strong{white-space:normal;overflow:visible;text-overflow:clip}.booking-dock strong{font-size:13px;line-height:1.3}}
