/* USHP Theme — Main Stylesheet */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@700;800&display=swap');
:root {
  /* Brand palette — deep navy + amber, not default blue */
  --c-navy:   #0f1f3d;        /* primary dark — all major backgrounds */
  --c-blue:   #1e40af;        /* secondary blue — hover, links */
  --c-amber:  #d97706;        /* accent — eyebrows, highlights */
  --c-amber-lt: #fef3c7;      /* light amber — tint backgrounds */
  --c-green:  #15803d;        /* CTA green */
  --c-green-lt: #f0fdf4;
  --c-primary: #1e40af;       /* alias for components */
  --c-primary-hover: #1d4ed8;
  --c-secondary: #15803d;
  --c-text:   #111827;
  --c-text-med: #374151;
  --c-muted:  #6b7280;
  --c-bg:     #ffffff;
  --c-bg-warm: #fafaf9;       /* warm off-white — less clinical than #f9fafb */
  --c-bg-alt: #f3f4f6;
  --c-border: #e5e7eb;
  --c-border-light: #f0f0ef;
  --radius: 6px;
  --radius-lg: 12px;
  --max-w: 1200px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.05);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.10), 0 2px 6px rgba(0,0,0,0.06);
  --shadow-lg: 0 16px 40px rgba(0,0,0,0.14), 0 4px 12px rgba(0,0,0,0.08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Inter', system-ui, -apple-system, sans-serif; color: var(--c-text); background: var(--c-bg); line-height: 1.65; -webkit-font-smoothing: antialiased; }
/* Headings: Playfair Display for authority — not Spectral (too common) */
h1, h2 { font-family: 'Playfair Display', Georgia, serif; letter-spacing: -0.02em; }
h3, h4 { font-family: 'Inter', sans-serif; }
img { max-width: 100%; height: auto; }
a { color: var(--c-blue); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 { line-height: 1.15; margin-top: 0; color: var(--c-text); }
h1 { font-size: 2.5rem; font-weight: 800; }
h2 { font-size: 2rem; font-weight: 700; margin-bottom: 1rem; }
h3 { font-size: 1.2rem; font-weight: 600; }
/* Section eyebrow pattern — amber label above every h2 */
.ushp-eyebrow { display: block; font-family: 'Inter', sans-serif; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--c-amber); margin-bottom: 10px; }

.ushp-container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }

/* HEADER -- rebuilt 2026-06-14: sticky, dropdown, hamburger, CTA, phone hook */
/* ===================================================================== */
/* HEADER LAYOUT */
.ushp-header {
    background: #fff;
    border-bottom: 2px solid var(--c-american-red, #B22234);
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 200;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
.ushp-header-inner {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    align-items: center;
    gap: 20px;
    height: 66px;
}

/* BRAND / LOGO */
.ushp-brand {
    flex-shrink: 0;
    text-decoration: none;
    display: flex;
    align-items: center;
}
/* p.ushp-brand-text -- never h1/h2 -- styled as brand wordmark */
.ushp-brand-text {
    margin: 0;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--c-navy);
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-family: 'Inter', sans-serif;
}
.ushp-brand img,
.ushp-brand .custom-logo { max-height: 44px; width: auto; display: block; }

/* DESKTOP NAV */
.ushp-nav { flex: 1; display: flex; justify-content: center; }
.ushp-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; align-items: center; }
.ushp-menu > li { position: relative; }
.ushp-menu > li > a {
    display: block;
    padding: 8px 12px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--c-text);
    text-decoration: none;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
    white-space: nowrap;
}
.ushp-menu > li > a:hover { color: var(--c-american-red, #B22234); background: rgba(178,34,52,0.06); }

/* Calculator nav item -- subtle red pill */
.ushp-menu-calc > a {
    color: var(--c-american-red, #B22234) !important;
    font-weight: 600;
    border: 1.5px solid rgba(178,34,52,0.25);
    background: rgba(178,34,52,0.04);
}
.ushp-menu-calc > a:hover {
    background: rgba(178,34,52,0.10) !important;
    border-color: var(--c-american-red, #B22234);
}

/* Dropdown caret */
.ushp-caret { font-size: 0.6rem; margin-left: 3px; display: inline-block; transition: transform 0.2s; vertical-align: middle; }
.ushp-menu-has-drop:hover .ushp-caret,
.ushp-menu-has-drop:focus-within .ushp-caret { transform: rotate(180deg); }

/* STATES DROPDOWN */
.ushp-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    background: #fff;
    border: 1px solid var(--c-border);
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    list-style: none;
    margin: 0;
    padding: 6px 0;
    min-width: 240px;
    z-index: 300;
}
.ushp-menu-has-drop:hover .ushp-dropdown,
.ushp-menu-has-drop:focus-within .ushp-dropdown { display: block; }
.ushp-dropdown li > a {
    display: block;
    padding: 9px 16px;
    font-size: 0.85rem;
    color: var(--c-text);
    text-decoration: none;
    font-weight: 500;
    transition: background 0.12s, color 0.12s;
    white-space: nowrap;
}
.ushp-dropdown li > a:hover { background: rgba(178,34,52,0.06); color: var(--c-american-red, #B22234); }
.ushp-drop-divider { border-top: 1px solid var(--c-border); margin-top: 4px; padding-top: 4px; }
.ushp-drop-divider > a { color: var(--c-muted) !important; }

/* RIGHT RAIL */
.ushp-header-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.ushp-header-phone {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--c-navy);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}
.ushp-header-phone:hover { color: var(--c-american-red, #B22234); text-decoration: none; }
.ushp-header-phone-icon { font-size: 1rem; }

/* PRIMARY CTA BUTTON -- red */
.ushp-header-cta {
    display: inline-block;
    padding: 10px 20px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    background: var(--c-american-red, #B22234);
    border-radius: 5px;
    text-decoration: none;
    letter-spacing: 0.01em;
    white-space: nowrap;
    transition: background 0.15s, box-shadow 0.15s;
    box-shadow: 0 2px 6px rgba(178,34,52,0.25);
}
.ushp-header-cta:hover {
    background: #8B0000;
    text-decoration: none;
    color: #fff;
    box-shadow: 0 4px 12px rgba(178,34,52,0.35);
}

/* HAMBURGER -- mobile only */
.ushp-hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: none;
    border: 1.5px solid var(--c-border);
    border-radius: 5px;
    cursor: pointer;
    padding: 8px;
    flex-shrink: 0;
    transition: border-color 0.15s;
}
.ushp-hamburger:hover { border-color: var(--c-american-red, #B22234); }
.ushp-ham-bar {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--c-navy);
    border-radius: 2px;
    transition: transform 0.25s, opacity 0.25s;
}
.ushp-hamburger.is-open .ushp-ham-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ushp-hamburger.is-open .ushp-ham-bar:nth-child(2) { opacity: 0; }
.ushp-hamburger.is-open .ushp-ham-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* MOBILE NAV DRAWER */
.ushp-mobile-nav {
    background: #fff;
    border-top: 1px solid var(--c-border);
    padding: 16px 0 24px;
    border-bottom: 2px solid var(--c-american-red, #B22234);
}
.ushp-mobile-nav[hidden] { display: none; }
.ushp-mobile-menu {
    list-style: none;
    margin: 0;
    padding: 0 16px;
}
.ushp-mobile-menu > li > a {
    display: block;
    padding: 13px 8px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--c-text);
    text-decoration: none;
    border-bottom: 1px solid var(--c-border-light, #f0f0ef);
}
.ushp-mobile-menu > li > a:hover { color: var(--c-american-red, #B22234); }
.ushp-mobile-calc > a {
    color: var(--c-american-red, #B22234) !important;
    font-weight: 700;
}
.ushp-mobile-section-label {
    padding: 14px 8px 4px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--c-muted);
}
.ushp-mobile-cta {
    display: block;
    margin: 20px 16px 0;
    padding: 14px 20px;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    background: var(--c-american-red, #B22234);
    border-radius: 5px;
    text-decoration: none;
    text-align: center;
}
.ushp-mobile-cta:hover { background: #8B0000; text-decoration: none; color: #fff; }

/* RESPONSIVE */
@media (max-width: 900px) {
    .ushp-nav { display: none; }
    .ushp-header-phone { display: none; }
    .ushp-header-cta { display: none; }
    .ushp-hamburger { display: flex; }
}
@media (min-width: 901px) {
    .ushp-mobile-nav { display: none !important; }
    .ushp-hamburger { display: none !important; }
}
.ushp-header { transition: box-shadow 0.25s; }


/* HERO */
.ushp-hero { background: linear-gradient(135deg, #1e40af 0%, #2563eb 100%); color: #fff; padding: 64px 24px; }
.ushp-hero-inner { max-width: var(--max-w); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ushp-hero-eyebrow { font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.85; margin: 0 0 8px; }
.ushp-hero-h1 { color: #fff; font-size: 3rem; margin: 0 0 16px; }
.ushp-hero-sub { font-size: 1.125rem; opacity: 0.95; margin: 0; }
@media (max-width: 900px) { .ushp-hero-inner { grid-template-columns: 1fr; } .ushp-hero-h1 { font-size: 2rem; } }

/* TRUST STRIP */
.ushp-trust { background: var(--c-bg-alt); padding: 40px 0; border-bottom: 1px solid var(--c-border); }
.ushp-trust-inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ushp-trust-item { text-align: center; }
.ushp-trust-item strong { display: block; font-size: 1.125rem; margin-bottom: 4px; }
.ushp-trust-item span { color: var(--c-muted); font-size: 0.95rem; }
@media (max-width: 700px) { .ushp-trust-inner { grid-template-columns: 1fr; } }

/* SECTIONS */
.ushp-section { padding: 56px 0; }
.ushp-section-alt { background: var(--c-bg-alt); }
.ushp-section h2 { margin-bottom: 16px; }
.ushp-section p { font-size: 1.05rem; max-width: 720px; }

/* PROGRAMS GRID */
.ushp-program-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.ushp-program { background: #fff; border: 1px solid var(--c-border); padding: 24px; border-radius: var(--radius); }
.ushp-program h3 { color: var(--c-primary); margin-bottom: 8px; }
@media (max-width: 800px) { .ushp-program-grid { grid-template-columns: 1fr; } }

/* STEPS */
.ushp-steps { padding-left: 20px; max-width: 720px; }
.ushp-steps li { margin-bottom: 12px; font-size: 1.05rem; }
.ushp-steps li strong { color: var(--c-primary); }

/* CITY GRID */
.ushp-city-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 24px; }
.ushp-city-link { display: block; padding: 10px 14px; background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius); color: var(--c-text); font-size: 0.9rem; text-decoration: none; transition: all 0.15s; }
.ushp-city-link:hover { border-color: var(--c-primary); color: var(--c-primary); transform: translateY(-1px); }
.ushp-city-link-oos { background: #fef3c7; border-color: #fde68a; }
@media (max-width: 1100px) { .ushp-city-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 700px) { .ushp-city-grid { grid-template-columns: repeat(2, 1fr); } }

/* MAP */
.ushp-map { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--c-border); margin-top: 16px; }

/* CTA */
.ushp-cta { padding: 64px 24px; background: linear-gradient(135deg, #002868 0%, #0f1f3d 100%); color: #fff; text-align: center; border-top: 4px solid var(--c-american-red); }
.ushp-cta h2 { color: #fff; }
.ushp-cta p { max-width: 600px; margin: 0 auto 24px; font-size: 1.125rem; }
.ushp-cta .ushp-lead { margin: 24px auto 0; }

/* BUTTONS */
.ushp-btn { display: inline-block; padding: 14px 28px; font-size: 1rem; font-weight: 600; background: var(--c-primary); color: #fff; border: 0; border-radius: var(--radius); cursor: pointer; transition: background 0.15s; text-decoration: none; }
.ushp-btn:hover { background: var(--c-primary-hover); text-decoration: none; color: #fff; }
.ushp-btn-secondary { background: var(--c-secondary); }
.ushp-btn-secondary:hover { background: #15803d; }

/* LEAD FORM — premium card: navy accent bar, Playfair title, green CTA */
.ushp-lead { max-width: 480px; background: #fff; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-lg); color: var(--c-text); }
/* Navy-to-amber gradient accent bar at top */
.ushp-lead::before { content: ''; display: block; height: 5px; background: linear-gradient(90deg, var(--c-navy) 0%, var(--c-amber) 100%); }
.ushp-lead-title { font-family: 'Playfair Display', Georgia, serif; font-size: 1.1rem; font-weight: 700; margin: 20px 24px 12px; color: var(--c-navy); line-height: 1.3; }
.ushp-lead-progress { background: #efefef; border-radius: 4px; height: 4px; margin: 0 24px 3px; overflow: hidden; }
.ushp-lead-progress-bar { background: var(--c-amber); height: 100%; width: 50%; transition: width 0.3s; }
.ushp-lead-progress[data-step="2"] .ushp-lead-progress-bar { width: 100%; }
.ushp-lead-progress-text { font-size: 0.7rem; color: var(--c-muted); margin: 3px 24px 14px; display: block; font-family: 'Inter', sans-serif; letter-spacing: 0.03em; }
.ushp-lead-form { padding: 0 24px 24px; }
.ushp-lead-form label { display: block; font-size: 0.75rem; font-weight: 700; color: var(--c-text-med); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.04em; font-family: 'Inter', sans-serif; }
.ushp-lead-form input, .ushp-lead-form select { width: 100%; padding: 11px 14px; font-size: 0.95rem; border: 1.5px solid var(--c-border); border-radius: var(--radius); margin-top: 5px; box-sizing: border-box; background: #fff; color: var(--c-text); font-family: 'Inter', sans-serif; transition: border-color 0.15s, box-shadow 0.15s; }
.ushp-lead-form input:focus, .ushp-lead-form select:focus { outline: none; border-color: var(--c-navy); box-shadow: 0 0 0 3px rgba(15,31,61,0.08); }
.ushp-lead-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
/* CTA button: green (action color), not blue */
.ushp-lead-form .ushp-btn { width: 100%; background: var(--c-green); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.03em; padding: 14px; margin-top: 4px; border-radius: var(--radius); }
.ushp-lead-form .ushp-btn:hover { background: #166534; }
.ushp-lead-fineprint { font-size: 0.7rem; color: var(--c-muted); margin: 10px 0 0; text-align: center; }
.ushp-lead-error { background: #fef2f2; color: #b91c1c; padding: 10px 14px; border-radius: var(--radius); margin-top: 12px; font-size: 0.875rem; border-left: 3px solid #b91c1c; }
.ushp-lead-confirm { text-align: center; padding: 28px 8px; }
.ushp-lead-confirm h4 { color: var(--c-secondary); font-family: 'Playfair Display', Georgia, serif; font-size: 1.5rem; margin: 0 0 8px; }
.ushp-lead-confirm p { color: var(--c-muted); margin: 0; font-size: 0.9rem; }

/* FOOTER */
.ushp-footer { background: #1f2937; color: #d1d5db; padding: 56px 0 0; margin-top: 64px; }
.ushp-footer-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ushp-footer-col h4 { color: #fff; font-size: 1.125rem; margin-bottom: 12px; }
.ushp-footer-col a { color: #93c5fd; }
.ushp-footer-col a:hover { color: #fff; }
.ushp-footer-menu { list-style: none; margin: 0; padding: 0; }
.ushp-footer-menu li { margin-bottom: 8px; }
.ushp-footer-bottom { border-top: 1px solid #374151; margin-top: 40px; padding: 24px; text-align: center; font-size: 0.875rem; }
@media (max-width: 800px) { .ushp-footer-inner { grid-template-columns: 1fr; } }

/* PAGE TITLE (regular pages) */
.ushp-page-title { padding: 48px 0 24px; }
.ushp-content { padding-bottom: 48px; }
.ushp-404 { padding: 96px 24px; text-align: center; }

/* ============================================================ */
/* HOME PAGE V2 — framework-driven design                         */
/* ============================================================ */
.ushp-v2-container { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; }
.ushp-v2-h2 { font-size: 2rem; font-weight: 700; line-height: 1.2; margin: 0 0 12px; color: var(--c-text); }
.ushp-v2-lede { font-size: 1.125rem; color: var(--c-muted); margin: 0 0 32px; max-width: 720px; }

/* HERO — photo-free premium navy gradient (2026-06-15) */
/* Design: deep navy base + red diagonal accent + existing flag-stripe ::after at bottom edge */
.ushp-v2-hero { position: relative; min-height: 660px; display: flex; align-items: center; overflow: hidden;
    background: linear-gradient(145deg, #0a1020 0%, #0f1f3d 35%, #1a2c52 65%, #112040 100%); }
/* Overlay: subtle Old Glory red diagonal warmth accent — adds depth without a photo */
.ushp-v2-hero-overlay { position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(178,34,52,0.12) 0%, rgba(178,34,52,0.04) 30%, transparent 60%);
    pointer-events: none; }
.ushp-v2-hero-inner { max-width: var(--max-w); margin: 0 auto; display: grid; grid-template-columns: 1.15fr 1fr; gap: 72px; align-items: center; position: relative; z-index: 1; padding: 96px 24px; width: 100%; }
.ushp-v2-hero-eyebrow { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-amber); font-weight: 700; margin: 0 0 18px; display: block; font-family: 'Inter', sans-serif; }
.ushp-v2-hero-h1 { font-size: 3.75rem; line-height: 1.04; font-weight: 800; margin: 0 0 22px; color: #fff; letter-spacing: -0.025em; }
.ushp-v2-hero-deck { font-size: 1.125rem; line-height: 1.65; color: rgba(255,255,255,0.82); margin: 0 0 28px; max-width: 520px; }
.ushp-v2-hero-bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.ushp-v2-hero-bullets li { font-size: 0.9rem; color: rgba(255,255,255,0.85); display: flex; align-items: center; gap: 8px; }
.ushp-v2-hero-bullets li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--c-amber); flex-shrink: 0; }
@media (max-width: 1000px) { .ushp-v2-hero-inner { grid-template-columns: 1fr; gap: 40px; padding: 72px 24px; } .ushp-v2-hero-h1 { font-size: 2.5rem; } .ushp-v2-hero-deck { max-width: 100%; } }

/* TRUST STRIP */
.ushp-v2-trust { background: #fff; padding: 32px 0; border-bottom: 1px solid var(--c-border); box-shadow: 0 4px 12px rgba(0,0,0,0.04); }
.ushp-v2-trust-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; text-align: center; }
.ushp-v2-trust-num { display: block; font-size: 2.5rem; font-weight: 800; color: var(--c-primary); line-height: 1; }
.ushp-v2-trust-label { display: block; font-size: 0.875rem; color: var(--c-muted); margin-top: 4px; }
.ushp-v2-trust-label em { font-style: normal; color: #f59e0b; font-size: 0.75rem; }
@media (max-width: 700px) { .ushp-v2-trust-inner { grid-template-columns: repeat(2, 1fr); gap: 24px; } }

/* STORY */
.ushp-v2-story { padding: 80px 0; background: var(--c-bg-alt); }
.ushp-v2-story h2 { max-width: 800px; margin-bottom: 40px; }
.ushp-v2-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.ushp-v2-story-block { background: #fff; padding: 28px; border-radius: 8px; border: 1px solid var(--c-border); }
.ushp-v2-story-eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-primary); font-weight: 700; margin: 0 0 8px; }
.ushp-v2-story-block p:not(.ushp-v2-story-eyebrow) { margin: 0; line-height: 1.6; }
@media (max-width: 900px) { .ushp-v2-story-grid { grid-template-columns: 1fr; } }

/* HOW IT WORKS — circle numbers, no ghost opacity */
.ushp-v2-how { padding: 96px 0; background: var(--c-bg-warm); }
.ushp-v2-how > .ushp-v2-container > .ushp-eyebrow { margin-bottom: 8px; }
.ushp-v2-steps { list-style: none; padding: 0; margin: 0; }
.ushp-v2-steps li { display: grid; grid-template-columns: 56px 1fr; gap: 28px; padding: 28px 0; border-bottom: 1px solid var(--c-border); align-items: start; }
.ushp-v2-steps li:last-child { border-bottom: 0; }
.ushp-v2-step-num { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: var(--c-navy); color: #fff; font-size: 1rem; font-weight: 800; font-family: 'Inter', sans-serif; flex-shrink: 0; margin-top: 2px; }
.ushp-v2-steps h3 { font-size: 1.15rem; margin: 0 0 6px; color: var(--c-text); }
.ushp-v2-steps p { margin: 0; color: var(--c-muted); font-size: 0.95rem; line-height: 1.6; }

/* THE STACK — Hormozi offer */
.ushp-v2-stack { padding: 80px 0; background: linear-gradient(180deg, #fefce8 0%, #fef9c3 100%); }
.ushp-v2-stack-list { list-style: none; padding: 0; margin: 0 0 40px; max-width: 800px; }
.ushp-v2-stack-list li { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 16px 0; border-bottom: 1px solid #fde68a; align-items: baseline; }
.ushp-v2-stack-list li strong { font-size: 1.05rem; display: block; }
.ushp-v2-stack-list li span:not(.ushp-v2-stack-value) { display: block; font-size: 0.9rem; color: var(--c-muted); margin-top: 2px; }
.ushp-v2-stack-value { font-weight: 700; color: var(--c-secondary); white-space: nowrap; }
.ushp-v2-stack-total { background: #fff; padding: 24px 32px; border-radius: 8px; border: 2px solid var(--c-secondary); max-width: 800px; }
.ushp-v2-stack-total p { margin: 4px 0; font-size: 1.125rem; }
/* USHP_COMPLIANCE_20260904 -- the line-through was REMOVED, not restyled.
   This rule was written for a was/now price stack, where striking the first line
   made sense. The content underneath it changed to a reassurance line and the rule
   stayed, so the live homepage rendered
     No credit pull - No obligation - See your path in minutes
   with a line through it. Verified in a real browser: it was the ONLY struck-through
   element on the site. A struck-out promise reads as a retracted or bait offer, which
   is exactly the misrepresentation Dustin asked to be rid of. */
.ushp-v2-stack-total p:first-child { color: var(--c-muted); }
.ushp-v2-stack-yours { font-size: 1.5rem !important; color: var(--c-secondary); }
.ushp-v2-stack-note { color: var(--c-muted); font-size: 0.875rem !important; font-style: italic; }

/* DUAL PILLARS */
.ushp-v2-pillars { padding: 80px 0; }
.ushp-v2-pillars-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.ushp-v2-pillar { background: var(--c-bg-alt); padding: 32px; border-radius: 8px; border-left: 4px solid var(--c-primary); }
.ushp-v2-pillar:nth-child(2) { border-left-color: var(--c-secondary); }
.ushp-v2-pillar h3 { font-size: 1.5rem; margin: 0 0 8px; }
.ushp-v2-pillar-best { font-size: 0.95rem; color: var(--c-muted); margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--c-border); }
@media (max-width: 800px) { .ushp-v2-pillars-grid { grid-template-columns: 1fr; } }

/* PROOF */
.ushp-v2-proof { padding: 80px 0; background: var(--c-bg-alt); }
.ushp-v2-proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.ushp-v2-testimonial { background: #fff; padding: 28px; border-radius: 8px; border: 1px solid var(--c-border); margin: 0; position: relative; }
.ushp-v2-testimonial::before { content: '"'; position: absolute; top: -8px; left: 16px; font-size: 4rem; color: var(--c-primary); opacity: 0.15; line-height: 1; font-family: Georgia, serif; }
.ushp-v2-testimonial p { font-style: italic; line-height: 1.5; margin: 0 0 12px; }
.ushp-v2-testimonial footer { font-size: 0.875rem; color: var(--c-muted); font-weight: 600; }
@media (max-width: 900px) { .ushp-v2-proof-grid { grid-template-columns: 1fr; } }

/* GUARANTEE — dark editorial, navy + amber (no dashed border) */
.ushp-v2-guarantee { padding: 80px 24px; background: var(--c-bg-warm); }
.ushp-v2-guarantee-box { background: var(--c-navy); padding: 64px 72px; border-radius: var(--radius-lg); border: 0; border-top: 4px solid var(--c-amber); text-align: center; max-width: 860px; margin: 0 auto; box-shadow: var(--shadow-lg); }
.ushp-v2-guarantee-eyebrow { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-amber); font-weight: 700; margin: 0 0 16px; display: block; font-family: 'Inter', sans-serif; }
.ushp-v2-guarantee-h2 { font-size: 2rem; margin: 0 0 20px; color: #fff; line-height: 1.2; }
.ushp-v2-guarantee-box p:last-child { font-size: 1rem; line-height: 1.75; color: rgba(255,255,255,0.7); max-width: 680px; margin: 0 auto; }
@media (max-width: 700px) { .ushp-v2-guarantee-box { padding: 40px 28px; } }

/* CTA */
.ushp-v2-cta { padding: 80px 24px; background: linear-gradient(135deg, #002868 0%, #0f1f3d 100%); color: #fff; text-align: center; }
.ushp-v2-cta .ushp-v2-h2 { color: #fff; }
.ushp-v2-cta .ushp-v2-lede { color: rgba(255,255,255,0.95); margin-left: auto; margin-right: auto; }
.ushp-v2-cta .ushp-lead { margin: 32px auto 0; }
.ushp-v2-cta-note { font-size: 0.875rem; color: rgba(255,255,255,0.85); margin: 16px 0 0; }

/* FAQ snippet */
.ushp-v2-faq { padding: 80px 0; }
.ushp-v2-faq-list { max-width: 800px; }
.ushp-v2-faq-list details { background: var(--c-bg-alt); padding: 16px 20px; margin-bottom: 8px; border-radius: 6px; border: 1px solid var(--c-border); }
.ushp-v2-faq-list summary { font-weight: 600; cursor: pointer; font-size: 1.05rem; }
.ushp-v2-faq-list summary:hover { color: var(--c-primary); }
.ushp-v2-faq-list details[open] summary { margin-bottom: 12px; }
.ushp-v2-faq-list details p { margin: 0; line-height: 1.6; color: var(--c-text); }

/* TRUST STRIP — icon variant (v1.2) */
.ushp-v2-trust-icon { display: block; font-size: 2.5rem; font-weight: 800; color: var(--c-secondary); line-height: 1; }

/* FOUNDER MISSION — asymmetric photo left / copy right (v1.2) */
.ushp-v2-mission { padding: 96px 0; background: #fff; }
.ushp-v2-mission-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 24px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 72px; align-items: center; }
.ushp-v2-mission-photo img { width: 100%; border-radius: 12px; object-fit: cover; display: block; box-shadow: 0 20px 40px rgba(0,0,0,0.12); }
.ushp-v2-mission-eyebrow { font-family: 'Inter', sans-serif; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-amber); font-weight: 700; margin: 0 0 14px; display: block; }
.ushp-v2-mission-copy .ushp-v2-h2 { font-size: 2.25rem; margin-bottom: 20px; }
.ushp-v2-mission-copy p { font-size: 1.05rem; line-height: 1.7; color: var(--c-text); margin: 0 0 16px; }
.ushp-v2-btn-ghost { display: inline-block; margin-top: 8px; padding: 12px 28px; font-size: 1rem; font-weight: 600; color: var(--c-primary); border: 2px solid var(--c-primary); border-radius: var(--radius); text-decoration: none; transition: all 0.15s; }
.ushp-v2-btn-ghost:hover { background: var(--c-primary); color: #fff; text-decoration: none; }
@media (max-width: 960px) { .ushp-v2-mission-inner { grid-template-columns: 1fr; gap: 40px; } .ushp-v2-mission-photo { max-width: 480px; } }

/* WHAT WE PROVIDE — clean list (v1.2 replaces dollar-stack) */
.ushp-v2-provides { padding: 80px 0; background: var(--c-bg-alt); }
.ushp-v2-provides-list { list-style: none; padding: 0; margin: 0 0 32px; max-width: 860px; }
.ushp-v2-provides-list li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--c-border); align-items: start; }
.ushp-v2-provides-list li:last-child { border-bottom: 0; }
.ushp-v2-provides-icon { font-size: 1.25rem; color: var(--c-secondary); font-weight: 700; padding-top: 2px; }
.ushp-v2-provides-list strong { display: block; font-size: 1.05rem; margin-bottom: 4px; }
.ushp-v2-provides-list p { margin: 0; color: var(--c-muted); font-size: 0.95rem; line-height: 1.5; }
.ushp-v2-provides-note { font-size: 0.9rem; color: var(--c-muted); font-style: italic; max-width: 860px; }

/* WHY THIS WORKS — mission + stats */
.ushp-v2-why { padding: 96px 0; background: var(--c-navy); color: #fff; }
.ushp-v2-why-inner { max-width: 860px; margin: 0 auto; padding: 0 24px; text-align: center; }
.ushp-v2-why .ushp-v2-h2 { color: #fff; font-size: 2.25rem; margin-bottom: 24px; }
.ushp-v2-why-body { font-size: 1.1rem; line-height: 1.7; opacity: 0.92; margin: 0 auto 16px; max-width: 740px; }
.ushp-v2-why-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 48px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.2); }
.ushp-v2-why-num { display: block; font-size: 3rem; font-weight: 800; color: #fbbf24; line-height: 1; }
.ushp-v2-why-label { display: block; font-size: 0.875rem; color: rgba(255,255,255,0.8); margin-top: 8px; }
@media (max-width: 600px) { .ushp-v2-why-stats { grid-template-columns: 1fr; gap: 24px; } }

/* ============================================================ */
/* LOCATION PAGE — breadcrumb, market table, neighborhoods, FAQ  */
/* ============================================================ */

/* Breadcrumb */
.ushp-breadcrumb { background: var(--c-bg-alt); border-bottom: 1px solid var(--c-border); padding: 10px 0; font-size: 0.875rem; }
.ushp-breadcrumb-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0; }
.ushp-breadcrumb-list li { display: flex; align-items: center; color: var(--c-muted); }
.ushp-breadcrumb-list li + li::before { content: '›'; margin: 0 8px; color: var(--c-border); }
.ushp-breadcrumb-list a { color: var(--c-primary); text-decoration: none; }
.ushp-breadcrumb-list a:hover { text-decoration: underline; }

/* Hero bullets (location pages) */
.ushp-hero-bullets { list-style: none; padding: 0; margin: 16px 0 0; }
.ushp-hero-bullets li { padding: 4px 0 4px 24px; position: relative; font-size: 0.95rem; opacity: 0.9; }
.ushp-hero-bullets li::before { content: '✓'; position: absolute; left: 0; color: #4ade80; font-weight: 700; }

/* Trust strip — 4 columns */
.ushp-trust-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
@media (max-width: 700px) { .ushp-trust-inner { grid-template-columns: repeat(2, 1fr); gap: 16px; } }

/* Intro copy */
.ushp-intro p { font-size: 1.05rem; line-height: 1.7; max-width: 860px; margin: 0 0 16px; }

/* Market data table */
.ushp-market-table { width: 100%; max-width: 700px; border-collapse: collapse; margin: 16px 0; font-size: 1rem; }
.ushp-market-table th { text-align: left; padding: 10px 16px; font-weight: 600; background: #fff; border-bottom: 1px solid var(--c-border); width: 55%; color: var(--c-text); }
.ushp-market-table td { padding: 10px 16px; border-bottom: 1px solid var(--c-border); font-weight: 700; color: var(--c-primary); }
.ushp-market-table tr:last-child th, .ushp-market-table tr:last-child td { border-bottom: 0; }
.ushp-market-note { font-size: 0.95rem; color: var(--c-muted); max-width: 700px; margin: 16px 0 0; line-height: 1.6; }

/* Neighborhoods */
.ushp-neighborhoods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 24px; }
.ushp-neighborhood { background: #fff; padding: 24px; border-radius: 8px; border: 1px solid var(--c-border); }
.ushp-neighborhood h3 { font-size: 1.1rem; color: var(--c-primary); margin: 0 0 8px; }
.ushp-neighborhood p { margin: 0 0 8px; font-size: 0.95rem; line-height: 1.6; color: var(--c-text); }
.ushp-hood-price { color: var(--c-muted); font-size: 0.875rem; }
@media (max-width: 800px) { .ushp-neighborhoods { grid-template-columns: 1fr; } }

/* Nearby cities list */
.ushp-nearby-list { list-style: none; padding: 0; margin: 16px 0; columns: 2; gap: 16px; }
.ushp-nearby-list li { padding: 6px 0; break-inside: avoid; }
.ushp-nearby-list a { color: var(--c-primary); font-weight: 500; text-decoration: none; }
.ushp-nearby-list a:hover { text-decoration: underline; }
.ushp-nearby-note { color: var(--c-muted); font-size: 0.875rem; }
@media (max-width: 700px) { .ushp-nearby-list { columns: 1; } }

/* NEIGHBORHOOD KEYWORD LINK LIST — SEO stacking section */
.ushp-hood-keyword-section { background: var(--c-bg-warm); }
.ushp-hood-links { list-style: none; padding: 0; margin: 20px 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 32px; max-width: 860px; }
.ushp-hood-links li a { font-size: 0.9rem; font-weight: 600; color: var(--c-blue); text-decoration: none; display: flex; align-items: center; gap: 8px; line-height: 1.4; }
.ushp-hood-links li a::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--c-amber); flex-shrink: 0; }
.ushp-hood-links li a:hover { color: var(--c-navy); text-decoration: underline; }
@media (max-width: 640px) { .ushp-hood-links { grid-template-columns: 1fr; } }

/* BLOG / ARTICLES — geo-targeted guide cards */
.ushp-articles { background: var(--c-bg-warm); }
.ushp-article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.ushp-article-card { background: #fff; border-radius: var(--radius-lg); border: 1px solid var(--c-border); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.15s, transform 0.15s; }
.ushp-article-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
/* Top accent color bar per card */
.ushp-article-card:nth-child(1)::before { content: ''; display: block; height: 3px; background: var(--c-navy); }
.ushp-article-card:nth-child(2)::before { content: ''; display: block; height: 3px; background: var(--c-amber); }
.ushp-article-card:nth-child(3)::before { content: ''; display: block; height: 3px; background: var(--c-green); }
.ushp-article-card-body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.ushp-article-card h3 { font-size: 0.975rem; margin: 0 0 12px; line-height: 1.45; font-family: 'Inter', sans-serif; font-weight: 700; }
.ushp-article-card h3 a { color: var(--c-navy); text-decoration: none; }
.ushp-article-card h3 a:hover { color: var(--c-blue); }
.ushp-article-card p { font-size: 0.85rem; color: var(--c-muted); margin: 0 0 16px; line-height: 1.65; flex: 1; }
.ushp-article-date { font-size: 0.72rem; color: var(--c-muted); font-family: 'Inter', sans-serif; letter-spacing: 0.02em; }
.ushp-article-coming { font-size: 0.72rem; color: var(--c-amber); font-weight: 600; font-family: 'Inter', sans-serif; text-transform: uppercase; letter-spacing: 0.06em; }
@media (max-width: 900px) { .ushp-article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ushp-article-grid { grid-template-columns: 1fr; display: flex; overflow-x: auto; gap: 16px; -webkit-overflow-scrolling: touch; padding-bottom: 8px; } .ushp-article-card { min-width: 280px; flex-shrink: 0; } }

/* FAQ */
.ushp-faq-list { max-width: 800px; }
.ushp-faq-item { background: var(--c-bg-alt); padding: 16px 20px; margin-bottom: 8px; border-radius: 6px; border: 1px solid var(--c-border); }
.ushp-faq-item summary { font-weight: 600; cursor: pointer; font-size: 1.05rem; line-height: 1.4; }
.ushp-faq-item summary:hover { color: var(--c-primary); }
.ushp-faq-item[open] summary { margin-bottom: 12px; color: var(--c-primary); }
.ushp-faq-item p { margin: 0; line-height: 1.6; color: var(--c-text); }

/* CTA fine print */
.ushp-cta-fine { font-size: 0.875rem; color: rgba(255,255,255,0.75); margin: 12px 0 0; }

/* ============================================================ */
/* LOCATION PAGE — premium redesign (no AI tells)               */
/* ============================================================ */

/* PHOTO HERO — cinematic, dark, human */
.ushp-loc-hero { position: relative; background-size: cover; background-position: center 40%; min-height: 600px; display: flex; align-items: center; }
.ushp-loc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(105deg, rgba(10,16,32,0.88) 0%, rgba(10,16,32,0.55) 60%, rgba(10,16,32,0.30) 100%); }
.ushp-loc-hero-inner { max-width: var(--max-w); margin: 0 auto; padding: 96px 24px; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center; position: relative; z-index: 1; width: 100%; }
.ushp-loc-hero-copy { color: #fff; }
.ushp-loc-eyebrow { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-amber); font-weight: 700; margin: 0 0 16px; display: block; font-family: 'Inter', sans-serif; }
.ushp-loc-h1 { font-size: 3.25rem; line-height: 1.08; font-weight: 800; color: #fff; margin: 0 0 20px; }
.ushp-loc-sub { font-size: 1.1rem; color: rgba(255,255,255,0.78); margin: 0 0 28px; line-height: 1.6; max-width: 480px; }
.ushp-loc-bullets { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.ushp-loc-bullets li { font-size: 0.875rem; color: rgba(255,255,255,0.85); display: flex; align-items: center; gap: 6px; }
.ushp-loc-bullets li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--c-amber); flex-shrink: 0; }
.ushp-loc-hero-form .ushp-lead { max-width: 100%; box-shadow: var(--shadow-lg); }
@media (max-width: 960px) { .ushp-loc-hero-inner { grid-template-columns: 1fr; gap: 40px; } .ushp-loc-h1 { font-size: 2.25rem; } }

/* TRUST STRIP — tight, authoritative, navy */
.ushp-trust { background: var(--c-navy); padding: 20px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.ushp-trust-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; text-align: center; }
.ushp-trust-item { padding: 12px 16px; border-right: 1px solid rgba(255,255,255,0.08); }
.ushp-trust-item:last-child { border-right: 0; }
.ushp-trust-item strong { display: block; font-size: 1rem; font-weight: 700; color: #fff; margin-bottom: 2px; }
.ushp-trust-item span { color: rgba(255,255,255,0.5); font-size: 0.78rem; font-family: 'Inter', sans-serif; letter-spacing: 0.03em; }
@media (max-width: 700px) { .ushp-trust-inner { grid-template-columns: repeat(2, 1fr); } .ushp-trust-item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.08); } }

/* INTRO SPLIT — generous whitespace, offset photo */
.ushp-intro-split { padding: 96px 0; background: var(--c-bg-warm); }
.ushp-split-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.ushp-split-copy .ushp-eyebrow { margin-bottom: 12px; }
.ushp-split-copy h2 { font-size: 2.25rem; margin: 0 0 20px; line-height: 1.1; }
.ushp-split-copy p { font-size: 1.05rem; line-height: 1.75; margin: 0 0 20px; color: var(--c-text-med); }
.ushp-check-list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.ushp-check-list li { font-size: 0.9rem; font-weight: 600; color: var(--c-text); display: flex; align-items: center; gap: 8px; }
.ushp-check-list li::before { content: ''; width: 18px; height: 18px; border-radius: 50%; background: var(--c-green-lt); border: 2px solid var(--c-secondary); flex-shrink: 0; background-image: url("data:image/svg+xml,%3Csvg width='10' height='8' viewBox='0 0 10 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l2.5 2.5L9 1' stroke='%2315803d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; }
.ushp-split-photo { position: relative; }
.ushp-split-photo img { width: 100%; border-radius: var(--radius-lg); object-fit: cover; display: block; box-shadow: var(--shadow-lg); }
.ushp-split-photo::after { content: ''; position: absolute; bottom: -20px; right: -20px; width: 140px; height: 140px; background: var(--c-amber-lt); border-radius: var(--radius-lg); z-index: -1; }
@media (max-width: 900px) { .ushp-split-inner { grid-template-columns: 1fr; gap: 40px; } .ushp-split-photo { order: -1; } .ushp-split-photo::after { display: none; } .ushp-check-list { grid-template-columns: 1fr; } }

/* HOW IT WORKS — horizontal steps with connector line, no equal cards */
.ushp-how { padding: 96px 0; background: #fff; }
.ushp-how > .ushp-container > .ushp-eyebrow { margin-bottom: 8px; }
.ushp-how > .ushp-container > h2 { margin-bottom: 8px; }
.ushp-how-lede { font-size: 1.05rem; color: var(--c-muted); margin: 0 0 56px; }
.ushp-how-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; position: relative; }
.ushp-how-steps::before { content: ''; position: absolute; top: 28px; left: 10%; right: 10%; height: 2px; background: linear-gradient(90deg, var(--c-navy) 0%, var(--c-blue) 100%); z-index: 0; }
.ushp-how-step { padding: 0 16px; position: relative; z-index: 1; text-align: center; }
.ushp-how-num { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--c-navy); color: #fff; font-size: 1rem; font-weight: 800; font-family: 'Inter', sans-serif; margin: 0 auto 16px; position: relative; z-index: 1; box-shadow: 0 0 0 6px #fff; }
.ushp-how-body h3 { font-size: 0.9rem; font-weight: 700; margin: 0 0 6px; color: var(--c-text); line-height: 1.3; }
.ushp-how-body p { font-size: 0.8rem; color: var(--c-muted); margin: 0; line-height: 1.5; }
@media (max-width: 1000px) { .ushp-how-steps { grid-template-columns: 1fr; gap: 24px; } .ushp-how-steps::before { display: none; } .ushp-how-step { display: grid; grid-template-columns: 56px 1fr; gap: 20px; text-align: left; padding: 0; } .ushp-how-num { margin: 0; flex-shrink: 0; } }

/* NEIGHBORHOODS — editorial, photo banner + 2+3 asymmetric grid */
.ushp-hoods { }
.ushp-hoods-photo { background-size: cover; background-position: center 55%; min-height: 320px; display: flex; align-items: flex-end; }
.ushp-hoods-photo-overlay { width: 100%; padding: 56px 0 48px; background: linear-gradient(to top, rgba(10,16,32,0.92) 0%, rgba(10,16,32,0.5) 55%, transparent 100%); }
.ushp-hoods-photo-h2 { color: #fff; font-size: 2.25rem; margin: 0 0 8px; }
.ushp-hoods-photo-sub { color: rgba(255,255,255,0.7); margin: 0; font-size: 1rem; font-family: 'Inter', sans-serif; }
.ushp-neighborhoods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--c-border); padding: 0 0 0; }
.ushp-neighborhood { background: #fff; padding: 28px; border: 0; border-radius: 0; position: relative; transition: background 0.15s; }
.ushp-neighborhood:hover { background: var(--c-bg-warm); }
/* Amber left border accent — replaces the ghost number */
.ushp-neighborhood::before { content: ''; position: absolute; left: 0; top: 28px; bottom: 28px; width: 3px; background: var(--c-amber); border-radius: 0 2px 2px 0; }
.ushp-hood-num { display: none; } /* kill ghost number */
.ushp-neighborhood h3 { font-size: 1rem; color: var(--c-navy); margin: 0 0 8px; font-weight: 700; padding-left: 14px; }
.ushp-neighborhood p { margin: 0 0 10px; font-size: 0.875rem; line-height: 1.65; color: var(--c-text-med); padding-left: 14px; }
.ushp-hood-price { font-size: 0.8rem; color: var(--c-muted); padding-left: 14px; }
.ushp-hood-price strong { color: var(--c-amber); font-weight: 700; }
.ushp-neighborhoods-wrap { padding-bottom: 64px; }
@media (max-width: 900px) { .ushp-neighborhoods { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ushp-neighborhoods { grid-template-columns: 1fr; } }

/* MARKET TABLE — data-forward, not a generic table */
.ushp-market-table { width: 100%; max-width: 680px; border-collapse: collapse; margin: 20px 0; }
.ushp-market-table tr { border-bottom: 1px solid var(--c-border-light); }
.ushp-market-table tr:last-child { border-bottom: 0; }
.ushp-market-table th { text-align: left; padding: 12px 0; font-weight: 500; color: var(--c-muted); font-size: 0.875rem; font-family: 'Inter', sans-serif; width: 50%; }
.ushp-market-table td { padding: 12px 0; font-weight: 700; font-size: 1.05rem; color: var(--c-navy); text-align: right; }
.ushp-market-note { font-size: 0.9rem; color: var(--c-text-med); max-width: 680px; margin: 20px 0 0; line-height: 1.7; padding: 16px 20px; background: var(--c-amber-lt); border-left: 3px solid var(--c-amber); border-radius: 0 var(--radius) var(--radius) 0; }

/* MORTGAGE SOLUTIONS — deep navy panel, NO emoji, border-left accents */
.ushp-mortgage-split { display: grid; grid-template-columns: 1fr 1.15fr; min-height: 520px; }
.ushp-mortgage-photo { overflow: hidden; }
.ushp-mortgage-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ushp-mortgage-content { padding: 72px 56px; background: var(--c-navy); color: #fff; }
.ushp-mortgage-eyebrow { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--c-amber); font-weight: 700; margin: 0 0 12px; display: block; font-family: 'Inter', sans-serif; }
.ushp-mortgage-content h2 { color: #fff; font-size: 2rem; margin: 0 0 14px; }
.ushp-mortgage-content > p { color: rgba(255,255,255,0.65); font-size: 0.975rem; margin: 0 0 36px; line-height: 1.7; }
.ushp-mortgage-cards { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid rgba(255,255,255,0.1); border-radius: var(--radius); overflow: hidden; }
.ushp-mortgage-card { padding: 20px 24px; display: grid; grid-template-columns: 1fr; gap: 4px; border-bottom: 1px solid rgba(255,255,255,0.08); border-left: 3px solid var(--c-amber); transition: background 0.15s; }
.ushp-mortgage-card:last-child { border-bottom: 0; }
.ushp-mortgage-card:hover { background: rgba(255,255,255,0.04); }
/* Remove emoji column — not needed */
.ushp-mc-icon { display: none; }
.ushp-mortgage-card h3 { font-size: 0.95rem; font-weight: 700; color: #fff; margin: 0; font-family: 'Inter', sans-serif; }
.ushp-mortgage-card p { font-size: 0.825rem; color: rgba(255,255,255,0.6); margin: 0; line-height: 1.5; }
@media (max-width: 900px) { .ushp-mortgage-split { grid-template-columns: 1fr; } .ushp-mortgage-photo { min-height: 280px; } .ushp-mortgage-content { padding: 48px 24px; } }

/* PHOTO CTA — interior photo, warm green overlay */
.ushp-loc-cta { position: relative; background-size: cover; background-position: center 60%; }
.ushp-loc-cta-overlay { background: linear-gradient(105deg, rgba(21,128,61,0.94) 0%, rgba(20,83,45,0.96) 100%); padding: 96px 0; }
.ushp-loc-cta-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.ushp-loc-cta-copy .ushp-eyebrow { color: rgba(255,255,255,0.6); }
.ushp-loc-cta-copy h2 { color: #fff; font-size: 2.25rem; margin: 0 0 14px; }
.ushp-loc-cta-copy p { color: rgba(255,255,255,0.8); font-size: 1rem; margin: 0 0 24px; line-height: 1.7; }
.ushp-loc-cta-bullets { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ushp-loc-cta-bullets li { font-size: 0.9rem; color: rgba(255,255,255,0.85); display: flex; align-items: center; gap: 10px; }
.ushp-loc-cta-bullets li::before { content: ''; width: 20px; height: 20px; background: rgba(255,255,255,0.15); border-radius: 50%; flex-shrink: 0; background-image: url("data:image/svg+xml,%3Csvg width='10' height='8' viewBox='0 0 10 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l2.5 2.5L9 1' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; }
.ushp-loc-cta-form .ushp-lead { max-width: 100%; }
@media (max-width: 900px) { .ushp-loc-cta-inner { grid-template-columns: 1fr; gap: 40px; } }

/* ============================================================ */
/* STATES HUB — map + state grid (Section 5B)                   */
/* ============================================================ */
.ushp-states-hub { padding: 80px 0; background: var(--c-bg-warm); }
.ushp-states-hub-lede { font-size: 1.05rem; color: var(--c-muted); max-width: 720px; margin: 0 0 36px; }
.ushp-states-hub-note { font-size: 0.9rem; color: var(--c-muted); margin-top: 24px; }
.ushp-states-hub-note a { color: var(--c-american-red); font-weight: 600; }
.ushp-states-hub-note a:hover { text-decoration: underline; }

/* STATE KEYWORD LIST — v3.3 (2026-06-14) — Full phrase visible, 3-col responsive grid */
/* Replaces: old 10-col tiny abbreviation pill grid (ushp-states-grid, ushp-state-pill, ushp-pill-abbr, ushp-pill-name) */

/* List reset */
.ushp-states-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 16px; }
@media (max-width: 860px)  { .ushp-states-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .ushp-states-list { grid-template-columns: 1fr; gap: 4px; } }

/* Each state row */
.ushp-state-item { display: flex; align-items: center; gap: 8px; min-height: 44px; border-bottom: 1px solid var(--c-border); padding: 6px 0; }
.ushp-state-item:last-child { border-bottom: none; }

/* Live state — red link, full keyword phrase */
.ushp-state-item.state-live .ushp-state-link { color: #B22234; font-weight: 600; font-size: 0.92rem; text-decoration: none; font-family: 'Inter', sans-serif; line-height: 1.3; transition: color 0.12s; }
.ushp-state-item.state-live .ushp-state-link:hover { color: #8B0000; text-decoration: underline; }

/* Coming soon state — greyed, non-link */
.ushp-state-item.state-soon .ushp-state-link { color: #8899bb; font-size: 0.92rem; font-family: 'Inter', sans-serif; line-height: 1.3; }
.ushp-state-soon-tag { font-size: 0.68rem; font-weight: 700; color: #8B0000; background: #fff0f2; border: 1px solid #f4b8bf; border-radius: 3px; padding: 1px 5px; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; flex-shrink: 0; }

/* ============================================================ */
/* AMERICAN THEME — tasteful patriotic accents                   */
/* Red = #B22234 (Old Glory red). Blue = existing navy #0f1f3d. */
/* White accent on dark sections. Stars via ::before on select  */
/* eyebrows. Thin flag stripe on hero + CTA.                    */
/* ============================================================ */
:root {
  --c-american-red:   #B22234;
  --c-american-red-dk: #8B0000;
  --c-american-blue:  #002868;  /* Old Glory blue — for select accents */
}

/* FLAG STRIPE: 3-color thin stripe on hero bottom edge */
.ushp-v2-hero::after { content: ''; display: block; position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #B22234 0%, #B22234 33.3%, #ffffff 33.3%, #ffffff 66.6%, #002868 66.6%, #002868 100%); z-index: 2; }

/* Hero eyebrow: subtle star prefix */
.ushp-v2-hero-eyebrow::before { content: '\2605'; margin-right: 6px; font-size: 0.65rem; color: var(--c-american-red); }

/* TRUST STRIP: accent the checkmark icons with Old Glory red */
.ushp-v2-trust-icon { color: var(--c-american-red); }

/* PRIMARY BUTTONS: use Old Glory red on homepage CTAs (not nav or lead form) */
/* Scope only to homepage CTAs — hero + story + stack + final CTA sections */
.ushp-v2-hero .ushp-btn,
.ushp-v2-mission .ushp-btn,
.ushp-v2-how .ushp-btn,
.ushp-v2-stack .ushp-btn { background: var(--c-american-red); }
.ushp-v2-hero .ushp-btn:hover,
.ushp-v2-mission .ushp-btn:hover,
.ushp-v2-how .ushp-btn:hover,
.ushp-v2-stack .ushp-btn:hover { background: var(--c-american-red-dk); }

/* Ghost button: red outline */
.ushp-v2-btn-ghost { color: var(--c-american-red); border-color: var(--c-american-red); }
.ushp-v2-btn-ghost:hover { background: var(--c-american-red); color: #fff; border-color: var(--c-american-red); }

/* WHY THIS WORKS stat numbers: amber gold is the existing color — keep it (works patriotically) */
/* Stack section value labels: green -> red for "Free" badges on this page */
.ushp-v2-stack-value { color: var(--c-american-red); }
.ushp-v2-stack-total { border-color: var(--c-american-red); }
.ushp-v2-stack-yours { color: var(--c-american-red); }

/* How It Works step numbers: navy already — stays (American blue = close enough) */

/* Section divider: thin red accent bar above the states hub */
.ushp-states-hub { border-top: 3px solid var(--c-american-red); }

/* States hub eyebrow: star prefix */
.ushp-states-hub .ushp-eyebrow::before { content: '\2605'; margin-right: 5px; font-size: 0.6rem; }

/* Final CTA section: keep green gradient (works — conversion color) but add flag stripe top */
.ushp-v2-cta { border-top: 4px solid var(--c-american-red); }

/* FAQ details open accent */
.ushp-v2-faq-list details[open] summary { color: var(--c-american-red); }

/* LEAD FORM accent bar: flag stripe gradient (replaces navy-to-amber) */
.ushp-lead::before { background: linear-gradient(90deg, #B22234 0%, #B22234 33%, #f0f0f0 33%, #f0f0f0 66%, #002868 66%, #002868 100%); }

/* American Dream copy line in "why it works" section — no new element needed; */
/* handled in PHP copy. The navy .ushp-v2-why background reads as Old Glory blue. */



/* ============================================================ */
/* PAGES BUILD 2026-06-14: FAQ + About + Contact CSS additions  */
/* Appended to main.css — do not duplicate :root; these are     */
/* NEW vars/classes not present in the existing stylesheet.     */
/* ============================================================ */

/* ---- ROOT: add missing american-red var + new button colors ---- */
:root {
  --c-american-red: #B22234;  /* Old Glory red — primary CTA + accents */
  --c-american-red-dk: #8b1a26; /* hover state */
  --c-navy-btn: #0f1f3d;      /* navy CTA variant */
  --c-navy-btn-dk: #182f5c;
}

/* ---- BUTTON VARIANTS ---- */
.ushp-btn-red {
  background: var(--c-american-red);
  color: #fff;
}
.ushp-btn-red:hover {
  background: var(--c-american-red-dk);
  color: #fff;
  text-decoration: none;
}
.ushp-btn-navy {
  background: var(--c-navy-btn);
  color: #fff;
}
.ushp-btn-navy:hover {
  background: var(--c-navy-btn-dk);
  color: #fff;
  text-decoration: none;
}
.ushp-btn-outline {
  background: transparent;
  color: var(--c-navy);
  border: 2px solid var(--c-navy);
}
.ushp-btn-outline:hover {
  background: var(--c-navy);
  color: #fff;
  text-decoration: none;
}

/* ============================================================ */
/* FAQ PAGE  (/faq/)                                            */
/* ============================================================ */

/* Hero */
.ushp-faq-hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3a6e 100%);
  color: #fff;
  padding: 72px 0 56px;
  text-align: center;
}
.ushp-faq-hero .ushp-eyebrow { color: #fbbf24; }
.ushp-faq-hero h1 {
  color: #fff;
  font-size: clamp(2rem, 5vw, 3.2rem);
  margin-bottom: 20px;
}
.ushp-faq-hero-sub {
  font-size: 1.15rem;
  line-height: 1.6;
  max-width: 600px;
  margin: 0 auto 28px;
  color: rgba(255,255,255,0.88);
}
.ushp-faq-hero-micro {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.65);
  margin: 12px 0 0;
}

/* Body */
.ushp-faq-body { padding: 64px 0; }

/* FAQ group */
.ushp-faq-group { margin-bottom: 56px; }
.ushp-faq-group:last-child { margin-bottom: 0; }
.ushp-faq-group-title {
  font-size: 1.5rem;
  color: var(--c-navy);
  border-bottom: 2px solid var(--c-american-red);
  padding-bottom: 10px;
  margin-bottom: 24px;
}

/* Accordion */
.ushp-accordion { max-width: 860px; }
.ushp-accordion-item {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  margin-bottom: 8px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.ushp-accordion-trigger {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  background: none;
  border: 0;
  padding: 18px 20px;
  cursor: pointer;
  text-align: left;
  font-family: 'Inter', sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--c-text);
  line-height: 1.4;
  transition: background 0.15s;
}
.ushp-accordion-trigger:hover { background: var(--c-bg-alt); }
.ushp-accordion-trigger[aria-expanded="true"] {
  background: var(--c-bg-alt);
  color: var(--c-navy);
}
.ushp-accordion-q { flex: 1; }
.ushp-accordion-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--c-american-red);
  font-style: normal;
  border-radius: 50%;
  border: 2px solid var(--c-american-red);
  transition: transform 0.2s;
}
.ushp-accordion-trigger[aria-expanded="true"] .ushp-accordion-icon {
  transform: rotate(45deg);
}
.ushp-accordion-panel {
  padding: 0 20px 20px;
  border-top: 1px solid var(--c-border-light);
}
.ushp-accordion-panel p {
  margin: 16px 0 0;
  line-height: 1.7;
  color: var(--c-text-med);
}

/* FAQ CTA band */
.ushp-faq-cta-band {
  background: var(--c-navy);
  color: #fff;
  text-align: center;
  padding: 64px 0;
}
.ushp-faq-cta-band h2 { color: #fff; margin-bottom: 16px; }
.ushp-faq-cta-band p { color: rgba(255,255,255,0.85); max-width: 560px; margin: 0 auto 28px; }

/* ============================================================ */
/* ABOUT PAGE  (/about/)                                        */
/* ============================================================ */

/* Hero */
.ushp-about-hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3a6e 100%);
  color: #fff;
  padding: 80px 0 64px;
  text-align: center;
}
.ushp-about-hero .ushp-eyebrow { color: #fbbf24; }
.ushp-about-hero h1 {
  color: #fff;
  font-size: clamp(1.9rem, 4.5vw, 3rem);
  max-width: 760px;
  margin: 0 auto 20px;
}
.ushp-about-hero-sub {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.85);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.65;
}

/* Shared section spacing */
.ushp-about-section { padding: 72px 0; }
.ushp-bg-warm { background: var(--c-bg-warm); }

/* Two-column layout */
.ushp-about-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 768px) {
  .ushp-about-two-col { grid-template-columns: 1fr; gap: 32px; }
}

/* Body text */
.ushp-about-text h2 { margin-bottom: 20px; color: var(--c-navy); }
.ushp-about-text p { color: var(--c-text-med); margin-bottom: 16px; line-height: 1.7; }
.ushp-about-intro { font-size: 1.05rem; color: var(--c-text-med); margin-bottom: 40px; }

/* Accent quote box */
.ushp-about-accent-box {
  background: var(--c-navy);
  border-radius: var(--radius-lg);
  padding: 40px 36px;
  display: flex;
  align-items: center;
}
.ushp-about-quote {
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  line-height: 1.5;
  font-style: italic;
  margin: 0;
  border-left: 4px solid var(--c-american-red);
  padding-left: 24px;
}

/* Steps */
.ushp-about-steps { display: flex; flex-direction: column; gap: 32px; }
.ushp-about-step {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.ushp-about-step-num {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: var(--c-american-red);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.2rem;
  font-family: 'Playfair Display', Georgia, serif;
}
.ushp-about-step-body h3 { margin-bottom: 8px; color: var(--c-navy); font-size: 1.1rem; }
.ushp-about-step-body p { color: var(--c-text-med); margin: 0; line-height: 1.65; }

/* Offer grid */
.ushp-about-offer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin-top: 40px;
}
@media (max-width: 640px) { .ushp-about-offer-grid { grid-template-columns: 1fr; } }
.ushp-about-offer-item {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  box-shadow: var(--shadow-sm);
}
.ushp-about-offer-icon {
  font-size: 2rem;
  margin-bottom: 12px;
  display: block;
}
.ushp-about-offer-item h3 { font-size: 1.05rem; color: var(--c-navy); margin-bottom: 8px; }
.ushp-about-offer-item p { color: var(--c-text-med); margin: 0; font-size: 0.95rem; line-height: 1.6; }

/* Who We Serve grid */
.ushp-about-people-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
  margin-top: 36px;
}
@media (max-width: 640px) { .ushp-about-people-grid { grid-template-columns: 1fr; } }
.ushp-about-people-item {
  background: var(--c-surface);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  border: 1px solid var(--c-border);
}
.ushp-about-people-item h3 { font-size: 1.05rem; color: var(--c-navy); margin-bottom: 10px; }
.ushp-about-people-item p { color: var(--c-text-med); margin: 0; font-size: 0.95rem; line-height: 1.65; }

/* Trust grid */
.ushp-about-trust-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 36px;
}
@media (max-width: 640px) { .ushp-about-trust-grid { grid-template-columns: 1fr; } }
.ushp-about-trust-item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.ushp-about-trust-check {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: var(--c-american-red);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
}
.ushp-about-trust-item p { margin: 0; color: var(--c-text-med); line-height: 1.6; font-size: 0.97rem; }

/* About CTA band */
.ushp-about-cta-band {
  background: var(--c-navy);
  color: #fff;
  text-align: center;
  padding: 72px 0;
}
.ushp-about-cta-band h2 { color: #fff; margin-bottom: 16px; }
.ushp-about-cta-band p { color: rgba(255,255,255,0.85); max-width: 560px; margin: 0 auto 32px; }
.ushp-about-cta-row {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}
/* Override outline btn color on dark bg */
.ushp-about-cta-band .ushp-btn-outline {
  color: #fff;
  border-color: rgba(255,255,255,0.55);
}
.ushp-about-cta-band .ushp-btn-outline:hover {
  background: rgba(255,255,255,0.12);
  color: #fff;
}
.ushp-about-phone-line { color: rgba(255,255,255,0.75); margin-top: 20px; font-size: 0.95rem; }
.ushp-about-phone-line a { color: #fff; text-decoration: underline; }

/* ============================================================ */
/* CONTACT PAGE  (/contact-united-states-house-partners/)       */
/* ============================================================ */

/* Hero */
.ushp-contact-hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3a6e 100%);
  color: #fff;
  padding: 72px 0 56px;
  text-align: center;
}
.ushp-contact-hero .ushp-eyebrow { color: #fbbf24; }
.ushp-contact-hero h1 {
  color: #fff;
  font-size: clamp(2rem, 5vw, 3rem);
  margin-bottom: 16px;
}
.ushp-contact-hero-sub {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.85);
  max-width: 580px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Body / two-col layout */
.ushp-contact-body { padding: 72px 0; }
.ushp-contact-two-col {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 64px;
  align-items: start;
}
@media (max-width: 900px) { .ushp-contact-two-col { grid-template-columns: 1fr; gap: 48px; } }

/* Form wrap */
.ushp-contact-form-wrap h2 { margin-bottom: 28px; color: var(--c-navy); }

/* Status message */
.ushp-contact-status {
  padding: 12px 16px;
  border-radius: var(--radius);
  margin-bottom: 20px;
  font-size: 0.95rem;
  font-weight: 500;
}
.ushp-status-ok  { background: var(--c-green-lt); color: var(--c-green); border: 1px solid #86efac; }
.ushp-status-error { background: #fef2f2; color: #991b1b; border: 1px solid #fca5a5; }

/* Form groups */
.ushp-form-group { margin-bottom: 20px; }
.ushp-form-group label {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--c-text);
  margin-bottom: 6px;
}
.ushp-form-group input[type="text"],
.ushp-form-group input[type="email"],
.ushp-form-group input[type="tel"],
.ushp-form-group textarea {
  width: 100%;
  padding: 11px 14px;
  font-size: 1rem;
  font-family: 'Inter', sans-serif;
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--c-text);
  transition: border-color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}
.ushp-form-group input:focus,
.ushp-form-group textarea:focus {
  outline: none;
  border-color: var(--c-navy);
  box-shadow: 0 0 0 3px rgba(15,31,61,0.12);
}
.ushp-form-group textarea { resize: vertical; }

/* TCPA / consent label */
.ushp-tcpa-group { margin-top: 8px; }
.ushp-tcpa-label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  color: var(--c-text-med);
  line-height: 1.5;
}
.ushp-tcpa-label input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--c-american-red);
  cursor: pointer;
}
.ushp-tcpa-label a { color: var(--c-blue); }
.ushp-contact-micro { font-size: 0.82rem; color: var(--c-muted); margin-top: 12px; }

/* Step 2 success state */
.ushp-contact-step2-intro { text-align: center; padding: 40px 0; }
.ushp-contact-step2-check {
  width: 64px;
  height: 64px;
  background: var(--c-american-red);
  color: #fff;
  border-radius: 50%;
  font-size: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.ushp-contact-step2-intro h3 { color: var(--c-navy); margin-bottom: 12px; font-size: 1.4rem; }
.ushp-contact-step2-intro p { color: var(--c-text-med); margin-bottom: 24px; }

/* Info sidebar */
.ushp-contact-info h2 { margin-bottom: 28px; color: var(--c-navy); font-size: 1.3rem; }
.ushp-contact-info-item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 28px;
}
.ushp-contact-info-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: var(--c-american-red);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}
.ushp-contact-info-label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--c-muted);
  margin: 0 0 4px;
}
.ushp-contact-info-value {
  font-size: 1rem;
  font-weight: 600;
  color: var(--c-text);
  display: block;
}
a.ushp-contact-info-value:hover { color: var(--c-blue); }

/* Sidebar CTA box */
.ushp-contact-sidebar-cta {
  background: var(--c-bg-warm);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 24px;
  margin-bottom: 24px;
}
.ushp-contact-sidebar-cta h3 { color: var(--c-navy); margin-bottom: 10px; font-size: 1.05rem; }
.ushp-contact-sidebar-cta p { font-size: 0.9rem; color: var(--c-text-med); margin-bottom: 16px; line-height: 1.6; }

/* Response badge */
.ushp-contact-response-badge {
  background: var(--c-green-lt);
  border: 1px solid #86efac;
  border-radius: var(--radius);
  padding: 14px 18px;
}
.ushp-contact-response-badge p { margin: 0; font-size: 0.88rem; color: var(--c-green); line-height: 1.5; }


/* Screen-reader only utility (for state keyword text on non-live pills) */
.ushp-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; }

/* ============================================================
   STORY SECTION — "Banks Said No" emotional hook
   Added 2026-06-15 for Texas bulletproof build
============================================================ */
.ushp-story-section { background: var(--c-bg-warm); }
.ushp-story-inner { display: grid; grid-template-columns: 1.4fr 0.6fr; gap: 64px; align-items: start; }
.ushp-story-copy h2 { font-size: 2rem; line-height: 1.2; color: var(--c-navy); margin: 0 0 20px; }
.ushp-story-copy p { font-size: 1.05rem; line-height: 1.7; color: var(--c-text); margin: 0 0 16px; }
.ushp-story-copy p:last-of-type { margin-bottom: 28px; }
.ushp-story-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: start; }
.ushp-stat-card { background: var(--c-navy); border-radius: var(--radius); padding: 20px 16px; text-align: center; }
.ushp-stat-num { font-size: 2.25rem; font-weight: 800; color: var(--c-amber); line-height: 1; margin-bottom: 6px; }
.ushp-stat-label { font-size: 0.8rem; color: rgba(255,255,255,0.65); text-transform: uppercase; letter-spacing: 0.06em; font-family: 'Inter', sans-serif; line-height: 1.4; }
@media (max-width: 900px) { .ushp-story-inner { grid-template-columns: 1fr; gap: 32px; } }
@media (max-width: 640px) { .ushp-story-stats { grid-template-columns: 1fr 1fr; } .ushp-stat-num { font-size: 1.75rem; } }

/* ============================================================
   CALCULATOR MID-CTA SECTION
   Added 2026-06-15 for Texas bulletproof build
============================================================ */
.ushp-calc-cta-inner { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 64px; align-items: center; }
.ushp-calc-cta-copy h2 { font-size: 1.9rem; line-height: 1.2; color: var(--c-navy); margin: 0 0 16px; }
.ushp-calc-cta-copy p { font-size: 1rem; color: var(--c-text); margin: 0 0 16px; line-height: 1.7; }
.ushp-calc-bullets { list-style: none; padding: 0; margin: 0 0 28px; }
.ushp-calc-bullets li { padding: 6px 0 6px 24px; position: relative; font-size: 0.95rem; color: var(--c-text); }
.ushp-calc-bullets li::before { content: ''; position: absolute; left: 0; top: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--c-amber); }
.ushp-calc-preview { background: var(--c-navy); border-radius: var(--radius-lg); padding: 28px; }
.ushp-calc-preview-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 0.9rem; }
.ushp-calc-preview-row span:first-child { color: rgba(255,255,255,0.6); }
.ushp-calc-val { font-weight: 700; color: #fff; }
.ushp-calc-preview-highlight .ushp-calc-val { color: var(--c-amber); font-size: 1.05rem; }
.ushp-calc-fine { font-size: 0.75rem; color: rgba(255,255,255,0.4); text-align: center; margin: 12px 0 0; line-height: 1.4; }
@media (max-width: 900px) { .ushp-calc-cta-inner { grid-template-columns: 1fr; gap: 32px; } }

/* ============================================================
   GRAND SLAM OFFER SECTION — Hormozi value stack
   Added 2026-06-15 for Texas bulletproof build
============================================================ */
.ushp-offer-section { background: #fff; }
.ushp-offer-intro { font-size: 1.05rem; color: var(--c-muted); margin: 0 0 32px; max-width: 700px; }
.ushp-offer-table { max-width: 780px; }
.ushp-offer-row { display: grid; grid-template-columns: 36px 1fr; gap: 16px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--c-border); }
.ushp-offer-row:last-child { border-bottom: 0; }
.ushp-offer-check { width: 32px; height: 32px; border-radius: 50%; background: var(--c-amber); display: flex; align-items: center; justify-content: center; font-size: 1.1rem; color: var(--c-navy); font-weight: 900; flex-shrink: 0; line-height: 1; }
.ushp-offer-item strong { display: block; font-size: 1.05rem; color: var(--c-navy); margin-bottom: 4px; }
.ushp-offer-item span { font-size: 0.95rem; color: var(--c-text); line-height: 1.6; }
.ushp-offer-risk { margin-top: 36px; padding: 28px 32px; background: var(--c-navy); border-radius: var(--radius-lg); max-width: 780px; }
.ushp-offer-risk p { color: rgba(255,255,255,0.85); margin: 0 0 8px; font-size: 1rem; line-height: 1.6; }
.ushp-offer-risk p:last-of-type { margin-bottom: 24px; }
.ushp-offer-risk p strong { color: #fff; }
@media (max-width: 640px) { .ushp-offer-row { grid-template-columns: 28px 1fr; gap: 12px; } .ushp-offer-risk { padding: 20px; } }

/* Footer disclaimer — legal compliance line */
.ushp-footer-disclaimer { font-size: 0.75rem; color: rgba(255,255,255,0.35); line-height: 1.5; max-width: 860px; margin: 12px auto 0; text-align: center; }
.ushp-footer-bottom a { color: rgba(255,255,255,0.55); text-decoration: none; font-size: 0.85rem; }
.ushp-footer-bottom a:hover { color: rgba(255,255,255,0.85); text-decoration: underline; }

/* ============================================================
   LAYOUT FIX 2026-06-15 — Inner page full-width consistency
   Ensures FAQ / About / Contact / Calculator / Privacy / Terms
   outer wrapper divs fill viewport width (no inherited shrinkage).
   All inner sections use the same ushp-container (1200px) to
   match the homepage's inner content width — site-wide consistency.
   ============================================================ */

/* Outer page wrapper divs — force full viewport width */
.ushp-faq-page,
.ushp-about-page,
.ushp-contact-page { width: 100%; }

/* Calculator outer section — full-bleed section wraps the 900px form */
.ushp-calc-section {
  width: 100%;
  background: var(--c-bg-warm);
  padding: 64px 0;
}
/* Calculator hero — full-bleed navy, consistent with FAQ/About/Contact */
.ushp-calc-hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3a6e 100%);
  color: #fff;
  padding: 72px 0 56px;
  text-align: center;
  width: 100%;
}
.ushp-calc-hero .ushp-eyebrow { color: #fbbf24; }
.ushp-calc-hero h1 {
  color: #fff;
  font-size: clamp(1.9rem, 4.5vw, 3rem);
  margin-bottom: 16px;
}
.ushp-calc-hero-sub {
  font-size: 1.1rem;
  color: rgba(255,255,255,0.85);
  max-width: 600px;
  margin: 0 auto;
  line-height: 1.65;
}

/* Legal pages (Privacy + Terms) — hero section, consistent with inner page standard */
.ushp-legal-hero {
  background: linear-gradient(135deg, var(--c-navy) 0%, #1e3a6e 100%);
  color: #fff;
  padding: 72px 0 56px;
  text-align: center;
  width: 100%;
}
.ushp-legal-hero .ushp-eyebrow { color: #fbbf24; }
.ushp-legal-hero h1 {
  color: #fff;
  font-size: clamp(1.7rem, 4vw, 2.75rem);
  margin-bottom: 16px;
}
.ushp-legal-hero-sub {
  font-size: 1rem;
  color: rgba(255,255,255,0.82);
  max-width: 560px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Legal content body — padded section wrapping the ushp-container */
.ushp-legal-body {
  padding: 64px 0;
  width: 100%;
}
.ushp-legal-body .ushp-container { max-width: 860px; } /* Optimal reading width for legal prose */

/* Mobile gutters preserved — all sections get side padding via ushp-container padding: 0 24px */
@media (max-width: 768px) {
  .ushp-calc-hero { padding: 48px 0 40px; }
  .ushp-legal-hero { padding: 48px 0 40px; }
  .ushp-calc-section { padding: 40px 0; }
}

/* ============================================================
   LOCATION PAGE LAYOUT FIX v1.2.2 — 2026-06-15
   Root cause: hero + final CTA used inline background-image
   (CSS bg on <section>), causing dependence on photos for
   visual structure. Converted to photo-free gradients matching
   the homepage's navy/red theme. Inline style="" removed from
   both <section> elements in location-page.php.
   Dustin rule: NO hero photos (confirmed 2026-06-15).
   ============================================================ */

/* LOCATION HERO — photo-free navy gradient (matches homepage) */
.ushp-loc-hero {
    /* Remove background-size/position rules that only apply to photo mode */
    background: linear-gradient(145deg, #0a1020 0%, #0f1f3d 35%, #1a2c52 65%, #112040 100%);
    width: 100%;
}
/* Overlay: subtle Old Glory red diagonal accent — matches homepage hero overlay */
.ushp-loc-hero-overlay {
    background: linear-gradient(135deg, rgba(178,34,52,0.15) 0%, rgba(178,34,52,0.06) 35%, transparent 65%);
}
/* Flag-stripe accent at hero bottom — matches homepage */
.ushp-loc-hero::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #B22234 0%, #B22234 33.3%, #ffffff 33.3%, #ffffff 66.6%, #002868 66.6%, #002868 100%);
    z-index: 2;
}

/* FINAL CTA — photo-free navy + deep green gradient (full-bleed) */
.ushp-loc-cta {
    background: linear-gradient(135deg, #0a1020 0%, #0f1f3d 40%, #15803d 100%);
    width: 100%;
    position: relative;
}
/* Remove background-size/position — no longer needed without photo */
.ushp-loc-cta-overlay {
    background: linear-gradient(105deg, rgba(10,16,32,0.85) 0%, rgba(15,31,61,0.75) 50%, rgba(21,128,61,0.6) 100%);
    padding: 96px 0;
    width: 100%;
}

/* Ensure all major location sections are full-viewport width */
.ushp-loc-hero,
.ushp-loc-cta,
.ushp-trust,
.ushp-section,
.ushp-mortgage-split,
.ushp-hoods,
.ushp-intro-split,
.ushp-how,
.ushp-articles,
.ushp-story-section { width: 100%; }

@media (max-width: 768px) {
  .ushp-loc-hero { min-height: 480px; }
  .ushp-loc-h1 { font-size: 2rem; }
  .ushp-loc-cta-overlay { padding: 64px 0; }
}

/* ============================================================
   GLOBAL LAYOUT FIX v1.2.3 — 2026-06-15
   Root cause: global max-width box constraining the entire site
   (header + all pages) with grey body/html background showing
   as gutters on both sides of the viewport on desktop.
   Additionally: header flex overflow causing "Get My Estimate"
   CTA to push past the right edge of the content area.

   FIX STRATEGY:
   1. Force html + body to full viewport width — no max-width,
      no margin:auto, background:#fff so no grey bleeds through.
   2. Neutralize any WP global styles box (.wp-site-blocks,
      .is-layout-flow, etc.) that WordPress may inject via
      block editor global styles pipeline even on classic themes.
   3. Force .ushp-header to width:100% with overflow visible so
      it spans edge-to-edge regardless of any upstream container.
   4. Fix header flex overflow: add min-width:0 to flex:1 nav,
      and ensure header-right uses flex-shrink:0 but with
      overflow:visible — the CTA must stay INSIDE the header bar.
   5. Ensure .ushp-main (the <main> element) is explicitly
      width:100% with no constraining margin/padding.
   6. Homepage sections (.ushp-v2-*) already use full-width
      section backgrounds — no change needed there.
   7. No horizontal-scroll risk: all full-bleed wrappers use
      width:100% (not 100vw which triggers scrollbars when
      scrollbar width > 0).
   ============================================================ */

/* 1 — html + body: ensure full-viewport, white background */
html {
    background: #fff;
    width: 100%;
    overflow-x: hidden; /* prevent horizontal scroll from any stray overflow */
}
body {
    background: #fff; /* already set above; explicit here in case any plugin overrides */
    width: 100%;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden;
}

/* 2 — Neutralize WordPress block-editor global styles wrappers
   (injected even on classic PHP themes in WP 6.1+) */
.wp-site-blocks,
.is-layout-flow,
.is-layout-constrained,
.entry-content {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 3 — Header: force full-width, no overflow clipping */
.ushp-header {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    overflow: visible; /* allow dropdown to escape without clipping */
}

/* 4 — Header flex overflow fix:
   - nav (.ushp-nav) has flex:1 → add min-width:0 so it can shrink
   - header-right has flex-shrink:0 → keep it, but ensure CTA doesn't
     push out; use overflow:visible on the right rail so nothing clips,
     and ensure the inner flex container wraps on very small viewports  */
.ushp-nav {
    min-width: 0; /* allow nav to shrink below its content width */
    overflow: hidden; /* clip overflowing nav items rather than pushing CTA out */
}
.ushp-header-right {
    flex-shrink: 0;
    min-width: 0;
}
.ushp-header-inner {
    box-sizing: border-box;
    width: 100%;   /* inner row fills the full-width header */
    overflow: visible;
}

/* 5 — Main content area: explicitly full-width */
.ushp-main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 6 — All top-level page section wrappers: full viewport width
   Covers every page type: home, state, city, faq, about,
   contact, calculator, privacy, terms, 404, default page */
.ushp-v2-hero,
.ushp-v2-trust,
.ushp-v2-story,
.ushp-v2-how,
.ushp-v2-stack,
.ushp-v2-pillars,
.ushp-v2-proof,
.ushp-v2-guarantee,
.ushp-v2-cta,
.ushp-v2-faq,
.ushp-v2-mission,
.ushp-v2-provides,
.ushp-v2-why,
.ushp-states-hub,
.ushp-offer-section,
.ushp-story-section,
.ushp-faq-hero,
.ushp-faq-body,
.ushp-faq-cta-band,
.ushp-about-hero,
.ushp-about-section,
.ushp-about-cta-band,
.ushp-contact-hero,
.ushp-contact-body,
.ushp-calc-hero,
.ushp-calc-section,
.ushp-legal-hero,
.ushp-legal-body,
.ushp-footer,
.ushp-loc-hero,
.ushp-loc-cta,
.ushp-trust,
.ushp-section,
.ushp-mortgage-split,
.ushp-hoods,
.ushp-intro-split,
.ushp-how,
.ushp-articles,
.ushp-breadcrumb { width: 100%; box-sizing: border-box; }

/* 7 — Outer page wrapper divs (inner page routing divs) */
.ushp-faq-page,
.ushp-about-page,
.ushp-contact-page { width: 100%; }

/* Mobile: preserve readable gutters via ushp-container padding (0 24px).
   No horizontal scroll: sections use width:100%, not 100vw. */
@media (max-width: 768px) {
    .ushp-header-inner {
        gap: 12px; /* reduce gap on small screens to give CTA more room */
    }
}

/* ==========================================================================
   STEP-2 PAGE — /step-2/
   Added 2026-06-15 v1.2.4. Full-width sections, mobile-first, navy/red theme.
   All new classes prefixed ushp-s2- to avoid collisions.
   ========================================================================== */

/* Hero */
.ushp-s2-hero {
    width: 100%;
    background: linear-gradient(145deg, #0a1020 0%, #0f1f3d 35%, #1a2c52 65%, #112040 100%);
    color: #fff;
    padding: 64px 0 48px;
    position: relative;
    overflow: hidden;
}
.ushp-s2-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #B22234 0%, #B22234 33%, #fff 33%, #fff 66%, #B22234 66%, #B22234 100%);
    opacity: 0.7;
}
.ushp-v2-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(178,34,52,0.10) 0%, transparent 60%);
    pointer-events: none;
}
.ushp-s2-hero-inner {
    position: relative;
    z-index: 1;
    text-align: center;
}
.ushp-s2-h1 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(1.7rem, 4vw, 2.6rem);
    font-weight: 800;
    color: #fff;
    margin: 12px 0 16px;
    line-height: 1.2;
    letter-spacing: -0.02em;
}
.ushp-s2-subhead {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.80);
    max-width: 580px;
    margin: 0 auto 12px;
    line-height: 1.6;
}
.ushp-s2-trust {
    font-size: 0.82rem;
    color: rgba(255,255,255,0.50);
    letter-spacing: 0.04em;
}

/* Form section */
.ushp-s2-form-section {
    width: 100%;
    background: var(--c-bg-warm, #fafaf9);
    padding: 56px 0 72px;
}
.ushp-s2-form-wrap {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 40px;
    align-items: start;
}
@media (max-width: 900px) {
    .ushp-s2-form-wrap {
        grid-template-columns: 1fr;
    }
    .ushp-s2-trust-panel {
        order: -1;
    }
}

/* Card */
.ushp-s2-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.09), 0 1px 4px rgba(0,0,0,0.05);
    padding: 40px 40px 36px;
}
@media (max-width: 600px) {
    .ushp-s2-card {
        padding: 24px 18px 24px;
    }
}

/* Progress bar */
.ushp-s2-progress {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}
.ushp-s2-progress-step {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--c-muted, #6b7280);
}
.ushp-s2-progress-step.ushp-s2-step-done {
    color: #15803d;
}
.ushp-s2-progress-step.ushp-s2-step-active {
    color: var(--c-navy, #0f1f3d);
}
.ushp-s2-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
    background: var(--c-bg-alt, #f3f4f6);
    color: var(--c-muted, #6b7280);
    flex-shrink: 0;
}
.ushp-s2-step-done .ushp-s2-step-num {
    background: #dcfce7;
    color: #15803d;
}
.ushp-s2-step-active .ushp-s2-step-num {
    background: #0f1f3d;
    color: #fff;
}
.ushp-s2-progress-divider {
    flex: 1;
    height: 2px;
    background: var(--c-border, #e5e7eb);
    border-radius: 1px;
}

/* Standalone notice */
.ushp-s2-standalone-notice {
    background: #eff6ff;
    border-left: 3px solid #1e40af;
    border-radius: 4px;
    padding: 10px 14px;
    margin-bottom: 20px;
    font-size: 0.9rem;
    color: #1e3a8a;
}

/* Form fields */
.ushp-s2-field-row {
    margin-bottom: 18px;
}
.ushp-s2-field-row-2col {
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 14px;
    margin-bottom: 18px;
}
@media (max-width: 560px) {
    .ushp-s2-field-row-2col {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .ushp-s2-field-row-2col .ushp-s2-field-row {
        margin-bottom: 14px;
    }
}
.ushp-s2-label {
    display: block;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--c-text-med, #374151);
    margin-bottom: 6px;
}
.ushp-s2-input,
.ushp-s2-select {
    display: block;
    width: 100%;
    padding: 11px 14px;
    font-size: 0.97rem;
    color: var(--c-text, #111827);
    background: #fff;
    border: 1.5px solid var(--c-border, #e5e7eb);
    border-radius: var(--radius, 6px);
    transition: border-color 0.18s, box-shadow 0.18s;
    font-family: 'Inter', sans-serif;
    appearance: auto;
}
.ushp-s2-input:focus,
.ushp-s2-select:focus {
    outline: none;
    border-color: #0f1f3d;
    box-shadow: 0 0 0 3px rgba(15,31,61,0.10);
}

/* Submit */
.ushp-s2-submit-btn {
    width: 100%;
    padding: 15px 24px;
    font-size: 1.05rem;
    font-weight: 700;
    margin-top: 4px;
    letter-spacing: 0.01em;
}
.ushp-s2-submit-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Consent line */
.ushp-s2-consent {
    font-size: 0.76rem;
    color: var(--c-muted, #6b7280);
    margin-top: 10px;
    text-align: center;
    line-height: 1.5;
}
.ushp-s2-consent a {
    color: var(--c-muted, #6b7280);
    text-decoration: underline;
}

/* Error box */
.ushp-s2-error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    border-radius: var(--radius, 6px);
    padding: 10px 14px;
    color: #b91c1c;
    font-size: 0.88rem;
    margin-bottom: 12px;
}

/* Confirmation panel */
.ushp-s2-confirm {
    text-align: center;
    padding: 20px 0;
}
.ushp-s2-confirm-inner {
    max-width: 480px;
    margin: 0 auto;
}
.ushp-s2-confirm-icon {
    font-size: 3rem;
    color: #15803d;
    margin-bottom: 12px;
    line-height: 1;
}
.ushp-s2-confirm-h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.7rem;
    font-weight: 800;
    color: var(--c-navy, #0f1f3d);
    margin-bottom: 12px;
}
.ushp-s2-confirm-note {
    font-size: 0.88rem;
    color: var(--c-muted, #6b7280);
    margin-bottom: 20px;
}
.ushp-s2-confirm-links {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* Standalone fields */
#s2-standalone-fields {
    border-bottom: 1px solid var(--c-border, #e5e7eb);
    margin-bottom: 22px;
    padding-bottom: 8px;
}

/* Trust panel (sidebar) */
.ushp-s2-trust-panel {
    background: linear-gradient(160deg, #0f1f3d 0%, #1a2c52 100%);
    border-radius: 12px;
    padding: 36px 28px;
    color: #fff;
    box-shadow: 0 4px 24px rgba(15,31,61,0.18);
    position: sticky;
    top: 90px;
}
.ushp-s2-trust-panel-inner {}
.ushp-s2-trust-h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 20px;
    line-height: 1.35;
}
.ushp-s2-trust-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}
.ushp-s2-trust-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.85);
    margin-bottom: 12px;
    line-height: 1.4;
}
.ushp-s2-trust-check {
    flex-shrink: 0;
    color: #4ade80;
    font-size: 1rem;
    margin-top: 1px;
}
.ushp-s2-trust-quote {
    font-style: italic;
    color: rgba(255,255,255,0.60);
    font-size: 0.88rem;
    border-top: 1px solid rgba(255,255,255,0.12);
    padding-top: 16px;
    margin-bottom: 6px;
    line-height: 1.5;
}
.ushp-s2-trust-attr {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.40);
    margin: 0;
}

/* Add ushp-s2-hero and ushp-s2-form-section to global full-width rule */
.ushp-s2-hero,
.ushp-s2-form-section { width: 100%; box-sizing: border-box; }

/* ==========================================================================
   WHO IS THIS FOR / NOT FOR — Homepage section
   Added 2026-06-15 v1.2.4
   ========================================================================== */
.ushp-v2-avatar {
    width: 100%;
    background: #fff;
    padding: 72px 0;
    border-top: 1px solid var(--c-border, #e5e7eb);
}
.ushp-v2-avatar-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
    padding: 0 24px;
}
.ushp-v2-avatar-header {
    text-align: center;
    margin-bottom: 48px;
}
.ushp-v2-avatar-h2 {
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    color: var(--c-navy, #0f1f3d);
    margin-bottom: 10px;
}
.ushp-v2-avatar-lede {
    color: var(--c-muted, #6b7280);
    font-size: 0.97rem;
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.65;
}
.ushp-v2-avatar-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
@media (max-width: 680px) {
    .ushp-v2-avatar-grid {
        grid-template-columns: 1fr;
    }
}
.ushp-v2-avatar-col {
    border-radius: 12px;
    padding: 32px 28px;
}
.ushp-v2-avatar-col--yes {
    background: linear-gradient(160deg, #f0fdf4 0%, #dcfce7 100%);
    border: 1.5px solid #86efac;
}
.ushp-v2-avatar-col--no {
    background: var(--c-bg-alt, #f3f4f6);
    border: 1.5px solid var(--c-border, #e5e7eb);
}
.ushp-v2-avatar-col-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 20px;
}
.ushp-v2-avatar-col--yes .ushp-v2-avatar-col-title {
    color: #15803d;
}
.ushp-v2-avatar-col--no .ushp-v2-avatar-col-title {
    color: var(--c-text-med, #374151);
}
.ushp-v2-avatar-col-icon {
    font-size: 1.2rem;
}
.ushp-v2-avatar-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ushp-v2-avatar-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.92rem;
    color: var(--c-text-med, #374151);
    margin-bottom: 13px;
    line-height: 1.5;
}
.ushp-v2-avatar-list li:last-child {
    margin-bottom: 0;
}
.ushp-v2-avatar-bullet {
    flex-shrink: 0;
    margin-top: 2px;
    font-size: 0.9rem;
}
.ushp-v2-avatar-col--yes .ushp-v2-avatar-bullet {
    color: #15803d;
}
.ushp-v2-avatar-col--no .ushp-v2-avatar-bullet {
    color: var(--c-muted, #6b7280);
}
.ushp-v2-avatar-footer {
    text-align: center;
    margin-top: 36px;
}
.ushp-v2-avatar-footer p {
    font-size: 0.88rem;
    color: var(--c-muted, #6b7280);
    margin-bottom: 16px;
}

/* ============================================================
   IMAGE FIX 2026-06-16 -- location-page.php photo replacements
   (1) .ushp-split-stat-panel: replaces the right-column house photo
       (rto-house-1.jpg stub) in the intro-split section with a 2x2
       stat card grid. Uses existing .ushp-stat-card pattern.
   (2) .ushp-hoods-photo-gradient: replaces home-kitchen.jpg inline
       style with a matching navy gradient background. Only activates
       on city pages that have neighborhood meta populated.
   When real photos are supplied, remove these and revert to <img>.
   ============================================================ */

/* (1) Split stat panel: 2-column grid of stat cards, no image needed */
.ushp-split-stat-panel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-content: center;
}
.ushp-split-stat-panel .ushp-stat-card {
    background: var(--c-bg-warm, #fafaf9);
    border-radius: var(--radius-md, 8px);
    padding: 24px 20px;
    text-align: center;
    border: 1px solid var(--c-border, #e5e7eb);
}
.ushp-split-stat-panel .ushp-stat-num {
    font-size: 2rem;
    font-weight: 800;
    color: var(--c-navy, #0f1f3d);
    display: block;
    margin-bottom: 6px;
}
.ushp-split-stat-panel .ushp-stat-label {
    font-size: 0.82rem;
    color: var(--c-muted, #6b7280);
    line-height: 1.4;
}
@media (max-width: 600px) {
    .ushp-split-stat-panel {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }
}

/* (2) Neighborhoods photo: navy gradient when no kitchen photo provided */
.ushp-hoods-photo-gradient {
    background: linear-gradient(145deg, #0a1020 0%, #0f1f3d 45%, #1a2c52 75%, #112040 100%);
}

/* ==========================================================================
   CONSENT CHECKBOX STYLES -- v1.2.8 (2026-06-16)
   Applied to .ushp-consent-block / .ushp-consent-label in lead-form.php
   Calculator + step-2 use inline styles; contact-page reuses .ushp-tcpa-group
   ========================================================================== */
.ushp-consent-block {
    background: #f7f8fc;
    border-radius: 6px;
    padding: 12px 14px;
    font-size: 0.8rem;
    color: #555;
    line-height: 1.55;
    margin-top: 10px;
    margin-bottom: 4px;
}
.ushp-consent-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: #555;
}
.ushp-consent-label input[type="checkbox"] {
    margin-top: 2px;
    min-width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: #0f1f3d;
    flex-shrink: 0;
    /* Override lead-form default input styles */
    width: auto;
    padding: 0;
    border: 1.5px solid #ccc;
    border-radius: 3px;
    background: #fff;
    box-shadow: none;
}
.ushp-consent-label a {
    color: #0f1f3d;
    text-decoration: underline;
}
.ushp-consent-label a:hover {
    color: #B22234;
}
.ushp-consent-error {
    color: #b71c1c;
    font-size: 0.78rem;
    margin-top: 4px;
    display: none;
}

/* ==========================================================================
   FOOTER REBUILD v1.2.9 -- 2026-06-17
   Replaces 3-column footer with 4-column nav+SEO+trust+legal footer.
   Col 1: Brand  |  Col 2: Quick Links  |  Col 3: Locations/SEO  |  Col 4: CTA
   Overrides the original lines 371-379 + 1395-1397 via cascade (appended last).
   Full-width footer, inner content at --max-w (1200px).
   Mobile: stacks to single column at <=800px.
   ========================================================================== */

/* Base footer: full-width, dark grey-navy, consistent with site navy theme */
.ushp-footer {
    background: #111827;
    color: #d1d5db;
    padding: 64px 0 0;
    margin-top: 80px;
    width: 100%;
}

/* Inner grid: 4 columns desktop */
.ushp-footer-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1.4fr 1fr 1.2fr 1fr;
    gap: 40px;
    align-items: start;
    box-sizing: border-box;
}

/* COLUMN HEADINGS -- h3 (NOT h1/h2); white, slightly smaller than page headings */
.ushp-footer-heading {
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid #374151;
}

/* COL 1: BRAND */
.ushp-footer-brand-link {
    display: block;
    text-decoration: none;
    margin-bottom: 14px;
}
.ushp-footer-brand-link:hover { text-decoration: none; }
.ushp-footer-brand-text {
    display: inline-block;
    font-size: 1.1rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin: 0;
}
.ushp-footer-blurb {
    font-size: 0.875rem;
    line-height: 1.65;
    color: #9ca3af;
    margin: 0 0 12px;
    max-width: 280px;
}
.ushp-footer-phone { margin: 0; }
.ushp-footer-phone a {
    color: #fbbf24;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
}
.ushp-footer-phone a:hover { color: #fff; }

/* COL 2: QUICK LINKS */
.ushp-footer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.ushp-footer-menu li {
    margin-bottom: 10px;
}
.ushp-footer-menu li:last-child { margin-bottom: 0; }
.ushp-footer-col a {
    color: #93c5fd;
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.12s;
}
.ushp-footer-col a:hover { color: #fff; }

/* ── FOOTER LAYOUT FIX 2026-09-02 ───────────────────────────────────────────
   The states column held 51 links in a ~300px grid column with no multi-column
   rule: a 1,700px wall of blue on all 3,763 pages, the other three columns
   ending far above it and a large empty area beside it. Only visible in a
   rendered screenshot -- no text-based check can see a layout.
   The list now spans the full footer width BELOW the other three columns and
   flows in 4 columns. Nothing is removed: all 51 hub links stay, and the hubs
   are the site's single biggest lead source (503 of 988 leads to date). */
.ushp-footer-inner { grid-template-columns: 1.5fr 1fr 1fr; }
.ushp-footer-col--brand     { order: 1; }
.ushp-footer-col--links     { order: 2; }
.ushp-footer-col--cta       { order: 3; }
.ushp-footer-col--locations {
    order: 4;
    grid-column: 1 / -1;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #1f2937;
}
.ushp-footer-states { columns: 4; column-gap: 36px; }
/* a link must never be split across two columns */
.ushp-footer-states li { break-inside: avoid; -webkit-column-break-inside: avoid; }
@media (max-width: 900px) { .ushp-footer-states { columns: 2; } }
@media (max-width: 560px) { .ushp-footer-states { columns: 1; } }

/* The bottom-bar disclaimer was near-black on black. */
.ushp-footer-bottom-note, .ushp-footer-bottom p { color: rgba(255,255,255,0.48); }

/* COL 3: LOCATIONS / SEO -- keyword anchor links */
.ushp-footer-states {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}
.ushp-footer-states li {
    margin-bottom: 9px;
}
.ushp-footer-states a {
    color: #93c5fd;
    font-size: 0.875rem;
    text-decoration: none;
    line-height: 1.4;
    transition: color 0.12s;
}
.ushp-footer-states a:hover { color: #fff; }
.ushp-footer-states-more {
    margin: 0;
}
.ushp-footer-states-more a {
    color: #fbbf24;
    font-size: 0.85rem;
    font-weight: 600;
    text-decoration: none;
}
.ushp-footer-states-more a:hover { color: #fff; }

/* COL 4: CTA */
.ushp-footer-cta-text {
    font-size: 0.875rem;
    line-height: 1.55;
    color: #9ca3af;
    margin: 0 0 18px;
}
.ushp-footer-cta-btn {
    display: inline-block;
    background: #B22234;
    color: #fff !important;
    font-size: 0.95rem;
    font-weight: 700;
    padding: 13px 22px;
    border-radius: 6px;
    text-decoration: none !important;
    transition: background 0.15s, transform 0.12s;
    margin-bottom: 14px;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.ushp-footer-cta-btn:hover {
    background: #8b1a27;
    transform: translateY(-1px);
    color: #fff !important;
    text-decoration: none !important;
}
.ushp-footer-cta-sub {
    margin: 0;
    font-size: 0.85rem;
}
.ushp-footer-cta-sub a {
    color: #93c5fd !important;
    text-decoration: underline;
    font-size: 0.85rem;
}
.ushp-footer-cta-sub a:hover { color: #fff !important; }

/* BOTTOM BAR */
.ushp-footer-bottom {
    border-top: 1px solid #1f2937;
    margin-top: 56px;
    padding: 0;
    background: #0a0f1a;
    width: 100%;
}
.ushp-footer-bottom-inner {
    max-width: var(--max-w, 1200px);
    margin: 0 auto;
    padding: 24px 24px 32px;
    box-sizing: border-box;
}
.ushp-footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 20px;
    margin-bottom: 16px;
    font-size: 0.85rem;
}
.ushp-footer-copy {
    color: #6b7280;
}
.ushp-footer-bottom a {
    color: rgba(255,255,255,0.55);
    text-decoration: none;
    font-size: 0.85rem;
    transition: color 0.12s;
}
.ushp-footer-bottom a:hover {
    color: rgba(255,255,255,0.9);
    text-decoration: underline;
}
/* Compliance disclaimer: muted, small, full width */
.ushp-footer-disclaimer {
    font-size: 0.72rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.30);
    margin: 0;
    max-width: 100%;
    text-align: left;
}

/* RESPONSIVE: 2-col tablet (800-1100px) */
@media (max-width: 1100px) and (min-width: 801px) {
    .ushp-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }
}

/* RESPONSIVE: single column mobile (<=800px) */
@media (max-width: 800px) {
    .ushp-footer { padding: 48px 0 0; margin-top: 56px; }
    .ushp-footer-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .ushp-footer-blurb { max-width: 100%; }
    .ushp-footer-bottom-links { flex-direction: column; align-items: flex-start; gap: 8px; }
    .ushp-footer-cta-btn { display: block; text-align: center; }
}
/* END FOOTER REBUILD v1.2.9 */

/* ── USHP LAYOUT REPAIR 2026-08-30 ────────────────────────────────────────
   Appended by the 08-30 audit. Every rule here backs a class that is ALREADY
   in the shipped HTML on 3,700+ pages and had no rule on the LIVE stylesheet.
   Nothing below changes markup, copy, titles, paths or forms.
   ------------------------------------------------------------------------ */

/* 1. THE WIDTH CONTAINER (3,703 city pages)
   Four sections use .ushp-wrap where every other section uses .ushp-container.
   .ushp-wrap had no rule, so those four ran edge-to-edge with no side padding.
   Matched to .ushp-container exactly. */
.ushp-wrap {
  max-width: var(--max-w, 1200px);
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* 2. NEARBY-CITIES BLOCK (3,701 city pages)
   The generator emits .ushp-hood-grid/.ushp-hood-card/.ushp-hood-link but the
   stylesheet still only knows the old hand-built .ushp-neighborhood* markup
   used on the single Houston page. */
.ushp-hoods-intro {
  max-width: 720px;
  margin: 0 0 28px;
  color: var(--c-text-med, #4b5563);
  font-size: 1.05rem;
}
.ushp-hood-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 8px;
}
.ushp-hood-card {
  background: #fff;
  border: 1px solid var(--c-border, #e5e7eb);
  border-radius: 12px;
  padding: 22px 22px 18px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.ushp-hood-card:hover {
  box-shadow: 0 6px 18px rgba(16, 24, 40, 0.08);
  transform: translateY(-2px);
}
.ushp-hood-card h3 {
  margin: 0 0 10px;
  font-size: 1.1rem;
  line-height: 1.3;
}
.ushp-hood-card p {
  margin: 0 0 16px;
  font-size: 0.95rem;
  color: var(--c-text-med, #4b5563);
  flex: 1 1 auto;
}
.ushp-hood-link {
  display: inline-block;
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
  color: var(--c-primary);
  margin-top: auto;
}
.ushp-hood-link:hover { text-decoration: underline; }
.ushp-hood-keywords { margin-top: 8px; }

/* 3. MARKET SNAPSHOT TABLE (3,751 pages)
   These rules exist in the LOCAL main.css (added 2026-08-19) but were never
   deployed, so the Census table renders as a raw unstyled <table> on live.
   Re-stated here so the repair is self-contained. */
.ushp-city-facts { background: var(--c-bg-warm, #faf7f2); }
.ushp-facts-table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0 10px;
  font-size: 0.98rem;
}
.ushp-facts-table th,
.ushp-facts-table td {
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid var(--c-border, #e5e7eb);
  vertical-align: top;
}
.ushp-facts-table th {
  width: 42%;
  font-weight: 600;
  color: var(--c-text-med, #4b5563);
}
.ushp-facts-table td { color: var(--c-text, #111827); }
.ushp-facts-table tr:last-child th,
.ushp-facts-table tr:last-child td { border-bottom: 0; }
.ushp-src {
  font-size: 0.8rem;
  color: var(--c-muted, #6b7280);
  margin-top: 6px;
}

/* 4. "SEARCHES THIS PAGE ANSWERS" LIST (3,702 pages) */
.ushp-kw-stack { background: var(--c-bg-warm, #faf7f2); }
.ushp-kw-list {
  list-style: none;
  padding: 0;
  margin: 18px 0 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ushp-kw-list li {
  background: #fff;
  border: 1px solid var(--c-border, #e5e7eb);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 0.9rem;
  color: var(--c-text-med, #4b5563);
}

/* 5. CALCULATOR CTA BAND (3,754 pages) */
.ushp-calc-cta-box {
  background: #fff;
  border: 1px solid var(--c-border, #e5e7eb);
  border-radius: 14px;
  padding: 28px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* 6. FOOTER COLUMN MODIFIERS (3,762 pages)
   .ushp-footer-inner is a 4-column grid; the modifiers carried no rule so the
   brand column got the same width as the link columns. */
.ushp-footer-col--brand    { min-width: 0; }
.ushp-footer-col--links    { min-width: 0; }
.ushp-footer-col--cta      { min-width: 0; }
.ushp-footer-col--locations{ min-width: 0; }

/* 7. MOBILE — the four repaired sections need the same collapse the rest has */
@media (max-width: 640px) {
  .ushp-wrap { padding: 0 18px; }
  .ushp-hood-grid { grid-template-columns: 1fr; gap: 16px; }
  .ushp-facts-table th,
  .ushp-facts-table td {
    display: block;
    width: auto;
    padding: 6px 0;
    border: 0;
  }
  .ushp-facts-table tr {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-border, #e5e7eb);
  }
  .ushp-facts-table th {
    font-weight: 700;
    color: var(--c-muted, #6b7280);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .ushp-calc-cta-box { flex-direction: column; align-items: stretch; }
}

/* ── FOOTER SOCIAL ROW 2026-09-02 ────────────────────────────────────────────
   Added once real, opened-and-confirmed profiles existed. Icons are inline SVG:
   no request, nothing to 404, and they inherit colour so hover is one rule. */
.ushp-footer-social { margin-top: 16px; }
.ushp-footer-social ul {
    list-style: none; margin: 0; padding: 0; display: flex; gap: 12px;
}
.ushp-footer-social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; border-radius: 50%;
    background: rgba(255,255,255,0.06); color: #cbd5e1;
    text-decoration: none; transition: background 0.15s, color 0.15s;
}
.ushp-footer-social a:hover { background: #B22234; color: #fff; }
.ushp-footer-social a:focus-visible { outline: 2px solid #fbbf24; outline-offset: 2px; }
/* visible to screen readers, not to the eye -- the icon alone is not a label */
.ushp-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;
}

/* ── ICONS REPLACING EMOJI 2026-09-02 ────────────────────────────────────────
   The offer cards and mortgage cards used 🏠 📋 🕑 📞 🏦 🤝 💼 as their icons.
   Emoji render in whatever the OS ships, at whatever weight it likes, in full
   colour next to a muted palette -- the single fastest way to make a page look
   unfinished. These are stroke outlines that inherit the surrounding colour. */
.ushp-ico { display: block; color: #B22234; }
.ushp-about-offer-icon .ushp-ico,
.ushp-mc-icon .ushp-ico { margin-bottom: 2px; }
.ushp-mc-icon { display: inline-block; line-height: 0; }

/* ── CONSENT READS AS SENTENCE CASE 2026-09-02 ───────────────────────────────
   `.ushp-lead-form label { text-transform: uppercase }` (0,1,1) out-specified
   `.ushp-consent-label { text-transform: none }` (0,1,0), so 52 words of TCPA
   consent were set in ALL CAPS under every form on 3,764 pages. Caps is harder to
   read, and "conspicuous" consent is served by legibility, not by shouting. Seen in
   a screenshot -- the declaration was already there and already losing. */
.ushp-lead-form label.ushp-consent-label,
.ushp-lead-form label.ushp-consent-label span,
.ushp-consent-block label,
.ushp-consent-block span {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    font-size: 0.78rem;
    line-height: 1.6;
    color: #5a6472;
}
.ushp-consent-block a { color: #35507d; text-decoration: underline; font-weight: 600; }
