@font-face{font-family:Manrope;src:url('/assets/body.woff2') format('woff2');font-weight:200 800;font-display:swap}
@font-face{font-family:Fraunces;src:url('/assets/display.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--paper:#faf6ed;--ink:#172f45;--sub:#485d67;--line:#c6cbbf;--white:#fffdf8;--coral:#f38655;--danger:#963a25;--focus:#075d81;color-scheme:light;scrollbar-color:var(--sub) var(--paper)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:500 1rem/1.55 Manrope,Arial,sans-serif;caret-color:var(--ink)}
::selection{background:#f7bc9e;color:var(--ink)}
[hidden]{display:none!important}
a{color:inherit;text-underline-offset:3px}
a:hover{color:var(--danger)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.skip,.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%)}
.skip:focus{position:fixed;top:8px;left:8px;padding:10px;width:auto;height:auto;clip-path:none;color:white;background:var(--ink);z-index:3}
header{border-bottom:1px solid var(--line)}
.bar,.shell{width:min(calc(100% - 40px),1080px);margin:auto}
.bar{height:77px;display:flex;align-items:center;justify-content:space-between}
.brand{display:inline-flex;gap:11px;align-items:center;text-decoration:none;font:600 1.45rem/1 Fraunces,Georgia,serif;letter-spacing:-.03em}
.brand img{object-fit:contain}
.brand small{display:block;margin-top:4px;font:750 .69rem/1.1 Manrope,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.shell{padding:38px 0 78px}
h1,h2,h3,p{margin:0}
h1{font:550 2.9rem/1.12 Fraunces,Georgia,serif;letter-spacing:-.035em}
h2{font-size:1.55rem;line-height:1.22;letter-spacing:-.025em}
h3{font-size:1.15rem;line-height:1.35}
button,input,select{font:inherit;color:inherit}
button,select{min-height:44px}
button{border:1px solid var(--ink);border-radius:5px;background:var(--white);padding:8px 15px;font-weight:700;cursor:pointer}
button:hover{background:#ecece2}
button:active{background:#dadfd3}
button:disabled{cursor:wait;opacity:.66}
button.primary{background:var(--coral);border-color:var(--ink)}
button.primary:hover{background:#ffa474}
button.danger{background:var(--danger);color:var(--white);border-color:var(--danger)}
button.quiet{border-color:var(--line);background:transparent}
input,select{width:100%;min-width:0;border:1px solid #8c9c9c;border-radius:5px;background:var(--white);padding:9px 11px;min-height:44px}
input:disabled{opacity:.5}
label{display:grid;gap:5px;font-weight:700;font-size:.9rem}
form{display:grid;gap:17px}
form>button{justify-self:start}
#signin{max-width:570px;padding:26px 0}
#signin form{max-width:380px;margin-top:32px}
.intro,.sub,.hint,.heading p{color:var(--sub)}
.intro{font-size:1.08rem;margin:12px 0}
.heading{display:flex;align-items:end;justify-content:space-between;gap:20px}
.heading p,.sub,.hint{font-size:.9rem}
.tabs{display:flex;gap:22px;margin:24px 0 32px;border-bottom:1px solid var(--line)}
.tabs button{position:relative;padding:11px 1px;background:none;border:0;border-radius:0;color:var(--sub)}
.tabs button[aria-current]{color:var(--ink)}
.tabs button[aria-current]::after{content:'';position:absolute;bottom:-1px;height:3px;left:0;right:0;background:#ae4a27}
.section-head,.actions,.fields{display:flex;align-items:center;gap:12px}
.section-head{justify-content:space-between;flex-wrap:wrap}
.actions select{width:auto}
.sub{margin:9px 0 22px}
.hint{font-weight:500}
#hours{max-width:640px}
.weekrow{display:grid;grid-template-columns:minmax(100px,1fr) 1fr 1fr;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.daycheck{display:flex;align-items:center;gap:9px}
.daycheck input{width:17px;min-height:17px;accent-color:var(--ink)}
.fields label{flex:1}
#scheduleForm,#blockForm{max-width:650px}
#zipHelp{margin-top:-14px}
.block-wrap{margin-top:38px;border-top:1px solid var(--line);padding-top:24px}
.block-wrap>.hint{margin:4px 0 14px}
#blockList{margin:0 0 18px}
.blockrow,.service{border-bottom:1px solid var(--line);padding:15px 0}
.blockrow{display:flex;align-items:center;justify-content:space-between;gap:14px}
.service{grid-template-columns:1.25fr minmax(120px,.55fr) minmax(120px,.55fr) auto;align-items:end}
.service h3{align-self:center}
.service .service-scope{grid-column:1/4}
@media(max-width:650px){.service .service-scope{grid-column:1/-1}}
.empty{padding:28px 0;border-block:1px solid var(--line);color:var(--sub)}
.job{border-top:1px solid var(--line);padding:14px 0}
.job:last-child{border-bottom:1px solid var(--line)}
.job summary{display:grid;grid-template-columns:1.05fr 1.5fr auto 18px;gap:14px;align-items:center;cursor:pointer;min-height:48px;list-style:none}
.job summary::-webkit-details-marker{display:none}
.job summary::after{content:'';width:8px;height:8px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg);justify-self:center}
.job[open] summary::after{transform:rotate(225deg)}
.job summary strong,.job summary small{display:block}
.job summary small,.details dt{color:var(--sub);font-size:.85rem}
.state{font-size:.82rem;font-weight:720;color:var(--sub)}
.state.confirmed{color:#286448}
.details{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px;margin:16px 0;font-size:.94rem}
.details dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}
.jobtime,input[type=time],input[type=number]{font-variant-numeric:tabular-nums}
#notice{color:var(--ink);width:fit-content;max-width:min(620px,calc(100% - 30px))}
#notice:not(:empty){position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:4;padding:11px 16px;border:1px solid var(--ink);border-radius:5px;background:var(--white)}
#notice.error,#cancelError{color:var(--danger)}
dialog{background:var(--white);color:var(--ink);border:1px solid var(--ink);border-radius:8px;padding:24px;width:min(470px,calc(100% - 30px))}
dialog p{margin:14px 0}
dialog::backdrop{background:rgb(23 47 69 / .5)}
@media(max-width:650px){.bar,.shell{width:calc(100% - 32px)}.bar{height:66px}.shell{padding-top:28px}
h1{font-size:2.2rem}.heading{align-items:start;flex-direction:column;gap:7px}.tabs{gap:16px;margin-top:18px}.tabs button{font-size:.88rem}
.section-head{align-items:start}.job summary{grid-template-columns:1fr auto 15px;gap:7px}.jobtime{grid-column:1/-1}.job summary strong{font-size:.98rem}.service{grid-template-columns:1fr 1fr}.service h3{grid-column:1/-1}.service button{grid-column:1/-1}.weekrow{grid-template-columns:1fr 1fr;gap:8px}.daycheck{grid-column:1/-1}.fields{flex-wrap:wrap}.fields label{min-width:135px}.details{gap:6px 10px}.blockrow{flex-wrap:wrap}.actions{flex-wrap:wrap}}

