/* ==========================================================================
   Theme: Mono. The quiet alternative: white, near-black, Public Sans light,
   hairline rules, no colour at all except the booked state. Lots of air.
   ========================================================================== */
:root {
  --paper:        #FFFFFF;
  --paper-2:      #F6F6F6;
  --paper-3:      #ECECEC;
  --dark:         #111111;
  --dark-2:       #1A1A1A;
  --ink:          #111111;
  --ink-soft:     #444444;
  --ink-faint:    #666666;
  --accent:       #111111;
  --accent-hi:    #000000;
  --accent-lite:  #BBBBBB;
  --accent-wash:  #F0F0F0;
  --rule:         #E2E2E2;
  --rule-strong:  #111111;
  --on-dark:      #FFFFFF;
  --on-dark-soft: #BBBBBB;
  --f-display: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --f-read:    "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --f-ui:      "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --section-y: clamp(5.5rem, 13vw, 11rem);
}
body::before { display: none; }

h1, h2, h3, .u-display, .price__amount, .head__num b, .cal__title, .daygroup__label,
.booker__legend, .contact-item a, .contact-item p, .wiz__summary-v, .booker__chosen-line,
.mobile-nav a, .splash__mark {
  font-family: var(--f-display);
  font-variation-settings: normal;
  font-weight: 300;
  letter-spacing: -0.03em;
  line-height: 1.04;
}
.hero__title { font-size: clamp(2.75rem, 7vw, 5.75rem); max-width: 16ch; }
.hero__title em { font-style: normal; font-weight: 500; color: var(--ink); }
.head__title { font-size: clamp(2rem, 4.2vw, 3.25rem); }
.prose, .hero__lede, .head__lede, .bio p, .location address, .receipt dd, .slots__prompt, .booker__empty {
  font-family: var(--f-read); font-weight: 300; letter-spacing: -0.005em;
}
.prose { line-height: 1.6; }
.prose--lead > p:first-of-type::first-letter { all: unset; }

/* Uppercase, tracked small labels; everything square and thin. */
.nav a, .head__num span, .eyebrow, .bio .bio__h, .contact-item .k, .creds__k, .cal__dow,
.wiz__steps, .field label, .booker__note, .site-footer__legal {
  text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.6875rem; font-weight: 500;
}
.nav a { color: var(--ink); }
.nav a::after { background: var(--ink); }

.btn, .nav-toggle, .cal__nav, .cal__cell, .cal__day, .pillset label, .daygroup__slots label,
.field input, .field select, .field textarea, .receipt__ref, .skip-link, .tag,
.profile__portrait img, .map__frame, .wiz__steps li span { border-radius: 0 !important; }
.btn { font-weight: 500; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem; min-height: 50px; padding-inline: 1.75rem; }
.btn--primary { background: var(--ink); color: #fff; }
.btn--primary:hover { background: #000; }
.btn--ghost { border-color: var(--ink); color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: #fff; }

.site-header { background: rgba(255,255,255,0.9); }
.section--warm { background: var(--paper); }
#nicholas.section { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
#book.section { background: var(--paper-2); }
.head__num { border-top-width: 1px; }
.head__num b { font-size: 0.6875rem; letter-spacing: 0.16em; font-weight: 500; }
.bio .bio__h { color: var(--ink); border-top-color: var(--rule); }

.cal__day { border-color: var(--rule-strong); font-weight: 500; }
.cal__day::after { background: var(--ink); }
.cal__day[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.cal__day[aria-pressed="true"]::after { background: #fff; }
.daygroup__slots label { border-color: var(--rule-strong); font-weight: 500; }
.daygroup__slots input:checked + label { background: var(--ink); border-color: var(--ink); color: #fff; }
.wiz__steps li[aria-current="step"] span, .wiz__steps li.is-done span { background: var(--ink); border-color: var(--ink); }
.wiz__summary, .manage__confirm, .booker__alert { border-left-color: var(--ink); }
.wiz__summary-v, .booker__chosen-line strong { color: var(--ink); }
.map__facade { background: var(--paper-2); }
.map__facade svg { color: var(--ink); }

.site-footer { background: var(--paper); border-top-color: var(--rule); }
.creds__logo--coru { filter: grayscale(1); }
.creds__logo--iscp { filter: grayscale(1); }

.splash { background: #fff; }
.splash__mark { font-weight: 300; letter-spacing: -0.03em; }
.splash__rule { background: var(--ink); }
.splash__line { font-weight: 500; }
