/* b-ef22a7021c.css */
/* Homepage nav — align to canonical 5-link pattern used across all
       other pages. Mobile hamburger is wired by mobile-nav-fix.js. */
    .nav { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,0.92); backdrop-filter: blur(20px); border-bottom: 1px solid var(--ed-border, #ECE7E1); padding: 0 24px; height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
    .nav__logo { display: inline-flex; align-items: center; gap: 10px; }
    .nav__links { display: flex; align-items: center; gap: 24px; font-size: 14px; }
    .nav__links a { color: var(--ed-text-soft, #4A4A4A); font-weight: 500; text-decoration: none; transition: color 200ms ease; }
    .nav__links a:hover { color: var(--ed-text, #1A1A1A); }
    .nav__cta { background: var(--ed-maroon, #7B2337); color: #fff; padding: 10px 20px; border-radius: 10px; font-weight: 600; font-size: 13.5px; text-decoration: none; transition: background 200ms ease, transform 200ms ease; }
    .nav__cta:hover { background: var(--ed-maroon-dark, #5A1A29); transform: translateY(-1px); }
    .nav__hamburger { display: none; background: none; border: 0; font-size: 24px; cursor: pointer; padding: 8px 10px; min-height: 44px; min-width: 44px; }
    @media (max-width: 768px) {
      .nav__links { display: none; }
      .nav__hamburger { display: inline-flex; align-items: center; justify-content: center; }
      .nav__cta { padding: 9px 14px; font-size: 12.5px; }
    }

/* kill-legacy-voice-widget-af4133.css */
/* All DOM hooks the legacy voice-widget.js injects */
    #se-voice-fab, #se-voice-overlay, #se-voice-body, #se-voice-form,
    #se-voice-err, #se-voice-style,
    .se-voice-fab-inner, .se-voice-orb, .se-voice-panel, .se-voice-form,
    .se-voice-close, .se-voice-state, .se-voice-hint, .se-voice-sub,
    [data-se-voice] {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
      position: absolute !important;
      width: 0 !important;
      height: 0 !important;
      overflow: hidden !important;
    }

/* luxe-dark-final-6a047d.css */
/* Restore Luxe Dark palette — kill maroon design system leakage */
    body { background: #0a0a0a !important; color: #fafafa !important; }
    /* Restore serif headlines (kill injected Inter !important on h1-h6) */
    h1, h2, h3 { font-family: 'Fraunces', Georgia, serif !important; color: #fafafa !important; }
    /* Kill the injected .hero::after maroon gradient overlay that hid the video */
    .hero::after { content: none !important; display: none !important; }
    /* Lock our hero structure — keep final-frame as background so iOS doesn't
       flash black after video.ended. White fallback matches the SR logo card.
       The Cloudflare worker injects min-height:75vh and padding:24px 16px on
       mobile, which was shrinking the hero and breaking object-fit. Force full. */
    .hero,
    section#hero.hero,
    section#hero.section.hero {
      min-height: 100vh !important;
      padding: 0 !important;
      background: #ffffff url(/assets/hero-frames/hero-intro-final.jpg) center/cover no-repeat !important;
      display: flex !important;
      align-items: flex-end !important;
      position: relative !important;
      overflow: hidden !important;
    }
    @media (max-width: 768px) {
      .hero, section#hero.hero, section#hero.section.hero {
        min-height: 100vh !important;
        padding: 0 !important;
      }
    }
    /* The video MUST fill the hero. Inline absolute + 100% with !important so
       the worker's .section / .hero rules can't shrink it into a black square. */
    .hero video,
    .hero #hero-video {
      display: block !important;
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      object-fit: cover !important;
      object-position: center !important;
      z-index: 0 !important;
      max-width: none !important;
      max-height: none !important;
      border-radius: 0 !important;
    }
    .hero video.is-hidden { opacity: 0 !important; pointer-events: none !important; }
    /* Quiz prompt: dark text on the bright white frame so it's readable
       BEFORE the bottom shadow gradient kicks in. */
    .hero .quiz-step h2.quiz-prompt { color: #1a1a1a !important; font-family: 'Fraunces', Georgia, serif !important; text-shadow: 0 1px 2px rgba(255,255,255,0.6) !important; }
    /* Full-overlay sound prompt — Apple-style "Tap to play with sound" veil.
       Covers the whole hero video on first visit. One tap unmutes + restarts.
       localStorage flag hides it on return visits (where we attempt unmuted
       autoplay). */
    @keyframes heroPulseScale {
      0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); }
      50%      { transform: scale(1.05); box-shadow: 0 0 0 22px rgba(220, 38, 38, 0); }
    }
    .hero-sound-overlay {
      position: absolute !important;
      inset: 0 !important;
      z-index: 5 !important;
      background: linear-gradient(135deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.35) 100%) !important;
      border: 0 !important;
      cursor: pointer !important;
      color: #fff !important;
      font-family: 'Inter', sans-serif !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 18px !important;
      padding: 24px !important;
      transition: opacity 0.45s ease !important;
      -webkit-tap-highlight-color: transparent !important;
    }
    .hero-sound-overlay[hidden] { display: none !important; }
    .hero-sound-overlay.is-leaving { opacity: 0 !important; pointer-events: none !important; }
    .hero-sound-overlay__icon {
      width: 96px !important;
      height: 96px !important;
      border-radius: 50% !important;
      background: rgba(220, 38, 38, 0.95) !important;
      color: #fff !important;
      font-size: 38px !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding-left: 6px !important; /* visually center the play triangle */
      animation: heroPulseScale 2s ease-in-out infinite !important;
      box-shadow: 0 12px 40px rgba(0,0,0,0.4) !important;
    }
    .hero-sound-overlay__label {
      font-family: 'Fraunces', Georgia, serif !important;
      font-size: clamp(22px, 3vw, 32px) !important;
      font-weight: 700 !important;
      letter-spacing: -0.01em !important;
      text-shadow: 0 2px 12px rgba(0,0,0,0.6) !important;
      max-width: 22ch !important;
      text-align: center !important;
    }
    .hero-sound-overlay__sub {
      font-family: 'Inter', sans-serif !important;
      font-size: 13px !important;
      letter-spacing: 0.04em !important;
      color: rgba(255,255,255,0.78) !important;
      max-width: 38ch !important;
      text-align: center !important;
    }
    @media (max-width: 480px) {
      .hero-sound-overlay__icon { width: 76px !important; height: 76px !important; font-size: 30px !important; }
    }

    /* ============================================================
       HERO ESTIMATE FORM — three fields on the glass card. Sizes are
       16px on the inputs deliberately: anything smaller makes iOS Safari
       zoom the viewport on focus, which on a hero form reads as the page
       jumping away from you mid-tap.
       ============================================================ */
    .est-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
    /* The card MUST sit above .hero-sound-overlay, which is inset:0 z-index:5
       across the whole hero and is a <button>. At the quiz's z-index of 4 the
       overlay swallowed every tap on the form — the fields looked live and
       played the video instead.
       Three classes deliberately: `.hero .quiz-step` later in this file also
       sets z-index with !important, and at equal specificity source order
       wins, so a two-class selector here silently lost. */
    .hero .quiz-step.estimate-step { z-index: 6 !important; }
    /* Keep the play prompt in the video area above the card rather than
       centred behind it. */
    .hero .hero-sound-overlay {
      justify-content: flex-start !important;
      padding-top: 16vh !important;
    }
    /* The activity ticker is position:fixed z-index:50 and was intercepting
       taps on the consent checkbox. It is a read-only status display that
       nobody is meant to click, so it should never take a pointer event
       wherever it happens to land. */
    .ticker { pointer-events: none !important; }
    @media (max-width: 900px) {
      /* Also lift it clear of the call bar so two floating things aren't
         stacked in the same corner. */
      .ticker { bottom: calc(170px + env(safe-area-inset-bottom)) !important; }
    }
    .hero .estimate-step .est-row {
      display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 10px;
    }
    @media (min-width: 720px) {
      .hero .estimate-step .est-row { grid-template-columns: 1fr 1fr 1.2fr; }
    }
    .hero .estimate-step input[type="text"],
    .hero .estimate-step input[type="tel"],
    .hero .estimate-step select {
      width: 100%; min-height: 48px; padding: 12px 14px; font-size: 16px;
      font-family: 'Inter', system-ui, sans-serif;
      color: #1a1a1a; background: #fff;
      border: 1px solid rgba(255,255,255,0.5); border-radius: 6px; appearance: none;
    }
    .hero .estimate-step select { background-image: none; }
    .hero .estimate-step input:focus-visible,
    .hero .estimate-step select:focus-visible,
    .hero .estimate-step button:focus-visible {
      outline: 3px solid #E8A33D; outline-offset: 2px;
    }
    .hero .estimate-step .est-submit {
      width: 100%; min-height: 52px; font-size: 17px; font-weight: 700; cursor: pointer;
    }
    .hero .estimate-step .est-consent {
      display: flex; gap: 8px; align-items: flex-start; margin: 12px 0 0;
      font-size: 11.5px; line-height: 1.45; color: rgba(255,255,255,0.82);
      text-align: left; cursor: pointer;
    }
    .hero .estimate-step .est-consent input {
      margin-top: 2px; width: 18px; height: 18px; flex: none;
    }
    .hero .estimate-step .est-consent a { color: #E8A33D; }
    .hero .estimate-step .est-alt {
      margin: 10px 0 0; font-size: 11.5px; letter-spacing: 0.02em;
      color: rgba(255,255,255,0.72); text-align: center;
    }
    .hero .estimate-step .est-status {
      margin: 10px 0 0; font-size: 13.5px; line-height: 1.45; text-align: center;
      color: #fff; background: rgba(0,0,0,0.35); border-radius: 6px; padding: 10px 12px;
    }
    .hero .estimate-step .est-status.is-error { background: rgba(153,27,27,0.55); }
    .hero .estimate-step .est-status a { color: #ffd7a0; font-weight: 700; }

    /* ============================================================
       STICKY TAP-TO-CALL — mobile only. The phone number was on the page
       but required the visitor to find it and act. Hidden when the hero
       form is on screen, so the two primary actions never compete, and
       it sits above the safe-area inset so it clears the iOS home bar.
       ============================================================ */
    .sticky-call {
      position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
      display: none; align-items: center; justify-content: center; gap: 10px;
      min-height: 56px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
      background: #7B2337; color: #fff; text-decoration: none;
      font-family: 'Inter', system-ui, sans-serif; font-size: 16px; font-weight: 700;
      letter-spacing: 0.01em; box-shadow: 0 -6px 20px rgba(0,0,0,0.28);
      transition: transform .22s ease;
    }
    .sticky-call[hidden] { display: none !important; }
    .sticky-call.is-tucked { transform: translateY(100%); }
    @media (max-width: 900px) { .sticky-call { display: flex; } }
    /* The Dakota bubble lives bottom-right; lift it clear of the bar so the
       two do not overlap on small screens. */
    @media (max-width: 900px) {
      body.has-sticky-call .sr-chat-bubble,
      body.has-sticky-call #sr-chat-bubble,
      body.has-sticky-call .dakota-bubble {
        bottom: calc(72px + env(safe-area-inset-bottom)) !important;
      }
    }
    @media print { .sticky-call { display: none !important; } }

    /* ============================================================
       QUIZ STEP — sits on a solid dark glass card pinned to the bottom
       so it doesn't overlap the SR logo. Replaces the previous bare
       text-on-image treatment that was illegible on mobile.
       ============================================================ */
    .hero .quiz-step {
      position: absolute !important;
      left: 0 !important;
      right: 0 !important;
      bottom: 0 !important;
      max-width: 720px !important;
      margin: 0 auto !important;
      padding: 24px 20px 28px !important;
      background: linear-gradient(to top, rgba(10,10,10,0.96) 0%, rgba(10,10,10,0.88) 80%, rgba(10,10,10,0.65) 100%) !important;
      border-top: 1px solid rgba(220,38,38,0.35) !important;
      box-shadow: 0 -12px 40px rgba(0,0,0,0.45) !important;
      transform: none !important;
      backdrop-filter: blur(12px) !important;
      -webkit-backdrop-filter: blur(12px) !important;
      z-index: 4 !important;
    }
    .hero .quiz-step.is-visible::before { display: none !important; }
    .hero .quiz-step h2.quiz-prompt,
    .hero .quiz-prompt {
      color: #ffffff !important;
      font-family: 'Fraunces', Georgia, serif !important;
      font-size: 22px !important;
      font-weight: 700 !important;
      letter-spacing: -0.01em !important;
      line-height: 1.2 !important;
      margin-bottom: 16px !important;
      text-align: center !important;
      text-shadow: none !important;
    }
    @media (min-width: 640px) {
      .hero .quiz-step h2.quiz-prompt { font-size: 28px !important; }
    }
    .hero .quiz-tiles {
      display: grid !important;
      grid-template-columns: repeat(2, 1fr) !important;
      gap: 10px !important;
      margin: 0 0 14px !important;
    }
    @media (min-width: 640px) {
      .hero .quiz-tiles { grid-template-columns: repeat(4, 1fr) !important; }
    }
    .hero .quiz-tiles button {
      background: rgba(255,255,255,0.08) !important;
      border: 1px solid rgba(255,255,255,0.22) !important;
      color: #fff !important;
      padding: 14px 10px !important;
      border-radius: 10px !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      cursor: pointer !important;
      min-height: 56px !important;
      transition: all 0.2s ease !important;
    }
    .hero .quiz-tiles button:hover,
    .hero .quiz-tiles button:active {
      background: rgba(220,38,38,0.18) !important;
      border-color: #dc2626 !important;
      transform: translateY(-1px) !important;
    }
    .hero .quiz-step .btn,
    .hero .quiz-step .btn-red {
      width: 100% !important;
      margin-top: 6px !important;
      background: #dc2626 !important;
      color: #fff !important;
      border-radius: 10px !important;
      padding: 13px 18px !important;
      font-size: 14px !important;
      text-align: center !important;
      font-weight: 700 !important;
      text-decoration: none !important;
      display: block !important;
    }

    /* ============================================================
       DAKOTA AGENT CARD — fixed bottom-right, real chat-widget look.
       Avatar + greeting + dual CTAs (voice + text) + close button.
       Whole card stays visible during scroll. Hidden when user closes,
       can be re-opened via the floating bubble.
       ============================================================ */
    @keyframes dakotaRingPulse {
      0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.65); }
      50%      { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
    }
    @keyframes dakotaCardGlow {
      0%, 100% { box-shadow: 0 16px 40px rgba(0,0,0,0.45), 0 0 0 1px rgba(220,38,38,0.45), 0 0 24px 4px rgba(220,38,38,0.22); }
      50%      { box-shadow: 0 16px 40px rgba(0,0,0,0.45), 0 0 0 1px rgba(220,38,38,0.75), 0 0 38px 10px rgba(220,38,38,0.45); }
    }
    .dakota-card {
      position: fixed !important;
      right: 16px !important;
      bottom: 16px !important;
      left: auto !important;
      transform: none !important;
      z-index: 60 !important;
      width: 320px !important;
      max-width: calc(100vw - 32px) !important;
      background: linear-gradient(160deg, #1a1a1a 0%, #0e0e0e 100%) !important;
      border-radius: 18px !important;
      padding: 16px 16px 14px !important;
      animation: dakotaCardGlow 2.6s ease-in-out infinite !important;
    }
    .dakota-card[hidden] { display: none !important; }
    .dakota-card__close {
      position: absolute !important;
      top: 8px !important;
      right: 10px !important;
      background: transparent !important;
      border: 0 !important;
      color: rgba(255,255,255,0.5) !important;
      font-size: 22px !important;
      line-height: 1 !important;
      width: 28px !important;
      height: 28px !important;
      cursor: pointer !important;
      padding: 0 !important;
      border-radius: 50% !important;
    }
    .dakota-card__close:hover { color: #fff !important; background: rgba(255,255,255,0.08) !important; }
    .dakota-card__inner {
      display: flex !important;
      align-items: flex-start !important;
      gap: 12px !important;
    }
    .dakota-card__avatar {
      flex: 0 0 auto !important;
      width: 44px !important;
      height: 44px !important;
      border-radius: 50% !important;
      background: linear-gradient(135deg, #dc2626 0%, #7f1d1d 100%) !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      position: relative !important;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18) !important;
    }
    .dakota-card__avatar-letter {
      color: #fff !important;
      font-family: 'Fraunces', Georgia, serif !important;
      font-size: 20px !important;
      font-weight: 800 !important;
      letter-spacing: -0.04em !important;
    }
    .dakota-card__status {
      position: absolute !important;
      bottom: -2px !important;
      right: -2px !important;
      width: 13px !important;
      height: 13px !important;
      border-radius: 50% !important;
      background: #22c55e !important;
      border: 2px solid #1a1a1a !important;
      animation: dakotaRingPulse 1.5s ease-in-out infinite !important;
    }
    .dakota-card__body { flex: 1 1 auto !important; min-width: 0 !important; }
    .dakota-card__name {
      display: flex !important;
      align-items: baseline !important;
      gap: 8px !important;
      margin-bottom: 4px !important;
    }
    .dakota-card__name strong {
      color: #fff !important;
      font-size: 15px !important;
      font-weight: 700 !important;
      letter-spacing: -0.01em !important;
    }
    .dakota-card__status-text {
      color: #22c55e !important;
      font-size: 11px !important;
      font-weight: 600 !important;
      letter-spacing: 0.06em !important;
      text-transform: uppercase !important;
    }
    .dakota-card__msg {
      color: #d4d4d8 !important;
      font-size: 13px !important;
      line-height: 1.45 !important;
      margin-bottom: 12px !important;
    }
    .dakota-card__actions {
      display: grid !important;
      grid-template-columns: 1fr 1fr !important;
      gap: 8px !important;
    }
    .dakota-card__btn {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 6px !important;
      padding: 10px 12px !important;
      border-radius: 10px !important;
      font-size: 13px !important;
      font-weight: 700 !important;
      text-decoration: none !important;
      cursor: pointer !important;
      transition: transform 0.15s ease, background 0.15s ease !important;
      border: 0 !important;
    }
    .dakota-card__btn--voice { background: #dc2626 !important; color: #fff !important; }
    .dakota-card__btn--voice:hover { background: #ef4444 !important; transform: translateY(-1px) !important; }
    .dakota-card__btn--text {
      background: rgba(255,255,255,0.08) !important;
      color: #fff !important;
      border: 1px solid rgba(255,255,255,0.18) !important;
    }
    .dakota-card__btn--text:hover { background: rgba(255,255,255,0.14) !important; transform: translateY(-1px) !important; }

    .dakota-reopen {
      position: fixed !important;
      right: 16px !important;
      bottom: 16px !important;
      z-index: 60 !important;
      width: 56px !important;
      height: 56px !important;
      border-radius: 50% !important;
      background: linear-gradient(135deg, #dc2626 0%, #991b1b 100%) !important;
      color: #fff !important;
      font-size: 26px !important;
      border: 0 !important;
      cursor: pointer !important;
      box-shadow: 0 12px 32px rgba(0,0,0,0.4), 0 0 0 1px rgba(220,38,38,0.5), 0 0 24px 4px rgba(220,38,38,0.3) !important;
      animation: dakotaCardGlow 2.6s ease-in-out infinite !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding: 0 !important;
    }
    .dakota-reopen[hidden] { display: none !important; }
    .dakota-reopen__dot {
      position: absolute !important;
      top: 6px !important;
      right: 6px !important;
      width: 12px !important;
      height: 12px !important;
      border-radius: 50% !important;
      background: #22c55e !important;
      border: 2px solid #991b1b !important;
      animation: dakotaRingPulse 1.5s ease-in-out infinite !important;
    }

    @media (max-width: 480px) {
      .dakota-card {
        right: 12px !important;
        bottom: 12px !important;
        width: calc(100vw - 24px) !important;
      }
      .dakota-card__msg { font-size: 12.5px !important; }
    }
    /* Hide the legacy AI CTA card (now superseded by .dakota-card) */
    #voice-pill, .ai-cta-card { display: none !important; }

    /* ============================================================
       BRIGHT EDITORIAL THEME — overrides the dark luxe-dark.css base.
       Modeled on Gallery KBNY + deVOL Kitchens + Studio McGee.
       Cream background, serif headlines, photography-led storytelling.
       ============================================================ */
    :root {
      --ed-bg: #FAF8F5;
      --ed-bg-alt: #FFFFFF;
      --ed-text: #1A1A1A;
      --ed-text-soft: #4A4A4A;
      --ed-text-muted: #7A7A7A;
      --ed-border: #ECE7E1;
      --ed-maroon: #7B2337;
      --ed-maroon-dark: #5A1A29;
      --ed-gold: #C4935A;
    }
    body { background: var(--ed-bg) !important; color: var(--ed-text) !important; }
    .ed-section { padding: clamp(48px, 7vw, 96px) 24px !important; background: var(--ed-bg) !important; color: var(--ed-text) !important; }
    .ed-section--cream { background: var(--ed-bg) !important; }
    .ed-section--alt { background: var(--ed-bg-alt) !important; }
    .ed-inner { max-width: 1200px !important; margin: 0 auto !important; padding: 0 !important; }
    .ed-eyebrow { font-family: 'Inter', sans-serif !important; font-size: 12px !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: var(--ed-gold) !important; font-weight: 700 !important; margin: 0 0 14px 0 !important; }
    .ed-eyebrow--center { text-align: center !important; }
    .ed-h2 { font-family: 'Fraunces', Georgia, serif !important; font-size: clamp(28px, 4vw, 44px) !important; font-weight: 700 !important; letter-spacing: -0.015em !important; line-height: 1.1 !important; color: var(--ed-text) !important; margin: 0 0 16px 0 !important; max-width: 22ch !important; }
    .ed-lede { font-family: 'Inter', sans-serif !important; font-size: clamp(15px, 1.4vw, 17px) !important; line-height: 1.65 !important; color: var(--ed-text-soft) !important; max-width: 62ch !important; margin: 0 0 36px 0 !important; }
    .ed-link-arrow { font-family: 'Inter', sans-serif !important; font-size: 14px !important; font-weight: 700 !important; color: var(--ed-maroon) !important; text-decoration: none !important; border-bottom: 1px solid var(--ed-maroon) !important; padding-bottom: 2px !important; }
    .ed-link-arrow:hover { color: var(--ed-maroon-dark) !important; }
    .ed-cta-row { text-align: center !important; margin-top: 36px !important; }
    .ed-btn { display: inline-flex !important; align-items: center !important; gap: 8px !important; padding: 14px 28px !important; border-radius: 8px !important; font-family: 'Inter', sans-serif !important; font-weight: 700 !important; font-size: 14px !important; text-decoration: none !important; cursor: pointer !important; border: 0 !important; transition: all 200ms ease !important; }
    .ed-btn--ghost { background: transparent !important; color: var(--ed-maroon) !important; border: 1.5px solid var(--ed-maroon) !important; }
    .ed-btn--ghost:hover { background: var(--ed-maroon) !important; color: #fff !important; }
    .ed-btn--white { background: #fff !important; color: var(--ed-maroon) !important; }
    .ed-btn--white:hover { background: var(--ed-bg) !important; }
    .ed-btn--outline-white { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,0.6) !important; }
    .ed-btn--outline-white:hover { background: rgba(255,255,255,0.1) !important; }

    .ed-svc-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 18px !important; margin-top: 12px !important; }
    @media (min-width: 720px) { .ed-svc-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 24px !important; } }
    @media (min-width: 1100px) { .ed-svc-grid { grid-template-columns: repeat(3, 1fr) !important; } }
    .ed-svc-tile { display: flex !important; flex-direction: column !important; background: #fff !important; border: 1px solid var(--ed-border) !important; border-radius: 14px !important; overflow: hidden !important; text-decoration: none !important; color: inherit !important; transition: transform 250ms ease, box-shadow 250ms ease !important; cursor: pointer !important; }
    .ed-svc-tile:hover { transform: translateY(-4px) !important; box-shadow: 0 18px 48px rgba(0,0,0,0.08) !important; }
    .ed-svc-tile__img { aspect-ratio: 4/3 !important; background-size: cover !important; background-position: center !important; background-color: var(--ed-bg) !important; }
    .ed-svc-tile__body { padding: 22px 24px 26px !important; flex: 1 1 auto !important; }
    .ed-svc-tile__price { display: inline-block !important; font-family: 'Inter', sans-serif !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.12em !important; text-transform: uppercase !important; color: var(--ed-gold) !important; margin-bottom: 8px !important; }
    .ed-svc-tile__title { font-family: 'Fraunces', Georgia, serif !important; font-size: 22px !important; font-weight: 700 !important; color: var(--ed-text) !important; margin: 0 0 8px 0 !important; letter-spacing: -0.01em !important; }
    .ed-svc-tile__desc { font-family: 'Inter', sans-serif !important; font-size: 14px !important; line-height: 1.55 !important; color: var(--ed-text-soft) !important; margin: 0 0 14px 0 !important; }
    .ed-svc-tile__link { font-family: 'Inter', sans-serif !important; font-size: 13px !important; font-weight: 700 !important; color: var(--ed-maroon) !important; }

    .ed-story { display: grid !important; grid-template-columns: 1fr !important; gap: 36px !important; align-items: center !important; }
    @media (min-width: 900px) { .ed-story { grid-template-columns: 1.1fr 1fr !important; gap: 64px !important; } }
    .ed-story__photo img { width: 100% !important; height: auto !important; border-radius: 12px !important; display: block !important; }
    .ed-story__text p { font-family: 'Inter', sans-serif !important; font-size: clamp(15px, 1.4vw, 16px) !important; line-height: 1.7 !important; color: var(--ed-text-soft) !important; margin: 0 0 16px 0 !important; }

    .ed-proj-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 28px !important; margin-top: 12px !important; }
    @media (min-width: 900px) { .ed-proj-grid { grid-template-columns: repeat(3, 1fr) !important; } }
    .ed-proj { background: #fff !important; border: 1px solid var(--ed-border) !important; border-radius: 14px !important; overflow: hidden !important; }
    .ed-proj__media { display: block !important; }
    .ed-proj__media img { width: 100% !important; height: auto !important; aspect-ratio: 4/3 !important; object-fit: cover !important; display: block !important; border-radius: 0 !important; transition: transform 350ms ease !important; }
    .ed-proj__media:hover img { transform: scale(1.03) !important; }
    .ed-proj__body { padding: 22px 24px 26px !important; }
    .ed-proj__city { font-family: 'Inter', sans-serif !important; font-size: 11px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; color: var(--ed-gold) !important; font-weight: 700 !important; }
    .ed-proj__title { font-family: 'Fraunces', Georgia, serif !important; font-size: 22px !important; font-weight: 700 !important; margin: 6px 0 10px 0 !important; color: var(--ed-text) !important; line-height: 1.2 !important; }
    .ed-proj__desc { font-family: 'Inter', sans-serif !important; font-size: 14px !important; line-height: 1.6 !important; color: var(--ed-text-soft) !important; margin: 0 0 16px 0 !important; }
    .ed-proj__chips { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; padding: 0 !important; margin: 0 !important; list-style: none !important; }
    .ed-proj__chips li { font-family: 'Inter', sans-serif !important; font-size: 11px !important; font-weight: 600 !important; padding: 4px 10px !important; border-radius: 999px !important; background: var(--ed-bg) !important; color: var(--ed-text-soft) !important; border: 1px solid var(--ed-border) !important; }

    .ed-proc-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; margin-top: 24px !important; padding: 0 !important; list-style: none !important; }
    @media (min-width: 720px) { .ed-proc-grid { grid-template-columns: repeat(2, 1fr) !important; } }
    @media (min-width: 1100px) { .ed-proc-grid { grid-template-columns: repeat(4, 1fr) !important; } }
    .ed-proc { position: relative !important; background: #fff !important; border: 1px solid var(--ed-border) !important; border-radius: 12px !important; padding: 0 !important; overflow: hidden !important; list-style: none !important; }
    .ed-proc__img { aspect-ratio: 4/3 !important; background-size: cover !important; background-position: center !important; }
    .ed-proc__num { position: absolute !important; top: 14px !important; left: 14px !important; background: var(--ed-maroon) !important; color: #fff !important; font-family: 'Fraunces', Georgia, serif !important; font-weight: 700 !important; font-size: 14px !important; width: 36px !important; height: 36px !important; border-radius: 50% !important; display: flex !important; align-items: center !important; justify-content: center !important; }
    .ed-proc__title { font-family: 'Fraunces', Georgia, serif !important; font-size: 19px !important; font-weight: 700 !important; padding: 18px 22px 6px !important; margin: 0 !important; color: var(--ed-text) !important; line-height: 1.25 !important; }
    .ed-proc__desc { font-family: 'Inter', sans-serif !important; font-size: 13.5px !important; line-height: 1.55 !important; padding: 0 22px 22px !important; color: var(--ed-text-soft) !important; margin: 0 !important; }

    .ed-founder { display: grid !important; grid-template-columns: 1fr !important; gap: 36px !important; align-items: center !important; }
    @media (min-width: 900px) { .ed-founder { grid-template-columns: 0.9fr 1.1fr !important; gap: 56px !important; } }
    .ed-founder__photo img { width: 100% !important; max-width: 460px !important; aspect-ratio: 1/1 !important; object-fit: cover !important; border-radius: 12px !important; display: block !important; margin: 0 auto !important; }
    .ed-founder__role { font-family: 'Inter', sans-serif !important; font-size: 13px !important; letter-spacing: 0.04em !important; color: var(--ed-text-muted) !important; margin: -4px 0 18px 0 !important; }
    .ed-founder__text p { font-family: 'Inter', sans-serif !important; font-size: 16px !important; line-height: 1.7 !important; color: var(--ed-text-soft) !important; margin: 0 0 16px 0 !important; }

    .ed-test-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 24px !important; margin-top: 12px !important; }
    @media (min-width: 900px) { .ed-test-grid { grid-template-columns: repeat(3, 1fr) !important; } }
    .ed-test { background: #fff !important; border: 1px solid var(--ed-border) !important; border-radius: 14px !important; overflow: hidden !important; }
    .ed-test__photo { aspect-ratio: 1/1 !important; background-size: cover !important; background-position: center !important; }
    .ed-test__body { padding: 24px 26px 28px !important; }
    .ed-test__stars { color: var(--ed-gold) !important; font-size: 16px !important; letter-spacing: 4px !important; margin: 0 0 14px 0 !important; font-family: 'Inter', sans-serif !important; }
    .ed-test__quote { font-family: 'Fraunces', Georgia, serif !important; font-size: 17px !important; font-weight: 400 !important; line-height: 1.45 !important; font-style: italic !important; color: var(--ed-text) !important; margin: 0 0 16px 0 !important; padding: 0 !important; border: 0 !important; }
    .ed-test__author { font-family: 'Inter', sans-serif !important; font-size: 13px !important; font-weight: 700 !important; color: var(--ed-text) !important; margin: 0 !important; }
    .ed-test__author span { color: var(--ed-text-muted) !important; font-weight: 400 !important; }

    .ed-press { padding: 56px 24px !important; }
    .ed-press-row { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; margin-top: 24px !important; }
    /* An odd tile count over 2 columns leaves a lone trailing tile — let it span
       the row. :nth-child(odd) keeps this inert if the count ever becomes even. */
    .ed-press-row > .ed-press-item:last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
    @media (min-width: 720px) { .ed-press-row { grid-template-columns: repeat(3, 1fr) !important; } .ed-press-row > .ed-press-item:last-child:nth-child(odd) { grid-column: auto !important; } }
    @media (min-width: 1100px) { .ed-press-row { grid-template-columns: repeat(5, 1fr) !important; } }
    .ed-press-item { display: flex !important; flex-direction: column !important; align-items: center !important; gap: 6px !important; text-align: center !important; padding: 22px 14px !important; border: 1px solid var(--ed-border) !important; border-radius: 12px !important; background: var(--ed-bg) !important; text-decoration: none !important; color: inherit !important; transition: border-color 200ms ease !important; }
    a.ed-press-item:hover { border-color: var(--ed-gold) !important; }
    .ed-press-item img { height: 36px !important; width: auto !important; max-width: 110px !important; object-fit: contain !important; }
    .ed-press-item strong { font-family: 'Fraunces', Georgia, serif !important; font-size: 22px !important; color: var(--ed-text) !important; line-height: 1 !important; }
    .ed-press-item span { font-family: 'Inter', sans-serif !important; font-size: 11.5px !important; color: var(--ed-text-muted) !important; letter-spacing: 0.04em !important; }

    .ed-area-cols { display: grid !important; grid-template-columns: 1fr !important; gap: 28px !important; margin-top: 18px !important; }
    @media (min-width: 720px) { .ed-area-cols { grid-template-columns: 1fr 1fr !important; gap: 56px !important; } }
    .ed-area-col__title { font-family: 'Fraunces', Georgia, serif !important; font-size: 22px !important; font-weight: 700 !important; color: var(--ed-text) !important; margin: 0 0 18px 0 !important; padding-bottom: 12px !important; border-bottom: 2px solid var(--ed-gold) !important; }
    .ed-area-list { list-style: none !important; padding: 0 !important; margin: 0 !important; columns: 2 !important; column-gap: 32px !important; }
    .ed-area-list li { margin-bottom: 8px !important; break-inside: avoid !important; }
    .ed-area-list a { font-family: 'Inter', sans-serif !important; font-size: 15px !important; color: var(--ed-text) !important; text-decoration: none !important; }
    .ed-area-list a:hover { color: var(--ed-maroon) !important; }

    .ed-cta-stripe { background: linear-gradient(135deg, var(--ed-maroon) 0%, var(--ed-maroon-dark) 100%) !important; color: #fff !important; padding: clamp(56px, 8vw, 96px) 24px !important; text-align: center !important; }
    .ed-cta-stripe h2 { font-family: 'Fraunces', Georgia, serif !important; font-size: clamp(28px, 4vw, 40px) !important; font-weight: 700 !important; color: #fff !important; margin: 0 auto 12px auto !important; line-height: 1.15 !important; max-width: 24ch !important; }
    .ed-cta-stripe p { font-family: 'Inter', sans-serif !important; font-size: 16px !important; color: rgba(255,255,255,0.85) !important; max-width: 56ch !important; margin: 0 auto 28px auto !important; line-height: 1.6 !important; }
    .ed-cta-stripe__btns { display: flex !important; gap: 12px !important; justify-content: center !important; flex-wrap: wrap !important; }
    .ed-cta-stripe__proof { font-size: 12px !important; color: rgba(255,255,255,0.55) !important; margin-top: 24px !important; letter-spacing: 0.04em !important; }

    .ed-footer { background: #F4F0EA !important; color: var(--ed-text-soft) !important; padding: 64px 24px 24px !important; border-top: 1px solid var(--ed-border) !important; }
    .ed-footer__grid { display: grid !important; grid-template-columns: 1fr !important; gap: 32px !important; margin-bottom: 36px !important; }
    @media (min-width: 720px) { .ed-footer__grid { grid-template-columns: repeat(2, 1fr) !important; } }
    @media (min-width: 1100px) { .ed-footer__grid { grid-template-columns: 1.4fr repeat(4, 1fr) !important; } }
    .ed-footer__about { font-family: 'Inter', sans-serif !important; font-size: 13.5px !important; line-height: 1.6 !important; color: var(--ed-text-soft) !important; margin: 0 0 14px 0 !important; }
    .ed-footer__contact { font-family: 'Inter', sans-serif !important; font-size: 13px !important; line-height: 1.7 !important; color: var(--ed-text-soft) !important; margin: 0 !important; }
    .ed-footer__contact a { color: var(--ed-text-soft) !important; text-decoration: none !important; }
    .ed-footer__contact a:hover { color: var(--ed-maroon) !important; }
    .ed-footer__title { font-family: 'Fraunces', Georgia, serif !important; font-size: 14px !important; font-weight: 700 !important; color: var(--ed-text) !important; margin: 0 0 14px 0 !important; }
    .ed-footer__list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
    .ed-footer__list li { margin-bottom: 8px !important; }
    .ed-footer__list a { font-family: 'Inter', sans-serif !important; font-size: 13px !important; color: var(--ed-text-soft) !important; text-decoration: none !important; }
    .ed-footer__list a:hover { color: var(--ed-maroon) !important; }
    .ed-footer__bottom { font-family: 'Inter', sans-serif !important; font-size: 12px !important; color: var(--ed-text-muted) !important; padding-top: 24px !important; border-top: 1px solid var(--ed-border) !important; text-align: center !important; }
    .ed-footer__bottom a { color: var(--ed-text-muted) !important; text-decoration: underline !important; }

    /* Defeat the Cloudflare worker's auto-eyebrow on first child of any
       .section — was forcing every section first child to gold-uppercase */
    .ed-section > *:first-child,
    .ed-section .ed-inner > *:first-child {
      letter-spacing: normal !important;
      text-transform: none !important;
      font-size: revert !important;
      font-weight: revert !important;
      color: revert !important;
      margin-bottom: revert !important;
    }
    .ed-section .ed-eyebrow,
    .ed-section .ed-inner .ed-eyebrow {
      letter-spacing: 0.18em !important;
      text-transform: uppercase !important;
      font-size: 12px !important;
      font-weight: 700 !important;
      color: var(--ed-gold) !important;
    }

    /* ============================================================
       BEFORE/AFTER SLIDER — drag-to-reveal renovation comparison.
       Pointer + touch + keyboard a11y. Pure CSS clip-path animation.
       ============================================================ */
    .ba-grid {
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 28px !important;
      margin-top: 36px !important;
    }
    @media (min-width: 980px) {
      .ba-grid { grid-template-columns: repeat(3, 1fr) !important; }
    }
    .ba-slider {
      position: relative !important;
      aspect-ratio: 4 / 3 !important;
      width: 100% !important;
      margin: 0 !important;
      overflow: hidden !important;
      border-radius: 14px !important;
      background: #0a0a0a !important;
      box-shadow: 0 12px 40px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.04) !important;
      user-select: none !important;
      touch-action: pan-y !important;
      cursor: ew-resize !important;
    }
    .ba-slider img {
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      object-fit: cover !important;
      object-position: center !important;
      max-width: none !important;
      pointer-events: none !important;
      border-radius: 0 !important;
      display: block !important;
    }
    /* "after" image is clipped from the right edge by --ba-pos (default 50%) */
    .ba-slider__after {
      clip-path: inset(0 0 0 var(--ba-pos, 50%)) !important;
      -webkit-clip-path: inset(0 0 0 var(--ba-pos, 50%)) !important;
    }
    .ba-slider__label {
      position: absolute !important;
      top: 12px !important;
      padding: 4px 10px !important;
      font-size: 11px !important;
      letter-spacing: 0.14em !important;
      font-weight: 700 !important;
      border-radius: 6px !important;
      color: #fff !important;
      background: rgba(0,0,0,0.55) !important;
      backdrop-filter: blur(4px) !important;
      pointer-events: none !important;
      z-index: 2 !important;
    }
    .ba-slider__label--before { left: 12px !important; }
    .ba-slider__label--after  { right: 12px !important; background: rgba(220,38,38,0.85) !important; }

    .ba-slider__handle {
      position: absolute !important;
      top: 0 !important;
      bottom: 0 !important;
      left: var(--ba-pos, 50%) !important;
      width: 44px !important;
      transform: translateX(-50%) !important;
      background: transparent !important;
      border: 0 !important;
      padding: 0 !important;
      cursor: ew-resize !important;
      z-index: 3 !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      color: #1a0608 !important;
      font-size: 16px !important;
      font-weight: 700 !important;
    }
    .ba-slider__handle::before {
      content: "" !important;
      position: absolute !important;
      top: 0 !important;
      bottom: 0 !important;
      left: 50% !important;
      width: 3px !important;
      background: #fff !important;
      transform: translateX(-50%) !important;
      box-shadow: 0 0 0 1px rgba(0,0,0,0.25), 0 0 12px rgba(255,255,255,0.4) !important;
    }
    .ba-slider__handle > span {
      position: relative !important;
      z-index: 1 !important;
      width: 40px !important;
      height: 40px !important;
      border-radius: 50% !important;
      background: #fff !important;
      box-shadow: 0 4px 14px rgba(0,0,0,0.35), 0 0 0 2px rgba(220,38,38,0.6) !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      font-size: 20px !important;
      color: #dc2626 !important;
    }
    .ba-slider__handle:focus-visible {
      outline: 0 !important;
    }
    .ba-slider__handle:focus-visible > span {
      box-shadow: 0 4px 14px rgba(0,0,0,0.35), 0 0 0 4px rgba(220,38,38,1) !important;
    }
    .ba-slider__caption {
      position: absolute !important;
      left: 12px !important;
      right: 12px !important;
      bottom: 10px !important;
      color: #fafafa !important;
      font-size: 12.5px !important;
      font-weight: 600 !important;
      text-shadow: 0 1px 4px rgba(0,0,0,0.6) !important;
      pointer-events: none !important;
      z-index: 2 !important;
      text-align: center !important;
    }
    /* Kill the auto-styling of first-child of every .section as a gold uppercase label */
    .section > *:first-child { letter-spacing: normal !important; text-transform: none !important; font-size: inherit !important; font-weight: inherit !important; color: inherit !important; margin-bottom: 0 !important; }
    /* Restore .label utility (was overridden above as section first-child) */
    .label { letter-spacing: 0.18em !important; text-transform: uppercase !important; font-size: 12px !important; color: #a1a1aa !important; }
    /* Trust strip + offer block + section colors */
    .trust-strip { background: #141414 !important; color: #a1a1aa !important; border-color: #27272a !important; }
    .trust-strip strong { color: #fafafa !important; }
    .trust-strip .gold { color: #fbbf24 !important; }
    .card { background: #141414 !important; border: 1px solid #27272a !important; color: #fafafa !important; }
    /* CTA buttons — keep our red primary */
    .btn-red { background: #dc2626 !important; color: #fff !important; }
    .btn-ghost { background: transparent !important; border: 1px solid #27272a !important; color: #fafafa !important; }
    /* Voice pill — restore pulse + center-bottom */
    .voice-pill { background: #dc2626 !important; color: #fff !important; }
    /* Footer + final CTA — kill injected maroon background */
    footer.section, .cta-block { background: #000 !important; }
    footer.section h2, footer.section p, footer.section span { color: #fafafa !important; }
    /* Body text colors */
    p, li { color: #fafafa !important; }
    .lede, [style*="text-muted"] { color: #a1a1aa !important; }
    /* Ensure links inside dark sections stay readable */
    a { color: inherit; }
    a[style*="accent-gold"] { color: #fbbf24 !important; }
    /* Process step number circle stays gold-on-dark */
    .process-step__num, .step-number { background: #fbbf24 !important; color: #0a0a0a !important; }

/* se-dakota-mobile-defer-css-207f28.css */
/* Reserve bottom space so a permanently-visible fixed card never
     blocks a CTA. Mirrors the safe-area-inset iOS pattern. */
  @media (max-width: 640px) {
    body { padding-bottom: 96px; }
  }
