/* Form pages: each form is its own page so analytics sees a pageview per form. Shared by every form and the thank you page. */

/* fields */
.reg .fld { display:grid; gap:6px; font-weight:600; font-size:.92rem; border:0; padding:0; margin:0; min-width:0; position:relative; }
.reg .lbl { font-weight:600; font-size:.92rem; padding:0; }
.reg .lbl .req, .reg legend .req { color:var(--blue); font-style:normal; font-weight:600; }
.reg .hint { font-weight:400; color:var(--muted); font-size:.85rem; }
.reg input[type=text], .reg input[type=email], .reg textarea { width:100%; box-sizing:border-box; font:inherit; font-weight:400; border:1px solid #cdbf9f; border-radius:8px; padding:11px 12px; background:#fff; color:var(--ink); }
.reg input:focus, .reg textarea:focus { outline:3px solid var(--blue-light); outline-offset:1px; border-color:var(--blue); }
.reg .row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px) { .reg .row2 { grid-template-columns:1fr; } }
.reg fieldset.fld { gap:8px; }
.reg legend { padding:0; margin-bottom:6px; }
.reg .opt { display:flex; gap:10px; align-items:center; font-weight:500; font-size:.95rem; }
.reg .opt input { width:18px; height:18px; margin:0; padding:0; border:0; accent-color:var(--blue-dark); flex:none; }

/* error state: border, icon and words, never colour alone */
.reg .err { display:flex; gap:6px; align-items:flex-start; color:#9b2c1d; font-weight:500; font-size:.85rem; line-height:1.35; }
.reg .err[hidden] { display:none; }
.reg .err::before { content:"!"; flex:none; width:16px; height:16px; border-radius:50%; background:#9b2c1d; color:#fff; font:700 .7rem/16px Inter,sans-serif; text-align:center; margin-top:1px; }
.reg .fld.bad input, .reg .fld.bad textarea, .reg .fld.bad .dd-btn { border-color:#9b2c1d; box-shadow:0 0 0 3px rgba(155,44,29,.12); }
.reg .fld.bad .lbl { color:#9b2c1d; }

/* dropdown (single and multiple) */
.dd { position:relative; }
.dd-btn { width:100%; box-sizing:border-box; text-align:left; font:inherit; font-weight:400; color:var(--ink); background:#fff; border:1px solid #cdbf9f; border-radius:8px; padding:11px 48px 11px 12px; cursor:pointer; position:relative; min-height:46px; }
.dd-btn::after { content:""; position:absolute; right:18px; top:50%; width:8px; height:8px; margin-top:-6px; border-right:2px solid var(--blue-dark); border-bottom:2px solid var(--blue-dark); transform:rotate(45deg); transition:transform .15s; }
.dd.open .dd-btn::after { transform:rotate(-135deg); margin-top:-2px; }
.dd-btn:focus-visible, .dd.open .dd-btn { outline:3px solid var(--blue-light); outline-offset:1px; border-color:var(--blue); }
.dd-btn.ph .dd-val { color:#7a7a6e; }
.dd-val { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dd-list { position:absolute; z-index:30; left:0; right:0; top:calc(100% + 6px); margin:0; padding:6px; list-style:none; background:#fff; border:1px solid #cdbf9f; border-radius:10px; box-shadow:0 14px 40px rgba(18,49,63,.18); max-height:280px; overflow:auto; }
.dd-list[hidden] { display:none; }
.dd-list li { padding:10px 12px; border-radius:7px; cursor:pointer; font-weight:500; font-size:.95rem; display:flex; align-items:center; gap:10px; }
.dd-list li:hover, .dd-list li:focus { background:var(--band); outline:none; }
.dd-list li[aria-selected="true"] { color:var(--blue-dark); font-weight:600; }
.dd[data-multi] .dd-list li::before { content:""; flex:none; width:18px; height:18px; border:2px solid #cdbf9f; border-radius:5px; background:#fff; box-sizing:border-box; }
.dd[data-multi] .dd-list li[aria-selected="true"]::before { background:var(--blue-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7.5l2.6 2.6L11 4.5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center/12px no-repeat; border-color:var(--blue-dark); }
.dd:not([data-multi]) .dd-list li[aria-selected="true"]::after { content:""; margin-left:auto; width:6px; height:11px; border-right:2px solid var(--blue-dark); border-bottom:2px solid var(--blue-dark); transform:rotate(45deg) translate(-2px,-2px); }

/* slot picker: arrows page through days, times sit underneath */
.sl-body { display:grid; gap:12px; }
.sl-nav { display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:stretch; }
.sl-arrow { font:inherit; width:40px; border:1px solid #cdbf9f; background:#fff; border-radius:8px; cursor:pointer; color:var(--blue-dark); font-size:1.2rem; font-weight:700; }
.sl-arrow:disabled { opacity:.35; cursor:default; }
.sl-arrow:not(:disabled):hover { background:var(--band); }
.sl-days { display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; min-width:0; }
.sl-day { font:inherit; border:1px solid #cdbf9f; background:#fff; border-radius:8px; padding:8px 2px; cursor:pointer; color:var(--ink); display:grid; gap:2px; text-align:center; min-width:0; }
.sl-day .w { font:500 .68rem/1 "JetBrains Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.sl-day .d { font-weight:600; font-size:.95rem; line-height:1.1; }
.sl-day .m { font-size:.72rem; color:var(--muted); }
.sl-day[aria-pressed="true"] { background:var(--blue-dark); border-color:var(--blue-dark); color:#fff; }
.sl-day[aria-pressed="true"] .w, .sl-day[aria-pressed="true"] .m { color:#d7ebf1; }
.sl-times { display:grid; grid-template-columns:repeat(auto-fill, minmax(86px, 1fr)); gap:8px; }
.sl-times.hr { grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); }
.sl-time { font:inherit; font-weight:600; font-size:.92rem; border:1px solid #cdbf9f; background:#fff; border-radius:8px; padding:9px 6px; cursor:pointer; color:var(--ink); }
.sl-time:hover { background:var(--band); }
.sl-time[aria-pressed="true"] { background:var(--blue-dark); border-color:var(--blue-dark); color:#fff; }
.sl-pick { margin:0; font-size:.88rem; font-weight:600; color:var(--blue-dark); }
.slots .tz { margin:0; font-size:.82rem; font-weight:400; color:var(--muted); }
.reg .fld.bad .sl-day, .reg .fld.bad .sl-time, .reg .fld.bad .sl-arrow { border-color:#9b2c1d; }

.sum { background:var(--band); border-radius:10px; padding:14px 16px; display:grid; gap:6px; font-size:.95rem; }
.sum div { display:flex; justify-content:space-between; gap:12px; }
.sum .tot { border-top:1px solid #cdbf9f; padding-top:8px; font-weight:600; }
.btn.go { border:0; cursor:pointer; font:inherit; font-weight:600; justify-self:start; }
.reg .status { margin:0; font-weight:600; color:var(--blue-dark); }
.reg .status[hidden] { display:none; }

/* thank you and email */
.done { background:var(--card); border:2px solid var(--blue); border-radius:16px; padding:26px; }
.done h2 { margin-top:0; }
.done dl { margin:12px 0 0; display:grid; grid-template-columns:auto 1fr; gap:6px 16px; }
.done dt { font:500 .72rem/1.9 "JetBrains Mono",monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.done dd { margin:0; }
.calbtns { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.calbtn { display:inline-flex; gap:8px; align-items:center; font:inherit; font-weight:600; font-size:.92rem; text-decoration:none; color:var(--blue-dark); background:#fff; border:2px solid var(--blue-dark); border-radius:10px; padding:10px 14px; cursor:pointer; }
.calbtn:hover { background:var(--band); }
.calbtn svg { flex:none; }

.reg .formhd h2 { margin:0 0 4px; font-size:1.3rem; }
.reg .formhd p { margin:0; color:var(--muted); font-weight:400; }
.sl-day:disabled { background:#f1ebdd; border-color:#e2d6bc; color:#a49c88; cursor:not-allowed; }
.sl-day:disabled .w, .sl-day:disabled .m { color:#b3ab97; }
.sl-day:disabled .d { text-decoration:line-through; }
.sl-empty { margin:0; padding:14px; border:1px dashed #cdbf9f; border-radius:8px; color:var(--muted); font-weight:500; font-size:.92rem; }


.fcopy { display:grid; gap:0; align-content:start; }
.fcopy h1 { margin-bottom:0; }
.fcopy .body { color:var(--muted); font-size:1.05rem; margin:0 0 24px; }
.fillus .heroimg { max-width:none; }
.fillus .sunwrap { max-width:520px; }
.formpage .pagehero { align-items:start; }
.reg .status.bad { color:#9b2c1d; }
.reg .note.soon { background:var(--band); border-radius:10px; padding:12px 14px; font-weight:500; color:var(--ink); }
.btn.go[disabled] { opacity:.6; cursor:default; }
[hidden] { display: none !important; }
