/* FRS v28: shared translucent glass and luminous edges. Load after palette. */
:root {
  --frs-glass-fill: linear-gradient(145deg, rgba(245,247,250,.15), rgba(170,180,192,.055) 38%, rgba(23,54,93,.22)), rgba(0,0,0,.54);
  --frs-glass-edge: rgba(170,180,192,.48);
  --frs-glass-shadow: inset 0 1px 0 rgba(245,247,250,.55), inset 0 -1px 0 rgba(170,180,192,.2), 0 18px 48px -24px rgba(0,0,0,.8);
  --frs-ray-shadow: inset 0 0 0 1px rgba(245,247,250,.65), inset 0 1px 12px rgba(245,247,250,.15), 0 0 5px rgba(245,247,250,.7), 0 0 19px rgba(170,180,192,.38), 0 0 38px rgba(23,54,93,.42), -14px -7px 25px -17px rgba(245,247,250,.9), 16px 9px 28px -18px rgba(245,247,250,.8);
}
/* One tint for the menu, status window, and requested action buttons. */
:root body :is(.nav-inner,header.nav.scrolled .nav-inner,.service-window,.btn-primary,.btn-ghost,.cta .btn,body > .btn,.foot-btn,.back,.lang-btn,.nav-phone,header.bar) {
  background:var(--frs-glass-fill);
  border-color:var(--frs-glass-edge);
  color:var(--frs-white);
  box-shadow:var(--frs-glass-shadow);
  -webkit-backdrop-filter:blur(28px) saturate(125%);
  backdrop-filter:blur(28px) saturate(125%);
}
/* Remove older stacked sheens so both large surfaces have the same tint. */
:root body .nav-inner::before, :root body .nav-inner::after,
:root body .service-window::before { background:none; }
:root body .service-window__map { background:transparent; }
:root body :is(.service-window__bar,.service-window__tabs,.service-window__panels) {
  background:rgba(0,0,0,.12);
}
:root body .service-window__tabs button[aria-selected=true] {
  background:linear-gradient(145deg,rgba(245,247,250,.12),rgba(23,54,93,.3));
  border-color:var(--frs-silver);
  color:var(--frs-white);
  box-shadow:inset 0 1px 0 rgba(245,247,250,.28);
}
/* Apply the same edge language to controls, cards and navigation, without
   adding borders or changing sizes. Existing stronger legacy glows are
   deliberately superseded here. Decorative text and logos stay untouched. */
:root body :is(button,.btn,.foot-btn,.nav-phone,.back,summary,[role=button],.nav-links a,.mobile-menu a,.sol-col,.svc,.ind,.proc,.cert,.metric,.company-visual,.why-metrics,.contact-wrap,.service-window,.service-window__row,.service-window__status,.val,.ico,.ic,.service-window__icon,.nav-inner,.field input,.field textarea,.field select) {
  transition:border-color .25s ease,box-shadow .35s ease,background-color .25s ease,color .25s ease,transform .35s ease;
}
@media (hover:hover) {
  :root body #standards .cert:hover,
  :root body #industries .ind:hover,
  :root body #industries .ind:hover .ico,
  :root body #nav .nav-links a:hover,
  :root body #mobileMenu a:hover {
    border-color:var(--frs-white) !important;
    box-shadow:var(--frs-ray-shadow) !important;
  }
  :root body :is(button,.btn,.foot-btn,.nav-phone,.back,summary,[role=button],.nav-links a,.mobile-menu a,.sol-col,.svc,.ind,.proc,.cert,.metric,.company-visual,.why-metrics,.contact-wrap,.service-window,.service-window__row,.service-window__status,.val,.ico,.ic,.service-window__icon,.nav-inner,.field input,.field textarea,.field select):not(:disabled):not([aria-disabled=true]):hover {
    border-color:var(--frs-white) !important;
    box-shadow:var(--frs-ray-shadow) !important;
  }
  :root body :is(.btn-primary,.btn-ghost,.cta .btn,body > .btn,.foot-btn,.back,.lang-btn,.nav-phone):not(:disabled):not([aria-disabled=true]):hover {
    background:radial-gradient(ellipse at 20% 0%,rgba(245,247,250,.25),transparent 58%),var(--frs-glass-fill);
    color:var(--frs-white);
  }
}
:root body :is(a,button,input,textarea,select,summary,[tabindex]):not(:disabled):not([aria-disabled=true]):focus-visible {
  outline:2px solid var(--frs-white);
  outline-offset:4px;
  border-color:var(--frs-white);
  box-shadow:var(--frs-ray-shadow) !important;
}
:root body :is(.nav-inner,.service-window,.contact-wrap):focus-within {
  border-color:var(--frs-silver);
  box-shadow:var(--frs-glass-shadow),0 0 24px rgba(170,180,192,.2);
}
:root body :is(button,.btn,.foot-btn,.nav-phone,.back,[role=button]):not(:disabled):not([aria-disabled=true]):active {
  border-color:var(--frs-white);
  box-shadow:var(--frs-ray-shadow) !important;
}
/* Readable fallback where backdrop blur is unavailable or transparency is
   explicitly reduced. Focus remains visible without animated effects. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  :root { --frs-glass-fill:linear-gradient(145deg,#17365D,#000000); }
}
@media (prefers-reduced-transparency:reduce) {
  :root { --frs-glass-fill:linear-gradient(145deg,#17365D,#000000); }
}
@media (prefers-reduced-motion:reduce) {
  :root body :is(button,.btn,.foot-btn,.nav-phone,.back,summary,[role=button],.nav-links a,.mobile-menu a,.sol-col,.svc,.ind,.proc,.cert,.metric,.company-visual,.why-metrics,.contact-wrap,.service-window,.service-window__row,.service-window__status,.val,.ico,.ic,.service-window__icon,.nav-inner,.field input,.field textarea,.field select) { transition:none; }
}
@media (forced-colors:active) {
  :root body :is(.nav-inner,.service-window,.btn,.foot-btn,.back,.lang-btn,.nav-phone) { background:Canvas;color:CanvasText;box-shadow:none !important;border-color:ButtonText; }
  :root body :is(a,button,input,textarea,select,summary,[tabindex]):focus-visible { outline:2px solid Highlight;box-shadow:none !important; }
}
