:root{--paper:#f3f1ea;--ink:#151515;--mute:#5d5a52;--rule:#151515;--hair:#c9c4b6;--red:#c4321a;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Charter,"Bitstream Charter",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font:17px/1.55 var(--sans);font-feature-settings:"tnum" 1}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--red)}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:680px;padding-top:48px;padding-bottom:96px}
.narrow h1{font:600 40px/1.1 var(--serif);margin-bottom:24px}
.narrow p{margin-bottom:16px}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;max-width:1080px;margin:0 auto;padding:20px 24px;border-bottom:2px solid var(--rule)}
.mark{font:700 18px/1 var(--serif);text-decoration:none;letter-spacing:.01em}
.mark span{font:500 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;margin-left:8px;color:var(--mute)}
.top nav{display:flex;gap:20px;font-size:14px}
.top nav a{text-decoration:none}
@media(max-width:640px){.top nav a:not(.cta){display:none}}
.cta{border-bottom:2px solid var(--red)}
.hero{padding:72px 0 56px;border-bottom:1px solid var(--rule)}
.kicker{font:500 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin-bottom:20px}
.hero h1{font:600 clamp(38px,6.2vw,72px)/1.02 var(--serif);letter-spacing:-.015em;max-width:15ch}
.hero h1 em{font-style:italic;color:var(--red)}
.hero .lede{font-size:20px;max-width:56ch;margin-top:28px}
.hero .actions{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
.btn{display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font:600 16px/1 var(--sans);padding:16px 22px;border:2px solid var(--ink);cursor:pointer}
.btn:hover{background:var(--red);border-color:var(--red);color:#fff}
.btn[aria-disabled=true],.btn:disabled{background:transparent;color:var(--mute);border-color:var(--hair);cursor:not-allowed;pointer-events:none}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule)}
.facts div{padding:20px 20px 22px 0;font-size:15px}
.facts div+div{padding-left:20px;border-left:1px solid var(--hair)}
.facts b{display:block;font:600 22px/1.2 var(--serif);margin-bottom:4px}
@media(max-width:720px){.facts{grid-template-columns:1fr}.facts div+div{padding-left:0;border-left:0;border-top:1px solid var(--hair)}}
section{padding:64px 0;border-bottom:1px solid var(--rule)}
.sec{display:grid;grid-template-columns:220px 1fr;gap:24px 48px}
@media(max-width:820px){.sec{grid-template-columns:1fr}}
.sec>h2{font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--mute);padding-top:8px}
.sec>h2 span{color:var(--ink);display:block;font:600 26px/1.15 var(--serif);text-transform:none;letter-spacing:0;margin-top:6px}
.rates{width:100%;border-collapse:collapse}
.rates th,.rates td{text-align:left;vertical-align:top;padding:18px 0;border-top:1px solid var(--hair)}
.rates tr:first-child th,.rates tr:first-child td{border-top:2px solid var(--rule)}
.rates th{font:600 21px/1.25 var(--serif);width:48%;padding-right:24px}
.rates th small{display:block;font:400 15px/1.5 var(--sans);color:var(--mute);margin-top:6px}
.rates td.p{font:600 21px/1.25 var(--serif);text-align:right;white-space:nowrap}
.rates td.p small{display:block;font:400 13px/1.4 var(--mono);color:var(--mute);margin-top:6px}
.rates td.d{font-size:15px;color:var(--mute);padding-right:24px}
@media(max-width:640px){.rates th,.rates td{display:block;width:auto;text-align:left;padding:0}.rates th{padding-top:18px}.rates td.p{text-align:left;padding:8px 0 18px;white-space:normal}.rates td.d{display:none}.rates tr:first-child td{border-top:0}.rates td{border-top:0}}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:32px 48px}
@media(max-width:720px){.cols{grid-template-columns:1fr}}
.cols h3{font:600 20px/1.3 var(--serif);margin-bottom:8px}
.cols p,.cols li{font-size:16px}
ul.dash{list-style:none}
ul.dash li{padding-left:20px;position:relative;margin-bottom:6px}
ul.dash li:before{content:"–";position:absolute;left:0;color:var(--red)}
ol.steps{list-style:none;counter-reset:s}
ol.steps li{counter-increment:s;display:grid;grid-template-columns:56px 1fr;padding:16px 0;border-top:1px solid var(--hair)}
ol.steps li:first-child{border-top:2px solid var(--rule)}
ol.steps li:before{content:counter(s,decimal-leading-zero);font:500 14px/1.9 var(--mono);color:var(--red)}
ol.steps b{font:600 19px/1.4 var(--serif)}
.proof{border:2px solid var(--rule);padding:24px;background:#fff}
.proof .url{font:500 14px/1.4 var(--mono);color:var(--red)}
.proof h3{font:600 24px/1.2 var(--serif);margin:8px 0 12px}
.note{font-size:14px;color:var(--mute);margin-top:16px}
.terms{border:2px solid var(--rule);background:#fff;padding:24px;margin-top:8px}
.terms h3{font:600 22px/1.2 var(--serif);margin-bottom:12px}
.terms ol{margin:0 0 16px 20px}
.terms li{margin-bottom:8px}
.check{display:flex;gap:12px;align-items:flex-start;margin:20px 0;font-size:16px;cursor:pointer}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--red);flex:none}
form.lead{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
form.lead .full{grid-column:1/-1}
@media(max-width:640px){form.lead{grid-template-columns:1fr}}
label.f{display:block;font:500 12px/1.4 var(--mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
label.f i{font-style:normal;color:var(--mute);text-transform:none;letter-spacing:0;font-family:var(--sans)}
input[type=text],input[type=email],input[type=url],select,textarea{width:100%;font:16px/1.4 var(--sans);color:var(--ink);background:#fff;border:1px solid var(--ink);border-radius:0;padding:12px;appearance:none}
select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23151515' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:36px}
textarea{min-height:140px;resize:vertical}
input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:3px solid var(--red);outline-offset:1px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{font-size:15px;min-height:1.5em}
footer{padding:32px 0 56px;font-size:14px;color:var(--mute)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
/* booking */
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.bk-hero{padding:56px 0 40px;border-bottom:1px solid var(--rule)}
.bk-hero h1{font:600 clamp(34px,5vw,56px)/1.05 var(--serif);letter-spacing:-.01em;max-width:18ch}
.bk-hero .lede{font-size:19px;max-width:56ch;margin-top:20px}
.types{border-top:2px solid var(--rule)}
.types label{display:grid;grid-template-columns:28px 1fr auto;gap:0 12px;padding:16px 0;border-bottom:1px solid var(--hair);cursor:pointer}
.types input{width:18px;height:18px;margin-top:5px;accent-color:var(--red)}
.types b{font:600 21px/1.25 var(--serif)}
.types small{display:block;color:var(--mute);font-size:15px;margin-top:4px}
.types .p{font:600 21px/1.25 var(--serif);white-space:nowrap}
.tz{font:500 12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--mute);margin-bottom:16px}
.tz select{display:inline-block;width:auto;font:500 12px/1 var(--mono);padding:6px 30px 6px 8px;margin-left:6px;text-transform:none;letter-spacing:0}
.days{display:flex;gap:0;overflow-x:auto;border-top:2px solid var(--rule);border-bottom:1px solid var(--hair);scrollbar-width:thin}
.days button{flex:none;background:transparent;border:0;border-right:1px solid var(--hair);padding:12px 16px 10px;font:500 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);cursor:pointer;text-align:left}
.days button b{display:block;font:600 22px/1.1 var(--serif);letter-spacing:0;text-transform:none;margin-top:2px}
.days button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.days button:hover:not([aria-pressed=true]){color:var(--red)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin-top:20px}
.slots button{background:#fff;border:1px solid var(--ink);padding:12px 8px;font:600 16px/1 var(--sans);cursor:pointer;color:var(--ink)}
.slots button:hover{border-color:var(--red);color:var(--red)}
.slots button[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.empty{color:var(--mute);font-size:15px;padding:20px 0}
.chosen{font:600 22px/1.3 var(--serif);margin:0 0 20px;padding:14px 0;border-top:2px solid var(--rule);border-bottom:1px solid var(--hair)}
.chosen small{display:block;font:400 14px/1.5 var(--sans);color:var(--mute)}
.when b{font:600 26px/1.25 var(--serif)}
.when .tzline{display:block;font-size:14px;color:var(--mute)}
main.narrow .kicker{margin-bottom:12px}
main.narrow .actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 8px}
.flash{border-left:3px solid var(--red);padding:8px 14px;background:#fff;margin-bottom:20px}
main.adm{padding-top:40px;padding-bottom:80px}
main.adm>h1{font:600 36px/1.1 var(--serif);margin-bottom:12px}
main.adm .rates th{font-size:18px}
main.adm .rates td.p{font:400 15px/1.5 var(--sans)}
[hidden]{display:none!important}
.sec>div,.sec>section{min-width:0}
.sec{grid-template-columns:220px minmax(0,1fr)}
@media(max-width:820px){.sec{grid-template-columns:minmax(0,1fr)}}
.tz select{max-width:100%;margin-top:4px}
.tz #tzname{margin-left:.5em;margin-right:.5em}
