/* MS Facility Solutions, site-wide polish layer v56 (11/09/2026). Loaded last on every page.
   Light by default. Dark only via the manual toggle. Photos and layout untouched; this is motion, depth, focus and type. */

/* ---------- selection, focus, scrollbars ---------- */
::selection{background:rgba(47,111,209,.22);color:var(--ink)}
:focus-visible{outline:3px solid rgba(47,111,209,.55);outline-offset:3px;border-radius:6px}
.btn:focus-visible{outline-offset:4px}
html{scrollbar-color:#c7d0dc transparent}

/* ---------- buttons: light sweep + press ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn:after{content:"";position:absolute;top:-40%;bottom:-40%;left:-30%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-160%) skewX(-18deg);transition:transform .7s var(--ease);pointer-events:none;z-index:-1}
.btn:hover:after{transform:translateX(420%) skewX(-18deg)}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-blue:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 2px 4px rgba(31,79,158,.3),0 16px 34px -8px rgba(47,111,209,.6)}

/* ---------- nav: underline that draws in ---------- */
.nav-links a{position:relative}
.nav-links a:not(.active):before{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.38rem;height:2px;border-radius:2px;background:var(--v2-grad);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:not(.active):hover:before{transform:scaleX(1)}
.nav-links a:hover{background:transparent}

/* ---------- interior hero: faint engineering grid ---------- */
.pagehero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(47,111,209,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(47,111,209,.07) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:radial-gradient(70% 70% at 50% 40%,#000 30%,transparent 100%);mask-image:radial-gradient(70% 70% at 50% 40%,#000 30%,transparent 100%)}
.pagehero .wrap{position:relative;z-index:1}

/* ---------- trust strip: live dots ---------- */
.v2-strip .it i{animation:v56pulse 2.4s ease-in-out infinite}
.v2-strip .it:nth-child(2) i{animation-delay:.6s}.v2-strip .it:nth-child(3) i{animation-delay:1.2s}.v2-strip .it:nth-child(4) i{animation-delay:1.8s}
@keyframes v56pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.v2-strip .it{transition:background .3s}
.v2-strip .it:hover{background:var(--sky)}

/* ---------- cards: gradient hairline on hover ---------- */
.pcard,.mini,.v2-value,.stat,.b2b-card{position:relative}
.pcard:before,.mini:before,.b2b-card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(47,111,209,.55),rgba(124,92,240,.35) 50%,transparent 80%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .45s var(--ease);pointer-events:none;z-index:2}
.pcard:hover:before,.mini:hover:before,.b2b-card:hover:before{opacity:1}

/* ---------- stats: tabular numbers ---------- */
.stat b,.cov-stats b,[data-count]{font-variant-numeric:tabular-nums}

/* ---------- long-form articles: a real reading measure ---------- */
article .wrap,article.post .wrap{max-width:780px}
article h2{margin-top:2.2em;letter-spacing:-.02em}
article h3{margin-top:1.6em}
article p,article li{font-size:1.06rem;line-height:1.75}
article img{border-radius:18px;box-shadow:var(--shadow)}
article blockquote{border-left:3px solid var(--accent);padding:4px 0 4px 20px;color:var(--navy);font-size:1.12rem;margin:1.6em 0}

/* ---------- footer: quieter, tighter ---------- */
footer .foot-bottom{font-size:.8rem}
footer a{transition:color .2s,transform .2s;display:inline-block}
footer ul a:hover{color:#fff;transform:translateX(3px)}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){.btn:after,.v2-strip .it i{animation:none;transition:none}}

/* ---------- nav: six links fit on one line ---------- */
.nav-links a{white-space:nowrap;padding:.55rem .7rem;font-size:.88rem}
.nav-links{gap:2px}
@media(max-width:1180px){.nav-links a{padding:.5rem .55rem;font-size:.84rem}}
@media(max-width:1060px){.nav-links a[href='/commercial']{display:none}}

/* ---------- header: links share the row instead of floating over the phone (v56.1) ---------- */
@media(min-width:901px){
  .nav{gap:14px}
  .nav-links{position:static;transform:none;flex:1 1 auto;justify-content:center;min-width:0;flex-wrap:nowrap}
  .nav-right{flex-shrink:0}
  .brand{flex-shrink:0}
}
@media(min-width:901px) and (max-width:1280px){.nav-phone{display:none}}
