/*
 Theme Name:   Magneet Agency Child
 Theme URI:    https://bureaumagneet.nl/
 Description:  Thema voor custom code
 Author:       Magneet Agency
 Author URI:   https://bureaumagneet.nl/
 Template:     bricks
 Version:      januari 2024
 Text Domain:  bricks
*/


/* ==========================================================================
   Algemeen
   ========================================================================== */
strong {
  color: #00953B;
  font-weight: 700;
}

img {
  object-fit: cover;
}

p a {
  text-decoration: underline;
  font-weight: bold;
}

html {
  overflow-x: hidden;
}


/* ==========================================================================
   Media sections
   ========================================================================== */
.s-bm-media-blog,
.s-bm-media-fullscreen {
  width: 100%;
}

.s-bm-media-groot {
  width: 100%;
  display: flex;
  justify-content: center;
}

.c-bm-media-blog {
  width: 100%;
  max-width: 1280px;
  align-content: center;
  justify-self: center;
  justify-items: center;
}

.c-bm-media-groot {
  width: 100%;
  max-width: 1280px;
}

.c-bm-media-fullscreen,
.mc-bm-media-groot,
.mc-bm-media-fullscreen {
  width: 100%;
}

.mc-bm-media-blog {
  width: 100%;
  max-width: 690px;
}

.iframe-img-bm-media-blog,
.iframe-img-bm-media-groot {
  width: 100%;
}

.iframe-img-bm-media-fullscreen {
  width: 100%;
  min-width: 100%;
  height: 100vh;
}


/* ==========================================================================
   Placeholder
   ========================================================================== */
.media-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}

.media-v-play-btn {
  font-size: 10rem;
}


/* ==========================================================================
   Grid classes
   ========================================================================== */
.twee-items {
  grid-template-columns: repeat(auto-fill, minmax(490px, 1fr));
}

.drie-items {
  grid-template-columns: repeat(auto-fill, minmax(390px, 1fr));
}

.vier-items {
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
}


/* ==========================================================================
   Spacing utilities
   ========================================================================== */
/* Bovenruimte */
.ge-top    { padding-top: 0; }
.k-top     { padding-top: clamp(2rem, calc(2rem + ((1vw - 0.32rem) * 1.0417)), 3rem); }
.m-top     { padding-top: clamp(3rem, calc(3rem + ((1vw - 0.32rem) * 3.125)),  6rem); }
.gr-top    { padding-top: clamp(5rem, calc(5rem + ((1vw - 0.32rem) * 4.1667)), 9rem); }

/* Onderruimte */
.ge-bottom { padding-bottom: 0; }
.k-bottom  { padding-bottom: clamp(2rem, calc(2rem + ((1vw - 0.32rem) * 1.0417)), 3rem); }
.m-bottom  { padding-bottom: clamp(3rem, calc(3rem + ((1vw - 0.32rem) * 3.125)),  6rem); }
.gr-bottom { padding-bottom: clamp(5rem, calc(5rem + ((1vw - 0.32rem) * 4.1667)), 9rem); }


/* ==========================================================================
   CTA containers
   ========================================================================== */
.bm-header-cta-container {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cta-container {
  display: flex;
  gap: 10px;
  margin-top: 2rem;
}

.cta-space {
  margin-top: 2rem;
}

/* Stack variant voor hero */
.cta-container--stack {
  flex-direction: column;
  align-items: center;
}

.cta-container--stack .pri-cta,
.cta-container--stack .sec-cta {
  width: 100%;
  max-width: 420px;
  justify-content: center;
}


/* ==========================================================================
   CTA buttons
   ========================================================================== */
/* Gedeelde base voor alle knoppen */
.pri-cta,
.sec-cta,
.btn-footer-knop {
  box-sizing: border-box;
  min-height: 56px;
  padding: 12px 22px;
  border-radius: 14px;

  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;

  font-weight: 700;
  line-height: 1;
  text-decoration: none;

  border: 0;
  outline: 0;
  position: relative;
  overflow: hidden;

  transition:
    transform .25s ease,
    filter .25s ease,
    box-shadow .25s ease,
    background .25s ease,
    color .25s ease;
}

/* Primary CTA (groen) */
.pri-cta {
  background: linear-gradient(135deg, #00B347 0%, #00953B 45%, #006E2B 100%);
  color: #fff;
  box-shadow:
    inset 0 0 0 2px transparent,
    0 10px 26px rgba(0, 149, 59, 0.22);
}

/* Shine alleen op groene primary (niet op belknop) */
.pri-cta:not(.pri-cta--call)::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 120%;
  height: 100%;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.22) 50%,
    transparent 100%
  );
  transition: left .6s ease;
}

.pri-cta:not(.pri-cta--call):hover::before {
  left: 120%;
}

.pri-cta:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow:
    inset 0 0 0 2px transparent,
    0 14px 34px rgba(0, 149, 59, 0.30);
}

/* Belknop (oranje) */
.pri-cta--call {
  background: linear-gradient(135deg, #FFC233 0%, #FF9900 45%, #E86B00 100%);
  color: #fff;
  box-shadow:
    inset 0 0 0 2px transparent,
    0 10px 26px rgba(255, 153, 0, 0.26);
}

.pri-cta--call::before {
  content: none !important;
}

.pri-cta--call:hover {
  transform: translateY(-2px);
  filter: brightness(1.03);
  box-shadow:
    inset 0 0 0 2px transparent,
    0 14px 34px rgba(255, 153, 0, 0.36);
}

/* Secondary CTA (outline via inset shadow) */
.sec-cta {
  background: transparent;
  color: #00953B;
  box-shadow: inset 0 0 0 2px #00953B;
}

.sec-cta:hover {
  background: rgba(0, 149, 59, 0.10);
  color: #007E32;
  box-shadow: inset 0 0 0 2px #007E32;
  transform: translateY(-1px);
}

/* Secondary variant voor groene achtergrond */
.sec-cta--contact {
  background: #ffffff;
  color: #00953B;
  box-shadow: inset 0 0 0 2px #ffffff;
}

.sec-cta--contact:hover {
  background: #f6fff8;
  color: #007E32;
  box-shadow: inset 0 0 0 2px #f6fff8;
  transform: translateY(-1px);
}

/* Footer knop (wit op groene bg) */
.btn-footer-knop {
  background: #ffffff;
  color: #00953B;
  box-shadow: inset 0 0 0 2px #ffffff;
}

.btn-footer-knop:hover {
  background: rgba(255, 255, 255, 0.9);
  color: #007E32;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.9);
  transform: translateY(-1px);
}

.btn-footer-knop:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.35);
  outline-offset: 3px;
}

/* Focus voor primary/secondary */
.pri-cta:focus-visible,
.sec-cta:focus-visible {
  outline: 2px solid rgba(0, 149, 59, 0.35);
  outline-offset: 3px;
}

/* Icon styling (gedeeld) */
.button-icon,
.button-icon svg,
.btn-footer-knop svg {
  width: 20px;
  height: 20px;
}

.button-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 20px;
}

.button-icon svg,
.btn-footer-knop svg {
  display: block;
}

.button-icon path,
.btn-footer-knop path {
  fill: currentColor;
}

.cta-label {
  line-height: 1;
}


/* ==========================================================================
   Embed (16:9)
   ========================================================================== */
.embed-container {
  position: relative;
  overflow: hidden;
  padding-top: 56.25%;
  height: 100%;
  width: 100%;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/* ==========================================================================
   Grid
   ========================================================================== */
.bm-grid-items-container {
  display: grid;
  gap: 30px;
  width: 100%;
}


/* ==========================================================================
   Tekst
   ========================================================================== */
.bm-t-check {
  margin-bottom: 25px;
}

/* Gecentreerde tekst */
.bm-t-center {
  max-width: 690px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.bm-t-center .cta-container {
  text-align: center;
}

/* Smalle tekst */
.bm-t-small {
  max-width: 580px;
}


/* ==========================================================================
   Tekst met media
   ========================================================================== */
.brxe-container.c-t-img {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-column-gap: 30px;
  grid-row-gap: 30px;
}

.dr-t-img img.t-img {
  width: 100%;
}

/* Standaard order */
.brxe-container.c-t-img .dl-t-img { order: 0; }
.brxe-container.c-t-img .dr-t-img { order: 1; }

/* Omgekeerde order */
.brxe-container.c-t-img.t-img-order .dl-t-img { order: 1; }
.brxe-container.c-t-img.t-img-order .dr-t-img { order: 1; }

/* Fullscreen tekst+media */
.t-m-section-full {
  padding: 0 !important;
  height: 90vh;
}

.t-m-fullscreen {
  width: 100% !important;
  padding: 0 !important;
  height: 100%;
}

.t-m-fullscreen .t-img-text {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
}

.t-m-fullscreen .t-m-fullscreen-center {
  max-width: 500px;
}

.t-m-fullscreen .bm-media,
.bm-media {
  height: 100%;
}

.t-m-fullscreen .bm-media {
  min-height: 100%;
}

.t-m-fullscreen .iframe-img-bm-media {
  min-width: 100%;
  min-height: 100%;
}

.bm-media {
  border-radius: 25px;
  display: flex;
  overflow: hidden;
}

.t-img-text.titext-design {
  padding: clamp(2rem, calc(2rem + ((1vw - 0.32rem) * 4.6875)), 6.5rem);
  align-content: center;
  background-color: #fff;
  border: 3px solid rgba(124, 203, 153, 0.20);
  border-radius: 25px;
  height: 100%;
}


/* ==========================================================================
   Zoekresultaten
   ========================================================================== */
.bm-search-results {
  margin: 20px 0;
  padding: 0;
}

.bm-search-result {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 30px;
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 20px;
}

.bm-search-result-image {
  flex: 1 1 100px;
  margin-right: 20px;
}

.bm-search-result-image img {
  max-width: 100%;
  height: auto;
}

.bm-search-result-content {
  flex: 1 1 calc(100% - 120px);
}

.bm-search-result-content h3 {
  font-size: 20px;
  margin-top: 0;
  margin-bottom: 10px;
}

.bm-search-excerpt {
  font-size: 14px;
  color: #666;
  margin-bottom: 15px;
}


/* ==========================================================================
   Overzicht
   ========================================================================== */
.c-ovz h2 {
  margin-bottom: 2rem;
}

.cta-container.ovz-cta,
.cta-container.ovz-cta-c {
  width: 100%;
  justify-content: center;
}

.bm-ovz-container {
  display: grid;
  width: 100%;
  gap: 30px;
  margin-bottom: clamp(3rem, calc(3rem + ((1vw - 0.48rem) * 2.5)), 5rem);
}

.bm-ovz-img-wrapper .bm-ovz-title h3 {
  font-size: 18px;
}

.bm-ovz-img-wrapper {
  display: block;
  overflow: hidden;
}

.bm-ovz-img {
  height: 300px;
  width: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .3s ease-in-out;
  display: block;
  overflow: hidden;
}

.bm-ovz-block {
  box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
  border-radius: 10px;
  overflow: hidden;
  background-color: #cccccc;
  display: flex;
  flex-direction: column;
}

.bm-ovz-block:hover .bm-ovz-img {
  transform: scale(1.1);
}

.bm-ovz-block:hover .ter-cta {
  color: #ffffff;
}

.bm-ovz-content {
  padding: 3rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.bm-ovz-excerpt {
  margin-bottom: 2rem;
}

p.bm-ovz-excerpt {
  max-width: 375px;
}

.bm-ovz-title {
  margin: 10px 0;
  font-size: 26px;
}

.ter-cta {
  font-weight: 700;
  font-style: italic;
  margin-top: 5px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}


/* ==========================================================================
   Quote slider
   ========================================================================== */
.bm-quoteslider {
  width: 100%;
  margin: 0 auto;
  padding: 5rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  justify-items: center;
  overflow: hidden;
}

.bm-quoteslider-container {
  display: flex;
  width: 100%;
  padding-left: clamp(1rem, calc(1rem + ((1vw - 0.32rem) * 13.5417)), 14rem);
}

.bm-quoteslider__sidebar {
  flex: 0 0 clamp(18rem, calc(18rem + ((1vw - 0.32rem) * 22.9167)), 40rem) !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-right: 20px;
}

.bm-quoteslider__sidebar h2 {
  font-size: clamp(3.5rem, calc(3.5rem + ((1vw - 0.48rem) * 0.625)), 4rem);
  color: #012240 !important;
  line-height: 1.1;
}

.splide {
  flex: 1;
  width: 100%;
}

.splide__slide {
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  padding-bottom: 4rem;
  background-color: #ffffff;
}

.splide__track--draggable {
  padding-top: 2rem;
}

.splide__list {
  gap: 35px;
}

.bm-quote-button-c {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-top: 20px;
  gap: 10px;
}

.my-prev-arrow-1,
.my-next-arrow-1 {
  background: none;
  border: none;
  cursor: pointer;
  margin: 5px 0;
}

.bm-s-slide {
  background-color: #f0f3f6;
  padding: 2rem;
  border-radius: 20px;
  height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
}

.bm-s-slide hr {
  border-color: #a1a1a1;
}

img.slider-img {
  width: 100%;
  max-width: 150px;
  height: 150px;
  object-fit: cover;
  border-radius: 50%;
  margin-top: -8rem;
  margin-bottom: 2rem;
}

.item-slider-img-bg {
  height: 65px;
}

.item-slider-img-wrap {
  display: flex;
  justify-content: center;
}

.item-slider-btn-wrap {
  display: flex;
  height: 100%;
  align-items: flex-end;
}

.item-slider-usp-list {
  padding-bottom: 5rem;
  width: 100%;
}

ul.item-slider-usp-list {
  padding-inline-start: 0 !important;
}

.item-slider-usp-item {
  list-style: none;
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 20px;
  color: #353e5c;
  margin-bottom: 10px;
}

.slide-title {
  font-size: 26px;
  font-weight: 500;
  color: #012240;
  margin: 0;
}

.slide-text {
  font-size: 20px;
  color: #012240;
  border-style: solid;
  border-width: 0 0 1px 0;
  border-color: rgba(161, 161, 161, 0.76);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  width: 100%;
}


/* ==========================================================================
   Layout slider
   ========================================================================== */
.ly-slide__image img {
  vertical-align: bottom;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: 80vh;
}

.c-slider .splide__list {
  gap: 0 !important;
}

.c-slider .splide__slide {
  border-radius: 0;
}

.ly-slider .splide__slide {
  position: relative;
  height: 80vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 5rem;
}

.ly-slide__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1;
}

.ly-slide__content {
  position: relative;
  z-index: 2;
  color: #fff;
  width: 100%;
  max-width: 1280px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.ly-slide__content h3 {
  margin-bottom: 1rem;
}

.ly-slide__content .btn {
  display: inline-block;
  margin-top: 1rem;
}

.ly-slider {
  margin-left: auto;
  margin-right: auto;
}

/* Fullscreen (default) */
.ly-slider--fullscreen {
  width: 100%;
  max-width: none;
}

/* Container 1280px */
.ly-slider--container {
  max-width: 1280px;
}

/* Blog 690px */
.ly-slider--blog {
  max-width: 690px;
}

.ly-slider--blog li,
.ly-slider--container li,
.ly-slider--blog .ly-slide__overlay,
.ly-slider--container .ly-slide__overlay {
  border-radius: 20px !important;
}

.ly-slider--container,
.ly-slider--blog {
  padding-left: 2rem;
  padding-right: 2rem;
}


/* ==========================================================================
   Review slider
   ========================================================================== */
.ps-reviews-slider .splide__arrows {
  position: absolute;
  right: 40px;
  bottom: 20px;
  top: auto;
  transform: none;
  display: flex;
  gap: 10px;
}

.ps-reviews-slider .splide__arrow {
  position: static;
}


/* ==========================================================================
   Media queries
   ========================================================================== */
@media screen and (max-width: 992px) {
  .ly-slider .splide__slide {
    height: 50vh;
  }

  div#custom-slider {
    padding: 2rem;
  }

  ul#custom-slider-list {
    max-height: 360px !important;
    gap: revert;
  }

  .iframe-img-bm-media-groot,
  .iframe-img-bm-media {
    max-height: 300px;
    width: 100%;
  }

  .mobile-order {
    display: flex !important;
    flex-direction: column;
  }

  /* Tekst eerst, media daarna */
  .mobile-order .t-img-text { order: 1; }
  .mobile-order .bm-media   { order: 2; }

  .bm-grid-items-container,
  .bm-ovz-container {
    display: flex;
    flex-direction: column;
  }

  .bm-quoteslider-container {
    flex-direction: column;
    padding-left: 0;
  }

  .bm-quoteslider__sidebar {
    margin: 0;
  }

  .bm-quoteslider {
    padding: 5rem 2rem;
  }

  .splide__list {
    gap: 0;
  }
}