/* v3 accessibility and visual refinements — shared across public pages. */
:root{--accent-text:#775621}
:root.font-standard{font-size:16px}
:root.font-comfortable{font-size:18px}
:root.font-large{font-size:20px}
body{overflow-x:hidden}
.eyebrow{font-size:max(.82rem,14px);color:var(--accent-text);letter-spacing:.12em}
.hero .eyebrow,.business-hero .eyebrow{color:#f6d99c}
.brand small{font-size:.72rem;letter-spacing:.1em;margin-top:-1px}
.card-meta,.admin-small,.small,.hint,.key,.price span{font-size:clamp(14px,.85rem,18px)}
.badge{font-size:14px}
label{font-size:clamp(15px,.9rem,18px)}
input,select,textarea,button{font-family:inherit}
button,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
input,select,textarea{min-width:0;max-width:100%}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.form-row>*{min-width:0}
.contact-form input,.contact-form select,.booking-form input,.booking-form select{height:52px;min-height:52px}
.contact-form textarea,.booking-form textarea{min-height:130px}
.contact-form{border-radius:14px}
.site-header{background:var(--paper)}
.site-header nav{gap:clamp(12px,1.8vw,30px)}
.site-header nav a{font-size:clamp(15px,.9rem,18px)}
.nav-cta{color:#fff!important}
.hero-card{border-radius:12px}
.site-footer{display:block;padding:0;background:var(--green);color:#fff}
.footer-layout{max-width:1400px;margin:auto;padding:clamp(42px,5vw,85px) 5vw;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(170px,1fr) minmax(230px,1fr);gap:clamp(25px,5vw,75px);align-items:start}
.footer-column p,.footer-contact p{color:rgba(255,255,255,.85);font-size:1rem;margin:14px 0;max-width:340px}
.footer-title{font:600 clamp(1.65rem,2.5vw,2.2rem) 'Playfair Display',serif;line-height:1.2}
.site-footer .footer-links{display:flex;flex-direction:column;align-items:start;gap:12px;position:static;background:none;box-shadow:none;padding:0}
.site-footer a{color:#fff;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.site-footer a:hover{text-decoration-thickness:2px}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-contact strong{font-size:1.12rem}
.footer-contact .footer-phone{margin-top:8px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.22);padding:19px 5vw;text-align:center;font-size:.9rem;color:rgba(255,255,255,.9)}
.contact-call{display:inline-flex;color:var(--green);font-weight:700;font-size:1rem;margin:14px 0;text-underline-offset:4px}
.site-header .public-phone-link{white-space:nowrap;font-size:.9rem}
/* Guest gallery: photos are interactive and accessible, not ordinary bare images. */
.stay-gallery{min-width:0}
.stay-gallery.gallery-single{grid-template-columns:1fr}
.stay-gallery.gallery-two{grid-template-columns:2fr 1fr}
.stay-gallery .gallery-item{position:relative;display:block;border:0;border-radius:0;padding:0;cursor:zoom-in;background:var(--cream);min-width:0;min-height:0;overflow:hidden}
.stay-gallery .gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.stay-gallery .gallery-item:hover img{transform:scale(1.035)}
.stay-gallery .gallery-item:nth-child(n+4){display:none}
.gallery-count{position:absolute;right:14px;bottom:14px;padding:10px 13px;border-radius:6px;color:#fff;background:rgba(13,30,23,.82);font-size:.9rem;font-weight:700}
.photo-lightbox{position:fixed;inset:0;border:0;width:min(1080px,96vw);max-height:95vh;border-radius:16px;padding:18px 18px 14px;background:#141a16;color:#fff;box-shadow:0 22px 100px #0008}
.photo-lightbox::backdrop{background:rgba(0,0,0,.86)}
.photo-lightbox .viewer-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}
.photo-lightbox .viewer-close{background:#fff;color:#182920;border:0;border-radius:40px;padding:10px 20px;font-weight:700;cursor:pointer}
.photo-lightbox .viewer-body{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:12px}
.photo-lightbox .viewer-body img{width:100%;height:min(72vh,780px);object-fit:contain;min-width:0}
.photo-lightbox .viewer-arrow{border:1px solid #eee5;background:#fff2;color:#fff;padding:15px 10px;border-radius:9px;font-size:1.5rem;cursor:pointer}
.photo-lightbox .viewer-caption{text-align:center;font-size:.95rem;margin:10px 0 0;color:#e4e9e4}
/* General polish and spacing */
.page-container h1,.admin-card h2{overflow-wrap:anywhere}
.form-status{min-height:24px}
@media(max-width:900px){.footer-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header nav.mobile-open{background:var(--paper)}.site-header nav a{white-space:normal}}
@media(max-width:650px){:root.font-standard{font-size:16px}:root.font-comfortable{font-size:17px}:root.font-large{font-size:19px}.form-row{grid-template-columns:1fr}.footer-layout{grid-template-columns:1fr;padding:42px 6vw}.site-footer .footer-links{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}.stay-gallery{height:270px}.photo-lightbox{padding:12px;width:99vw}.photo-lightbox .viewer-body{grid-template-columns:40px minmax(0,1fr) 40px;gap:5px}.photo-lightbox .viewer-arrow{padding:9px 5px}.photo-lightbox .viewer-body img{height:65vh}.hero{min-height:560px}}
.arrival-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.arrival-details>div{padding:16px;background:var(--cream);border-radius:9px}.arrival-details p{margin:5px 0 0;white-space:pre-line}.alternative-links{display:grid;gap:9px;margin-top:18px}.alternative-links a{font-weight:700;color:var(--green)}
.footer-socials{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
@media(max-width:650px){.arrival-details{grid-template-columns:1fr}}
