/* Preserve the published styles; only supply states formerly owned by scripts. */
[hidden] { display: none !important; }
/* Correct the source's global img max-width:70% exposing an unrelated fixed
   background beside article heroes. One image now occupies one stable frame. */
.blogpost-header_image { max-width: 100%; }
.blogpost-header_image-wrapper { background-image: none; background-attachment: scroll; }
/* Frozen pages inherit white text from surrounding dark sections. These
   components have their own light surface, including the pastel theme variants. */
.background-color-secondary .cta-demo_text,
.background-color-secondary-transparent .cta-demo_text,
.section_feature :is(.background-color-primary, .background-color-secondary-transparent) .horizontal-flexbox-xs > .text-size-medium.text-weight-semibold,
.card_base .heading-style-h4.text-color-brand,
.section_faq-2 .heading-style-h4.text-color-brand,
.blog-card_content .heading-style-h4.text-color-brand {
  color: var(--token--text--brand, #00323e);
}
/* The moving track is deliberately wider than its window, but the window
   itself must not make the document 120% as wide as a phone or desktop. */
.logo-carousel_component { width: 100%; }
.decarbonation_title-wrapper { width: 100%; }
/* The home cards have a dark inner surface. Imported mobile decoration rules
   must not move their entire text panel outside the card. */
.visibilite_card-box .heading-style-h4.text-color-brand { color: white; }
.visibilite_card-box .padding-rg { width: auto; height: 100%; position: static; }
@media (max-width: 479px) {
  .visibilite_card-box { flex-basis: 100%; min-width: 0; }
}
/* Imported article URLs and figures must shrink inside the content grid. */
.w-richtext { min-width: 0; overflow-wrap: anywhere; }
.w-richtext figure { max-width: 100%; }
:focus-visible { outline: 3px solid var(--token--surface--brand-tertiary, #00898f); outline-offset: 4px; }
html:not(.faithful-native-motion) .w-dropdown-list.w--open { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
html:not(.faithful-native-motion) .w-dropdown-list.w--open .pointer-events-on { pointer-events: auto; }
html:not(.faithful-native-motion) .w-dropdown-toggle[role="button"], .w-nav-button[role="button"] { cursor: pointer; }
html:not(.faithful-native-motion) .w-dropdown-toggle.w--open .navbar_dropdown-icon { transform: rotate(180deg); }
html:not(.faithful-native-motion) .faq_answer:not([hidden]) { height: auto !important; opacity: 1 !important; }
.faithful-faq-toggle { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: inherit; cursor: pointer; }
.faithful-faq-indicator { position: relative; color: var(--token--text--brand, #00323e); }
.faithful-faq-indicator::before, .faithful-faq-indicator::after { content: ''; position: absolute; top: 50%; left: 15%; width: 70%; height: 2px; background: currentColor; }
.faithful-faq-indicator::after { transform: rotate(90deg); }
.faq_item-card.faithful-open .faithful-faq-indicator::after { transform: rotate(0); }
.faithful-slider { visibility: visible !important; }
.faithful-slider .splide__track { overflow-x: auto !important; scroll-snap-type: x mandatory; scrollbar-width: none; }
.faithful-slider .splide__track::-webkit-scrollbar { display: none; }
.faithful-slider .splide__list { display: flex !important; gap: var(--token--spacing--hg, 24px); transform: none !important; }
.faithful-slider .splide__slide { flex-shrink: 0; height: auto; margin-right: 0 !important; scroll-snap-align: start; }
.faithful-slider.slider2 .splide__slide { width: calc((100% - 2 * var(--token--spacing--hg, 24px)) / 3); }
.faithful-slider .splide__slide .text-opacity { opacity: 1; }
.faithful-highlight { display: block; pointer-events: none; }
.faithful-highlight .highlight-filler { height: 100% !important; }
html:not(.faithful-native-motion) .faithful-highlight .highlight-filler { display: block; width: 100%; height: 100%; }
.honey { display: none !important; }
.faithful-video { display: block; position: absolute; inset: 0; color: white; }
.faithful-video > img { width: 100%; max-width: 100%; height: 100%; object-fit: cover; }
.faithful-video:hover > svg path:first-child, .faithful-video:focus-visible > svg path:first-child { fill: #f00; fill-opacity: 1; }
.faithful-video > svg { position: absolute; top: 50%; left: 50%; width: 68px; height: 48px; transform: translate(-50%, -50%); }
.faithful-form-result { margin-top: 1rem; color: inherit; }
@media (max-width: 991px) {
  /* The language toggle keeps an inline white color from the desktop navbar. */
  .w-nav-menu[data-nav-menu-open] .ouiflow-4-toggle,
  .w-nav-menu[data-nav-menu-open] .ouiflow-4-toggle > div { color: var(--token--text--brand, #00323e) !important; }
  html.faithful-menu-open { overflow: hidden; }
  html:not(.faithful-native-motion) .w-nav-menu[data-nav-menu-open] { top: 100%; left: calc((100% - 100vw) / 2); right: auto; width: 100vw; max-width: none; padding-inline: 5vw; max-height: calc(100dvh - 5rem); text-align: left; overflow-y: auto; overscroll-behavior: contain; }
  .faithful-slider.slider2 .splide__slide { width: calc((100% - var(--token--spacing--hg, 24px)) / 2); }
  html:not(.faithful-native-motion) .w-nav-button.w--open .navbar_menu-icon_line-top { transform: translateY(8px) rotate(45deg); }
  html:not(.faithful-native-motion) .w-nav-button.w--open .navbar_menu-icon_line-middle { opacity: 0; }
  html:not(.faithful-native-motion) .w-nav-button.w--open .navbar_menu-icon_line-bottom { transform: translateY(-8px) rotate(-45deg); }
}
@media (max-width: 767px) {
  .faithful-slider.slider2 .splide__slide { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Same Inter outlines and weight axis, compressed from the captured TTF. */
@font-face {
  font-family: 'Inter Variable';
  src: url('/ovrsea-ui/inter-variable.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

/* Western Latin uses the same outlines/metrics with a smaller character set.
   The complete face above remains available for every other character. */
@font-face {
  font-family: 'Inter Variable';
  src: url('/ovrsea-ui/inter-variable-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+0178,U+0300-036F,U+2000-206F,U+20AC,U+2122,U+2190-2199,U+2212,U+FEFF,U+FFFD;
}

/* Font metrics from the shipped fonts; match Arial's average Latin advance.
   Preloads cover normal loads, these fallbacks reduce reflow on slow networks. */
@font-face {
  font-family: 'Familjen Fallback';
  src: local('Arial Bold');
  font-weight: 700;
  size-adjust: 91.43%;
  ascent-override: 112.11%;
  descent-override: 24.61%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial');
  size-adjust: 103.35%;
  ascent-override: 93.73%;
  descent-override: 23.36%;
  line-gap-override: 0%;
}
:root {
  --font-family--text: 'Inter Variable', 'Inter Fallback', sans-serif;
  --font-family--headings: 'Familjen Grotesk', 'Familjen Fallback', sans-serif;
  --font-family--display: 'Familjen Grotesk', 'Familjen Fallback', sans-serif;
}

/* Dimension hints reserve the natural ratio; a CSS width must not leave the
   HTML height fixed. Class/inline height rules still win for cover crops. */
img:where([data-responsive-image]) { height: auto; }
