/*
 * DBC / BIOTEN V7.30.1 shared shell
 * Runtime-only language and footer governance for the shared root-page set.
 * The protected homepage keeps its own visual design and only shares legal-link governance.
 */

body[data-v7301-shared-shell="active"] {
  --v7301-shell-blue: #123f70;
  --v7301-shell-ink: #102332;
  --v7301-shell-muted: rgba(16, 35, 50, .66);
  --v7301-shell-line: rgba(18, 63, 112, .16);
  --v7301-formal-footer-grid: repeat(5, minmax(0, 1fr));
  --v7301-formal-gap: clamp(1.25rem, 2.5vw, 2.75rem);
}

body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] {
  overflow-x: clip;
}

body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] :is(a, span, strong, p, h2, h3) {
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

/*
 * Six historical footer families styled the old square mark differently.
 * Lock the supplied horizontal artwork to its true geometry and neutral color
 * so no family turns the blue bitmap into a white slab or crops it again.
 */
body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] img[data-v7301-footer-logo] {
  display: block !important;
  width: min(100%, 16.75rem) !important;
  height: auto !important;
  max-width: 16.75rem !important;
  max-height: none !important;
  aspect-ratio: 2214 / 592 !important;
  object-fit: contain !important;
  object-position: center !important;
  filter: none !important;
  align-self: start !important;
  justify-self: start !important;
}

/* Formal five-entry directory: 5 at wide desktop, 3 + 2 at tablet. */
body[data-v7301-shared-shell="active"] .formal-site-footer .footer-directory {
  gap: var(--v7301-formal-gap) !important;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure {
  min-width: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary {
  display: block;
  list-style: none;
  cursor: default;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary::-webkit-details-marker {
  display: none;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary > span {
  display: none;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure__links {
  display: grid;
  justify-items: start;
  gap: .7rem;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity {
  display: grid;
  width: min(100%, 31rem);
  grid-template-columns: 10.25rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  min-width: 0;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__mark {
  position: relative;
  display: block;
  width: 10.25rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: .28rem;
  background: #15488f;
  aspect-ratio: 2214 / 592;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  line-height: 0;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__copy {
  display: grid;
  grid-template-rows: repeat(3, minmax(0, auto));
  gap: .32rem;
  align-content: center;
  min-width: 0;
  border-left: 1px solid rgba(255, 255, 255, .16);
  padding-left: 1rem;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__copy :is(strong, a, span) {
  width: fit-content;
  max-width: 100%;
  color: rgba(255, 255, 255, .62) !important;
  font-size: .7rem !important;
  font-weight: 480 !important;
  line-height: 1.42 !important;
  text-decoration: none !important;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__copy strong {
  color: #fff !important;
  font-weight: 680 !important;
}

body[data-v7301-shared-shell="active"] .formal-site-footer .footer-bottom {
  grid-template-columns: minmax(27rem, .95fr) minmax(0, 1.05fr) !important;
  align-items: end !important;
}

/* Win the legacy formal-v2 seven-attribute cascade without inline geometry. */
html body[class][class][class][class][class][class][class][data-v7301-shared-shell="active"] footer.formal-site-footer .footer-bottom.footer-bottom {
  grid-template-columns: minmax(27rem, .95fr) minmax(0, 1.05fr) !important;
  gap: clamp(1.5rem, 3vw, 3rem) !important;
  align-items: end !important;
}

/* Shared identity alignment without replacing each page family's visual voice. */
body[data-v7301-shared-shell="active"] :is(
  .btf716-footer__contact,
  .dev740-footer__identity > div,
  .observer-footer__identity > div,
  .v7301-footer-contact
) {
  min-width: 0;
}

body[data-v7301-shared-shell="active"] .v7301-footer-contact {
  display: grid;
  gap: .22rem;
  margin-top: .85rem;
}

body[data-v7301-shared-shell="active"] .v7301-footer-contact :is(strong, a, span),
body[data-v7301-shared-shell="active"] :is(.btf716-footer__contact, .dev740-footer__identity > div) .v7301-footer-address {
  width: fit-content;
  max-width: 100%;
  color: inherit;
  font-size: .72rem;
  line-height: 1.5;
  text-decoration: none;
}

body[data-v7301-shared-shell="active"] .bp7140-footer__brand .v7301-footer-company {
  display: block;
  margin: 0;
  font-size: .72rem;
  letter-spacing: 0;
}

body[data-v7301-shared-shell="active"] .bp7140-footer__bottom,
body[data-v7301-shared-shell="active"] .bp7140-footer__legal,
body[data-v7301-shared-shell="active"] .btf716-footer__bottom,
body[data-v7301-shared-shell="active"] .btf716-footer__legal,
body[data-v7301-shared-shell="active"] .dev740-footer__legal {
  flex-wrap: wrap !important;
  white-space: normal !important;
}

body[data-v7301-shared-shell="active"] .observer-footer__bottom {
  min-height: 3.25rem;
  white-space: normal !important;
}

body[data-v7301-shared-shell="active"] .observer-footer__bottom > :nth-child(3) {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}

body[data-v7301-shared-shell="active"] .fs7301-footer__brand {
  display: grid !important;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  gap: .3rem 1rem !important;
  align-items: center;
}

body[data-v7301-shared-shell="active"] .fs7301-footer__brand > img {
  grid-row: 1 / span 2;
}

body[data-v7301-shared-shell="active"] .fs7301-footer__brand > .v7301-footer-contact {
  grid-column: 2;
  margin-top: .35rem;
  color: var(--fs7301-muted, #5f665f);
}

@media (max-width: 74.999rem) {
  body[data-v7301-shared-shell="active"] {
    --v7301-formal-footer-grid: repeat(6, minmax(0, 1fr));
    --v7301-formal-gap: 1.15rem;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure:nth-child(-n + 3) {
    grid-column: span 2;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure:nth-child(n + 4) {
    grid-column: span 3;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .footer-bottom,
  html body[class][class][class][class][class][class][class][data-v7301-shared-shell="active"] footer.formal-site-footer .footer-bottom.footer-bottom {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    align-items: start !important;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .footer-legal {
    justify-content: flex-start !important;
  }

  body[data-v7301-shared-shell="active"] .observer-footer__bottom {
    display: flex !important;
    flex-wrap: wrap !important;
    align-content: center;
    gap: .55rem 1rem !important;
    padding: .85rem 0;
  }

  body[data-v7301-shared-shell="active"] .observer-footer__bottom > :nth-child(3) {
    flex: 1 1 22rem;
  }
}

@media (max-width: 53.75rem) {
  body[data-v7301-shared-shell="active"] .formal-site-footer .footer-inner {
    width: min(100% - 2rem, 46rem) !important;
  }

  body[data-v7301-shared-shell="active"] .observer-footer__bottom {
    overflow-x: visible !important;
    scrollbar-width: auto;
  }

  body[data-v7301-shared-shell="active"] .bp7140-footer__bottom,
  body[data-v7301-shared-shell="active"] .btf716-footer__bottom,
  body[data-v7301-shared-shell="active"] .dev740-footer__bottom {
    overflow-x: visible !important;
  }
}

@media (max-width: 33.75rem) {
  body[data-v7301-shared-shell="active"] {
    --v7301-formal-footer-grid: 1fr;
    --v7301-formal-gap: 0;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .footer-directory {
    padding-bottom: 1.5rem !important;
    border-top: 1px solid rgba(255, 255, 255, .14) !important;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure {
    grid-column: 1 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .14) !important;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary {
    position: relative;
    display: flex;
    min-height: 3rem;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    cursor: pointer;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary > h3 {
    margin: 0 !important;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary > span {
    display: block;
    width: .5rem;
    height: .5rem;
    border-right: 1px solid rgba(255, 255, 255, .74);
    border-bottom: 1px solid rgba(255, 255, 255, .74);
    transform: rotate(45deg) translate(-.1rem, .1rem);
    transition: transform 160ms ease;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure[open] > summary > span {
    transform: rotate(225deg) translate(-.1rem, .1rem);
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure__links {
    gap: 0;
    padding: 0 0 .55rem;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure__links a {
    display: flex !important;
    min-height: 2.75rem;
    align-items: center;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    justify-items: start;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__mark {
    width: min(100%, 10.25rem);
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__copy {
    width: 100%;
    gap: .25rem;
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .16);
    padding: .72rem 0 0;
  }

  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-identity__copy :is(strong, a, span) {
    font-size: .66rem !important;
    line-height: 1.38 !important;
  }

  body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] :is(
    a[href],
    summary,
    button
  ) {
    min-height: 2.75rem;
  }

  body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] a[href] {
    display: inline-flex;
    align-items: center;
  }

  body[data-v7301-shared-shell="active"] .observer-footer__routes a,
  body[data-v7301-shared-shell="active"] .fs7301-footer nav a,
  body[data-v7301-shared-shell="active"] .bp7140-footer__group a {
    width: 100%;
  }

  body[data-v7301-shared-shell="active"] .observer-footer__bottom > * {
    flex: 1 1 100% !important;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer__inner {
    grid-template-columns: 1fr !important;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer__brand {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .72rem !important;
    align-items: start;
    justify-items: start;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer__brand > img {
    grid-row: auto;
    grid-column: 1;
    width: min(100%, 16.75rem) !important;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer__brand > :is(div, .v7301-footer-contact) {
    grid-column: 1;
    width: 100%;
    margin: 0;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer__brand > .v7301-footer-contact {
    gap: .25rem;
    border-top: 1px solid rgba(16, 35, 50, .14);
    padding-top: .72rem;
  }

  body[data-v7301-shared-shell="active"] .fs7301-footer nav {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Packaging footer: retain every route while matching the compact rhythm
     used by the other mobile footer families. */
  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__top {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1.5rem !important;
    padding: 1.875rem 0 1.375rem !important;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__brand {
    display: grid;
    grid-template-columns: 8rem minmax(0, 1fr);
    gap: .25rem 1rem;
    align-items: start;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__brand img[data-v7301-footer-logo] {
    grid-row: 1 / span 2;
    width: 8rem !important;
    max-width: 8rem !important;
    align-self: center !important;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__brand > strong {
    grid-column: 2;
    margin: 0 !important;
    align-self: end;
    font-size: .75rem;
    line-height: 1.45;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__brand > p {
    grid-column: 2;
    margin: 0 !important;
    font-size: .625rem;
    line-height: 1.55;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__brand > .v7301-footer-contact {
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .2rem 1rem;
    margin: .75rem 0 0;
    padding-top: .75rem;
    border-top: 1px solid rgba(16, 35, 50, .12);
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .v7301-footer-contact .v7301-footer-company {
    grid-column: 1 / -1;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__directory {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 1.25rem !important;
    align-items: start;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__group {
    min-width: 0;
    padding: .875rem 0 .625rem;
    border-top: 1px solid rgba(16, 35, 50, .12);
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__group:nth-child(3) {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__group:nth-child(3) > h2 {
    grid-column: 1 / -1;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__group h2 {
    margin: 0 0 .375rem !important;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__group a {
    width: 100% !important;
    min-height: 2.75rem;
    padding: .4rem 0 !important;
    font-size: .7rem !important;
    line-height: 1.45;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__bottom {
    min-height: 0 !important;
    align-items: flex-start !important;
    gap: .35rem 1rem !important;
    padding: .875rem 0 1.125rem;
  }

  body[data-v7301-shared-shell="active"] footer.bp7140-footer .bp7140-footer__legal {
    gap: 0 .875rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-v7301-shared-shell="active"] .formal-site-footer .v7301-footer-disclosure > summary > span {
    transition: none;
  }
}

/* V7.31.8-R29: make the shared legal row complete without changing any
   page-family identity, and let long bilingual footer labels occupy their
   natural line box instead of being clipped by legacy fixed-height rules. */
body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] .v7301-footer-core-link {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow: visible;
  overflow-wrap: anywhere;
}

body[data-v7301-shared-shell="active"] footer[data-v7301-shared-footer="true"] :is(
  .footer-legal,
  .btf716-footer__legal,
  .bp7140-footer__legal,
  .dev740-footer__legal,
  .observer-footer__legal,
  .fs7301-footer__inner > nav
) {
  flex-wrap: wrap;
  overflow: visible;
}

body.dbc-home-page .v410-home-footer .v570-footer-group__links a {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

html[data-lang="en"] body.dbc-home-page .v410-home-footer .v570-footer-group__links a {
  min-height: 2.45rem !important;
  align-items: flex-start !important;
  padding-block: .18rem !important;
  line-height: 1.46 !important;
}

@media (max-width: 33.75rem) {
  body.dbc-home-page .v410-home-footer .v7160-footer-domain {
    display: inline-flex !important;
    min-height: 2.75rem !important;
    align-items: center !important;
  }
}
