/* ==========================================================================
   Lus Realty — Home Value + Equity Review
   Theme layer. Sits on top of a lean Bootstrap 5 build (reboot + grid + utilities).
   All brand values are tokens: retheme by editing :root only.
   ========================================================================== */

:root {
  /* --- Brand palette (Lus Realty) ---------------------------------------
     Taken from the crest: aubergine purple with gold. The gold is split into
     four tones because the logo gold (#D8B45F) measures only 1.87:1 on the page
     background - beautiful on dark surfaces, unreadable as small text on light.
     Each tone below was chosen against measured contrast, not by eye. */
  --lr-ink:            #171717;
  --lr-ink-soft:       #3A3340;
  --lr-ink-muted:      #6B6470;
  --lr-paper:          #FAF8FA;
  --lr-paper-2:        #F3EFF5;
  --lr-paper-3:        #E7E0EC;
  --lr-line:           rgba(23, 23, 23, 0.12);
  --lr-line-strong:    rgba(23, 23, 23, 0.26);

  /* Primary: the crest purple. Buttons, selected states, focus, progress. */
  --lr-brand:          #371344;
  --lr-brand-deep:     #240B2C;   /* hover / pressed */
  --lr-brand-soft:     #5A2C6B;

  /* Gold, by surface:
       --lr-gold        logo gold - dark surfaces and button fills    9.06:1 on ink
       --lr-gold-light  text on the near-black sections              11.61:1 on ink
       --lr-gold-mid    LARGE text on light (hero italic)              3.50:1 on paper
       --lr-gold-deep   SMALL text on light (eyebrows, labels)         5.43:1 on paper */
  --lr-gold:           #D8B45F;
  --lr-gold-light:     #E8CE86;
  --lr-gold-mid:       #A57F2E;
  --lr-gold-deep:      #7E6224;
  --lr-gold-wash:      #F8F1DF;

  --lr-wash:           #F3ECF7;   /* purple tint, used for wizard option icons */

  --lr-white:          #FFFFFF;
  --lr-danger:         #A32D22;
  --lr-danger-wash:    #FBEDEA;
  --lr-success:        #2C6446;

  /* --- Typography --- */
  --lr-font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --lr-font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* --- Space & shape --- */
  --lr-radius-sm: 8px;
  --lr-radius:    14px;
  --lr-radius-lg: 22px;
  --lr-shadow-sm: 0 1px 2px rgba(23, 23, 23,.06), 0 2px 8px rgba(23, 23, 23,.04);
  --lr-shadow:    0 2px 6px rgba(23, 23, 23,.06), 0 12px 32px rgba(23, 23, 23,.08);
  --lr-shadow-lg: 0 4px 12px rgba(23, 23, 23,.07), 0 24px 60px rgba(23, 23, 23,.12);

  /* --- Motion --- */
  --lr-ease: cubic-bezier(.2, .7, .3, 1);
  --lr-dur:  .32s;
}

/* ==========================================================================
   Base
   ========================================================================== */

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--lr-font-body);
  color: var(--lr-ink);
  background: var(--lr-paper);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, .lr-display {
  font-family: var(--lr-font-display);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.14;
  color: var(--lr-ink);
}

h1 { font-size: clamp(2.35rem, 6.2vw, 4.15rem); }
h2 { font-size: clamp(1.85rem, 4.2vw, 2.9rem); line-height: 1.16; }
h3 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); line-height: 1.24; }
h4 { font-size: 1.14rem; line-height: 1.3; }

p { margin-bottom: 1.05rem; }
a { color: var(--lr-brand); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { color: var(--lr-gold-deep); }

::selection { background: var(--lr-gold-wash); color: var(--lr-ink); }

/* Visible, consistent focus ring everywhere. */
:focus-visible {
  outline: 2px solid var(--lr-brand);
  outline-offset: 3px;
  border-radius: 4px;
}

.lr-skip {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--lr-ink); color: var(--lr-white);
  padding: .75rem 1.15rem; border-radius: 0 0 var(--lr-radius-sm) 0;
}
.lr-skip:focus { left: 0; color: var(--lr-white); }

.lr-sr {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.lr-shell { max-width: 1180px; margin-inline: auto; padding-inline: 20px; }
.lr-shell-narrow { max-width: 820px; margin-inline: auto; padding-inline: 20px; }

.lr-eyebrow {
  font-family: var(--lr-font-body);
  font-size: .74rem; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--lr-gold-deep);
  margin-bottom: 1rem; display: block;
}
.lr-lede { font-size: clamp(1.075rem, 1.8vw, 1.28rem); color: var(--lr-ink-soft); line-height: 1.55; }
.lr-muted { color: var(--lr-ink-muted); }
.lr-fine { font-size: .845rem; line-height: 1.5; color: var(--lr-ink-muted); }

.lr-rule { height: 1px; background: var(--lr-line); border: 0; margin: 0; }

/* ==========================================================================
   Buttons
   ========================================================================== */

.lr-btn {
  --btn-bg: var(--lr-brand);
  --btn-fg: var(--lr-white);
  --btn-bd: var(--lr-brand);
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  font-family: var(--lr-font-body);
  font-size: 1rem; font-weight: 600; letter-spacing: .005em;
  padding: 1rem 1.75rem;
  min-height: 56px;
  border: 1px solid var(--btn-bd);
  border-radius: 999px;
  background: var(--btn-bg); color: var(--btn-fg);
  text-decoration: none; cursor: pointer;
  transition: transform .18s var(--lr-ease), box-shadow .22s var(--lr-ease),
              background-color .22s var(--lr-ease), color .22s var(--lr-ease), opacity .2s;
  box-shadow: var(--lr-shadow-sm);
  -webkit-tap-highlight-color: transparent;
}
.lr-btn:hover { color: var(--btn-fg); transform: translateY(-1px); box-shadow: var(--lr-shadow); }
.lr-btn:active { transform: translateY(0) scale(.99); box-shadow: var(--lr-shadow-sm); }
/* Primary buttons deepen on hover; the accent variant has its own rule below. */
.lr-btn:not(.lr-btn--accent):not(.lr-btn--ghost):not(.lr-btn--quiet):hover { --btn-bg: var(--lr-brand-deep); --btn-bd: var(--lr-brand-deep); }
.lr-btn[disabled], .lr-btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }

/* The crest's gold banner, reused for terminal actions. A dark label on gold
   reads 9.06:1, and the darker edge keeps the outline visible on white. */
.lr-btn--accent { --btn-bg: var(--lr-gold); --btn-bd: var(--lr-gold-mid); --btn-fg: var(--lr-ink); }
.lr-btn--accent:hover { --btn-bg: #C9A24A; --btn-bd: var(--lr-gold-deep); }

.lr-btn--ghost {
  --btn-bg: transparent; --btn-fg: var(--lr-ink); --btn-bd: var(--lr-line-strong);
  box-shadow: none; font-weight: 500;
}
.lr-btn--ghost:hover { --btn-bg: var(--lr-paper-2); box-shadow: none; }

.lr-btn--quiet {
  --btn-bg: transparent; --btn-fg: var(--lr-ink-muted); --btn-bd: transparent;
  box-shadow: none; padding: .75rem .5rem; min-height: 44px; font-weight: 500;
}
.lr-btn--quiet:hover { --btn-fg: var(--lr-ink); background: transparent; box-shadow: none; transform: none; }

.lr-btn--lg { font-size: 1.06rem; padding: 1.15rem 2.15rem; min-height: 62px; }
.lr-btn--block { width: 100%; }

.lr-btn__spinner {
  width: 18px; height: 18px; border-radius: 50%; display: none;
  border: 2px solid currentColor; border-top-color: transparent;
  animation: lr-spin .7s linear infinite;
}
.lr-btn.is-busy .lr-btn__spinner { display: block; }
.lr-btn.is-busy .lr-btn__label { opacity: .75; }
@keyframes lr-spin { to { transform: rotate(360deg); } }

/* ==========================================================================
   Header
   ========================================================================== */

.lr-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250, 248, 250, 0.88);
  backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s, box-shadow .3s;
}
.lr-header.is-stuck { border-bottom-color: var(--lr-line); box-shadow: 0 6px 20px rgba(23, 23, 23,.05); }
.lr-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 92px; }

.lr-logo { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--lr-ink); }
.lr-logo:hover { color: var(--lr-ink); }
.lr-logo__mark {
  height: 68px; flex: none; display: grid; place-items: center;
}
.lr-logo__mark img { height: 68px; width: auto; display: block; }
@media (max-width: 575.98px) {
  .lr-header__inner { min-height: 74px; }
  .lr-logo__mark, .lr-logo__mark img { height: 54px; }
}

.lr-header__actions { display: flex; align-items: center; gap: 1.25rem; }
.lr-header__tel {
  display: inline-flex; align-items: center; gap: .45rem;
  font-size: .94rem; font-weight: 600; color: var(--lr-ink); text-decoration: none;
}
.lr-header__tel:hover { color: var(--lr-gold-deep); }
.lr-header__tel svg { width: 15px; height: 15px; opacity: .6; }
@media (max-width: 575.98px) { .lr-header__tel span { display: none; } }

/* ==========================================================================
   Hero
   ========================================================================== */

.lr-hero { position: relative; padding: clamp(3rem, 7vw, 5.5rem) 0 clamp(2.5rem, 5vw, 4rem); overflow: hidden; }
.lr-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background:
    radial-gradient(1100px 520px at 88% -8%, var(--lr-gold-wash) 0%, transparent 62%),
    radial-gradient(760px 420px at 4% 8%, #EFEAF3 0%, transparent 58%);
}
.lr-hero__grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: center; }
@media (min-width: 992px) { .lr-hero__grid { grid-template-columns: 1.06fr .94fr; } }

.lr-hero h1 { margin-bottom: 1.15rem; }
.lr-hero h1 em { font-style: italic; color: var(--lr-gold-mid); }
.lr-hero__sub { max-width: 34ch; }
.lr-hero__cta { display: flex; flex-wrap: wrap; gap: .85rem; margin: 1.9rem 0 1.1rem; }
@media (max-width: 575.98px) { .lr-hero__cta .lr-btn { width: 100%; } }

.lr-assure { display: flex; align-items: center; gap: .5rem; font-size: .92rem; color: var(--lr-ink-muted); }
.lr-assure svg { width: 16px; height: 16px; color: var(--lr-success); flex: none; }

/* Licensed footprint. Gold-deep measures 5.43:1 on paper — the only gold tone
   that is legible at this size on light. */
.lr-states {
  display: flex; align-items: flex-start; gap: .5rem;
  max-width: 40ch; margin: .35rem 0 0;
  font-size: .95rem; font-weight: 600; line-height: 1.45;
  color: var(--lr-gold-deep);
}
.lr-states svg { width: 17px; height: 17px; flex: none; margin-top: .1em; }
.lr-section--ink .lr-states, .lr-footer .lr-states { color: var(--lr-gold-light); }

.lr-hero__proof {
  display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem;
  margin-top: 2.4rem; padding-top: 1.75rem; border-top: 1px solid var(--lr-line);
}
.lr-stat__num { font-family: var(--lr-font-display); font-size: 1.85rem; line-height: 1; display: block; }
.lr-stat__label { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--lr-ink-muted); margin-top: .4rem; display: block; }

/* Hero visual: layered property card */
.lr-hero__visual { position: relative; }
.lr-hero__frame {
  position: relative; border-radius: var(--lr-radius-lg); overflow: hidden;
  box-shadow: var(--lr-shadow-lg); background: var(--lr-paper-3);
  aspect-ratio: 4 / 3.2;
}
.lr-hero__frame img, .lr-hero__frame svg { width: 100%; height: 100%; object-fit: cover; display: block; }

.lr-hero__chip {
  position: absolute; background: var(--lr-white); border-radius: var(--lr-radius);
  box-shadow: var(--lr-shadow); padding: .9rem 1.1rem; border: 1px solid var(--lr-line);
}
.lr-hero__chip--a { left: -6px; bottom: 46px; }
.lr-hero__chip--b { right: -6px; top: 30px; }
@media (min-width: 576px) { .lr-hero__chip--a { left: -26px; } .lr-hero__chip--b { right: -22px; } }
.lr-hero__chip .k { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--lr-ink-muted); display: block; }
.lr-hero__chip .v { font-family: var(--lr-font-display); font-size: 1.2rem; display: block; margin-top: .15rem; }
.lr-hero__chip .v small { font-family: var(--lr-font-body); font-size: .72rem; color: var(--lr-ink-muted); letter-spacing: .02em; }

/* ==========================================================================
   Sections
   ========================================================================== */

.lr-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.lr-section--paper { background: var(--lr-paper-2); }
.lr-section--ink { background: var(--lr-ink); color: var(--lr-paper-2); }
.lr-section--ink h2, .lr-section--ink h3 { color: var(--lr-paper); }
.lr-section--ink .lr-eyebrow { color: var(--lr-gold-light); }
.lr-section--ink .lr-lede { color: rgba(250, 248, 250,.76); }

.lr-section__head { max-width: 62ch; margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
.lr-section__head h2 { margin-bottom: .9rem; }

/* Benefit cards */
.lr-cards { display: grid; gap: 1.15rem; grid-template-columns: repeat(auto-fit, minmax(248px, 1fr)); }
.lr-card {
  background: var(--lr-white); border: 1px solid var(--lr-line);
  border-radius: var(--lr-radius); padding: 1.65rem 1.5rem 1.5rem;
  transition: transform .3s var(--lr-ease), box-shadow .3s var(--lr-ease), border-color .3s;
}
.lr-card:hover { transform: translateY(-3px); box-shadow: var(--lr-shadow); border-color: var(--lr-line-strong); }
.lr-card__icon {
  width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center;
  background: var(--lr-gold-wash); color: var(--lr-gold-deep); margin-bottom: 1.15rem;
}
.lr-card__icon svg { width: 21px; height: 21px; }
.lr-card h3 { font-size: 1.16rem; margin-bottom: .55rem; }
.lr-card p { font-size: .96rem; color: var(--lr-ink-muted); margin-bottom: 0; }

/* How it works */
.lr-steps { display: grid; gap: 1.5rem; grid-template-columns: 1fr; counter-reset: lrstep; }
@media (min-width: 768px) { .lr-steps { grid-template-columns: repeat(3, 1fr); gap: 2rem; } }
.lr-step { position: relative; padding-top: 2.5rem; }
.lr-step::before {
  counter-increment: lrstep; content: counter(lrstep, decimal-leading-zero);
  position: absolute; top: 0; left: 0;
  font-family: var(--lr-font-display); font-size: 1.05rem; color: var(--lr-gold-light);
  letter-spacing: .06em;
}
.lr-step::after {
  content: ""; position: absolute; top: .95rem; left: 2.4rem; right: 0; height: 1px;
  background: rgba(250, 248, 250,.16);
}
@media (max-width: 767.98px) { .lr-step::after { display: none; } }
.lr-steps .lr-step:last-child::after { display: none; }
.lr-step h3 { font-size: 1.3rem; margin-bottom: .6rem; }
.lr-step p { color: rgba(250, 248, 250,.72); font-size: .98rem; margin-bottom: 0; }

/* ==========================================================================
   Wizard
   ========================================================================== */

.lr-wizard { padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 7vw, 5rem); scroll-margin-top: 104px; }
.lr-wizard__shell { max-width: 760px; margin-inline: auto; padding-inline: 20px; }

.lr-panel {
  background: var(--lr-white); border: 1px solid var(--lr-line);
  border-radius: var(--lr-radius-lg); box-shadow: var(--lr-shadow);
  overflow: hidden;
}

/* Progress */
.lr-progress { padding: 1.25rem 1.5rem 1.15rem; border-bottom: 1px solid var(--lr-line); background: var(--lr-paper); }
@media (min-width: 768px) { .lr-progress { padding: 1.4rem 2.25rem 1.25rem; } }
.lr-progress__meta { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.lr-progress__count { font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--lr-ink); }
.lr-progress__time { font-size: .8rem; color: var(--lr-ink-muted); }
.lr-progress__track { height: 3px; background: var(--lr-paper-3); border-radius: 999px; overflow: hidden; }
.lr-progress__fill {
  height: 100%; width: 0%; border-radius: 999px;
  background: linear-gradient(90deg, var(--lr-brand), var(--lr-gold));
  transition: width .5s var(--lr-ease);
}
.lr-progress__labels { display: none; gap: .35rem; margin-top: .85rem; }
@media (min-width: 768px) { .lr-progress__labels { display: flex; justify-content: space-between; } }
.lr-progress__labels li {
  font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--lr-ink-muted); opacity: .55; transition: opacity .3s, color .3s;
}
.lr-progress__labels li.is-done { opacity: .9; color: var(--lr-brand); }
.lr-progress__labels li.is-current { opacity: 1; color: var(--lr-ink); font-weight: 700; }

/* Steps */
.lr-steps-viewport { padding: clamp(1.6rem, 4vw, 2.75rem) clamp(1.25rem, 4vw, 2.25rem) clamp(1.5rem, 4vw, 2.25rem); }

.lr-step-panel { display: none; }
.lr-step-panel.is-active { display: block; animation: lr-step-in var(--lr-dur) var(--lr-ease) both; }
.lr-step-panel.is-active.is-reverse { animation-name: lr-step-in-rev; }
@keyframes lr-step-in { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
@keyframes lr-step-in-rev { from { opacity: 0; transform: translateX(-14px); } to { opacity: 1; transform: none; } }

.lr-step-panel__q { font-size: clamp(1.55rem, 3.6vw, 2.1rem); margin-bottom: .55rem; }
.lr-step-panel__help { color: var(--lr-ink-muted); font-size: .98rem; margin-bottom: 1.6rem; max-width: 52ch; }

/* Selectable option cards */
.lr-options { display: grid; gap: .7rem; grid-template-columns: 1fr; margin: 0 0 .35rem; padding: 0; list-style: none; }
@media (min-width: 600px) { .lr-options--2 { grid-template-columns: 1fr 1fr; } }

.lr-option { position: relative; display: block; }
.lr-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lr-option__box {
  display: flex; align-items: center; gap: .95rem;
  padding: 1.05rem 1.15rem; min-height: 68px;
  border: 1.5px solid var(--lr-line); border-radius: var(--lr-radius);
  background: var(--lr-white); cursor: pointer;
  transition: border-color .2s var(--lr-ease), background-color .2s var(--lr-ease),
              transform .16s var(--lr-ease), box-shadow .2s var(--lr-ease);
  -webkit-tap-highlight-color: transparent;
}
.lr-option__box:hover { border-color: var(--lr-line-strong); background: var(--lr-paper); transform: translateY(-1px); }
.lr-option input:focus-visible + .lr-option__box { outline: 2px solid var(--lr-brand); outline-offset: 3px; }
.lr-option input:checked + .lr-option__box {
  border-color: var(--lr-brand); background: #F7F2FA;
  box-shadow: 0 0 0 1px var(--lr-brand) inset;
}
.lr-option__icon {
  width: 40px; height: 40px; flex: none; border-radius: 10px; display: grid; place-items: center;
  background: var(--lr-paper-2); color: var(--lr-ink-soft); transition: background-color .2s, color .2s;
}
.lr-option__icon svg { width: 20px; height: 20px; }
.lr-option input:checked + .lr-option__box .lr-option__icon { background: var(--lr-brand); color: var(--lr-white); }
.lr-option__text { flex: 1 1 auto; min-width: 0; }
.lr-option__label { display: block; font-weight: 600; font-size: 1.02rem; line-height: 1.25; }
.lr-option__note { display: block; font-size: .855rem; color: var(--lr-ink-muted); margin-top: .15rem; line-height: 1.35; }
.lr-option__tick {
  width: 22px; height: 22px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--lr-line-strong); display: grid; place-items: center;
  color: transparent; transition: all .2s var(--lr-ease); transform: scale(.9);
}
.lr-option__tick svg { width: 12px; height: 12px; }
.lr-option input:checked + .lr-option__box .lr-option__tick {
  background: var(--lr-brand); border-color: var(--lr-brand); color: var(--lr-white); transform: scale(1);
}
.lr-options--multi .lr-option__tick { border-radius: 6px; }

/* Subheading inside an option list. Lets one step cover several groups (the
   four licensed states) without turning into an undifferentiated wall. */
.lr-optgroup {
  grid-column: 1 / -1;
  margin: .55rem 0 -.1rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--lr-ink-muted);
  display: flex; align-items: center; gap: .7rem;
}
.lr-optgroup:first-child { margin-top: 0; }
.lr-optgroup::after {
  content: ""; flex: 1 1 auto; height: 1px; background: var(--lr-line);
}

/* Form fields */
.lr-field { margin-bottom: 1.15rem; }
.lr-field__label { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .4rem; color: var(--lr-ink-soft); }
.lr-field__label .req { color: var(--lr-gold-deep); }
.lr-input {
  width: 100%; font-family: inherit; font-size: 1.0625rem; color: var(--lr-ink);
  padding: .95rem 1.05rem; min-height: 56px;
  background: var(--lr-white);
  border: 1.5px solid var(--lr-line); border-radius: var(--lr-radius-sm);
  transition: border-color .2s, box-shadow .2s, background-color .2s;
  appearance: none;
}
.lr-input::placeholder { color: #9AA5A0; }
.lr-input:hover { border-color: var(--lr-line-strong); }
.lr-input:focus { outline: none; border-color: var(--lr-brand); box-shadow: 0 0 0 3px rgba(55, 19, 68, .14); }
.lr-input[aria-invalid="true"] { border-color: var(--lr-danger); background: var(--lr-danger-wash); }
.lr-input[aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(163, 45, 34, .14); }

/* Select. `.lr-input` already sets appearance:none, so the chevron is ours to
   draw — declared after the invalid rule, whose background shorthand would
   otherwise wipe it. */
.lr-select {
  padding-right: 2.75rem; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6470' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; background-size: 18px;
}
.lr-select:invalid, .lr-select option[value=""] { color: #9AA5A0; }
.lr-select option { color: var(--lr-ink); }

.lr-error {
  display: none; align-items: center; gap: .4rem;
  color: var(--lr-danger); font-size: .875rem; margin-top: .45rem;
}
.lr-error.is-shown { display: flex; animation: lr-shake .32s var(--lr-ease); }
.lr-error svg { width: 14px; height: 14px; flex: none; }
@keyframes lr-shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-3px)} 75%{transform:translateX(3px)} }

/* "Did you mean gmail.com?" — recovers a mistyped address instead of
   rejecting it, which is the single biggest source of unreachable leads. */
.lr-suggest {
  display: flex; align-items: center; gap: .4rem;
  margin-top: .45rem; font-size: .875rem; color: var(--lr-ink-soft);
  animation: lr-fade-up .25s var(--lr-ease) both;
}
.lr-suggest[hidden] { display: none; }
.lr-suggest svg { width: 14px; height: 14px; flex: none; color: var(--lr-gold-deep); }
.lr-suggest__btn {
  background: none; border: 0; padding: 0;
  font: inherit; font-weight: 700; color: var(--lr-brand);
  text-decoration: underline; text-underline-offset: 2px; cursor: pointer;
}
.lr-suggest__btn:hover { color: var(--lr-gold-deep); }

.lr-grid-2 { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .lr-grid-2 { grid-template-columns: 1fr 1fr; } }
.lr-grid-addr { display: grid; gap: 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .lr-grid-addr { grid-template-columns: 2fr 1fr 1fr; } }

/* Address autocomplete */
.lr-autocomplete { position: relative; }
.lr-suggestions {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px);
  background: var(--lr-white); border: 1px solid var(--lr-line);
  border-radius: var(--lr-radius-sm); box-shadow: var(--lr-shadow);
  list-style: none; margin: 0; padding: .3rem; max-height: 268px; overflow-y: auto; display: none;
}
.lr-suggestions.is-open { display: block; }
.lr-suggestions li { padding: .7rem .8rem; border-radius: 6px; cursor: pointer; font-size: .97rem; display: flex; gap: .6rem; align-items: center; }
.lr-suggestions li svg { width: 15px; height: 15px; color: var(--lr-ink-muted); flex: none; }
.lr-suggestions li:hover, .lr-suggestions li[aria-selected="true"] { background: var(--lr-paper-2); }
.lr-suggestions li .m { color: var(--lr-ink-muted); font-size: .86rem; }

/* Compact yes/no pair, for short qualifying questions that sit alongside a
   main card question rather than earning a step of their own. */
.lr-subq__label { font-weight: 600; font-size: 1rem; margin-bottom: .7rem; }
.lr-choice { display: flex; gap: .6rem; }
.lr-choice__opt { position: relative; flex: 0 0 auto; }
.lr-choice__opt input {
  position: absolute; opacity: 0; width: 1px; height: 1px;
}
.lr-choice__opt span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 92px; min-height: 48px; padding: .6rem 1.35rem;
  border: 1.5px solid var(--lr-line); border-radius: 999px;
  background: var(--lr-white); font-weight: 600; cursor: pointer;
  transition: border-color .2s var(--lr-ease), background-color .2s var(--lr-ease), color .2s;
  -webkit-tap-highlight-color: transparent;
}
.lr-choice__opt span:hover { border-color: var(--lr-line-strong); background: var(--lr-paper); }
.lr-choice__opt input:focus-visible + span { outline: 2px solid var(--lr-brand); outline-offset: 3px; }
.lr-choice__opt input:checked + span {
  border-color: var(--lr-brand); background: var(--lr-brand); color: var(--lr-white);
}

/* Native select, styled to match .lr-input */
select.lr-input {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B6470' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 18px;
  padding-right: 2.75rem;
}

/* Contextual acknowledgement */
.lr-ack {
  display: none; gap: .65rem; align-items: flex-start;
  margin-top: 1.05rem; padding: .9rem 1.05rem;
  background: var(--lr-gold-wash); border-radius: var(--lr-radius-sm);
  font-size: .93rem; color: #5C4715; border-left: 3px solid var(--lr-gold);
}
.lr-ack.is-shown { display: flex; animation: lr-fade-up .3s var(--lr-ease) both; }
.lr-ack svg { width: 17px; height: 17px; flex: none; margin-top: .1rem; }
@keyframes lr-fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Review summary */
.lr-review {
  background: var(--lr-paper); border: 1px solid var(--lr-line);
  border-radius: var(--lr-radius); padding: 1.15rem 1.25rem; margin-bottom: 1.75rem;
}
.lr-review__title { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lr-ink-muted); margin-bottom: .8rem; }
.lr-review dl { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1.1rem; margin: 0; font-size: .93rem; }
.lr-review dt { color: var(--lr-ink-muted); font-weight: 500; }
.lr-review dd { margin: 0; font-weight: 600; text-align: right; }

/* Consent */
.lr-consent { display: flex; gap: .75rem; align-items: flex-start; margin: 1.2rem 0 .35rem; }
.lr-consent input[type="checkbox"] {
  width: 22px; height: 22px; flex: none; margin-top: 1px; accent-color: var(--lr-brand); cursor: pointer;
}
.lr-consent label { font-size: .845rem; line-height: 1.5; color: var(--lr-ink-muted); cursor: pointer; }

.lr-hp { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; width: 0; }

/* Nav */
.lr-nav {
  display: flex; align-items: center; gap: .9rem;
  padding: 1.15rem clamp(1.25rem, 4vw, 2.25rem) clamp(1.35rem, 3vw, 1.85rem);
  border-top: 1px solid var(--lr-line); background: var(--lr-white);
}
.lr-nav__back { margin-right: auto; }
.lr-nav .lr-btn--next { min-width: 168px; }
@media (max-width: 575.98px) {
  .lr-nav { position: sticky; bottom: 0; z-index: 20; box-shadow: 0 -6px 20px rgba(23, 23, 23,.06); }
  .lr-nav .lr-btn--next { flex: 1 1 auto; min-width: 0; }
}

.lr-trustline {
  display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.5rem;
  margin-top: 1.5rem; font-size: .83rem; color: var(--lr-ink-muted);
}
.lr-trustline span { display: inline-flex; align-items: center; gap: .4rem; }
.lr-trustline svg { width: 14px; height: 14px; opacity: .65; }

/* ==========================================================================
   Confirmation
   ========================================================================== */

.lr-done { display: none; }
.lr-done.is-active { display: block; animation: lr-fade-up .45s var(--lr-ease) both; }
.lr-done__inner { padding: clamp(2rem, 5vw, 3.25rem) clamp(1.25rem, 4vw, 2.5rem); text-align: center; }
.lr-done__mark {
  width: 66px; height: 66px; border-radius: 50%; margin: 0 auto 1.5rem;
  background: #EAF2EC; color: var(--lr-success); display: grid; place-items: center;
}
.lr-done__mark svg { width: 30px; height: 30px; stroke-dasharray: 48; stroke-dashoffset: 48; animation: lr-draw .6s .18s var(--lr-ease) forwards; }
@keyframes lr-draw { to { stroke-dashoffset: 0; } }
.lr-done h2 { margin-bottom: .85rem; }
.lr-done__lede { max-width: 46ch; margin-inline: auto; color: var(--lr-ink-soft); }

.lr-recap { text-align: left; margin: 2rem auto 0; max-width: 480px; background: var(--lr-paper); border: 1px solid var(--lr-line); border-radius: var(--lr-radius); padding: 1.35rem 1.4rem; }
.lr-recap__title { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lr-ink-muted); margin-bottom: .9rem; }
.lr-recap dl { display: grid; grid-template-columns: auto 1fr; gap: .6rem 1.2rem; margin: 0; font-size: .94rem; }
.lr-recap dt { color: var(--lr-ink-muted); }
.lr-recap dd { margin: 0; font-weight: 600; text-align: right; }

.lr-next {
  margin: 2rem auto 0; max-width: 520px; padding: 1.6rem 1.5rem;
  background: var(--lr-ink); color: var(--lr-paper); border-radius: var(--lr-radius);
}
.lr-next h3 { color: var(--lr-paper); font-size: 1.3rem; margin-bottom: .5rem; }
.lr-next p { color: rgba(250, 248, 250,.74); font-size: .95rem; margin-bottom: 1.25rem; }

/* ==========================================================================
   Editorial / SEO content
   ========================================================================== */

.lr-prose { max-width: 68ch; }
.lr-prose h2 { margin-top: 2.75rem; margin-bottom: .9rem; }
.lr-prose h2:first-child { margin-top: 0; }
.lr-prose h3 { margin-top: 2rem; margin-bottom: .6rem; font-size: 1.22rem; }
.lr-prose p, .lr-prose li { color: var(--lr-ink-soft); }
.lr-prose ul { padding-left: 1.15rem; margin-bottom: 1.15rem; }
.lr-prose li { margin-bottom: .5rem; }
.lr-prose strong { color: var(--lr-ink); }

.lr-toc {
  background: var(--lr-white); border: 1px solid var(--lr-line); border-radius: var(--lr-radius);
  padding: 1.35rem 1.5rem; margin-bottom: 2.5rem;
}
.lr-toc h2 { font-size: .76rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--lr-ink-muted); font-family: var(--lr-font-body); font-weight: 600; margin: 0 0 .85rem !important; }
.lr-toc ul { list-style: none; padding: 0; margin: 0; columns: 1; }
@media (min-width: 700px) { .lr-toc ul { columns: 2; column-gap: 2rem; } }
.lr-toc li { margin-bottom: .5rem; break-inside: avoid; }
.lr-toc a { font-size: .94rem; color: var(--lr-ink-soft); text-decoration: none; border-bottom: 1px solid transparent; }
.lr-toc a:hover { color: var(--lr-gold-deep); border-bottom-color: currentColor; }

.lr-callout {
  border-left: 3px solid var(--lr-gold); background: var(--lr-white);
  padding: 1.25rem 1.4rem; border-radius: 0 var(--lr-radius-sm) var(--lr-radius-sm) 0;
  margin: 1.75rem 0;
}
.lr-callout p:last-child { margin-bottom: 0; }

/* FAQ */
.lr-faq { max-width: 780px; }
.lr-faq details {
  border-bottom: 1px solid var(--lr-line); padding: 0;
}
.lr-faq details[open] summary { color: var(--lr-gold-deep); }
.lr-faq summary {
  list-style: none; cursor: pointer; padding: 1.35rem 2.5rem 1.35rem 0; position: relative;
  font-family: var(--lr-font-display); font-size: 1.16rem; line-height: 1.3;
  transition: color .2s;
}
.lr-faq summary::-webkit-details-marker { display: none; }
.lr-faq summary::after {
  content: ""; position: absolute; right: .35rem; top: 1.65rem;
  width: 11px; height: 11px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg); transition: transform .28s var(--lr-ease); opacity: .55;
}
.lr-faq details[open] summary::after { transform: rotate(-135deg); top: 1.85rem; }
.lr-faq summary:hover { color: var(--lr-gold-deep); }
.lr-faq__a { padding: 0 2.5rem 1.5rem 0; }
.lr-faq__a p:last-child { margin-bottom: 0; }
.lr-faq__a p { color: var(--lr-ink-muted); font-size: .99rem; }

/* Final CTA band */
.lr-band { text-align: center; }
.lr-band h2 { max-width: 20ch; margin: 0 auto 1rem; }
.lr-band .lr-lede { max-width: 52ch; margin: 0 auto 2rem; }

/* Footer */
.lr-footer { background: var(--lr-ink); color: rgba(250, 248, 250,.62); padding: 3.25rem 0 2rem; font-size: .92rem; }
.lr-footer a { color: rgba(250, 248, 250,.82); text-decoration: none; }
.lr-footer a:hover { color: var(--lr-gold-light); }
.lr-footer__grid { display: grid; gap: 2rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .lr-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; } }
.lr-footer .lr-logo { color: var(--lr-paper); }
.lr-footer .lr-logo:hover { color: var(--lr-paper); }
.lr-footer .lr-logo__mark, .lr-footer .lr-logo__mark img { height: 88px; }
.lr-footer h3 { color: var(--lr-paper); font-family: var(--lr-font-body); font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1rem; }
.lr-footer ul { list-style: none; padding: 0; margin: 0; }
.lr-footer li { margin-bottom: .6rem; }
.lr-footer__legal { margin-top: 2.75rem; padding-top: 1.75rem; border-top: 1px solid rgba(250, 248, 250,.12); font-size: .82rem; line-height: 1.6; }

/* Sticky mobile CTA */
.lr-sticky {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  padding: .7rem 16px calc(.7rem + env(safe-area-inset-bottom));
  background: rgba(250, 248, 250,.94); backdrop-filter: blur(10px);
  border-top: 1px solid var(--lr-line);
  transform: translateY(110%); transition: transform .35s var(--lr-ease);
}
.lr-sticky.is-shown { transform: none; }
@media (min-width: 768px) { .lr-sticky { display: none; } }

/* Reveal on scroll */
.lr-reveal { opacity: 0; transform: translateY(16px); }
.lr-reveal.is-in { opacity: 1; transform: none; transition: opacity .6s var(--lr-ease), transform .6s var(--lr-ease); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .lr-reveal { opacity: 1; transform: none; }
}
