/*
 * DBC / BIOTEN V4.2.0 final brand-system refinement.
 * Loaded after V4.1 so the accepted page families remain intact.
 */

:root {
  --v420-blue: #075ca8;
  --v420-blue-deep: #082f4a;
  --v420-green: #0c7a59;
  --v420-green-deep: #07583f;
  --v420-ink: #102b3b;
  --v420-copy: #435d6b;
  --v420-line: rgb(17 69 96 / .14);
  --v420-glass: rgb(249 252 253 / .9);
  --v420-ease: cubic-bezier(.16, 1, .3, 1);
}

html {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.v420-site :where(h1, h2, h3, p, li, a, button) {
  text-wrap: pretty;
}

body.v420-site :where(a, button, input, select, textarea):focus-visible {
  outline: 2px solid color-mix(in srgb, var(--v420-blue) 74%, white);
  outline-offset: 3px;
}

/* Header and mega navigation: one restrained glass system. */
html body.v420-site.dbc-global-nav-active .site-header.site-header {
  border-bottom-color: rgb(7 74 130 / .14) !important;
  background: rgb(250 252 253 / .86) !important;
  box-shadow: 0 10px 28px rgb(8 45 69 / .045) !important;
  backdrop-filter: blur(22px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(22px) saturate(135%) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega {
  border-color: rgb(12 65 94 / .13) !important;
  background:
    radial-gradient(circle at 18% 0%, rgb(7 92 168 / .07), transparent 30rem),
    radial-gradient(circle at 78% 0%, rgb(12 122 89 / .055), transparent 27rem),
    var(--v420-glass) !important;
  box-shadow: 0 30px 74px rgb(7 38 59 / .16), inset 0 1px rgb(255 255 255 / .9) !important;
  backdrop-filter: blur(28px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(28px) saturate(135%) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega__inner {
  width: min(82rem, calc(100% - clamp(2.5rem, 5vw, 5rem))) !important;
  min-height: 19rem !important;
  gap: clamp(1rem, 1.75vw, 1.65rem) !important;
  padding-block: 1.55rem 1.7rem !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-mega__routes {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: .65rem !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route {
  grid-template-rows: 5.35rem minmax(0, 1fr) !important;
  height: 15.35rem !important;
  min-height: 15.35rem !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__copy {
  padding: .78rem .8rem .74rem !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__copy::before {
  left: .8rem !important;
  width: 1.8rem !important;
  background: linear-gradient(90deg, var(--v420-blue), var(--v420-green)) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__copy small {
  font-size: .49rem !important;
  letter-spacing: .075em !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__copy strong {
  font-size: .86rem !important;
  line-height: 1.3 !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__desc {
  font-size: .67rem !important;
  line-height: 1.55 !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-route {
  border-color: rgb(13 71 100 / .14) !important;
  border-radius: 11px !important;
  background: rgb(255 255 255 / .72) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-route:is(:hover, :focus-visible) {
  border-color: rgb(7 92 168 / .42) !important;
  box-shadow: 0 16px 34px rgb(8 45 69 / .11) !important;
  transform: translateY(-2px) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route:is(:hover, :focus-visible) {
  border-color: rgb(12 122 89 / .46) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega__quick > a.dbc-desktop-mega__cta {
  border-color: rgb(7 92 168 / .25) !important;
  background: linear-gradient(135deg, rgb(255 255 255 / .88), rgb(240 248 250 / .82)) !important;
  box-shadow: inset 0 1px rgb(255 255 255 / .95), 0 8px 24px rgb(8 45 69 / .07) !important;
  color: var(--v420-blue-deep) !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega__quick > a.dbc-desktop-mega__cta > span {
  color: inherit !important;
}

html body.v420-site.dbc-global-nav-active .dbc-desktop-mega__quick > a.dbc-desktop-mega__cta:is(:hover, :focus-visible) {
  border-color: rgb(12 122 89 / .42) !important;
  color: var(--v420-green-deep) !important;
}

/* Controls and cards: quieter geometry and clear feedback. */
body.v420-site :is(.formal-button, .v245-button, .dv2-action, .request-submit-button) {
  min-height: 2.85rem;
  border-radius: 9px !important;
  font-weight: 650 !important;
  letter-spacing: .015em;
}

body.v420-site :is(.formal-button, .v245-button, .dv2-action, .request-submit-button):is(:hover, :focus-visible) {
  transform: translateY(-1px) !important;
}

/* Length-aware newsroom titles avoid four-line mobile walls. */
body.v420-site.news-article-page[data-v420-title-length="long"] .news-original-hero h1 {
  max-width: 22ch !important;
  font-size: clamp(2.15rem, 3.8vw, 3.75rem) !important;
  letter-spacing: -.044em !important;
}

/* Footer: the homepage closes on a dedicated dark brand field. Secondary page
   families retain their established light or dark functional footer surface;
   keeping the homepage rule separate prevents its light type losing contrast. */
body.v420-site .v410-home-footer {
  background:
    radial-gradient(circle at 82% 8%, rgb(30 157 116 / .2), transparent 29rem),
    radial-gradient(circle at 12% 100%, rgb(15 105 183 / .17), transparent 32rem),
    linear-gradient(135deg, #061c2d 0%, #0a2b42 55%, #0a3544 100%) !important;
}

body.v420-site .v410-home-footer__column a,
html body.v420-site footer.formal-site-footer .footer-column > a {
  transition: color 160ms ease, transform 180ms var(--v420-ease) !important;
}

body.v420-site .v410-home-footer__column a:is(:hover, :focus-visible),
html body.v420-site footer.formal-site-footer .footer-column > a:is(:hover, :focus-visible) {
  transform: translateX(2px);
}

@media (min-width: 861px) and (max-width: 1180px) {
  html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-mega__routes {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  html body.v420-site.dbc-global-nav-active .dbc-desktop-mega--packaging .dbc-desktop-route__desc {
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 680px) {
  body.v420-site.news-article-page[data-v420-title-length="long"] .news-original-hero h1 {
    max-width: 100% !important;
    font-size: clamp(1.95rem, 8.4vw, 2.55rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.04em !important;
  }

  body.v420-site .dbc-nav-card {
    min-height: 6.7rem;
  }

  body.v420-site .dbc-nav-card__media {
    width: 6.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.v420-site *,
  body.v420-site *::before,
  body.v420-site *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
