/* ============================================
   Homepage — sectie voor sectie, waarden uit capture/live (home-*.json)
   Breekpunten: tablet ≤1024, mobiel ≤767.
   ============================================ */

/* --------------------------------------------
   Hero
   -------------------------------------------- */
.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 856px;
  padding: 0 40px;
  background: #FF6C04 url("/assets/images/header-behandelcentrum-twente-1.webp") 0 87% / cover no-repeat;
}

.hero::before {           /* oranje waas over de foto */
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--color-primary);
  opacity: .88;
}

.hero .wave svg { --wave-h: 67px; }

.hero__inner {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 50px;
  width: 100%;
  max-width: 1322px;
  margin: 0 auto;
  padding: 80px 0 100px;
}

.hero__row {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 20px;
  width: 100%;
}

.hero__text,
.hero__media {
  position: relative;
  display: flex;
  flex: 0 1 auto;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  min-width: 0;
}

.hero__text { gap: 10px; }
.hero__media { gap: 20px; }

.hero__title { color: var(--color-white); font-size: 50px; }

.hero__points {
  padding: 2% 0 1%;
  color: var(--color-white);
  font-weight: 500;
  line-height: 27px;
}

.hero__points ul { padding-left: 40px; }

/* --------------------------------------------
   Carrousel (hero en locatie)
   -------------------------------------------- */
.carousel { position: relative; width: 100%; }

.carousel__viewport { position: relative; z-index: 1; overflow: hidden; }

.carousel__track {
  display: flex;
  transition: transform 500ms ease;
  will-change: transform;
}

.carousel__slide {
  position: relative;
  flex-shrink: 0;
  width: var(--slide-w, 100%);
  margin-right: var(--slide-gap, 0px);
  text-align: center;
}

.carousel__figure { margin: 0; }
.carousel__figure img { display: inline; vertical-align: baseline; }

.carousel__arrow {
  position: absolute;
  top: calc(50% - 15px);
  z-index: 1;
  display: inline-flex;
  padding: 0;
  border: 0;
  background: none;
  color: hsla(0, 0%, 93%, .9);
  fill: hsla(0, 0%, 93%, .9);
  font-size: 25px;
  line-height: 1;
  transform: translateY(-50%);
  cursor: pointer;
}

.carousel__arrow svg { width: 1em; height: 1em; }
.carousel__arrow--prev { left: 10px; }
.carousel__arrow--next { right: 10px; }

.carousel__dots {
  position: absolute;
  bottom: 5px;
  left: 0;
  z-index: 10;
  width: 100%;
  text-align: center;
  line-height: 24px;
}

.carousel__dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 6px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #000;
  opacity: .2;
  vertical-align: baseline;
  cursor: pointer;
  transition: opacity .2s;
}

.carousel__dot[aria-current="true"] { opacity: 1; }

/* --------------------------------------------
   Vier introkaarten (over de hero heen)
   -------------------------------------------- */
.intro {
  position: relative;
  display: flex;
  flex-direction: column;
  transform: translateY(-329px);
  will-change: transform;
}

.intro__inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 15px;
  width: 100%;
  max-width: 1148px;
  margin: 0 auto;
}

.intro-card {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  width: 28%;
  min-height: 340px;
  padding: 40px 30px;
  border-radius: 5px;
  background-image: linear-gradient(180deg, var(--color-white) 74%, var(--color-grey) 100%);
  box-shadow: 24px 2px 49px -24px rgba(0, 0, 0, .5);
}

.intro-card__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  min-height: 29px;
}

.intro-card__body--center { justify-content: center; }

.intro-card__title { color: var(--color-text); font-size: 36px; }

.intro-card__more { width: 100%; }

/* Elementor schaalt de inhoud van de widget, niet de widget zelf */
.intro-card__more > .acc {
  transition: transform var(--ease-transform);
  will-change: transform;
}

@media (hover: hover) {
  .intro-card__more > .acc:hover { transform: scale(1.01); }
}

.intro-card__more--padded .acc__panel > .prose { padding-top: 10px; }

/* --------------------------------------------
   Mededelingen + aanmeldinfo
   -------------------------------------------- */
.news {
  position: relative;
  margin-top: -280px;
  padding: 0 10px;
}

.news__inner {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  max-width: 1180px;
  margin: 0 auto;
  padding: 10px 0;
}

.news__col { flex: 0 1 auto; width: 50%; max-width: 50%; min-width: 0; }

/* --------------------------------------------
   Wie zijn wij?
   -------------------------------------------- */
.about {
  position: relative;
  z-index: 0;
  background-color: var(--color-primary);
}

.about__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  max-width: 1140px;
  margin: 0 auto;
  padding: 100px 0;
}

.about__text,
.about__media {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  justify-content: flex-start;
  width: 45%;
}

.about__media { min-height: 283px; }

.about__title { color: var(--color-white); font-size: 50px; }
.about__body { padding-top: 10px; color: var(--color-white); }

.about__image { text-align: center; }
.about__image img { display: inline; width: 100%; vertical-align: middle; }

.about__links-title { margin-top: 20px; color: var(--color-white); font-size: 19px; }

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

.link-list li { position: relative; display: flex; align-items: center; }
.link-list li:not(:last-child) { padding-bottom: 2px; }
.link-list li:not(:first-child) { margin-top: 2px; }

.link-list a {
  display: flex;
  align-items: center;
  width: 100%;
  font-family: var(--font-main);
  font-size: 18px;
  font-weight: 400;
  text-decoration: underline;
}

.link-list__icon { position: relative; display: flex; }
.link-list__icon svg { width: 14px; height: 14px; margin-right: 3.5px; fill: var(--color-white); transition: fill .3s; }

.link-list__text {
  align-self: center;
  padding-left: 5px;
  color: var(--color-white);
  transition: color .3s;
}

/* --------------------------------------------
   Locatie
   -------------------------------------------- */
.location {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 50px;
}

.carousel--location { --per-view: 3; --slide-gap: 20px; }

/* Swiper-breekpunten van het origineel: ≥1024 drie, 767–1023 twee, daaronder één */
@media (max-width: 1023px) { .carousel--location { --per-view: 2; } }
@media (max-width: 766px) { .carousel--location { --per-view: 1; } }
.carousel--location .carousel__viewport { padding-bottom: 30px; }

.location__cta { position: relative; }

/* --------------------------------------------
   Vier fotokaarten
   -------------------------------------------- */
.tiles {
  position: relative;
  padding: 0 150px;
}

.tiles__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 40px;
  max-width: 1140px;
  margin: 0 auto;
  padding: 50px 0;
}

.tile {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  border-radius: 5px;
  background-color: #FFFFFF;
  transition: transform var(--ease-transform);
  will-change: transform;
}

.tile::before {           /* donkere waas over de foto */
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 5px;
  background-color: var(--color-slate);
  opacity: .7;
}

.tile > * { position: relative; }

@media (hover: hover) {
  .tile:hover { transform: scale(1.02); }
}

.tile--ervaringen { min-height: 432px; background-image: url("/assets/images/side-view-smiley-teens-spending-time-outdoors-768x1152-1.webp"); background-position: 0 -314px; }
.tile--samenwerking { background-image: url("/assets/images/Kopie-van-header-behandelcentrum-twente-1.webp"); background-position: 0 0; background-size: cover; }
.tile--privacy { background-image: url("/assets/images/closeup-hands-passing-contract-unrecognizable-businessman-scaled-1-2048x1366.webp"); background-position: -800px 800px; }
.tile--kwaliteit { background-image: url("/assets/images/Kopie-van-Team-Behandelcentrum-Twente-Hengelo-1024x430-1.webp"); background-position: 0 0; background-size: cover; }

.tile__title { color: var(--color-white); font-size: 35px; font-weight: 500; }
.tile__text { color: var(--color-white); }

/* --------------------------------------------
   Contactgegevens-band
   -------------------------------------------- */
.contact-band {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  padding: 120px 100px;
  background: var(--color-secondary) url("/assets/images/header-behandelcentrum-twente-3.webp") 0 -397px / cover;
}

.contact-band::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--color-primary);
  opacity: .88;
}

.contact-band__col {
  position: relative;
  flex: 0 1 auto;
  width: 100%;
  min-width: 0;
}

.contact-band__inner {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: min(100%, 1140px);
  margin: 0 auto;
}

.contact-band__col--address .contact-band__inner { max-width: 634px; }

.contact-band__title { color: var(--color-white); font-size: 35px; font-weight: 500; }
.contact-band__text,
.contact-band__text a { color: var(--color-white); }
.contact-band__text .u { text-decoration: underline; }

/* --------------------------------------------
   FAQ
   -------------------------------------------- */
.faq__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 20px;
  max-width: 1140px;
  margin: 0 auto;
  padding: 100px 0;
}

.faq__title { color: var(--color-text); font-size: 40px; }
.faq__list { width: 97%; max-width: 97%; }
.faq__more { margin-top: 10px; color: var(--color-text); font-size: 25px; }

/* ============================================
   Tablet (≤1024)
   ============================================ */
@media (max-width: 1024px) {
  .hero {
    min-height: 632px;
    padding: 0 20px;
    background-position: 0 0%;
  }

  .hero__inner { padding: 20px 0; }
  .hero__title { font-size: 44px; }
  .hero__points { padding: 0; line-height: 1.2em; }

  .intro { transform: translateY(-109px); padding: 0 40px; }
  .intro__inner { flex-direction: column; }
  .intro-card { min-height: 0; }

  .news { margin-top: 0; padding: 0 40px; }
  .news__inner { padding: 0; }

  .about { padding: 0 40px; }
  .about__inner { padding: 110px 0; }

  .location { padding: 30px 40px; }

  .tiles { padding: 0 40px; }
  .tiles__inner { padding: 30px 0; }
  .tile--ervaringen,
  .tile--privacy { background-position: 0 0; }

  .contact-band { padding: 110px 40px; background-position: 0 0; }

  .faq__inner { padding: 50px 40px; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .hero__text { width: 591px; }
  .hero__media { width: 517px; }
  .intro__inner { max-width: 100%; }
  .intro-card { width: 100%; }
  .tiles__inner { max-width: 100%; }
}

/* ============================================
   Mobiel (≤767)
   ============================================ */
@media (max-width: 767px) {
  .hero {
    min-height: 0;
    padding: 0 15px;
    background-position: 0 55%;
  }

  .hero .wave svg { width: calc(231% + 1.3px); --wave-h: 23px; }

  .hero__inner {
    justify-content: center;
    gap: 10px;
    max-width: min(100%, 767px);
    padding: 0 0 30px;
  }

  .hero__row { flex-wrap: wrap; }
  .hero__title { margin: 7% 1% 6% 2%; font-size: 35px; }
  .hero__points { line-height: 1.3em; }

  .intro { transform: none; padding: 0 15px; }
  .intro__inner { flex-wrap: wrap; gap: 10px; max-width: min(100%, 767px); padding-top: 20px; }
  .intro-card { width: 100%; min-height: 228px; padding: 15px; }
  .intro-card__title { font-size: 30px; }

  .news { margin-top: 30px; }
  .news__inner { flex-wrap: wrap; max-width: min(100%, 767px); }
  .news__col { width: 100%; max-width: 100%; }

  .about { padding: 0 15px; }
  .about .wave svg { --wave-h: 30px; }
  .about__inner { flex-wrap: wrap; max-width: min(100%, 767px); padding: 50px 0; }
  .about__text,
  .about__media { width: 100%; }
  .about__title { font-size: 25px; }
  .about__links-title { margin: 20px 0 10px; font-size: 20px; }
  .link-list li:not(:last-child) { padding-bottom: 4.5px; }
  .link-list li:not(:first-child) { margin-top: 4.5px; }

  .location { gap: 15px; padding: 30px 15px; }
  .location .wave svg { width: calc(234% + 1.3px); --wave-h: 30px; }

  .tiles { padding: 0 15px; }
  .tiles .wave svg { --wave-h: 25px; }
  .tiles__inner {
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(1, 1fr);
    gap: 20px;
    max-width: min(100%, 767px);
    padding: 30px 0 50px;
  }

  .tile--ervaringen { min-height: 298px; background-position: -207px -306px; }
  .tile--privacy { background-position: -420px 800px; }
  .tile--kwaliteit { background-position: -108px -41px; }
  .tile__title { font-size: 25px; }
  .tile__cta { align-self: flex-start; }

  .contact-band { flex-wrap: wrap; gap: 15px; padding: 60px 15px; }
  .contact-band .wave svg { width: calc(234% + 1.3px); --wave-h: 30px; }
  .contact-band__title { font-size: 25px; }

  .faq__inner { max-width: min(100%, 767px); padding: 30px 15px; }
  .faq__title { font-size: 25px; }
  .faq__more { font-size: 20px; }
  .faq__cta .btn { font-size: 13px; }
}
