:root{--bg:#171b19;--paper:#f0ede5;--ink:#202a25;--muted:#697069;--line:#d6d7cd;--brass:#b8a57f;--white:#f0ede5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b39863;outline-offset:4px}header{height:120px;max-width:1440px;margin:auto;padding:26px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff18}.brand{font-size:23px;letter-spacing:5px;font-weight:500;line-height:1.4}.brand span{display:block;font-size:9px;letter-spacing:3.8px;color:var(--brass)}.header-note,.header-link{font-size:10px;letter-spacing:1.8px}.header-note{color:#9baba0}.header-link{border-bottom:1px solid var(--brass);padding-bottom:8px}.layout{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr}.intro{position:relative;overflow:hidden;min-height:740px;background:#252a25}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:600}.portrait{position:absolute;inset:0;margin:0;overflow:hidden}.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:saturate(.72) brightness(.88) contrast(1.04)}.portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10151100 50%,#101511a8 82%,#101511df 100%);pointer-events:none}.portrait-copy{position:absolute;bottom:44px;left:9%;right:6%;z-index:1}.portrait-copy h1{font:normal clamp(34px,3.5vw,51px)/1.14 Georgia,serif;letter-spacing:-1.5px;margin:0 0 10px;color:#f0ede5}.portrait-copy p{color:#d4d3c9;font-size:12px;letter-spacing:.3px;margin:0}.booking{background:var(--paper);color:var(--ink);padding:52px 10% 30px;min-height:720px}h2{font:normal 42px/1.2 Georgia,serif;letter-spacing:-1.4px;margin:15px 0 8px}.muted{color:var(--muted);font-size:13px;margin-top:0}.steps{display:flex;justify-content:space-between;padding:26px 0 22px;margin-bottom:30px;border-bottom:1px solid var(--line);gap:12px}.steps span{font-size:10px;color:#888f87}.steps b{display:block;font-size:11px;font-weight:500}.steps .active{color:var(--ink)}.steps .active:first-letter{color:#857048}h3{font-size:18px;font-weight:500;margin:0 0 7px}.caption{color:var(--muted);font-size:12px;margin:0 0 24px}.choice{width:100%;border:1px solid var(--line);background:transparent;color:var(--ink);padding:22px;text-align:left;display:flex;align-items:center;justify-content:space-between;margin:12px 0;transition:background .2s,border .2s}.choice:hover,.choice.selected{border-color:#778372;background:#e5e6dc}.choice strong{font-size:18px;font-weight:500;display:block}.choice small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.choice .arrow{font-size:21px;color:#7a836e}.back{border:0;background:transparent;color:var(--muted);padding:0;margin:0 0 18px;font-size:12px}.primary{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:16px 22px;display:inline-block;text-align:center;width:100%;margin-top:16px}.primary:hover{background:#374338}.secondary{border:1px solid var(--line);background:transparent;padding:9px 14px;color:var(--ink);font-size:12px}.summary{background:#e4e5db;padding:16px 20px;margin:15px 0 20px;font-size:13px;border-left:2px solid #a49168}.summary span{display:block;color:var(--muted);font-size:12px}label{display:block;font-size:12px;margin:14px 0 6px}input,select,textarea{width:100%;border:1px solid #c4c9bd;border-radius:0;background:#faf8f2;padding:12px;color:var(--ink);min-height:46px}textarea{resize:vertical;min-height:110px}.row{display:flex;gap:14px}.row>*{flex:1;min-width:0}.times{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 22px}.time{padding:11px 14px;border:1px solid #bfc6b8;background:transparent;color:var(--ink)}.time:hover{background:#dfe3d6;border-color:#53614e}.date-title{font-size:12px;font-weight:600;margin-top:22px}.error{color:#8c352c;font-size:13px}.booking-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:32px;padding-top:20px;font-size:8px;letter-spacing:1.6px;color:#737b71}footer{max-width:1440px;margin:auto;display:flex;justify-content:space-between;padding:28px 5%;font-size:10px;color:#849187}.success-mark{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #a3ad96;border-radius:50%;margin-bottom:25px;font-size:24px}.empty{padding:25px 0;color:var(--muted)}.admin-main{max-width:1150px;margin:35px auto;padding:35px;background:var(--paper);color:var(--ink)}.admin-main h2{font-size:32px}.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px;margin:20px 0}.admin-tabs button.active{background:var(--ink);color:var(--paper)}.panel{border:1px solid var(--line);padding:22px;margin:18px 0}.record{border-top:1px solid var(--line);padding:18px 0}.record strong{font-weight:600}.record p{margin:5px 0;font-size:13px}.record button,.record a{margin:8px 8px 0 0}.badge{font-size:10px;background:#dfe3d6;padding:4px 8px;margin-left:10px}.admin-head{display:flex;justify-content:space-between;align-items:center}.login{max-width:420px;margin:40px auto}.small{font-size:12px;color:var(--muted)}.feed{word-break:break-all;font-size:12px}.calendar-list{max-height:410px;overflow-y:auto;padding-right:7px}.live{font-size:11px;color:#62735e;margin-top:20px}@media(min-width:1500px){.layout{border-left:1px solid #ffffff18;border-right:1px solid #ffffff18}}@media(max-width:800px){header{height:96px;padding:22px 6%}.brand{font-size:20px}.header-note{display:none}.layout{grid-template-columns:1fr}.intro{min-height:0;height:clamp(470px,135vw,700px)}.portrait img{object-position:50% 26%}.portrait-copy{bottom:30px;left:7%}.portrait-copy h1{font-size:38px}.booking{padding:36px 7%;min-height:600px}.booking h2{font-size:38px}.steps{margin-bottom:24px}footer{padding:24px 7%}.admin-main{margin:18px 12px;padding:22px}.row{flex-wrap:wrap}.row>*{min-width:120px}.admin-head{align-items:start;gap:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media(min-width:801px) and (max-width:1050px){.booking h2{font-size:35px}}
@media(max-width:400px){.portrait-copy h1{font-size:35px}.booking h2{font-size:34px}}

/* Repeating availability */
[hidden]{display:none!important}
#availability-form fieldset{border:1px solid var(--line);margin:20px 0;padding:16px}
#availability-form legend{font-size:12px;font-weight:600;padding:0 6px}
.weekday-options{display:flex;gap:8px;flex-wrap:wrap}
.weekday{display:flex;align-items:center;gap:7px;margin:0;padding:9px 10px;background:#e4e5db;cursor:pointer}
.weekday input{width:17px;height:17px;min-height:17px;margin:0;accent-color:var(--ink)}
.weekday span{font-size:12px}
.start-time-row{display:flex;gap:12px;align-items:end;margin-bottom:14px}
.start-time-row label{flex:1;margin:0;max-width:260px}
.start-time-row .secondary{min-height:46px}

@media(max-width:500px){#availability-form .row{display:block}#availability-form fieldset{padding:12px}.weekday{padding:9px 8px}.admin-main{padding:18px}}
.admin-head>.secondary{white-space:nowrap}
.slot-details{margin:24px 0}
.slot-details>summary{cursor:pointer;font-size:14px;font-weight:600}

.contact{margin-top:22px;padding-top:2px}.contact p{font-size:12px;color:var(--muted);margin:0 0 5px}.contact-number{font-size:17px;letter-spacing:.4px}.contact-actions{display:inline-flex;gap:10px;margin-left:18px;font-size:12px;color:var(--muted)}.contact-actions a,.small a{text-decoration:underline;text-underline-offset:3px}.client-card{border-top:1px solid var(--line);padding:16px 0}.client-card .record{border-top:0;padding:0}.background-check{display:flex;align-items:center;gap:10px;width:fit-content;margin:12px 0 0;font-size:12px;cursor:pointer}.background-check input{width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--ink)}
