/* 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;
  }

}
