/* Lansing Car Rentals — rentals site + partner portal
   Gold / black / white. Gold is the accent (CTAs, rules, highlights); text stays black or white.
   Palette continues the mentorship site (same ink, gold and cream values). */

@font-face { font-family: "LCR Serif"; src: url("/fonts/lcr-serif-var.woff") format("woff"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "LCR Serif"; src: url("/fonts/lcr-serif-italic-var.woff") format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }
/* Fallbacks scaled to the web fonts' proportions (measured): no heading reflow when fonts swap in. */
@font-face { font-family: "LCR Serif Fallback"; src: local("Georgia"), local("Times New Roman"), local("Liberation Serif"); size-adjust: 110%; ascent-override: 91%; descent-override: 25%; line-gap-override: 0%; }
@font-face { font-family: "Inter Fallback"; src: local("Arial"), local("Helvetica"), local("Liberation Sans"); size-adjust: 102%; ascent-override: 95%; descent-override: 24%; line-gap-override: 0%; }
@font-face { font-family: "Inter"; src: url("/fonts/inter-400.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fonts/inter-600.woff") format("woff"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fonts/inter-700.woff") format("woff"); font-weight: 700 800; font-display: swap; }

/* ===== One premium black/brown identity for every surface =====
   The homepage hero's background (brand black + a soft gold glow that reads as warm brown bleeding
   into the black) is THE page background now. Every section, the owner portal, the applicant flow and
   the signing screens use these tokens; nothing on screen is white or grey except the printable
   contract paper (.doc), which restores the light tokens below for legibility and printing. */
:root {
  --ink: #0b0b0c; --ink-2: #15130f; --ink-3: #221d16; --paper: #15130f; --cream: #0b0b0c; --cream-2: #2a241b;
  --line: #2e2820; --line-dark: #2b2620; --text: #f3f1ec; --muted: #b4afa4; --muted-dark: #b9b6ae;
  --gold: #c9a24a; --gold-light: #e2c47a; --gold-deep: #d9b45e; --danger: #f08a7e; --ok: #7fd09b; --warn: #e8c36a;
  /* Exactly the hero's glow (was .hero::before), reused everywhere. */
  --glow-gold: rgba(201, 162, 74, .16);
  --bg-hero: radial-gradient(800px 420px at 88% 8%, var(--glow-gold), transparent 62%), var(--ink);
  /* Same glow for content sections, centred vertically so adjacent sections meet seamlessly in black. */
  --bg-atmos: radial-gradient(800px 420px at 88% 50%, var(--glow-gold), transparent 62%), var(--ink);
  --bg-atmos-alt: radial-gradient(800px 420px at 12% 50%, var(--glow-gold), transparent 62%), var(--ink);
  /* Cards, panels and inputs: warm near-black with a faint gold lift at the top edge. */
  --bg-card: linear-gradient(180deg, rgba(201, 162, 74, .07), rgba(201, 162, 74, .015) 55%), #13110e;
  --bg-input: #0f0e0c; --line-input: #4a4033;
  /* Behind the six vehicle cut-outs: the hero glow, rising from beneath the vehicle. */
  --bg-vehicle: radial-gradient(70% 62% at 50% 64%, rgba(201, 162, 74, .2), transparent 72%), linear-gradient(180deg, #17130e, #0b0b0c);
  --radius: 14px; --radius-sm: 10px;
  --serif: "LCR Serif", "LCR Serif Fallback", Georgia, serif;
  --sans: "Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --gutter: 16px; --section-y: 68px;
  /* THE shared photo size. Every .photo on the site is exactly this wide, 3:2 tall. */
  --photo-w: calc(100vw - 32px);
}
@media (min-width: 700px) { :root { --gutter: 24px; --photo-w: 600px; --section-y: 92px; } }
@media (min-width: 960px) { :root { --gutter: 32px; --photo-w: 432px; --section-y: 108px; } }
@media (min-width: 1180px) { :root { --photo-w: 540px; } }

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: dark; background: var(--ink); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 86px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--sans); font-size: 16.5px; line-height: 1.65; color: var(--text); background: var(--ink); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: var(--gold-deep); text-underline-offset: 3px; }
a:hover { color: #fff; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; border-radius: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--gold); color: var(--ink); padding: 10px 16px; border-radius: 8px; font-weight: 700; }
.skip-link:focus { top: 12px; }
.container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--gutter); }
.container--narrow { max-width: 820px; }
.container--mid { max-width: 980px; }

/* Type */
/* ===== Heading system =====
   display  hero title            serif 600
   .h1      page title            serif 600   (application, scheduler, signing, owner pages)
   .h2      section title         serif 600
   .h3      card / panel title    serif 600
   .h4      small title, sans     sans 700
   All headings balance their lines and never hyphenate. */
:root {
  --fs-display: clamp(2.3rem, 1.55rem + 2.9vw, 3.4rem);
  --fs-h1: clamp(1.85rem, 1.4rem + 1.7vw, 2.55rem);
  --fs-h2: clamp(1.8rem, 1.3rem + 2vw, 2.65rem);
  --fs-h3: clamp(1.2rem, 1.08rem + 0.45vw, 1.5rem);
  --fs-h4: 1.04rem;
}
h1, h2, h3, h4, legend, .display, .h1, .h2, .h3, .h4 { text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
.display { font-family: var(--serif); font-weight: 600; font-size: var(--fs-display); line-height: 1.08; letter-spacing: -0.018em; }
.display em { font-style: italic; color: var(--gold-light); font-weight: 500; }
.h1 { font-family: var(--serif); font-weight: 600; font-size: var(--fs-h1); line-height: 1.14; letter-spacing: -0.012em; }
.h2 { font-family: var(--serif); font-weight: 600; font-size: var(--fs-h2); line-height: 1.14; letter-spacing: -0.012em; }
.h3 { font-family: var(--serif); font-weight: 600; font-size: var(--fs-h3); line-height: 1.25; letter-spacing: -0.005em; }
.h4, .steps h3, .steps h4 { font-family: var(--sans); font-weight: 700; font-size: var(--fs-h4); line-height: 1.35; }
.lead { font-size: clamp(1.05rem, 1.6vw, 1.2rem); line-height: 1.6; color: #e9e7e1; max-width: 36em; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; font-size: .76rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-light); }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--gold); }
.eyebrow--dark { color: var(--gold-deep); }
.fine { font-size: .84rem; line-height: 1.55; color: var(--muted-dark); }
.fine--dark { color: var(--muted); }
.muted { color: var(--muted); }
.i { width: 20px; height: 20px; flex: none; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 26px; border-radius: 999px; border: 2px solid transparent; font: 700 .98rem/1 var(--sans); letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: transform .15s ease, background .15s ease, box-shadow .15s ease; white-space: nowrap; }
.btn--gold { background: var(--gold); color: var(--ink); box-shadow: 0 10px 26px -12px rgba(201, 162, 74, .75); }
.btn--gold:hover { background: var(--gold-light); color: var(--ink); transform: translateY(-1px); }
.btn--dark { background: var(--ink); color: #fff; }
.btn--dark:hover { background: var(--ink-3); color: #fff; transform: translateY(-1px); }
.btn--outline { background: transparent; border-color: currentColor; color: inherit; }
.btn--outline:hover { background: rgba(201, 162, 74, .14); color: inherit; }
.section--dark .btn--outline, .hero .btn--outline { color: #fff; }
.btn--ghost { background: transparent; color: var(--text); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--gold); color: var(--text); }
.btn--danger { background: #fff; color: var(--danger); border-color: #e7b5ae; }
.btn--danger:hover { background: #fdf1ef; color: var(--danger); }
.btn--lg { min-height: 56px; padding: 0 32px; font-size: 1.04rem; }
.btn--sm { min-height: 40px; padding: 0 18px; font-size: .9rem; }
.btn--xs { min-height: 32px; padding: 0 12px; font-size: .82rem; }
.btn--block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
.cta-group { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 28px; }
.cta-group--center { justify-content: center; text-align: center; flex-direction: column; }
.cta-group--center .muted { margin: 0; font-size: .9rem; }
.linkbtn { background: none; border: 0; padding: 0; font: inherit; color: var(--gold-deep); text-decoration: underline; cursor: pointer; }

/* Test-mode banner */
.test-banner { background: #fff3d1; color: #5c4510; text-align: center; padding: 8px 16px; font-size: .86rem; border-bottom: 1px solid #e8d49a; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(11, 11, 12, .95); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line-dark); color: #fff; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 70px; }
.brand { flex: none; line-height: 0; }
.site-nav { align-items: center; }
.brand { display: inline-flex; align-items: center; }
.brand__logo { width: 104px; height: auto; }
@media (min-width: 700px) { .brand__logo { width: 120px; } }
.site-nav { display: none; gap: 26px; }
.site-nav a { color: #d8d5cd; text-decoration: none; font-size: .92rem; font-weight: 600; }
.site-nav a:hover { color: var(--gold-light); }
@media (min-width: 1000px) { .site-nav { display: flex; } }
.site-header__note { font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-light); font-weight: 700; }

/* Sections */
.section { padding: var(--section-y) 0; background: var(--bg-atmos); color: var(--text); }
/* Alternate the glow side so consecutive sections flow; every section edge is pure brand black. */
main > .section:nth-of-type(even) { background: var(--bg-atmos-alt); }
main > .section.hero, .hero { background: var(--bg-hero); }
.section--dark { color: #f3f1ec; }
.section--dark a:not(.btn) { color: var(--gold-light); }
.section-head { max-width: 720px; margin-bottom: 40px; }
.section-head--wide { max-width: 820px; }
.section-head p:not(.eyebrow) { color: var(--muted); font-size: 1.05rem; margin-top: 16px; max-width: 40em; }
.section--dark .section-head p:not(.eyebrow) { color: var(--muted-dark); }

/* Split rows: text + one photo. The photo column is exactly --photo-w wide. */
.split { display: grid; gap: 34px; align-items: center; }
.split__text > *:last-child { margin-bottom: 0; }
.split__text .h2, .split__text .h3 { margin-bottom: 18px; }
@media (min-width: 960px) {
  .split { gap: 56px; }
  .split--photo-right { grid-template-columns: minmax(0, 1fr) var(--photo-w); }
  .split--photo-left { grid-template-columns: var(--photo-w) minmax(0, 1fr); }
}
@media (max-width: 959.98px) { .split > .photo { justify-self: center; order: 2; } .split > .split__text { order: 1; } }

/* ===== THE PHOTO FRAME — shared by all ten photos ===== */
.photo { margin: 0; width: var(--photo-w); max-width: none; flex: none; }
.photo__frame { position: relative; width: var(--photo-w); aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: 0 22px 46px -30px rgba(0, 0, 0, .55); }
.photo__frame::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(201, 162, 74, .38); pointer-events: none; }
.photo__frame img { width: 100%; height: 100%; object-fit: cover; }
.photo__caption { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; font-size: .94rem; }
.photo__caption strong { font-family: var(--serif); font-size: 1.12rem; font-weight: 600; }
.photo__caption span { color: var(--muted); font-size: .86rem; letter-spacing: .06em; text-transform: uppercase; }

/* Vehicle showcase: same frame, laid out in a grid of --photo-w columns. */
.photo-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 36px 24px; grid-template-columns: var(--photo-w); justify-content: center; }
@media (min-width: 960px) { .photo-grid { grid-template-columns: repeat(2, var(--photo-w)); } }
.vehicle { margin: 0; }

/* Hero */
.hero { padding-top: 48px; position: relative; overflow: hidden; }
.hero .container { position: relative; }
.hero .display { margin-bottom: 20px; }
.stats { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 0; margin: 30px 0 10px; max-width: 520px; }
.stats li { display: flex; flex-direction: column; padding: 14px 14px 12px; border: 1px solid var(--line-dark); border-top: 2px solid var(--gold); border-radius: var(--radius-sm); background: var(--ink-2); }
.stats__value { font-family: var(--serif); font-size: clamp(1.5rem, 3.4vw, 2rem); font-weight: 600; color: #fff; line-height: 1.1; white-space: nowrap; }
.stats__star { color: var(--gold-light); font-size: .7em; margin-left: 4px; vertical-align: .1em; }
.stats__label { font-size: .82rem; color: var(--muted-dark); }
.stats--light li { background: var(--paper); border-color: var(--line); border-top-color: var(--gold); }
.stats--light .stats__value { color: var(--ink); }
.stats--light .stats__star { color: var(--gold-deep); }
.stats--light .stats__label { color: var(--muted); }

/* Steps */
.steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; counter-reset: s; }
@media (min-width: 820px) { .steps { grid-template-columns: repeat(3, 1fr); } .steps--five { grid-template-columns: repeat(5, 1fr); } }
@media (min-width: 820px) and (max-width: 1099.98px) { .steps--five { grid-template-columns: repeat(3, 1fr); } }
.steps li { padding: 24px 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.steps__n { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: var(--gold-light); font: 600 1rem/1 var(--serif); margin-bottom: 14px; }
.steps h3, .steps h4 { margin-bottom: 6px; }
.steps p { margin: 0; color: var(--muted); font-size: .96rem; }

/* Partner */
.options { display: grid; gap: 16px; margin-bottom: 56px; }
@media (min-width: 760px) { .options { grid-template-columns: 1fr 1fr; } }
.option { padding: 30px 28px; border-radius: var(--radius); background: var(--ink); color: #f3f1ec; border-top: 3px solid var(--gold); }
.option__tag { margin: 0 0 8px; font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-light); }
.option .h3 { color: #fff; margin-bottom: 8px; }
.option__min { margin: 0 0 14px; color: var(--muted-dark); }
.option__min strong { font-family: var(--serif); font-size: 1.7rem; color: var(--gold-light); font-weight: 600; margin-right: 4px; }
.option p:last-child { margin: 0; color: #d9d6cf; }
.partner__ops { margin-bottom: 56px; }
.checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.checks li { display: flex; gap: 12px; align-items: flex-start; }
.checks .i { color: var(--gold-deep); margin-top: 3px; }
.results { display: grid; gap: 18px; margin-bottom: 56px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--cream); }
@media (min-width: 900px) { .results { grid-template-columns: 1.1fr 1fr; gap: 32px; padding: 34px; } }
.results__table .h3 { margin-bottom: 8px; }
.ranges { width: 100%; border-collapse: collapse; margin-top: 14px; background: var(--paper); border-radius: var(--radius-sm); overflow: hidden; }
.ranges th { text-align: left; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-light); background: var(--ink); padding: 10px 14px; }
.ranges td { padding: 14px; border-top: 1px solid var(--line); font-weight: 700; }
.ranges td + td { font-family: var(--serif); font-size: 1.2rem; }
.ranges td .muted { font-family: var(--sans); font-size: .82rem; font-weight: 500; }
.results__caveats { padding: 20px 22px; border-radius: var(--radius-sm); background: var(--paper); border: 1.5px solid var(--gold); }
.results__caveats h4 { font-size: 1rem; margin-bottom: 8px; }
.results__caveats ul { margin: 0; padding-left: 18px; color: var(--text); font-size: .93rem; display: grid; gap: 8px; }
.partner__steps-title { margin-bottom: 18px; }

/* FAQ */
.faq__group { font-family: var(--sans); font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-deep); margin: 34px 0 6px; }
.faq { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 2px; cursor: pointer; font-family: var(--serif); font-size: 1.14rem; font-weight: 600; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__icon { position: relative; width: 22px; height: 22px; flex: none; border: 1.5px solid var(--gold-deep); border-radius: 50%; }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.6px; background: var(--gold-deep); transform: translate(-50%, -50%); }
.faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .2s; }
.faq__item[open] .faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq__answer { padding: 0 2px 20px; color: var(--muted); }
.faq__answer p { margin: 0; }

/* Contact */
.contact { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .contact { grid-template-columns: 1.2fr 1fr; } }
.contact__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.contact__list li { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border: 1px solid var(--line-dark); border-radius: var(--radius-sm); background: var(--ink-2); }
.contact__list .i { color: var(--gold-light); margin-top: 3px; }
.contact__list strong { display: block; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-dark); margin-bottom: 2px; }
.contact__list a { font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }

/* Footer */
.site-footer { background: #050506; color: var(--muted-dark); padding: 52px 0 40px; font-size: .9rem; border-top: 1px solid var(--line-dark); }
.site-footer a { color: var(--gold-light); }
.site-footer__inner { display: grid; gap: 28px; }
@media (min-width: 900px) { .site-footer__inner { grid-template-columns: 1fr 1.6fr; } .site-footer__fine { grid-column: 1 / -1; } }
.site-footer__logo { width: 150px; height: auto; margin-bottom: 10px; }
.site-footer__cols { display: grid; gap: 20px 28px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .site-footer__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr); } }
.site-footer__h { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: #fff; margin-bottom: 8px; }
.site-footer__fine { font-size: .8rem; border-top: 1px solid var(--line-dark); padding-top: 18px; margin: 0; }
.portal-footer { padding: 26px 0 34px; font-size: .84rem; color: var(--muted); border-top: 1px solid var(--line); background: var(--cream); }
.portal-footer p { margin: 0; }

/* Legal */
.legal h2 { margin: 30px 0 10px; }
.legal ul { padding-left: 20px; display: grid; gap: 8px; }

/* ===== Forms (application, owner) ===== */
.portal-section { background: var(--cream); min-height: 70vh; padding: 40px 0 72px; }
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; margin-bottom: 18px; }
@media (min-width: 700px) { .panel { padding: 30px; } }
.panel--center { text-align: center; }
.panel--dark { background: var(--ink); color: #f3f1ec; border-color: var(--ink); }
.panel__title { display: flex; align-items: baseline; gap: 12px; margin: 0 0 18px; }
.panel__title .h3 { margin: 0; }
.panel__num { font: 600 .8rem/1 var(--sans); letter-spacing: .14em; color: var(--gold-deep); }
.page-head { margin-bottom: 24px; }
.page-head .h1, .page-head .h2 { margin-bottom: 12px; }
.page-head .eyebrow { margin-bottom: 12px; }
.page-head p { color: var(--muted); max-width: 46em; }
.eligibility { display: grid; gap: 12px; margin-bottom: 18px; }
@media (min-width: 700px) { .eligibility { grid-template-columns: 1fr 1fr; } }
.eligibility > div { padding: 18px 20px; border-radius: var(--radius-sm); background: var(--ink); color: #eae7df; border-top: 2px solid var(--gold); }
.eligibility strong { color: var(--gold-light); font-family: var(--serif); font-size: 1.35rem; font-weight: 600; display: block; }
.fields { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 560px) { .fields--2 { grid-template-columns: 1fr 1fr; } .fields--3 { grid-template-columns: 2fr 1fr 1fr; } .field--full { grid-column: 1 / -1; } }
.field label, .field .label { display: block; font-weight: 700; font-size: .93rem; margin-bottom: 6px; }
.field .opt { font-weight: 500; color: var(--muted); }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid #cfc9bc; border-radius: var(--radius-sm); font: inherit; color: var(--text); background: #fff; }
.field textarea { min-height: 110px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold-deep); outline: 3px solid rgba(201, 162, 74, .35); outline-offset: 0; }
.field [aria-invalid="true"] { border-color: var(--danger); }
.field-error { color: var(--danger); font-size: .86rem; font-weight: 600; margin: 6px 0 0; }
.hint { font-size: .86rem; color: var(--muted); margin: 6px 0 0; }
.choice-grid { display: grid; gap: 12px; }
@media (min-width: 560px) { .choice-grid { grid-template-columns: 1fr 1fr; } }
.choice { position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border: 1.5px solid #cfc9bc; border-radius: var(--radius-sm); background: #fff; cursor: pointer; }
.choice:hover { border-color: var(--gold); }
.choice input { width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--ink); flex: none; }
.choice strong { display: block; }
.choice span { font-size: .9rem; color: var(--muted); }
.choice:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: #fffcf4; }
.check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.check input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--ink); flex: none; }
.cond[hidden] { display: none !important; }
.notice { padding: 14px 18px; border-radius: var(--radius-sm); margin-bottom: 18px; border: 1px solid var(--line); background: var(--paper); }
.notice--error { border-color: #e7b5ae; background: #fdf1ef; color: var(--danger); font-weight: 600; }
.notice--info { border-color: var(--gold); background: #fffaf0; }
.notice--ok { border-color: #a9d6b8; background: #eff8f2; color: var(--ok); font-weight: 600; }
.notice--warn { border-color: #e8cf8f; background: #fff8e6; color: #5c4510; }
.form-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 8px; }

/* Repeatable vehicles */
.vehicles { display: grid; gap: 12px; margin-top: 10px; }
.vrow { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px; background: #fdfcf9; }
.vrow__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-weight: 700; }
.vrow__grid { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
@media (min-width: 760px) { .vrow__grid { grid-template-columns: 90px 1fr 1fr 1.6fr; } .vrow__grid--b { grid-template-columns: 1fr 1fr 1fr 1.4fr; } }
.vrow .field label { font-size: .8rem; }
.vrow .field input, .vrow .field select { min-height: 42px; padding: 8px 10px; }
.vrow__status { font-size: .8rem; font-weight: 700; }
.vrow__status--ok { color: var(--ok); }
.vrow__status--todo { color: var(--warn); }
.paste { margin-top: 12px; }
.paste summary { cursor: pointer; font-weight: 600; color: var(--gold-deep); }
.progress { height: 8px; border-radius: 99px; background: var(--cream-2); overflow: hidden; margin: 8px 0 4px; }
.progress > span { display: block; height: 100%; background: var(--gold); }

/* Scheduler */
.sched { display: grid; gap: 18px; align-items: start; }
@media (min-width: 960px) { .sched { grid-template-columns: 1.4fr 1fr; } }
.days { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.day { flex: 0 0 74px; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 2px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); cursor: pointer; font: inherit; color: var(--text); }
.day:hover:not(:disabled) { border-color: var(--gold); }
.day:disabled { opacity: .42; cursor: not-allowed; background: var(--cream); }
.day[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.day__dow { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.day__date { font-family: var(--serif); font-weight: 600; font-size: 1.02rem; white-space: nowrap; }
.day__count { font-size: .68rem; color: var(--gold-deep); white-space: nowrap; }
.day[aria-pressed="true"] .day__count { color: var(--gold-light); }
.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; margin-top: 14px; }
.slot { min-height: 48px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); font: 600 .95rem/1 var(--sans); color: var(--text); cursor: pointer; }
.slot:hover { border-color: var(--gold); background: #fffaf0; }
.slot[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.summary { display: grid; gap: 0; margin: 0 0 16px; border-top: 1px solid var(--line); }
.summary div { display: grid; grid-template-columns: 120px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.summary dt { color: var(--muted); font-size: .84rem; }
.summary dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.policy { padding: 14px 16px; border-radius: var(--radius-sm); border: 1.5px solid var(--gold); background: #fffaf0; font-size: .9rem; margin-bottom: 16px; }
.status-card { border-top: 3px solid var(--gold); }
.badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: .78rem; font-weight: 700; white-space: nowrap; border: 1px solid var(--line); background: var(--cream); color: var(--text); }
.badge--ok { background: #eff8f2; border-color: #a9d6b8; color: var(--ok); }
.badge--bad { background: #fdf1ef; border-color: #e7b5ae; color: var(--danger); }
.badge--warn { background: #fff8e6; border-color: #e8cf8f; color: #6b4a00; }
.badge--gold { background: var(--ink); border-color: var(--ink); color: var(--gold-light); }
.badge--muted { color: var(--muted); }

/* ===== Contract document (preview + signing) ===== */
.doc { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: 0 30px 60px -40px rgba(0,0,0,.4); }
.doc__band { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 22px; background: var(--ink); border-bottom: 3px solid var(--gold); color: #fff; }
.doc__band img { width: 92px; height: auto; }
.doc__band-text { flex: 1; }
.doc__band-text strong { display: block; letter-spacing: .06em; font-size: .95rem; }
.doc__band-text span { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-light); }
.doc__band-conf { font-size: .7rem; letter-spacing: .16em; color: var(--muted-dark); font-weight: 700; }
.doc__body { padding: 26px 22px 34px; font-size: .95rem; line-height: 1.65; color: #26262a; }
@media (min-width: 760px) { .doc__body { padding: 40px 56px 50px; } }
.doc__title { font-family: var(--sans); font-size: 1.25rem; font-weight: 800; letter-spacing: .01em; padding-bottom: 10px; border-bottom: 2px solid var(--gold); margin-bottom: 14px; color: var(--ink); }
.doc h3.doc__h { font-family: var(--sans); font-size: 1rem; font-weight: 800; color: var(--ink); margin: 26px 0 8px; padding-left: 10px; border-left: 3px solid var(--gold); }
.doc h4.doc__h2 { font-size: .95rem; font-weight: 800; margin: 18px 0 6px; padding-left: 10px; border-left: 3px solid var(--gold); }
.doc h4.doc__h3 { font-size: .92rem; font-weight: 800; margin: 20px 0 8px; }
.doc__kv { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; gap: 4px 14px; margin: 0 0 14px; }
.doc__kv dt { color: var(--muted); font-size: .86rem; }
.doc__kv dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.doc__emph { font-weight: 800; color: var(--ink); }
.doc__list { padding-left: 4px; list-style: none; }
.doc__list li { margin: 0 0 6px; padding-left: 12px; }
.doc__checks { list-style: none; padding: 0; margin: 0 0 14px; }
.doc__checks li { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; color: var(--muted); }
.doc__checks li.on { color: var(--ink); font-weight: 700; }
.doc__box { width: 15px; height: 15px; border: 1.5px solid var(--ink); border-radius: 3px; display: inline-grid; place-items: center; font-size: 11px; line-height: 1; flex: none; }
.doc__break { margin: 40px 0 12px; padding-top: 26px; border-top: 1px dashed var(--muted-dark); }
.doc__table-wrap { overflow-x: auto; margin: 0 0 14px; border: 1px solid var(--line); border-radius: 8px; }
.doc__table { border-collapse: collapse; width: 100%; font-size: .84rem; min-width: 620px; }
.doc__table th { background: var(--ink); color: var(--gold-light); text-align: left; padding: 8px 10px; font-size: .74rem; letter-spacing: .06em; }
.doc__table td { padding: 8px 10px; border-top: 1px solid var(--line); }
.doc__table tr:nth-child(even) td { background: #faf8f3; }
.sigbox { margin: 18px 0; border: 1.5px solid var(--line); border-top: 3px solid var(--line); border-radius: 10px; padding: 16px 18px; background: #fff; }
.sigbox--mine { border-color: var(--gold); border-top-color: var(--gold); background: #fffcf4; }
.sigbox--signed { border-color: #a9d6b8; border-top-color: var(--ok); }
.sigbox__head { font-size: .78rem; font-weight: 800; letter-spacing: .08em; color: var(--muted); margin-bottom: 10px; }
.sigbox__line { min-height: 54px; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; border-bottom: 1px solid #9b9ba0; padding-bottom: 6px; margin-bottom: 4px; flex-wrap: wrap; }
.sigbox__sig { font-family: var(--serif); font-style: italic; font-size: 1.9rem; line-height: 1; color: #10233f; }
.sigbox__stamp { font-size: .76rem; color: var(--ok); font-weight: 700; }
.sigbox__empty { color: #a3a3a8; font-size: .9rem; }
.sigbox__rows { display: grid; grid-template-columns: 80px 1fr; gap: 2px 10px; font-size: .86rem; margin-top: 8px; }
.sigbox__rows dt { color: var(--muted); }
.sigbox__rows dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.signhere { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; border: 2px dashed var(--gold-deep); background: #fff3d1; font: 800 .95rem/1 var(--sans); color: var(--ink); cursor: pointer; }
.signhere:hover { background: var(--gold-light); }
.signhere::before { content: "▸"; color: var(--gold-deep); }

/* Signing layout */
.signing { display: grid; gap: 20px; align-items: start; }
@media (min-width: 1100px) { .signing { grid-template-columns: minmax(0, 1fr) 360px; } .signing__side { position: sticky; top: 90px; } }
.disclosure { font-size: .88rem; color: var(--text); background: var(--cream); border-radius: var(--radius-sm); padding: 14px 16px; margin: 0 0 14px; }
.disclosure ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.otp-input { font-size: 1.6rem !important; letter-spacing: .4em; text-align: center; font-weight: 700; max-width: 260px; }

/* ===== Owner portal ===== */
.owner-shell { background: var(--cream); min-height: 100vh; }
.owner-nav { background: var(--ink); color: #fff; border-bottom: 3px solid var(--gold); position: sticky; top: 0; z-index: 40; }
.owner-nav__inner { display: flex; align-items: center; gap: 18px; min-height: 62px; flex-wrap: wrap; }
.owner-nav img { width: 82px; height: auto; }
.owner-nav__links { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }
.owner-nav__links a { color: #d8d5cd; text-decoration: none; font-weight: 600; font-size: .9rem; padding: 8px 12px; border-radius: 8px; }
.owner-nav__links a[aria-current="page"], .owner-nav__links a:hover { background: var(--ink-3); color: var(--gold-light); }
.owner-nav form { margin: 0; }
.owner-main { padding: 28px 0 60px; }
.kpis { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-bottom: 22px; }
@media (min-width: 900px) { .kpis { grid-template-columns: repeat(4, 1fr); } }
.kpi { background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--gold); border-radius: var(--radius-sm); padding: 16px 18px; text-decoration: none; color: inherit; display: block; }
.kpi:hover { border-color: var(--gold); color: inherit; }
.kpi__n { font-family: var(--serif); font-size: 2rem; font-weight: 600; line-height: 1.1; }
.kpi__l { color: var(--muted); font-size: .86rem; }
.grid-2 { display: grid; gap: 18px; }
@media (min-width: 1000px) { .grid-2 { grid-template-columns: 1fr 1fr; } .grid-2--wide { grid-template-columns: 1.5fr 1fr; } }
.table-wrap { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tbl th { text-align: left; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 8px 12px 8px 0; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tbl td { padding: 11px 12px 11px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl a { font-weight: 700; }
@media (max-width: 699.98px) {
  .tbl--cards thead { display: none; }
  .tbl--cards, .tbl--cards tbody, .tbl--cards tr, .tbl--cards td { display: block; width: 100%; }
  .tbl--cards tr { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .tbl--cards td { border: 0; padding: 3px 0; overflow-wrap: anywhere; }
  .tbl--cards td::before { content: attr(data-label); display: inline-block; min-width: 96px; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
}
.filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 16px; }
.filters .field { margin: 0; }
.filters input, .filters select { min-height: 42px; }
.dl { display: grid; grid-template-columns: minmax(120px, 38%) 1fr; gap: 6px 14px; margin: 0; font-size: .94rem; }
.dl dt { color: var(--muted); }
.dl dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 14px 20px; font-size: .9rem; }
.timeline li::before { content: ""; position: absolute; left: 4px; top: 8px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.timeline li::after { content: ""; position: absolute; left: 7px; top: 18px; bottom: 0; width: 1px; background: var(--line); }
.timeline li:last-child::after { display: none; }
.timeline time { display: block; font-size: .78rem; color: var(--muted); }
.inline-form { display: inline; margin: 0; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.stage-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 0; }
.stage-row .badge { font-weight: 600; }
.stage-row .badge.is-current { background: var(--ink); color: var(--gold-light); border-color: var(--ink); }
.tbl .mono { white-space: nowrap; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .82rem; overflow-wrap: anywhere; }
.private-note { font-size: .82rem; color: var(--muted); }
.outbox-frame { width: 100%; height: 720px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
/* Create New Contract */
.page-head__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; }
.page-head__row .h1 { margin-bottom: 0; }
.req { color: var(--gold-deep); font-weight: 700; }
.manual-contract fieldset { margin: 0; min-width: 0; }
.manual-actions { display: grid; gap: 12px; margin-top: 18px; }
@media (min-width: 700px) { .manual-actions { grid-template-columns: 1fr 1fr; } }
.manual-actions .btn { width: 100%; white-space: normal; text-align: center; line-height: 1.2; }
.badge--origin { background: var(--ink); color: var(--gold-light); border-color: var(--ink); }

/* Utilities (the CSP forbids inline style attributes) */
.u-mb6 { margin-bottom: 6px; } .u-mb10 { margin-bottom: 10px; } .u-mb12 { margin-bottom: 12px; } .u-mb14 { margin-bottom: 14px; }
.u-mt10 { margin-top: 10px; } .u-mt12 { margin-top: 12px; } .u-mt14 { margin-top: 14px; } .u-mt16 { margin-top: 16px; } .u-mt22 { margin-top: 22px; }
.u-my12 { margin: 12px 0; }
.u-subhead { font-size: .92rem; margin: 18px 0 6px; font-family: var(--sans); }
.u-slotlabel { font-weight: 700; margin: 18px 0 0; }
.u-stack-mt18 { display: grid; gap: 12px; margin-top: 18px; }
.u-plainset { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; }
.stack { display: grid; gap: 14px; }
fieldset.panel { min-width: 0; }
/* A <legend> normally sits on the fieldset border; floating it keeps fieldset/legend semantics
   while placing the title inside the card's padding like every other card title. */
fieldset.panel { border: 1px solid var(--line); }
legend.panel__title { float: left; width: 100%; padding: 0; margin: 0 0 18px; }
legend.panel__title + * { clear: both; }
fieldset.panel > :not(legend) { clear: both; }
progress.progress { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border: 0; border-radius: 99px; background: var(--cream-2); overflow: hidden; color: var(--gold); }
progress.progress::-webkit-progress-bar { background: var(--cream-2); border-radius: 99px; }
progress.progress::-webkit-progress-value { background: var(--gold); border-radius: 99px; }
progress.progress::-moz-progress-bar { background: var(--gold); border-radius: 99px; }
.choice-grid--stack { grid-template-columns: 1fr !important; }
.cell-input { min-height: 38px; padding: 6px 8px; border: 1.5px solid #cfc9bc; border-radius: 8px; font: inherit; font-size: .88rem; background: #fff; }
.cell-input--60 { width: 64px; } .cell-input--80 { width: 84px; } .cell-input--90 { width: 96px; } .cell-input--110 { width: 116px; } .cell-input--130 { width: 136px; } .cell-input--170 { width: 178px; }

/* Mobile menu (no JavaScript needed) */
.mnav { position: relative; }
.mnav summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid var(--line-dark); border-radius: 999px; color: #fff; font-weight: 600; font-size: .9rem; }
.mnav summary::-webkit-details-marker { display: none; }
.mnav__bars { width: 16px; height: 10px; border-top: 2px solid var(--gold-light); border-bottom: 2px solid var(--gold-light); position: relative; }
.mnav__bars::after { content: ""; position: absolute; left: 0; right: 0; top: 2px; border-top: 2px solid var(--gold-light); }
.mnav__panel { position: absolute; right: 0; top: calc(100% + 10px); min-width: 230px; padding: 10px; border-radius: var(--radius-sm); background: var(--ink-2); border: 1px solid var(--line-dark); box-shadow: 0 18px 40px -12px rgba(0,0,0,.6); display: grid; }
.mnav__panel a { color: #e9e7e1; text-decoration: none; padding: 11px 12px; border-radius: 8px; font-weight: 600; }
.mnav__panel a:hover { background: var(--ink-3); color: var(--gold-light); }
@media (min-width: 1000px) { .mnav { display: none; } }
.site-header__cta { display: flex; align-items: center; gap: 10px; }
@media (max-width: 379.98px) { .site-header__cta .btn--sm { padding: 0 14px; } .mnav summary span:last-child { display: none; } }

/* Grid/flex children must be allowed to shrink, or wide content (day strip, tables) widens the page. */
.sched > *, .grid-2 > *, .signing > *, .split > *, .contact > *, .results > * { min-width: 0; }
.contact__list li > span { min-width: 0; }
.panel { min-width: 0; }
@media (max-width: 759.98px) { .vrow__grid > .field:nth-child(4) { grid-column: 1 / -1; } }
.brand__logo { width: 118px; }
@media (min-width: 700px) { .brand__logo { width: 150px; } .site-header__inner { min-height: 78px; } }
.nowrap { white-space: nowrap; }
.days { max-width: 100%; }
.site-footer__cols > * { min-width: 0; }
.site-footer a, .portal-footer a { overflow-wrap: normal; word-break: normal; }
.site-footer a[href^="mailto"], .portal-footer a[href^="mailto"] { white-space: nowrap; }
/* Emails may only break before the "@" (a <wbr> in the markup), never mid-word. */
.contact__list a[href^="mailto"] { overflow-wrap: normal; word-break: normal; }

/* Header on small phones: logo + "Book With Us" + Menu must fit 358px of content. */
@media (max-width: 519.98px) {
  .site-header__inner { gap: 10px; }
  .site-header__cta { gap: 8px; }
  .brand__logo { width: 96px; }
  .site-header__cta .btn--sm { padding: 0 16px; }
  .mnav summary { padding: 0 12px; }
}

/* Long form buttons wrap on narrow phones instead of running off-screen. */
.form-actions .btn, .btn--wrap { white-space: normal; text-align: center; line-height: 1.25; padding-top: 10px; padding-bottom: 10px; }

/* =====================================================================================
   PREMIUM DARK IDENTITY — component layer
   Tokens at the top of this file do most of the work; this block replaces the remaining
   light-only colours (white fields, cream tints, pale notices) with the same black/brown/gold.
   ===================================================================================== */
.site-footer { background: var(--ink); }
.portal-section, .owner-shell { background: var(--bg-hero); }
.portal-footer { background: var(--ink); border-top-color: var(--line); }

/* Cards and panels */
.panel, .kpi, .steps li, .results, .option, .eligibility > div, .stats--light li { background: var(--bg-card); border: 1px solid var(--line); }
.option, .eligibility > div { border-top: 3px solid var(--gold); }
.eligibility > div { border-top-width: 2px; }
.kpi, .stats--light li { border-top: 3px solid var(--gold); }
.panel--dark { background: var(--ink); border-color: var(--line); }
.ranges, .results__caveats { background: #0f0d0b; }
.ranges th { background: #1d1912; }
.stats--light .stats__value { color: #fff; }
.stats--light .stats__star { color: var(--gold-light); }
.stats--light .stats__label { color: var(--muted-dark); }
.steps__n { border: 1px solid rgba(201, 162, 74, .45); }
.btn--dark { background: var(--ink-3); color: #fff; border-color: rgba(201, 162, 74, .35); }
.btn--dark:hover { background: #2e271d; color: #fff; }
.btn--ghost { color: var(--text); border-color: var(--line-input); }
.btn--danger { background: transparent; color: var(--danger); border-color: rgba(240, 138, 126, .5); }
.btn--danger:hover { background: rgba(240, 138, 126, .1); color: var(--danger); }

/* The six vehicle cards: transparent cut-outs over the hero glow. Other photos keep their own backgrounds. */
.photo__frame { background: #13110e; }
.vehicle .photo__frame { background: var(--bg-vehicle); }
.photo__caption strong { color: #fff; }

/* Forms */
.field input, .field select, .field textarea, .cell-input { background: var(--bg-input); border-color: var(--line-input); color: var(--text); }
.field input::placeholder, .field textarea::placeholder { color: #8d877c; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--gold); }
.choice { background: var(--bg-input); border-color: var(--line-input); }
.choice:has(input:checked) { border-color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); background: rgba(201, 162, 74, .08); }
.choice input, .check input { accent-color: var(--gold); }
.vrow { background: var(--bg-input); }
.notice { background: var(--bg-card); }
.notice--error { border-color: rgba(240, 138, 126, .5); background: rgba(163, 38, 27, .16); color: var(--danger); }
.notice--info { border-color: var(--gold); background: rgba(201, 162, 74, .08); }
.notice--ok { border-color: rgba(127, 208, 155, .45); background: rgba(30, 107, 58, .18); color: var(--ok); }
.notice--warn { border-color: rgba(232, 195, 106, .5); background: rgba(138, 90, 0, .18); color: var(--warn); }
.disclosure { background: #0f0d0b; border: 1px solid var(--line); }

/* Scheduler */
.day { background: var(--bg-input); border-color: var(--line-input); }
.day:disabled { background: transparent; }
.day[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.day[aria-pressed="true"] .day__count { color: var(--ink); }
.slot { background: var(--bg-input); border-color: var(--line-input); }
.slot:hover { background: rgba(201, 162, 74, .1); }
.policy { background: rgba(201, 162, 74, .08); }

/* Badges */
.badge { background: #1d1912; border-color: var(--line-input); }
.badge--ok { background: rgba(30, 107, 58, .2); border-color: rgba(127, 208, 155, .45); color: var(--ok); }
.badge--bad { background: rgba(163, 38, 27, .18); border-color: rgba(240, 138, 126, .45); color: var(--danger); }
.badge--warn { background: rgba(138, 90, 0, .2); border-color: rgba(232, 195, 106, .45); color: var(--warn); }
.badge--gold, .badge--origin, .stage-row .badge.is-current { background: var(--ink); border-color: rgba(201, 162, 74, .5); color: var(--gold-light); }

/* Contract document: the page around it is dark; the document itself stays a white, printable sheet,
   so it restores the original light tokens for everything inside it (text, rules, signature boxes). */
.doc { --paper: #ffffff; --cream: #f6f3ec; --cream-2: #efe9dc; --line: #e6e0d2; --text: #18181a; --muted: #5b5b61;
  --gold-deep: #7d5f17; --danger: #a3261b; --ok: #1e6b3a; --warn: #8a5a00; color: var(--text); border-color: rgba(201, 162, 74, .45); }
.doc a { color: var(--gold-deep); }
.doc a:hover { color: var(--ink); }
/* Printing (contracts, owner records): back to dark-on-white paper. */
@media print {
  :root { --text: #18181a; --muted: #5b5b61; --line: #e6e0d2; --gold-deep: #7d5f17; --bg-card: #fff; --bg-input: #fff; --paper: #fff; color-scheme: light; }
  html, body, .section, .portal-section, .owner-shell, .panel, .kpi { background: #fff !important; color: #18181a !important; }
  .site-header, .owner-nav, .site-footer, .portal-footer { display: none; }
}
