/* Network layer stylesheet (shared by the 36 specialist sites).
   Rules use :where() or the layer's own nm-* classes, so each site's own design always wins. */

:root{--nm-ease:cubic-bezier(.16,1,.3,1);--nm-accent:#3b82f6;--nm-accent-rgb:59 130 246;--nm-on-accent:#fff}

/* ---- operator contact line and legal notices ---------------------------------------------- */
.network-contact{box-sizing:border-box;width:100%;grid-column:1/-1;flex:1 0 100%;margin:0;padding:16px 22px 22px;text-align:center;font-size:12px;line-height:1.6;opacity:.82}
.network-contact span,.network-contact a{display:inline!important;width:auto!important;margin:0!important;padding:0!important;border:0!important;font:inherit!important;letter-spacing:normal!important;text-transform:none!important;background:none!important}
.network-contact a{color:inherit!important;text-decoration:underline!important;text-underline-offset:2px}
.network-legal{box-sizing:border-box;max-width:780px;margin:0 auto;padding:clamp(48px,7vw,104px) 22px clamp(56px,8vw,120px);line-height:1.65;font-size:17px;text-align:left}
.network-legal .nl-eyebrow{margin:0 0 12px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.network-legal h1{margin:0 0 24px;font-size:clamp(32px,4.4vw,50px);line-height:1.08;letter-spacing:-.01em}
.network-legal h2{margin:36px 0 10px;font-size:21px;line-height:1.3}
.network-legal p{margin:0 0 14px;max-width:none}
.network-legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.network-legal .nl-updated{margin:40px 0 0;font-size:13px;opacity:.7}
.nl-second{border-top:1px solid rgba(127,127,127,.35);max-width:780px;margin:0 auto}

/* ---- modern typography defaults (zero specificity: any site rule overrides them) ---------- */
:where(h1,h2,h3,h4){text-wrap:balance}
:where(p,li,dd,figcaption,blockquote){text-wrap:pretty}
:where(input[type=checkbox],input[type=radio],input[type=range],progress){accent-color:var(--nm-accent)}
:where(html){scroll-padding-top:calc(var(--nm-header-h,0px) + 12px)}
@media (prefers-reduced-motion:no-preference){:where(html){scroll-behavior:smooth}}

/* ---- interaction details: focus, selection, prose links, press feedback (zero specificity) ---- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--nm-accent);outline-offset:3px}
::selection{background:rgb(var(--nm-accent-rgb) / .26)}
:where(main) :where(p,li,dd,blockquote,figcaption,td) a:where(:not([class])){text-decoration-thickness:from-font;text-underline-offset:.2em;
  transition:text-underline-offset .35s var(--nm-ease),text-decoration-color .35s var(--nm-ease)}
:where(main) :where(p,li,dd,blockquote,figcaption,td) a:where(:not([class])):hover{text-underline-offset:.34em}
@media (prefers-reduced-motion:no-preference){
  :where(button,[type=submit],[type=button],a[class*="btn"],a[class*="button"],a[class*="cta"]):active{scale:.97}
}

/* ---- accordions open and close smoothly (Chrome/Edge 131+; others open instantly) ------------- */
@media (prefers-reduced-motion:no-preference){
  @supports selector(::details-content){
    :root{interpolate-size:allow-keywords}
    :where(details)::details-content{block-size:0;overflow-y:clip;transition:block-size .5s var(--nm-ease),content-visibility .5s allow-discrete}
    :where(details[open])::details-content{block-size:auto}
  }
}

/* ---- sticky headers gain depth once the page scrolls ----------------------------------------- */
:where(.nm-header.nm-sticky){transition:box-shadow .35s var(--nm-ease)}
:where(.nm-scrolled) :where(.nm-header.nm-sticky){box-shadow:0 14px 34px -18px rgb(0 0 0 / .28)}
:where(.nm-scrolled) :where(.nm-header.nm-glass){-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px)}

/* ---- page transitions (Chrome, Edge, Safari 18+; other browsers navigate normally) -------- */
@view-transition{navigation:auto}
.nm-header{view-transition-name:nm-header}
::view-transition-old(root){animation:nm-vt-out .26s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:nm-vt-in .5s var(--nm-ease) both}
@keyframes nm-vt-out{to{opacity:0;transform:translateY(-10px) scale(.996)}}
@keyframes nm-vt-in{from{opacity:0;transform:translateY(16px)}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* ---- kinetic headline ---------------------------------------------------------------------- */
html.nm-js:not(.nm-reduce) .nm-kinetic:not(.nm-kinetic-done){visibility:hidden;animation:nm-failsafe 0s 2.2s forwards}
@keyframes nm-failsafe{to{visibility:visible}}
nm-w,nm-a{display:inline-block}
nm-w{will-change:transform,opacity}
.nm-kinetic-done nm-w{will-change:auto}

/* ---- arrows inside links and buttons nudge in their direction ------------------------------ */
.nm-arrow{display:inline-block;transition:transform .45s var(--nm-ease)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=ne]{transform:translate(.16em,-.16em)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=se]{transform:translate(.16em,.16em)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=e]{transform:translateX(.25em)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=w]{transform:translateX(-.25em)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=s]{transform:translateY(.2em)}
:is(a,button):is(:hover,:focus-visible) .nm-arrow[data-d=n]{transform:translateY(-.2em)}

/* ---- card spotlight (the card's own ::after, only where the site leaves it unused) ------------ */
.nm-spot::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s var(--nm-ease);
  background:radial-gradient(520px circle at var(--nm-x,50%) var(--nm-y,50%),rgb(var(--nm-glow-rgb,var(--nm-accent-rgb)) / var(--nm-glow-a,.16)),transparent 46%)}
.nm-spot.nm-spot-on::after{opacity:1}

/* ---- reading progress -------------------------------------------------------------------- */
.nm-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:2147483000;pointer-events:none}
.nm-progress i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--nm-accent)}

/* ---- mobile quick-action bar ------------------------------------------------------------- */
.nm-bar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:2147482000;display:flex;gap:8px;
  padding:8px;border-radius:20px;background:rgb(var(--nm-bar-bg,255 255 255) / .82);box-shadow:0 10px 30px rgb(0 0 0 / .18),0 0 0 1px rgb(127 127 127 / .16);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);transform:translateY(140%);opacity:0;
  transition:transform .5s var(--nm-ease),opacity .3s ease;font:600 15px/1.2 var(--nm-bar-font,inherit)}
.nm-bar.nm-show{transform:none;opacity:1}
.nm-bar a{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 16px;border-radius:var(--nm-bar-radius,14px);
  text-decoration:none;background:var(--nm-accent);color:var(--nm-on-accent);font:inherit;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-bar a.nm-call{flex:0 0 auto;background:rgb(var(--nm-bar-ink,17 17 17) / .08);color:rgb(var(--nm-bar-ink,17 17 17))}
.nm-bar svg{width:18px;height:18px;flex:none}
.nm-bar-spacer{height:84px}
@media (min-width:821px){.nm-bar,.nm-bar-spacer{display:none!important}}
@media print{.nm-bar,.nm-bar-spacer,.nm-progress{display:none!important}}

@media (prefers-reduced-motion:reduce){
  .nm-arrow,.nm-spot::after,.nm-bar{transition:none!important}
}

/* ---------- signature effects (site.js §13) ---------- */
nm-fx{display:block}
.nm-fx-spot,.nm-fx-aurora,.nm-fx-net{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;border-radius:inherit}
.nm-fx-spot{opacity:0;transition:opacity .6s var(--nm-ease);
  background:radial-gradient(560px circle at var(--nm-fx-x,50%) var(--nm-fx-y,40%),rgb(var(--nm-fx-rgb,var(--nm-accent-rgb)) / var(--nm-fx-a,.2)),transparent 62%)}
.nm-fx-spot.nm-on{opacity:1}
.nm-fx-aurora i{position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(70px);opacity:var(--nm-fx-a,.24);
  background:radial-gradient(circle,rgb(var(--nm-fx-rgb,var(--nm-accent-rgb))),transparent 68%);animation:nm-aurora-a 24s ease-in-out infinite alternate}
.nm-fx-aurora i+i{right:-8vmax;bottom:-16vmax;left:auto;top:auto;opacity:var(--nm-fx-b,.18);background:radial-gradient(circle,rgb(var(--nm-fx-rgb2,var(--nm-accent-rgb))),transparent 68%);
  animation:nm-aurora-b 30s ease-in-out infinite alternate}
.nm-fx-aurora i:first-child{left:-10vmax;top:-16vmax}
.nm-fx-aurora.nm-paused i{animation-play-state:paused}
@keyframes nm-aurora-a{to{transform:translate(24vmax,14vmax) scale(1.15)}}
@keyframes nm-aurora-b{to{transform:translate(-22vmax,-12vmax) scale(.9)}}
.nm-fx-net canvas{position:absolute;inset:0;display:block}
.nm-fx-ripple{position:fixed;z-index:2147483100;width:46px;height:46px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgb(var(--nm-accent-rgb) / .38),rgb(var(--nm-accent-rgb) / 0) 70%)}
.nm-parcel{pointer-events:none}
@media (prefers-reduced-motion:reduce){.nm-fx-aurora i{animation:none}.nm-fx-spot{display:none}}

/* ---------- brand symbols: each site's own mark (static/brand/), shown as designed ---------- */
img.nm-mark{filter:none!important;background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;object-fit:contain;opacity:1!important}
.nm-mark-host{position:relative!important;background:none!important;border-color:transparent!important;box-shadow:none!important;outline:0!important;filter:none!important;
  -webkit-clip-path:none!important;clip-path:none!important;-webkit-mask:none!important;mask:none!important;transform:none!important;rotate:none!important;scale:none!important;
  translate:none!important;animation:none!important;overflow:visible!important;color:transparent!important;text-shadow:none!important}
.nm-mark-host::before,.nm-mark-host::after{visibility:hidden!important;animation:none!important}
.nm-mark-host>:not(.nm-mark-fill){visibility:hidden!important}
.nm-mark-host>img.nm-mark-fill{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;min-width:0!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;filter:none!important;
  visibility:visible!important;opacity:1!important;object-fit:contain!important;transform:none!important;display:block!important}
.nm-mark-host>image.nm-mark-fill{visibility:visible!important;opacity:1!important;filter:none!important}
/* a monogram set as type (one letter wide) becomes a square symbol */
.d196-monogram.nm-mark-host{display:inline-block!important;width:2.6rem!important;height:2.6rem!important;flex:none!important;vertical-align:middle}

.network-contact .nc-sep{margin:0 .5em!important}
