/* Foundation Worx Website V7.1 — unified design system
   Palette: deep navy #142B45, Foundation Worx blue #3185D6, white, light gray.
   No WordPress/Beaver Builder/Genesis styles are loaded alongside this file. */

:root{
  --fx-navy:#142B45;
  --fx-navy-900:#0C1C2E;
  --fx-navy-700:#1F3B5C;
  --fx-blue:#3185D6;
  --fx-blue-600:#1F6DB8;   /* text-safe blue on white (AA) */
  --fx-blue-700:#185A9A;
  --fx-blue-300:#8EC2F2;   /* text-safe blue on navy */
  --fx-blue-50:#EAF3FC;
  --fx-white:#FFFFFF;
  --fx-gray-50:#F5F7FA;
  --fx-gray-100:#EDF1F5;
  --fx-gray-200:#DCE3EA;
  --fx-gray-300:#C4CFDA;
  --fx-gray-600:#4F5F71;
  --fx-ink:#18283A;
  --fx-success:#1E7B4D;
  --fx-focus:#FFB454;

  --fx-font-head:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --fx-font-body:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;

  --fx-radius-sm:6px;
  --fx-radius:10px;
  --fx-radius-lg:16px;
  --fx-shadow-sm:0 1px 2px rgba(20,43,69,.06),0 2px 6px rgba(20,43,69,.06);
  --fx-shadow:0 10px 30px rgba(20,43,69,.10);
  --fx-shadow-lg:0 24px 60px rgba(12,28,46,.22);

  --fx-wrap:1200px;
  --fx-gutter:clamp(16px,4vw,32px);
  --fx-sec-y:clamp(56px,8vw,104px);
  --fx-header-h:76px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--fx-header-h) + 16px)}
body{margin:0;background:var(--fx-white);color:var(--fx-ink);font-family:var(--fx-font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,iframe{max-width:100%}
img{height:auto;border:0}
a{color:var(--fx-blue-600);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--fx-blue-700)}
:focus-visible{outline:3px solid var(--fx-focus);outline-offset:3px;border-radius:3px}
h1,h2,h3,h4,h5,h6{font-family:var(--fx-font-head);color:var(--fx-navy);line-height:1.2;margin:0 0 .6em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.2vw,3.25rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.6rem,2.8vw,2.25rem)}
h3{font-size:clamp(1.2rem,1.8vw,1.45rem)}
h4{font-size:1.15rem}
h5,h6{font-size:1rem}
p{margin:0 0 1.1em}
hr{border:0;border-top:1px solid var(--fx-gray-200);margin:2.5em 0}
.screen-reader-text,.fx-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fx-skip{position:absolute;left:16px;top:-60px;z-index:200;background:var(--fx-navy);color:#fff;padding:10px 16px;border-radius:var(--fx-radius-sm);font-weight:600}
.fx-skip:focus{top:12px;color:#fff}
.fx-wrap{width:100%;max-width:var(--fx-wrap);margin:0 auto;padding:0 var(--fx-gutter)}
.fx-wrap--narrow{max-width:860px}

/* ---------- Buttons ---------- */
.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:12px 24px;border-radius:var(--fx-radius-sm);border:2px solid transparent;font-family:var(--fx-font-body);font-size:1rem;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;white-space:nowrap}
.fx-btn svg{width:18px;height:18px;flex:none}
.fx-btn:hover{transform:translateY(-1px)}
.fx-btn--primary{background:var(--fx-blue-600);color:#fff;box-shadow:0 6px 18px rgba(49,133,214,.28)}
.fx-btn--primary:hover,.fx-btn--primary:focus-visible{background:var(--fx-blue-700);color:#fff}
.fx-btn--outline{background:transparent;border-color:var(--fx-blue-600);color:var(--fx-blue-600)}
.fx-btn--outline:hover{background:var(--fx-blue-50);color:var(--fx-blue-700)}
.fx-btn--light{background:#fff;color:var(--fx-navy)}
.fx-btn--light:hover{background:var(--fx-blue-50);color:var(--fx-navy)}
.fx-btn--ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.fx-btn--ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff}
.fx-btn--sm{min-height:42px;padding:8px 16px;font-size:.95rem}
.fx-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:1.5em 0}
.fx-link-arrow{font-weight:700;text-decoration:none;display:inline-flex;align-items:center;gap:.35em}
.fx-link-arrow::after{content:"→";transition:transform .15s ease}
.fx-link-arrow:hover::after{transform:translateX(3px)}

/* ---------- Top bar & header ---------- */
.fx-topbar{background:var(--fx-navy-900);color:#C9D6E4;font-size:.875rem}
.fx-topbar .fx-wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px}
.fx-topbar a{color:#fff;text-decoration:none;font-weight:600}
.fx-topbar a:hover{color:var(--fx-blue-300)}
.fx-topbar__right{display:flex;gap:20px}
.fx-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--fx-gray-200);transition:box-shadow .2s ease}
.fx-header.is-scrolled{box-shadow:0 6px 24px rgba(20,43,69,.10)}
.fx-header__inner{display:flex;align-items:center;gap:16px;min-height:var(--fx-header-h);max-width:1380px}
.fx-topbar .fx-wrap{max-width:1380px}
.fx-logo{display:flex;align-items:center;flex:none}
.fx-logo img{display:block;height:52px;width:auto}
.fx-nav{margin-left:auto}
.fx-nav__list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.fx-nav__item{position:relative;display:flex;align-items:center}
.fx-nav__item>.fx-nav__link:first-child{padding-right:4px}
.fx-nav__toggle{padding:10px 8px 10px 4px}
.fx-nav__item:hover>.fx-nav__link,.fx-nav__item.is-open>.fx-nav__link{color:var(--fx-blue-600)}
.fx-nav__link{display:flex;align-items:center;gap:4px;padding:10px 12px;border-radius:var(--fx-radius-sm);font-family:var(--fx-font-body);font-size:.95rem;font-weight:600;color:var(--fx-navy);text-decoration:none;background:none;border:0;cursor:pointer;white-space:nowrap}
.fx-nav__link:hover,.fx-nav__item:focus-within>.fx-nav__link,.fx-nav__link[aria-current="page"]{color:var(--fx-blue-600);background:var(--fx-blue-50)}
.fx-nav__caret{width:10px;height:10px;transition:transform .15s ease}
.fx-nav__item.is-open .fx-nav__caret{transform:rotate(180deg)}
.fx-dd{position:absolute;top:calc(100% + 6px);left:0;min-width:270px;padding:10px;margin:0;list-style:none;background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);box-shadow:var(--fx-shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s ease,transform .15s ease,visibility .15s}
.fx-dd::before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}
.fx-nav__item:hover>.fx-dd,.fx-nav__item:focus-within>.fx-dd,.fx-nav__item.is-open>.fx-dd{opacity:1;visibility:visible;transform:none}
.fx-dd a{display:block;padding:9px 12px;border-radius:var(--fx-radius-sm);color:var(--fx-ink);text-decoration:none;font-size:.95rem;font-weight:500;line-height:1.35}
.fx-dd a:hover,.fx-dd a:focus-visible{background:var(--fx-gray-50);color:var(--fx-blue-600)}
.fx-dd .fx-dd__group{margin:4px 0 4px 12px;padding:0 0 0 8px;list-style:none;border-left:2px solid var(--fx-gray-100)}
.fx-dd .fx-dd__group a{font-size:.9rem;color:var(--fx-gray-600)}
.fx-header__cta{display:flex;align-items:center;gap:12px;flex:none}
.fx-phone{display:flex;align-items:center;gap:8px;color:var(--fx-navy);font-weight:700;text-decoration:none;white-space:nowrap}
.fx-phone svg{width:20px;height:20px;color:var(--fx-blue-600)}
.fx-phone small{display:block;font-size:.72rem;font-weight:600;color:var(--fx-gray-600);text-transform:uppercase;letter-spacing:.06em;line-height:1}
.fx-burger{display:none;margin-left:auto;width:48px;height:48px;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius-sm);background:#fff;color:var(--fx-navy);cursor:pointer;align-items:center;justify-content:center}
.fx-burger svg{width:24px;height:24px}

/* Mobile drawer */
.fx-mnav{position:fixed;inset:0;z-index:150;display:none}
.fx-mnav.is-open{display:block}
.fx-mnav__scrim{position:absolute;inset:0;background:rgba(12,28,46,.55)}
.fx-mnav__panel{position:absolute;top:0;right:0;bottom:0;width:min(420px,100%);background:#fff;display:flex;flex-direction:column;box-shadow:var(--fx-shadow-lg);animation:fx-slide .2s ease}
@keyframes fx-slide{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}
.fx-mnav__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fx-gray-200)}
.fx-mnav__head img{height:42px;width:auto}
.fx-mnav__close{width:48px;height:48px;border:0;background:var(--fx-gray-50);border-radius:var(--fx-radius-sm);cursor:pointer;color:var(--fx-navy)}
.fx-mnav__body{overflow-y:auto;padding:8px 16px 24px;flex:1}
.fx-mnav ul{list-style:none;margin:0;padding:0}
.fx-mnav__row{display:flex;align-items:stretch;border-bottom:1px solid var(--fx-gray-100)}
.fx-mnav__row>a{flex:1;padding:14px 4px;font-weight:700;color:var(--fx-navy);text-decoration:none;font-size:1.05rem}
.fx-mnav__toggle{width:52px;border:0;background:none;color:var(--fx-navy);cursor:pointer}
.fx-mnav__toggle svg{width:14px;height:14px;transition:transform .15s}
.fx-mnav__toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.fx-mnav__sub{padding:6px 0 12px 12px!important;background:var(--fx-gray-50);border-radius:var(--fx-radius-sm);margin:6px 0 10px!important}
.fx-mnav__sub a{display:block;padding:10px 8px;color:var(--fx-ink);text-decoration:none;font-weight:500}
.fx-mnav__sub .fx-dd__group{padding-left:14px!important}
.fx-mnav__sub .fx-dd__group a{font-size:.95rem;color:var(--fx-gray-600)}
.fx-mnav__ctas{display:grid;gap:10px;padding:16px;border-top:1px solid var(--fx-gray-200)}
.fx-mnav__ctas .fx-btn{width:100%}

/* Mobile action bar */
.fx-mbar{display:none}

/* ---------- Page hero ---------- */
.fx-hero{position:relative;background:var(--fx-navy);color:#fff;overflow:hidden;isolation:isolate}
.fx-hero__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center}
.fx-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,28,46,.94) 0%,rgba(20,43,69,.86) 45%,rgba(20,43,69,.55) 100%)}
.fx-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 400px at 85% -10%,rgba(49,133,214,.35),transparent 60%)}
.fx-hero .fx-wrap{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(44px,6vw,84px)}
.fx-hero h1{color:#fff;max-width:900px;margin-bottom:.35em}
.fx-hero__lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:#D6E2EE;max-width:760px;margin:0 0 1.2em}
.fx-hero .fx-actions{margin-bottom:0}
.fx-crumbs{font-size:.875rem;color:#AFC3D8;margin:0 0 18px}
.fx-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.fx-crumbs li+li::before{content:"/";margin-right:6px;color:#6F8AA6}
.fx-crumbs a{color:#DCE8F4;text-decoration:none}
.fx-crumbs a:hover{color:#fff;text-decoration:underline}
.fx-eyebrow{display:inline-block;font-family:var(--fx-font-body);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fx-blue-600);margin:0 0 12px}
.fx-hero .fx-eyebrow,.fx-sec--navy .fx-eyebrow{color:var(--fx-blue-300)}
.fx-hero__meta{color:#C3D3E3;font-size:.95rem;margin:0}

/* ---------- Sections ---------- */
.fx-sec{padding:var(--fx-sec-y) 0}
.fx-sec--tight{padding:clamp(36px,5vw,64px) 0}
.fx-sec--gray{background:var(--fx-gray-50)}
.fx-sec--navy{background:var(--fx-navy);color:#D6E2EE}
.fx-sec--navy h2,.fx-sec--navy h3{color:#fff}
.fx-sec--navy a:not(.fx-btn){color:var(--fx-blue-300)}
.fx-sec__head{max-width:760px;margin:0 0 clamp(28px,4vw,48px)}
.fx-sec__head--center{text-align:center;margin-left:auto;margin-right:auto}
.fx-sec__head p{font-size:1.1rem;color:var(--fx-gray-600);margin:0}
.fx-sec--navy .fx-sec__head p{color:#C3D3E3}
.fx-sec__foot{margin-top:clamp(28px,4vw,44px);display:flex;justify-content:center}

/* ---------- Grids & cards ---------- */
.fx-grid{display:grid;gap:clamp(16px,2.4vw,28px)}
.fx-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fx-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fx-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fx-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);overflow:hidden;box-shadow:var(--fx-shadow-sm);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;color:inherit;text-decoration:none}
a.fx-card:hover,.fx-card:focus-within{box-shadow:var(--fx-shadow);transform:translateY(-3px);border-color:var(--fx-gray-300)}
.fx-card__media{aspect-ratio:16/10;background:var(--fx-gray-100);overflow:hidden}
.fx-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
a.fx-card:hover .fx-card__media img{transform:scale(1.04)}
.fx-card__body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.fx-card__body h3{margin-bottom:.4em;font-size:1.2rem}
.fx-card__body h3 a{color:inherit;text-decoration:none}
.fx-card__body h3 a::after{content:"";position:absolute;inset:0}
.fx-card--linked{position:relative}
.fx-card__body p{color:var(--fx-gray-600);font-size:.98rem;margin:0 0 1em}
.fx-card__meta{font-size:.85rem;color:var(--fx-gray-600);margin:0 0 .5em;font-weight:500}
.fx-card__cta{margin-top:auto;color:var(--fx-blue-600);font-weight:700;font-size:.95rem}
.fx-card__cta::after{content:" →"}
.fx-tag{display:inline-block;background:var(--fx-blue-50);color:var(--fx-blue-700);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-bottom:10px;align-self:flex-start}

/* Problem cards */
.fx-problem{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:260px;border-radius:var(--fx-radius);overflow:hidden;color:#fff;text-decoration:none;isolation:isolate;box-shadow:var(--fx-shadow-sm)}
.fx-problem img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .5s ease}
.fx-problem::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,28,46,.05) 20%,rgba(12,28,46,.92) 100%)}
.fx-problem:hover img{transform:scale(1.05)}
.fx-problem__body{padding:22px}
.fx-problem h3{color:#fff;margin:0 0 6px;font-size:1.25rem}
.fx-problem p{margin:0 0 10px;color:#D6E2EE;font-size:.95rem;line-height:1.5}
.fx-problem span{font-weight:700;color:var(--fx-blue-300);font-size:.95rem}
.fx-problem:hover{color:#fff}

/* Trust / feature list */
.fx-trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--fx-gray-200);border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);overflow:hidden}
.fx-trust__item{background:#fff;padding:24px 22px}
.fx-trust__item svg{width:30px;height:30px;color:var(--fx-blue-600);margin-bottom:10px}
.fx-trust__item strong{display:block;font-family:var(--fx-font-head);color:var(--fx-navy);font-size:1.05rem;line-height:1.3;margin-bottom:4px}
.fx-trust__item span{color:var(--fx-gray-600);font-size:.92rem;line-height:1.5;display:block}
.fx-checks{list-style:none;padding:0;margin:0 0 1.2em}
.fx-checks li{position:relative;padding:6px 0 6px 32px}
.fx-checks li::before{content:"";position:absolute;left:0;top:10px;width:20px;height:20px;border-radius:50%;background:var(--fx-blue-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%231F6DB8'%3E%3Cpath d='M8.2 13.6 4.9 10.3l1.2-1.2 2.1 2.1 5.7-5.7 1.2 1.2z'/%3E%3C/svg%3E") center/16px no-repeat}
.fx-sec--navy .fx-checks li::before{background-color:rgba(255,255,255,.1)}

/* Split media */
.fx-split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
.fx-split--rev>:first-child{order:2}
.fx-split__media{position:relative}
.fx-split__media img{display:block;width:100%;border-radius:var(--fx-radius-lg);box-shadow:var(--fx-shadow)}
.fx-stack{position:relative;padding:0 0 48px 0}
.fx-stack img:first-child{width:78%;aspect-ratio:4/5;object-fit:cover}
.fx-stack img:nth-child(2){position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/5;object-fit:cover;border:6px solid #fff}

/* ---------- Home hero ---------- */
.fx-home-hero{position:relative;background:var(--fx-navy);color:#fff;overflow:hidden;isolation:isolate}
.fx-home-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(1000px 520px at 90% 10%,rgba(49,133,214,.38),transparent 60%),linear-gradient(180deg,var(--fx-navy) 0%,var(--fx-navy-900) 100%)}
.fx-home-hero .fx-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center;padding-top:clamp(40px,6vw,88px);padding-bottom:clamp(48px,6vw,96px)}
.fx-home-hero h1{color:#fff;font-size:clamp(2rem,3.8vw,3.1rem);margin-bottom:.35em}
.fx-home-hero h1 em{font-style:normal;color:var(--fx-blue-300)}
.fx-home-hero__lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:#D6E2EE;margin:0 0 .8em;max-width:620px}
.fx-home-hero__sub{color:#AFC3D8;margin:0 0 1.6em;max-width:620px}
.fx-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;padding:0;list-style:none}
.fx-badges li{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:.88rem;font-weight:600;color:#E6EEF6;background:rgba(255,255,255,.04)}
.fx-badges svg{width:16px;height:16px;color:var(--fx-blue-300)}
.fx-home-hero__media{position:relative;min-height:440px}
.fx-home-hero__media img{position:absolute;object-fit:cover;border-radius:var(--fx-radius-lg);box-shadow:var(--fx-shadow-lg)}
.fx-home-hero__media .fx-hm-1{top:0;right:0;width:74%;height:88%}
.fx-home-hero__media .fx-hm-2{left:0;bottom:0;width:46%;height:56%;border:6px solid var(--fx-navy)}
.fx-home-hero__caption{position:absolute;right:12px;bottom:calc(12% + 12px);background:rgba(12,28,46,.82);color:#E6EEF6;font-size:.8rem;padding:6px 10px;border-radius:var(--fx-radius-sm)}

/* ---------- Before / After & gallery ---------- */
.fx-ba{margin:0;background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);overflow:hidden;box-shadow:var(--fx-shadow-sm)}
.fx-ba__img{position:relative}
.fx-ba__img img{display:block;width:100%;height:auto}
.fx-ba__labels{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:space-around;pointer-events:none}
.fx-ba__labels span{background:rgba(12,28,46,.85);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:4px}
.fx-ba__labels span:last-child{background:var(--fx-blue-600)}
.fx-ba figcaption{padding:16px 18px;font-size:.95rem;color:var(--fx-gray-600)}
.fx-ba figcaption strong{display:block;color:var(--fx-navy);font-family:var(--fx-font-head);font-size:1.05rem;margin-bottom:2px}
.fx-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.fx-gallery figure{margin:0;position:relative;border-radius:var(--fx-radius);overflow:hidden;background:var(--fx-gray-100)}
.fx-gallery a{display:block}
.fx-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s ease}
.fx-gallery--tall img{aspect-ratio:3/4}
.fx-gallery a:hover img{transform:scale(1.04)}
.fx-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 12px 10px;background:linear-gradient(transparent,rgba(12,28,46,.85));color:#fff;font-size:.85rem;line-height:1.35}
.fx-lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh}
.fx-lightbox::backdrop{background:rgba(8,18,30,.88)}
.fx-lightbox img{display:block;max-width:100%;max-height:82vh;margin:0 auto;border-radius:var(--fx-radius)}
.fx-lightbox p{color:#E6EEF6;text-align:center;margin:10px 0 0}
.fx-lightbox button{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--fx-navy);font-size:26px;line-height:1;cursor:pointer}

/* ---------- Quotes ---------- */
.fx-quote{margin:0;background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);padding:28px;box-shadow:var(--fx-shadow-sm);display:flex;flex-direction:column}
.fx-quote::before{content:"“";font-family:Georgia,serif;font-size:64px;line-height:.6;color:var(--fx-blue);height:30px}
.fx-quote blockquote{margin:0 0 16px;font-size:1.02rem;color:var(--fx-ink)}
.fx-quote figcaption{margin-top:auto;font-weight:700;color:var(--fx-navy);font-size:.95rem}
.fx-note{font-size:.85rem;color:var(--fx-gray-600);margin-top:18px;text-align:center}

/* ---------- Logos ---------- */
.fx-logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(20px,4vw,48px)}
.fx-logos a,.fx-logos span{display:flex;align-items:center;justify-content:center;height:80px;padding:8px;filter:grayscale(.15);opacity:.92;transition:opacity .2s,filter .2s}
.fx-logos a:hover{opacity:1;filter:none}
.fx-logos img{max-height:72px;max-width:170px;width:auto;object-fit:contain}

/* ---------- Content layout ---------- */
.fx-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(28px,4vw,56px);align-items:start}
.fx-layout--full{grid-template-columns:minmax(0,1fr)}
.fx-aside{position:sticky;top:calc(var(--fx-header-h) + 20px);display:grid;gap:20px}
.fx-aside-card{background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);padding:24px;box-shadow:var(--fx-shadow-sm)}
.fx-aside-card--navy{background:var(--fx-navy);border-color:var(--fx-navy);color:#D6E2EE}
.fx-aside-card--navy h2,.fx-aside-card--navy h3{color:#fff}
.fx-aside-card h2,.fx-aside-card h3{font-size:1.2rem;margin-bottom:.5em}
.fx-aside-card p{font-size:.95rem}
.fx-aside-card .fx-btn{width:100%;margin-top:10px}
.fx-aside-links{list-style:none;margin:0;padding:0}
.fx-aside-links li{border-top:1px solid var(--fx-gray-100)}
.fx-aside-links li:first-child{border-top:0}
.fx-aside-links a{display:block;padding:10px 0;text-decoration:none;font-weight:600;font-size:.95rem;color:var(--fx-navy)}
.fx-aside-links a:hover{color:var(--fx-blue-600)}

/* Prose — preserved article & page content */
.fx-prose{font-size:1.06rem;line-height:1.75;color:var(--fx-ink);overflow-wrap:break-word}
.fx-prose>*:first-child{margin-top:0}
.fx-prose h2{margin-top:1.6em;font-size:clamp(1.45rem,2.4vw,1.9rem)}
.fx-prose h3{margin-top:1.5em}
.fx-prose h4,.fx-prose h5,.fx-prose h6{margin-top:1.4em}
.fx-prose ul,.fx-prose ol{padding-left:1.4em;margin:0 0 1.2em}
.fx-prose li{margin:.35em 0}
.fx-prose li::marker{color:var(--fx-blue-600)}
.fx-prose blockquote{margin:1.5em 0;padding:16px 22px;border-left:4px solid var(--fx-blue);background:var(--fx-gray-50);border-radius:0 var(--fx-radius-sm) var(--fx-radius-sm) 0}
.fx-prose img{border-radius:var(--fx-radius-sm)}
.fx-prose table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.95rem;display:block;overflow-x:auto}
.fx-prose th,.fx-prose td{border:1px solid var(--fx-gray-200);padding:10px 12px;text-align:left;vertical-align:top}
.fx-prose th{background:var(--fx-gray-50);color:var(--fx-navy)}
.fx-prose .fx-alignleft{float:left;margin:.3em 1.6em 1em 0;max-width:46%}
.fx-prose .fx-alignright{float:right;margin:.3em 0 1em 1.6em;max-width:46%}
.fx-prose .fx-aligncenter{display:block;margin:1.5em auto}
.fx-prose figure{margin:1.5em 0}
.fx-prose figcaption,.fx-prose .wp-caption-text{font-size:.88rem;color:var(--fx-gray-600);margin-top:6px}
.fx-prose::after{content:"";display:table;clear:both}
.fx-block{margin:0 0 1.5em}
.fx-block::after{content:"";display:table;clear:both}
.fx-cols{display:grid;gap:clamp(20px,3vw,40px);grid-template-columns:repeat(var(--fx-n,2),minmax(0,1fr));margin:0 0 1.5em;align-items:start}
.fx-photo{margin:0 0 1.5em}
.fx-photo img{display:block;border-radius:var(--fx-radius);box-shadow:var(--fx-shadow-sm)}
.fx-photo figcaption{font-size:.88rem;color:var(--fx-gray-600);margin-top:8px}
.fx-embed{position:relative;aspect-ratio:16/9;border-radius:var(--fx-radius);overflow:hidden;background:var(--fx-navy-900);margin:0 0 1.5em;box-shadow:var(--fx-shadow-sm)}
.fx-embed iframe,.fx-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}
.fx-embed--map{aspect-ratio:4/3}
.fx-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0!important;margin:0 0 1.5em}
.fx-chips a{display:inline-block;padding:10px 16px;border:1px solid var(--fx-gray-200);border-radius:999px;background:#fff;text-decoration:none;font-weight:600;color:var(--fx-navy)}
.fx-chips a:hover{border-color:var(--fx-blue);color:var(--fx-blue-600)}
.fx-callout{background:var(--fx-blue-50);border:1px solid #CFE3F7;border-radius:var(--fx-radius);padding:22px 24px;margin:0 0 1.5em}
.fx-callout h2,.fx-callout h3{margin-top:0}
.fx-article-meta{display:flex;flex-wrap:wrap;gap:6px 18px;color:#C3D3E3;font-size:.95rem;margin:0}
.fx-article-foot{margin-top:2.5em;padding-top:1.5em;border-top:1px solid var(--fx-gray-200);font-size:.95rem;color:var(--fx-gray-600)}
.fx-article-foot a{font-weight:600}

/* ---------- Feed / Learning Center ---------- */
.fx-feed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px)}
.fx-feed .fx-card__media{aspect-ratio:16/9}
.fx-feed__noimg{display:flex;align-items:center;justify-content:center;height:100%;background:linear-gradient(135deg,var(--fx-navy),var(--fx-navy-700));color:var(--fx-blue-300)}
.fx-feed__noimg svg{width:44px;height:44px;opacity:.8}
.fx-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:clamp(32px,4vw,48px) 0 0;padding:0;list-style:none}
.fx-pagination a,.fx-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:0 14px;border-radius:var(--fx-radius-sm);border:1px solid var(--fx-gray-200);background:#fff;font-weight:700;text-decoration:none;color:var(--fx-navy)}
.fx-pagination a:hover{border-color:var(--fx-blue);color:var(--fx-blue-600)}
.fx-pagination [aria-current]{background:var(--fx-navy);border-color:var(--fx-navy);color:#fff}
.fx-lc-topics{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 clamp(28px,4vw,40px);padding:0;list-style:none}

/* ---------- Forms (Gravity Forms markup preserved, restyled) ---------- */
.fx-form-card{background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius-lg);padding:clamp(20px,3vw,32px);box-shadow:var(--fx-shadow)}
.fx-form-card__head h2,.fx-form-card__head h3{margin-bottom:.3em}
.fx-form-card__head p{color:var(--fx-gray-600);font-size:.95rem;margin:0 0 1.2em}
.fx-form-card .gform_wrapper{margin:0;max-width:none}
.fx-form-card .gform_heading,.fx-form-card .gform_ajax_spinner,.fx-form-card .gform_validation_container,.fx-form-card .gfield--type-honeypot,.fx-form-card .gfield_visibility_hidden{display:none!important}
.fx-form-card .gform_fields{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}
.fx-form-card .gfield{margin:0;padding:0;border:0;min-width:0}
.fx-form-card .gfield_label,.fx-form-card legend.gfield_label{display:block;font-weight:700;color:var(--fx-navy);font-size:.95rem;margin:0 0 6px;padding:0}
.fx-form-card .gfield_required{color:#B42318;margin-left:2px;font-weight:700}
.fx-form-card .gfield_required_text{font-size:.8rem;font-weight:600}
.fx-form-card .ginput_complex{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fx-form-card .ginput_complex>span,.fx-form-card .ginput_complex>div{display:flex;flex-direction:column-reverse;min-width:0}
.fx-form-card .ginput_complex .ginput_full,.fx-form-card .ginput_complex .address_line_1,.fx-form-card .ginput_complex .address_line_2{grid-column:1/-1}
.fx-form-card .gform-field-label--type-sub,.fx-form-card .ginput_complex label{font-size:.8rem;color:var(--fx-gray-600);margin:4px 0 0;font-weight:500}
.fx-form-card .field_sublabel_hidden_label .gform-field-label--type-sub,.fx-form-card .hidden_sub_label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.fx-form-card input[type=text],.fx-form-card input[type=email],.fx-form-card input[type=tel],.fx-form-card input[type=number],.fx-form-card input[type=date],.fx-form-card select,.fx-form-card textarea{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--fx-gray-300);border-radius:var(--fx-radius-sm);background:#fff;font:inherit;font-size:16px;color:var(--fx-ink);transition:border-color .15s,box-shadow .15s}
.fx-form-card textarea{min-height:130px;resize:vertical}
.fx-form-card select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23142B45' d='M6 8 0 1.4 1.3 0 6 5.2 10.7 0 12 1.4z'/%3E%3C/svg%3E") right 14px center/12px no-repeat;padding-right:38px}
.fx-form-card input:focus,.fx-form-card select:focus,.fx-form-card textarea:focus{outline:none;border-color:var(--fx-blue);box-shadow:0 0 0 4px rgba(49,133,214,.18)}
.fx-form-card input:user-invalid,.fx-form-card select:user-invalid,.fx-form-card textarea:user-invalid{border-color:#B42318;box-shadow:0 0 0 3px rgba(180,35,24,.12)}
.fx-form-card input[type=file]{width:100%;padding:14px;border:2px dashed var(--fx-gray-300);border-radius:var(--fx-radius-sm);background:var(--fx-gray-50);font-size:.95rem;cursor:pointer}
.fx-form-card input[type=file]:hover{border-color:var(--fx-blue)}
.fx-form-card .gfield_description,.fx-form-card .gform_fileupload_rules{display:block;font-size:.82rem;color:var(--fx-gray-600);margin-top:6px}
.fx-form-card .gform_footer,.fx-form-card .gform_page_footer{margin:20px 0 0;padding:0}
.fx-form-card .gform_button,.fx-form-card [type=submit]{width:100%;min-height:54px;border:0;border-radius:var(--fx-radius-sm);background:var(--fx-blue-600);color:#fff;font:inherit;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(49,133,214,.28);transition:background-color .15s}
.fx-form-card .gform_button:hover,.fx-form-card [type=submit]:hover{background:var(--fx-blue-700)}
.fx-form-card [type=submit][disabled]{opacity:.65;cursor:progress}
.fx-form-note{font-size:.82rem;color:var(--fx-gray-600);margin:12px 0 0;text-align:center}
.fx-form-success{background:#E8F5EE;border:1px solid #B7DFC8;color:var(--fx-success);border-radius:var(--fx-radius-sm)}

/* ---------- CTA band ---------- */
.fx-cta{position:relative;background:var(--fx-navy);color:#D6E2EE;overflow:hidden;isolation:isolate}
.fx-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(700px 300px at 10% 120%,rgba(49,133,214,.45),transparent 60%),radial-gradient(600px 300px at 100% -20%,rgba(49,133,214,.25),transparent 60%)}
.fx-cta .fx-wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:clamp(44px,6vw,72px);padding-bottom:clamp(44px,6vw,72px)}
.fx-cta h2{color:#fff;margin:0 0 .3em}
.fx-cta p{margin:0;font-size:1.1rem;max-width:620px}
.fx-cta .fx-actions{margin:0;flex:none}

/* ---------- Footer ---------- */
.fx-footer{background:var(--fx-navy-900);color:#AFC3D8;font-size:.95rem}
.fx-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr 1.2fr;gap:clamp(24px,3vw,40px);padding-top:clamp(48px,6vw,72px);padding-bottom:clamp(36px,4vw,48px)}
.fx-footer h2{font-family:var(--fx-font-body);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:0 0 14px}
.fx-footer ul{list-style:none;margin:0;padding:0}
.fx-footer li{margin:0 0 8px}
.fx-footer a{color:#D6E2EE;text-decoration:none}
.fx-footer a:hover{color:#fff;text-decoration:underline}
.fx-footer__brand img{width:220px;height:auto;margin-bottom:14px}
.fx-footer__brand p{margin:0 0 14px;line-height:1.6}
.fx-footer address{font-style:normal;line-height:1.7}
.fx-footer__phone{display:inline-block;font-family:var(--fx-font-head);font-size:1.3rem;font-weight:700;color:#fff!important;margin:6px 0 10px}
.fx-footer__bottom{border-top:1px solid rgba(255,255,255,.1)}
.fx-footer__bottom .fx-wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:20px;font-size:.85rem}

/* ---------- 404 ---------- */
.fx-404{text-align:center;padding:var(--fx-sec-y) 0}
.fx-404 .fx-actions{justify-content:center}
.fx-404__code{font-family:var(--fx-font-head);font-size:clamp(4rem,12vw,8rem);font-weight:800;color:var(--fx-blue);line-height:1;margin:0}

/* ---------- Responsive ---------- */
@media (max-width:1560px){
  .fx-header__cta .fx-phone{display:none}
  .fx-nav__link{padding:10px 9px}
}
@media (max-width:1180px){
  .fx-nav,.fx-header__cta .fx-phone{display:none}
  .fx-burger{display:inline-flex}
  .fx-header__cta{margin-left:auto}
  .fx-header__cta+.fx-burger{margin-left:0}
  .fx-footer__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-footer__brand{grid-column:1/-1}
  .fx-trust{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .fx-home-hero .fx-wrap,.fx-split{grid-template-columns:1fr}
  .fx-split--rev>:first-child{order:0}
  .fx-home-hero__media{min-height:380px;max-width:560px;width:100%;margin:0 auto}
  .fx-layout{grid-template-columns:1fr}
  .fx-aside{position:static}
  .fx-grid--3,.fx-feed,.fx-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fx-cta .fx-wrap{flex-direction:column;align-items:flex-start}
}
@media (max-width:767px){
  :root{--fx-header-h:64px}
  body{font-size:16px;padding-bottom:68px}
  .fx-topbar{display:none}
  .fx-logo img{height:42px}
  .fx-header__cta .fx-btn{display:none}
  .fx-grid--2,.fx-grid--3,.fx-grid--4,.fx-feed,.fx-trust{grid-template-columns:1fr}
  .fx-cols{grid-template-columns:1fr}
  .fx-home-hero__media{min-height:320px}
  .fx-hero .fx-actions .fx-btn,.fx-home-hero .fx-actions .fx-btn{flex:1 1 100%}
  .fx-prose .fx-alignleft,.fx-prose .fx-alignright{float:none;margin:1em 0;max-width:100%}
  .fx-form-card .ginput_complex{grid-template-columns:1fr}
  .fx-footer__grid{grid-template-columns:1fr 1fr}
  .fx-footer__contact{grid-column:1/-1}
  .fx-mbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--fx-gray-200);box-shadow:0 -6px 20px rgba(20,43,69,.12)}
  .fx-mbar .fx-btn{min-height:50px;padding:10px;font-size:.98rem}
}
@media (max-width:420px){
  .fx-footer__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  .fx-topbar,.fx-header,.fx-mbar,.fx-cta,.fx-aside,.fx-footer{display:none!important}
  .fx-hero{background:none;color:#000}.fx-hero h1{color:#000}
}

/* ---------- V7.2 components ---------- */
.fx-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,28px);counter-reset:none}
.fx-step{position:relative;background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);padding:26px 22px 22px;box-shadow:var(--fx-shadow-sm)}
.fx-step__n{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--fx-navy);color:#fff;font-family:var(--fx-font-head);font-weight:800;margin-bottom:14px}
.fx-step h3{font-size:1.1rem;margin-bottom:.4em}
.fx-step p{margin:0;color:var(--fx-gray-600);font-size:.96rem}
.fx-sec--navy .fx-step{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);box-shadow:none}
.fx-sec--navy .fx-step p{color:#C3D3E3}
.fx-sec--navy .fx-step__n{background:var(--fx-blue-600)}
.fx-faq{display:grid;gap:12px;max-width:900px}
.fx-faq__item{background:#fff;border:1px solid var(--fx-gray-200);border-radius:var(--fx-radius);box-shadow:var(--fx-shadow-sm)}
.fx-faq__item summary{list-style:none;cursor:pointer;padding:18px 56px 18px 22px;position:relative;font-family:var(--fx-font-head);font-weight:700;color:var(--fx-navy);font-size:1.05rem;line-height:1.35}
.fx-faq__item summary::-webkit-details-marker{display:none}
.fx-faq__item summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--fx-blue-50);color:var(--fx-blue-700);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;line-height:1}
.fx-faq__item[open] summary::after{content:"\2013"}
.fx-faq__item>div{padding:0 22px 18px;color:var(--fx-gray-600)}
.fx-faq__item>div p:last-child{margin-bottom:0}
.fx-promise{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,28px)}
.fx-promise div{border-top:3px solid var(--fx-blue);padding-top:16px}
.fx-promise strong{display:block;font-family:var(--fx-font-head);color:var(--fx-navy);font-size:1.1rem;margin-bottom:6px}
.fx-promise p{margin:0;color:var(--fx-gray-600)}
.fx-sec--navy .fx-promise strong{color:#fff}.fx-sec--navy .fx-promise p{color:#C3D3E3}
.fx-svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;margin:0;padding:0}
.fx-svc li{background:#fff;border:1px solid var(--fx-gray-200);border-left:4px solid var(--fx-blue);border-radius:var(--fx-radius-sm);padding:16px 18px}
.fx-svc strong{display:block;color:var(--fx-navy);font-family:var(--fx-font-head);margin-bottom:2px}
.fx-svc span{color:var(--fx-gray-600);font-size:.94rem}
.fx-audience{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.fx-audience li{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--fx-radius);padding:18px}
.fx-audience strong{display:block;color:#fff;font-family:var(--fx-font-head);margin-bottom:6px}
.fx-audience span{color:#C3D3E3;font-size:.92rem;line-height:1.5;display:block}
.fx-band{background:var(--fx-blue-50);border-top:1px solid #CFE3F7;border-bottom:1px solid #CFE3F7}
.fx-band .fx-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:28px;padding-bottom:28px}
.fx-band h2{font-size:1.35rem;margin:0 0 4px}.fx-band p{margin:0;color:var(--fx-gray-600)}
.fx-band .fx-actions{margin:0;flex:none}
@media (max-width:1180px){.fx-audience{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){.fx-steps,.fx-svc,.fx-promise{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-band .fx-wrap{flex-direction:column;align-items:flex-start}}
@media (max-width:767px){.fx-steps,.fx-svc,.fx-promise,.fx-audience{grid-template-columns:1fr}.fx-band .fx-actions .fx-btn{flex:1 1 100%}}


/* ---------- V7.2 compact navigation ---------- */
.fx-header .fx-nav__link{padding:10px 12px;font-size:.95rem}
.fx-header .fx-nav__item>.fx-nav__link:first-child{padding-right:4px}
.fx-header .fx-nav__item:not([data-has-dd])>.fx-nav__link:first-child{padding-right:12px}
.fx-dd--mega{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:4px 18px;width:min(940px,calc(100vw - 48px));padding:18px}
.fx-dd--mega>li{min-width:0}
.fx-dd--mega .fx-dd__head{font-family:var(--fx-font-body);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fx-blue-700);padding:6px 10px 8px;border-bottom:1px solid var(--fx-gray-100);margin-bottom:6px;border-radius:0}
.fx-dd--mega .fx-dd__head:hover{background:none;color:var(--fx-navy)}
.fx-dd--mega .fx-dd__group{margin:0;padding:0;border:0}
.fx-dd--mega .fx-dd__group a{font-size:.92rem;color:var(--fx-ink);padding:7px 10px}
.fx-call{gap:6px}
.fx-call__num{display:none}
@media (min-width:1360px){.fx-call__label{display:none}.fx-call__num{display:inline}}
@media (max-width:1180px){.fx-header__cta .fx-call{display:none}}

/* ---------- V7.2 homepage hero (final) ---------- */
.fx-home-hero .fx-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(56px,7vw,104px)}
.fx-home-hero__copy{max-width:560px}
.fx-home-hero h1{font-size:clamp(1.9rem,3.2vw,2.75rem);line-height:1.15;letter-spacing:-.015em;margin-bottom:.5em}
.fx-home-hero__lead{font-size:clamp(1.02rem,1.3vw,1.15rem);line-height:1.6;margin-bottom:1.1em}
.fx-home-hero__assure{display:flex;gap:10px;align-items:flex-start;color:#fff;font-weight:600;margin:0 0 1.6em;line-height:1.5}
.fx-home-hero__assure svg{flex:none;width:22px;height:22px;padding:3px;border-radius:50%;background:var(--fx-blue-600);color:#fff;margin-top:1px}
.fx-home-hero .fx-actions{margin:0 0 14px}
.fx-home-hero__call{color:#AFC3D8;font-size:.95rem;margin:0}
.fx-home-hero__call a{color:#fff;font-weight:600}
.fx-paths{background:var(--fx-gray-50)}
.fx-path .fx-card__body h3{font-size:1.3rem}
@media (max-width:980px){.fx-home-hero__copy{max-width:none}}
@media (max-width:980px){
  .fx-home-hero .fx-wrap{grid-template-columns:1fr;gap:36px}
  .fx-home-hero__media{min-height:360px;max-width:560px;width:100%;margin:0 auto}
  .fx-paths .fx-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-path .fx-card__body{padding:18px}
  .fx-path .fx-card__body h3{font-size:1.15rem}
  .fx-topbar{display:none}
}
@media (max-width:767px){
  .fx-home-hero h1{font-size:clamp(1.75rem,7.4vw,2.1rem)}
  .fx-home-hero__media{min-height:300px}
  .fx-paths .fx-grid--3{grid-template-columns:1fr}
}
.fx-home-hero__title span{display:block}
/* hero statements: one per line, never wrapped; size scales so the longest line always fits */
.fx-home-hero__title span{white-space:nowrap}
.fx-home-hero h1.fx-home-hero__title{font-size:min(2.1rem,2.25vw)}
@media (max-width:980px){.fx-home-hero h1.fx-home-hero__title{font-size:min(2.3rem,5.9vw)}}
/* V7.2: "Diagnosis first. Only the repairs you need." on one line from 1440px; natural wrapping below */
@media (min-width:1440px){
  section[aria-labelledby="fx-promise"] .fx-sec__head{max-width:none}
  #fx-promise{font-size:clamp(2.625rem,2.9vw,2.875rem);line-height:1.15;letter-spacing:-.015em}
}

/* ---------- V7.2 final: prominent branding ---------- */
:root{--fx-header-h:92px}
.fx-logo img{height:72px}
.fx-mnav__head img{height:52px}
@media (max-width:1360px){.fx-logo img{height:64px}}
@media (max-width:767px){:root{--fx-header-h:72px}.fx-logo img{height:54px}}
/* photo-free card variants (no verified photo available) */
.fx-problem--noimg{background:linear-gradient(135deg,var(--fx-navy),var(--fx-navy-700))}
@media (min-width:1181px) and (max-width:1279px){.fx-logo img{height:60px}.fx-header__inner{gap:12px}.fx-header .fx-nav__link{padding:10px 8px;font-size:.92rem}.fx-header .fx-nav__item:not([data-has-dd])>.fx-nav__link:first-child{padding-right:8px}}
/* mega-menu anchored to the header (centered), never wider than the viewport */
@media (min-width:1181px){
  .fx-header__inner{position:relative}
  .fx-nav__item:has(> .fx-dd--mega){position:static}
  .fx-dd--mega{left:50%;margin-left:calc(min(940px,100vw - 48px) / -2);top:calc(100% - 8px)}
}
/* ---------- V7.2 homepage hero spacing (content-driven height, ~25-30% shorter on desktop) ---------- */
.fx-home-hero .fx-wrap{align-items:center}
.fx-home-hero .fx-eyebrow{margin-bottom:10px}
.fx-home-hero h1{margin-bottom:.4em}
.fx-home-hero__lead{margin-bottom:.9em}
.fx-home-hero__assure{margin-bottom:1.2em}
.fx-home-hero .fx-actions{margin-bottom:10px}
@media (min-width:981px){
  .fx-home-hero .fx-wrap{padding-top:24px;padding-bottom:24px}
  .fx-home-hero__media{min-height:400px}
  .fx-home-hero__media .fx-hm-1{height:387px}
  .fx-home-hero__media .fx-hm-2{height:246px}
}
@media (max-width:980px){.fx-home-hero .fx-wrap{padding-top:36px;padding-bottom:40px}}

/* ---------- V7.3 symptom tiles: page link + "Assess this symptom" ---------- */
.fx-problem__link{color:inherit;text-decoration:none}
.fx-problem__link::after{content:"";position:absolute;inset:0;z-index:0}
.fx-problem__link:focus-visible{outline:none}
.fx-problem:has(.fx-problem__link:focus-visible){outline:3px solid var(--fx-focus);outline-offset:3px}
.fx-problem__body{position:relative}
.fx-problem__assess{position:relative;z-index:1;display:inline-block;margin-top:8px;padding:4px 0;font-size:.88rem;font-weight:600;color:#fff;text-decoration:underline;text-underline-offset:3px}
.fx-problem__assess:hover,.fx-problem__assess:focus-visible{color:var(--fx-blue-300)}
/* V7.3: call line sits in the hero button row (wraps beside the last button) */
.fx-home-hero .fx-actions .fx-home-hero__call{margin:0;align-self:center;padding:0 4px}
@media (max-width:767px){.fx-home-hero .fx-actions .fx-home-hero__call{flex:1 1 100%;padding:4px 0 0}}

/* ---------- V7.3 project photo sections ---------- */
.fx-photos{margin:2.5em 0 0;padding-top:1.5em;border-top:1px solid var(--fx-gray-200)}
.fx-photos h2{font-size:clamp(1.3rem,2.2vw,1.6rem);margin-bottom:.3em}
.fx-photos__note{color:var(--fx-gray-600);font-size:.95rem;margin:0 0 14px}
.fx-gallery--page{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.fx-gallery--page img{aspect-ratio:3/4}
.fx-gallery--2{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1em}
.fx-gallery--2 img{aspect-ratio:3/4}
@media (max-width:420px){.fx-gallery--page{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* V7.3: keep the three hero buttons on two rows with the longer "Do You Need Foundation Worx?" label (same font size and height) */
@media (min-width:981px){.fx-home-hero .fx-actions{gap:10px}.fx-home-hero .fx-actions .fx-btn{padding-left:18px;padding-right:18px}}

/* ---------- V7.5: four homepage pathways, four hero CTAs, Basement Worx menu ---------- */
.fx-paths__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1180px){.fx-paths__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.fx-paths__grid{grid-template-columns:1fr}}
.fx-home-hero .fx-actions .fx-btn--primary{box-shadow:none}
.fx-home-hero .fx-actions .fx-btn--primary:hover{background:var(--fx-blue)}
/* 7 top-level menus: compact spacing below 1600px; logo stays 60-64px (V7.2 branding), "Call" label replaces the number */
@media (min-width:1181px) and (max-width:1599px){
  .fx-header .fx-nav__link{padding:10px 6px;font-size:.9rem}
  .fx-header .fx-nav__item:not([data-has-dd])>.fx-nav__link:first-child{padding-right:6px}
  .fx-header .fx-nav__toggle{padding:10px 4px 10px 2px}
  .fx-header__inner{gap:8px}
  .fx-logo img{height:64px}
  .fx-call__num{display:none}.fx-call__label{display:inline}
  .fx-header__cta .fx-btn{padding-left:12px;padding-right:12px}
}
@media (min-width:1181px) and (max-width:1359px){
  .fx-logo img{height:60px}
  .fx-header .fx-nav__link{font-size:.86rem;padding:10px 5px}
  .fx-header .fx-nav__item:not([data-has-dd])>.fx-nav__link:first-child{padding-right:5px}
  .fx-header .fx-wrap.fx-header__inner{padding-left:16px;padding-right:16px}
}

/* V7.6 service navigation: homepage service cards anchor + "Back to Services" links.
   Header clearance comes from html{scroll-padding-top} (sticky header height); scroll-margin-top adds a small gap
   so the cards land just below the header (the two values add together). */
#our-services{scroll-margin-top:8px}
.fx-backlink{display:inline-flex;align-items:center;gap:4px;margin:0 0 10px;font-size:.9rem;font-weight:600;color:inherit;opacity:.9;text-decoration:none;min-height:32px}
.fx-backlink:hover,.fx-backlink:focus-visible{text-decoration:underline;opacity:1}
.fx-backlink svg{flex:none}
.fx-hero .fx-backlink + .fx-crumbs{margin-top:0}
.fx-seo-services{margin-top:36px}
.fx-seo-services h3{margin:20px 0 6px;font-size:1.1rem}
.fx-related-svc{margin-top:28px;padding:14px 18px;border-left:4px solid var(--fx-blue);background:var(--fx-gray-50,#F5F7FA);border-radius:var(--fx-radius-sm)}
.fx-related-svc p{margin:0}

/* V7.6 gallery redesign: unobstructed photos, one aspect ratio sitewide, short one-line captions BELOW the photo.
   Detailed descriptions live in alt text and the lightbox caption. */
.fx-gallery figure{display:flex;flex-direction:column;background:none;overflow:visible;border-radius:0}
.fx-gallery a{border-radius:var(--fx-radius);overflow:hidden;background:var(--fx-gray-100)}
.fx-gallery img,.fx-gallery--tall img,.fx-gallery--page img,.fx-gallery--2 img{aspect-ratio:4/5;height:auto;object-fit:cover}
.fx-gallery figcaption{position:static;background:none;padding:8px 2px 0;color:var(--fx-gray-700,#3F4B5B);font-size:.9rem;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-gallery a:focus-visible{outline:3px solid var(--fx-blue);outline-offset:2px}
/* captions may wrap to a second line in narrow columns; a fixed two-line box keeps card heights even */
.fx-gallery figcaption{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;min-height:calc(2.6em + 8px);box-sizing:border-box}

/* ===================== V7.6 sitewide design refinement ===================== */
/* Rhythm: slightly tighter sections and one heading scale (h1 unchanged; hero sizes are locked by tests) */
:root{--fx-sec-y:clamp(48px,6.5vw,88px)}
h2{font-size:clamp(1.5rem,2.5vw,2.05rem)}
h3{font-size:clamp(1.12rem,1.6vw,1.3rem)}
.fx-sec__head{margin-bottom:clamp(24px,3.2vw,40px)}
.fx-sec__head p{font-size:1.05rem;line-height:1.6}
.fx-card__body p{font-size:.95rem;line-height:1.55}
/* Buttons: one flat style, consistent spacing between actions */
.fx-btn--primary{box-shadow:none}
.fx-actions{gap:12px}

/* Symptom tiles: photo on top, text below (no text over photos) */
.fx-problem{justify-content:flex-start;min-height:0;color:var(--fx-ink);background:#fff;border:1px solid var(--fx-gray-200);isolation:auto}
.fx-problem img{position:static;display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;z-index:auto}
.fx-problem::before{display:none}
.fx-problem:hover img{transform:none}
.fx-problem:hover{color:var(--fx-ink);box-shadow:var(--fx-shadow)}
.fx-problem__body{display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:16px 18px 18px}
.fx-problem h3{color:var(--fx-navy);font-size:1.1rem;margin:0 0 6px}
.fx-problem p{color:var(--fx-gray-600);font-size:.92rem;line-height:1.5;margin:0 0 10px}
.fx-problem span{color:var(--fx-blue-600);font-size:.92rem}
.fx-problem br{display:none}
.fx-problem__assess{margin-top:auto;padding-top:8px;color:var(--fx-navy);font-size:.88rem}
.fx-problem__assess:hover,.fx-problem__assess:focus-visible{color:var(--fx-blue-700)}
.fx-problem--noimg{background:#fff}

/* Footer: 5 balanced columns, muted links, clear headings, email on one line */
.fx-footer__grid{grid-template-columns:1.35fr 1fr 1fr 1fr 1.45fr;gap:clamp(24px,3vw,48px)}
.fx-footer h2{color:#fff;font-size:.78rem;margin-bottom:16px}
.fx-footer li{margin:0 0 11px;line-height:1.45}
.fx-footer a{color:#A9BCCF}
.fx-footer a:hover,.fx-footer a:focus-visible{color:#fff}
.fx-footer__brand p{color:#93A9BF;max-width:30ch}
.fx-footer address{color:#A9BCCF}
.fx-footer__email{white-space:nowrap;font-size:.92rem}
.fx-footer__actions{margin-top:16px!important}
.fx-footer__actions a{color:#D6E2EE;font-weight:600}
@media (max-width:1180px){
  .fx-footer__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .fx-footer__brand{grid-column:1/-1}
}
@media (max-width:767px){
  .fx-footer__grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .fx-footer__brand,.fx-footer__contact{grid-column:1/-1}
  .fx-footer li{margin-bottom:12px}

  /* Mobile density: two-up service cards and symptom tiles instead of long single-column stacks */
  .fx-paths__grid,.fx-grid--4:has(> .fx-problem){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .fx-path .fx-card__media{aspect-ratio:4/3}
  .fx-path .fx-card__body{padding:12px 12px 14px}
  .fx-path .fx-card__body h3{font-size:1rem;margin-bottom:4px}
  .fx-path .fx-card__body p{font-size:.85rem;line-height:1.45;margin-bottom:8px}
  .fx-path .fx-card__cta{font-size:.85rem}
  .fx-problem__body{padding:12px}
  .fx-problem h3{font-size:.98rem}
  .fx-problem p{font-size:.84rem;line-height:1.45}
  .fx-problem span,.fx-problem__assess{font-size:.84rem}
}
/* V7.9: card links wrap instead of being clipped in the two-per-row phone layout */
@media (max-width:767px){.fx-path .fx-card__cta{white-space:normal;overflow-wrap:anywhere;line-height:1.3}}

/* V7.6 questionnaire pages: compact hero and modest headings */
.fx-hero--compact .fx-wrap{padding-top:clamp(24px,3.5vw,44px);padding-bottom:clamp(26px,3.5vw,46px)}
.fx-hero--compact h1{font-size:clamp(1.65rem,3vw,2.3rem)}
.fx-hero--compact .fx-hero__lead{font-size:clamp(1rem,1.4vw,1.12rem);margin-bottom:0}

/* V7.6 hero: five actions in a balanced two-column grid (Schedule Inspection spans the top row), equal heights; stacked on phones */
@media (min-width:768px){
  .fx-home-hero .fx-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:10px;margin-bottom:0}
  .fx-home-hero .fx-actions .fx-btn{width:100%;padding-left:8px;padding-right:8px;text-align:center;line-height:1.25;white-space:normal}
  .fx-home-hero .fx-actions .fx-home-hero__call{align-self:center;padding:0 4px}
}
@media (min-width:981px){.fx-home-hero__copy{max-width:600px}}
.fx-home-hero__call{margin:0;color:#AFC3D8;font-size:.98rem}
@media (min-width:981px){.fx-home-hero h1.fx-home-hero__title{margin-bottom:.3em}.fx-home-hero__lead{margin-bottom:.6em}.fx-home-hero__assure{margin-bottom:.9em}}
.fx-home-hero__call a{color:#fff;font-weight:700;white-space:nowrap}
@media (min-width:1240px){.fx-home-hero .fx-actions .fx-btn{white-space:nowrap;letter-spacing:-.01em}}

/* V7.6 hero actions: four equal-height buttons in a balanced 2×2 grid at every width, balanced padding and centred
   text; the call line sits on its own line below the grid. (Commercial stays in the nav and the service cards.) */
.fx-home-hero .fx-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:10px;margin:0}
.fx-home-hero .fx-actions .fx-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;padding:12px 16px;text-align:center;line-height:1.25;white-space:normal}
/* where labels can wrap, drop the calendar icon so wrapped text stays centred; phones use tighter, still balanced padding */
@media (max-width:1180px){.fx-home-hero .fx-actions .fx-btn svg{display:none}}
@media (max-width:767px){.fx-home-hero .fx-actions .fx-btn{padding:10px 10px;font-size:.95rem}}
.fx-home-hero__copy > .fx-home-hero__call{display:block;margin:12px 0 0;padding:0;text-align:left}
@media (min-width:1240px){.fx-home-hero .fx-actions .fx-btn{white-space:nowrap}}
/* fix: hero button labels and the call line used rem, so a larger browser default font (e.g. Chrome "Large" = 20px)
   grew them ~25% inside fixed-width buttons: "Plan Your Basement Project" overflowed and "Do You Need Foundation Worx?" wrapped.
   Size them like the surrounding hero text (body is 17px) and use the reference padding so all four labels fit on one line. */
@media (min-width:768px){.fx-home-hero .fx-actions .fx-btn{font-size:16px;padding:12px 8px}}
.fx-home-hero__copy > .fx-home-hero__call{font-size:15.7px;margin-top:8px}
.fx-home-hero .fx-actions .fx-btn[href="/assess-your-home/"]{white-space:normal}

/* V8.3 accessibility and layout-stability fixes */
.fx-ba figcaption a,.fx-form-note a,.fx-sec--navy .fx-ba a:not(.fx-btn),.fx-sec--navy .fx-form-card a:not(.fx-btn),.fx-sec--navy .fx-form-note a:not(.fx-btn){color:var(--fx-blue-700)}                    /* were light-blue on white (contrast 1.9:1) */
.gform_wrapper input[type=file],.fx-form-card input[type=file]{color:var(--fx-ink)}  /* file-name text on the light field (form cards sit in navy sections) */
.fx-footer__bottom a{text-decoration:underline;text-underline-offset:2px}       /* links distinguishable from footer text */
.fx-prose p a:not(.fx-btn),.fx-content p a:not(.fx-btn),.fx-as-sub a,.fx-as-hint a{text-decoration:underline;text-underline-offset:2px}
.fx-nav__toggle{min-width:24px;min-height:24px}                                  /* 24 px minimum target size */
#fx-assess:not([data-fx-gate]){min-height:640px}                                 /* reserve space before the questionnaire renders (CLS) */
@media (min-width:768px){#fx-assess:not([data-fx-gate]){min-height:560px}}

/* V8.4 "Why Foundation Worx?" (about-us/why-us-2): concise layout, generous whitespace */
.fx-why{max-width:760px}
.fx-why h2{margin-top:0}
.fx-why h3{margin:2em 0 .6em;font-size:clamp(1.15rem,1.8vw,1.35rem)}
.fx-why p{margin:0 0 1.1em}
.fx-why ul{list-style:none;padding:0;margin:0 0 1.2em;display:grid;gap:14px}
.fx-why li{padding:14px 16px;border-left:4px solid var(--fx-blue);background:var(--fx-gray-50);border-radius:0 var(--fx-radius-sm) var(--fx-radius-sm) 0;line-height:1.6}

/* V8.4 service-area map (click-to-load) */
.fx-svc-map{margin:0 0 32px}
.fx-svc-map h2{margin:0 0 .4em}
.fx-svc-map__frame{position:relative;aspect-ratio:16/9;border-radius:var(--fx-radius);overflow:hidden;border:1px solid var(--fx-gray-200);background:#EEF4FA}
.fx-svc-map__svg{display:block;width:100%;height:100%}
.fx-svc-map__load{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);white-space:nowrap}
.fx-svc-map__frame iframe{display:block;width:100%;height:100%;border:0}
.fx-svc-map__note{font-size:.92rem;color:var(--fx-gray-600);margin:.6em 0 0}
@media (max-width:480px){.fx-svc-map__frame{aspect-ratio:4/3}}

/* V8.6 clean homepage hero: full-width navy, no photos, text left-aligned inside the standard content width, one CTA */
.fx-home-hero--clean .fx-wrap{display:block;padding-top:clamp(32px,3.6vw,52px);padding-bottom:clamp(32px,3.6vw,52px)}
.fx-home-hero--clean .fx-home-hero__copy{max-width:760px}
.fx-home-hero--clean h1.fx-home-hero__title{font-size:min(2.4rem,5.9vw);line-height:1.12;letter-spacing:-.015em;margin:0 0 .45em}  /* one line per span; the last never wraps */
.fx-home-hero--clean .fx-home-hero__lead{max-width:640px}
.fx-home-hero.fx-home-hero--clean .fx-actions{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px;grid-template-columns:none;max-width:none}
.fx-home-hero.fx-home-hero--clean .fx-actions .fx-btn{flex:0 0 auto;width:auto;min-width:240px;max-width:100%}
@media (max-width:600px){.fx-home-hero--clean .fx-wrap{padding-top:32px;padding-bottom:36px}.fx-home-hero.fx-home-hero--clean .fx-actions .fx-btn{flex:1 1 100%;width:100%;min-width:0}}

/* V8.6 hero CTA "How Can We Help?": slightly larger and more prominent; supporting line; call link stays secondary */
.fx-home-hero.fx-home-hero--clean .fx-actions .fx-btn--hero{min-height:56px;padding:16px 34px;font-size:1.08rem;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.fx-home-hero.fx-home-hero--clean .fx-actions .fx-btn--hero:hover{background:var(--fx-blue)}
.fx-home-hero--clean .fx-home-hero__support{color:#D6E2EE;margin:0 0 4px;font-size:.98rem}
.fx-home-hero--clean .fx-home-hero__assure{margin-bottom:1.1em}
