:root {
  color-scheme: light;
  --ink: #242424;
  --muted: rgba(36, 36, 36, .66);
  --line: rgba(36, 36, 36, .16);
  --paper: #ffffff;
  --surface: #ffffff;
  --green-ink: #245b3b;
  --green-fill: #e3f2e6;
  --red-fill: #fae9e7;
  --red-ink: #a14a42;
  --error-ink: #b42318;
  --shadow: 0 18px 55px rgba(36, 36, 36, .08);
  font-family: Arial, system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.page-shell { min-height: 100dvh; }
.topline { height: 8px; background: var(--ink); }
.wrap { width: min(100% - 36px, 850px); margin: 0 auto; }
.masthead { display:flex; align-items:center; justify-content:space-between; padding: 27px 0 23px; border-bottom: 1px solid var(--line); }
.brand { display:flex; align-items:center; color: var(--ink); }
.brand-logo { display:block; width:auto; max-width:min(100%, 251px); height:auto; }
.hero { padding: 43px 0 25px; }
h1 { max-width:660px; margin:0; color:var(--ink); font-size:clamp(32px,5vw,47px); letter-spacing:-.045em; line-height:1.08; font-weight:700; }
.intro { max-width:620px; margin:16px 0 0; color:var(--muted); font-size:16px; line-height:1.65; }
.form-card { overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); margin: 9px 0 46px; }
.section { padding: 26px 30px 29px; }
.section + .section { border-top:1px solid var(--line); }
.section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:22px; }
.section h2 { margin:0; font-size:19px; letter-spacing:-.02em; }
.section-help { margin:7px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.required-note { margin-top:3px; color:var(--muted); font-size:12px; white-space:nowrap; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px 18px; }
.field label, .admin-label { display:block; margin-bottom:7px; color:var(--ink); font-size:13px; font-weight:700; }
.field-required { color:var(--ink); font-size:12px; font-weight:400; }
.field input, .times-input, .editor-input { width:100%; height:43px; border:1px solid var(--line); border-radius:6px; background:#fff; padding:0 12px; color:var(--ink); transition:border-color .16s, box-shadow .16s; }
.field input::placeholder, .times-input::placeholder { color:rgba(36, 36, 36, .48); }
.field input:focus, .times-input:focus, .editor-input:focus { border-color:rgba(36, 36, 36, .55); box-shadow:0 0 0 3px rgba(36, 36, 36, .08); outline:0; }
.field input[aria-invalid="true"], .times-input[aria-invalid="true"] { border-color:var(--error-ink); background:#fff9f8; }
.field input[aria-invalid="true"]:focus, .times-input[aria-invalid="true"]:focus { border-color:var(--error-ink); box-shadow:0 0 0 3px rgba(180, 35, 24, .13); }
.field-error, .row-error { min-height:0; color:var(--error-ink); font-size:12px; margin-top:5px; }
.field-error:empty, .row-error:empty { display:none; }
.days-head { align-items:center; margin-bottom:17px; }
.counter { flex:0 0 auto; color:var(--ink); font-size:12px; font-weight:700; padding:7px 10px; border-radius:20px; background:rgba(36, 36, 36, .07); }
.copy-status { min-height:18px; margin:0 0 8px; color:var(--muted); font-size:12px; }
.day-list { border-top:1px solid var(--line); }
.day-columns { display:grid; grid-template-columns:minmax(145px,1.05fr) minmax(185px,1.2fr) minmax(185px,1.15fr); gap:16px; padding:14px 0 4px; font-size:11px; color:var(--muted); }
.day-row { display:grid; grid-template-columns:minmax(145px,1.05fr) minmax(185px,1.2fr) minmax(185px,1.15fr); align-items:center; gap:16px; min-height:71px; padding:12px 0; border-bottom:1px solid var(--line); }
.day-date { font-size:14px; font-weight:700; color:var(--ink); }
.day-date small { display:inline-block; margin-left:5px; color:var(--muted); font-size:11px; font-weight:400; }
.day-occasion { display:block; margin-top:3px; color:#242424; font-size:12px; font-weight:400; line-height:1.35; }
.segmented { display:flex; width:max-content; padding:3px; gap:3px; border-radius:7px; background:rgba(36, 36, 36, .05); border:1px solid var(--line); }
.choice { min-width:76px; height:33px; border:0; border-radius:5px; background:transparent; color:var(--muted); font-size:13px; font-weight:700; transition:background .15s, color .15s, transform .15s; }
.choice:hover { transform:translateY(-1px); }
.choice[aria-invalid="true"] { outline:2px solid var(--error-ink); outline-offset:2px; }
.choice[aria-invalid="true"]:focus-visible { outline-color:var(--error-ink); }
.choice[aria-pressed="true"][data-status="Open"] { color:var(--green-ink); background:var(--green-fill); box-shadow:0 1px 3px rgba(27,83,47,.12); }
.choice[aria-pressed="true"][data-status="Closed"] { color:var(--red-ink); background:var(--red-fill); box-shadow:0 1px 3px rgba(117,51,44,.1); }
.time-wrap { display:flex; flex-direction:column; align-items:stretch; gap:4px; min-width:0; }
.time-wrap[hidden] { display:none; }
.times-input { height:38px; font-size:13px; }
.copy-button { align-self:flex-start; text-align:left; max-width:100%; padding:7px 11px; border:1px solid rgba(36, 36, 36, .16); border-radius:999px; background:rgba(36, 36, 36, .08); color:var(--ink); font-size:11px; font-weight:700; }
.copy-button:hover { background:rgba(36, 36, 36, .12); }
.unanswered { color:var(--muted); font-size:12px; }
.row-error { grid-column:2 / -1; margin-top:-6px; }
.form-alert { margin:0 30px 16px; padding:11px 13px; border:1px solid rgba(180, 35, 24, .3); border-radius:6px; background:#fff5f4; color:var(--error-ink); font-size:13px; line-height:1.45; }
.form-alert:empty { display:none; }
.form-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:21px 30px 25px; border-top:1px solid var(--line); background:rgba(36, 36, 36, .025); }
.submit-help { margin:0; max-width:450px; color:var(--muted); font-size:12px; line-height:1.5; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:45px; border:1px solid var(--ink); border-radius:6px; padding:0 19px; background:var(--ink); color:#fff; font-size:13px; font-weight:700; transition:background .16s, transform .16s; }
.primary-button:hover { background:rgba(36, 36, 36, .88); transform:translateY(-1px); }
.primary-button:active { transform:translateY(0); }
.primary-button[aria-busy="true"] { opacity:.8; cursor:wait; }
.primary-button svg { width:15px; height:15px; }
.footer { display:flex; justify-content:space-between; padding:0 0 28px; color:var(--muted); font-size:11px; }
.success-panel, .load-panel { background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); margin:22px 0 46px; padding:44px 40px; }
.success-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:rgba(36, 36, 36, .07); color:var(--ink); margin-bottom:21px; }
.success-icon svg { width:24px; height:24px; }
.success-panel h2 { margin:0; font-size:27px; letter-spacing:-.03em; }
.success-panel p { margin:10px 0 25px; max-width:520px; color:var(--muted); font-size:15px; line-height:1.6; }
.load-panel { color:var(--muted); font-size:14px; }
.load-panel button { margin-top:15px; border:1px solid var(--ink); border-radius:5px; background:#fff; padding:9px 13px; color:var(--ink); font-weight:700; }
.honeypot { position:absolute!important; left:-10000px!important; top:auto!important; width:1px!important; height:1px!important; overflow:hidden!important; }
@media (max-width:680px) {
 .wrap { width:min(100% - 28px, 520px); }
 .masthead { padding:20px 0 17px; }
 .brand-logo { max-width:min(100%, 220px); }
 .hero { padding:32px 0 21px; }
 .intro { font-size:14px; }
 .section { padding:22px 18px; }
 .contact-grid { gap:14px 12px; }
 .field input { height:42px; }
 .days-head { align-items:flex-start; }
 .day-row { grid-template-columns:1fr auto; gap:11px 10px; padding:14px 0; }
 .day-columns { display:none; }
 .day-date { grid-column:1 / -1; }
 .day-row > .segmented { grid-column:1; grid-row:2; }
 .day-row > .unanswered { grid-column:2; grid-row:2; justify-self:end; }
 .day-row > .time-wrap { grid-column:1 / -1; grid-row:3; }
  .time-wrap { align-items:stretch; gap:7px; }
  .times-input { flex:none; width:100%; min-width:0; height:52px; min-height:52px; padding:10px 12px; font-size:16px; line-height:1.35; }
  .copy-button { flex:none; min-height:44px; max-width:100%; padding:9px 12px; white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
 .row-error { grid-column:1 / -1; grid-row:4; margin-top:-5px; }
 .form-alert { margin:0 18px 14px; }
 .form-actions { align-items:stretch; flex-direction:column; padding:18px; }
 .primary-button { width:100%; }
 .success-panel, .load-panel { padding:31px 23px; }
 .footer { font-size:10px; gap:12px; }
}
@media(max-width:430px) {
 .contact-grid { grid-template-columns:1fr; }
 .section-head { gap:10px; }
 .required-note { font-size:10px; }
 .counter { font-size:11px; padding:7px 8px; }
 .choice { min-width:70px; }
}