:root{
  --residential-accent:#4f63b8;
  --residential-soft:#f1f4ff;
  --business-accent:#1f2352;
  --business-soft:#eef1f8;
  --audience-line:rgba(46,48,148,.16);
  --audience-shadow:0 18px 44px rgba(20,24,62,.10);
}

html,
body{
  height:auto;
  min-height:100%;
}

.site-header .nav-rail{
  min-height:76px !important;
  padding:.35rem 0 !important;
}
.site-header .logo-img{
  width:auto !important;
  height:72px !important;
  max-width:190px !important;
  max-height:72px !important;
  object-fit:contain !important;
}

.audience-nav-list{
  overflow:visible !important;
  padding:.25rem !important;
  gap:.12rem !important;
}
.audience-nav-list > li{ position:relative; }
.audience-nav-list a,
.audience-menu__toggle{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  padding:.45rem .62rem;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#333333;
  font:inherit;
  font-size:.9rem;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}
.primary-nav .audience-nav-list a:hover,
.audience-menu__toggle:hover,
.primary-nav .audience-nav-list a.active,
.audience-menu__toggle.active{
  color:var(--brand);
  background:#eef1ff;
  box-shadow:none;
}
.audience-menu__toggle::after{
  content:"";
  width:7px;
  height:7px;
  margin-top:-3px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.audience-menu__toggle[aria-expanded="true"]::after{ transform:translateY(3px) rotate(225deg); }
.audience-menu__panel{
  position:absolute;
  top:calc(100% + .55rem);
  left:0;
  z-index:10020;
  width:min(350px, 92vw);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.1rem;
  padding:.55rem;
  border:1px solid var(--audience-line);
  border-radius:8px;
  background:#ffffff;
  box-shadow:0 22px 54px rgba(16,19,49,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.audience-menu__panel.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
@media (hover:hover) and (pointer:fine){
  .audience-menu:hover .audience-menu__panel,
  .audience-menu:focus-within .audience-menu__panel{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
}
.audience-menu__panel strong{
  display:block;
  padding:.45rem .65rem .3rem;
  color:var(--ink);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.audience-menu__panel a{
  width:100%;
  min-height:42px;
  justify-content:flex-start;
  padding:.62rem .65rem;
  border-radius:6px;
  color:#34384c;
  font-size:.88rem;
  white-space:normal;
}
.audience-menu__panel a:first-of-type{
  color:var(--brand);
  font-weight:900;
  background:#f4f6ff;
}
.audience-menu__panel a:hover{ background:#eef1ff; }
.audience-menu__toggle:focus-visible,
.audience-nav-list a:focus-visible,
.audience-mobile-nav a:focus-visible,
.audience-mobile-nav summary:focus-visible{
  outline:3px solid rgba(79,99,184,.38);
  outline-offset:2px;
}

.audience-mobile-nav{
  padding:.55rem;
  background:#ffffff;
  color:#2f3348;
}
.audience-mobile-nav > a,
.audience-mobile-nav summary{
  display:flex;
  min-height:48px;
  align-items:center;
  padding:.72rem .8rem;
  border-radius:7px;
  color:#2f3348;
  font-weight:850;
  text-decoration:none;
  cursor:pointer;
}
.audience-mobile-nav details{ border-bottom:1px solid #eceef7; }
.audience-mobile-nav summary{
  justify-content:space-between;
  list-style:none;
}
.audience-mobile-nav summary::-webkit-details-marker{ display:none; }
.audience-mobile-nav summary::after{
  content:"+";
  color:var(--brand);
  font-size:1.3rem;
  font-weight:700;
}
.audience-mobile-nav details[open] summary::after{ content:"−"; }
.audience-mobile-sub{
  display:grid;
  gap:.12rem;
  padding:0 .45rem .55rem 1rem;
  border-left:3px solid rgba(46,48,148,.14);
  margin:0 .65rem .45rem;
}
.audience-mobile-sub a{
  min-height:42px;
  display:flex;
  align-items:center;
  padding:.55rem .65rem;
  border-radius:6px;
  color:#45495d;
  font-size:.9rem;
  font-weight:760;
  text-decoration:none;
}
.audience-mobile-sub a:hover{ color:var(--brand); background:#f4f6ff; }
.audience-mobile-call{
  justify-content:center !important;
  margin-top:.45rem;
  background:var(--brand);
  color:#ffffff !important;
}

.audience-breadcrumb{
  background:#f8f9ff;
  border-bottom:1px solid rgba(46,48,148,.10);
}
.audience-breadcrumb ol{
  width:min(1160px,92%);
  min-height:42px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem;
  margin:0 auto;
  padding:.35rem 0;
  list-style:none;
  color:#666b7f;
  font-size:.82rem;
}
.audience-breadcrumb li{ display:inline-flex; align-items:center; gap:.4rem; }
.audience-breadcrumb li:not(:last-child)::after{ content:"/"; color:#9a9eb0; }
.audience-breadcrumb a{ color:var(--brand); font-weight:800; text-decoration:none; }
.audience-breadcrumb [aria-current="page"]{ color:#555a6e; }

.audience-gateway{
  position:relative;
  scroll-margin-top:92px;
  padding:clamp(28px,5vw,56px) 0;
  background:#ffffff;
}
.audience-gateway__intro{
  max-width:760px;
  margin:0 auto 1.2rem;
  text-align:center;
}
.audience-gateway__intro h2{
  margin:0 0 .45rem;
  color:#1f2352;
  font-size:clamp(1.75rem,4vw,2.65rem);
  line-height:1.08;
}
.audience-gateway__intro p{ margin:0; color:#51566d; }
.audience-choice-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.5rem;
  align-items:stretch;
}
.audience-choice-grid::after{
  content:"OR";
  position:absolute;
  top:50%;
  left:50%;
  z-index:3;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  border:1px solid rgba(46,48,148,.16);
  border-radius:50%;
  background:#ffffff;
  color:#686d82;
  box-shadow:0 8px 24px rgba(20,24,62,.10);
  font-size:.68rem;
  font-weight:900;
}
.audience-choice{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:1rem;
  min-height:230px;
  padding:clamp(1.1rem,2.8vw,1.55rem);
  border:1px solid var(--audience-line);
  border-left:6px solid var(--choice-accent);
  border-radius:8px;
  background:#ffffff;
  box-shadow:var(--audience-shadow);
}
.audience-choice--residential{
  --choice-accent:var(--residential-accent);
  --choice-soft:var(--residential-soft);
  background:var(--residential-soft);
}
.audience-choice--business{
  --choice-accent:var(--business-accent);
  --choice-soft:var(--business-soft);
  border-color:#151941;
  background:#151941;
}
.audience-choice__icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#ffffff;
  border:1px solid rgba(46,48,148,.14);
  box-shadow:0 8px 20px rgba(20,24,62,.10);
}
.audience-choice__icon img{
  width:32px;
  height:32px;
  object-fit:contain;
  opacity:.82;
}
.audience-choice h3{
  margin:0 0 .4rem;
  color:#1f2352;
  font-size:clamp(1.3rem,2.6vw,1.75rem);
}
.audience-choice p{ margin:0 0 1rem; color:#454a60; line-height:1.55; }
.audience-choice .btn{ justify-self:start; background:var(--choice-accent); color:#ffffff; }
.audience-choice--business h3{ color:#ffffff; }
.audience-choice--business p{ color:rgba(255,255,255,.78); }
.audience-choice--business .btn{
  border-color:#ffffff;
  background:#ffffff;
  color:#1f2352;
}
.audience-choice:hover{ transform:translateY(-3px); box-shadow:0 24px 56px rgba(20,24,62,.15); }
.audience-choice:focus-within{ border-color:var(--choice-accent); box-shadow:0 24px 56px rgba(20,24,62,.15); }
.audience-choice{ transition:transform .2s ease, box-shadow .2s ease; }
.audience-direct-contact{
  margin:1.1rem 0 0;
  text-align:center;
  color:#4c5167;
}
.audience-direct-contact a{ color:var(--brand); font-weight:850; }
.audience-trust-strip{
  background:#151941;
  color:#ffffff;
}
.audience-trust-strip .container{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.audience-trust-item{
  min-height:92px;
  display:grid;
  align-content:center;
  padding:1rem;
  border-right:1px solid rgba(255,255,255,.13);
}
.audience-trust-item:last-child{ border-right:0; }
.audience-trust-item strong{ font-size:1.18rem; color:#ffffff; }
.audience-trust-item span{ color:rgba(255,255,255,.72); font-size:.86rem; }

.business-capabilities{
  padding:clamp(42px,6vw,72px) 0;
  background:#f1f3f9;
}
.business-capabilities__head{
  display:grid;
  grid-template-columns:minmax(0,.7fr) minmax(280px,.3fr);
  gap:1.2rem;
  align-items:end;
  margin-bottom:1rem;
}
.business-capabilities__head p{ margin:0; color:#565b70; }
.business-capabilities__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
}
.business-capability{
  min-height:220px;
  display:flex;
  flex-direction:column;
  padding:1.2rem;
  border:1px solid rgba(31,35,82,.15);
  border-radius:8px;
  background:#ffffff;
  box-shadow:0 12px 30px rgba(20,24,62,.08);
}
.business-capability h3{ margin:0 0 .45rem; color:#1f2352; font-size:1.18rem; }
.business-capability p{ margin:0 0 1rem; color:#52576b; }
.business-capability a{ margin-top:auto; color:var(--brand); font-weight:850; text-decoration:none; }
.business-capability a::after{ content:" →"; }

.audience-hub{ --hub-accent:var(--brand); --hub-soft:#f2f4ff; }
.residential-hub{ --hub-accent:var(--residential-accent); --hub-soft:var(--residential-soft); }
.business-hub{ --hub-accent:var(--business-accent); --hub-soft:var(--business-soft); }
.audience-hub .hero{
  background:linear-gradient(180deg,#ffffff,var(--hub-soft));
}
.audience-hub .hero-card{ border-top:5px solid var(--hub-accent); }
.hub-summary{
  padding:1rem 0;
  background:var(--hub-accent);
  color:#ffffff;
}
.hub-summary .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.hub-summary p{ margin:0; color:rgba(255,255,255,.86); }
.hub-summary a{ color:#ffffff; font-weight:900; }
.hub-service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}
.hub-service-card{
  min-height:190px;
  display:flex;
  flex-direction:column;
  padding:1rem;
  border:1px solid var(--audience-line);
  border-top:4px solid var(--hub-accent);
  border-radius:8px;
  background:#ffffff;
  box-shadow:0 10px 26px rgba(20,24,62,.07);
}
.hub-service-card h3{ margin:0 0 .4rem; color:#1f2352; font-size:1.08rem; }
.hub-service-card p{ margin:0 0 .85rem; color:#555a6f; font-size:.92rem; }
.hub-service-card a{ margin-top:auto; color:var(--hub-accent); font-weight:850; text-decoration:none; }
.hub-service-card a::after{ content:" →"; }
.hub-process{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
  counter-reset:hub-step;
}
.hub-process article{
  counter-increment:hub-step;
  padding:1rem;
  border-left:4px solid var(--hub-accent);
  background:#ffffff;
  box-shadow:0 8px 22px rgba(20,24,62,.06);
}
.hub-process article::before{
  content:counter(hub-step, decimal-leading-zero);
  display:block;
  margin-bottom:.45rem;
  color:var(--hub-accent);
  font-size:.82rem;
  font-weight:900;
}
.hub-process h3{ margin:0 0 .3rem; font-size:1rem; }
.hub-process p{ margin:0; color:#5a5f73; font-size:.9rem; }
.hub-cta{
  padding:clamp(38px,6vw,64px) 0;
  background:#151941;
  color:#ffffff;
}
.hub-cta__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1.2rem;
  align-items:center;
}
.hub-cta h2{ color:#ffffff; }
.hub-cta p{ margin:.4rem 0 0; color:rgba(255,255,255,.76); }
.hub-cta__actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.hub-cta .btn--ghost{ color:#ffffff; border-color:rgba(255,255,255,.3); background:transparent; }

body[data-nav-key="home"] #home.hero-redesign{
  background:#f4f6ff !important;
}
body[data-nav-key="home"] #home .hero-surface{
  display:none !important;
}
body[data-nav-key="home"] #home .hero-copy-card{
  overflow:visible;
  padding-left:0;
  padding-right:0;
  border:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
body[data-nav-key="home"] #home .hero-copy-card::before{
  display:none;
}
body[data-nav-key="home"] #home .hero-image-shell::before{
  content:"";
  position:absolute;
  inset:20px -18px -18px 20px;
  z-index:-1;
  border-radius:28px;
  background:#dfe4fb;
}
body[data-nav-key="home"] #home .photo-frame img{
  border:1px solid rgba(255,255,255,.85);
  box-shadow:0 24px 58px rgba(20,24,62,.17);
}
body #home .hero-actions-clean{
  display:flex !important;
  flex-wrap:wrap;
  gap:.6rem;
}
body #home .hero-actions-clean .btn{ display:inline-flex !important; }
body[data-nav-key="home"] #home .hero-actions-clean .hero-learn-more{
  border-color:rgba(46,48,148,.22) !important;
  background:#ffffff !important;
  color:var(--brand) !important;
  box-shadow:0 12px 26px rgba(20,24,62,.10) !important;
}
body[data-nav-key="home"]:not(.contact-ready) .fab-call,
body[data-nav-key="home"]:not(.contact-ready) .fab-email{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.mobile-floating-contact{
  transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
}
body:not(.contact-ready) .mobile-floating-contact{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(8px);
}
body.contact-ready .mobile-floating-contact{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.hero-redesign .scroll-cue{
  display:none !important;
}

@media (max-width:1100px){
  :root{ --header-h:72px !important; }
  body{ padding-top:72px !important; }
  .site-header .nav-rail{ min-height:60px !important; }
  .site-header .logo-img{
    height:60px !important;
    max-width:150px !important;
    max-height:60px !important;
  }
  .site-header .primary-nav,
  .site-header .nav-actions{ display:none !important; }
  .site-header .nav-toggle-btn{ display:flex !important; }
  body.menu-open{
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }
  .site-header .mobile-drawer{
    position:fixed !important;
    inset:72px 0 auto !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:calc(100dvh - 84px) !important;
    background:transparent !important;
    opacity:0;
    visibility:hidden;
    pointer-events:none !important;
    transition:opacity .2s ease, visibility .2s ease !important;
  }
  .site-header .mobile-drawer.open{
    height:auto !important;
    opacity:1;
    visibility:visible;
    pointer-events:auto !important;
  }
  .site-header .mobile-drawer .mobile-menu{
    position:relative !important;
    inset:auto !important;
    max-height:calc(100dvh - 84px) !important;
    height:auto !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    background:#ffffff !important;
    border-top:1px solid #eceef7 !important;
    border-bottom:1px solid #e2e5f1 !important;
    box-shadow:0 18px 36px rgba(16,19,49,.12) !important;
    transform:translateY(-14px) !important;
    opacity:0;
    transition:transform .22s ease, opacity .18s ease !important;
  }
  .site-header .mobile-drawer.open .mobile-menu{
    transform:translateY(0) !important;
    opacity:1;
  }
  body[data-nav-key="home"] #home .hero-image-shell::before{
    inset:12px -10px -10px 12px;
    border-radius:22px;
  }
}
@media (min-width:1101px){
  :root{ --header-h:84px !important; }
  body{ padding-top:84px !important; }
  .site-header .mobile-drawer{ display:none !important; }
  #home.hero-redesign{
    min-height:clamp(640px, calc(100vh - 230px), 760px) !important;
    padding-top:24px !important;
    padding-bottom:24px !important;
  }
}
@media (max-width:820px){
  .audience-choice-grid,
  .business-capabilities__grid,
  .hub-service-grid{ grid-template-columns:1fr 1fr; }
  .audience-trust-strip .container{ grid-template-columns:1fr 1fr; }
  .audience-trust-item:nth-child(2){ border-right:0; }
  .audience-trust-item:nth-child(-n+2){ border-bottom:1px solid rgba(255,255,255,.13); }
  .business-capabilities__head{ grid-template-columns:1fr; align-items:start; }
  .hub-process{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  .audience-breadcrumb [aria-current="page"]{ display:none; }
  .audience-breadcrumb li:nth-last-child(2)::after{ display:none; }
  .audience-gateway{ padding:26px 0; }
  .audience-gateway__intro{ text-align:left; }
  .audience-choice-grid,
  .business-capabilities__grid,
  .hub-service-grid,
  .hub-process{ grid-template-columns:1fr; }
  .audience-choice-grid{ gap:.8rem; }
  .audience-choice-grid::after{ display:none; }
  .audience-choice{
    min-height:0;
    grid-template-columns:48px minmax(0,1fr);
    gap:.72rem;
    padding:.9rem;
  }
  .audience-choice__icon{ width:48px; height:48px; font-size:1.15rem; }
  .audience-choice h3{ font-size:1.18rem; }
  .audience-choice p{ font-size:.9rem; line-height:1.45; }
  .audience-choice .btn{ width:100%; min-height:46px; }
  .audience-direct-contact{ text-align:left; font-size:.92rem; }
  .audience-trust-strip .container{ width:100%; }
  .audience-trust-item{ min-height:76px; padding:.75rem 1rem; }
  .audience-trust-item strong{ font-size:1rem; }
  .business-capability,
  .hub-service-card{ min-height:0; }
  .hub-summary .container,
  .hub-cta__inner{ display:grid; grid-template-columns:1fr; }
  .hub-cta__actions{ display:grid; grid-template-columns:1fr; }
  .hub-cta__actions .btn{ width:100%; }
  body #home .hero-actions-clean{ display:grid !important; grid-template-columns:1fr !important; }
  body #home .hero-actions-clean .btn{ width:100% !important; }
}
@media (prefers-reduced-motion:reduce){
  .audience-choice,
  .audience-menu__panel,
  .audience-menu__toggle::after{ transition:none !important; }
}
