/* Common accessible controls and functional components; visual identities live separately. */
:root{color-scheme:light;--bg:#faf7f2;--ink:#343235;--muted:#68615d;--accent:#866a43;--line:#ddd4c8;--surface:#fff;--button:#79504f;--button-text:#fff;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button,input,textarea,select{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:5px}p,h1,h2,h3,h4{margin:0}p+p{margin-top:1em}h1,h2,h3{line-height:1.13;font-weight:400}h1,h2{font-family:var(--serif)}h2{font-size:clamp(35px,4vw,55px);letter-spacing:-1.8px}h3{font-size:23px}ul,ol{padding:0;margin:0}svg{display:block;width:24px;height:24px;flex-shrink:0}.wrap{width:calc(100% - 96px);max-width:1160px;margin-inline:auto}.eyebrow{display:block;font-size:10px;line-height:1.5;font-weight:600;letter-spacing:2.2px;text-transform:uppercase;color:var(--accent);margin-bottom:23px}.small-label{font-size:11px;font-weight:600;letter-spacing:.8px}.section-heading{margin-bottom:48px}.actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:32px}.button{min-height:50px;padding:14px 22px;border:1px solid var(--button);display:inline-flex;align-items:center;justify-content:center;gap:17px;background:var(--button);color:var(--button-text);font-size:12px;font-weight:600;letter-spacing:.3px;line-height:1.45;transition:background .2s,transform .2s,border-color .2s}.button svg{width:19px;height:19px}.button:hover{filter:brightness(.91);transform:translateY(-2px)}.button-secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button:disabled{opacity:.65;cursor:wait;transform:none}.text-link{display:inline-flex;align-items:center;gap:16px;border-bottom:1px solid currentColor;padding-bottom:6px;font-size:13px;font-weight:600}.text-link svg{width:18px}.text-button{padding:8px 0;background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;font-size:13px}.portrait{display:block;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}.original-logo{width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:18px;top:-100px;padding:12px 20px;background:var(--ink);color:var(--bg);z-index:100}.skip-link:focus{top:15px}.site-header{position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:94px;gap:25px}.brand{display:inline-flex;flex-shrink:0;line-height:1}.brand-name{font:39px/.85 var(--serif);letter-spacing:-1.5px}.brand-name>span{display:block;font:9px/1 var(--sans);letter-spacing:3.6px;margin-top:9px;padding-left:2px}.nav-links{display:flex;align-items:center;gap:30px}.nav-links>a:not(.button){font-size:12px;padding:13px 0;position:relative}.nav-links>a:not(.button)::after{content:'';position:absolute;left:0;right:100%;bottom:7px;height:1px;background:currentColor;transition:right .2s}.nav-links>a:hover::after{right:0}.nav-links .button{min-height:42px;padding:11px 17px;font-size:11px;gap:11px}.menu-toggle{display:none}.flexibility{list-style:none;display:flex;gap:25px;align-items:center;flex-wrap:wrap;font-size:11px;font-weight:500}.flexibility li{display:flex;align-items:center;gap:9px}.flexibility li::before{content:'';width:4px;height:4px;flex-shrink:0;background:var(--accent);border-radius:50%}.booking-section{padding:100px 0;background:#f0dfdc}.booking-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:85px;align-items:start}.booking-copy h2{max-width:450px}.booking-copy>p:not(.availability){margin-top:25px;max-width:380px;color:var(--muted);font-size:14px}.availability{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;margin-top:28px}.availability>span{width:6px;height:6px;background:currentColor;border-radius:50%;flex-shrink:0}.booking-aside{border-top:1px solid var(--line);margin-top:44px;padding-top:20px}.booking-aside p{font-size:12px;color:var(--muted);margin-top:8px;max-width:350px}.booking-panel{background:var(--surface);padding:35px}.booking-panel h3,.contact-form h3{font:28px/1.2 var(--serif);letter-spacing:-.6px}.panel-intro{font-size:12px;color:var(--muted);margin-top:9px;margin-bottom:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 16px}.field{min-width:0}.field-full{grid-column:1/-1}.field label{display:block;font-size:11px;font-weight:600;margin-bottom:7px;line-height:1.5}.field label>span:not(.consent-label span){font-weight:400}.field input:not([type=checkbox]),.field select,.field textarea{display:block;width:100%;min-height:45px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:0;padding:11px 12px;color:var(--ink);font-size:13px;transition:border-color .2s}.field textarea{resize:vertical;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8}.field small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:6px}.field .consent-label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-weight:400;font-size:11px;margin:0}.consent-label input{accent-color:var(--button);flex-shrink:0;width:17px;height:17px;margin:1px 0 0}.field-error{font-size:11px;color:#9e2936;line-height:1.5;display:block;margin-top:3px}.field-error:empty{display:none}[aria-invalid=true]{border-color:#9e2936!important}.submit-row{display:flex;align-items:center;gap:16px;margin-top:24px}.form-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:16px}.form-status{font-size:13px;line-height:1.6;margin-top:15px}.form-status:empty{display:none}.form-status[data-state=error]{padding:12px;border-left:3px solid #9e2936;background:#fff1f0;color:#7d202b}.form-status[data-state=success]{padding:12px;border-left:3px solid #305e40;background:#edf4eb;color:#23432f}.connection-note{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:17px}.connection-note a{text-decoration:underline;text-underline-offset:3px}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-section{padding:105px 0;background:var(--bg)}.contact-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:85px}.contact-copy>p{max-width:365px;margin-top:22px;color:var(--muted);font-size:14px}.contact-details{margin-top:35px}.contact-details>div{margin-top:21px}.contact-details dt{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.contact-details dd{margin:0;font-size:14px;overflow-wrap:anywhere}.contact-details a:hover{text-decoration:underline;text-underline-offset:4px}.contact-form{min-width:0}.site-footer{padding:45px 0 25px;border-top:1px solid var(--line)}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:35px;gap:24px}.footer-statement{font:26px/1.3 var(--serif);letter-spacing:-.5px}.back-top{font-size:11px;display:flex;gap:18px;align-items:center;min-height:44px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.footer-bottom>div{display:flex;flex-wrap:wrap;gap:23px}.footer-bottom a{min-height:25px;display:inline-flex;align-items:center;overflow-wrap:anywhere}.concept-switcher{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;background:#fff;color:#292e33;border:1px solid #d8d4cd;box-shadow:0 4px 24px #00000012;border-radius:40px;z-index:50;padding:4px 5px 4px 13px;gap:11px;font:11px/1.2 Arial,sans-serif;white-space:nowrap}.switcher-home{display:flex;align-items:center;gap:6px;min-height:36px}.concept-switcher>div{display:flex;gap:3px}.concept-switcher>div>a{min-width:34px;min-height:34px;display:grid;place-items:center;border-radius:50%;color:#666}.concept-switcher [aria-current=page]{background:#292e33;color:#fff}.concept-switcher button{background:none;border:0;border-left:1px solid #ddd;width:28px;height:28px;font-size:18px;color:#555}.preview-mode .concept-switcher{display:none}.booking-dialog{width:min(900px,calc(100% - 30px));max-height:calc(100dvh - 40px);border:0;padding:24px;background:var(--bg);color:var(--ink)}.booking-dialog::backdrop{background:#171c20aa}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.dialog-top h2{font-size:25px;letter-spacing:-.7px}.dialog-close{width:42px;height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:25px}.booking-dialog iframe{display:block;width:100%;height:min(650px,65dvh);border:1px solid var(--line);background:#fff}.booking-dialog>p{font-size:12px;margin-top:14px}.booking-dialog>p a{text-decoration:underline}.reveal{animation:enter-gentle .8s both}.reveal:nth-child(2){animation-delay:.12s}@keyframes enter-gentle{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}[hidden]{display:none!important}
@media(min-width:1600px){.wrap{max-width:1300px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.nav-links{gap:22px}.booking-layout,.contact-layout{gap:45px}.booking-panel{padding:28px}.footer-bottom{align-items:flex-start}.footer-bottom>div{justify-content:flex-end;gap:12px 18px}}
@media(max-width:760px){html{scroll-padding-top:86px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:79px}.brand-name{font-size:33px}.brand-name>span{font-size:8px;letter-spacing:3px}.menu-toggle{display:flex;align-items:center;gap:12px;min-width:70px;min-height:44px;padding:10px 0 10px 12px;border:0;background:transparent;color:inherit;font-size:11px}.menu-lines{width:20px;height:12px;position:relative;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] .menu-lines{transform:rotate(-45deg);height:0;border-bottom:0}.menu-toggle[aria-expanded=true] .menu-lines::after{content:'';position:absolute;width:20px;top:-1px;left:0;border-top:1px solid currentColor;transform:rotate(90deg)}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;align-items:stretch;gap:3px;padding:15px 20px 25px;background:var(--bg);color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 9px 12px #00000008}.nav-links.is-open{display:flex;flex-direction:column;animation:enter-gentle .2s both}.nav-links>a:not(.button){padding:12px 0;font-size:14px}.nav-links .button{margin-top:8px;min-height:48px}.nav-links>a:not(.button)::after{display:none}.booking-section,.contact-section{padding:70px 0}.booking-layout,.contact-layout{grid-template-columns:1fr;gap:38px}.booking-copy h2{max-width:500px}.booking-copy>p:not(.availability),.contact-copy>p{max-width:500px}.booking-aside{margin-top:25px}.booking-panel{padding:25px}.footer-top{flex-wrap:wrap;gap:26px}.footer-statement{font-size:23px}.footer-bottom{flex-direction:column;gap:12px;padding-bottom:55px}.footer-bottom>div{justify-content:flex-start;gap:6px 18px}.footer-bottom a{min-height:30px}.site-footer{padding-top:32px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.contact-details>div{min-width:0}.contact-details>div:nth-child(2){grid-column:1/-1;grid-row:2}.contact-details dd{font-size:13px}.booking-dialog{padding:18px}.booking-dialog iframe{height:65dvh}.dialog-top h2{font-size:22px}}
@media(max-width:400px){.form-grid{grid-template-columns:1fr}.booking-panel{padding:20px}.actions{gap:10px}.button{padding:13px 18px;font-size:11px}.footer-top .back-top{width:100%}.flexibility{gap:12px 18px;font-size:10px}h2{font-size:34px;letter-spacing:-1.1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover{transform:none}}
@media print{.site-header,.concept-switcher,.booking-dialog,.menu-toggle{display:none!important}body{background:white;color:black}section{break-inside:avoid}.reveal{animation:none}a{text-decoration:underline}.booking-section,.contact-section{padding:30px 0}}

/* Original illustrated logo, shared across the site headers and footers. */
.brand-logo{display:block;width:150px;max-width:100%;height:auto;object-fit:contain;background:#fff}
@media(max-width:760px){.brand-logo{width:120px}}
