/*
Theme Name: Bildeve
Description: Custom WordPress theme for Bildeve.
Author: Bildeve
Version: 4.0.0
Text Domain: bildeve
*/

:root {
  --White: #ffffff;
  --Black: #000000;
  --header-height: 62px;
  --header-offset: 62px;
  --header-text: #131313;
  --header-button-bg: #101828;
}

html {
  scroll-behavior: smooth;
}

body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: "Inter", sans-serif;
  padding-top: calc(var(--header-offset) - 2px);
}

body.admin-bar .header {
  top: 32px;
}

body.menu-open {
  overflow: hidden;
}

.bildeveButton {
  align-items: center;
  border-radius: 3px;
  box-sizing: border-box;
  color: #101828;
  display: inline-flex;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  gap: 10px;
  justify-content: center;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
  white-space: nowrap;
}

.bildeveButton__label {
  display: inline-block;
}

.bildeveButton__icon {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  justify-content: center;
}

.bildeveButton__icon--arrow {
  height: 24px;
  width: 24px;
}

.bildeveButton__icon--arrow svg {
  display: block;
  height: 24px;
  width: 24px;
}

.bildeveButton__icon--chevron-small {
  height: 8px;
  width: 5px;
}

.bildeveButton__icon--chevron-small svg {
  display: block;
  height: 8px;
  width: 5px;
}

.bildeveButton__icon--link img {
  display: block;
  height: 9px;
  width: 24px;
}

.bildeveButton__icon--link svg {
  display: block;
  height: 9px;
  width: 24px;
}

.bildeveButton__icon--custom {
  max-height: 24px;
  max-width: 32px;
}

.bildeveButton__customIconImage {
  display: block;
  height: auto;
  max-height: 24px;
  max-width: 32px;
  object-fit: contain;
  width: auto;
}

.bildeveButton--solid-dark,
.bildeveButton--solid-light,
.bildeveButton--outline-light,
.bildeveButton--outline-dark {
  min-height: 42px;
  padding: 12px 24px;
}

.bildeveButton--solid-dark {
  background: #101828;
  border: 1px solid #101828;
  color: #fff;
  padding: 12px 24px;
}

.bildeveButton--solid-light {
  background: #fafafa;
  border: 1px solid rgba(16, 24, 40, 0.3);
  color: #101828;
}

.bildeveButton--outline-light {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
}

.bildeveButton--outline-dark {
  background: transparent;
  border: 1px solid rgba(16, 24, 40, 0.3);
  color: #101828;
}

.bildeveButton--solid-light.bildeveButton--icon-link {
  gap: 10px;
  padding: 10px 20px;
}

.bildeveButton--outline-dark.bildeveButton--icon-arrow {
  gap: 8px;
}

.bildeveButton--link-dark,
.bildeveButton--link-light {
  background: transparent;
  border: 0;
  border-radius: 0;
  gap: 4px;
  overflow: hidden;
  padding: 0;
}

.bildeveButton--link-dark {
  color: #101828;
}

.bildeveButton--link-light {
  color: #fff;
}

.bildeveButton--solid-dark:hover,
.bildeveButton--solid-dark:focus-visible {
  background: #4a5565;
}

.bildeveButton--solid-light:hover,
.bildeveButton--solid-light:focus-visible {
  background: rgba(255, 255, 255, 0.8);
}

.bildeveButton--outline-light:hover,
.bildeveButton--outline-light:focus-visible {
  background: rgba(255, 255, 255, 0.08);
}

.bildeveButton--outline-dark:hover,
.bildeveButton--outline-dark:focus-visible {
  background: rgba(16, 24, 40, 0.04);
}

.bildeveButton--link-dark:hover,
.bildeveButton--link-dark:focus-visible,
.bildeveButton--link-light:hover,
.bildeveButton--link-light:focus-visible {
  opacity: 0.78;
  text-decoration: underline;
}

.bildeveButton:focus-visible {
  outline: 2px solid rgba(16, 24, 40, 0.28);
  outline-offset: 2px;
}

/* Header Styles */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1002;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  overflow: visible;
  height: 75px;
}

@media screen and (min-width: 1180px) {
  .header {
    height: 64px;
  }
}

.headerBanner {
  background: #101828;
  color: #fff;
  max-height: 0;
  min-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  width: 100%;
}

.headerBanner--open {
  max-height: 60px;
}

.headerBanner[hidden] {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .headerBanner {
    transition: none;
  }
}

.headerBanner__inner {
  align-items: center;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
  min-height: 50px;
  padding: 0 20px;
  position: relative;
  width: 100%;
}

.headerBanner__marquee {
  flex: 1 1 auto;
  max-width: calc(100% - 56px);
  min-width: 0;
}

.headerBanner__marqueeTrack {
  display: flex;
  justify-content: center;
  width: 100%;
}

.headerBanner__content {
  align-items: center;
  display: flex;
  gap: 30px;
  justify-content: center;
}

.headerBanner__content--duplicate {
  display: none;
}

.headerBanner__message,
.headerBanner__cta {
  color: #fff;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
}

.headerBanner__message {
  margin: 0;
  text-align: center;
}

.headerBanner__cta {
  align-items: center;
  display: inline-flex;
  gap: 4px;
  text-decoration: none;
  transition: opacity 0.2s ease;
  white-space: nowrap;
}

.headerBanner__cta:hover,
.headerBanner__cta:focus-visible,
.headerBanner__close:hover,
.headerBanner__close:focus-visible {
  opacity: 0.8;
}

.headerBanner__ctaIcon {
  display: inline-block;
  height: 8px;
  width: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
}

.headerBanner__close {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 18px;
  height: 24px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
}

.header__container {
  box-sizing: border-box;
  width: 100%;
  margin: 0 auto;
  padding: 0 64px;
  min-height: var(--header-height);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
}

.header__logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.header__logoLink,
.header__logo .custom-logo-link {
  align-items: center;
  display: inline-flex;
  text-decoration: none;
}

/* .header prefix keeps these winning over WooCommerce's
   `.woocommerce-page img { height: auto }` on shop pages. */
.header .header__logoImage,
.header__logo .custom-logo {
  display: block;
  height: 28px;
  width: auto;
}

.header__logoText {
  color: var(--header-text);
  font-size: 28px;
  font-style: italic;
  /* 700 instead of 800: Inter 800 isn't shipped in the self-hosted set. */
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
  margin: 0;
}

.header__nav {
  display: flex;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-width: 0;
}

.header__menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  justify-content: flex-end;
}

.header__menu li {
  display: flex;
  align-items: center;
  margin: 0;
  position: relative;
}

.header__menu a {
  color: var(--header-text);
  text-decoration: none;
  font-family: "Inter", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  transition: background-color 0.2s ease;
  position: relative;
  display: flex;
  align-items: center;
  white-space: nowrap;
  padding: 18.3px 16px;
}

.header__menu a:hover,
.header__menu a.is-big-menu-open,
.header__menu .current-menu-item > a,
.header__menu .current-menu-ancestor > a,
.header__menu .current-menu-parent > a,
.header__menu .current_page_item > a,
.header__menu .current_page_parent > a,
.header__menu .current_page_ancestor > a {
  background-color: #f1f5f8;
}

.header__menu .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
}

.header__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
}

.header__mobileToggle,
.header__mobilePanel {
  display: none;
}

.header__mobileToggle {
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  background: transparent;
  border: 0;
  border-radius: 3px;
  box-shadow: none;
  color: var(--header-text);
  cursor: pointer;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  position: relative;
  width: 40px;
  height: 40px;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.header__mobileToggle:hover {
  background-color: #f1f5f8;
  color: var(--header-button-bg);
}

.header__mobileToggle:focus-visible {
  background-color: #f1f5f8;
  outline: 2px solid rgba(16, 24, 40, 0.35);
  outline-offset: 2px;
}

.header__mobileToggle:active {
  background-color: #e8ecf1;
}

.header__mobileToggle.is-active {
  background-color: #f1f5f8;
  color: var(--header-button-bg);
}

.header__mobileToggleLine {
  background: currentColor;
  border-radius: 1px;
  display: block;
  height: 2px;
  left: 9px;
  position: absolute;
  right: 9px;
  transition:
    transform 0.22s ease,
    opacity 0.18s ease,
    top 0.22s ease;
}

.header__mobileToggleLine:nth-child(1) {
  top: 13px;
}

.header__mobileToggleLine:nth-child(2) {
  top: 19px;
}

.header__mobileToggleLine:nth-child(3) {
  top: 25px;
}

.header__mobileToggle.is-active .header__mobileToggleLine:nth-child(1) {
  top: 19px;
  transform: rotate(45deg);
}

.header__mobileToggle.is-active .header__mobileToggleLine:nth-child(2) {
  opacity: 0;
}

.header__mobileToggle.is-active .header__mobileToggleLine:nth-child(3) {
  top: 19px;
  transform: rotate(-45deg);
}

.header__mobilePanel {
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid rgba(16, 24, 40, 0.08);
  box-sizing: border-box;
  width: 100%;
}

.header__mobilePanel[hidden] {
  display: none;
}

.header__mobilePanelInner {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  margin: 0 auto;
  max-height: calc(100dvh - 88px);
  overflow-y: auto;
  padding: 20px 32px 28px;
  height: 90dvh;
  background: white;
}

.header__mobileActions .bildeveButton {
  margin-bottom: 20px;
  width: 100%;
}

.headerMobileMenu__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.headerMobileMenu__item {
  border-bottom: 1px solid rgba(16, 24, 40, 0.08);
}

.headerMobileMenu__item:first-child {
  border-top: 1px solid rgba(16, 24, 40, 0.08);
}

.headerMobileMenu__link,
.headerMobileMenu__toggle,
.headerMobileMenu__overviewLink,
.headerMobileMenu__bigMenuHeading,
.headerMobileMenu__bigMenuCard {
  color: #101828;
  text-decoration: none;
}

.headerMobileMenu__link,
.headerMobileMenu__toggle,
.headerMobileMenu__bigMenuToggle {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  box-sizing: border-box;
  color: #101828;
  cursor: pointer;
  display: flex;
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 500;
  justify-content: space-between;
  line-height: 1.35;
  padding: 18px 0;
  text-align: left;
  text-decoration: none;
  width: 100%;
}

.headerMobileMenu__toggleIcon,
.headerMobileMenu__bigMenuHeadingArrow {
  border-bottom: 1.5px solid #4a5565;
  border-right: 1.5px solid #4a5565;
  display: inline-block;
  flex: 0 0 auto;
  height: 6px;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  width: 6px;
}

.headerMobileMenu__item.is-open
  > .headerMobileMenu__toggle
  .headerMobileMenu__toggleIcon {
  transform: rotate(225deg);
}

.headerMobileMenu__bigMenuSection.is-open
  > .headerMobileMenu__bigMenuToggle
  .headerMobileMenu__bigMenuHeadingArrow {
  transform: rotate(225deg);
}

.headerMobileMenu__panel .headerMobileMenu__bigMenuToggle {
  font-size: 17px;
  font-weight: 400;
  padding: 10px 0;
}

.headerMobileMenu__panel {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 0 0 18px;
}

.headerMobileMenu__panel[hidden] {
  display: none;
}

.headerMobileMenu__overviewLink {
  display: inline-flex;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}

.headerMobileMenu__list--sub {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.headerMobileMenu__list--sub .headerMobileMenu__item {
  border: 0;
}

.headerMobileMenu__list--sub .headerMobileMenu__item:first-child {
  border-top: 0;
}

.headerMobileMenu__list--sub .headerMobileMenu__link,
.headerMobileMenu__list--sub .headerMobileMenu__toggle {
  font-size: 17px;
  font-weight: 400;
  padding: 10px 0;
}

.headerMobileMenu__bigMenuSections {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.headerMobileMenu__bigMenuSection {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.headerMobileMenu__bigMenuHeading:not(.headerMobileMenu__bigMenuToggle) {
  align-items: center;
  display: inline-flex;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 600;
  gap: 10px;
  justify-content: space-between;
  line-height: 1.4;
}

.headerMobileMenu__bigMenuCards {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.headerMobileMenu__bigMenuCards[hidden] {
  display: none;
}

.headerMobileMenu__bigMenuCard {
  align-items: center;
  /* background: #f6f8fb; */
  border-radius: 8px;
  display: flex;
  gap: 14px;
  padding: 10px 12px;
}

.headerMobileMenu__bigMenuCardImageWrap {
  border-radius: 6px;
  flex: 0 0 64px;
  height: 64px;
  overflow: hidden;
}

.headerMobileMenu__bigMenuCardImage {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.headerMobileMenu__bigMenuCardLabel {
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
}

.header__bigMenus {
  position: fixed;
  top: var(--header-big-menu-top, var(--header-offset, 0));
  left: var(--header-big-menu-left, 0);
  z-index: 1300;
  display: none;
  justify-content: flex-start;
  pointer-events: none;
  width: var(--header-big-menu-width, min(813px, calc(100vw - 24px)));
  box-sizing: border-box;
}

body.is-big-menu-open .header {
  z-index: 1300;
}

.header__bigMenus:not([hidden]) {
  display: flex;
}

.headerBigMenu {
  background: #fff;
  box-shadow: 0 20px 48px rgba(16, 24, 40, 0.14);
  display: none;
  justify-content: flex-end;
  /* Grow with the menu items, but never past the bottom of the screen. */
  height: auto;
  min-height: min(
    660px,
    calc(100vh - var(--header-big-menu-top, var(--header-offset, 0px)) - 16px)
  );
  max-height: calc(
    100vh - var(--header-big-menu-top, var(--header-offset, 0px)) - 16px
  );
  pointer-events: auto;
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
}

.headerBigMenu:not([hidden]) {
  display: flex;
}

.headerBigMenu__primary {
  background: #fff;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  max-height: 100%;
  min-height: 0;
  min-width: 0;
  width: 100%;
  /* Scroll the item list when there are more items than fit on screen. */
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.headerBigMenu__item {
  align-items: center;
  background: #fff;
  border: 0;
  box-sizing: border-box;
  color: #101828;
  display: flex;
  flex: 0 0 110px;
  font: inherit;
  justify-content: center;
  padding: 44px 35px;
  text-align: left;
  text-decoration: none;
  transition: background-color 0.2s ease;
  width: 100%;
  box-sizing: border-box;
}

.headerBigMenu__item--hasChildren {
  cursor: pointer;
}

.headerBigMenu__itemInner {
  align-items: center;
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.headerBigMenu__itemTitle {
  color: #101828;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.5;
}

.headerBigMenu__itemArrow {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
}

.headerBigMenu__detailArrow {
  display: inline-flex;
  flex-shrink: 0;
  height: 14px;
  width: 14px;
}

.headerBigMenu__detailArrow svg {
  display: block;
  height: 14px;
  width: 14px;
}

.headerBigMenu__item:hover,
.headerBigMenu__item.is-active {
  background: #f6f8fb;
}

.headerBigMenu__secondary {
  background: #f6f8fb;
  display: none;
  flex: 1 1 auto;
  min-height: 0;
  /* Stretch with the panel (flex align-stretch) instead of a fixed cap. */
  height: auto;
  max-height: none;
  padding: 44px;
  max-width: 50%;
  box-sizing: border-box;
  overflow: hidden;
}

.headerBigMenu__detail {
  display: none;
  width: 100%;
}

.headerBigMenu__detail:not([hidden]) {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.headerBigMenu.is-expanded {
  justify-content: space-between;
}

.headerBigMenu.is-expanded .headerBigMenu__primary {
  flex: 1 1 auto;
  width: auto;
}

.headerBigMenu.is-expanded .headerBigMenu__item {
  justify-content: flex-start;
  padding: 44px 35px;
}

.headerBigMenu.is-expanded .headerBigMenu__itemInner {
  justify-content: flex-start;
  width: 100%;
}

.headerBigMenu.is-expanded
  .headerBigMenu__item--hasChildren
  .headerBigMenu__itemInner {
  justify-content: space-between;
}

.headerBigMenu.is-expanded .headerBigMenu__item.is-active {
  padding: 44px 35px;
}

.headerBigMenu.is-expanded
  .headerBigMenu__item.is-active
  .headerBigMenu__itemInner {
  justify-content: space-between;
}

.headerBigMenu.is-expanded .headerBigMenu__secondary {
  display: flex;
  flex-direction: column;
}

.headerBigMenu__detailHeader {
  align-items: center;
  color: #101828;
  display: flex;
  flex-shrink: 0;
  justify-content: space-between;
  margin-bottom: 30px;
  text-decoration: none;
}

.headerBigMenu__detailTitle {
  color: #101828;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.headerBigMenu__cards {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.headerBigMenu__card {
  align-items: center;
  background: #fff;
  border-radius: 5px;
  color: #131313;
  display: flex;
  gap: 20px;
  min-height: 79px;
  padding-right: 20px;
  text-decoration: none;
}

.headerBigMenu__card:not(:has(img)) {
  padding: 0 20px;
}

.headerBigMenu__cardImageWrap {
  border-radius: 2px;
  display: block;
  flex: 0 0 79px;
  height: 79px;
  overflow: hidden;
}

.headerBigMenu__cardImage {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.headerBigMenu__cardLabel {
  color: #131313;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
}

.header__actions .bildeveButton {
  white-space: nowrap;
}

/* Footer */
.footer {
  background: #101828;
  box-sizing: border-box;
  color: #fff;
  overflow: hidden;
  padding: 80px 64px;
  width: 100%;
}

.footer__container {
  display: flex;
  flex-direction: column;
  gap: 80px;
  margin: 0 auto;
  max-width: 1280px;
  width: 100%;
}

.footer__top {
  align-items: flex-start;
  display: flex;
  gap: 108px;
  width: 100%;
}

.footer__linksArea {
  display: flex;
  flex: 1 1 770px;
  gap: 40px;
  max-width: 770px;
  min-width: 0;
}

.footer__logoColumn {
  flex: 1 1 0;
  min-width: 0;
}

.footer__logoLink {
  display: inline-flex;
  text-decoration: none;
}

/* .footer prefix beats WooCommerce's `.woocommerce-page img` override,
   so the lazy-loaded logo keeps its 28px box on shop pages too. */
.footer .footer__logoImage {
  display: block;
  height: 28px;
  object-fit: contain;
  width: auto;
}

.footer__navGroup {
  display: flex;
  flex: 0 0 499px;
  gap: 40px;
  min-width: 0;
  width: 499px;
}

.footer__column {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  overflow: hidden;
}

.footer__columnTitle,
.footer__newsletterTitle {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.5;
  margin: 0;
  width: 100%;
  word-break: break-word;
}

.footer__columnLinks {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.footer__columnLinkItem {
  display: flex;
  padding: 8px 0;
  width: 100%;
}

.footer__columnLink {
  color: #fff;
  display: block;
  flex: 1 1 auto;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  min-width: 0;
  padding: 0;
  text-decoration: none;
  transition: opacity 0.2s ease;
  word-break: break-word;
}

.footer__newsletter {
  display: flex;
  flex: 0 0 400px;
  flex-direction: column;
  gap: 24px;
  width: 400px;
  display: none;
}

.footer__newsletterContent {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

.footer__newsletterText {
  color: #fff;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  opacity: 0.8;
  width: 100%;
  word-break: break-word;
}

.footer__newsletterText p,
.footer__newsletterPrivacy {
  margin: 0;
}

.footer__newsletterActions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.footer__newsletterForm {
  display: flex;
  gap: 16px;
  width: 100%;
}

.footer__newsletterInput {
  appearance: none;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 4px;
  box-sizing: border-box;
  color: #fff;
  flex: 1 1 auto;
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  min-width: 0;
  padding: 12px;
}

.footer__newsletterInput::placeholder {
  color: rgba(255, 255, 255, 0.6);
}

.footer__newsletterButton {
  appearance: none;
  background: transparent;
  border: 1px solid #fff;
  border-radius: 3px;
  box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  flex-shrink: 0;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  padding: 12px 24px;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
  white-space: nowrap;
}

.footer__newsletterPrivacy {
  color: #fff;
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
}

.footer__bottom {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
}

.footer__divider {
  border-top: 1px solid rgba(255, 255, 255, 0.7);
  height: 0;
  width: 100%;
}

.footer__bottomRow {
  align-items: flex-start;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  width: 100%;
}

.footer__credits {
  align-items: center;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  min-width: 0;
}

.footer__copyright,
.footer__legalLink {
  color: #fff;
  flex-shrink: 0;
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  white-space: nowrap;
}

.footer__legalLink {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer__bylineRow {
  display: flex;
  justify-content: center;
  margin-top: -8px;
  width: 100%;
}

.footer__byline {
  color: rgba(255, 255, 255, 0.7);
  font-family: "Roboto", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  text-align: center;
}

.footer__bylineLink {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer__bylineLink:hover,
.footer__bylineLink:focus-visible {
  color: #fff;
}

.footer__bylineLink:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.7);
  outline-offset: 2px;
}

.footer__socialLinks {
  display: flex;
  flex: 0 0 auto;
  gap: 12px;
}

.footer__socialLink {
  align-items: center;
  color: #fff;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
  width: 24px;
}

.footer__socialIcon,
.footer__socialIcon svg {
  display: block;
  height: 24px;
  width: 24px;
}

.footer__columnLink:hover,
.footer__columnLink:focus-visible,
.footer__legalLink:hover,
.footer__legalLink:focus-visible,
.footer__socialLink:hover,
.footer__socialLink:focus-visible,
.footer__newsletterButton:hover,
.footer__newsletterButton:focus-visible {
  opacity: 0.78;
}

.footer__newsletterInput:focus-visible,
.footer__newsletterButton:focus-visible,
.footer__columnLink:focus-visible,
.footer__legalLink:focus-visible,
.footer__socialLink:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.7);
  outline-offset: 2px;
}

@media (max-width: 1180px) {
  .header__container {
    padding: 12px 32px;
    align-items: center;
    flex-wrap: nowrap;
    gap: 16px;
    min-height: 72px;
  }

  .header__bigMenus {
    display: none;
  }

  .header__nav,
  .header__actions {
    display: none !important;
  }

  .header__mobileToggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .header__mobilePanel {
    display: block;
  }

  body.menu-open .header {
    z-index: 1300;
  }

  body.menu-open .headerBanner,
  body.menu-open .headerBanner.headerBanner--open {
    max-height: 0 !important;
    min-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: none;
    visibility: hidden;
  }

  body.menu-open .header__mobilePanel {
    position: relative;
    z-index: 2;
  }

  .headerBigMenu,
  .headerBigMenu__primary {
    width: 100%;
  }

  /* Tablet drawer: apply the mobile menu design across the whole
     hamburger range, aligned to the 32px header padding. */
  .header__mobilePanelInner {
    padding: 0;
  }

  .headerMobileMenu__link,
  .headerMobileMenu__toggle {
    font-size: 24px;
    padding: 24px 32px;
  }

  .headerMobileMenu__panel {
    background: #f1f5f8;
    gap: 30px;
    padding: 32px;
  }

  .headerMobileMenu__panel .headerMobileMenu__bigMenuToggle {
    font-size: 20px;
    font-weight: 500;
    padding: 10px 0;
  }

  .headerMobileMenu__overviewLink {
    font-size: 20px;
    font-weight: 500;
  }

  .headerMobileMenu__bigMenuHeading:not(.headerMobileMenu__bigMenuToggle) {
    font-size: 20px;
    font-weight: 400;
  }

  .headerMobileMenu__bigMenuSections {
    gap: 30px;
  }

  .headerMobileMenu__bigMenuSection {
    gap: 20px;
  }

  /* Tablets have room for two card columns inside a big-menu section. */
  .headerMobileMenu__bigMenuCards {
    display: grid;
    gap: 12px 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .headerMobileMenu__bigMenuCards[hidden] {
    display: none;
  }

  .headerMobileMenu__overviewLink--bigMenu {
    grid-column: 1 / -1;
  }

  .headerMobileMenu__bigMenuCard {
    padding: 10px 12px;
  }

  .headerMobileMenu__bigMenuCardImageWrap {
    border-radius: 2px;
  }

  .headerMobileMenu__bigMenuCardLabel {
    font-size: 16px;
    font-weight: 300;
  }

  .header__mobileActions .bildeveButton {
    margin: 32px;
    width: calc(100% - 64px);
  }

  /* Tablet footer: stack into two rows — logo + link columns on top,
     newsletter below — instead of squeezing the desktop single row. */
  .footer {
    padding: 72px 48px;
  }

  .footer__container {
    gap: 64px;
  }

  .footer__top {
    flex-direction: column;
    gap: 48px;
  }

  .footer__linksArea {
    flex: 1 1 auto;
    flex-direction: column;
    gap: 40px;
    max-width: none;
    width: 100%;
  }

  .footer__navGroup {
    flex: 1 1 auto;
    width: 100%;
  }

  .footer__newsletter {
    flex-basis: auto;
    max-width: 520px;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .header__container {
    padding: 12px 20px;
    gap: 16px;
  }

  .header__mobilePanelInner {
    padding: 0;
  }

  body.menu-open .header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .headerMobileMenu__bigMenuSection {
    gap: 20px;
  }

  .headerMobileMenu__bigMenuSections {
    gap: 30px;
  }

  .headerMobileMenu__panel {
    gap: 30px;
  }

  .headerMobileMenu__overviewLink {
    font-size: 20px;
    font-weight: 500;
  }

  .headerMobileMenu__bigMenuHeading:not(.headerMobileMenu__bigMenuToggle) {
    font-size: 20px;
    font-weight: 400;
  }

  /* Phones go back to one card per row. */
  .headerMobileMenu__bigMenuCards {
    grid-template-columns: minmax(0, 1fr);
  }

  .headerMobileMenu__bigMenuCard {
    padding: 10px 20px;
  }

  .headerMobileMenu__bigMenuCardImageWrap {
    border-radius: 2px;
  }

  .headerMobileMenu__bigMenuCardLabel {
    font-weight: 300;
    font-size: 16px;
  }

  .header__mobileActions .bildeveButton {
    width: 90%;
    margin: 40px 20px;
  }

  .headerBanner--open {
    max-height: 44px;
  }

  .headerBanner__inner {
    min-height: 36px;
    padding: 8px 36px 8px 0;
  }

  .headerBanner__marquee {
    max-width: none;
    overflow: hidden;
  }

  .headerBanner__marqueeTrack {
    justify-content: flex-start;
    width: max-content;
    animation: headerBannerMarquee 22s linear infinite;
  }

  .headerBanner__content {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 16px;
    max-width: none;
    padding-right: 40px;
    white-space: nowrap;
  }

  .headerBanner__content--duplicate {
    display: flex;
    pointer-events: none;
  }

  .headerBanner__message,
  .headerBanner__cta {
    font-size: 12px;
    white-space: nowrap;
  }

  .headerBanner__close {
    right: 12px;
  }

  .header .header__logoImage,
  .header__logo .custom-logo {
    height: 24px;
  }

  .header__logoText {
    font-size: 24px;
  }

  .headerMobileMenu__link,
  .headerMobileMenu__toggle {
    font-size: 24px;
    padding: 24px 20px;
  }

  .headerMobileMenu__panel .headerMobileMenu__bigMenuToggle {
    font-size: 20px;
    font-weight: 500;
    padding: 10px 0;
  }

  .headerMobileMenu__bigMenuHeading:not(.headerMobileMenu__bigMenuToggle) {
    font-size: 20px;
    font-weight: 400;
  }

  .headerMobileMenu__panel {
    background: #f1f5f8;
    padding: 40px 40px;
  }

  .footer {
    padding: 56px 24px;
  }

  .footer__container {
    gap: 56px;
  }

  .footer__top {
    flex-direction: column;
    gap: 40px;
  }

  .footer__linksArea {
    flex-direction: column;
    gap: 32px;
    max-width: none;
    width: 100%;
  }

  .footer__navGroup {
    flex: 1 1 auto;
    flex-wrap: wrap;
    width: 100%;
  }

  .footer__column {
    flex: 1 1 calc(50% - 20px);
    min-width: 140px;
  }

  .footer__newsletter {
    flex-basis: auto;
    max-width: none;
    width: 100%;
  }

  .footer__newsletterForm {
    flex-direction: column;
  }

  .footer__newsletterButton {
    width: 100%;
  }

  .footer__bottomRow {
    flex-direction: column;
  }
}

@keyframes headerBannerMarquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .headerBanner__marqueeTrack {
    animation: none;
    width: 100%;
  }

  .headerBanner__content--duplicate {
    display: none;
  }

  .headerBanner__content {
    flex-wrap: wrap;
    justify-content: center;
    padding-right: 0;
    white-space: normal;
  }

  .headerBanner__message,
  .headerBanner__cta {
    white-space: normal;
  }

  .headerBanner--open {
    max-height: 120px;
  }
}

@media (max-width: 479px) {
  .footer {
    padding: 48px 20px;
  }

  .footer__credits {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .footer__copyright,
  .footer__legalLink {
    white-space: normal;
  }
}
