/* =========================================================
   PAGES.CSS — PAGINA SPECIFIEKE STYLING
   ========================================================= */


/* ---------- Homepage ---------- */
.home-intro {
  margin-bottom: 30px;
}

.home-intro h1 {
  font-size: 2rem;
}

.home-intro p {
  font-size: 1.1rem;
  opacity: 0.8;
}

/* ---------- Pakketpagina ---------- */
.deal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}

.deal-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  text-align: center;
  box-shadow: var(--shadow-sm);
}

.deal-card img {
  border-radius: var(--radius);
}

.deal-label {
  background: var(--accent);
  color: #fff;
  padding: 6px 10px;
  border-radius: var(--radius);
  font-size: 0.8rem;
  position: absolute;
  top: 10px;
  left: 10px;
}
.specs {
   color: var(--text-light);
  font-size: 0.9rem;
}
.specs b {
   var(--text-light)
  font-weigh: 800;
}

/* ---------- Orderpagina ---------- */
.form-container {
  background: #fff;
  padding: 30px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  max-width: 650px;
  margin: 0 auto;
}

/* ---------- Homepage ---------- */
/*
.hero-split {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    background: #f4cc2e;
    padding: 40px;
    border-radius: 16px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
    margin-bottom: 40px;
    align-items: center;
}

.hero-left h1 {
    font-family: var(--font-heading);
    font-size: 2rem;
    color: var(--primary);
    margin-bottom: 12px;
}

.hero-left p {
    font-size: 1.1rem;
    opacity: 0.8;
    line-height: 1.5;
}

.hero-right {
  width: 100%;
  border-radius: var(--radius);
  cursor: pointer;
border: 1px solid var(--pastel-green); 
  padding: 16px;
  background: #fff;

}

.hero-img {
    width: 100%;
    border-radius: 12px;
    object-fit: cover;
}


@media (max-width: 900px) {
    .hero-split {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .hero-right {
        order: -1;
    }
}
*/
.hero-split {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2/1 verhouding: links 2, rechts (afbeelding) 1 */
  gap: 10px;
/*  background: #e1e5ee; */
  padding: 40px;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
  margin-bottom: 40px;
  align-items: center;
}

/* Zorg dat de afbeelding container “tegen de rand” kan komen:
   hero-right krijgt geen padding/border-radius die het beeld inkadert */
.hero-right {
  width: 100%;
  border-radius: 0; /* belangrijk: geen extra afronding/inkadering binnen hero-kader */
  cursor: pointer;
}

/* Slider */
.hero-slider {
  position: relative;
  width: 100%;
  overflow: hidden;

  /* Jij wil: hero-kader verhouding 2/1, en 1 = afbeelding gedeelte.
     Interpretatie: de beeldbox zelf krijgt aspect-ratio 2/1. */
  aspect-ratio: 2 / 1;
}

/* Track schuift horizontaal over 3 slides */
.hero-slider__track {
  display: flex;
  width: 300%; /* 3 slides */
  height: 100%;
  transition: transform 500ms ease;
  transform: translateX(0%);
}

.hero-slide {
  width: 33.3333%;
  height: 100%;
  flex: 0 0 33.3333%;
}

.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* vult volledig; niet statisch als afbeelding */
  display: block;
	border-radius: 16px;
}

/* Controls (mag je weglaten als je alleen autoplay/dots wil) */
.hero-slider__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;

  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: none;
  background: rgba(0,0,0,0.35);
  color: #fff;

  display: grid;
  place-items: center;
  cursor: pointer;
}

.hero-slider__btn--prev { left: 12px; }
.hero-slider__btn--next { right: 12px; }

/* Dots */
.hero-slider__dots {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  z-index: 3;

  display: flex;
  gap: 8px;
}

.hero-slider__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: none;
  background: rgba(255,255,255,0.65);
  cursor: pointer;
}

.hero-slider__dot.is-active {
  background: rgba(255,255,255,1);
}

/* Bestaande tekst stijlen */
.hero-left h1 {
  font-family: var(--font-heading);
  font-size: 2rem;
  color: var(--primary);
  margin-bottom: 12px;
	font-weight: 200;
}

.hero-left p {
  font-size: 1.1rem;
  opacity: 0.8;
  line-height: 1.5;
}

/* Mobile */
@media (max-width: 900px) {
  .hero-split {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hero-right {
    order: -1;
  }
  .hero-slider__btn {
    display: none; /* op mobiel liever alleen dots/autoplay */
  }
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin-top: 20px;
}

.form-block {
    background: #ffffff;
    padding: 28px;
    border-radius: 16px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.05);
}

.form-block h2 {
    font-family: var(--font-heading);
    font-size: 1.4rem;
    color: var(--secondary);
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
	font-weight: 200;
}

.form-block h2 i {
    font-size: 1.3rem;
    color: var(--primary);
}

/* Mobile */
@media (max-width: 900px) {
    .form-grid {
        grid-template-columns: 1fr;
    }
.form-block h2 {
    font-size: 1.2rem;
}
}

.sector-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

/* 1. De kaart in normale toestand */
.sector-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 12px;
    cursor: pointer;
    transition: 0.2s;
    box-shadow: var(--shadow-sm);
    color: #666;
}

/* Hover-effect voor een NIET-geselecteerde kaart */
.sector-card:not(:has(input:checked)):hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    background: var(--mouseover-light);
    color: #333;
}

.sector-card input {
    margin-top: 2px;
}

/* 2. Het icoon in normale toestand */
.sector-card i {
    display: inline-block;
    font-size: 20px;
    color: var(--grey-light);
    width: 25px;
    text-align: center;
    transition: color 0.2s;
}

/* Hover-effect voor het icoon op een NIET-geselecteerde kaart */
.sector-card:not(:has(input:checked)):hover i {
    color: var(--pastel-green);
}

.sector-card span {
    font-size: 1rem;
    font-weight: 500;
}

.sector-card:has(input:checked) {
    background-color: var(--pastel-green); 
    border-color: var(--pastel-green);  
    color: #ffffff;   
}

.sector-card:has(input:checked) i {
    color: #ffffff;
}

.sector-card:has(input:checked):hover {
    transform: none; 
    box-shadow: var(--shadow-sm);
}

.needs-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.need-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 12px;
    cursor: pointer;
    transition: 0.2s;
    box-shadow: var(--shadow-sm);
    color: #666;
}

.need-card:not(:has(input:checked)):hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    background: var(--mouseover-light);
    color: #333;
}

.need-card input {
    margin-top: 4px;
}

.need-card i {
    display: inline-block;
    font-size: 20px;
    color: var(--grey-light);
    width: 20px;
    text-align: center;
    transition: color 0.2s;
}

.need-card:not(:has(input:checked)):hover i {
    color: var(--pastel-green);
}

.need-card strong {
    font-size: 1rem;
    font-weight: 500;
}

.need-card:has(input:checked) {
    background-color: var(--pastel-green);
    border-color: var(--pastel-green); 
    color: #ffffff;   
}

.need-card:has(input:checked) i {
    color: #ffffff;
}

.need-card:has(input:checked):hover {
    transform: none; 
    box-shadow: var(--shadow-sm);
}

.btn-large {
    padding: 25px 60px;
    font-size: 1.1rem;
}

.btn-primary i {
    margin-left: 8px;
    font-size: 1.1rem;
}

.error-box {
    background: #ffe5e5;
    border: 1px solid #ffb3b3;
    color: #b30000;
    padding: 12px 15px;
    border-radius: 10px;
    margin-bottom: 16px;
    font-weight: 600;
}

/* ==================================================================
   Partner page
================================================================== */

.partners-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:24px;
  align-items:start;
}

.partners-main{
  min-width:0;
}

.partners-search .search-bar{
  display:flex;
  gap:10px;
  align-items:center;
  border-radius:16px;
margin-bottom:20px;
}

.search-input{
  flex:1;
  border:0;
  outline:0;
  font-size:1rem;
  padding:10px 12px;
  background:transparent;
}

.search-button{
  width:40px;
  height:40px;
  border:0;
  border-radius:12px;
  background: var(--accent);
  color:#fff;
  display:grid;
  place-items:center;
  transition:transform .2s ease, box-shadow .2s ease;
}

.search-button:hover{
background: var(--secondary);
}

.partners-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.partner-card-link{
  text-decoration:none;
  color:inherit;
}

.partner-card{
  height:100%;
  min-height:180px;
  background:#fff;
/*
  border:1px solid #eef2f7;
*/
  border-radius:18px;
  padding:18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
/*  box-shadow:0 10px 30px rgba(0,0,0,.04); 
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
*/
  animation:fadeUp .45s ease both;
}

.partner-card:hover{
  transform:translateY(-6px);
/*  border-color:#dbeafe; */
  box-shadow:0 18px 40px rgba(37,99,235,.10);
}

.partner-logo-wrap{
  width:100%;
  height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
}

.partner-logo{
  max-width:100%;
  max-height:100px;
  object-fit:contain;
  transition:transform .25s ease;
}

.partner-card:hover .partner-logo{
  transform:scale(1.04);
}

.partner-name{
  font-size:.98rem;
  line-height:1.35;
  margin:0;
  color:#111827;
}

.partners-pagination{
  margin-top:28px;
  display:flex;
  justify-content:center;
}

.partners-sidebar{
  position:sticky;
  top:24px;
}

.sidebar-box{
/*
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.04);
*/
}

.sidebar-title{
  font-size:1.03rem;
  margin:0 0 14px;
  color:#111827;
}

.category-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0px;
	font-size: 0.85rem;
}

.category-item{
  display:block;
}

.category-link,
.category-toggle-btn{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 12px;
  border-radius:12px;
  color:#374151;
  text-decoration:none;
  transition:background .2s ease, color .2s ease, transform .2s ease;
  border:0;
  background:transparent;
  cursor:pointer;
  font:inherit;
  text-align:left;
}

.category-link i,
.category-toggle-btn i{
  width:20px;
  text-align:center;
  color:#2563eb;
  flex-shrink:0;
}

.category-link:hover,
.category-toggle-btn:hover,
.category-link.active{
 /* background:#eff6ff; */
background: #f2d046;
  color:#1d4ed8;
  transform:translateX(2px);
}

.category-toggle-btn{
  justify-content:space-between;
}

.category-toggle-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}

.category-chevron{
  transition:transform .2s ease;
  color:#6b7280 !important;
}

.category-toggle-btn.open .category-chevron{
  transform:rotate(90deg);
}

.child-category-list{
  list-style:none;
  margin:6px 0 0 0;
  padding:0 0 0 18px;
  border-left:1px dashed #cbd5e1;
  display:none;
  flex-direction:column;
  gap:6px;
}

.child-category-list.open{
  display:flex;
}

.child-link{
  background:#f8fafc;
  font-size:.95rem;
}

.parent-link{
  background:#f1f5f9;
  font-weight:600;
}

@keyframes fadeUp{
  from{
    opacity:0;
    transform:translateY(14px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media (max-width: 1199px){
  .partners-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width: 991px){
  .partners-layout{
    grid-template-columns:1fr;
  }

  .partners-sidebar{
    position:relative;
    top:auto;
    order:-1;
  }

  .partners-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 575px){
  .partners-grid{
    grid-template-columns:1fr;
  }

  .search-bar{
    flex-direction:column;
    align-items:stretch;
  }

  .search-button{
    width:100%;
  }
}
/* ==================================================================
   Partner detail page
================================================================== */

/* Forceer 2/3 - 1/3 lay-out op desktop met flexbox */
@media (min-width: 992px) {
  
  /* Selecteer de specifieke rij met twee kolommen */
  .site-main .row.g-4 {
    display: flex !important;
    flex-wrap: nowrap;
    gap: 1rem;
  }

  /* Basisinstellingen voor beide kolommen */
  .site-main .row.g-4 > .col-12.col-lg-8,
  .site-main .row.g-4 > .col-12.col-lg-4 {
    min-width: 0;
  }

  /* Brede linkerkolom (2/3) */
  .site-main .row.g-4 > .col-12.col-lg-8 {
    flex: 2 1 66.666%;
  }

  /* Smalle rechterkolom (1/3) */
  .site-main .row.g-4 > .col-12.col-lg-4 {
    flex: 1 1 33.333%;
  }
}


/* Partner detail page */

.partner-left-card {
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid rgba(13, 110, 253, 0.15);
  box-shadow: 0 8px 24px rgba(10, 20, 60, 0.06);
  overflow: hidden;
}

.partner-left-card-inner {
  padding: 22px;
}

.partner-left-title {
  font-weight: 200;
  letter-spacing: -0.02em;
  color: #0b1b3a;
}

.partner-left-location {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 4px;
  font-size: 0.95rem;
}

.partner-taglabel-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #4b5563;
  margin-bottom: 10px;
}

.partner-taglist {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.partner-taglabel {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: #f3f6ff;
  color: #0b63ce;
  border: 1px solid rgba(11, 99, 206, 0.18);
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1;
  margin-bottom: 20px;
}

/* Content: ul/li met vinkjes */
.partner-richtext {
  color: #0f172a;
}

.partner-richtext p {
  margin: 0 0 12px 0;
}

.partner-richtext p:last-child {
  margin-bottom: 0;
}

.partner-richtext ul {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
 font-size: 0.8rem;
}

.partner-richtext li {
  position: relative;
  padding-left: 26px;
  margin: 10px 0;
  line-height: 1.55;
}

.partner-richtext li::before {
/*
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: rgba(11, 99, 206, 0.12);
  border: 1px solid rgba(11, 99, 206, 0.25);
*/
}

.partner-richtext li::after {
  content: "✓";
  position: absolute;
  left: 3px;
  top: 0em;
  color: var(--accent);
  font-weight: 900;
  font-size: 1rem;
}

.partner-right-col {
  position: sticky;
  top: 92px;
}

.partner-right-card {
  background: #fff;
  border-radius: 14px;
  border: 1px solid rgba(13, 110, 253, 0.12);
  box-shadow: 0 8px 24px rgba(10, 20, 60, 0.06);
  padding: 18px;
}

.partner-right-logo-wrap {
  margin-bottom: 14px;
}

.partner-right-logo {
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 18px;
  padding: 10px;
  border: 1px solid rgba(13, 110, 253, 0.15);
  background: linear-gradient(180deg, rgba(11, 99, 206, 0.06), rgba(11, 99, 206, 0.02));
}

.partner-right-section  {
font-size: 0.8em;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.partner-right-section-title {
  font-weight: 900;
  color: #0b1b3a;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 12px;
}

.partner-contact-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.partner-contact-item {
  display: grid;
  gap: 6px;
}

.partner-contact-label {
  color: #4b5563;
  font-weight: 800;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.partner-contact-value {
  color: #0b63ce;
  font-weight: 400;
  text-decoration: none;
  word-break: break-word;
}

.partner-contact-value:hover {
  text-decoration: underline;
}

.partner-map-wrap iframe {
  display: block;
}

/* Responsive */
@media (max-width: 991.98px) {
  .partner-left-card-inner { padding: 18px; }
  .partner-right-col { position: static; top: auto; }
  .partner-right-card { padding: 16px; }
}
/* Afbeeldingen in partner-richtext: max 3 naast elkaar, mobiel onder elkaar */
.partner-richtext img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}

/* Zet een “rij” met 3 images uit dezelfde div automatisch naast elkaar */
.partner-richtext div > img {
  display: inline-block;
  vertical-align: top;

  /* spacing */
  margin: 0 12px 12px 0;

  /* zodat 3 stuks netjes naast elkaar kunnen */
  flex: 0 0 calc((100% - 24px) / 3);
  max-width: calc((100% - 24px) / 3);

  /* voor nette cropping/uitlijning als je images groot zijn */
  object-fit: cover;
  border-radius: 10px;
}

/* Om ook te werken als je browser flex niet op die manier pakt: */
.partner-richtext div > img:last-child {
  margin-right: 0;
}

/* Mobiel: onder elkaar */
@media (max-width: 767.98px) {
  .partner-richtext div > img {
    display: block;
    flex: 1 1 auto;

    max-width: 100%;
    width: 100%;
    margin: 0 0 12px 0;
  }

  .partner-richtext div > img:last-child {
    margin-bottom: 0;
  }
}
/* Responsive deal grid pakket pagina */
.deal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
    margin-top: 20px;
}

.deal-card {
    border: 1px solid #ddd;
    padding: 15px;
    background: #fff;
    border-radius: 6px;
    text-align: center;
    position: relative;
}

.deal-card img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.deal-label {
    background: #f2d046;
    color: #333;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 13px;
    position: absolute;
    top: 10px;
    left: 10px;
}

.deal-button {
    display: inline-block;
    padding: 10px 15px;
    background: var(--secondary);
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
}

.deal-button:hover {
    background: var(--primary);
}


/* Layout content deal pagina */
.deal-view-card {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 20px;
    background: #fff;
    border: 1px solid #ddd;
    padding: 20px;
    border-radius: 6px;
}

.deal-view-image img {
    max-width: 300px;
    border-radius: 6px;
}

.deal-view-content {
    flex: 1;
    min-width: 260px;
	padding: 20px;
}
.deal-view-content ul {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
 font-size: 0.8rem;
}

.deal-view-content li {
  position: relative;
  padding-left: 26px;
  margin: 10px 0;
  line-height: 1.55;
}

.deal-view-content li::before {
/*
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: rgba(11, 99, 206, 0.12);
  border: 1px solid rgba(11, 99, 206, 0.25);
*/
}

.deal-view-content li::after {
  content: "✓";
  position: absolute;
  left: 3px;
  top: 0em;
  color: var(--accent);
  font-weight: 900;
  font-size: 1rem;
}
/*
.deal-button {
    display: inline-block;
    padding: 12px 18px;
    background: #0073e6;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
}

.deal-button:hover {
    background: #005bb5;
}
*/
.back-button {
    display: inline-block;
    padding: 10px 14px;
    background: #eee;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
}

.back-button:hover {
    background: #ddd;
}

/* contact pagina */
.contact-item i {
  color: var(--secondary);
  margin-right: 12px;
  min-width: 20px;
  text-align: center;
}