/* TeKoopCamper.nl V21.7.7 - camperkaart, locatie en afstand */

/* Camperkaarten: subtiele oranje herkenning, geen zware rand. */
.listing-card,
.home-market-card{
  border:1px solid rgba(255,121,0,.34)!important;
  box-shadow:0 6px 20px rgba(11,49,88,.08)!important;
  background:#fff;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
@media (hover:hover) and (pointer:fine){
  .listing-card:hover,
  .home-market-card:hover{
    border-color:rgba(255,121,0,.58)!important;
    box-shadow:0 11px 28px rgba(11,49,88,.13)!important;
    transform:translateY(-2px);
  }
}

.listing-location,
.home-market-location,
.home-featured-location{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  color:#315971;
  font-size:12px;
  line-height:1.35;
}
.listing-location .location-pin,
.home-market-location .location-pin,
.home-featured-location .location-pin{
  color:#e96800;
  font-size:14px;
  line-height:1;
  flex:0 0 auto;
}
.listing-distance{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;
  color:#527187;
  font-size:11px;
  line-height:1.35;
}
.listing-seller-label,
.home-market-seller{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-top:6px;
  border-radius:999px;
  padding:3px 7px;
  background:#f3f8fb;
  color:#3c6078;
  font-size:10px;
  font-weight:600;
}
.home-market-card-bottom{align-items:flex-start!important}
.home-market-card-place{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.home-market-card-place .home-market-location{margin-top:0;justify-content:flex-end;text-align:right}
.home-market-seller{margin-top:4px}
.home-featured-location{margin:6px 0 0}

/* Locatie zoeken op volledige zoekpagina. */
.location-filter-block{
  margin:10px 0 12px;
  padding:12px;
  border:1px solid #d6e5ee;
  border-radius:12px;
  background:#f8fcfe;
}
.location-filter-block .field{margin-bottom:8px}
.location-filter-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.location-filter-actions .field{margin-bottom:0}
.location-use-button{
  min-height:42px;
  border:1px solid #bfd7e6;
  border-radius:10px;
  padding:8px 11px;
  background:#fff;
  color:#0b3158;
  font:inherit;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}
.location-use-button:hover{border-color:#7eb9dc;background:#f3faff}
.location-use-button:focus-visible{outline:3px solid rgba(11,105,199,.18);outline-offset:2px}
.location-use-button[disabled]{opacity:.65;cursor:wait}
.location-status{display:block;min-height:17px;margin-top:6px;color:#607c90;font-size:10px;line-height:1.4}
.location-search-warning{
  margin:0 0 14px;
  border:1px solid #f4c989;
  border-radius:11px;
  padding:10px 12px;
  background:#fff8ed;
  color:#7c4c13;
  font-size:12px;
  line-height:1.45;
}
.results-location-summary{display:block;margin-top:5px;color:#527187;font-size:12px;font-weight:500}

/* Homepage blijft compact: locatie zit achter een optionele openklapper. */
.home-location-search{grid-column:1/-1;margin:0;border-top:1px solid #e3edf3;padding-top:2px}
.home-location-search>summary{
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:28px;
  color:#315971;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
}
.home-location-search>summary::-webkit-details-marker{display:none}
.home-location-search>summary:before{content:"⌖";color:#e96800;font-size:14px}
.home-location-search>summary:after{content:"+";font-size:13px;color:#7891a2}
.home-location-search[open]>summary:after{content:"−"}
.home-location-fields{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(105px,.65fr) auto;
  gap:8px;
  align-items:end;
  padding:6px 0 2px;
}
.home-location-fields .field{margin:0}
.home-location-fields label{font-size:10px!important;margin-bottom:4px!important}
.home-location-fields input,
.home-location-fields select{min-height:40px!important;border-radius:9px!important;font-size:12px!important}
.home-location-fields .location-use-button{min-height:40px}
.home-location-search .location-status{grid-column:1/-1;margin:0}

@media(max-width:700px){
  .home-location-fields{grid-template-columns:1fr 110px}
  .home-location-fields .location-use-button{grid-column:1/-1;width:100%}
  .location-filter-actions{grid-template-columns:1fr}
  .location-use-button{width:100%}
  .listing-location,.home-market-location,.home-featured-location{font-size:11px}
  .home-market-card-place{align-items:flex-start}
  .home-market-card-place .home-market-location{justify-content:flex-start;text-align:left}
}
.admin-location-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px;padding:12px 14px;border:1px solid #d6e5ee;border-radius:12px;background:#f8fcfe}
.admin-location-tools>div{display:flex;flex-direction:column;gap:3px}.admin-location-tools strong{color:#0b3158}.admin-location-tools span{color:#5c788c;font-size:11px}.admin-location-tools.is-warning{border-color:#f1c887;background:#fff8ed}
@media(max-width:700px){.admin-location-tools{align-items:stretch;flex-direction:column}.admin-location-tools .btn{width:100%}}

/* ==========================================================
   V21.7.8 - rijke camperzoekpagina met rustige filterzijbalk
   ========================================================== */
.search-page-v2178{background:#f7fafc;min-height:70vh}
.search-page-hero{background:linear-gradient(135deg,#edf7fc 0%,#f8fbfd 100%);padding:28px 0 24px}
.search-page-hero .eyebrow{display:block;margin-bottom:6px}
.search-page-hero h1{margin:0;color:#0b3158}
.search-page-hero p{font-size:14px;margin-top:7px}
.market-layout-v2178{grid-template-columns:292px minmax(0,1fr);gap:24px;align-items:start;padding-top:24px}
.search-filter-card{position:sticky;top:92px;border:1px solid #d8e6ee;border-radius:18px;padding:0;background:#fff;box-shadow:0 10px 30px rgba(11,49,88,.07);overflow:hidden}
.search-filter-card form{padding:17px}
.search-filter-card .filter-head{padding-bottom:14px;border-bottom:1px solid #e6eef3}
.search-filter-card .filter-head h2{font-size:24px;color:#0b3158;margin:2px 0 0}
.filter-kicker,.results-kicker{display:block;color:#e96800;font-size:9px;letter-spacing:1.15px;font-weight:800}
.filter-section{padding:15px 0;border-bottom:1px solid #edf2f5}
.filter-section h3{margin:0 0 10px;color:#0b3158;font-size:13px}
.search-filter-card .field{margin:0 0 10px}
.search-filter-card .field:last-child{margin-bottom:0}
.search-filter-card .field label{font-size:10px;margin-bottom:4px}
.search-filter-card .field input,.search-filter-card .field select{min-height:42px;border-radius:10px;background:#fff}
.search-filter-card .two{gap:7px}
.filter-location-section{background:#f7fbfd;margin:0 -17px;padding:15px 17px;border-bottom:1px solid #e1edf3}
.filter-location-section .location-use-button{width:100%;margin-top:1px}
.filter-more{border-bottom:1px solid #edf2f5;padding:0}
.filter-more>summary{list-style:none;padding:14px 0;color:#0b3158;font-size:12px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.filter-more>summary::-webkit-details-marker{display:none}
.filter-more>summary:after{content:'+';font-size:17px;color:#e96800;font-weight:500}
.filter-more[open]>summary:after{content:'−'}
.filter-more-body{padding:0 0 13px}
.filter-check{display:flex;gap:8px;align-items:center;padding:7px 0;font-size:11px;color:#35586e}
.filter-check input{width:16px;height:16px;accent-color:#ff7900}
.filter-submit{margin-top:15px;min-height:46px}
.search-results-v2178{min-width:0}
.results-head-v2178{border:1px solid #e0ebf1;border-radius:14px;background:#fff;padding:12px 14px;box-shadow:0 5px 18px rgba(11,49,88,.045)}
.results-head-v2178>div:first-child{display:flex;flex-direction:column;gap:2px}
.results-head-v2178 strong{font-size:19px;color:#0b3158}
.results-head-actions{display:flex;gap:8px;align-items:center}
.result-control-form label{display:flex;align-items:center;gap:7px;font-size:10px;color:#607c90;font-weight:700}
.result-control-form select{min-height:38px;background:#fff;color:#0b3158;font-weight:700}
.listing-grid-v2178{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.listing-grid-v2178 .listing-card{height:100%}
.listing-grid-v2178.listing-grid--single{grid-template-columns:minmax(280px,520px)}
.search-empty-state{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border:1px dashed #cddfe9;border-radius:16px;background:#fff;padding:24px;min-height:150px}
.search-empty-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff3e8;color:#e96800;font-size:25px}
.search-empty-state h2{margin:0 0 5px;color:#0b3158;font-size:20px}
.search-empty-state p{margin:0;color:#617b8c;font-size:12px;line-height:1.55}
.search-seo-card{margin-top:0}
.mobile-result-count{display:none}

/* Een leeg 'uitgelichte camper'-vlak op de homepage mag niet ogen als een defecte kaart. */
.home-featured-panel:has(.home-featured-card){background:#fff}
.home-featured-panel:not(:has(.home-featured-card)){border-style:dashed;background:linear-gradient(135deg,#fffaf4,#f7fbfd)}

@media(max-width:900px){
  .market-layout-v2178{grid-template-columns:1fr}
  .search-filter-card{position:fixed;top:auto}
}
@media(max-width:700px){
  .search-page-hero{padding:18px 0 15px}
  .search-page-hero h1{font-size:28px}
  .market-layout-v2178{padding-top:8px}
  .search-filter-card{border-radius:18px 18px 0 0;padding:0}
  .search-filter-card form{padding:17px 16px 76px}
  .filter-location-section{margin:0 -16px;padding:15px 16px}
  .search-filter-card .two{grid-template-columns:1fr 1fr}
  .listing-grid-v2178,.listing-grid-v2178.listing-grid--single{grid-template-columns:1fr}
  .mobile-toolbar{grid-template-columns:1fr 1fr auto}
  .mobile-result-count{display:flex;align-items:center;justify-content:center;padding:0 8px!important;font-size:10px;color:#607c90!important}
  .search-empty-state{grid-template-columns:1fr;text-align:center;padding:22px 18px}
  .search-empty-icon{margin:auto}
  .search-empty-state .btn{width:100%}
}

/* ==========================================================
   V21.7.8.1 - zichtbare resultaten + oranje filterzijbalk
   ========================================================== */
@media (min-width:901px){
  .market-layout-v2178{
    display:grid!important;
    grid-template-columns:300px minmax(0,1fr)!important;
    gap:24px!important;
    align-items:start!important;
  }
  .search-results-v2178{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    min-width:0!important;
    width:100%!important;
  }
  .results-head-v2178{
    display:flex!important;
    visibility:visible!important;
    justify-content:space-between!important;
    align-items:center!important;
    width:100%!important;
  }
  .listing-grid-v2178{
    display:grid!important;
    visibility:visible!important;
    width:100%!important;
    margin-top:14px!important;
  }
}

/* Filterzijbalk in de herkenbare TeKoopCamper-oranje huisstijl. */
.search-filter-card{
  background:linear-gradient(180deg,#ff7900 0%,#f36f00 100%)!important;
  border-color:#e56600!important;
  box-shadow:0 12px 32px rgba(11,49,88,.13)!important;
}
.search-filter-card form{background:transparent!important}
.search-filter-card .filter-head,
.search-filter-card .filter-section,
.search-filter-card .filter-more{border-color:rgba(255,255,255,.30)!important}
.search-filter-card .filter-kicker,
.search-filter-card .filter-head h2,
.search-filter-card .filter-head a,
.search-filter-card .filter-section h3,
.search-filter-card .field label,
.search-filter-card .filter-more>summary,
.search-filter-card .filter-check,
.search-filter-card .location-status{
  color:#fff!important;
}
.search-filter-card .filter-head a{text-decoration:underline;text-underline-offset:2px}
.search-filter-card .field input,
.search-filter-card .field select{
  background:#fff!important;
  border-color:rgba(11,49,88,.16)!important;
  color:#0b3158!important;
}
.search-filter-card .filter-location-section{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.30)!important;
}
.search-filter-card .location-use-button{
  background:#fff!important;
  border-color:rgba(255,255,255,.85)!important;
  color:#0b3158!important;
}
.search-filter-card .filter-more>summary:after{color:#fff!important}
.search-filter-card .filter-check input{accent-color:#0b3158}
.search-filter-card .filter-submit{
  background:#0b3158!important;
  border-color:#0b3158!important;
  color:#fff!important;
}

/* 1 resultaat mag niet als een onzichtbaar/ingeklapt vlak eindigen. */
.listing-grid-v2178.listing-grid--single{
  display:grid!important;
  grid-template-columns:minmax(300px,520px)!important;
  justify-content:start!important;
}
.listing-grid-v2178 .listing-card{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
}

@media(max-width:900px){
  .market-layout-v2178{display:grid!important;grid-template-columns:1fr!important}
  .search-results-v2178{display:block!important;visibility:visible!important;opacity:1!important}
  .listing-grid-v2178{display:grid!important;visibility:visible!important}
}

/* ==========================================================
   V21.7.8.2 - collision-safe zoekresultaten + apply controls
   ========================================================== */
.tkc-filter-apply{
  width:100%;min-height:44px;border:0;border-radius:12px;cursor:pointer;
  background:#0b3158;color:#fff;font-weight:800;font-size:14px;
  box-shadow:0 5px 14px rgba(11,49,88,.16)
}
.tkc-filter-apply--top{margin:0 0 16px}
.tkc-filter-apply--bottom{margin-top:16px}
.tkc-filter-apply:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(11,49,88,.22)}

.tkc-search-results-v21782{
  display:block!important;visibility:visible!important;opacity:1!important;
  min-width:0!important;width:100%!important;position:relative!important;
}
.tkc-results-toolbar{
  display:grid!important;grid-template-columns:auto 1fr auto!important;gap:14px!important;
  align-items:center!important;background:#fff!important;border:1px solid #dce9f0!important;
  border-radius:16px!important;padding:14px 16px!important;margin:0 0 18px!important;
  box-shadow:0 6px 20px rgba(11,49,88,.06)!important
}
.tkc-results-count{display:flex;flex-direction:column;gap:2px;white-space:nowrap}
.tkc-results-count span{font-size:9px;font-weight:800;letter-spacing:1.15px;color:#e96800}
.tkc-results-count strong{font-size:18px;color:#0b3158}
.tkc-sort-tabs{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.tkc-sort-tabs a{display:inline-flex;align-items:center;min-height:36px;padding:0 11px;border:1px solid #d7e5ed;border-radius:999px;background:#f8fbfd;color:#0b3158;text-decoration:none;font-size:12px;font-weight:700}
.tkc-sort-tabs a:hover,.tkc-sort-tabs a.is-active{border-color:#ff7900;background:#fff3e8;color:#b94f00}
.tkc-results-selects{display:flex;gap:8px;align-items:end}
.tkc-results-selects form{margin:0}
.tkc-results-selects label{display:flex;flex-direction:column;gap:3px;color:#607c90;font-size:9px;font-weight:700}
.tkc-results-selects select{min-height:36px;border:1px solid #d6e4ec;border-radius:9px;background:#fff;color:#0b3158;padding:0 28px 0 9px;font-weight:700}

.tkc-camper-results-grid{
  display:grid!important;visibility:visible!important;opacity:1!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;
  width:100%!important;min-height:200px!important;align-items:start!important
}
.tkc-camper-results-grid--single{grid-template-columns:minmax(320px,560px)!important;justify-content:start!important}
.tkc-camper-card-v21782{
  display:block!important;visibility:visible!important;opacity:1!important;position:relative!important;
  background:#fff!important;border:1px solid rgba(255,121,0,.42)!important;border-radius:18px!important;
  overflow:hidden!important;box-shadow:0 8px 24px rgba(11,49,88,.09)!important;height:auto!important;min-height:0!important
}
.tkc-camper-card-v21782:hover{transform:translateY(-2px);border-color:rgba(255,121,0,.72)!important;box-shadow:0 12px 30px rgba(11,49,88,.13)!important}
.tkc-camper-card-image{display:block!important;width:100%!important;aspect-ratio:16/10!important;background:#f4f8fb!important;overflow:hidden!important}
.tkc-camper-card-image img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;visibility:visible!important;opacity:1!important}
.tkc-camper-card-body{display:block!important;padding:18px!important;color:#0b3158!important}
.tkc-camper-card-body h2{margin:0 0 8px!important;font-size:21px!important;line-height:1.2!important}
.tkc-camper-card-body h2 a{color:#0b3158!important;text-decoration:none!important}
.tkc-camper-card-price{font-size:26px;font-weight:900;color:#0b3158;margin-bottom:8px}
.tkc-camper-card-meta{font-size:13px;color:#607c90;margin-bottom:7px}
.tkc-camper-card-location,.tkc-camper-card-distance{display:flex;align-items:center;gap:6px;font-size:13px;color:#345f79;margin-top:5px}
.tkc-camper-card-location span{color:#ff7900;font-weight:900}
.tkc-camper-card-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #e2edf2;margin-top:14px;padding-top:12px;font-size:12px;color:#607c90}
.tkc-camper-card-bottom a{color:#0b5c94;font-weight:800;text-decoration:none}

@media(max-width:1100px){
  .tkc-results-toolbar{grid-template-columns:1fr!important}
  .tkc-sort-tabs{justify-content:flex-start}
  .tkc-results-selects{flex-wrap:wrap}
}
@media(max-width:900px){
  .tkc-camper-results-grid,.tkc-camper-results-grid--single{grid-template-columns:1fr!important}
  .tkc-sort-tabs{overflow:auto;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:2px}
  .tkc-sort-tabs a{white-space:nowrap}
  .tkc-results-selects{display:none}
  .tkc-filter-apply--top{position:sticky;top:8px;z-index:3}
}


/* ==========================================================
   V21.7.8.3 - stabiele resultaten, rustige filters, advertentienummer
   ========================================================== */
@media (min-width:901px){
  .market-layout-v2178{
    display:grid!important;
    grid-template-columns:300px minmax(0,1fr)!important;
    grid-template-areas:"filters results"!important;
    gap:26px!important;
    align-items:start!important;
    padding-top:26px!important;
  }
  .search-filter-card{
    grid-area:filters!important;
    position:relative!important;
    top:auto!important;
    align-self:start!important;
  }
  .tkc-search-results-v21783{
    grid-area:results!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    min-width:0!important;
    width:100%!important;
  }
}

/* De toepassen-knop staat alleen onderaan. Geen zwevende/sticky knop boven de velden. */
.tkc-filter-apply--top{display:none!important}
.tkc-filter-submit-bottom{
  margin:16px -2px 0;
  padding:16px 0 0;
  border-top:1px solid rgba(255,255,255,.34);
}
.tkc-filter-apply--bottom{margin:0!important;position:static!important}

/* Resultaatgebied gebruikt uitsluitend unieke V21.7.8.3 klassen. */
.tkc-search-results-v21783{display:block!important;visibility:visible!important;opacity:1!important;min-width:0!important;width:100%!important}
.tkc-results-toolbar-v21783{
  display:grid!important;grid-template-columns:auto 1fr auto!important;gap:14px!important;align-items:center!important;
  width:100%!important;margin:0 0 18px!important;padding:14px 16px!important;
  background:#fff!important;border:1px solid #dce9f0!important;border-radius:16px!important;
  box-shadow:0 6px 20px rgba(11,49,88,.06)!important;
}
.tkc-camper-results-grid-v21783{
  display:grid!important;visibility:visible!important;opacity:1!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;
  width:100%!important;min-width:0!important;align-items:start!important;
}
.tkc-camper-results-grid-v21783.is-single{grid-template-columns:minmax(320px,560px)!important;justify-content:start!important}
.tkc-camper-card-v21783{
  display:block!important;visibility:visible!important;opacity:1!important;position:relative!important;
  min-width:0!important;height:auto!important;background:#fff!important;
  border:1px solid rgba(255,121,0,.45)!important;border-radius:18px!important;overflow:hidden!important;
  box-shadow:0 8px 24px rgba(11,49,88,.09)!important;
}
.tkc-camper-card-v21783:hover{transform:translateY(-2px);border-color:rgba(255,121,0,.75)!important;box-shadow:0 12px 30px rgba(11,49,88,.13)!important}
.tkc-camper-card-image-v21783{display:block!important;width:100%!important;aspect-ratio:16/10!important;background:#f4f8fb!important;overflow:hidden!important}
.tkc-camper-card-image-v21783 img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:1!important;visibility:visible!important}
.tkc-camper-card-body-v21783{display:block!important;padding:18px!important;color:#0b3158!important}
.tkc-camper-card-body-v21783 h2{margin:4px 0 8px!important;font-size:21px!important;line-height:1.2!important}
.tkc-camper-card-body-v21783 h2 a{color:#0b3158!important;text-decoration:none!important}

.listing-public-number{display:block;margin:0 0 4px;color:#738797;font-size:10px;font-weight:800;letter-spacing:.35px}
.listing-public-number--detail{margin:3px 0 7px;font-size:11px}
.home-market-card-body>.listing-public-number,.home-featured-copy>.listing-public-number{margin-bottom:5px}

/* Oude resultaatklassen uit 7.8.1/7.8.2 mogen deze versie niet beïnvloeden. */
.tkc-search-results-v21782,.tkc-camper-results-grid,.tkc-camper-card-v21782{max-width:none}

@media(max-width:1100px){
  .tkc-results-toolbar-v21783{grid-template-columns:1fr!important}
  .tkc-results-toolbar-v21783 .tkc-sort-tabs{justify-content:flex-start}
}
@media(max-width:900px){
  .market-layout-v2178{display:flex!important;flex-direction:column!important;padding-top:8px!important}
  .tkc-search-results-v21783{order:1;width:100%!important}
  .search-filter-card{order:2}
  .tkc-camper-results-grid-v21783,.tkc-camper-results-grid-v21783.is-single{grid-template-columns:1fr!important}
  .tkc-results-toolbar-v21783 .tkc-results-selects{display:none!important}
  .tkc-results-toolbar-v21783 .tkc-sort-tabs{overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:2px}
  .tkc-results-toolbar-v21783 .tkc-sort-tabs a{white-space:nowrap}
}
