/* ──────────────────────────────────────────────────────────────────────────
 * scheduler.css — shared styles for the "Schedule your survey" booking form.
 *
 * The form markup is injected on every page by build.js (between the
 * <!-- BUILD:scheduler-* --> markers). This file + scheduler.js make it
 * self-contained, so it renders and animates correctly even on pages that
 * don't carry the homepage's global styles.
 *
 * Relies only on the shared design tokens (--ink-*, --paper, --mist) and the
 * .btn rule, which are defined on every page. Heading (.sec-h) and reveal
 * animation rules are scoped under .sched-sec so they never touch other
 * content on a page (and never conflict with the homepage's global copies).
 * ────────────────────────────────────────────────────────────────────────── */

/* Clear the fixed nav on article/legal pages when jumping to #book. */
#book{scroll-margin-top:90px}

/* Section heading + reveal-on-scroll, scoped to the scheduler. */
.sched-sec .sec-h{text-align:center;font-family:"Fraunces",serif;font-weight:300;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.08;letter-spacing:-.025em;max-width:24ch;margin:0 auto clamp(2.4rem,5vw,3.4rem)}
.sched-sec .sec-h em{font-style:italic;color:var(--ink-55)}
.sched-sec .reveal{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.sched-sec .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.sched-sec .reveal{opacity:1;transform:none}}

/* ──────── Scheduler ──────── */
/* Full-viewport, vertically-centered section. Mirrors the homepage's generic
   .full rule so the form is self-contained on pages that don't define .full
   (articles, privacy, terms); values match .full exactly so the homepage,
   which also carries .full, renders identically. */
.sched-sec{text-align:center;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,8vw,7rem) 0;position:relative}
@media (max-width:860px),(max-height:740px){.sched-sec{min-height:auto;padding:clamp(4rem,12vw,6rem) 0}}
.sched-intro{color:var(--ink-55);font-weight:300;font-size:1.08rem;max-width:42ch;margin:0 auto clamp(2.4rem,5vw,3.2rem)}
.sched-card{max-width:560px;margin:0 auto;text-align:left;border:1.5px solid rgba(26,26,46,.22);border-radius:16px;padding:clamp(1.8rem,4vw,2.8rem);background:var(--paper);box-shadow:0 24px 60px -38px rgba(26,26,46,.55)}
.sched-group{margin-bottom:.3rem}
.grp-h{font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-70);font-weight:600;margin-bottom:1.2rem;display:flex;align-items:center;gap:.6rem}
.grp-h .n{font-family:"Fraunces",serif;font-weight:400;color:var(--ink-40);font-size:.98rem}
.sched-div{height:1px;background:var(--ink-12);margin:1.5rem 0}

.sched-est{background:rgba(26,26,46,.05);border:1px solid var(--ink-12);border-radius:10px;padding:1.4rem 1.5rem;text-align:center;margin-top:1.2rem;margin-bottom:.2rem}
.sched-est .est-lbl{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-55);font-weight:600;margin-bottom:.5rem}
.sched-est .est-num{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(1.7rem,4.4vw,2.4rem);letter-spacing:-.02em;line-height:1;margin-bottom:.5rem;color:var(--ink)}
.sched-est .est-basis{font-size:.82rem;color:var(--ink-55);font-weight:300}

/* Boat-type pills */
.boat-types{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem}
@media(max-width:480px){.boat-types{grid-template-columns:1fr 1fr}}
.boat-type{font-family:inherit;font-size:.92rem;font-weight:500;color:var(--ink-85);background:var(--paper);border:1.5px solid rgba(26,26,46,.28);border-radius:9px;padding:.85rem .4rem;cursor:pointer;transition:border-color .2s,background .2s,color .2s;text-align:center}
.boat-type:hover:not(.sel){border-color:var(--ink);background:var(--ink-12)}
.boat-type.sel{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.boat-type:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(26,26,46,.15)}

.fld{margin-bottom:1.2rem}
.fld label{display:block;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-70);font-weight:600;margin-bottom:.55rem}
.fld input{width:100%;background:var(--paper);border:1.5px solid rgba(26,26,46,.28);color:var(--ink);font-family:inherit;font-size:1.1rem;padding:.95rem 1.05rem;border-radius:9px;transition:border-color .2s,box-shadow .2s}
.fld input::placeholder{color:var(--ink-40)}
.fld input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(26,26,46,.15)}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:480px){.fld-row{grid-template-columns:1fr}}

.len-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3rem}
.len-val{font-weight:600;font-size:1.18rem;color:var(--ink)}
.len-val b{font-weight:700}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;background:rgba(26,26,46,.2);border-radius:3px;margin:.9rem 0;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--ink);cursor:pointer;border:3px solid var(--paper);box-shadow:0 2px 10px -2px var(--ink)}
input[type=range]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--ink);cursor:pointer;border:3px solid var(--paper)}

.cal{border:1.5px solid rgba(26,26,46,.22);border-radius:10px;padding:1.1rem;margin-bottom:1.2rem}
.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem}
.cal-head .m{font-weight:600;font-size:1.08rem;color:var(--ink)}
.cal-nav{display:flex;gap:.4rem}
.cal-nav button{width:40px;height:40px;border:1.5px solid rgba(26,26,46,.28);background:var(--paper);border-radius:8px;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:.3s;font-family:inherit}
.cal-nav button:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}
.cal-nav button:disabled{opacity:.25;cursor:not-allowed}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-grid .dow{text-align:center;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-45);font-weight:600;padding:.45rem 0}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1rem;border-radius:8px;cursor:pointer;transition:.2s;color:var(--ink-85);font-weight:500}
.cal-day:hover:not(.off):not(.sel){background:var(--ink-12)}
.cal-day.off{color:var(--ink-25);cursor:not-allowed}
.cal-day.sel{background:var(--ink);color:#fff;font-weight:600}
.cal-day.empty{cursor:default}

.sched-confirm{width:100%;justify-content:center;margin-top:1.8rem;padding:1.3rem;font-size:1.05rem}

.sched-done{display:none;text-align:center;max-width:640px;margin:0 auto;border:1px solid var(--ink-25);border-radius:16px;padding:clamp(2.5rem,5vw,3.5rem);background:var(--paper)}
.sched-done.show{display:block}
.done-ic{width:56px;height:56px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;margin:0 auto 1.4rem}
.sched-done h3{font-family:"Fraunces",serif;font-weight:300;font-size:1.9rem;letter-spacing:-.01em;margin-bottom:1rem}
.sched-done p{color:var(--ink-70);font-weight:400;max-width:54ch;margin:0 auto;line-height:1.6}
.sched-done p strong{color:var(--ink);font-weight:600}
.sched-done .done-msg p + p{margin-top:1.15rem}
.sched-sec.done-mode{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,4rem) 0}
.sched-sec.done-mode .sec-h,
.sched-sec.done-mode .sched-intro{display:none}
