/* ================================================
   SOUTHWEST HOMES - Global Stylesheet v7.9.0
   Deduplicated button/hover/image system.
   Sections ordered per homepage flow.
================================================ */
/* v7.9.0 - Consolidated buttons, card hovers, image hovers, eyebrow dedup, responsive merge */

/* -- 1. FONTS -- */
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DM Sans'; font-style: italic; font-weight: 300 700; font-display: swap; src: url(fonts/dm-sans-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(fonts/playfair-display-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400 700; font-display: swap; src: url(fonts/playfair-display-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* -- 2. VARIABLES -- */
:root {
  --red: #C21000; --red-dark: #9e0d00; --red-light: #e8342a;
  --black: #1a1a1a; --black-soft: #2d2d2d; --charcoal: #3a3a3a;
  --gray-dark: #555; --gray: #888; --gray-light: #c8c8c8; --gray-bg: #e2e2de;
  --white: #ffffff; --off-white: #fafaf8;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'DM Sans', -apple-system, sans-serif;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

/* -- 3. RESET -- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: var(--font-body); font-size: 16px; color: var(--black); background: var(--white); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }

/* -- 4. CONTAINER + TYPOGRAPHY -- */
.container { max-width: 1280px; margin: 0 auto; padding: 0 60px; }
.section-eyebrow, .faq-category-label { display: inline-flex; align-items: center; gap: 12px; font-size: 11px; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: var(--red); margin-bottom: 16px; }
.section-eyebrow::before, .faq-category-label::before { content: ''; width: 36px; height: 2px; background: var(--red); }
.section-heading { font-family: var(--font-display); font-size: clamp(32px, 4vw, 52px); font-weight: 500; line-height: 1.15; color: var(--black); margin-bottom: 16px; }
.section-heading em, .rfm-sh__heading em { font-style: italic; color: var(--red-light); }
.rfm-sh--em-block .rfm-sh__heading em { display: block; }
.section-desc { font-size: 16px; font-weight: 300; line-height: 1.75; color: var(--gray-dark); max-width: 560px; }

/* -- 5. BUTTONS (consolidated) -- */
/* Primary button (red) */
.btn-primary, .btn-cta, .btn-red, .btn-red-sm, .nav-cta-btn, .offcanvas-cta-btn,
.fp-filter-btn, .fp-card-btn-primary, .float-cta__btn, .rfm-cb__button,
#site-footer .rfm-fbrand__cta, #swh-ready .rfm-cta__btn--primary, .lead-magnet__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px; background: var(--red); color: #fff;
  font-size: 13px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase;
  border: none; border-radius: 4px; cursor: pointer;
  font-family: var(--font-body); text-decoration: none;
  transition: background 0.35s var(--ease), transform 0.25s, box-shadow 0.35s;
}
.btn-primary:hover, .btn-cta:hover, .btn-red:hover, .btn-red-sm:hover, .nav-cta-btn:hover,
.offcanvas-cta-btn:hover, .fp-filter-btn:hover, .fp-card-btn-primary:hover,
.float-cta__btn:hover, .rfm-cb__button:hover, #site-footer .rfm-fbrand__cta:hover,
#swh-ready .rfm-cta__btn--primary:hover, .lead-magnet__btn:hover {
  background: var(--red-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
/* Secondary button (outline) */
.btn-secondary, .btn-white-outline, .fp-card-btn-secondary, .fp-filter-btn--reset,
#swh-ready .rfm-cta__btn--secondary {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px; background: transparent;
  font-size: 13px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase;
  border-radius: 4px; cursor: pointer; font-family: var(--font-body);
  transition: all 0.35s var(--ease);
}
.btn-white-outline, #swh-ready .rfm-cta__btn--secondary { color: #fff; border: 1.5px solid rgba(255,255,255,0.35); }
.btn-white-outline:hover, #swh-ready .rfm-cta__btn--secondary:hover { border-color: #fff; background: rgba(255,255,255,0.1); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15); }
.fp-card-btn-secondary, .fp-filter-btn--reset { color: var(--black); border: 1px solid rgba(0,0,0,0.15); }
.fp-card-btn-secondary:hover { border-color: var(--red); color: var(--red); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15); }
.fp-filter-btn--reset:hover { background: var(--gray-bg); color: var(--black); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.15); }
/* Button arrows */
.btn-primary svg, .btn-cta svg, .btn-white-outline svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; transition: transform 0.25s; }
.btn-primary:hover svg, .btn-cta:hover svg, .btn-white-outline:hover svg { transform: translateX(3px); }
/* Primary button overrides (only differences from base) */
.offcanvas-cta-btn { display: block; text-align: center; }
.fp-card-btn-primary, .fp-card-btn-secondary { flex: 1; padding: 12px 0; text-align: center; justify-content: center; }
.fp-filter-btn--reset { padding: 12px 20px; }
.lead-magnet__btn { background: var(--black); }
.lead-magnet__btn:hover { background: #333; }
.lead-magnet__btn svg { width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-left: 6px; }
.rfm-cb__button { margin-top: auto; }

/* -- 6. CARD HOVER (consolidated) -- */
.fp-card, .about-value-card, .about-link-card, .office-card, .fin-how-card,
.byop-card, .testi-card, .rfm-cb, .testimonial-card, .gallery-mosaic__item {
  transition: transform 0.35s var(--ease), box-shadow 0.35s;
}
.fp-card:hover, .about-value-card:hover, .about-link-card:hover, .office-card:hover,
.fin-how-card:hover, .byop-card:hover, .testi-card:hover, .rfm-cb:hover,
.testimonial-card:hover, .gallery-mosaic__item:hover {
  transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.08);
}

/* -- 7. IMAGE HOVER (consolidated) -- */
.elementor-widget-image img { transition: transform 0.4s var(--ease-out), box-shadow 0.4s var(--ease-out); }
.elementor-widget-image:hover img { transform: translateY(-4px) scale(1.02); box-shadow: 0 16px 40px rgba(0,0,0,0.12); }
/* Kill hover on header + footer logos + financing band */
#navbar .elementor-widget-image:hover img,
#site-footer .elementor-widget-image:hover img,
#swh-financing .elementor-widget-image:hover img { transform: none; box-shadow: none; }

/* -- 8. ANNOUNCE BAR -- */
#top-bar { font-size: 10px; letter-spacing: 0.08em; font-weight: 500; text-transform: uppercase; color: #fff; }
#top-bar strong { font-weight: 600; }
#top-bar a { color: #fff; }
#top-bar .announce-bar__right { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
#top-bar .announce-bar__office-switch select { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: rgba(0,0,0,0.2); color: #fff; border: 1px solid rgba(255,255,255,0.3); border-radius: 4px; padding: 8px 36px 8px 14px; font-size: 0.72rem; font-weight: 600; font-family: var(--font-body); letter-spacing: 0.05em; text-transform: uppercase; cursor: pointer; transition: background-color 0.2s, border-color 0.2s; background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 10px 6px; }
#top-bar .announce-bar__office-switch select:hover { background-color: rgba(0,0,0,0.35); border-color: rgba(255,255,255,0.5); }
#top-bar .announce-bar__office-switch select:focus { outline: none; border-color: #fff; }
#top-bar .announce-bar__office-switch select option { background: #1a1a1a; color: #fff; padding: 12px 16px; font-size: 0.82rem; }
#top-bar .announce-bar__socials { display: flex; gap: 14px; align-items: center; }
#top-bar .announce-bar__socials a { color: rgba(255,255,255,0.5); transition: color 0.2s; display: flex; align-items: center; }
#top-bar .announce-bar__socials a:hover { color: #fff; }
#top-bar .announce-bar__search { display: flex; align-items: center; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.3); border-radius: 4px; transition: border-color 0.2s, background-color 0.2s; }
#top-bar .announce-bar__search:focus-within { border-color: #fff; background: rgba(0,0,0,0.35); }
#top-bar .announce-bar__search input { background: transparent; border: none; outline: none; color: #fff; font-family: var(--font-body); font-size: 10px; font-weight: 500; letter-spacing: 0.05em; text-transform: uppercase; padding: 8px 0 8px 12px; width: 140px; }
#top-bar .announce-bar__search input::placeholder { color: rgba(255,255,255,0.5); text-transform: uppercase; }
#top-bar .announce-bar__search input::-webkit-search-cancel-button { -webkit-appearance: none; }
#top-bar .announce-bar__search button { background: transparent; border: none; color: rgba(255,255,255,0.7); padding: 8px 10px; cursor: pointer; display: flex; align-items: center; transition: color 0.2s; }
#top-bar .announce-bar__search button:hover { color: #fff; }

/* -- 9. NAVBAR -- */
#navbar { min-height: auto !important; --min-height: auto !important; }
.navbar { box-shadow: 0 2px 16px rgba(0,0,0,0.06); }
.navbar.scrolled { box-shadow: 0 4px 30px rgba(0,0,0,0.1); }
#nav-left img { height: 50px; width: auto; max-width: none; }
#navbar .elementor-nav-menu { gap: 20px; }
#navbar .elementor-nav-menu--main > ul > li > .elementor-item { font-family: var(--font-body); font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0.06em; text-transform: uppercase; color: var(--charcoal); opacity: 0.75; position: relative; padding: 0 0 4px 0 !important; transition: color 0.2s, opacity 0.2s, transform 0.2s; }
#navbar .elementor-nav-menu--main > ul > li > .elementor-item::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1.5px; background: var(--red); transition: width 0.3s var(--ease); }
#navbar .elementor-nav-menu--main > ul > li > .elementor-item:hover { opacity: 1; color: var(--red); transform: translateY(-1px); }
#navbar .elementor-nav-menu--main > ul > li > .elementor-item:hover::after,
#navbar .elementor-nav-menu--main > ul > li > .elementor-item.elementor-item-active::after { width: 100%; }
#navbar .e--pointer-underline .elementor-item::before,
#navbar .e--pointer-underline .elementor-item::after { display: none; }
#navbar .elementor-nav-menu--main > ul > li > .elementor-item::after { display: block; }
/* Dropdown/submenu */
#navbar .sub-menu { background: #fff; border-radius: 8px; box-shadow: 0 16px 48px rgba(0,0,0,0.12), 0 0 0 1px rgba(0,0,0,0.04); padding: 8px 0 !important; border: none; min-width: 220px; }
#navbar .sub-menu li { padding: 0; margin: 0; }
#navbar .sub-menu a { font-family: var(--font-body) !important; font-size: 14px !important; font-weight: 400 !important; color: var(--charcoal) !important; text-transform: none !important; letter-spacing: 0 !important; padding: 12px 24px !important; transition: all 0.2s; opacity: 1 !important; display: block !important; line-height: 1.4 !important; }
#navbar .sub-menu a:hover { background: rgba(194,16,0,0.05) !important; color: var(--red) !important; padding-left: 28px !important; }
#navbar .sub-menu .current-menu-item > a, #navbar .sub-menu .current-menu-ancestor > a { background: var(--red) !important; color: #fff !important; }
/* Nav right: phone + CTA */
.nav-phone-link { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; color: var(--black); white-space: nowrap; letter-spacing: -0.01em; transition: color 0.2s; }
.nav-phone-link:hover { color: var(--red); }
.nav-phone-link svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.5; flex-shrink: 0; }
.nav-cta-btn { white-space: nowrap; }
svg:not([width]):not([class]) { max-width: 24px; max-height: 24px; }

/* -- 10. OFFCANVAS MOBILE MENU -- */
.offcanvas { position: fixed; top: 0; right: -320px; width: 320px; height: 100vh; background: var(--white); z-index: 1000; transition: right 0.35s var(--ease); display: flex; flex-direction: column; box-shadow: -4px 0 40px rgba(0,0,0,0); }
.offcanvas.active { right: 0; box-shadow: -4px 0 40px rgba(0,0,0,0.15); }
.offcanvas-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 999; opacity: 0; visibility: hidden; transition: all 0.3s; }
.offcanvas-overlay.active { opacity: 1; visibility: visible; }
.offcanvas-header { display: flex; justify-content: flex-end; padding: 20px; }
.offcanvas-close { background: none; border: none; cursor: pointer; padding: 8px; }
.offcanvas-close svg { width: 20px; height: 20px; stroke: var(--black); stroke-width: 2; }
.offcanvas-body { flex: 1; overflow-y: auto; }
.offcanvas-nav { list-style: none; padding: 0 24px; }
.offcanvas-nav li { border-bottom: 1px solid rgba(0,0,0,0.06); }
.offcanvas-nav a { display: block; padding: 16px 0; font-size: 15px; font-weight: 500; color: var(--black); transition: color 0.2s; }
.offcanvas-nav a:hover { color: var(--red); }
.offcanvas-cta { padding: 24px; }
.offcanvas-cta-btn { margin-bottom: 12px; }
.offcanvas-phone { display: block; text-align: center; padding: 12px; font-size: 14px; font-weight: 600; color: var(--black); }
body.offcanvas-open { overflow: hidden; }

/* -- 11. HERO -- */
.hero-slide-text { opacity: 0; pointer-events: none; transition: opacity 0.8s ease; position: absolute; top: 0; left: 0; width: 100%; }
.hero-slide-text.active { opacity: 1; pointer-events: auto; position: relative; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 11px; font-weight: 600; letter-spacing: 4px; text-transform: uppercase; color: rgba(255,255,255,0.75); margin-bottom: 22px; opacity: 0; transform: translateY(16px); }
.hero-eyebrow::before { content: ''; width: 36px; height: 2px; background: rgba(255,255,255,0.5); }
.hero-h1 { font-family: var(--font-display); font-size: clamp(40px, 5.2vw, 56px); font-weight: 500; line-height: 1.1; color: #fff; margin-bottom: 18px; opacity: 0; transform: translateY(24px); }
.hero-h1 em { font-style: italic; color: var(--red-light); }
.hero-p { font-size: 17px; font-weight: 300; line-height: 1.7; color: rgba(255,255,255,0.75); max-width: 500px; margin-bottom: 34px; opacity: 0; transform: translateY(18px); }
.hero-btns { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; opacity: 0; transform: translateY(18px); }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
.hero-slide-text.active .hero-eyebrow { animation: fadeUp 0.7s 0.15s forwards; }
.hero-slide-text.active .hero-h1 { animation: fadeUp 0.8s 0.3s forwards; }
.hero-slide-text.active .hero-p { animation: fadeUp 0.7s 0.45s forwards; }
.hero-slide-text.active .hero-btns { animation: fadeUp 0.7s 0.58s forwards; }
/* Hero proof bar */
.hero__proof { display: flex; align-items: center; gap: 16px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.12); }
.hero__stars { display: flex; align-items: center; gap: 6px; }
.hero__stars .stars { color: #F59E0B; font-size: 0.85rem; letter-spacing: 1px; line-height: 1; }
.hero__stars-text { color: rgba(255,255,255,0.7); font-size: 0.75rem; font-weight: 400; line-height: 1; }
.hero__stars-text strong { color: #fff; }
.hero__proof-divider { width: 1px; height: 20px; background: rgba(255,255,255,0.15); }
.hero__proof-item { display: flex; align-items: center; gap: 6px; color: rgba(255,255,255,0.6); font-size: 0.75rem; font-weight: 400; line-height: 1; }
.hero__proof-item strong { color: #fff; font-weight: 600; }
/* Trust badges in hero */
#swh-hero .rfm-tb { display: flex; align-items: center; border-top: 1px solid rgba(255,255,255,0.12); }
#swh-hero .rfm-tb__item { color: rgba(255,255,255,0.6); font-size: 0.75rem; }
#swh-hero .rfm-tb__item strong { color: #fff; font-weight: 600; }
/* Trust badges inside form card */
.hero-form-card .rfm-tb { flex-direction: column; align-items: center; border-top: 1px solid rgba(0,0,0,0.06); }
.hero-form-card .rfm-tb__badges { display: flex; justify-content: center; gap: 16px; }
.hero-form-card .rfm-tb__item { color: #767676; }
.hero-form-card .rfm-tb__icon { color: var(--gray-dark); }
.hero-form-card .rfm-tb__text { color: var(--gray-dark); font-size: 0.72rem; }
/* Counter + dots */
#swh-hero .hero-nav-row { display: flex; align-items: center; gap: 20px; margin-top: 16px; }
#swh-hero .hero-counter { font-family: var(--font-display); color: rgba(255,255,255,0.4); font-size: 0.95rem; letter-spacing: 0.05em; }
#swh-hero .hero-counter .cur { font-size: 1.1rem; font-weight: 600; color: #fff; }
#swh-hero .hero-indicators { display: flex; gap: 10px; }
#swh-hero .hero-dot { width: 52px; height: 3px; background: rgba(255,255,255,0.2); border-radius: 2px; cursor: pointer; position: relative; overflow: hidden; }
#swh-hero .hero-dot::after { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 0; background: var(--red); border-radius: 2px; }
#swh-hero .hero-dot.active::after { animation: dotFill 6s linear forwards; }
@keyframes dotFill { to { width: 100%; } }
/* Scroll cue */
.scroll-cue { display: flex; flex-direction: column; align-items: center; gap: 6px; color: rgba(255,255,255,0.35); font-size: 9px; letter-spacing: 3px; text-transform: uppercase; margin: 32px auto 0; }
.scroll-cue-line { width: 1px; height: 36px; background: linear-gradient(180deg, rgba(255,255,255,0.5), transparent); animation: bobble 2.5s ease infinite; }
@keyframes bobble { 0%,100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
/* Form card */
.hero-form-card { background: rgba(255,255,255,0.97); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 12px; padding: 40px 36px; box-shadow: 0 30px 80px rgba(0,0,0,0.35); border: 1px solid rgba(255,255,255,0.1); }
.hero-form-card .rfm-sh__heading { color: var(--black); font-family: var(--font-display); font-size: 32px; font-weight: 600; margin-bottom: 4px; }
.hero-form-card .rfm-sh__desc { color: var(--gray-dark); font-size: 0.78rem; margin-bottom: 20px; line-height: 1.5; }
.hero-form-card .form__trust-item { color: #767676; }
.boyl-seminar .hero-form-card { background: var(--off-white); box-shadow: 0 8px 32px rgba(0,0,0,0.06); border: 1px solid rgba(0,0,0,0.06); backdrop-filter: none; }
/* Form input/textarea/placeholder normalization */
.elementor-field-textual, .elementor-field-textual::placeholder,
.elementor-select-wrapper select { font-family: var(--font-body); }
.elementor-field-textual::placeholder { color: var(--gray); font-weight: 300; font-size: 14px; }
/* Form input focus state */
.hero-form-card .elementor-field:focus,
.hero-form-card .elementor-field-textual:focus,
.fp-modal__card .elementor-field:focus { border-color: var(--red); outline: none; box-shadow: 0 0 0 2px rgba(194,16,0,0.15); }

/* -- 12. FLOOR PLAN FILTER + CARDS -- */
.fp-filter-bar { background: var(--white); border-bottom: 1px solid rgba(0,0,0,0.08); padding: 22px 0; box-shadow: 0 4px 20px rgba(0,0,0,0.06); }
.fp-filter-inner { display: flex; align-items: center; gap: 0; }
.fp-filter-label { font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--red); white-space: nowrap; padding-right: 24px; border-right: 1px solid rgba(0,0,0,0.08); margin-right: 24px; }
.fp-filter-fields { display: flex; align-items: center; gap: 12px; flex: 1; flex-wrap: wrap; }
.fp-filter-select { flex: 1; min-width: 130px; padding: 11px 14px; appearance: none; background: var(--gray-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center; border: 1px solid rgba(0,0,0,0.1); border-radius: 3px; font-family: var(--font-body); font-size: 13px; color: var(--black); cursor: pointer; transition: border-color 0.2s; }
.fp-filter-select:focus { outline: none; border-color: var(--red); }
.fp-filter-actions { display: flex; gap: 10px; align-items: center; margin-left: 12px; }
.fp-results-meta { display: flex; align-items: center; justify-content: space-between; padding: 14px 0 0; font-size: 13px; color: var(--gray-dark); font-weight: 300; }
.fp-results-meta b { font-weight: 700; color: var(--black); }
.fp-results-byop { color: var(--red); font-weight: 500; text-decoration: none; transition: color 0.2s; }
.fp-results-byop:hover { color: var(--red-dark); }
.fp-loading { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 80px 20px; font-size: 14px; color: var(--gray); grid-column: 1 / -1; }
.fp-spinner { width: 24px; height: 24px; border: 3px solid rgba(0,0,0,0.08); border-top-color: var(--red); border-radius: 50%; animation: fpSpin 0.6s linear infinite; }
@keyframes fpSpin { to { transform: rotate(360deg); } }
.fp-empty { padding: 80px 20px; text-align: center; font-size: 15px; color: var(--gray); font-weight: 300; grid-column: 1 / -1; }
.fp-grid.fp-grid--4 { grid-template-columns: repeat(4, 1fr); }
.fp-filter-btn--apply { background: var(--red); color: #fff; border: none; }
.fp-filter-btn--apply:hover { background: var(--red-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(194,16,0,0.25); }

/* Home page split gallery: 50/50 - left 1 big, right 2x2 */
.swh-gallery-split .rfm-gallery { grid-template-columns: 1fr 1fr 1fr !important; grid-template-rows: 1fr 1fr; gap: 16px; }
.swh-gallery-split .rfm-gallery__item { height: 280px; }
.swh-gallery-split .rfm-gallery__item:first-child { grid-row: span 2; grid-column: span 1; height: 100% !important; }
/* Left big = 1fr of 3 cols is 33%. User wants 50/50: left image = full row 1+2 of first col, right side = 2 cols + 2 rows. Use 1.2fr 0.4fr 0.4fr */
.swh-gallery-split .rfm-gallery { grid-template-columns: 1fr 0.5fr 0.5fr !important; }
@media (max-width: 768px) {
  .swh-gallery-split .rfm-gallery { grid-template-columns: 1fr 1fr !important; grid-template-rows: auto; }
  .swh-gallery-split .rfm-gallery__item:first-child { grid-row: span 1; grid-column: span 2; }
  .swh-gallery-split .rfm-gallery__item { height: 200px; }
}

/* Mobile: flip column order (image first) */
@media (max-width: 900px) {
  .swh-flip-mobile > .e-con-inner { display: flex; flex-direction: column-reverse !important; }
}

/* Equal-width flex rows (careers, Our Mission pillars, BYOP) */
.swh-cb-row-equal > .e-con-inner { display: flex; flex-wrap: nowrap; gap: inherit; align-items: stretch; }
.swh-cb-row-equal > .e-con-inner > .elementor-widget, .swh-cb-row-equal > .e-con-inner > .e-con { flex: 1 1 0; min-width: 0; }
@media (max-width: 900px) {
  .swh-cb-row-equal > .e-con-inner { flex-wrap: wrap; }
  .swh-cb-row-equal > .e-con-inner > .elementor-widget, .swh-cb-row-equal > .e-con-inner > .e-con { flex: 1 1 calc(50% - 14px); min-width: calc(50% - 14px); }
}
@media (max-width: 600px) {
  .swh-cb-row-equal > .e-con-inner > .elementor-widget, .swh-cb-row-equal > .e-con-inner > .e-con { flex: 1 1 100%; min-width: 100%; }
}

/* Steps - no hover, no motion */
.steps-hover-vertical .rfm-step,
.steps-hover-vertical .rfm-step *,
.rfm-steps.steps-hover-vertical .rfm-step { transition: none !important; }
.steps-hover-vertical .rfm-step:hover,
.rfm-steps.steps-hover-vertical .rfm-step:hover { transform: none !important; box-shadow: none !important; margin: initial !important; }

/* Global social proof - 4.8 big white */
.rfm-tb__rating-num { font-family: var(--font-display); font-size: 24px; font-weight: 600; color: #fff; line-height: 1; }
.rfm-tb__rating-label { max-width: 68px; text-align: center; line-height: 1.25; white-space: normal; margin: 4px auto 0; }
.fp-card-img-placeholder { width: 100%; height: 240px; background: var(--gray-bg); }
.featured-fps-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 48px; flex-wrap: wrap; gap: 20px; }
.fp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.fp-card { background: var(--white); border-radius: 6px; overflow: hidden; border: 1px solid rgba(0,0,0,0.06); }
.fp-card:hover { box-shadow: 0 16px 48px rgba(0,0,0,0.12); }
.fp-card-img { position: relative; overflow: hidden; }
.fp-card-img img { width: 100%; height: 240px; object-fit: cover; transition: transform 0.5s; }
.fp-card:hover .fp-card-img img { transform: scale(1.04); }
.fp-card-badge { position: absolute; top: 14px; left: 14px; padding: 5px 12px; background: var(--red); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: 0.5px; border-radius: 2px; }
.fp-card-body { padding: 24px 24px 28px; }
.fp-card-name { font-family: var(--font-display); font-size: 22px; font-weight: 500; color: var(--black); margin-bottom: 12px; }
.fp-card-specs { display: flex; gap: 20px; margin-bottom: 12px; }
.fp-card-specs span { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--gray-dark); }
.fp-card-specs svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.fp-card-actions { display: flex; gap: 10px; }
.fp-card-btn-secondary { padding: 12px 14px; text-align: center; justify-content: center; white-space: nowrap; }

/* -- 13. FINANCING BAND -- */
.financing-band { background: var(--black); position: relative; overflow: hidden; }
.financing-band::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--red); }
.financing-band h2 { font-family: var(--font-display); font-size: clamp(28px, 3vw, 44px); font-weight: 500; color: #fff; line-height: 1.2; margin-bottom: 16px; }
.financing-band h2 em, .financing-band .section-heading em { font-style: italic; color: var(--red-light); }
.financing-band p { font-size: 15px; font-weight: 300; line-height: 1.75; color: rgba(255,255,255,0.75); max-width: 560px; }
.financing-band .rfm-sh__eyebrow { color: rgba(255,255,255,0.6); }
.financing-band .rfm-sh__eyebrow::before { background: rgba(255,255,255,0.3); }
.financing-band .btn-cta { background: var(--red); color: #fff; box-shadow: none; }
.financing-band .btn-cta:hover { background: var(--red-dark); }

/* -- 14. TESTIMONIALS -- */
.testimonials__header-top { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; gap: 24px; }

/* Gallery filter tabs */
.gallery-filter { display: flex; justify-content: center; gap: 8px; margin-bottom: 32px; }
.gallery-filter-btn {
  padding: 10px 24px; background: transparent; border: 1px solid rgba(0,0,0,0.12);
  border-radius: 4px; font-family: var(--font-body); font-size: 13px; font-weight: 600;
  letter-spacing: 0.5px; text-transform: uppercase; color: var(--gray-dark);
  cursor: pointer; transition: all 0.25s;
}
.gallery-filter-btn:hover { border-color: var(--red); color: var(--red); }
.gallery-filter-btn.active { background: var(--red); color: #fff; border-color: var(--red); }

/* -- 15. GALLERY + LIGHTBOX -- */
.gallery-preview-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 40px; }
.gallery-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: 280px 280px; gap: 12px; }
.gallery-mosaic__item:nth-child(1) { grid-column: 1 / 3; }
.gallery-mosaic__item:nth-child(4) { grid-column: 1; grid-row: 2; }
.gallery-mosaic__item:nth-child(5) { grid-column: 2; grid-row: 2; }
.gallery-mosaic__item:nth-child(6) { grid-column: 3 / 5; grid-row: 2; }
.gallery-mosaic__item { position: relative; overflow: hidden; border-radius: 8px; cursor: pointer; }
.gallery-mosaic__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.35); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s; }
.gallery-mosaic__item:hover .gallery-mosaic__overlay { opacity: 1; }
.gallery-mosaic__overlay span { color: #fff; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; border: 1px solid rgba(255,255,255,0.5); padding: 8px 20px; border-radius: 4px; }
.gallery-mosaic__item img { transition: transform 0.7s var(--ease); }
.gallery-mosaic__item:hover img { transform: scale(1.06); }
.gallery-mosaic__item[data-lightbox] { cursor: pointer; }
.gallery-mosaic__zoom { position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1rem; color: #fff; opacity: 0; transition: opacity 0.3s, transform 0.3s; transform: scale(0.8); }
.gallery-mosaic__item:hover .gallery-mosaic__zoom { opacity: 1; transform: scale(1); }
/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }
.lightbox.open { opacity: 1; pointer-events: auto; }
.lightbox__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.92); backdrop-filter: blur(6px); }
.lightbox__inner { position: relative; z-index: 1; max-width: 90vw; max-height: 90vh; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.lightbox__img { max-width: 90vw; max-height: 80vh; object-fit: contain; border-radius: 6px; box-shadow: 0 32px 80px rgba(0,0,0,0.6); transform: scale(0.95); transition: transform 0.35s ease, opacity 0.15s ease; }
.lightbox.open .lightbox__img { transform: scale(1); }
.lightbox__caption { font-family: var(--font-display); font-size: 1rem; font-style: italic; color: rgba(255,255,255,0.6); text-align: center; }
.lightbox__close, .lightbox__prev, .lightbox__next { position: absolute; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.15); color: #fff; cursor: pointer; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background 0.2s, transform 0.2s; z-index: 2; }
.lightbox__close { top: 20px; right: 20px; width: 44px; height: 44px; font-size: 1.2rem; }
.lightbox__prev { left: 20px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 2rem; line-height: 1; }
.lightbox__next { right: 20px; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 2rem; line-height: 1; }
.lightbox__prev:hover, .lightbox__next:hover, .lightbox__close:hover { background: var(--red); color: #fff; }

/* -- 16. LEAD MAGNET + FORMS -- */
.boyl-label { display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; background: var(--red); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; border-radius: 50px; margin-bottom: 20px; }
.boyl-label svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; }
.form-privacy { font-size: 11px; color: var(--gray-dark); text-align: center; margin-top: 10px; }
.form-next-step { font-size: 12px; color: var(--gray-dark); margin-top: 12px; display: flex; align-items: flex-start; gap: 8px; background: rgba(194,16,0,0.04); border-left: 3px solid var(--red); padding: 10px 12px; border-radius: 0 3px 3px 0; }
.form-next-step strong { color: var(--red); }
.form-next-step .elementor-icon-box-description em { display: inline; }
.form__trust { display: flex; justify-content: center; gap: 16px; border-top: 1px solid rgba(255,255,255,0.08); }
.form__trust-item { display: flex; align-items: center; gap: 4px; font-size: 0.68rem; color: #767676; font-weight: 500; }
.form__rating-strip { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; padding: 12px 16px; background: var(--black); border-radius: 8px; transition: transform 0.3s; }
.form__rating-strip:hover { transform: translateY(-2px); }
.form__rating-item { text-align: center; transition: transform 0.3s; }
.form__rating-item:hover { transform: translateY(-3px); }
.form__rating-item:hover .form__rating-num { color: var(--red-light); }
.form__rating-item:hover .form__rating-label { color: rgba(255,255,255,0.8); }
.form__rating-stars { color: #F59E0B; font-size: 0.75rem; letter-spacing: 1px; }
.form__rating-num { color: #fff; font-size: 0.85rem; font-weight: 700; font-family: var(--font-display); transition: color 0.2s; }
.form__rating-label { color: rgba(255,255,255,0.5); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; margin-top: 2px; transition: color 0.2s; }
.form__rating-divider { width: 1px; height: 28px; background: rgba(255,255,255,0.12); }

/* -- 17. FAQ -- */
.faq__phone-cta { display: inline-flex; align-items: center; gap: 10px; font-size: 1.15rem; font-weight: 600; font-family: var(--font-display); color: var(--black); text-decoration: none; transition: color 0.2s, transform 0.25s; }
.faq__phone-cta:hover { color: var(--red); transform: translateY(-2px); }
.faq__phone-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(194,16,0,0.08); color: var(--red); flex-shrink: 0; }
.faq__contact-btn { display: block; margin-top: 16px; width: fit-content; }

/* -- 18. FOOTER -- */
.footer { background: var(--black); color: rgba(255,255,255,0.7); padding: 0; }
#site-footer .rfm-fbrand__desc, #site-footer .rfm-finfo__addr, #site-footer .rfm-finfo__name { color: rgba(255,255,255,0.7); }
/* Footer column 1 padding */
#site-footer > .e-con-inner > .e-con:first-child { padding-right: 60px; }
/* Column 5 Follow Us header - match all column headers */
#col_005 h4 { font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 20px; line-height: 1.3; }
.footer-bbb-seal { margin-top: 16px; }
.footer-bbb-seal img { height: 48px; width: auto; }
#col_005 .rfm-finfo__name, #col_005 .rfm-finfo__addr { text-align: right; }
#col_005 .rfm-finfo__phone { justify-content: flex-end; }
#site-footer .rfm-finfo__name { margin-top: 14px; }
/* Footer nav menu */
#site-footer .elementor-nav-menu--layout-vertical li { margin: 0; padding: 0 0 16px 16px; position: relative; }
#site-footer .elementor-nav-menu--layout-vertical li::before { content: '-'; position: absolute; left: 0; top: 4px; color: rgba(255,255,255,0.25); font-size: 13px; font-weight: 300; }
#site-footer .elementor-nav-menu--layout-vertical.elementor-nav-menu--main .elementor-item { font-family: var(--font-body); font-size: 14px !important; font-weight: 300 !important; color: rgba(255,255,255,0.65); padding: 0 0 2px 0 !important; position: relative; display: inline-flex !important; align-items: center; gap: 6px; width: fit-content !important; transition: color 0.2s, transform 0.25s var(--ease); }
#site-footer .elementor-nav-menu--layout-vertical .elementor-item::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: var(--red); transition: width 0.3s var(--ease); }
#site-footer .elementor-nav-menu--layout-vertical .elementor-item:hover { color: #fff; opacity: 1; transform: translateY(-2px); }
#site-footer .elementor-nav-menu--layout-vertical .elementor-item:hover::after { width: 100%; }
#site-footer .e--pointer-underline .elementor-item::before, #site-footer .e--pointer-underline .elementor-item::after { display: none; }
#site-footer .elementor-nav-menu--layout-vertical .elementor-item::before { display: none; }
#site-footer .elementor-nav-menu--layout-vertical .elementor-item::after { display: block; }
#site-footer .elementor-nav-menu--layout-vertical .elementor-nav-menu { margin-top: -16px; gap: 0; }
/* Footer social icons */
#site-footer .rfm-social__link { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.5); transition: all 0.3s, transform 0.25s; flex-shrink: 0; }
#site-footer .rfm-social__link:hover { background: var(--red); border-color: var(--red); color: #fff; transform: translateY(-3px); box-shadow: 0 6px 20px rgba(194,16,0,0.3); }
#site-footer .rfm-social__link svg { width: 16px; height: 16px; fill: currentColor; stroke: currentColor; display: block; transition: all 0.3s; }
.footer svg:not([width]) { width: 14px; height: 14px; }
/* Footer bottom bar */
.rfm-fbot { display: flex; align-items: center; justify-content: space-between; padding: 24px 0; font-size: 0.72rem; color: rgba(255,255,255,0.25); }
.rfm-fbot a { color: rgba(255,255,255,0.35); text-decoration: none; transition: color 0.2s, opacity 0.2s; }
.rfm-fbot a:hover { color: rgba(255,255,255,0.7); }
.rfm-fbot__left { display: flex; align-items: center; gap: 4px; }
.rfm-fbot__right { display: flex; align-items: center; gap: 16px; }
.rfm-fbot__right a { position: relative; padding-bottom: 1px; }
.rfm-fbot__right a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 1px; background: var(--red); transition: width 0.3s var(--ease); }
.rfm-fbot__right a:hover::after { width: 100%; }
.rfm-fbot__sep { opacity: 0.35; }
.rfm-fbot__right a:last-child { opacity: 0.5; transition: opacity 0.2s; }
.rfm-fbot__right a:last-child:hover { opacity: 1; }
/* Footer social proof badges */
#site-footer .rfm-spb { display: flex; align-items: stretch; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 0 auto; }
#site-footer .rfm-spb__item { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px 32px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; transition: all 0.35s var(--ease); cursor: default; flex: 1 1 0%; min-width: 0; }
#site-footer .rfm-spb__item:hover { background: rgba(255,255,255,0.06); border-color: rgba(194,16,0,0.15); transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,0.3); }
#site-footer .rfm-spb__icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
#site-footer .rfm-spb__stars { color: #F59E0B; font-size: 0.6rem; letter-spacing: 2px; line-height: 1; margin-bottom: 2px; }
#site-footer .rfm-spb__name { font-size: 0.78rem; font-weight: 600; color: rgba(255,255,255,0.8); line-height: 1.2; margin-bottom: 1px; }
#site-footer .rfm-spb__score { font-size: 0.65rem; color: rgba(255,255,255,0.5); font-weight: 400; }
#site-footer .footer-bottom-wrap { --padding-top: 0px; padding-top: 0; padding-bottom: 16px; }
/* Footer column headers */
#site-footer .rfm-sh__heading, #site-footer .rfm-finfo__title { font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: rgba(255,255,255,0.4); margin-bottom: 20px; line-height: 1.3; }
#site-footer .rfm-sh__eyebrow { display: none; }
#site-footer .rfm-sh { margin-bottom: 0; }

/* -- 19. FP MODAL -- */
.fp-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; }
.fp-modal.open { opacity: 1; visibility: visible; }
.fp-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); }
.fp-modal__card { position: relative; background: #fff; border-radius: 12px; padding: 40px 36px; max-width: 480px; width: 90%; max-height: 90vh; overflow-y: auto; box-shadow: 0 24px 80px rgba(0,0,0,0.3); transform: translateY(20px); transition: transform 0.3s; }
.fp-modal.open .fp-modal__card { transform: translateY(0); }
.fp-modal__close { position: absolute; top: 16px; right: 16px; background: none; border: none; font-size: 1.5rem; color: var(--gray); cursor: pointer; transition: color 0.2s; line-height: 1; }
.fp-modal__close:hover { color: var(--black); }
.fp-modal__title { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--black); margin-bottom: 8px; }
.fp-modal__sub { font-size: 0.82rem; color: var(--gray); margin-bottom: 24px; line-height: 1.5; }
.fp-modal__card .rfm-sh__heading { color: var(--black); font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; margin-bottom: 8px; }
.fp-modal__card .rfm-sh__desc { color: var(--gray); font-size: 0.82rem; line-height: 1.5; }
.fp-modal__card .elementor-field-textual, .fp-modal__card .elementor-select-wrapper select { font-family: var(--font-body); font-size: 14px; }
.fp-modal__proof { display: flex; align-items: center; justify-content: center; gap: 20px; background: var(--black); border-radius: 0 0 12px 12px; margin: 24px -36px -40px; padding: 18px 24px; }
.fp-modal__proof-item { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.fp-modal__proof-stars { color: #F59E0B; font-size: 12px; letter-spacing: 1px; }
.fp-modal__proof-num { color: #fff; font-family: var(--font-display); font-size: 20px; font-weight: 600; line-height: 1.1; }
.fp-modal__proof-label { color: rgba(255,255,255,0.5); font-size: 11px; font-weight: 500; letter-spacing: 0.5px; }
.fp-modal__proof-divider { width: 1px; height: 36px; background: rgba(255,255,255,0.12); }

/* -- 20. BACK TO TOP + MOBILE CTA BAR -- */
.back-to-top { position: fixed; bottom: 16px; left: 42px; z-index: 999; width: 44px; height: 44px; border: none; background: rgba(26,26,26,0.85); backdrop-filter: blur(8px); border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s, bottom 0.3s; }
.back-to-top.visible { opacity: 1; visibility: visible; }
.back-to-top__ring { position: absolute; inset: 0; }
.back-to-top__arrow { color: #fff; position: relative; z-index: 1; }
.back-to-top:hover { transform: translateY(-4px); box-shadow: 0 8px 28px rgba(0,0,0,0.4); }
.back-to-top:hover .back-to-top__arrow { color: var(--red-light); }
.back-to-top__progress { transition: stroke-dashoffset 0.1s linear; }
/* Hidden by default - only show on mobile */
.mobile-cta-bar { display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 998; background: #fff; border-top: 1px solid rgba(0,0,0,0.1); box-shadow: 0 -4px 20px rgba(0,0,0,0.1); padding: 10px 12px; gap: 8px; }
.mobile-cta-bar__btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 14px 12px; border-radius: 8px; font-family: var(--font-body); font-size: 13px; font-weight: 800; letter-spacing: 0.5px; text-transform: uppercase; text-decoration: none; border: 1.5px solid; cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; }
.mobile-cta-bar__btn--call { background: #fff; color: var(--black); border-color: rgba(0,0,0,0.15); }
.mobile-cta-bar__btn--call:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.1); }
.mobile-cta-bar__btn--cta { background: var(--red); color: #fff; border-color: var(--red); }
.mobile-cta-bar__btn--cta:hover { background: var(--red-dark); border-color: var(--red-dark); transform: translateY(-2px); box-shadow: 0 6px 16px rgba(194,16,0,0.3); }
/* Legacy float-cta hidden (replaced by mobile-cta-bar) */
.float-cta { display: none !important; }

/* -- 21. RFM WIDGET OVERRIDES -- */
#swh-stats { background: var(--red); --rfm-stats-text: #fff; --rfm-stats-label: #fff; --rfm-stats-divider: rgba(255,255,255,0.25); }
.rfm-stats__item { transition: transform 0.3s, background 0.3s; padding: 40px 32px; text-align: center; }
.rfm-stats__item:hover { transform: translateY(-3px); background: rgba(255,255,255,0.08); }
.rfm-stats__number { transition: transform 0.3s; }
.rfm-stats__item:hover .rfm-stats__number { transform: translateY(-2px); }
/* Card box */
.rfm-cb__icon-text { font-family: var(--font-display); font-size: 2.5rem; font-weight: 300; color: var(--red); opacity: 0.35; line-height: 1; transition: opacity 0.3s; }
.rfm-cb:hover .rfm-cb__icon-text { opacity: 1; }
.rfm-cb__icon { margin-bottom: 0; }
.rfm-cb__text-1 { font-family: var(--font-body); font-size: 1.15rem; font-weight: 600; color: var(--black); margin-bottom: 8px; }
#swh-paths .rfm-cb__icon { display: inline; margin-right: 16px; }
#swh-paths .rfm-cb__text-1 { display: inline; }
.rfm-cb { position: relative; overflow: hidden; }
.rfm-cb::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform 0.4s var(--ease); z-index: 1; }
.rfm-cb:hover::before { transform: scaleX(1); }
/* Step process */
.rfm-step { display: flex; gap: 28px; padding: 28px 0; border-bottom: 1px solid rgba(0,0,0,0.06); transition: transform 0.35s var(--ease); }
.rfm-step:last-child { border-bottom: none; }
.rfm-step:hover { transform: translateY(-2px); }
.rfm-step__num { font-family: var(--font-display); font-size: 32px; font-weight: 300; color: #fff; opacity: 0.35; min-width: 48px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; line-height: 1; padding: 0 0 10px 0; transition: opacity 0.3s; }
.rfm-step:hover .rfm-step__num { opacity: 1; }
.rfm-step__connector { display: none; }
.rfm-step__content { min-width: 0; flex: 1; transition: transform 0.35s var(--ease); }
.rfm-step:hover .rfm-step__content { transform: translateY(-4px); }
.rfm-step__title { font-family: var(--font-body); font-size: 1.15rem; font-weight: 600; color: var(--black); margin-bottom: 6px; }
.rfm-step__desc { font-size: 16px; line-height: 1.75; color: var(--gray-dark); font-weight: 300; }
/* Image badge */
.rfm-ibadge { transition: transform 0.35s var(--ease); }
.rfm-ibadge:hover { transform: translateY(-4px); }
.rfm-ibadge__badge { transition: transform 0.35s var(--ease), box-shadow 0.35s; }
.rfm-ibadge:hover .rfm-ibadge__badge { transform: scale(1.12); box-shadow: 0 8px 32px rgba(194,16,0,0.3); }
/* Image stack */
.rfm-istack { position: relative; height: 520px; width: 100%; }
.rfm-istack__main, .rfm-istack__accent { position: absolute; object-fit: cover; border-radius: 8px; transition: transform 0.4s var(--ease), box-shadow 0.4s; max-width: none; }
.rfm-istack__main { top: 0; left: 0; width: 75%; height: 364px; box-shadow: 0 12px 40px rgba(0,0,0,0.2); z-index: 1; }
.rfm-istack__accent { bottom: 0; right: 0; width: 58%; height: 286px; border: 6px solid #fff; box-shadow: 0 12px 40px rgba(0,0,0,0.15); z-index: 2; }
.rfm-istack__main:hover, .rfm-istack__accent:hover { transform: translateY(-6px) scale(1.02); box-shadow: 0 20px 48px rgba(0,0,0,0.3); }
.rfm-istack__badge { position: absolute; top: 50%; left: 55%; transform: translate(-50%, -50%); width: 110px; height: 110px; border-radius: 50%; background: var(--red); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; z-index: 3; box-shadow: 0 8px 32px rgba(194,16,0,0.35); transition: transform 0.35s var(--ease), box-shadow 0.35s; }
.rfm-istack__badge:hover { transform: translate(-50%, -50%) scale(1.12); box-shadow: 0 16px 48px rgba(194,16,0,0.5); }
.rfm-istack__badge-num { font-family: var(--font-display); font-size: 2rem; font-weight: 700; line-height: 1; }
.rfm-istack__badge-label { font-size: 0.55rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3; margin-top: 2px; }
#swh-process { overflow: visible; }
/* Testimonial card */
.testimonial-card { border-color: transparent; transition: transform 0.35s var(--ease), box-shadow 0.35s, border-color 0.3s; }
/* FAQ accordion */
.rfm-faq__item { transition: transform 0.25s, box-shadow 0.25s, background 0.2s; border-radius: 6px; padding: 4px 12px; margin: 0 -12px; }
.rfm-faq__item:hover { transform: translateY(-2px); box-shadow: 0 4px 20px rgba(0,0,0,0.06); background: rgba(0,0,0,0.02); }
.rfm-faq__question { transition: background 0.2s; border-radius: 6px; }
.rfm-faq__question:hover { background: rgba(194,16,0,0.03); }
.rfm-faq__icon { transition: all 0.35s var(--ease); }
.rfm-faq__icon svg { transition: stroke 0.3s, transform 0.35s var(--ease); }
.rfm-faq__question:hover .rfm-faq__icon svg { stroke: var(--red); }
.rfm-faq__item.is-open .rfm-faq__icon svg { transform: rotate(45deg); stroke: var(--red); }
/* Testimonial truncation */
.rfm-test__quote { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; transition: all 0.3s; }
.rfm-test.expanded .rfm-test__quote { -webkit-line-clamp: unset; }

/* -- 22. READY CTA SECTION -- */
.three-path { background: var(--off-white); }
.gallery-preview { background: var(--off-white); }
.boyl-seminar { background: var(--off-white); }
#swh-ready { background: var(--black-soft); background-image: linear-gradient(135deg, rgba(194,16,0,0.1) 0%, transparent 50%); position: relative; overflow: hidden; }
#swh-ready::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--red); }
#swh-ready .rfm-cta { text-align: center; padding: 100px 48px; max-width: 720px; margin: 0 auto; }
#swh-ready .rfm-cta__eyebrow { color: rgba(255,255,255,0.6); opacity: 1; font-size: 11px; letter-spacing: 4px; font-weight: 600; }
#swh-ready .rfm-cta__eyebrow::before { content: ''; display: inline-block; width: 28px; height: 2px; background: var(--red); vertical-align: middle; margin-right: 12px; }
#swh-ready .rfm-cta__heading { color: #fff; font-family: var(--font-display); font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 500; line-height: 1.2; margin-bottom: 20px; }
#swh-ready .rfm-cta__heading em { color: var(--red-light); font-style: italic; }
.rfm-cta--em-block .rfm-cta__heading em { display: block; }
#swh-ready .rfm-cta__desc { color: rgba(255,255,255,0.5); font-size: 0.92rem; line-height: 1.75; font-weight: 300; margin-left: auto; margin-right: auto; max-width: 560px; }
#swh-ready .rfm-cta__buttons { justify-content: center; gap: 16px; margin-top: 8px; }
/* Three-path centering */
.three-path-header { text-align: center; margin-bottom: 48px; }
.three-path-header .section-eyebrow { justify-content: center; }
.three-path-header .section-eyebrow::before { display: none; }
.three-path-header .section-desc { margin: 0 auto; text-align: center; }

/* -- 23. SCROLL REVEAL -- */
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 1.2s var(--ease-out), transform 1.2s var(--ease-out); }
.elementor-element-edit-mode.reveal { opacity: 1; transform: none; transition: none; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.15s; }
.reveal-delay-2 { transition-delay: 0.3s; }
.reveal-delay-3 { transition-delay: 0.45s; }
@keyframes fadeSlideUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } }

/* -- 24. STICKY COLUMNS -- */
#swh-hero-left { position: sticky !important; top: 100px !important; align-self: flex-start !important; overflow: visible; }
#swh-process-right { position: sticky !important; top: 120px !important; align-self: flex-start !important; overflow: visible; }
#get-pricing-left { position: sticky !important; top: 120px !important; align-self: flex-start !important; }
#swh-faq-left { position: sticky !important; top: 120px !important; align-self: flex-start !important; }
#swh-faq-left, #get-pricing-right, #swh-process-right,
.fin-faq .faq-preview-inner > div:first-child,
.fin-overview .fin-overview-inner > div:last-child,
.mission-section .mission-inner > .mission-img,
.mission-section.alt .mission-inner > div:last-child,
.process-overview .process-overview-inner > div:last-child { position: sticky; top: 100px; align-self: flex-start; }

/* -- 24b. FEATURE STRIP (reusable) -- */
.swh-feature-strip{display:grid;grid-template-columns:repeat(3,1fr);background:#fff}
.swh-fs-item{padding:52px 40px;display:flex;align-items:flex-start;gap:20px;border-right:1px solid rgba(0,0,0,.06);transition:background .4s;position:relative}
.swh-fs-item:last-child{border-right:none}
.swh-fs-item:hover{background:var(--off-white)}
.swh-fs-item::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .4s}
.swh-fs-item:hover::after{transform:scaleX(1)}
.swh-fs-icon{flex-shrink:0;width:48px;height:48px;border-radius:50%;background:rgba(194,16,0,.06);display:flex;align-items:center;justify-content:center}
.swh-fs-icon svg{width:22px;height:22px;stroke:var(--red);fill:none;stroke-width:1.5}
.swh-fs-title{font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--black);margin-bottom:6px}
.swh-fs-desc{font-size:16px;line-height:1.65;color:var(--gray-dark);font-weight:300}
@media(max-width:768px){.swh-feature-strip{grid-template-columns:1fr}.swh-fs-item{border-right:none;border-bottom:1px solid rgba(0,0,0,.06)}}

/* -- 25. INNER PAGES -- */
/* Page Hero */
#page-hero { position: relative; }
body:not(.home):not(.single-floor-plans) #page-hero { --overlay-opacity: 1; }
body:not(.home):not(.single-floor-plans) #page-hero::before { background: rgba(0,0,0,0.55); opacity: 1; z-index: 1; background-size: unset; }
body:not(.home):not(.single-floor-plans) #page-hero > .e-con-inner { position: relative; z-index: 2; }
#page-cta { position: relative; }
#page-cta::before { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.5); z-index: 1; }
#page-cta > .e-con-inner { position: relative; z-index: 2; }
#page-hero::before { content: ''; position: absolute; inset: 0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 4"><rect width="1" height="1" fill="rgba(255,255,255,0.03)"/></svg>'); background-size: 4px 4px; opacity: 0.12; }
#page-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: var(--red); z-index: 10; }
.page-hero-breadcrumb { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 20px; }
.page-hero-breadcrumb a { color: rgba(255,255,255,0.5); transition: color 0.2s; }
.page-hero-breadcrumb a:hover { color: #fff; }
.page-hero-breadcrumb span { color: rgba(255,255,255,0.3); }
/* About */
.about-story-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.about-story-img { position: relative; border-radius: 6px; overflow: hidden; }
.about-story-img img { width: 100%; height: 520px; object-fit: cover; }
.about-story-badge { position: absolute; bottom: -20px; right: -16px; z-index: 2; background: var(--red); color: #fff; padding: 24px 28px; border-radius: 4px; text-align: center; box-shadow: 0 12px 36px rgba(194,16,0,0.3); }
.about-story-badge .num { font-family: var(--font-display); font-size: 42px; font-weight: 500; line-height: 1; }
.about-story-badge .lbl { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; opacity: 0.8; }
.about-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.about-value-card { background: var(--white); border-radius: 6px; padding: 40px 32px; border: 1px solid rgba(0,0,0,0.04); }
.about-value-icon { width: 56px; height: 56px; border-radius: 50%; margin-bottom: 20px; background: rgba(194,16,0,0.06); display: flex; align-items: center; justify-content: center; }
.about-value-icon svg { width: 24px; height: 24px; stroke: var(--red); fill: none; stroke-width: 1.5; }
.about-value-title { font-family: var(--font-display); font-size: 22px; font-weight: 600; color: var(--black); margin-bottom: 10px; }
.about-value-desc { font-size: 14px; line-height: 1.7; color: var(--gray-dark); font-weight: 300; }
.about-links-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.about-link-card { background: var(--off-white); border-radius: 6px; padding: 36px 28px; border: 1px solid rgba(0,0,0,0.04); display: flex; flex-direction: column; }
.about-link-title { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--black); margin-bottom: 8px; }
.about-link-desc { font-size: 14px; line-height: 1.7; color: var(--gray-dark); font-weight: 300; margin-bottom: 20px; flex: 1; }
.about-link-cta { font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--red); display: inline-flex; align-items: center; gap: 6px; transition: gap 0.3s; }
.about-link-card:hover .about-link-cta { gap: 10px; }
.about-link-cta svg { width: 14px; height: 14px; }
/* Locations */
.loc-intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.loc-intro-grid img { width: 100%; border-radius: 6px; }
.loc-info-bar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.loc-info-card { background: var(--white); border-radius: 6px; padding: 32px 28px; border: 1px solid rgba(0,0,0,0.04); text-align: center; }
.loc-info-icon { width: 48px; height: 48px; border-radius: 50%; margin: 0 auto 16px; background: rgba(194,16,0,0.06); display: flex; align-items: center; justify-content: center; }
.loc-info-icon svg { width: 20px; height: 20px; stroke: var(--red); fill: none; stroke-width: 1.5; }
.loc-info-label { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gray); margin-bottom: 6px; }
.loc-info-value { font-size: 15px; font-weight: 400; color: var(--black); line-height: 1.5; }
.loc-info-value a { color: var(--red); font-weight: 600; }
.loc-area-tags { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.loc-area-tag { padding: 12px 16px; border: 1px solid rgba(0,0,0,0.08); border-radius: 4px; font-size: 14px; color: var(--charcoal); transition: all 0.2s; text-align: center; }
.loc-area-tag:hover { border-color: var(--red); color: var(--red); }
.loc-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.loc-why-card { border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; padding: 32px 28px; transition: all 0.3s; }
.loc-why-card:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.15); }
.loc-why-title { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: #fff; margin-bottom: 10px; }
.loc-why-desc { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.6); font-weight: 300; }
/* Contact */
.contact-layout { display: grid; grid-template-columns: 1fr 400px; gap: 60px; }
.contact-sidebar { background: var(--off-white); border-radius: 6px; padding: 32px; border: 1px solid rgba(0,0,0,0.04); height: fit-content; }
.office-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.office-card { background: var(--white); border-radius: 6px; overflow: hidden; border: 1px solid rgba(0,0,0,0.04); }
.office-card-img { aspect-ratio: 16/10; overflow: hidden; }
.office-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.office-card:hover .office-card-img img { transform: scale(1.06); }
.office-card-body { padding: 24px 20px; }
.office-card-name { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--black); margin-bottom: 8px; }
.office-card-addr { font-size: 13px; color: var(--gray-dark); line-height: 1.5; margin-bottom: 12px; }
.office-card-phone { font-size: 14px; font-weight: 600; color: var(--red); }
/* CTA banner (red) */
.cta-banner { background: var(--red); }
.cta-banner .rfm-sh__eyebrow { color: rgba(255,255,255,0.7); }
.cta-banner .rfm-sh__eyebrow::before { background: rgba(255,255,255,0.3); }
/* Mission */
.mission-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.mission-inner.reverse { direction: rtl; }
.mission-inner.reverse > * { direction: ltr; }
.mission-img { border-radius: 6px; overflow: hidden; }
.mission-img img { width: 100%; height: 440px; object-fit: cover; }
.mission-pillars-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.mission-pillar { padding: 36px 28px; border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; transition: all 0.3s; text-align: center; }
.mission-pillar:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.15); }
.mission-pillar-num { font-family: var(--font-display); font-size: 44px; font-weight: 400; color: rgba(194,16,0,0.5); line-height: 1; margin-bottom: 16px; }
.mission-pillar-title { font-size: 16px; font-weight: 600; color: #fff; margin-bottom: 8px; }
.mission-pillar-desc { font-size: 13px; line-height: 1.65; color: rgba(255,255,255,0.5); font-weight: 300; }
/* Process */
.trust-strip { background: var(--off-white); border-bottom: 1px solid rgba(0,0,0,0.06); }
.trust-strip-inner { display: flex; align-items: stretch; border-left: 1px solid rgba(0,0,0,0.06); }
.trust-item { flex: 1; display: flex; align-items: center; gap: 16px; padding: 28px 36px; border-right: 1px solid rgba(0,0,0,0.06); transition: background 0.3s; }
.trust-item:hover { background: var(--white); }
.trust-icon { width: 42px; height: 42px; background: rgba(194,16,0,0.06); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.trust-icon svg { width: 18px; height: 18px; stroke: var(--red); fill: none; stroke-width: 1.5; }
.trust-label { font-size: 13px; font-weight: 600; color: var(--black); margin-bottom: 2px; }
.trust-desc { font-size: 12px; color: var(--gray); font-weight: 300; line-height: 1.4; }
.process-overview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.process-overview-img { position: relative; border-radius: 4px; overflow: hidden; }
.process-overview-img img { width: 100%; height: 520px; object-fit: cover; }
.process-overview-badge { position: absolute; bottom: 32px; left: -20px; z-index: 2; background: var(--red); color: #fff; padding: 22px 28px; border-radius: 3px; box-shadow: 0 8px 32px rgba(194,16,0,0.35); }
.process-overview-badge .num { font-family: var(--font-display); font-size: 36px; font-weight: 500; line-height: 1; }
.process-overview-badge .lbl { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; opacity: 0.8; }
.step-card { display: grid; grid-template-columns: 80px 1fr 420px; gap: 0; border-top: 1px solid rgba(0,0,0,0.07); transition: background 0.3s; }
.step-card:hover { background: var(--off-white); }
.step-num-col { display: flex; align-items: flex-start; justify-content: center; padding-top: 48px; }
.step-num-circle { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--red); display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-size: 20px; font-weight: 500; color: var(--red); }
.step-body { padding: 48px 40px; }
.step-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--red); margin-bottom: 12px; }
.step-title { font-family: var(--font-display); font-size: 28px; font-weight: 600; color: var(--black); margin-bottom: 14px; }
.step-desc { font-size: 15px; font-weight: 300; line-height: 1.75; color: var(--gray-dark); margin-bottom: 20px; }
.step-bullets { list-style: none; padding: 0; }
.step-bullets li { position: relative; padding-left: 20px; font-size: 14px; font-weight: 300; color: var(--gray-dark); line-height: 1.7; margin-bottom: 6px; }
.step-bullets li::before { content: ''; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.step-aside { padding: 48px 32px; border-left: 1px solid rgba(0,0,0,0.06); background: var(--off-white); }
.step-aside-label { font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--gray); margin-bottom: 12px; }
.step-aside-text { font-size: 13px; font-weight: 300; line-height: 1.7; color: var(--gray-dark); margin-bottom: 14px; }
.step-aside-highlight { font-size: 13px; font-weight: 500; color: var(--black); line-height: 1.5; }
.step-aside-highlight a { color: var(--red); }
.financing-callout { padding: 80px 0; background: var(--black); color: #fff; }
.financing-callout-inner { display: grid; grid-template-columns: 1fr auto; gap: 60px; align-items: center; }
.financing-callout-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--red-light); margin-bottom: 16px; }
.financing-callout h2 { font-family: var(--font-display); font-size: clamp(28px, 3vw, 40px); font-weight: 500; color: #fff; line-height: 1.2; margin-bottom: 14px; }
.financing-callout h2 em { font-style: italic; color: var(--red-light); }
.financing-callout p { font-size: 15px; font-weight: 300; line-height: 1.75; color: rgba(255,255,255,0.6); max-width: 560px; }
.financing-callout-actions { display: flex; flex-direction: column; gap: 12px; }
.faq-preview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: flex-start; }
.faq-wrap { display: flex; flex-direction: column; }
.faq-item { border-bottom: 1px solid rgba(0,0,0,0.07); }
.faq-btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; background: none; border: none; cursor: pointer; text-align: left; }
.faq-q { font-size: 15px; font-weight: 500; color: var(--black); transition: color 0.3s ease; }
.faq-chevron { width: 16px; height: 16px; stroke: var(--gray); fill: none; stroke-width: 2; flex-shrink: 0; transition: transform 0.3s ease, stroke 0.3s ease; }
.faq-btn:hover .faq-q { color: var(--red); }
.faq-item.open .faq-chevron { transform: rotate(180deg); stroke: var(--red); }
.faq-item.open .faq-q { color: var(--red); }
.faq-answer { max-height: 0; overflow: hidden; padding: 0; font-size: 14px; font-weight: 300; color: var(--gray-dark); line-height: 1.75; max-width: 540px; transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s ease; }
.faq-item.open .faq-answer { padding: 0 0 22px; }
/* Financing */
.fin-highlights-inner { display: grid; grid-template-columns: repeat(3, 1fr); }
.fin-highlight { padding: 48px 40px; display: flex; align-items: flex-start; gap: 20px; border-right: 1px solid rgba(0,0,0,0.06); transition: background 0.3s; }
.fin-highlight:last-child { border-right: none; }
.fin-highlight:hover { background: var(--white); }
.fin-highlight-icon { width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; background: rgba(194,16,0,0.06); display: flex; align-items: center; justify-content: center; }
.fin-highlight-icon svg { width: 22px; height: 22px; stroke: var(--red); fill: none; stroke-width: 1.5; }
.fin-highlight-title { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--black); margin-bottom: 6px; }
.fin-highlight-desc { font-size: 14px; line-height: 1.65; color: var(--gray-dark); font-weight: 300; }
.fin-overview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.fin-overview-img { position: relative; border-radius: 6px; overflow: hidden; }
.fin-overview-img img { width: 100%; height: 480px; object-fit: cover; }
.fin-overview-badge { position: absolute; bottom: -20px; right: -16px; z-index: 2; background: var(--red); color: #fff; padding: 22px 28px; border-radius: 4px; text-align: center; box-shadow: 0 10px 36px rgba(194,16,0,0.35); }
.fin-overview-badge .num { font-family: var(--font-display); font-size: 36px; font-weight: 500; line-height: 1; }
.fin-overview-badge .lbl { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; opacity: 0.85; }
.fin-how-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.fin-how-card { background: var(--white); border-radius: 6px; padding: 36px 28px; border: 1px solid rgba(0,0,0,0.04); }
.fin-how-num { font-family: var(--font-display); font-size: 42px; font-weight: 500; color: rgba(194,16,0,0.12); line-height: 1; margin-bottom: 16px; }
.fin-how-title { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--black); margin-bottom: 8px; }
.fin-how-desc { font-size: 14px; line-height: 1.7; color: var(--gray-dark); font-weight: 300; }
.fin-faq-inner { display: grid; grid-template-columns: 380px 1fr; gap: 80px; }
/* FAQ page */
.faq-page { padding: 80px 0; }
.faq-page.alt { background: var(--gray-bg); }
.faq-category-label { margin-bottom: 12px; }
.faq-category-title { font-family: var(--font-display); font-size: clamp(26px, 3vw, 38px); font-weight: 500; line-height: 1.15; color: var(--black); margin-bottom: 32px; }
.faq-category-title em { font-style: italic; color: var(--red); }
/* BYOP */
.byop-overview-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.byop-overview-img img { width: 100%; height: 480px; object-fit: cover; border-radius: 4px; }
.byop-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.byop-card { background: var(--white); border-radius: 6px; padding: 40px 32px; text-align: center; border: 1px solid rgba(0,0,0,0.06); }
.byop-card-icon { margin-bottom: 20px; }
.byop-card-icon svg { width: 40px; height: 40px; stroke: var(--red); }
.byop-card-title { font-size: 16px; font-weight: 600; color: var(--black); margin-bottom: 10px; }
.byop-card-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--gray-dark); }
.byop-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 48px; }
.byop-step { padding: 32px 24px; border-top: 3px solid var(--red); }
.byop-step-num { font-family: var(--font-display); font-size: 36px; font-weight: 500; color: rgba(0,0,0,0.08); margin-bottom: 16px; }
.byop-step-title { font-size: 16px; font-weight: 600; color: var(--black); margin-bottom: 10px; }
.byop-step-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--gray-dark); }
/* Trade Partners */
.tp-intro-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.tp-intro-img img { width: 100%; height: 480px; object-fit: cover; border-radius: 4px; }
.tp-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.tp-why-card { padding: 36px 28px; border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; transition: border-color 0.3s; }
.tp-why-card:hover { border-color: rgba(255,255,255,0.2); }
.tp-why-num { font-family: var(--font-display); font-size: 32px; font-weight: 500; color: rgba(255,255,255,0.08); margin-bottom: 16px; }
.tp-why-title { font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 10px; }
.tp-why-desc { font-size: 13px; font-weight: 300; line-height: 1.7; color: rgba(255,255,255,0.55); }
.tp-trades-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
.tp-trade-tag { padding: 16px 20px; background: var(--white); border-radius: 4px; font-size: 14px; font-weight: 500; color: var(--black); text-align: center; border: 1px solid rgba(0,0,0,0.06); transition: border-color 0.3s, box-shadow 0.3s; }
.tp-trade-tag:hover { border-color: var(--red); box-shadow: 0 4px 16px rgba(194,16,0,0.08); }
.tp-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 48px; }
.tp-step { padding: 32px 24px; border-top: 3px solid var(--red); }
.tp-step-num { font-family: var(--font-display); font-size: 36px; font-weight: 500; color: rgba(0,0,0,0.08); margin-bottom: 16px; }
.tp-step-title { font-size: 16px; font-weight: 600; color: var(--black); margin-bottom: 10px; }
.tp-step-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--gray-dark); }
/* Testimonials page */
.testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.testi-card { background: var(--white); border-radius: 6px; padding: 36px 32px; border: 1px solid rgba(0,0,0,0.06); }
.testi-stars { display: flex; gap: 2px; margin-bottom: 16px; }
.testi-stars svg { width: 16px; height: 16px; fill: #F59E0B; stroke: none; }
.testi-quote { font-size: 14px; font-weight: 300; line-height: 1.75; color: var(--gray-dark); margin-bottom: 20px; font-style: italic; }
.testi-author { font-size: 14px; font-weight: 600; color: var(--black); }
.testi-role { font-size: 12px; color: var(--gray); margin-top: 2px; }
.testi-video-featured { display: grid; grid-template-columns: 1.4fr 1fr; gap: 32px; align-items: center; margin-top: 48px; margin-bottom: 48px; }
.testi-video-thumb { position: relative; border-radius: 6px; overflow: hidden; cursor: pointer; }
.testi-video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.testi-video-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 64px; height: 64px; background: rgba(194,16,0,0.9); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background 0.3s, transform 0.3s; }
.testi-video-thumb:hover .testi-video-play { background: var(--red); transform: translate(-50%,-50%) scale(1.08); }
.testi-video-play svg { width: 22px; height: 22px; fill: #fff; stroke: none; margin-left: 3px; }
.testi-video-duration { position: absolute; bottom: 12px; right: 12px; background: rgba(0,0,0,0.7); color: #fff; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 3px; }
.testi-video-title { font-size: 18px; font-weight: 600; color: var(--black); margin-bottom: 10px; }
.testi-video-desc { font-size: 14px; font-weight: 300; line-height: 1.7; color: var(--gray-dark); margin-bottom: 20px; }
.testi-video-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.testi-video-card { border-radius: 6px; overflow: hidden; border: 1px solid rgba(0,0,0,0.06); background: var(--white); }
.testi-video-card .testi-video-thumb img { height: 220px; }
.testi-video-info { padding: 20px 24px; }
.testi-video-name { font-size: 15px; font-weight: 600; color: var(--black); margin-bottom: 6px; }
.testi-video-snippet { font-size: 13px; font-weight: 300; line-height: 1.6; color: var(--gray-dark); }
/* Hide WP page title */
.elementor-page .entry-title, .elementor-page .page-title { display: none; }

/* -- 26. INNER PAGE RESPONSIVE -- */
@media (max-width: 768px) {
  #page-hero { padding: 60px 20px 50px; }
  .about-story-inner, .loc-intro-grid, .mission-inner, .mission-inner.reverse,
  .process-overview-inner, .fin-overview-inner, .byop-overview-inner, .tp-intro-inner,
  .faq-preview-inner, .fin-faq-inner, .financing-callout-inner { grid-template-columns: 1fr; }
  .about-values-grid, .about-links-grid, .loc-info-bar, .loc-why-grid, .mission-pillars-grid,
  .fin-highlights-inner, .fin-how-grid, .testi-grid, .byop-cards, .tp-why-grid, .office-grid,
  .contact-layout, .testi-video-featured, .testi-video-grid { grid-template-columns: 1fr; }
  .about-story-inner, .loc-intro-grid { gap: 40px; }
  .mission-inner, .mission-inner.reverse { direction: ltr; gap: 48px; }
  .process-overview-inner, .fin-overview-inner, .byop-overview-inner, .tp-intro-inner,
  .faq-preview-inner, .fin-faq-inner { gap: 48px; }
  .financing-callout-inner { gap: 36px; }
  .about-story-img img { height: 300px; }
  .mission-img img { height: 320px; }
  .process-overview-img img { height: 360px; }
  .fin-overview-img img { height: 360px; }
  .byop-overview-img img { height: 320px; }
  .tp-intro-img img { height: 320px; }
  .loc-area-tags { grid-template-columns: repeat(2, 1fr); }
  .step-card { grid-template-columns: 48px 1fr; }
  .step-aside { display: none; }
  .step-body { padding: 32px 20px; }
  .trust-strip-inner { flex-direction: column; }
  .fin-highlight { border-right: none; border-bottom: 1px solid rgba(0,0,0,0.06); }
  .fin-highlight:last-child { border-bottom: none; }
  .byop-steps, .tp-steps { grid-template-columns: 1fr 1fr; }
  .tp-trades-grid { grid-template-columns: repeat(2, 1fr); }
}

/* -- 27. HOMEPAGE RESPONSIVE -- */
@media (max-width: 1400px) {
  .fp-grid.fp-grid--4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1100px) {
  .container { padding: 0 40px; }
  .fp-grid, .fp-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1024px) {
  .rfm-spb__item { flex: calc(50% - 4px); max-width: calc(50% - 4px); }
  #swh-hero .hero-form-card { min-width: 100%; }
  .testimonials__header-top { flex-direction: column; align-items: flex-start; }
  #navbar .elementor-nav-menu { gap: 14px; }
}
@media (max-width: 768px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
  .container { padding: 0 20px; }
  .navbar { padding: 0 20px; }
  #swh-hero { padding-left: 30px !important; padding-right: 30px !important; }
  #swh-hero > .e-con-inner { padding-left: 0 !important; padding-right: 0 !important; }
  /* Top bar: stacked centered lines */
  #top-bar .announce-bar__inner, #top-bar .e-con-inner { justify-content: center !important; text-align: center; flex-direction: column !important; gap: 8px; padding: 12px 16px; }
  #top-bar .announce-bar__left, #top-bar .announce-bar__right { justify-content: center !important; flex: 0 0 auto; text-align: center; }
  #top-bar .ab-tagline-sep { display: none; }
  #top-bar .ab-tagline-l1, #top-bar .ab-tagline-l2, #top-bar .ab-tagline-l3 { display: block; line-height: 1.5; }
  #top-bar .ab-tagline-l1 { font-size: 11px; }
  #top-bar .ab-tagline-l2, #top-bar .ab-tagline-l3 { font-size: 9px; opacity: 0.8; }
  #top-bar .announce-bar__search { display: none; }
  #top-bar .announce-bar__socials { display: none; }
  #top-bar .announce-bar__office-switch { display: block; }
  #top-bar .announce-bar__office-switch select { font-size: 10px; padding: 6px 28px 6px 10px; }
  /* Navbar mobile: logo left, phone + search + hamburger right */
  #navbar .e-con-inner { flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 12px; }
  #navbar .nav-cta-btn, #navbar a.nav-cta-btn, #navbar .elementor-element-6576927f { display: none !important; }
  #navbar .rfm-phone-link, #navbar .elementor-element-26a4a27b { display: flex !important; margin-left: auto; margin-right: 0 !important; }
  #navbar .rfm-phone-link span, #navbar .rfm-phone-link__number { font-size: 13px; }
  /* Hamburger anchored far right via its own container */
  #navbar [class*="nav-center"], #navbar .elementor-element-d32d2f0c { order: 99; margin-left: 0 !important; flex: 0 0 auto !important; width: auto !important; }
  #navbar .elementor-menu-toggle { order: 99; margin-left: 12px !important; margin-right: 0 !important; }
  #navbar > .e-con-inner { justify-content: space-between !important; }
  #navbar .elementor-element-a15c2f55 { margin-left: auto !important; flex: 0 0 auto !important; width: auto !important; }
  /* Mobile nav dropdown: style as right-side offcanvas */
  #navbar .elementor-nav-menu--dropdown { position: fixed !important; top: 0 !important; right: 0 !important; left: auto !important; width: 85% !important; max-width: 340px !important; height: 100vh !important; background: #fff !important; box-shadow: -4px 0 40px rgba(0,0,0,0.15); transform: translateX(100%); transition: transform 0.35s cubic-bezier(0.22,1,0.36,1); display: block !important; opacity: 1 !important; }
  #navbar .elementor-nav-menu--dropdown.elementor-active { transform: translateX(0); }
  #navbar .elementor-nav-menu--dropdown ul { padding: 80px 24px 24px !important; }
  #navbar .elementor-nav-menu--dropdown .elementor-item { padding: 14px 0 !important; border-bottom: 1px solid rgba(0,0,0,0.06) !important; }
  /* Step process cards: 2 per row on mobile */
  .rfm-steps--horizontal { flex-wrap: wrap; }
  .rfm-steps--horizontal .rfm-step { flex: 0 0 calc(50% - 12px); max-width: calc(50% - 12px); }
  /* Plan badges: single inline row, no wrap, horizontal scroll if needed */
  .plan-badges, .related-badges { flex-wrap: nowrap !important; overflow-x: auto; gap: 8px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .plan-badges::-webkit-scrollbar, .related-badges::-webkit-scrollbar { display: none; }
  .plan-badge, .related-badge { flex: 0 0 auto; white-space: nowrap; }
  /* Show mobile sticky CTA bar */
  .mobile-cta-bar { display: flex; }
  body { padding-bottom: 76px; }
  .back-to-top { left: 12px; bottom: 88px; }
  #top-bar .announce-bar__socials, .hide-legacy { display: none; }
  #swh-hero .e-con-inner { flex-direction: column; }
  #swh-hero-left { position: relative !important; top: auto !important; }
  #swh-hero-right { width: 100%; }
  .hero-counter, .scroll-cue { display: none; }
  .hero__proof { flex-wrap: wrap; }
  /* Stats widget uses CSS grid - force 2 cols on mobile */
  #swh-stats .rfm-stats, .swh-stats-2x2-mobile.rfm-stats, .elementor-widget-rfm_stats_counter .rfm-stats { grid-template-columns: 1fr 1fr !important; gap: 24px 12px !important; padding: 32px 16px !important; }
  #swh-stats .rfm-stats--dividers .rfm-stats__item + .rfm-stats__item { border-left: none !important; padding-left: 0 !important; }
  /* Force 2-line labels by constraining max-width */
  #swh-stats .rfm-stats__label, .elementor-widget-rfm_stats_counter .rfm-stats__label { max-width: 120px; margin-left: auto; margin-right: auto; line-height: 1.25; white-space: normal; text-align: center; font-size: 0.72rem; }
  #swh-path-cards { flex-direction: column; }
  #swh-path-cards .rfm-cb { width: 100%; }
  #swh-process .e-con-inner { flex-direction: column; }
  #swh-process-left { width: 100%; }
  #swh-process-right { width: 100%; position: relative !important; top: auto !important; order: -1; }
  #swh-financing .e-con-inner { flex-direction: column; }
  #swh-financing .e-con-inner > .e-con { width: 100%; }
  #swh-floor-plans .fp-grid, .fp-grid, .fp-grid--4 { grid-template-columns: 1fr; }
  .fp-filter-inner { flex-direction: column; align-items: stretch; }
  .fp-filter-label { border-right: none; padding-right: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(0,0,0,0.08); margin-right: 0; margin-bottom: 12px; }
  .fp-filter-fields { flex-direction: row; flex-wrap: wrap; gap: 6px; justify-content: center; }
  .fp-filter-fields .fp-filter-select { flex: 0 0 calc(20% - 5px) !important; min-width: 0 !important; max-width: calc(20% - 5px) !important; padding: 8px 20px 8px 8px; font-size: 10px; background-position: right 6px center; }
  /* Home page filter has 4 dropdowns - use 25% each */
  .swh-home-filter .fp-filter-fields .fp-filter-select { flex: 0 0 calc(25% - 5px) !important; max-width: calc(25% - 5px) !important; }
  /* Center the Search Floor Plans button on mobile */
  .swh-home-filter .fp-filter-fields .fp-filter-btn, .swh-home-filter #hpfSubmit { flex: 0 0 100% !important; max-width: 100% !important; margin-top: 8px; display: inline-flex; justify-content: center; text-align: center; }
  .fp-filter-actions { margin-left: 0; margin-top: 8px; }
  .fp-card-actions { flex-direction: column; }
  .fp-card-btn-primary, .fp-card-btn-secondary { width: 100%; }
  /* Mobile forms: keep first/last and email/phone 50/50 */
  .elementor-form .elementor-field-group-first_name,
  .elementor-form .elementor-field-group-last_name,
  .elementor-form .elementor-field-group-email,
  .elementor-form .elementor-field-group-phone { width: 50% !important; flex: 0 0 50% !important; max-width: 50% !important; }
  /* Single-plan hardcoded modal form row */
  .modal-body .form-row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px; }
  #swh-floor-plans .e-con-inner { flex-wrap: wrap; }
  #swh-testimonials .testimonial-card { flex: 0 0 100%; min-width: 100%; }
  #swh-gallery .gallery-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  #swh-gallery .gallery-mosaic__item:nth-child(1), #swh-gallery .gallery-mosaic__item:nth-child(6) { grid-column: span 1; }
  #swh-download .e-con-inner { flex-direction: column; }
  #swh-download .e-con-inner > .e-con { width: 100%; }
  #get-pricing .e-con-inner { flex-direction: column; }
  #get-pricing-left { width: 100%; position: relative !important; top: auto !important; }
  #get-pricing-right { width: 100%; }
  #swh-faq .e-con-inner { flex-direction: column; }
  #swh-faq-left { width: 100%; position: relative !important; top: auto !important; }
  #swh-faq-right { width: 100%; }
  #swh-ready .e-con-inner { flex-direction: column; align-items: stretch; }
  #swh-paths, #swh-process, #swh-financing, #swh-floor-plans,
  #swh-testimonials, #swh-gallery, #swh-download, #get-pricing,
  #swh-faq, #swh-ready { padding-top: 72px; padding-bottom: 72px; }
  .rfm-sh, .rfm-sh--left { text-align: center; }
  .rfm-sh__desc { margin-left: auto; margin-right: auto; }
  .btn-cta, .btn-primary, .btn-red, .btn-white-outline { width: 100%; justify-content: center; }
  .hero-btns { flex-direction: column; width: 100%; }
  #swh-ready .rfm-cta__btn { width: 100%; justify-content: center; }
  /* Footer: all columns left aligned, tightened spacing */
  #footer-top .e-con-inner { flex-direction: column; gap: 36px; padding: 60px 20px 40px; }
  #footer-top .e-con-inner > .e-con { width: 100%; padding: 0 !important; text-align: left !important; }
  #footer-top .e-con-inner > .e-con > * { text-align: left !important; }
  #footer-top .rfm-sh, #footer-top .rfm-sh__heading, #footer-top .rfm-sh__eyebrow, #footer-top .rfm-sh__desc { text-align: left !important; margin-left: 0 !important; margin-right: 0 !important; }
  #footer-top .rfm-sh__heading { font-size: 14px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #fff; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,0.1); }
  #footer-top .elementor-nav-menu, #footer-top .menu { padding-left: 0 !important; list-style: none !important; }
  #footer-top .elementor-nav-menu li, #footer-top .menu li { margin-bottom: 8px; text-align: left !important; }
  #footer-top .elementor-nav-menu .elementor-item, #footer-top .menu a { padding: 4px 0 !important; font-size: 14px; opacity: 0.75; }
  #footer-top .rfm-fbrand, #footer-top .rfm-finfo { text-align: left !important; }
  #footer-top .rfm-finfo__addr, #footer-top .rfm-finfo__phone { text-align: left !important; justify-content: flex-start !important; }
  #footer-top .rfm-social-icons, #footer-top .rfm-si { justify-content: flex-start !important; }
  .rfm-fbot { flex-direction: column; gap: 12px; text-align: center; padding: 20px 0; }
  .rfm-fbot__right { gap: 16px; flex-wrap: wrap; justify-content: center; }
  .rfm-spb__item { flex: calc(50% - 4px); max-width: calc(50% - 4px); }
}
@media (max-width: 480px) {
  .container { padding: 0 16px; }
  .hero-h1 { font-size: 36px; }
  #swh-hero .hero-btns { gap: 10px; }
  .rfm-sh__heading { font-size: clamp(24px, 6vw, 36px); }
  /* Keep stats 2x2 even on small phones */
  #swh-gallery .gallery-mosaic { grid-template-columns: 1fr; }
  .rfm-spb__item { flex: 100%; max-width: 100%; }
  .rfm-step__num { font-size: 24px; }
  .rfm-faq__question { font-size: 1rem; }
}

/* -- 28. REDUCED MOTION -- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
