/* Sanctums free planner (/plan/, /p/, /oauth/authorize). Phase R (Nov 10 2026): brought into the house style of the main
   site (brand/README.md): linen ground, night ink, lagoon accent, olive for quiet text, hairline rules instead of boxes,
   Cormorant for voice, Jost small caps for labels, square outlined buttons. Class names are unchanged for the JS. */
@font-face{font-family:"Jost";src:url(/assets/fonts/jost-var.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-garamond-var.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(/assets/fonts/cormorant-garamond-italic-var.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Marcellus";src:url(/assets/fonts/marcellus.woff2) format("woff2");font-weight:400;font-display:swap}
:root{--linen:#F6F1E8;--paper:#FBF8F2;--sand:#E4D3B4;--rule:#DCCFB8;--lagoon:#2F6B70;--night:#13262E;--olive:#4B5137;--ok:#2E6B47;--warn:#8A5A12;--bad:#9B3328;
  --serif:"Cormorant Garamond",Garamond,"Times New Roman",serif;--sans:"Jost","Futura","Century Gothic",system-ui,sans-serif;--mark:"Marcellus","Cormorant Garamond",serif;--ease:cubic-bezier(.22,.61,.36,1)}
*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}
html{background:var(--linen);color:var(--night);-webkit-text-size-adjust:100%}
body{margin:0;font:400 17px/1.65 var(--sans);font-feature-settings:"kern","lnum";-webkit-font-smoothing:antialiased;background:var(--linen);min-height:100vh}
a{color:var(--lagoon);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--night)}
:focus-visible{outline:2px solid var(--lagoon);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--night);color:var(--linen);padding:10px 16px;font:500 12px var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none}.skip:focus{top:12px}
.wrap{max-width:760px;margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:22px clamp(20px,5vw,40px);max-width:1320px;margin:0 auto;border-bottom:1px solid var(--rule)}
.top:before{content:"";}
.mark{grid-column:2;font:400 17px/1 var(--mark);letter-spacing:.34em;color:var(--night);text-decoration:none;padding:6px 0 6px .34em;border-bottom:1px solid var(--sand)}
.top nav{grid-column:3;justify-self:end;display:flex;gap:clamp(14px,3vw,30px)}
.top nav a{font:500 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--night);text-decoration:none;padding:12px 0}.top nav a:hover{color:var(--lagoon)}
h1,h2{font-family:var(--serif);font-weight:300;line-height:1.08;margin:0 0 14px;letter-spacing:-.005em}
h1{font-size:clamp(40px,7vw,64px)}h2{font-size:clamp(27px,4vw,34px);font-weight:400}
h3{font:500 17px/1.35 var(--sans);margin:0}
.k{font:500 12px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--olive);margin:clamp(48px,9vw,96px) 0 18px}
.lead{font:italic 400 clamp(20px,2.4vw,23px)/1.5 var(--serif);color:var(--night);margin:0 0 28px;max-width:34em}
.card{background:transparent;border:0;border-top:1px solid var(--rule);border-radius:0;padding:30px 0 8px;margin:22px 0}
.q{min-height:300px;border-top:0;padding-top:10px}
.q label,.lbl{display:block;font:500 12px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--olive);margin:18px 0 8px}
input[type=text],input[type=email],input[type=date],input[type=number],select,textarea{width:100%;font:inherit;font-size:17px;color:var(--night);background:var(--paper);border:1px solid var(--rule);border-radius:0;padding:13px 14px;min-height:50px;transition:border-color .3s var(--ease)}
input:hover,select:hover,textarea:hover{border-color:#c9b896}
input:focus,select:focus,textarea:focus{border-color:var(--lagoon);outline:none;box-shadow:0 0 0 1px var(--lagoon)}
input::placeholder,textarea::placeholder{color:#6f7260}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--olive) 50%),linear-gradient(135deg,var(--olive) 50%,transparent 50%);background-position:calc(100% - 18px) 22px,calc(100% - 13px) 22px;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
textarea{min-height:130px;resize:vertical}
input[type=date]{color-scheme:light}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.chip{font:400 16px/1 var(--sans);color:var(--night);background:transparent;border:1px solid var(--rule);border-radius:0;padding:12px 16px;cursor:pointer;min-height:44px;transition:border-color .3s var(--ease),background .3s var(--ease)}
.chip:hover{border-color:var(--olive)}
.chip[aria-pressed=true]{border-color:var(--night);background:var(--night);color:var(--linen)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font:500 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--linen);background:var(--night);border:1px solid var(--night);border-radius:0;padding:18px 28px;min-height:52px;cursor:pointer;text-decoration:none;transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
.btn:hover{background:var(--lagoon);border-color:var(--lagoon);color:var(--linen)}
.btn.ghost{background:transparent;color:var(--night);border:1px solid var(--night)}.btn.ghost:hover{background:var(--night);color:var(--linen)}
.btn.small{padding:12px 16px;min-height:44px;letter-spacing:.16em}
.btn.danger{background:transparent;color:var(--bad);border:1px solid var(--bad)}.btn.danger:hover{background:var(--bad);color:var(--linen)}
.btn[disabled]{opacity:.55;cursor:default}.btn[disabled]:hover{background:var(--night);border-color:var(--night)}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:24px}
.step{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--rule)}
.step:last-of-type{border-bottom:0}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:44px;height:44px;border-radius:50%;border:1px solid var(--rule);background:transparent;color:var(--night);font:300 22px/1 var(--sans);cursor:pointer}.stepper button:hover{border-color:var(--night)}
.stepper output{min-width:26px;text-align:center;font:400 22px/1 var(--serif)}
.kids{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.kids select{width:auto;min-width:120px}
.dots{display:flex;gap:8px;margin:6px 0 0}.dots i{width:32px;height:1px;background:var(--rule)}.dots i.on{background:var(--night);height:2px}
.pin{position:sticky;top:0;z-index:5;background:rgba(246,241,232,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);padding:16px 0 14px;margin:0 0 8px}
.pin b{font:400 clamp(26px,4vw,32px)/1.1 var(--serif);display:block;margin:2px 0 4px}
.pin small{color:var(--olive);display:block;font-size:14px}
.pin>small:first-of-type{font:500 11px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.pin .edit{float:right;margin-top:6px}
.bk{border-top:1px solid var(--rule);padding:18px 0}.bk:first-of-type{border-top:0}
.bk h3{font:400 22px/1.25 var(--serif)}
.bk .meta{color:var(--olive);font-size:15px}
.tag{display:inline-block;font:500 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--rule);padding:4px 9px;margin:10px 8px 0 0;color:var(--olive)}
.tag.ok{border-color:#9fbfa8;color:var(--ok)}.tag.warn{border-color:#d8bf8f;color:var(--warn)}
.note{font-size:15px;color:var(--olive)}
.card ul:not([class]){list-style:none;padding:0;margin:8px 0}.card ul:not([class]) li{padding:8px 0;border-bottom:1px solid rgba(220,207,184,.6)}.card ul:not([class]) li:last-child{border-bottom:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.person{display:grid;grid-template-columns:2fr 1.3fr 1fr auto;gap:10px;align-items:center;margin:10px 0}
.person button,.hol button{background:none;border:0;color:var(--olive);font-size:22px;cursor:pointer;min-width:44px;min-height:44px}
.hol{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:10px;margin:10px 0}
.check{display:flex;gap:12px;align-items:flex-start;font-size:16px;margin:14px 0}.check input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--night)}
.cm{border-top:1px solid var(--rule);padding:14px 0}.cm b{font-weight:500}.cm time{color:var(--olive);font-size:13px;margin-left:8px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--night);color:var(--linen);padding:14px 22px;font-size:15px;z-index:20;max-width:calc(100vw - 32px);box-shadow:0 10px 30px rgba(19,38,46,.18)}
.banner{border-top:2px solid var(--night)}
.banner h2{font-style:italic}
.err{color:var(--bad);font-size:15px;margin:10px 0 0}
footer.f{max-width:760px;margin:clamp(64px,10vw,120px) auto 40px;padding:24px clamp(20px,5vw,40px) 0;font-size:14px;line-height:1.7;color:var(--olive);border-top:1px solid var(--rule)}footer.f a{color:var(--night)}
#loading{font-style:italic}
/* Ways to book */
.grid3{display:grid;grid-template-columns:1.2fr 1.2fr .8fr;gap:14px}
.wb-out{margin-top:10px}
.wb-q{margin:26px 0 6px}
.wb-g{border-top:1px solid var(--rule);margin-top:26px;padding-top:18px}
.wb-g h3,.wb-d summary{font:500 12px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--olive);margin:0 0 6px}
.wb-list{list-style:none;margin:0;padding:0}
.wb-list li{border-bottom:1px solid rgba(220,207,184,.7);padding:14px 0}
.wb-list li:last-child{border-bottom:0}
.wb-list a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--night);text-decoration:none;font:400 23px/1.25 var(--serif);min-height:30px}
.wb-list a:hover .wb-n{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.wb-x{font:400 15px/1 var(--sans);color:var(--lagoon)}
.wb-list small{display:block;color:var(--olive);font-size:14px;margin-top:3px}
.wb-bul{margin:8px 0 0;padding-left:18px;font-size:15px}.wb-bul li{margin:6px 0}
.wb-warn{border-left:2px solid var(--warn);padding-left:16px}
.wb-d{border-top:1px solid var(--rule);margin-top:26px;padding-top:18px}
.wb-d summary{cursor:pointer;min-height:30px;padding:4px 0}
.wb-tac{list-style:none;margin:10px 0 0;padding:0}.wb-tac li{padding:14px 0;border-bottom:1px solid rgba(220,207,184,.7)}.wb-tac p{margin:6px 0 0;font-size:16px}
.wb-t{width:100%;border-collapse:collapse;font-size:15px;margin-top:10px}.wb-t th,.wb-t td{text-align:left;padding:9px 4px;border-bottom:1px solid rgba(220,207,184,.7)}.wb-t th{color:var(--olive);font:500 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase}.wb-t td:last-child,.wb-t th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.wb-live{margin-top:26px;font-style:italic}.wb-disc{border-top:1px solid var(--rule);padding-top:16px}
.wb-wrap{margin-top:clamp(56px,9vw,96px)}
.wb-wrap>summary{cursor:pointer;font:400 clamp(24px,3.4vw,30px)/1.2 var(--serif);min-height:48px;display:flex;align-items:center;list-style:none}
.wb-wrap>summary::-webkit-details-marker{display:none}
.wb-wrap>summary:after{content:"+";margin-left:auto;font:300 26px/1 var(--sans);color:var(--olive)}
.wb-wrap[open]>summary:after{content:"–"}
.wb-wrap .wb{border-top:0;padding-top:0;margin-top:0}
.wb-wrap .wb h2{display:none}
@media (max-width:520px){.person{grid-template-columns:1fr 1fr}.person .pn{grid-column:1/-1}.hol{grid-template-columns:1fr 1fr}.hol .hl{grid-column:1/-1}.grid2{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}.grid3 .wb-f:last-child{grid-column:1/-1}.top{grid-template-columns:auto 1fr;}.top:before{display:none}.mark{grid-column:1}.top nav{grid-column:2}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
footer.f p{margin:0 0 8px}footer.f nav a{white-space:nowrap}
.pin h1{font:400 clamp(28px,4.4vw,36px)/1.1 var(--serif);margin:2px 0 4px}
.pin h1{font:400 clamp(28px,4.4vw,36px)/1.1 var(--serif);margin:2px 0 4px}
@media (max-width:520px){.q{min-height:220px}}
.q h2:focus{outline:none}
