@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--ink:#292724;--paper:#fcfaf6;--cream:#f2ebdd;--accent:#986f2d;--line:#dedfd5;--muted:#62695f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,select{font:inherit}a,button,select{-webkit-tap-highlight-color:transparent}button,a,select{touch-action:manipulation}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #b1844b;outline-offset:5px}header{height:102px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--paper)}.brand{font-family:'Playfair Display',Georgia,serif;font-size:38px;line-height:1;letter-spacing:5px}.brand span{display:block;font:10px 'DM Sans',sans-serif;letter-spacing:2.6px;margin-top:10px}nav{display:flex;gap:36px;font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 26px;background:var(--ink);color:#fff;border:1px solid var(--ink);font-size:14px;font-weight:500;text-align:center;transition:background .2s,transform .2s}.button:hover{background:#414b3e;transform:translateY(-2px)}.button.small{min-height:45px;padding:10px 22px}.button.cream{background:var(--cream);border-color:var(--cream);color:var(--ink)}.button.cream:hover{background:white}.hero{position:relative;min-height:710px;height:calc(100svh - 102px);max-height:920px;display:flex;align-items:center;color:white;background:#514d43}.hero>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 59%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,25,21,.78),rgba(19,25,21,.27) 60%,rgba(19,25,21,.07)),linear-gradient(0deg,rgba(19,25,21,.6),transparent 30%)}.hero-copy{position:relative;padding:56px 8%;max-width:1050px}.eyebrow{font-size:12px;letter-spacing:2.1px;font-weight:600;margin:0 0 22px;line-height:1.5;color:var(--accent)}.eyebrow.light{color:#f0dfc6}h1,h2,h3{font-weight:400;margin:0;font-family:'Playfair Display',Georgia,serif}h1{font-size:clamp(48px,5.7vw,84px);line-height:1.12;letter-spacing:-2px}em{font-weight:400}h1 em{color:#e6d8bb}.hero-copy>p:not(.eyebrow){margin:28px 0;font-size:16px;color:#faf8ef;line-height:1.8}.hero-bottom{position:absolute;bottom:24px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.facts{display:grid;grid-template-columns:repeat(4,1fr);padding:38px 7%;border-bottom:1px solid var(--line)}.facts div{text-align:center;border-right:1px solid var(--line)}.facts div:last-child{border:none}.facts strong{display:block;font:30px 'Playfair Display',Georgia,serif}.facts span{font-size:13px;color:var(--muted)}.section{padding:95px 8%;max-width:1800px;margin:auto}h2{font-size:clamp(36px,3.4vw,53px);line-height:1.2;letter-spacing:-1px}h2 em{color:var(--accent)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-bottom:60px}.intro-copy p:first-child{margin-top:0}.intro-copy p{color:var(--muted)}.text-link{display:inline-block;border-bottom:1px solid var(--ink);padding:6px 0;font-weight:500;font-size:14px;margin-top:10px}.gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;padding-top:0;padding-bottom:75px}.gallery figure{margin:0}.gallery img{width:100%;height:460px;object-fit:cover;display:block}.gallery .photo-tall{padding-top:70px}.gallery .photo-tall img{height:390px}figcaption{font-size:12px;padding-top:16px;color:var(--muted);letter-spacing:1px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px}.section-heading>p{font-size:14px;color:var(--muted);max-width:380px}.occasions{padding-top:20px}.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px}.occasion-grid article{border-top:1px solid var(--line);padding-top:22px}.occasion-grid article>span{font-size:12px;color:var(--accent)}h3{font-size:25px;line-height:1.4}.occasion-grid h3{margin:28px 0 12px}.occasion-grid p{color:var(--muted);font-size:15px}.included{background:var(--cream);max-width:none}.included-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:7%}.included h3{font-size:23px}.included p{font-size:15px;color:var(--muted)}.subtle{font-size:12px;color:var(--muted)}.booking{padding-top:100px}.booking-layout{display:grid;grid-template-columns:1.12fr 1fr;border:1px solid var(--line);background:#fff}.calendar-panel{padding:40px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:14px}.month-controls{display:flex;gap:8px}.month-controls button{border:1px solid var(--line);background:white;font-size:28px;color:var(--ink);width:40px;height:40px;cursor:pointer;line-height:1}.month-controls button:disabled{opacity:.3;cursor:default}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekdays{text-align:center;font-size:12px;color:var(--muted);margin-bottom:12px}.calendar button{border:1px solid #eee;background:#fafbf8;aspect-ratio:1;cursor:pointer;font-size:15px;color:var(--ink);min-width:0}.calendar button:hover{border-color:var(--ink);background:var(--cream)}.calendar button:disabled{background:transparent;border-color:transparent;color:#b4b7b0;cursor:default}.calendar button.chosen{background:var(--ink);color:white;border-color:var(--ink)}.calendar button.today{box-shadow:inset 0 0 0 1px var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;margin-top:30px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:8px}.legend i{height:10px;width:10px;border:1px solid #aaa}.legend .selected-dot{background:var(--ink);border-color:var(--ink)}.calendar-note{font-size:13px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:23px;margin-top:25px}.price-panel{background:#f3f4ee;padding:40px;border-left:1px solid var(--line)}.price-panel .eyebrow{margin-bottom:12px}.rate{font:38px 'Playfair Display',Georgia,serif}.rate span{font:14px 'DM Sans',sans-serif;color:var(--muted)}.rate-note{font-size:13px;color:var(--muted);margin-bottom:26px}.field-row{margin-bottom:20px}.field-row label{display:block;font-size:13px;margin-bottom:6px;font-weight:500}select{width:100%;padding:12px 10px;background:#fff;border:1px solid #d4d7cb;border-radius:0;font-size:14px;color:var(--ink)}.estimate{border-top:1px solid #cdd1c4;padding-top:22px;margin-top:27px}.estimate>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.estimate strong{font-size:21px;font-weight:500;white-space:nowrap}.estimate p{font-size:12px;color:var(--muted);margin:5px 0 24px}.date-summary{font-size:14px;margin-bottom:18px}.price-panel .button{width:100%;margin-bottom:12px}.button[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.button.outline{background:transparent;color:var(--ink);font-size:13px}.button.outline:hover{background:#e4e7db}.fine-print{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0 0}.visit{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-top:80px;padding-bottom:80px}.visit>div>p:not(.eyebrow){color:var(--muted)}.visit-card{background:var(--ink);padding:50px;color:white}.visit-card h3{font-size:36px;margin-bottom:25px}.visit-card>a:not(.button){font-size:23px}.visit .visit-card p:not(.eyebrow){color:#d1d7cc;font-size:14px}.visit-card .button{margin-top:15px}footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:45px 8%;border-top:1px solid var(--line)}footer p,footer div{font-size:13px;color:var(--muted)}footer div{display:flex;flex-direction:column;gap:8px;text-align:right}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:99}.skip:focus{top:10px}@media(min-width:1600px){.hero-copy{padding-left:10%}}@media(max-width:900px){header{padding:0 5%;height:90px}nav{gap:18px}.hero{min-height:650px;height:80svh}.hero-copy{padding:50px 7%}.facts{padding:28px 3%}.facts strong{font-size:26px}.facts span{font-size:12px}.section{padding:65px 6%}.intro{gap:6%}.gallery{padding-top:0}.gallery img{height:340px}.gallery .photo-tall img{height:290px}.gallery .photo-tall{padding-top:50px}.included-grid{gap:25px;grid-template-columns:1fr 1fr}.included-grid h2{grid-column:1/-1}.booking-layout{grid-template-columns:1fr 1fr}.calendar-panel,.price-panel{padding:24px}.rate{font-size:30px}.calendar{gap:3px}.calendar button{font-size:14px}.estimate>div{align-items:flex-start;flex-direction:column}.section-heading{align-items:flex-start;flex-direction:column;gap:8px}.section-heading>p{margin:0}.visit{gap:40px}.visit-card{padding:32px}footer{padding:35px 6%}}@media(max-width:640px){header{height:82px;gap:12px}.brand{font-size:30px}.brand span{font-size:8px;letter-spacing:1.9px;margin-top:7px}header nav{display:none}header .button{font-size:12px;padding:9px 15px;min-height:42px}.hero{min-height:600px;max-height:760px;height:calc(90svh - 82px)}h1{font-size:49px;letter-spacing:-1.4px}.hero>img{object-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(19,25,21,.74),rgba(19,25,21,.25)),linear-gradient(0deg,rgba(19,25,21,.55),transparent)}.hero-copy{padding:35px 6% 65px}.hero-copy .eyebrow{font-size:10px;letter-spacing:1.6px}.hero-copy>p:not(.eyebrow){font-size:14px}.hero-bottom{font-size:9px;left:6%}.hero-bottom span:last-child{display:none}.facts{grid-template-columns:1fr 1fr;padding:12px 5%}.facts div{padding:18px 4px}.facts div:nth-child(2){border-right:0}.facts div:nth-child(-n+2){border-bottom:1px solid var(--line)}.facts strong{font-size:27px}.section{padding:56px 6%}.intro{grid-template-columns:1fr;gap:22px;padding-bottom:30px}h2{font-size:37px}.eyebrow{font-size:10px;letter-spacing:1.7px}.intro-copy{font-size:15px}.gallery{gap:14px;padding-top:0;padding-bottom:50px;grid-template-columns:1fr 1fr}.gallery img{height:250px}.gallery .photo-tall{padding-top:40px}.gallery .photo-tall img{height:210px}figcaption{font-size:10px;letter-spacing:.2px;line-height:1.7}.occasions{padding-top:0}.occasion-grid{grid-template-columns:1fr;gap:22px}.occasion-grid article{padding-top:16px}.occasion-grid h3{margin:12px 0 8px;font-size:25px}.occasion-grid p{margin:0}.included-grid{grid-template-columns:1fr;gap:25px}.included p{margin-bottom:5px}.booking-layout{grid-template-columns:1fr}.price-panel{border-left:0;border-top:1px solid var(--line)}.calendar-panel,.price-panel{padding:25px}.calendar{gap:7px}.calendar-head h3{font-size:25px}.calendar button{font-size:15px}.rate{font-size:37px}.estimate>div{flex-direction:row;align-items:center}.estimate strong{font-size:20px}.section-heading{margin-bottom:28px}.visit{grid-template-columns:1fr;gap:30px}.visit-card{padding:32px}footer{align-items:flex-start;flex-wrap:wrap;padding:30px 6%}footer p{margin:0}footer div{width:100%;text-align:left;border-top:1px solid var(--line);padding-top:20px;flex-direction:row;justify-content:space-between;font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.weekday-offer{font-size:14px;border-left:2px solid var(--accent);padding:9px 14px;margin:0 0 24px;color:var(--ink)}.weekday-offer span{font-size:12px;color:var(--muted)}

.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.studios{padding-top:0}.studio-card{border:1px solid var(--line);background:#fff}.studio-picture{display:block;position:relative;overflow:hidden;aspect-ratio:2.2;background:var(--cream)}.studio-picture img{position:absolute;width:106%;max-width:none;height:auto;left:-3%}.studio-a img{top:-51%}.studio-b img{top:-62%}.studio-copy{padding:32px}.studio-copy h3{font-size:36px}.studio-copy .eyebrow{margin-bottom:8px}.studio-copy p:not(.eyebrow){color:var(--muted);font-size:15px}.studio-copy ul{padding:0;list-style:none;font-size:14px;display:flex;flex-wrap:wrap;gap:8px 20px}.studio-copy li{border-bottom:1px solid var(--line);padding-bottom:5px}.rate-table{margin:22px 0 26px;border-top:1px solid var(--line)}.rate-table>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.rate-table strong{font-weight:500}.venue-email{font-size:15px;overflow-wrap:anywhere}.fine-print a{text-decoration:underline}.booking-layout{align-items:start}.calendar-panel{position:sticky;top:30px}.price-panel{border-bottom:0}.estimate strong{white-space:normal}.studio-select{font-size:14px}@media(max-width:640px){.studio-grid{grid-template-columns:1fr;gap:26px}.studio-copy{padding:26px}.studios{padding-top:0}.calendar-panel{position:static}.rate{font-size:32px}}

[hidden]{display:none!important}.custom-time-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.custom-time-grid input{font:inherit;font-size:16px;width:100%;min-width:0;box-sizing:border-box;padding:12px 8px;border:1px solid #d4d7cb;background:white;color:var(--ink)}.overnight{font-size:14px;display:flex;gap:10px;align-items:center}.overnight input{width:18px;height:18px}.custom-time-grid .field-row{min-width:0}#custom-times{margin-bottom:24px}#custom-error{min-height:22px}

/* Keep the supplied brochures fully visible, without cropping. */
.studio-picture{aspect-ratio:auto;overflow:visible;background:#faf7f1}.studio-picture img{position:static;width:100%;height:auto;max-width:100%;display:block}.promotions{background:#f2eadc;max-width:none}.promotion-card{display:grid;grid-template-columns:1.2fr 1fr;border:1px solid #cabb9e;background:#fffdf8}.promotion-story{padding:46px;background:#352d27;color:#fff7e9}.promotion-story .eyebrow{color:#e5c899}.promotion-story h3{font-size:clamp(36px,4vw,58px);line-height:1.15}.promotion-story>p:not(.eyebrow){color:#e0d7c9;max-width:410px}.promo-days{display:inline-block;border:1px solid #8b785e;padding:9px 14px;font-size:14px;margin-top:20px}.promotion-details{padding:46px}.promo-price{font:48px 'Playfair Display',Georgia,serif}.promotion-details>p{font-size:15px}.promotion-details .button{margin-top:22px}.promotion-details .fine-print{font-size:13px}.promotions+.booking{padding-top:75px}header nav{gap:22px}@media(max-width:900px){header nav{gap:12px;font-size:12px}.promotion-story,.promotion-details{padding:28px}}@media(max-width:640px){.promotion-card{grid-template-columns:1fr}header{height:auto;min-height:100px;flex-wrap:wrap;padding-top:14px;padding-bottom:10px}header nav{display:flex;order:3;width:100%;overflow-x:auto;justify-content:space-between;gap:15px;padding-top:8px;white-space:nowrap;font-size:12px}.promotion-story,.promotion-details{padding:28px}.promo-price{font-size:42px}}

.promotion-card+.promotion-card{margin-top:30px}.promo-days{line-height:1.7}

.promotion-christmas{border-color:#b99a55;background:#fffaf0}.promotion-christmas .promotion-story{background:#173e32;color:#fffaf0}.promotion-christmas .promotion-story .eyebrow{color:#efd292}.promotion-christmas .promotion-story>p:not(.eyebrow){color:#f0eadb}.promotion-christmas .promo-days{border-color:#c8ac68;color:#fff4d9}.promotion-christmas .promo-special-label,.promotion-christmas .promo-price{color:#922c38}.promotion-christmas .button{background:#922c38;border-color:#922c38;color:#fffaf0}.promotion-christmas .button:hover{background:#74212b;border-color:#74212b}

.field-row input{width:100%;min-width:0;padding:12px 10px;font:16px inherit;border:1px solid #d4d7cb;background:white;color:var(--ink)}.rate-table>div{gap:14px}.rate-table strong{flex-shrink:0}#inquiry-help{margin:16px 0 10px;font-size:14px;color:var(--ink)}

.calendar .offer-date{background:#e6eee3;border-color:#698261}.calendar .offer-date.chosen{background:var(--ink);color:white}#offer-note{margin-bottom:20px}.field-row input{font-family:inherit;font-size:16px}
