/* S2B_KLARO_STYLE_20260923 */

.klaro {
  --s2b-klaro-navy: #102b45;
  --s2b-klaro-navy-hover: #183a59;
  --s2b-klaro-gold: #d5a93f;
  --s2b-klaro-gold-soft: #f7f0df;
  --s2b-klaro-text: #243242;
  --s2b-klaro-muted: #66717f;
  --s2b-klaro-border: #dfe5eb;
}


/* =========================================================
   COOKIE NOTICE
   ========================================================= */

.klaro .cookie-notice {
  position: fixed !important;

  top: auto !important;
  left: auto !important;
  right: 24px !important;
  bottom: 24px !important;

  width: min(
    560px,
    calc(100vw - 48px)
  ) !important;

  max-width: 560px !important;

  margin: 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  font-family: inherit !important;

  z-index: 2147483000 !important;
}


.klaro .cookie-notice .cn-body {
  position: relative !important;

  overflow: hidden !important;

  padding: 26px !important;

  background: #fff !important;

  border:
    1px solid
    rgba(16, 43, 69, .12) !important;

  border-radius: 18px !important;

  box-shadow:
    0 20px 55px
    rgba(16, 43, 69, .20) !important;

  color: var(--s2b-klaro-text) !important;
}


/* goud accent bovenaan */

.klaro .cookie-notice .cn-body::before {
  content: "" !important;

  position: absolute !important;

  top: 0 !important;
  left: 0 !important;
  right: 0 !important;

  height: 5px !important;

  background:
    var(--s2b-klaro-gold) !important;
}


/* titel */

.klaro .cookie-notice h1,
.klaro .cookie-notice h2,
.klaro .cookie-notice .cn-title {
  margin:
    0 0 12px !important;

  color:
    var(--s2b-klaro-navy) !important;

  font-size:
    clamp(
      25px,
      3vw,
      31px
    ) !important;

  line-height: 1.14 !important;

  font-weight: 800 !important;

  letter-spacing:
    -.02em !important;
}


/* tekst */

.klaro .cookie-notice p,
.klaro .cookie-notice .cn-description {
  margin: 0 !important;

  color:
    var(--s2b-klaro-muted) !important;

  font-size: 16px !important;

  line-height: 1.58 !important;
}


/* knoppengebied */

.klaro .cookie-notice .cn-ok {
  display: grid !important;

  gap: 14px !important;

  margin-top: 21px !important;
}


/* voorkeuren */

.klaro .cookie-notice .cn-learn-more {
  justify-self: start !important;

  min-height: 43px !important;

  padding:
    9px 15px !important;

  border:
    1px solid
    rgba(213, 169, 63, .50) !important;

  border-radius: 11px !important;

  background:
    var(--s2b-klaro-gold-soft) !important;

  color: #87651d !important;

  font-weight: 750 !important;

  text-decoration: none !important;

  box-shadow: none !important;
}


/* weigeren + accepteren */

.klaro .cookie-notice .cn-buttons {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;

  gap: 12px !important;

  width: 100% !important;
}


.klaro .cookie-notice
.cn-buttons
.cm-btn {
  width: 100% !important;

  min-height: 50px !important;

  margin: 0 !important;

  padding:
    12px 15px !important;

  border:
    1px solid
    var(--s2b-klaro-navy) !important;

  border-radius: 12px !important;

  background:
    var(--s2b-klaro-navy) !important;

  color: #fff !important;

  font-size: 16px !important;

  font-weight: 750 !important;

  line-height: 1.2 !important;

  box-shadow:
    0 6px 16px
    rgba(16, 43, 69, .14) !important;

  transition:
    transform .15s ease,
    background .15s ease,
    box-shadow .15s ease !important;
}


.klaro .cookie-notice
.cn-buttons
.cm-btn:hover,
.klaro .cookie-notice
.cn-buttons
.cm-btn:focus-visible {
  background:
    var(--s2b-klaro-navy-hover) !important;

  transform:
    translateY(-1px) !important;

  box-shadow:
    0 9px 20px
    rgba(16, 43, 69, .18) !important;
}


.klaro .cookie-notice
.cm-btn:focus-visible,
.klaro .cookie-notice
.cn-learn-more:focus-visible {
  outline:
    3px solid
    rgba(213, 169, 63, .45) !important;

  outline-offset: 2px !important;
}



/* =========================================================
   VOORKEUREN MODAL
   ========================================================= */

.klaro .cookie-modal {
  z-index: 2147483001 !important;

  font-family: inherit !important;
}


.klaro .cookie-modal .cm-bg {
  background:
    rgba(8, 24, 39, .60) !important;

  backdrop-filter:
    blur(3px) !important;
}


.klaro .cookie-modal .cm-modal {
  overflow: hidden !important;

  max-width: 760px !important;

  max-height:
    min(
      780px,
      calc(100vh - 48px)
    ) !important;

  border:
    1px solid
    rgba(16, 43, 69, .13) !important;

  border-radius: 18px !important;

  background: #fff !important;

  color:
    var(--s2b-klaro-text) !important;

  box-shadow:
    0 25px 75px
    rgba(8, 24, 39, .30) !important;
}


.klaro .cookie-modal .cm-header {
  padding:
    24px 26px 18px !important;

  border-bottom:
    1px solid
    var(--s2b-klaro-border) !important;

  background:
    linear-gradient(
      180deg,
      #fff 0%,
      #fbfcfd 100%
    ) !important;
}


.klaro .cookie-modal
.cm-header h1,
.klaro .cookie-modal
.cm-header .title {
  color:
    var(--s2b-klaro-navy) !important;

  font-weight: 800 !important;

  letter-spacing:
    -.02em !important;
}


.klaro .cookie-modal .cm-body {
  padding:
    18px 26px !important;

  color:
    var(--s2b-klaro-text) !important;
}


.klaro .cookie-modal
.cm-purpose,
.klaro .cookie-modal
.cm-service {
  border-color:
    var(--s2b-klaro-border) !important;
}


.klaro .cookie-modal .cm-footer {
  padding:
    18px 26px 22px !important;

  border-top:
    1px solid
    var(--s2b-klaro-border) !important;

  background:
    #fbfcfd !important;
}


.klaro .cookie-modal
.cm-footer-buttons {
  display: grid !important;

  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    ) !important;

  gap: 12px !important;
}


.klaro .cookie-modal .cm-btn {
  min-height: 48px !important;

  border-radius: 11px !important;

  font-weight: 750 !important;
}


.klaro .cookie-modal
.cm-btn.cm-btn-success,
.klaro .cookie-modal
.cm-btn.cm-btn-info,
.klaro .cookie-modal
.cm-btn.cm-btn-danger {
  border:
    1px solid
    var(--s2b-klaro-navy) !important;

  background:
    var(--s2b-klaro-navy) !important;

  color: #fff !important;
}


/* schakelaars */

.klaro .cookie-modal
input:checked + .slider,
.klaro .cookie-modal
.cm-list-input:checked
+ .cm-list-label
.slider {
  background:
    var(--s2b-klaro-gold) !important;
}



/* =========================================================
   MOBIEL
   ========================================================= */

@media (max-width: 640px) {

  .klaro .cookie-notice {
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;

    width: auto !important;

    max-width: none !important;
  }


  .klaro .cookie-notice
  .cn-body {
    padding:
      23px 20px 20px !important;

    border-radius:
      16px !important;
  }


  .klaro .cookie-notice h1,
  .klaro .cookie-notice h2,
  .klaro .cookie-notice
  .cn-title {
    font-size:
      27px !important;
  }


  .klaro .cookie-notice p,
  .klaro .cookie-notice
  .cn-description {
    font-size:
      15px !important;

    line-height:
      1.55 !important;
  }


  .klaro .cookie-notice
  .cn-ok {
    gap:
      12px !important;

    margin-top:
      18px !important;
  }


  .klaro .cookie-notice
  .cn-buttons {
    grid-template-columns:
      1fr !important;

    gap:
      9px !important;
  }


  .klaro .cookie-notice
  .cn-buttons
  .cm-btn {
    min-height:
      48px !important;
  }


  .klaro .cookie-modal
  .cm-modal {
    width:
      calc(100vw - 24px) !important;

    max-height:
      calc(100vh - 24px) !important;

    border-radius:
      16px !important;
  }


  .klaro .cookie-modal
  .cm-header,
  .klaro .cookie-modal
  .cm-body,
  .klaro .cookie-modal
  .cm-footer {
    padding-left:
      18px !important;

    padding-right:
      18px !important;
  }


  .klaro .cookie-modal
  .cm-footer-buttons {
    grid-template-columns:
      1fr !important;
  }


  /* S2B_KLARO_MOBILE_NOTICE_FIX_20260923 */
  .klaro .cookie-notice .cn-ok {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }

  .klaro .cookie-notice .cn-learn-more {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .klaro .cookie-notice .cn-buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    gap: 9px !important;
  }

  .klaro .cookie-notice .cn-buttons .cm-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 48px !important;
    margin: 0 !important;
  }

}
/* S2B_KLARO_DESKTOP_POLISH_20260923 */
@media (min-width: 641px) {
  .klaro .cookie-notice {
    top: auto !important;
    left: auto !important;
    right: 28px !important;
    bottom: 28px !important;
    width: 510px !important;
    max-width: calc(100vw - 56px) !important;
    margin: 0 !important;
  }

  .klaro .cookie-notice .cn-body {
    padding: 28px 30px 26px !important;
    border: 1px solid rgba(16, 43, 69, .12) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 48px rgba(16, 43, 69, .18) !important;
  }

  .klaro .cookie-notice h1,
  .klaro .cookie-notice h2,
  .klaro .cookie-notice .cn-title {
    margin: 0 0 10px !important;
    font-size: 30px !important;
    line-height: 1.15 !important;
  }

  .klaro .cookie-notice p,
  .klaro .cookie-notice .cn-description {
    max-width: 100% !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .klaro .cookie-notice .cn-ok {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin: 20px 0 0 !important;
    padding: 0 !important;
  }

  .klaro .cookie-notice .cn-learn-more {
    justify-self: start !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 9px 16px !important;
  }

  .klaro .cookie-notice .cn-buttons {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .klaro .cookie-notice .cn-buttons .cm-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    white-space: nowrap !important;
  }
}

/* S2B_KLARO_MOBILE_MODAL_SCROLL_20260923 */
@media (max-width: 680px) {

  /*
   * De pagina zelf blijft geblokkeerd wanneer Klaro open staat,
   * maar de voorkeurenmodal moet verticaal kunnen scrollen.
   */
  .klaro .cookie-modal {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y !important;
  }

  .klaro .cookie-modal .cm-modal {
    max-height: calc(100dvh - 16px) !important;
    height: auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-y: contain;
    touch-action: pan-y !important;
  }

  /*
   * Geen tweede geblokkeerde scrollcontainer in het modal-body.
   */
  .klaro .cookie-modal .cm-modal .cm-body {
    max-height: none !important;
    overflow: visible !important;
  }

}


/* ==========================================================
 * S2B_COOKIE_POLICY_PAGE_STYLE_20260924
 * Ship2Buy legal-page stijl voor /cookies.
 * ========================================================== */

.s2b-cookie-policy-page {
  width: min(100% - 32px, 980px);
  margin: 30px auto 72px;
}

.s2b-legal-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 48px 52px 50px;
  border: 1px solid rgba(213, 169, 63, 0.42);
  border-radius: 30px;
  background:
    radial-gradient(
      circle at 86% 12%,
      rgba(20, 154, 162, 0.25),
      transparent 38%
    ),
    linear-gradient(
      135deg,
      #10283d 0%,
      #17384d 58%,
      #07586a 100%
    );
  box-shadow:
    0 18px 46px rgba(16, 40, 61, 0.14);
  color: #fff;
}

.s2b-legal-hero::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 0;
  width: 12px;
  border-radius: 30px 0 0 30px;
  background: linear-gradient(
    180deg,
    #efc64f 0%,
    #d5a93f 100%
  );
}

.s2b-legal-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 390px;
  height: 390px;
  right: -145px;
  bottom: -235px;
  border: 2px solid rgba(255,255,255,.08);
  border-radius: 50%;
}

.s2b-legal-hero__kicker {
  margin-bottom: 22px;
  color: #e3b94d;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.14em;
}

.s2b-legal-hero__title {
  margin: 0;
  color: #fff;
  font-size: clamp(42px, 6vw, 62px);
  font-weight: 800;
  line-height: 1.03;
  letter-spacing: -0.035em;
}

.s2b-legal-hero__lead {
  max-width: 690px;
  margin: 22px 0 0;
  color: rgba(255,255,255,.90);
  font-size: 19px;
  line-height: 1.6;
}

.s2b-legal-hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin-top: 28px;
  padding: 13px 22px;
  border-radius: 14px;
  background: #d9ad3d;
  box-shadow:
    0 10px 24px rgba(130, 91, 13, 0.22);
  color: #10283d !important;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none !important;
}

.s2b-legal-hero__cta:hover,
.s2b-legal-hero__cta:focus-visible {
  background: #e4b94b;
  color: #10283d !important;
  text-decoration: none !important;
}

.s2b-legal-content {
  margin-top: 22px;
  padding: 38px 42px 44px;
  border: 1px solid #dce3e9;
  border-radius: 24px;
  background: #fff;
  box-shadow:
    0 14px 36px rgba(16, 40, 61, 0.07);
  color: #344453;
}

.s2b-legal-content > p:first-child {
  display: inline-block;
  margin: 0 0 28px;
  padding: 8px 13px;
  border-radius: 999px;
  background: #eef3f7;
  color: #52616d;
  font-size: 14px;
  line-height: 1.3;
}

.s2b-legal-content p,
.s2b-legal-content li {
  color: #354553;
  font-size: 17px;
  line-height: 1.72;
}

.s2b-legal-content p {
  margin-top: 0;
  margin-bottom: 20px;
}

.s2b-legal-content ul,
.s2b-legal-content ol {
  margin:
    8px
    0
    28px;
  padding-left: 25px;
}

.s2b-legal-content li + li {
  margin-top: 8px;
}

.s2b-legal-content h2,
.s2b-legal-content h3 {
  position: relative;
  margin:
    42px
    0
    18px;
  padding-top: 20px;
  color: #10283d;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.025em;
}

.s2b-legal-content h2 {
  font-size: 30px;
}

.s2b-legal-content h3 {
  font-size: 27px;
}

.s2b-legal-content h2::before,
.s2b-legal-content h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 52px;
  height: 4px;
  border-radius: 999px;
  background: #d5a93f;
}

.s2b-legal-content a {
  color: #075d71;
  font-weight: 700;
  text-underline-offset: 2px;
}

.s2b-legal-content strong {
  color: #182c3e;
}

@media (max-width: 680px) {

  .s2b-cookie-policy-page {
    width: 100vw;
    margin:
      0
      0
      48px;
    margin-left: calc(50% - 50vw);
  }

  .s2b-legal-hero {
    padding:
      48px
      46px
      46px;
    border-radius:
      0
      0
      30px
      30px;
  }

  .s2b-legal-hero::before {
    width: 12px;
    border-radius:
      0
      0
      10px
      0;
  }

  .s2b-legal-hero__kicker {
    margin-bottom: 20px;
    font-size: 14px;
    letter-spacing: 0.12em;
  }

  .s2b-legal-hero__title {
    font-size: 43px;
  }

  .s2b-legal-hero__lead {
    margin-top: 20px;
    font-size: 17px;
    line-height: 1.6;
  }

  .s2b-legal-hero__cta {
    width: 100%;
    min-height: 56px;
    margin-top: 27px;
  }

  .s2b-legal-content {
    width: calc(100% - 32px);
    margin:
      20px
      auto
      0;
    padding:
      27px
      23px
      32px;
    border-radius: 22px;
  }

  .s2b-legal-content > p:first-child {
    margin-bottom: 25px;
    font-size: 13px;
  }

  .s2b-legal-content p,
  .s2b-legal-content li {
    font-size: 16px;
    line-height: 1.68;
  }

  .s2b-legal-content h2,
  .s2b-legal-content h3 {
    margin-top: 36px;
    padding-top: 18px;
  }

  .s2b-legal-content h2 {
    font-size: 27px;
  }

  .s2b-legal-content h3 {
    font-size: 25px;
  }

}


/* ==========================================================
 * S2B_PRIVACY_POLICY_PAGE_STYLE_20260924
 * Privacyverklaring gebruikt dezelfde legal-template
 * als Cookiebeleid.
 * ========================================================== */

.s2b-privacy-policy-page {
  width: min(100% - 32px, 980px);
  margin: 30px auto 72px;
}

/*
 * De privacytekst bevat genummerde H3-koppen.
 * Zelfde ritme als Cookiebeleid.
 */
.s2b-privacy-policy-page .s2b-legal-content h3 {
  position: relative;
  margin: 42px 0 18px;
  padding-top: 20px;
  color: #10283d;
  font-size: 27px;
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: -0.025em;
}

.s2b-privacy-policy-page .s2b-legal-content h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 52px;
  height: 4px;
  border-radius: 999px;
  background: #d5a93f;
}

@media (max-width: 680px) {

  .s2b-privacy-policy-page {
    width: 100vw;
    margin:
      0
      0
      48px;
    margin-left: calc(50% - 50vw);
  }

  .s2b-privacy-policy-page .s2b-legal-content h3 {
    margin-top: 36px;
    padding-top: 18px;
    font-size: 25px;
  }

}
/* ==========================================================
 * S2B_TERMS_POLICY_PAGE_STYLE_20260924
 * Gebruiksvoorwaarden gebruiken dezelfde centrale legal-layout
 * als Cookiebeleid en Privacyverklaring.
 * ========================================================== */

.s2b-terms-policy-page {
  width: min(100% - 32px, 980px);
  margin: 30px auto 72px;
}

@media (max-width: 680px) {

  .s2b-terms-policy-page {
    width: 100vw;
    margin:
      0
      0
      48px;
    margin-left: calc(50% - 50vw);
  }

  /*
   * De titel is langer dan Privacyverklaring.
   * De soft hyphen in de HTML geeft een nette Nederlandse
   * afbreekmogelijkheid zonder horizontale overflow.
   */
  .s2b-terms-policy-page .s2b-legal-hero__title {
    font-size: 39px;
    line-height: 1.05;
    hyphens: manual;
    overflow-wrap: break-word;
  }

}

@media (max-width: 390px) {

  .s2b-terms-policy-page .s2b-legal-hero__title {
    font-size: 36px;
  }

}
