/* Zone website - booking path. Logo colours: charcoal, teal, pink (Neil, 24-09-2026). */
:root{--ink:#172326;--ink-2:#44534F;--mute:#6B7876;--teal:#2A8794;--teal-d:#1F6A74;--teal-l:#E4F3F5;--pink:#E62B5A;--pink-d:#B81646;--pink-l:#FCE6EC;--bg:#F7F6F3;--card:#fff;--line:#E3E0DA;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box}
body{margin:0;font-family:"Jost",Futura,"Century Gothic",sans-serif;color:var(--ink);background:var(--bg);font-size:17px;line-height:1.5}
a{color:var(--teal-d)}
[hidden]{display:none!important}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;padding-top:calc(14px + env(safe-area-inset-top));background:#fff;color:var(--ink);border-bottom:1px solid var(--line);flex-wrap:wrap}
.top a{color:var(--teal-d)}
.top a.logo{color:var(--ink);text-decoration:none;font-size:28px;font-weight:800;letter-spacing:2px;line-height:1}
.logo b{font-weight:800}
.logo span{color:var(--pink)}
.top a.logo img{display:block;height:36px;width:auto}
.help{font-size:14px;color:var(--mute)}
.sitenav{display:flex;gap:20px;flex-grow:1;margin-left:24px}.sitenav a{color:var(--ink);text-decoration:none;font-weight:500;font-size:15px}
@media (max-width:860px){.sitenav{display:none}}
.testbar{background:#FFF4CC;color:#5C4A00;text-align:center;padding:8px 16px;font-size:14px;font-weight:600}
.wrap{max-width:1080px;margin:0 auto;padding:24px 16px 48px}
.foot{text-align:center;font-size:14px;color:var(--mute);padding:24px 16px 40px}
h1{font-size:40px;line-height:1.05;margin:8px 0 6px;letter-spacing:-.5px}
h2{font-size:24px;margin:0 0 8px}
.lead{color:var(--ink-2);margin:0 0 22px;max-width:640px}
.eyebrow{font-size:12px;letter-spacing:3px;font-weight:600;color:var(--pink);text-transform:uppercase}
.steps{display:flex;gap:6px;margin:0 0 18px;flex-wrap:wrap;padding:0;list-style:none}
.steps li{font-size:13px;font-weight:600;padding:6px 12px;border-radius:4px;background:#fff;color:var(--mute)}
.steps li.on{background:var(--ink);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.card{background:var(--card);border-radius:4px;padding:20px;display:flex;flex-direction:column;gap:8px}
.card.city-h{background:none;padding:0}
.price{font-size:22px;font-weight:800}
.price small{font-size:14px;font-weight:500;color:var(--mute)}
.pill{display:inline-block;font-size:14px;font-weight:600;padding:6px 12px;border-radius:4px;width:fit-content}
.pill.hot{background:var(--pink-l);color:var(--pink-d)}
.pill.ok{background:var(--teal-l);color:var(--teal-d)}
.pill.full{background:#EEE;color:var(--mute)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:4px;padding:14px 22px;
     font:600 17px "Jost",sans-serif;cursor:pointer;text-decoration:none;min-height:48px}
.btn.primary{background:var(--pink);color:#fff}
.btn.primary:hover{background:var(--pink-d)}
.btn.dark{background:var(--ink);color:#fff}
.btn.ghost{background:#fff;color:var(--ink);border:2px solid var(--line)}
.btn:focus-visible,input:focus-visible,label.opt:focus-within{outline:3px solid var(--teal);outline-offset:2px}
.opts{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.opt-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border:2px solid var(--line);
         border-radius:4px;text-decoration:none;color:var(--ink);flex-wrap:wrap}
.opt-row:hover{border-color:var(--teal)}
.opt-row>span:first-child{flex:1 1 240px}
.opt-row .price{white-space:nowrap}
.opt-row .when{font-weight:600}
.opt-row .dates{font-size:14px;color:var(--mute)}
.opt-row.full{opacity:.7}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
@media (max-width:860px){.layout{grid-template-columns:1fr}.summary{order:-1;position:static}h1{font-size:32px}}
.summary{position:sticky;top:16px}
.summary dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:6px 0 0;font-size:15px}
.summary dt{color:var(--mute)}
.summary dd{margin:0;font-weight:600;text-align:right}
fieldset{border:0;padding:0;margin:0 0 22px}
legend{font-size:20px;font-weight:700;margin-bottom:10px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
label.f{display:flex;flex-direction:column;gap:4px;font-size:15px;font-weight:600}
label.f span{font-weight:400;color:var(--mute);font-size:13px}
input[type=text],input[type=email],input[type=tel]{font:inherit;font-size:17px;padding:12px 14px;border:2px solid var(--line);border-radius:4px;background:#fff;min-height:48px}
label.opt{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:2px solid var(--line);border-radius:4px;background:#fff;cursor:pointer}
label.opt:has(input:checked){border-color:var(--ink);background:#FAF9F7}
label.opt input{margin-top:5px;width:20px;height:20px;accent-color:var(--ink)}
label.opt b{display:block}
label.opt .sub{font-size:14px;color:var(--mute)}
details.sched{font-size:14px;margin-top:4px}
details.sched table{border-collapse:collapse;margin-top:6px}
details.sched td{padding:2px 10px 2px 0}
details.sched td:last-child{text-align:right}
.errors{background:var(--pink-l);color:var(--pink-d);border-radius:4px;padding:12px 16px;margin:0 0 18px}
.errors ul{margin:4px 0 0;padding-left:20px}
.note{font-size:14px;color:var(--mute)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--ink)}
.hidden{display:none}
.big-tick{width:64px;height:64px;border-radius:4px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:34px}
.next{counter-reset:n;list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:10px}
.next li{counter-increment:n;display:flex;gap:12px}
.next li::before{content:counter(n);flex:0 0 30px;height:30px;border-radius:4px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}
/* ---- the Zone app (residents and guarantors) ---- */
.app{max-width:620px;margin:0 auto}
.app-nav{display:flex;gap:18px;justify-content:flex-end;font-size:15px;margin:-8px 0 10px}
.app-signout{text-align:right;font-size:14px;margin:-10px 0 6px}.app-signout a{color:var(--mute)}
.app-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0 0 18px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:6px}
.app-tabs a{padding:10px 6px;border-radius:4px;font-size:15px;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap;text-align:center}
.app-tabs a:hover{background:#F2F0EC}
.app-tabs a.on{background:var(--ink);color:#fff}
@media (max-width:560px){.app-tabs{gap:2px;padding:3px}.app-tabs a{padding:9px 2px;font-size:13px}}
.studio{background:var(--ink);color:#fff;border-radius:4px;padding:20px 22px;display:flex;flex-direction:column;gap:4px}
.studio .eyebrow{color:#F6A5BC}
.studio strong{font-size:24px}
.studio span{color:#D6D2CE;font-size:15px}
.tasks{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.tasks li{background:#fff;border-radius:4px;padding:14px 16px;display:flex;gap:14px;align-items:flex-start}
.tasks .dot{flex:0 0 28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}
.tasks li.done .dot{background:var(--teal-l);color:var(--teal-d)}
.tasks li.todo .dot{background:var(--pink);color:#fff}
.tasks li.wait .dot{background:#EEE;color:var(--mute)}
.tasks .what{flex:1;display:flex;flex-direction:column;gap:2px}
.tasks .what b{font-size:17px}
.tasks .what span{font-size:15px;color:var(--ink-2)}
.tasks .go{align-self:center;white-space:nowrap}
.tasks .btn.go{padding:10px 16px;min-height:40px;font-size:16px}
.tasks li.todo{box-shadow:0 0 0 2px var(--pink)}
.tasks li.tap{cursor:pointer}
.tasks li.tap:active{transform:scale(.99)}
.tasks li.tap .what b::after{content:' \203A';color:var(--mute);font-weight:600}
.howto{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}
html{scroll-behavior:smooth}
#sign{scroll-margin-top:12px}
.msg{border-radius:4px;padding:12px 16px;margin:0 0 14px;font-weight:600}
.msg.ok{background:var(--teal-l);color:var(--teal-d)}
.msg.bad{background:var(--pink-l);color:var(--pink-d)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.slots label{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:2px solid var(--line);border-radius:4px;background:#fff;cursor:pointer}
.slots label:has(input:checked){border-color:var(--ink);background:#FAF9F7}
.slots input{position:absolute;opacity:0}
.stmt{width:100%;border-collapse:collapse;font-size:15px;background:#fff;border-radius:4px;overflow:hidden}
.stmt td,.stmt th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.stmt .num{text-align:right;white-space:nowrap}
textarea{font:inherit;font-size:17px;padding:12px 14px;border:2px solid var(--line);border-radius:4px;background:#fff;width:100%}
input[type=date],input[type=file]{font:inherit;font-size:17px;padding:10px 12px;border:2px solid var(--line);border-radius:4px;background:#fff;min-height:48px}
/* Wayfinder look (26-09-2026): same type and colours as the website */
.card{border:1px solid var(--line)}
.price,.bc-price b,.amt,td.am{font-family:var(--mono)}
.price{font-weight:600;letter-spacing:-.02em}
.eyebrow{font-family:var(--mono);letter-spacing:.08em;color:var(--teal);font-weight:500}
.steps li{border:1px solid var(--line);font-family:var(--mono);font-weight:500;letter-spacing:.02em}
.steps li.on{background:var(--teal);border-color:var(--teal)}
h1,h2{letter-spacing:-.02em;font-weight:600}

/* ---- pay by bank transfer (under Pay by bank) ---- */
.or{display:flex;align-items:center;gap:12px;color:var(--mute);font-size:14px;margin:4px 0}.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
.transfer{display:flex;flex-direction:column;gap:10px}
.transfer h2{font-size:22px;margin:0}.transfer p{margin:0}
.bt{margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.bt>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--line);background:#fff}
.bt>div:first-child{border-top:0}
.bt dt{font-size:14px;color:var(--mute)}.bt dd{margin:0;display:flex;align-items:center;gap:10px;text-align:right;font-weight:600}
.bt .mono{font-family:var(--mono);font-size:16px;letter-spacing:.03em}
.bt .ref{background:var(--teal-l)}.bt .ref dt{color:var(--teal-d);font-weight:600}
.copy{font:inherit;font-size:13px;font-weight:600;padding:5px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--teal-d);cursor:pointer;min-width:62px}
.copy.ok{background:var(--teal-d);color:#fff;border-color:var(--teal-d)}
.abroad summary{cursor:pointer;font-weight:600;color:var(--teal-d);margin-bottom:8px}
@media (max-width:420px){.bt>div{flex-direction:column;align-items:flex-start;gap:4px}.bt dd{text-align:left}}
