:root{--ink:#292b28;--cream:#f5f3ed;--gold:#e4bd58;--muted:#71736d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font:16px/1.65 Arial,sans-serif;background:#fff}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #8c651c;outline-offset:5px}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:24px}.brand{font:32px/1.1 Georgia,serif;letter-spacing:6px}.brand span{display:block;font:9px/2.4 Arial,sans-serif;letter-spacing:2px}nav{display:flex;gap:32px;font-size:14px}.button{display:inline-flex;gap:42px;justify-content:space-between;align-items:center;background:var(--gold);padding:15px 26px;font-size:14px;font-weight:bold}.small{padding:11px 22px}.hero{position:relative;min-height:650px;height:72vh;max-height:850px;color:white;margin:0 20px}.hero>img,.shade{position:absolute;width:100%;height:100%;object-fit:cover}.shade{background:linear-gradient(90deg,rgba(15,22,17,.78),rgba(15,22,17,.08))}.hero-copy{position:relative;padding:110px 6%;max-width:850px}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:bold}h1{font:clamp(40px,4.4vw,68px)/1.12 Georgia,serif;margin:24px 0}h2{font:clamp(32px,3vw,47px)/1.16 Georgia,serif;margin:18px 0 28px}p{color:var(--muted)}.hero p{color:#f0f0e9;margin-bottom:30px}.hero .button{color:var(--ink)}.hero-foot{position:absolute;bottom:24px;left:6%;font-size:10px;letter-spacing:2px}.facts{display:grid;grid-template-columns:repeat(4,1fr);max-width:1240px;margin:0 auto;padding:40px 0;border-bottom:1px solid #ddd}.facts div{padding:0 25px;border-right:1px solid #ddd}.facts div:last-child{border:0}.facts strong{display:block;font:23px Georgia,serif}.facts span{font-size:12px;color:var(--muted)}.section{max-width:1240px;margin:auto;padding:100px 30px}.intro,.booking,.stay{display:grid;grid-template-columns:1fr 1fr;gap:80px}.intro p:first-child{margin-top:0}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px;margin-top:28px}.wellness{display:grid;grid-template-columns:1fr 1fr;max-width:1180px;margin:auto;background:var(--cream)}.wellness>img{width:100%;height:560px;object-fit:cover;object-position:center 45%}.wellness>div{padding:80px 65px}.text-link{display:inline-block;font-size:14px;border-bottom:1px solid;margin-top:20px;padding-bottom:6px}.section-heading{display:flex;justify-content:space-between;align-items:end}.section-heading p{font-size:12px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gallery button{border:0;padding:0;background:none;text-align:left}.gallery img{width:100%;height:250px;object-fit:cover;display:block}.gallery span{display:block;padding:8px 0;font-size:12px}.booking{max-width:none;padding:90px max(30px,calc((100vw - 1180px)/2));background:var(--cream)}.fine{font-size:12px}.calendar{background:#fff;padding:25px;align-self:start}.calendar-head{display:flex;justify-content:space-between;align-items:center}.calendar-head button{background:none;border:1px solid #ddd;width:36px;height:36px}.calendar h3{text-transform:capitalize;font:22px Georgia,serif}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:5px}.week{font-size:11px;color:var(--muted);margin:15px 0}.day{padding:10px 0;font-size:13px;background:#f5f4f1}.day.busy{background:repeating-linear-gradient(135deg,#ddd9ce,#ddd9ce 4px,#eeeae1 4px,#eeeae1 7px);color:#666;text-decoration:line-through}.day.unknown{color:#999;background:#f5f5f5}.day.past{opacity:.35}.legend{display:flex;gap:14px;font-size:10px;margin-top:20px}.calendar>p{font-size:12px}.stay img{width:100%;height:480px;object-fit:cover}dl{font-size:14px}dl>div{border-bottom:1px solid #ddd;padding:14px 0}dt{font-weight:bold}dd{margin:5px 0;color:var(--muted)}footer{background:#292e29;color:white;padding:50px 5%;display:flex;align-items:center;justify-content:space-between}footer>a:last-child{font-size:13px}dialog{border:0;padding:15px;background:#fff;max-width:95vw;max-height:95vh}dialog::backdrop{background:#000c}dialog img{max-width:85vw;max-height:76vh;object-fit:contain;display:block}dialog button{position:absolute;right:20px;top:20px;border:0;background:#fff;width:40px;height:40px;font-size:28px}dialog p{margin:8px 0}@media(max-width:760px){header{height:84px;padding:0 20px}nav{display:none}.brand{font-size:26px}.small{font-size:11px;padding:10px}.hero{margin:0 10px;min-height:590px;height:75vh}.hero-copy{padding:90px 24px}.hero-foot{left:24px;font-size:8px}.facts{grid-template-columns:1fr 1fr;padding:20px}.facts div{padding:15px;border:0}.facts strong{font-size:21px}.section{padding:60px 24px}.intro,.booking,.stay{grid-template-columns:1fr;gap:24px}.wellness{margin:0 10px;grid-template-columns:1fr}.wellness>img{height:350px}.wellness>div{padding:40px 24px}.gallery{grid-template-columns:1fr 1fr;gap:10px}.gallery img{height:170px}.section-heading{display:block}.booking{padding:50px 24px}.calendar{padding:16px}.stay img{height:300px}footer{gap:30px;align-items:start;flex-direction:column}.amenities{font-size:12px}}
/* Layered private wellness photographs. */
.wellness>.wellness-photos{position:relative;padding:36px 30px 60px;min-width:0;min-height:590px;align-self:center}
.wellness-photos .sauna-photo{display:block;width:78%;height:480px;object-fit:cover;object-position:70% center}
.wellness-photos .chair-photo{position:absolute;right:18px;bottom:32px;width:48%;height:300px;object-fit:cover;object-position:center;border:8px solid var(--cream);box-shadow:0 12px 32px #292b2826;transform:rotate(3deg)}
.wellness>.wellness-copy{padding:75px 55px 75px 35px;align-self:center}
.stay>img{height:auto;aspect-ratio:1.2;object-fit:contain;background:var(--cream);align-self:center}
@media(max-width:760px){.wellness>.wellness-photos{padding:24px 28px 48px;min-height:460px}.wellness-photos .sauna-photo{height:385px;width:76%}.wellness-photos .chair-photo{right:20px;bottom:14px;width:46%;height:245px;border-width:6px}.wellness>.wellness-copy{padding:30px 24px 45px}.stay>img{height:auto;aspect-ratio:auto}}
.wellness-photos .sauna-photo{margin-left:auto;width:78%}
.wellness-photos .chair-photo{left:15px;right:auto;width:43%;height:280px;transform:rotate(-3deg)}
.contact-links,.footer-contact{display:flex;flex-direction:column;gap:5px}.contact-links{margin:24px 0;font-size:20px}.contact-links a{text-decoration:underline;text-underline-offset:5px}.footer-contact{font-size:14px}
.reservation-form{margin-top:30px;display:grid;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reservation-form label{font-size:13px;display:grid;gap:6px;min-width:0}.reservation-form input,.reservation-form select,.reservation-form textarea{width:100%;min-width:0;border:1px solid #c9c7be;border-radius:0;background:white;color:var(--ink);font:16px Arial,sans-serif;padding:12px}.reservation-form textarea{resize:vertical}.reservation-form .fine{margin:0}.reservation-form button{border:0;cursor:pointer;justify-self:start}.reservation-form :focus-visible{outline:2px solid #8c651c;outline-offset:3px}
@media(max-width:760px){.wellness-photos .chair-photo{left:14px;right:auto;width:42%;height:230px}.contact-links{font-size:18px}}
@media(max-width:380px){.form-row{grid-template-columns:1fr}}
.direct-offer{display:flex;align-items:center;gap:20px;margin:26px 0;padding:20px 24px;background:#ece3c6;border-left:3px solid #b38b2c}.offer-number{font:42px/1 Georgia,serif;white-space:nowrap}.direct-offer strong{display:block;font-size:16px}.direct-offer div>span{display:block;font-size:12px;margin-top:5px;color:#55574f}@media(max-width:420px){.direct-offer{padding:18px 16px;gap:14px}.offer-number{font-size:34px}}
.booking>.reservation-form{grid-column:1 / -1;margin-top:0;padding-top:32px;border-top:1px solid #d7d3c7}
.booking{row-gap:42px}
@media(min-width:1000px){.booking>.reservation-form{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px}.booking>.reservation-form>.form-row{display:contents}.booking>.reservation-form>label,.booking>.reservation-form>.fine,.booking>.reservation-form>button{grid-column:1 / -1}}
@media(max-width:760px){.booking{row-gap:28px}.booking>.reservation-form{padding-top:24px}}
