:root{--paper:#f3f0e8;--ink:#20201d;--orange:#ed4d2b;--line:#b5b2a9;--muted:#595850;--display:'Roboto Condensed','Arial Narrow',sans-serif;--body:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
button,a,summary{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
button,a,summary,input,select,textarea{outline-offset:5px}
:focus-visible{outline:2px solid var(--ink)}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3{margin:0}
[hidden]{display:none!important}
.wrap{width:calc(100% - 96px);max-width:1200px;margin-inline:auto}
.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link:focus{position:fixed;z-index:100;top:12px;left:12px;padding:12px;background:var(--ink);color:var(--paper)}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;line-height:1.5}
h1,h2,h3{font-family:var(--display);font-weight:900;line-height:.95;letter-spacing:-.055em}
h2{font-size:clamp(44px,5.4vw,68px)}
.header{position:relative;display:flex;align-items:center;gap:34px;min-height:78px;border-bottom:1px solid var(--ink)}
.brand{font-family:'Oswald','Arial Narrow',sans-serif;font-size:45px;line-height:1;font-weight:700;letter-spacing:-.065em;transform:rotate(-3deg);display:inline-block;white-space:nowrap}
.brand-dot{color:var(--orange)}
.header-city{font-size:10px;letter-spacing:.07em;font-weight:800}
.desktop-nav{display:flex;gap:28px;margin-left:auto;font-size:12px;font-weight:700}
.desktop-nav a{padding-block:12px}
.desktop-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.header-cta{background:var(--ink);color:var(--paper);padding:13px 18px;font-size:12px;font-weight:800;display:flex;gap:20px;align-items:center}
.header-cta:hover{background:var(--orange);color:var(--ink)}
.menu-toggle{display:none;background:transparent;border:1px solid var(--ink);width:44px;height:44px;padding:12px}
.menu-toggle span{display:block;height:2px;background:var(--ink);margin:5px 0}
.mobile-nav{position:absolute;top:100%;right:0;left:0;z-index:10;background:var(--paper);border:1px solid var(--ink);padding:12px 20px}
.mobile-nav a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
.mobile-nav a:last-child{border:0}
.hero{position:relative;min-height:0;display:grid;grid-template-columns:54% 46%;align-items:center;padding-block:24px 28px}
.hero-copy{position:relative;z-index:1}
.hero-copy>.eyebrow,.hero-art figcaption,.hero-index{display:none}
.hero .hero-slogan{font-size:clamp(84px,10.6vw,144px);letter-spacing:-.035em;line-height:.9;margin:0 0 16px}
.hero-slogan{font-family:var(--display);font-weight:900}
.hero-description{font-family:var(--body);font-size:18px;font-weight:400;letter-spacing:normal;line-height:1.45}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;min-height:48px;padding:12px 22px;border:1px solid var(--ink);border-radius:0;font-weight:800;font-size:15px;transition:background .15s,color .15s}
.primary{background:var(--orange);color:var(--ink)}
.primary:hover{background:var(--ink);color:var(--paper)}
.button:disabled{opacity:.6}
 .hero-cta{margin-top:16px;min-width:230px}
.hero-note{font-size:13px;font-weight:700;margin-top:8px}
.hero-art{position:relative;margin-left:-46px;margin-right:-42px;align-self:center;padding-top:0}
.hero-art img{width:100%;min-width:0}
.hero-art figcaption{text-align:right;font-size:9px;font-weight:800;letter-spacing:.08em;margin-top:12px;padding-right:30px}
.hero-index{position:absolute;bottom:18px;right:0;font-size:9px;font-weight:700;letter-spacing:.09em}
.rates-section{background:var(--orange);padding:24px 0 18px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.rates-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:20px}
.rates-heading h2{font-size:clamp(44px,5.1vw,66px)}
.rate-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.rate-card{padding:16px 28px 12px 0;position:relative}
.rate-card+.rate-card{border-left:1px solid var(--ink);padding-left:28px}
.rate-top{display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.04em}
.rate-card h3{font-size:40px;margin-top:12px;white-space:nowrap}
.rate-card p{font-size:14px;margin-top:7px}
.price{font-family:var(--display);font-weight:900;font-size:62px;line-height:1.1;letter-spacing:-.045em;margin-top:12px}
.rate-card button{background:transparent;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;margin-top:8px;border:0;border-top:1px solid rgba(32,32,29,.5);padding:8px 0 0;font-size:14px;font-weight:800}
.rate-card button:hover{text-decoration:underline;text-underline-offset:4px}
.rate-card button span[aria-hidden]{font-size:21px;line-height:1}
.rates-note{font-size:10px;line-height:1.6;margin-top:10px}
.kit-section{padding-block:28px;display:grid;grid-template-columns:1fr 1fr;gap:48px;border-bottom:1px solid var(--ink)}
.kit-section h2{font-size:clamp(44px,4.9vw,64px);margin-top:10px}
.kit-note{font-size:14px;margin-top:12px}
.kit-list{align-self:center}
.kit-list>div{display:flex;align-items:center;gap:24px;border-top:1px solid var(--ink);padding-block:14px}
.kit-list>div:nth-child(3){border-bottom:1px solid var(--ink)}
.kit-number{font-size:10px;font-weight:800}
.kit-list h3{font-family:var(--body);font-size:19px;font-weight:800;letter-spacing:-.04em}
.kit-detail{margin-left:auto;font-size:10px;color:var(--muted)}
.kit-list>p{font-size:10px;margin-top:14px;color:var(--muted)}
.booking-section{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-block:28px;border-bottom:1px solid var(--ink)}
.booking-copy h2{margin-top:10px;font-size:clamp(38px,4vw,56px);line-height:.96;white-space:nowrap}
.booking-intro{font-size:14px;margin-top:10px}
#availability-calendar{margin-top:18px;max-width:none}
.availability-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:10px;text-transform:uppercase;font-size:12px}
.availability-heading>div{display:flex;gap:8px}
.availability-heading button{width:44px;height:44px;border:1px solid var(--ink);background:transparent;font-size:20px;line-height:1}
.availability-heading button:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.availability-heading button:disabled{opacity:.25}
.weekday-labels,.availability-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.weekday-labels{text-align:center;font-size:10px;font-weight:700;padding:10px 0 6px}
.calendar-date{border:1px solid transparent;background:transparent;min-height:44px;padding:4px;font-size:14px;font-weight:700}
.calendar-date:not(:disabled):hover{border-color:var(--ink)}
.calendar-date:disabled{color:#807e76}
.calendar-date.unavailable{background:#e1ded5;text-decoration:line-through;color:#76746d}
.calendar-date.selected{background:var(--orange);color:var(--ink);border-color:var(--orange)}
.calendar-date.selected:disabled{background:#e1ded5;color:#76746d;border-color:transparent}
.calendar-date.start{outline:1px solid var(--ink);outline-offset:-1px}
.availability-legend{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted);margin-top:14px}
.availability-legend i{width:10px;height:10px;background:#e1ded5;border:1px solid #b5b2a9;flex:none}
.booking-direct{font-size:13px;margin-top:14px}
.booking-direct a{text-decoration:underline;text-underline-offset:4px;font-weight:800}
.booking-form{align-self:start;padding-top:0}
.booking-form h3{font-size:30px}
.form-subtitle{font-size:11px;margin-top:6px;margin-bottom:8px;color:var(--muted)}
.booking-form label{display:block;font-size:11px;font-weight:800;margin:10px 0 5px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field-row>*{min-width:0}
.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{width:100%;min-width:0;border:1px solid var(--ink);border-radius:0;background:transparent;min-height:46px;padding:10px 12px;font-size:12px}
.booking-form select{padding-right:22px}
.booking-form textarea{resize:vertical;min-height:64px}
.booking-form input::placeholder,.booking-form textarea::placeholder{color:#737168;opacity:1}
.optional{font-weight:500;color:var(--muted);font-size:10px}
.booking-total{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;margin-top:8px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.booking-total span{font-size:11px;font-weight:800}
.booking-total strong{font-family:var(--display);font-size:46px;font-weight:900;letter-spacing:-.045em;white-space:nowrap;line-height:1.1}
.booking-total small{display:block;font-size:9px;line-height:1.6;margin-top:5px;color:var(--muted);max-width:220px}
.booking-form .consent-label{display:flex;align-items:flex-start;gap:10px;font-size:9px;font-weight:500;line-height:1.6;margin-block:12px}
.consent-label input{width:20px;height:20px;flex-shrink:0;margin:1px 0;accent-color:var(--ink);cursor:pointer}
.booking-form button[type=submit]{width:100%;margin-top:10px}
.form-note{font-size:9px;line-height:1.7;margin-top:12px;color:var(--muted)}
.form-error{padding:12px;border:1px solid var(--orange);font-size:12px;margin-top:16px}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.faq-section{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-block:28px 32px}
.faq-section h2{font-size:58px;margin-top:10px}
.faq-list details{border-bottom:1px solid var(--ink)}
.faq-list details:first-child{border-top:1px solid var(--ink)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:48px;padding:10px 0;font-size:12px;font-weight:800;cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:24px;font-weight:400;line-height:1}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{font-size:12px;color:var(--muted);padding:0 28px 20px 0}
.footer{background:var(--ink);color:var(--paper);padding-block:24px 16px}
.footer-top{display:flex;align-items:flex-start;gap:50px}
.footer .brand{font-size:50px}
.footer-top p{font-size:10px;color:#bbb8af;margin-top:17px}
.footer address{margin-left:auto;display:flex;flex-direction:column;font-style:normal;gap:8px;padding-top:5px}
.footer address .eyebrow{color:#bbb8af;margin-bottom:4px}
.footer address a{font-size:15px;font-weight:700}
.footer address a:hover{text-decoration:underline;text-underline-offset:5px}
.back-top{font-size:10px;padding:9px 0;margin-left:30px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:20px;padding-top:12px;border-top:1px solid #55554e;font-size:8px;color:#bbb8af}
.footer :focus-visible{outline-color:var(--paper)}
dialog{width:min(570px,calc(100% - 32px));border:1px solid var(--ink);padding:38px;background:var(--paper);color:var(--ink);max-height:calc(100dvh - 40px)}
dialog::backdrop{background:rgba(32,32,29,.65)}
.dialog-close{position:absolute;right:12px;top:12px;width:40px;height:40px;border:0;background:transparent;font-size:30px;line-height:1}
dialog h2{font-size:42px;margin:18px 0}
dialog>p:not(.eyebrow){font-size:12px}
#request-text{font:11px/1.8 var(--body);white-space:pre-wrap;overflow-wrap:anywhere;background:#e8e5dd;border:1px solid var(--line);padding:18px;margin:22px 0}
#copy-request{width:100%}
.dialog-note{margin-top:18px;color:var(--muted)}
.dialog-note a{text-decoration:underline;text-underline-offset:3px}
#copy-status{margin-top:12px;font-weight:700}
@media(min-width:1600px){.hero-art{margin-right:-65px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.header{gap:22px}.header-city{display:none}.desktop-nav{gap:22px}.hero{min-height:0;padding-block:24px}.hero .hero-slogan{font-size:10.8vw}.hero-art{margin-left:-20px;margin-right:-24px}.rate-card h3{font-size:3.45vw}.kit-section,.booking-section,.faq-section{gap:50px}.rate-card{padding-right:24px}.rate-card+.rate-card{padding-left:24px}.booking-copy h2{font-size:4vw}.booking-form h3{font-size:26px}.field-row{gap:12px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{min-height:64px;gap:18px}.brand{font-size:36px}.desktop-nav{display:none}.header-cta{margin-left:auto;padding:12px 14px;font-size:11px;gap:18px}.menu-toggle{display:block}.hero{min-height:0;padding-block:20px 24px;grid-template-columns:1fr;position:relative}.hero .eyebrow{font-size:9px}.hero .hero-slogan{font-size:clamp(70px,21vw,114px);margin:0 0 12px;line-height:.91}.hero-description{font-size:17px}.hero-art{margin:12px auto 0;width:100%;max-width:340px;padding-top:0}.hero-art img{max-width:340px;margin-inline:auto}.hero-art figcaption{font-size:8px;text-align:right;padding-right:18px;margin-top:0}.hero-index{display:none}.hero-cta{margin-top:12px;min-width:220px}.rates-section{padding:20px 0 14px}.rates-heading{display:block;margin-bottom:14px}.rates-heading h2{font-size:clamp(34px,8.7vw,48px)}.rates-heading>.eyebrow{display:block;font-size:9px;margin-top:12px}.rate-grid{grid-template-columns:1fr}.rate-card,.rate-card+.rate-card{border-left:0;padding:14px 0;display:grid;grid-template-columns:1fr auto;column-gap:12px}.rate-card+.rate-card{border-top:1px solid var(--ink)}.rate-top{grid-column:1/-1;font-size:9px}.rate-card h3{font-size:clamp(25px,7.4vw,36px);margin-top:10px;grid-column:1}.rate-card p{font-size:10px;grid-column:1;margin-top:7px}.price{font-size:42px;margin-top:8px;grid-column:2;grid-row:2/4;align-self:center}.rate-card button{grid-column:1/-1;margin-top:8px;padding-top:6px}.rates-note{font-size:9px}.kit-section{grid-template-columns:1fr;padding-block:24px;gap:20px}.kit-section h2{font-size:50px;margin-top:10px}.kit-note{font-size:13px;margin-top:10px}.kit-list>div{gap:16px;padding-block:13px}.kit-list h3{font-size:17px}.booking-section{grid-template-columns:1fr;padding-block:24px;gap:22px}.booking-copy h2{font-size:clamp(34px,9.3vw,52px)}.booking-intro{font-size:11px}#availability-calendar{max-width:none;margin-top:16px}.calendar-date{min-height:44px}.booking-form{border-top:1px solid var(--ink);padding-top:18px}.booking-form h3{font-size:30px}.form-subtitle{margin-bottom:10px}.field-row{gap:12px}.booking-form label{font-size:10px}.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{font-size:16px;padding:12px 9px;min-height:46px}.optional{font-size:9px}.booking-form select{font-size:13px;padding-right:18px}.booking-total strong{font-size:42px}.faq-section{grid-template-columns:1fr;padding-block:24px;gap:20px}.faq-section h2{font-size:50px}.faq-list summary{font-size:11px}.footer{padding-block:24px 16px}.footer-top{flex-wrap:wrap;gap:18px}.footer .brand{font-size:44px}.footer address{margin-left:0;gap:9px;flex-basis:100%}.footer address a{font-size:15px}.back-top{margin-left:auto;align-self:flex-start;order:0}.footer-top>div{order:0}.footer address{order:1}.footer-bottom{flex-direction:column;gap:8px;margin-top:20px;font-size:8px}dialog{padding:30px 22px}dialog h2{font-size:34px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.header{gap:10px}.header-cta{gap:10px;padding:12px 10px}.hero .hero-slogan{font-size:21vw}.field-row{grid-template-columns:1fr;gap:0}.rates-heading h2{font-size:31px}.rate-card h3{font-size:25px}.price{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Small print stays readable on handheld screens. */
.rates-note,.form-note,.booking-form .consent-label,.availability-legend{font-size:12px}
.booking-form label{font-size:13px}
.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{font-size:15px}
.kit-note,.kit-list>p,.booking-intro,.form-subtitle,.booking-direct{font-size:14px}
.faq-list summary{font-size:15px}
.faq-list details p{font-size:14px}
@media(max-width:760px){.hero-note{font-size:13px}.rate-card p{font-size:13px}.booking-form input:not([type=checkbox]),.booking-form select,.booking-form textarea{font-size:16px}.booking-total small{font-size:11px}.booking-total span{font-size:12px}.kit-detail{font-size:11px}.kit-list>p{font-size:11px}.footer-top p{font-size:12px}.footer-bottom{font-size:10px}}
