/* Portal layout uses the public site's Archivo, colours and button vocabulary. */
.portal { background:var(--bg,#0e0e0f);color:var(--ink,#ecebe7);font-family:var(--sans,Arial,sans-serif);line-height:1.6 }
.portal header{border-bottom:1px solid var(--rule);padding:20px var(--gutter);display:flex;justify-content:space-between;gap:20px;align-items:center}
.portal header a{text-decoration:none}.wordmark{font-size:20px;letter-spacing:.08em;line-height:1.05;font-weight:600}.wordmark span{display:block;font-size:10px;letter-spacing:.37em}
.portal nav{display:flex;gap:22px;align-items:center;font-size:14px}.portal main{max-width:1100px;margin:auto;padding:60px 28px}.portal h1,.portal h2,.portal h3{font-family:var(--sans);font-weight:600;font-stretch:112%;line-height:1.05;letter-spacing:-.025em}.portal h1{font-size:clamp(40px,6vw,70px);margin:12px 0 24px}.portal h2{font-size:30px;margin:0 0 20px}.portal h3{font-size:22px;margin:0 0 12px}.portal p{margin:16px 0}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;color:var(--red);font-weight:600}.intro{max-width:750px;margin-bottom:44px}.welcome{max-width:760px;margin:0 auto 70px}.welcome>p{max-width:630px}
.portal .button,.portal button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;background:var(--ink);color:var(--bg);border:0;border-radius:0;padding:12px 20px;font:600 16px/1.3 var(--sans);cursor:pointer;text-decoration:none}.portal .quiet,.portal button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.portal button:disabled{opacity:.55;cursor:wait}.portal [hidden]{display:none!important}
.portal label{display:block;margin:20px 0}.portal label>span{display:block;font-weight:500;margin-bottom:7px}.portal input,.portal textarea,.portal select{width:100%;padding:12px;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--ink);font:400 17px/1.4 var(--sans);color-scheme:dark}.portal textarea{resize:vertical;min-height:110px}.portal input[type=checkbox],.portal input[type=radio]{width:auto;margin:0 9px 0 0;accent-color:var(--red)}.portal .check{display:flex;gap:9px;align-items:flex-start}.portal .check input{margin-top:7px;min-width:18px;min-height:18px}.portal .small,.portal small{font-size:14px;color:var(--mute)}.portal .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.portal .card{padding:28px;background:var(--bg-2);border:1px solid var(--rule);margin:22px 0}.portal .card p{white-space:pre-wrap}.portal .row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:transparent;padding:0;font:inherit}.portal .row>*{flex:1}.portal .row .button,.portal .row button{flex:0 0 auto}.back{display:inline-block;margin-bottom:24px}.tag{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}.portal .steps{display:flex;gap:14px;flex-wrap:wrap;margin:18px 0;padding:0;list-style:none;font-size:13px;color:var(--mute)}.portal .steps .current{color:var(--ink);font-weight:600}.portal .steps li+li:before{content:'→';margin-right:12px}
.save{position:sticky;bottom:0;background:var(--bg);padding:16px 0 calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:2}.portal .error,#notice.error{color:#ffaca5;border-left:3px solid var(--red);padding:12px;background:#291718}#notice:empty{display:none}#notice{margin-bottom:25px}.portal video,.portal audio{max-width:100%;width:100%;display:block;margin:15px 0}.portal img.preview{width:100%;max-height:500px;object-fit:contain;background:var(--bg)}.portal pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:14px}.attachment{display:block;margin:9px 0;overflow-wrap:anywhere}.pick{border-top:1px solid var(--rule);padding:20px 0}.portal footer{max-width:1100px;margin:auto;padding:35px 28px 70px;border-top:1px solid var(--rule);font-size:13px}.portal details>summary{cursor:pointer;font-weight:600}.portal :is(button,a,input,textarea,select):focus-visible{outline:2px solid var(--red);outline-offset:4px}.booking-price{font-size:28px;font-weight:600}.booking-price span{font-size:17px;font-weight:400}.booking-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0;padding:24px 0;border-block:1px solid var(--rule)}.booking-steps b,.booking-steps span{display:block;font-size:14px}.booking-steps b{color:var(--red);margin-bottom:8px}.or{color:var(--mute)}#signin{margin-block:36px}#signin input[type=email]{max-width:480px}#signin-status{margin-top:20px}.portal table{width:100%;border-collapse:collapse;font-size:14px}.portal th,.portal td{text-align:left;padding:10px 4px;border-bottom:1px solid var(--rule)}
@media(max-width:600px){.portal header{padding:18px 20px}.portal nav{gap:12px;font-size:12px}.portal main{padding:34px 20px}.portal h1{font-size:42px}.portal .card{padding:20px}.portal .row{display:block}.portal .row>*{margin:10px 0}.wordmark{font-size:16px}.wordmark span{font-size:8px}.portal .quiet{padding:6px}.portal .grid{display:block}.booking-steps{grid-template-columns:repeat(2,1fr)}.portal button,.portal .button{white-space:normal;text-align:center}.portal .welcome{margin-bottom:40px}}

.portal.booking main{max-width:820px;padding-top:32px}.portal.booking .intro{margin-bottom:24px}.portal.booking h1{font-size:clamp(34px,5vw,50px)}.portal .booking-form .save{position:static}.portal.booking .back{margin-bottom:8px}
