/* v12 final layout: symmetrical grid header, no orphan ribbons or mock admin */
:root{--site-width:1220px;--navheight:66px}
.site-header{position:sticky!important;top:0!important;z-index:1000!important;background:rgba(250,250,252,.97)!important;color:#252831!important;border-bottom:1px solid #e6e8eb!important;backdrop-filter:blur(20px)}
.site-header .nav-shell{display:grid!important;grid-template-columns:clamp(126px,12vw,168px) minmax(0,1fr)!important;align-items:center!important;justify-content:space-between!important;width:min(100%,1320px)!important;max-width:1320px!important;height:66px!important;gap:clamp(16px,2.7vw,42px)!important;padding:0 clamp(18px,2.1vw,28px)!important;margin:0 auto!important}
.site-header .brand{display:flex!important;width:auto!important;min-width:0!important;justify-content:flex-start!important;align-items:center!important;flex:none!important;margin:0!important;padding:0!important}
.site-header .brand img{display:block!important;width:100%!important;max-width:166px!important;max-height:35px!important;height:auto!important;object-fit:contain!important}
.site-header .desktop-nav{display:flex!important;align-items:center!important;justify-content:space-between!important;min-width:0!important;max-width:none!important;width:100%!important;flex:1!important;gap:12px!important;padding:0!important;margin:0!important;overflow:visible!important}
.site-header .desktop-nav a{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;padding:12px 0!important;font-size:clamp(11px,1.02vw,13.5px)!important;font-weight:550!important;line-height:1.2!important;white-space:nowrap!important;letter-spacing:-.035em!important;color:#3b4149!important;opacity:1!important;transition:color .2s}
.site-header .desktop-nav a:hover,.site-header .desktop-nav a:focus-visible{color:#0071e3!important}
.mobile-nav-text{display:none;font:inherit;color:#2d3643;border:1px solid #d9dde5;background:#fff;border-radius:999px;padding:9px 16px;font-weight:650;font-size:13px;justify-self:end}
.mobile-nav-panel{display:none;position:absolute;left:0;right:0;top:100%;background:rgba(250,250,252,.99);box-shadow:0 15px 30px #17233a18;padding:10px 18px 20px;max-height:80vh;overflow-y:auto}
.mobile-nav-panel a{display:block;font-size:16px;font-weight:580;color:#253041;padding:13px 10px;border-bottom:1px solid #e6e8ee}
.mobile-nav-panel[hidden]{display:none!important}
/* Prevent old v8-v11 rules from over-expanding banners/cards. */
.solutions{padding:78px 18px 18px!important}
.solutions .section-heading{max-width:var(--site-width)!important;padding:0 16px!important;margin:0 auto 38px!important}
.solutions .tile-grid{width:100%!important;max-width:var(--site-width)!important;margin:0 auto!important;padding:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.solutions .service-tile{height:492px!important;min-height:0!important;max-height:none!important;border-radius:24px!important}
.solutions .tile-content{padding:42px 20px 0!important}
.solutions .tile-content h3{font-size:clamp(25px,2.5vw,35px)!important}
.solutions .tile-content>p:not(.tile-eyebrow){font-size:14px!important;line-height:1.5!important}
.solutions .tile-photo{height:54%!important}
.solutions .tile-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}
.case-container,.board-container,.wide-container,.admin-container{max-width:var(--site-width)!important}
.nav-tools,.board-ribbon,.intro-strip,.admin-section,.search-panel,#searchDesc,#searchResults{display:none!important}
@media(max-width:1040px){
 :root{--navheight:58px}
 .site-header .nav-shell{height:58px!important;grid-template-columns:minmax(120px,165px) 1fr!important}
 .site-header .desktop-nav{display:none!important}
 .mobile-nav-text{display:inline-block!important}
 .mobile-nav-panel:not([hidden]){display:block!important}
 .solutions .service-tile{height:438px!important}
}
@media(max-width:767px){
 :root{--navheight:54px}
 .site-header .nav-shell{height:54px!important;padding:0 16px!important;grid-template-columns:142px 1fr!important}
 .site-header .brand img{max-height:29px!important}
 .solutions{padding:60px 12px 12px!important}
 .solutions .section-heading{margin-bottom:26px!important;padding:0 10px!important}
 .solutions .tile-grid{grid-template-columns:1fr!important;gap:12px!important}
 .solutions .service-tile{height:430px!important;border-radius:20px!important}
 .solutions .tile-photo{height:55%!important}
 .solutions .tile-content{padding:30px 16px 0!important}
 .solutions .tile-content h3{font-size:29px!important}
}
/* The user may disable decorative animation in administrator settings. */
.no-motion .reveal{opacity:1!important;transform:none!important;transition:none!important}
.no-motion .banner-hover,.no-motion .banner-hover img,.no-motion .service-tile,.no-motion .service-tile img{transition:none!important;transform:none!important}

/* v13: equal left/right header gutters, evenly distributed navigation */
:root{--header-gutter:clamp(22px,2.7vw,54px)}
.site-header .nav-shell{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
  grid-template-columns:clamp(130px,11.5vw,166px) minmax(0,1fr)!important;
  gap:clamp(22px,3.3vw,62px)!important;
  padding-left:var(--header-gutter)!important;
  padding-right:var(--header-gutter)!important;
  justify-content:stretch!important;
}
.site-header .brand img{max-width:166px!important}
.site-header .desktop-nav{
  display:flex!important;
  justify-content:space-between!important;
  gap:clamp(8px,1vw,18px)!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
}
.site-header .desktop-nav a{flex:0 0 auto!important;font-size:clamp(11.5px,1.03vw,14px)!important}
@media(max-width:1100px){
  .site-header .nav-shell{grid-template-columns:clamp(120px,12vw,145px) 1fr!important;gap:clamp(16px,2vw,30px)!important}
  .site-header .desktop-nav a{font-size:11.5px!important}
}
@media(max-width:1040px){
  .site-header .nav-shell{grid-template-columns:minmax(120px,165px) minmax(0,1fr)!important}
  .site-header .desktop-nav{display:none!important}
}
@media(max-width:767px){
  :root{--header-gutter:16px}
  .site-header .nav-shell{grid-template-columns:142px minmax(0,1fr)!important}
}

/* Overflow protection for longer admin-configured menu labels. */
.site-header.nav-overflow .nav-shell{grid-template-columns:minmax(120px,165px) minmax(0,1fr)!important}
.site-header.nav-overflow .desktop-nav{display:none!important}
.site-header.nav-overflow .mobile-nav-text{display:inline-block!important}
.site-header.nav-overflow .mobile-nav-panel:not([hidden]){display:block!important}

/* Authenticated CMS visual controls; these rules intentionally override earlier theme values. */
:root{--cms-page-bg:#ffffff;--cms-hero-bg:#0f1724;--cms-accent:#0071e3;--cms-header-bg:#fafafc;--cms-banner-height:470px;--cms-card-radius:24px}
body{background:var(--cms-page-bg)!important}.site-header{background:var(--cms-header-bg)!important}.feature-hero.dark-section{background:var(--cms-hero-bg)!important}.pill-blue,.round-arrow{background:var(--cms-accent)!important}.text-link,.access-arrow{color:var(--cms-accent)!important}.solutions .service-tile{border-radius:var(--cms-card-radius)!important}.feature-visual .photo-frame{max-height:var(--cms-banner-height)!important}.feature-visual .photo-frame img{width:100%;height:var(--cms-banner-height)!important;object-fit:cover!important;object-position:center!important}
:root[data-card-columns="1"] .solutions .tile-grid{grid-template-columns:1fr!important;max-width:min(760px,var(--site-width))!important}
@media(max-width:767px){.feature-visual .photo-frame img{height:min(var(--cms-banner-height),360px)!important}:root[data-card-columns="1"] .solutions .tile-grid{grid-template-columns:1fr!important}}


/* v15 header alignment: do not stretch menu items across full width */
.site-header .nav-shell{grid-template-columns:clamp(130px,12vw,170px) minmax(0,1fr)!important;justify-content:flex-start!important;gap:clamp(22px,2.6vw,42px)!important;width:min(100%,1280px)!important;max-width:1280px!important;padding:0 clamp(18px,2vw,28px)!important}
.site-header .brand{justify-content:flex-start!important}
.site-header .brand img{max-width:180px!important;max-height:36px!important}
.site-header .desktop-nav{justify-content:flex-start!important;align-items:center!important;width:auto!important;max-width:none!important;gap:clamp(24px,2.5vw,52px)!important;padding:0!important;margin:0!important;flex-wrap:nowrap!important}
.site-header .desktop-nav a{flex:0 0 auto!important;justify-content:flex-start!important;padding:0!important;font-size:clamp(11.5px,0.95vw,14px)!important;line-height:66px!important;height:66px!important}
.site-header .desktop-nav a:last-child{margin-right:0!important}
@media (max-width:1280px){.site-header .nav-shell{width:min(100%,1220px)!important}.site-header .desktop-nav{gap:clamp(18px,2vw,34px)!important}.site-header .desktop-nav a{font-size:12px!important}}
@media (max-width:1100px){.site-header .nav-shell{grid-template-columns:clamp(120px,13vw,160px) minmax(0,1fr)!important;gap:18px!important;padding:0 18px!important}.site-header .desktop-nav{gap:18px!important}.site-header .desktop-nav a{font-size:11.3px!important;height:60px!important;line-height:60px!important}}
@media (max-width:900px){.site-header .nav-shell{grid-template-columns:minmax(120px,165px) minmax(0,1fr)!important}.site-header .desktop-nav{display:none!important}.mobile-nav-text{display:inline-block!important;justify-self:end!important}}
