/* Novaj Tech theme v8 (Nov 2026). Loads after each page's own styles.
   Brand: navy #162B4E, ink #111111, slate #2B2F36, white. Type: Inter, with Inter Display for headlines.
   Navy and white only. Main buttons are navy on light areas and white on navy areas.
   To change the look of the whole site, edit this file and save it under a new name (v9),
   because files in /assets are cached for a year. */

@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-regular.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-medium.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-semibold.woff) format('woff')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-bold.woff) format('woff')}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-display-medium.woff) format('woff')}
@font-face{font-family:'Inter Display';font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/fonts/inter-display-semibold.woff) format('woff')}

/* ---------- Tokens ---------- */
:root{
  --font-display:'Inter Display','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'Inter',system-ui,sans-serif;

  --nv-ink:#111111;
  --nv-body:#2B2F36;
  --nv-night:#0B1730;
  --nv-navy:#162B4E;
  --nv-navy-deep:#0B1730;
  --nv-dawn:#FFB454;
  --nv-dawn-hi:#FFC574;

  /* the old bright blue family, as navy tones */
  --nv-blue:#2E4C80;
  --nv-blue-deep:#162B4E;
  --nv-sky:#8EA6CC;
  --nv-blue-light:#A9BCDB;
  --nv-blue-tint:#EEF2F8;
  --nv-violet:#2E4C80;
  --nv-violet-light:#A9BCDB;
  --nv-mint:#8EA6CC;
  --nv-mint-light:#A9BCDB;

  --nv-page:#FFFFFF;
  --nv-white:#FFFFFF;
  --nv-off-white:#F4F6FA;
  --nv-subtle:#F4F6FA;
  --nv-border:#E0E6EE;
  --nv-border-soft:#EAEEF4;
  --nv-border-strong:#CDD6E3;

  --nv-grad-brand:linear-gradient(140deg,#2E4C80,#162B4E);
  --nv-grad-text:linear-gradient(120deg,#FFFFFF,#C9D6EA);
  --nv-grad-cta:#162B4E;

  /* morning sky, used behind the top of every inner page */
  --nv-hero-light:
    radial-gradient(1100px 620px at 64% -24%,rgba(169,188,219,.5),rgba(169,188,219,0) 62%),
    linear-gradient(180deg,#E8EEF8 0%,#F5F8FC 56%,#FFFFFF 100%);
  /* night sky, used behind dark page tops and bands */
  --nv-sky-bg:
    radial-gradient(1100px 720px at 80% -20%,rgba(46,76,128,.55),rgba(46,76,128,0) 60%),
    linear-gradient(180deg,#0B1730 0%,#12244A 62%,#162B4E 100%);

  --shadow-btn:0 10px 24px -14px rgba(11,23,48,.7);
  --shadow-card-hover:0 0 0 1px rgba(22,43,78,.14),0 22px 44px -28px rgba(11,23,48,.5);
  --ease:cubic-bezier(.2,.7,.2,1);
}

html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);letter-spacing:-.005em;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:#162B4E;color:#fff}

/* ---------- Type ---------- */
main h1{font-family:var(--font-display)!important;font-weight:600!important;font-size:clamp(38px,5vw,64px)!important;line-height:1.03!important;letter-spacing:-.035em!important;text-wrap:balance}
main h2[style*="clamp("]{font-family:var(--font-display)!important;font-weight:600!important;font-size:clamp(28px,3.5vw,44px)!important;line-height:1.07!important;letter-spacing:-.03em!important;text-wrap:balance}
main h2,main h3{font-family:var(--font-display);letter-spacing:-.018em}
main h3[style*="font-weight:700"]{font-weight:600!important}
main p{text-wrap:pretty}

/* ---------- Dark areas: header bar, footer and navy bands. Accents turn light so they read on navy. ---------- */
footer,
[style*="background:var(--nv-sky-bg)"],
[style*="background:var(--nv-navy"],
[style*="background:var(--nv-blue)"],
[style*="background:linear-gradient(120deg,rgba(12,18,33"]{
  --nv-blue:#C9D6EA;
  --nv-blue-deep:#E3E9F3;
  --nv-sky:#A9BCDB;
  --nv-grad-cta:#FFFFFF;
}
[style*="background:var(--nv-blue)"]{background:var(--nv-navy)!important}
/* full-width navy bands read as evening: deep at the top, a little first light along the bottom edge */
main>section[style*="background:var(--nv-navy)"]{background:radial-gradient(1200px 440px at 50% 132%,rgba(110,150,220,.28),rgba(110,150,220,0) 64%),linear-gradient(180deg,#0E1D3A 0%,#162B4E 100%)!important}

/* Soft blurred color blobs behind sections are gone. The sky gradients above do that job. */
main>section>div[aria-hidden="true"]:first-child>div[style*="filter:blur"]{display:none!important}

/* ---------- Buttons: one system. Navy on light areas, amber on navy areas, outline for the second choice. ---------- */
.nv-b1,.nv-epic,.nv-b2{
  border-radius:999px!important;
  font-family:var(--font-body)!important;font-weight:600!important;letter-spacing:-.005em!important;
  transition:transform .25s var(--ease),background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .25s ease!important;
  background-image:none!important;-webkit-tap-highlight-color:transparent;
}
.nv-b1,.nv-epic{background-color:#162B4E!important;color:#fff!important;border:0!important;box-shadow:0 10px 22px -14px rgba(11,23,48,.75)!important}
.nv-b1:hover,.nv-epic:hover{background-color:#22407A!important;transform:translateY(-1px);box-shadow:0 16px 30px -16px rgba(11,23,48,.8)!important}
.nv-b1:active,.nv-epic:active,.nv-b2:active{transform:translateY(0) scale(.98)}
.nv-epic::after{display:none!important}
/* the arrow chip inside buttons is retired; the button is the whole target */
.nv-epic>svg{display:none!important}
.nv-bi{display:none!important}
.nv-b1.nv-bc{padding:13px 24px!important;gap:0!important}

footer .nv-b1,
[style*="background:var(--nv-sky-bg)"] .nv-b1,[style*="background:var(--nv-sky-bg)"] .nv-epic,
[style*="background:var(--nv-navy"] .nv-b1,[style*="background:var(--nv-navy"] .nv-epic,
[style*="background:var(--nv-blue)"] .nv-b1,[style*="background:var(--nv-blue)"] .nv-epic{
  background-color:#FFFFFF!important;color:#162B4E!important;box-shadow:0 12px 30px -18px rgba(0,0,0,.6)!important}
footer .nv-b1:hover,
[style*="background:var(--nv-sky-bg)"] .nv-b1:hover,[style*="background:var(--nv-sky-bg)"] .nv-epic:hover,
[style*="background:var(--nv-navy"] .nv-b1:hover,[style*="background:var(--nv-navy"] .nv-epic:hover,
[style*="background:var(--nv-blue)"] .nv-b1:hover,[style*="background:var(--nv-blue)"] .nv-epic:hover{background-color:#E6ECF5!important}

#nv-mobile-overlay .nv-b1{background-color:#FFFFFF!important;color:#162B4E!important;box-shadow:none!important}
.nv-b2{background-color:transparent!important;border:1px solid rgba(255,255,255,.38)!important;color:#fff!important;box-shadow:none!important}
.nv-b2:hover{background-color:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.7)!important;transform:translateY(-1px)}
.nv-b2.nv-b2l{background-color:#fff!important;border-color:#C5CFDE!important;color:#162B4E!important}
.nv-b2.nv-b2l:hover{border-color:#162B4E!important;background-color:#fff!important}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #2E4C80;outline-offset:3px;border-radius:4px}
footer a:focus-visible,[style*="background:var(--nv-sky-bg)"] a:focus-visible,[style*="background:var(--nv-navy"] a:focus-visible{outline-color:#FFFFFF}

/* ---------- Cards: flat, one hairline, no resting shadow. Linked cards answer on hover. ---------- */
.nv-card,.nv-epic-card,.nvp3,.nv-fig{transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease}
html .nv-card,html[data-cards] .nv-card,.nv-epic-card,.nvp3{border-radius:14px!important;border-color:var(--nv-border)!important;box-shadow:none!important}
main [data-float]:not(.nv-b1):not(.nv-b2){box-shadow:none!important}
a.nv-card:hover,a.nv-epic-card:hover,a.nvp3:hover{transform:translateY(-2px)!important;border-color:#162B4E!important;box-shadow:0 22px 44px -30px rgba(11,23,48,.55)!important}
.nv-epic-card::after{display:none!important}

/* Questions: plain rows with a hairline, no boxes. */
main details[style*="border:1px solid var(--nv-border)"]{background:transparent!important;border:0!important;border-top:1px solid var(--nv-border-strong)!important;border-radius:0!important;margin-bottom:0!important;padding-left:0!important;padding-right:0!important;box-shadow:none!important}
main details[style*="border:1px solid var(--nv-border)"]:last-of-type{border-bottom:1px solid var(--nv-border-strong)!important}
main details>summary{font-family:var(--font-display)}
main details>summary::-webkit-details-marker{display:none}

/* Photos: slow, small zoom on hover inside their frame. */
.nv-fig{overflow:hidden}
.nv-fig img{transition:transform .8s var(--ease)}
.nv-fig:hover img{transform:scale(1.03)}

/* ---------- Scroll motion ----------
   Blocks marked nv-reveal get the class "in" from nv-static.js when they scroll into view.
   The block itself stays put. Its parts arrive one after another: text rises, big headings unroll,
   cards and list rows follow in sequence, photos wipe open while the picture settles.
   Only opacity, translate, scale and clip-path move, so nothing reflows. */
:root{--ease-out:cubic-bezier(.16,1,.3,1)}
@keyframes nvRise{from{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}
@keyframes nvHead{from{opacity:0;translate:0 .4em;clip-path:inset(0 0 100% 0)}to{opacity:1;translate:0 0;clip-path:inset(-15% -6% -32% -6%)}}
@keyframes nvWipe{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes nvSettle{from{scale:1.12}to{scale:1}}
@keyframes nvMark{from{opacity:0;translate:0 30%}to{opacity:.13;translate:0 0}}
.nv-reveal{transition:none!important}
html.nv-js main .nv-reveal:not(.in),html.nv-js footer .nv-reveal:not(.in){opacity:1!important;transform:none!important}
html.nv-js main .nv-reveal:not(.in)>*{opacity:0}
main .nv-reveal.in>*{animation:nvRise .9s var(--ease-out) backwards;animation-delay:calc(var(--nvi,0)*.07s)}
main .nv-reveal>*:nth-child(2){--nvi:1}
main .nv-reveal>*:nth-child(3){--nvi:2}
main .nv-reveal>*:nth-child(4){--nvi:3}
main .nv-reveal>*:nth-child(5){--nvi:4}
main .nv-reveal>*:nth-child(6){--nvi:5}
main .nv-reveal>*:nth-child(7){--nvi:6}
main .nv-reveal>*:nth-child(8){--nvi:7}
main .nv-reveal>*:nth-child(9){--nvi:8}
main .nv-reveal>*:nth-child(n+10){--nvi:9}
/* big headings unroll from their baseline */
main .nv-reveal.in h2[style*="clamp("],main.hx .nv-reveal.in h2{animation:nvHead 1s var(--ease-out) backwards;animation-delay:.04s}
/* cards and boxed items follow one by one */
html.nv-js main .nv-reveal:not(.in) :is(.nv-card,.nvp3,[data-float]){opacity:0}
main .nv-reveal.in :is(.nv-card,.nvp3,[data-float]){animation:nvRise .8s var(--ease-out) backwards;animation-delay:calc(.1s + var(--nvk,0)*.07s)}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(2){--nvk:1}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(3){--nvk:2}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(4){--nvk:3}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(5){--nvk:4}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(6){--nvk:5}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(7){--nvk:6}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(8){--nvk:7}
main .nv-reveal :is(.nv-card,.nvp3,[data-float]):nth-child(n+9){--nvk:8}
/* photos wipe open while the picture settles */
main .nv-reveal.in :is(.nv-fig,.hx-ph,.hx-about-ph){animation:nvWipe 1.1s var(--ease-out) backwards}
main .nv-reveal.in :is(.nv-fig,.hx-ph,.hx-about-ph) img{animation:nvSettle 1.5s var(--ease-out) backwards}
/* the wordmark at the end of the footer rises into place */
html.nv-js footer .nv-foot-mark.nv-reveal:not(.in){opacity:0!important}
footer .nv-foot-mark.nv-reveal.in{animation:nvMark 1.3s var(--ease-out) backwards}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .nv-fig:hover img,a.nv-card:hover,.nv-epic-card:hover,a.nvp3:hover,.nv-b1:hover,.nv-b2:hover{transform:none!important}
  html.nv-js main .nv-reveal:not(.in)>*,html.nv-js main .nv-reveal:not(.in) :is(.nv-card,.nvp3,[data-float]){opacity:1!important}
  main .nv-reveal.in>*,main .nv-reveal.in :is(.nv-card,.nvp3,[data-float],.nv-fig,.hx-ph,.hx-about-ph,h2,img),footer .nv-foot-mark.nv-reveal.in{animation:none!important}
  html.nv-js footer .nv-foot-mark.nv-reveal:not(.in){opacity:.13!important}
}
@media print{
  main .nv-reveal>*,main .nv-reveal :is(.nv-card,.nvp3,[data-float],.nv-fig,h2){opacity:1!important;animation:none!important;clip-path:none!important;translate:none!important;scale:none!important}
  footer .nv-foot-mark{display:none!important}
}

/* ---------- Project pages: "On this page" card ---------- */
.nv-toc{background:#fff!important;border:1px solid var(--nv-border)!important;box-shadow:none!important}
.nv-toc-label{color:var(--nv-blue)!important}
.nv-toc-list{border-left-color:rgba(22,43,78,.18)!important}
.nv-toc-list a{color:var(--nv-ink)!important}
.nv-toc-list a::before{background:#2E4C80!important;box-shadow:0 0 0 3px rgba(46,76,128,.15)!important}
.nv-toc-list a:hover{color:#2E4C80!important}
.nv-toc-list a .nv-toc-beat,.nv-toc-list a:hover .nv-toc-beat{color:var(--nv-slate)!important}
.nv-toc-list a span,.nv-toc-num{color:var(--nv-slate)}

/* ---------- Header bar and menus (light) ---------- */
header > div > div[style*="rgba(12,18,33"]{background:rgba(255,255,255,.92)!important;border:1px solid rgba(22,43,78,.10)!important;box-shadow:0 14px 34px -22px rgba(11,23,48,.45)!important;-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px)}
header .nv-nav > .nv-hasmenu > a,header .nv-nav > a,header a[href^="tel:"].nv-link-u{color:#162B4E!important}
header .nv-b2{background-color:transparent!important;border:1px solid rgba(22,43,78,.28)!important;color:#162B4E!important}
header .nv-b2:hover{border-color:#162B4E!important;background-color:#F4F6FA!important}
header .nv-sm-only,header .nv-burger{background:#fff!important;border:1px solid rgba(22,43,78,.18)!important;color:#162B4E!important}
.nv-dd{background:#fff!important;border:1px solid rgba(22,43,78,.10)!important;box-shadow:0 28px 60px -28px rgba(11,23,48,.5)!important}
.nv-dd [style*="color:#fff"],.nv-dd [style*="color:#EAF0F8"]{color:#111111!important}
.nv-dd [style*="color:#8C9DB8"],.nv-dd [style*="color:#AEBBD1"],.nv-dd [style*="color:#66768F"],.nv-dd [style*="color:#C7D2E2"]{color:#566070!important}
.nv-dd [style*="color:var(--nv-blue-light)"]{color:#2E4C80!important}
.nv-dd [style*="background:linear-gradient(155deg"]{background:#F4F6FA!important;border-color:rgba(22,43,78,.10)!important}
.nv-dd a:hover{background-color:#EEF2F8!important}
.nv-dd .nv-mm-row:hover>span>span:first-child,.nv-dd a:hover [style*="color:#fff"],.nv-dd a:hover [style*="color:#EAF0F8"]{color:#162B4E!important}
.nv-dd .nv-mm-row>span{transition:none!important}
.nv-dd .nv-mm-row:hover>span{transform:none!important}
.nv-dd a:hover,.nv-dd a:focus-visible{color:#162B4E!important}
.nv-dd .nv-mit-hero:hover{background:#E9EEF6!important;border-color:rgba(22,43,78,.26)!important;box-shadow:none!important;transform:none!important}
header .nv-link-u:hover,.nv-dd .nv-link-u:hover{color:#2E4C80!important}
.nv-dd [style*="border-top:1px solid rgba(255"],.nv-dd [style*="border-bottom:1px solid rgba(255"],.nv-dd [style*="border-left:1px solid rgba(255"]{border-color:rgba(22,43,78,.10)!important}
header .nv-ddchev path{stroke:#6B7A92!important}
header .nv-hasmenu:hover .nv-ddchev path,header .nv-hasmenu.nv-open .nv-ddchev path{stroke:#162B4E!important}
header .nv-ddchev{margin-left:1px;flex:none}

/* ---------- Footer: night, with the wordmark set large as the sign-off ---------- */
footer{background:var(--nv-night)!important}
footer:has(.nv-foot-mark){padding-bottom:26px!important}
.nv-foot-mark{margin:44px 0 0;pointer-events:none;user-select:none;opacity:.13;-webkit-mask-image:linear-gradient(180deg,#000 20%,rgba(0,0,0,.25) 100%);mask-image:linear-gradient(180deg,#000 20%,rgba(0,0,0,.25) 100%)}
.nv-foot-mark img{display:block;width:100%;height:auto}
@media(max-width:700px){.nv-foot-mark{margin-top:36px}}

/* ---------- Top menu: hovered items stay dark and readable ---------- */
header .nv-nav > a:hover,header .nv-nav > .nv-hasmenu > a:hover,header a[href^="tel:"].nv-link-u:hover{color:#2E4C80!important}
.nv-dd .nv-mm-row>span>span:first-child{color:#111111!important}
.nv-dd .nv-mm-row:hover>span>span:first-child,.nv-dd .nv-mm-row:focus-visible>span>span:first-child{color:#162B4E!important}
.nv-dd .nv-mm-row>span>span+span{color:#566070!important}
.nv-dd .nv-mm-row::after{background:#162B4E!important;box-shadow:none!important}
#nv-mobile-overlay nav a:hover,#nv-mobile-overlay summary:hover{color:#fff!important}
#nv-mobile-overlay .nv-b1,#nv-mobile-overlay .nv-b1:hover{color:#162B4E!important}

/* ---------- Page tops with two columns use one headline size ---------- */
main .mo-hero-grid h1{font-size:clamp(36px,4.1vw,56px)!important}

/* ---------- Last section of each page: clear morning sky. Same on every page that ends with a call to book. ---------- */
main>section.nv-end-cta,main>section.hx-end{--nv-blue:#2E4C80;--nv-blue-deep:#162B4E;--nv-sky:#8EA6CC;--nv-grad-cta:#162B4E;position:relative;isolation:isolate;overflow:hidden;padding:clamp(80px,10vw,150px) 0 clamp(92px,11.5vw,172px)!important;background:linear-gradient(180deg,#FFFFFF 0%,#EEF3FA 50%,#DCE6F4 100%)!important;color:#111111!important}
main>section.nv-end-cta::before,main>section.hx-end::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(1300px 560px at 50% 122%,rgba(110,150,220,.5),rgba(110,150,220,0) 64%)}
main>section.nv-end-cta>.nv-wrap{max-width:1240px!important;text-align:left!important}
main>section.nv-end-cta h2{margin:0!important;color:#111111!important;font-size:clamp(44px,7.4vw,104px)!important;line-height:.95!important;letter-spacing:-.048em!important;text-wrap:balance}
main>section.nv-end-cta h2+p{margin:22px 0 32px!important;max-width:27em;font-size:clamp(18px,1.7vw,22px)!important;line-height:1.5!important;color:#2B2F36!important}
main>section.nv-end-cta .nv-wrap>div{justify-content:flex-start!important}
main>section.nv-end-cta p{color:#4A5568!important}
main>section.nv-end-cta p a{color:#162B4E!important;font-weight:600;text-decoration:underline!important;text-decoration-color:rgba(22,43,78,.35)!important;text-underline-offset:3px}
main>section.nv-end-cta .nv-b1,main>section.nv-end-cta .nv-epic{background-color:#162B4E!important;color:#fff!important;box-shadow:0 14px 30px -18px rgba(11,23,48,.8)!important;padding:17px 30px!important;font-size:16.5px!important}
main>section.nv-end-cta .nv-b1:hover,main>section.nv-end-cta .nv-epic:hover{background-color:#22407A!important}
main>section.nv-end-cta .nv-b2{background-color:#fff!important;border:1px solid #C5CFDE!important;color:#162B4E!important;padding:16px 28px!important;font-size:16.5px!important}
main>section.nv-end-cta .nv-b2:hover{border-color:#162B4E!important;background-color:#fff!important}
main>section.nv-end-cta a:focus-visible{outline-color:#162B4E!important}
@media(max-width:620px){main>section.nv-end-cta .nv-b1,main>section.nv-end-cta .nv-b2{flex:1 1 100%;justify-content:center}}
/* where the browser can tie motion to scrolling, the sunrise comes up as the section arrives */
@supports (animation-timeline:view()){
  @keyframes nvSunrise{from{opacity:.3;translate:0 36%}to{opacity:1;translate:0 0}}
  @media (prefers-reduced-motion:no-preference){
    main>section.nv-end-cta::before,main>section.hx-end::before{animation:nvSunrise linear both;animation-timeline:view();animation-range:entry 0% cover 52%}
  }
}

/* ---------- Menus: every big card keeps its link on the bottom edge ---------- */
.nv-dd .nv-mit-hero{display:flex!important;flex-direction:column!important}
.nv-dd .nv-mit-hero>span:last-child{margin-top:auto!important;padding-top:16px}

/* ---------- v9: section titles set large, the same voice as the closing line ---------- */
main h2[style*="clamp("]{font-size:clamp(34px,4.8vw,62px)!important;line-height:1.02!important;letter-spacing:-.04em!important}
/* two buttons side by side always get air between them */
main :not([style*="gap:"])>a.nv-b1+a.nv-b2{margin-left:12px}

/* ---------- v9: things leave as well as arrive ----------
   Where the browser can tie motion to scrolling, each part of a block eases out as it slides under the header,
   and eases back when you scroll up. nv-static.js also re-arms blocks that drop below the screen, so they arrive again. */
@keyframes nvLeave{to{opacity:0;translate:0 -22px;scale:.975}}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    main .nv-reveal.in>*:not([style*="overflow:hidden"] *,.nv-end-cta *,.hx-end *){animation:nvRise .9s var(--ease-out) backwards,nvLeave linear;animation-delay:calc(var(--nvi,0)*.07s),0s;animation-timeline:auto,view();animation-range:normal,exit calc(100% - 190px) exit calc(100% - 40px)}
    main .nv-reveal.in>h2[style*="clamp("]:not([style*="overflow:hidden"] *,.nv-end-cta *,.hx-end *),main.hx .nv-reveal.in>h2:not([style*="overflow:hidden"] *,.nv-end-cta *,.hx-end *){animation:nvHead 1s var(--ease-out) backwards,nvLeave linear;animation-delay:.04s,0s;animation-timeline:auto,view();animation-range:normal,exit calc(100% - 190px) exit calc(100% - 40px)}
  }
}

/* ---------- v9: phone polish ---------- */
@media(max-width:640px){
  /* one card per row, so nothing is squeezed into half a screen */
  main .nv-3{grid-template-columns:1fr!important}
  /* long centered paragraphs read as a blob on a phone: everything starts at the left edge */
  main>section:not(.nv-end-cta) :is(div,p,h2,h3)[style*="text-align:center"]{text-align:left!important}
  main>section:not(.nv-end-cta) .nv-wrap>div[style*="justify-content:center"]{justify-content:flex-start!important}
  main>section.nv-sec{padding-top:64px!important;padding-bottom:64px!important}
}
/* phone menu: every section opens the same way, one column, one indent, one button shape */
#nv-mobile-overlay details>div>a{padding:11px 4px!important;margin:0!important;min-height:44px;background:none!important;border:0!important;border-radius:0!important;color:#C6D1E4!important}
#nv-mobile-overlay details>div>a[style*="border-radius:12px"],#nv-mobile-overlay details>div>a[href="/industries"],#nv-mobile-overlay details>div>a[href="/locations"]{color:#fff!important;font-weight:600!important}
#nv-mobile-overlay details>div>a[style*="border-radius:12px"] span{font-weight:600!important}
#nv-mobile-overlay .nv-b1,#nv-mobile-overlay .nv-b2,#nv-mobile-overlay a[style*="border-radius"]:not(details a){border-radius:999px!important;min-height:50px}
