:root{
	--dkg-green:#1f7a3d;
	--dkg-green-dark:#15502a;
	--dkg-green-pale:#eaf6ee;
	--dkg-text:#182420;
	--dkg-muted:#5e6d61;
	--dkg-border:#e5e0d1;
	--dkg-bg:#faf7f0;
	--dkg-surface:#ffffff;
	--dkg-surface-sunken:#f3efe4;
	--dkg-warm:#c97a2b;
	--dkg-shadow:0 18px 40px -22px rgba(18,32,22,.35);
}

*{box-sizing:border-box;}
body{
	margin:0;
	background:var(--dkg-bg);
	color:var(--dkg-text);
	font-family:"Work Sans",-apple-system,BlinkMacSystemFont,sans-serif;
	-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:"Fraunces","Georgia",serif;text-wrap:balance;margin:0;}
button,input,select{font-family:inherit;font-size:1rem;}
ul{margin:0;padding:0;}

.dkg-shell,.dkg-section-outer{max-width:1200px;margin:0 auto;padding:0 20px;}
.dkg-section{margin-top:56px;}
.dkg-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.dkg-section-head h2{font-size:1.6rem;font-weight:600;}
.dkg-section-link{color:var(--dkg-green);font-weight:600;white-space:nowrap;}
.dkg-section-sub{color:var(--dkg-muted);margin:-10px 0 18px;}

/* Header */
.dkg-header{border-bottom:1px solid var(--dkg-border);background:var(--dkg-surface);position:sticky;top:0;z-index:20;}
.dkg-header-row{display:flex;align-items:center;gap:12px;padding:14px 20px;max-width:1200px;margin:0 auto;}
@media (min-width:480px){ .dkg-header-row{gap:28px;} }
.dkg-brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0;}
.dkg-brand-mark{width:40px;height:40px;border-radius:11px;background:linear-gradient(155deg,var(--dkg-green),var(--dkg-green-dark));display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.dkg-brand-mark svg{width:22px;height:22px;}
.dkg-brand-mark-custom{background:none;width:auto;height:48px;overflow:visible;}
.dkg-brand-mark-custom img{width:auto;height:100%;object-fit:contain;display:block;}
.dkg-brand-text{line-height:1.2;min-width:0;overflow:hidden;}
.dkg-brand-text strong{display:block;font-family:"Poppins","Work Sans",sans-serif;font-weight:800;font-size:1.2rem;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dkg-brand-text small{color:var(--dkg-muted);font-size:.74rem;font-weight:500;display:none;}
/* Tagline is decoratief (geen navigatie/content) — onder 480px is er samen met logo + volledige
   actionrow niet genoeg breedte voor alle drie; vanaf 480px past hij weer ruim. */
@media (min-width:480px){ .dkg-brand-text small{display:block;} }
.dkg-main-nav{display:none;gap:24px;font-size:.92rem;font-weight:500;}
.dkg-main-nav li{list-style:none;}
.dkg-nav-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;border:1px solid var(--dkg-border);background:var(--dkg-surface);cursor:pointer;flex-shrink:0;padding:0;}
.dkg-nav-toggle svg{width:18px;height:18px;}
@media (min-width:900px){ .dkg-nav-toggle{display:none;} }
/* Mobiel/tablet-uitklapmenu (<900px, zelfde breakpoint als waar .dkg-main-nav normaal verschijnt):
   hergebruikt het bestaande .dkg-main-nav-element (dezelfde wp_nav_menu()-output, dezelfde links,
   dezelfde volgorde) — geen los tweede menu. .dkg-header heeft al position:sticky, dat is genoeg
   als positioneringscontext voor dit paneel. */
@media (max-width:899px){
	.dkg-main-nav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--dkg-surface);border-bottom:1px solid var(--dkg-border);box-shadow:var(--dkg-shadow);padding:4px 20px 14px;}
	.dkg-main-nav.is-open li + li{border-top:1px solid var(--dkg-border);}
	.dkg-main-nav.is-open a{display:block;padding:14px 2px;}
}
.dkg-header-actions{display:flex;align-items:center;gap:12px;}
.dkg-icon-btn{width:38px;height:38px;border-radius:999px;border:1px solid var(--dkg-border);background:var(--dkg-surface);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.dkg-icon-btn svg{width:17px;height:17px;}
.dkg-pill-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--dkg-green-dark);color:#fff;border:0;border-radius:999px;width:38px;height:38px;padding:0;font-weight:600;font-size:.86rem;white-space:nowrap;flex-shrink:0;}
.dkg-pill-btn svg{width:15px;height:15px;flex-shrink:0;}
.dkg-pill-btn-label{display:none;}
/* Onder 480px is er niet genoeg breedte voor logo + volledige actionrow met tekstlabel (gemeten:
   content breedte 458px bij een viewport van 375px, exact de "Mijn lijst"-pil als oorzaak — zie
   header.php) — daarom hier icoon-only, vanaf 480px past de volledige pil met label weer ruim. */
@media (min-width:480px){
	.dkg-pill-btn{width:auto;height:auto;padding:10px 18px;}
	.dkg-pill-btn-label{display:inline;}
}
@media (min-width:900px){ .dkg-main-nav{display:flex;} }

/* Buttons */
.dkg-btn-primary{display:inline-block;background:var(--dkg-green);color:#fff;border:0;border-radius:999px;padding:12px 22px;font-weight:700;font-size:.92rem;cursor:pointer;text-align:center;}
.dkg-btn-outline{display:inline-flex;align-items:center;gap:7px;background:transparent;color:var(--dkg-text);border:1px solid var(--dkg-border);border-radius:999px;padding:11px 20px;font-weight:600;font-size:.9rem;cursor:pointer;}
.dkg-btn-outline .dkg-icon{color:var(--dkg-green-dark);}

/* Lokale SVG-iconenset — currentColor, consistente uitlijning */
.dkg-icon{display:inline-block;vertical-align:middle;flex-shrink:0;}
.dkg-btn-block{display:block;width:100%;}

/* Breadcrumb */
.dkg-breadcrumb{font-size:.82rem;color:var(--dkg-muted);padding:16px 0 0;}
.dkg-breadcrumb a{color:var(--dkg-muted);}
.dkg-breadcrumb a:hover{color:var(--dkg-green);}

/* Hero (homepage) */
.dkg-hero{position:relative;border-radius:20px;overflow:hidden;margin-top:24px;min-height:420px;display:flex;align-items:center;}
.dkg-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.dkg-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,14,.72) 0%,rgba(10,20,14,.35) 55%,rgba(10,20,14,.15) 100%);z-index:1;}
.dkg-hero-content{position:relative;z-index:2;padding:48px;max-width:640px;}
.dkg-hero-content h1{color:#fff;font-size:2.5rem;line-height:1.15;font-weight:600;margin:0 0 16px;}
.dkg-hero-content p{color:#eef3ef;font-size:1.05rem;margin:0 0 28px;}
.dkg-hero-card{position:absolute;z-index:2;top:36px;right:36px;background:#fff;border-radius:16px;padding:22px 24px;width:260px;box-shadow:var(--dkg-shadow);display:none;}
.dkg-hero-card-item{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px;font-size:.84rem;}
.dkg-hero-card-item:last-child{margin-bottom:0;}
.dkg-hero-card-item b{display:block;font-size:.86rem;}
.dkg-hero-card-item .dkg-hc-sub{color:var(--dkg-muted);}
@media (min-width:860px){ .dkg-hero-card{display:block;} }

/* Zoeker hero (smaller, campings page + tool page) */
.dkg-zoeker-hero,.dkg-tool-hero{position:relative;overflow:hidden;border-radius:20px;margin:16px 20px 0;max-width:1160px;margin-left:auto;margin-right:auto;min-height:220px;display:flex;align-items:center;}
.dkg-zoeker-hero img,.dkg-tool-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.dkg-zoeker-hero::after,.dkg-tool-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,20,14,.78) 0%,rgba(10,20,14,.4) 70%);}
.dkg-zoeker-hero-content,.dkg-tool-hero-content{position:relative;z-index:2;padding:40px;max-width:640px;}
.dkg-zoeker-hero-content h1,.dkg-tool-hero-content h1{color:#fff;font-size:2rem;font-weight:600;margin-bottom:10px;}
.dkg-zoeker-hero-content p,.dkg-tool-hero-content p{color:#e9efe9;margin:0 0 20px;}
.dkg-tool-hero-icon{font-size:2rem;display:block;margin-bottom:10px;}

/* Search bar */
.dkg-search-bar{display:flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:7px 7px 7px 20px;max-width:500px;}
.dkg-search-bar input{flex:1;border:0;outline:0;background:transparent;font-size:.96rem;min-width:0;}
.dkg-search-bar button{background:var(--dkg-green);color:#fff;border:0;border-radius:999px;padding:12px 24px;font-weight:700;font-size:.9rem;cursor:pointer;white-space:nowrap;}
.dkg-populair{margin-top:18px;color:#e4ece6;font-size:.9rem;display:flex;flex-wrap:wrap;gap:8px;}
.dkg-populair a{color:#fff;text-decoration:underline;}

/* Destinations grid */
.dkg-land-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.dkg-land-card{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1;}
.dkg-land-card img{width:100%;height:100%;object-fit:cover;}
.dkg-land-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.6),rgba(0,0,0,0) 60%);}
.dkg-land-label{position:absolute;left:12px;bottom:10px;z-index:1;color:#fff;font-weight:700;font-size:.9rem;}
@media (min-width:640px){ .dkg-land-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (min-width:900px){ .dkg-land-grid{grid-template-columns:repeat(6,minmax(0,1fr));} }

/* Filter chips */
.dkg-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.dkg-filter-chip{display:block;background:var(--dkg-green-pale);border-radius:14px;padding:24px 14px;text-align:center;font-weight:600;font-size:.92rem;}
.dkg-filter-icon{display:block;font-size:1.8rem;margin-bottom:10px;}
/* Zelfde probleem/oplossing als .dkg-voorziening-label: een los, lang woord zonder spatie
   (bv. "Baby-/verzorgingsruimte") breekt zonder dit niet af en duwt de chip/pagina breder dan
   het scherm. */
.dkg-filter-label{display:block;overflow-wrap:break-word;word-break:break-word;hyphens:auto;}
@media (min-width:640px){ .dkg-filter-row{grid-template-columns:repeat(4,minmax(0,1fr));} }
@media (min-width:980px){ .dkg-filter-row{grid-template-columns:repeat(8,minmax(0,1fr));} }

/* Camping cards (grid, homepage) */
.dkg-camping-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;}
.dkg-camping-card{position:relative;border:1px solid var(--dkg-border);border-radius:16px;overflow:hidden;background:#fff;}
.dkg-camping-image{position:relative;aspect-ratio:16/10;display:block;}
.dkg-camping-image img{width:100%;height:100%;object-fit:cover;}
.dkg-heart-btn{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:999px;background:#fff;border:0;font-size:1.1rem;cursor:pointer;z-index:2;}
.dkg-camping-body{padding:16px;}
.dkg-rating{color:var(--dkg-warm);font-weight:700;font-size:.88rem;}
.dkg-rating-count{color:var(--dkg-muted);font-weight:500;}
.dkg-camping-naam{margin:7px 0 4px;font-size:1.06rem;font-weight:700;}
.dkg-camping-locatie{display:inline-flex;align-items:center;gap:6px;color:var(--dkg-muted);font-size:.94rem;margin-bottom:12px;}
.dkg-camping-locatie .dkg-icon{flex-shrink:0;}
.dkg-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.dkg-tag{background:var(--dkg-surface-sunken);border-radius:999px;padding:5px 11px;font-size:.74rem;font-weight:600;}
.dkg-camping-footer{display:flex;align-items:center;justify-content:space-between;}
.dkg-prijs{font-weight:800;color:var(--dkg-green);}
.dkg-arrow{color:var(--dkg-green);font-size:1.3rem;font-weight:700;}
@media (min-width:720px){ .dkg-camping-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1040px){ .dkg-camping-grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
/* "Vergelijkbare campings" op de camping-detailpagina: aantal kolommen volgt het werkelijke
   aantal resultaten (1-4), zodat kaarten bij minder dan 4 resultaten groot en prominent blijven
   i.p.v. klein met een lege kolom ernaast. De homepage-grid (altijd 4) gebruikt deze classes niet. */
@media (min-width:1040px){
	.dkg-camping-grid-cols-1{grid-template-columns:minmax(0,320px);}
	.dkg-camping-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
	.dkg-camping-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
}

/* Tools */
.dkg-tool-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
.dkg-tool-card{display:flex;align-items:center;gap:14px;border:1px solid var(--dkg-border);border-radius:14px;padding:17px;background:#fff;}
.dkg-tool-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;}
.dkg-tool-tekst h3{margin:0 0 3px;font-size:.98rem;font-weight:700;}
.dkg-tool-tekst p{margin:0;color:var(--dkg-muted);font-size:.83rem;}
.dkg-tool-card .dkg-arrow{margin-left:auto;}
@media (min-width:640px){ .dkg-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:980px){ .dkg-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* Articles + newsletter */
.dkg-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;}
.dkg-artikel-list{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;}
.dkg-artikel-card{display:block;border:1px solid var(--dkg-border);border-radius:14px;overflow:hidden;background:#fff;}
.dkg-artikel-card img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;}
.dkg-artikel-body{padding:14px;}
.dkg-artikel-body h3{font-size:.98rem;font-weight:700;line-height:1.35;margin-bottom:10px;}
.dkg-artikel-meta{display:flex;align-items:center;justify-content:space-between;}
.dkg-artikel-datum{color:var(--dkg-muted);font-size:.78rem;}
.dkg-cat-pill{background:var(--dkg-green-pale);color:var(--dkg-green);font-weight:700;font-size:.72rem;padding:4px 10px;border-radius:999px;}
.dkg-newsletter{position:relative;border-radius:16px;overflow:hidden;min-height:300px;display:flex;align-items:flex-end;padding:26px;color:#fff;}
.dkg-newsletter img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.dkg-newsletter::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,12,8,.86) 14%,rgba(6,12,8,.25) 85%);}
.dkg-newsletter-content{position:relative;z-index:2;width:100%;}
.dkg-newsletter-content h3{color:#fff;font-size:1.25rem;margin-bottom:9px;}
.dkg-newsletter-content p{color:#e4ece6;font-size:.88rem;margin:0 0 18px;}
.dkg-newsletter-form{display:flex;gap:8px;margin-bottom:16px;}
.dkg-newsletter-form input{flex:1;min-width:0;border:0;border-radius:999px;padding:11px 15px;font-size:.88rem;}
.dkg-newsletter-form button{background:var(--dkg-green);color:#fff;border:0;border-radius:999px;padding:11px 18px;font-weight:700;cursor:pointer;}
.dkg-newsletter-list{list-style:none;font-size:.83rem;color:#dfe9e2;display:flex;flex-direction:column;gap:6px;}
@media (min-width:900px){ .dkg-bottom-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);} .dkg-artikel-list{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* Zoeker (campings-zoeker) */
.dkg-zoeker-wrap{padding-top:28px;}
.dkg-filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;position:relative;}
.dkg-filter-select{border:1px solid var(--dkg-border);background:#fff;border-radius:10px;padding:10px 14px;font-size:.88rem;cursor:pointer;}
.dkg-meer-filters-panel{position:absolute;top:100%;left:0;margin-top:8px;background:#fff;border:1px solid var(--dkg-border);border-radius:12px;padding:16px;box-shadow:var(--dkg-shadow);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;z-index:10;width:320px;max-width:calc(100vw - 40px);}
.dkg-meer-filters-panel[hidden]{display:none;}
.dkg-kenmerk-check{display:flex;align-items:center;gap:7px;font-size:.84rem;}
.dkg-search-btn-small{grid-column:1/-1;background:var(--dkg-green);color:#fff;border:0;border-radius:8px;padding:9px;font-weight:700;cursor:pointer;}
.dkg-zoeker-results-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;color:var(--dkg-muted);font-size:.9rem;}
.dkg-sort-form select{border:1px solid var(--dkg-border);border-radius:8px;padding:6px 10px;}
.dkg-zoeker-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;}
.dkg-zoeker-list{display:flex;flex-direction:column;gap:14px;}
.dkg-camping-row{display:flex;gap:14px;border:1px solid var(--dkg-border);border-radius:14px;padding:12px;background:#fff;align-items:center;}
.dkg-camping-row-img{width:140px;height:100px;flex-shrink:0;border-radius:10px;overflow:hidden;}
.dkg-camping-row-img img{width:100%;height:100%;object-fit:cover;}
.dkg-camping-row-body{flex:1;min-width:0;}
.dkg-camping-row-body h3{font-size:1rem;font-weight:700;margin-bottom:4px;}
.dkg-camping-row-price{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex-shrink:0;}
.dkg-zoeker-map{position:sticky;top:90px;height:480px;border-radius:16px;overflow:hidden;border:1px solid var(--dkg-border);}
#dkg-map{width:100%;height:100%;}
.dkg-pagination{display:flex;gap:6px;justify-content:center;margin-top:24px;}
.dkg-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:8px;border:1px solid var(--dkg-border);font-size:.86rem;}
.dkg-pagination .page-numbers.current{background:var(--dkg-green);color:#fff;border-color:var(--dkg-green);}
@media (min-width:980px){ .dkg-zoeker-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);} }

/* Single camping */
.dkg-camping-single-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;margin:20px 0 28px;}
.dkg-camping-single-head h1{font-size:2.1rem;margin-bottom:10px;}
.dkg-camping-single-actions{display:flex;gap:10px;flex-wrap:wrap;}
/* Galerij: desktop = 1 grote foto + exact 3 kleine, met gelijke totale hoogte via grid-stretch
   (de hoofdfoto bepaalt via aspect-ratio de rijhoogte; de zijkolom stretcht daar automatisch naartoe
   en verdeelt zichzelf in evenveel gelijke rijen als er zijfoto's zijn — geen vaste pixelhoogtes). */
.dkg-camping-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:0;}
.dkg-camping-gallery-main{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/11;}
.dkg-camping-gallery-main img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-camping-gallery-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;background:var(--dkg-green-pale);color:var(--dkg-muted);}
.dkg-camping-gallery-placeholder .dkg-icon{opacity:.6;}
.dkg-camping-gallery-placeholder span{font-size:.86rem;font-weight:600;}
.dkg-camping-gallery-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.dkg-camping-gallery-thumb,.dkg-camping-gallery-more{border:0;padding:0;background:none;cursor:pointer;display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;position:relative;}
.dkg-camping-gallery-thumb img,.dkg-camping-gallery-more img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-camping-gallery-more img{filter:brightness(.55);}
.dkg-camping-gallery-more span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.82rem;text-align:center;padding:4px;}
/* Overlay-badge op de hoofdfoto (niet een los blok eronder) — conform referentie, en voorkomt
   de voorheen veel te grote afstand tussen galerij en de kenmerken-pills eronder. */
.dkg-camping-gallery-btn{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;background:rgba(10,15,12,.72);color:#fff;border:0;border-radius:999px;padding:9px 16px 9px 14px;font-size:.84rem;font-weight:600;cursor:pointer;}
.dkg-camping-gallery-btn .dkg-icon{flex-shrink:0;}
/* Desktop: compacte, horizontale verhouding — EXPLICIETE hoogte op de rij i.p.v. aspect-ratio op
   de hoofdfoto (die laatste gaf een onbepaalde/zeer hoge rijhoogte doordat geen van beide kolommen
   dan nog een intrinsieke hoogte had om op te stretchen — vandaar de eerdere "te hoge galerij"-bug). */
@media (min-width:900px){
	/* "height" alléén op de container zet de GRID-RIJ zelf niet vast — bij een grid met impliciete
	   "auto"-rijhoogte en kinderen op height:100% ontstaat een circulaire afhankelijkheid die
	   Chromium bij bepaalde breedtes oplost door terug te vallen op de intrinsieke (veel hogere)
	   fotoverhouding, met overlappende vervolgcontent tot gevolg. grid-template-rows zet de
	   rijhoogte ondubbelzinnig vast, ongeacht foto-aspect-ratio of viewportbreedte. */
	.dkg-camping-gallery{grid-template-columns:minmax(0,2.3fr) minmax(0,1fr);grid-template-rows:clamp(260px,24vw,320px);gap:12px;height:clamp(260px,24vw,320px);}
	.dkg-camping-gallery-main{aspect-ratio:auto;height:100%;min-height:0;}
	.dkg-camping-gallery-side{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(3,1fr);height:100%;min-height:0;gap:12px;}
	.dkg-camping-gallery-side-2 .dkg-camping-gallery-side{grid-template-rows:repeat(2,1fr);}
	.dkg-camping-gallery-side-1 .dkg-camping-gallery-side{grid-template-rows:1fr;}
	.dkg-camping-gallery-thumb,.dkg-camping-gallery-more{aspect-ratio:auto;height:100%;min-height:0;}
	/* Zonder foto's (side-0, de placeholder) is er maar 1 grid-item -- laat het de volledige
	   breedte innemen i.p.v. alleen de eerste (2.3fr) kolom, anders blijft er een lege kolom over. */
	.dkg-camping-gallery-side-0{grid-template-columns:minmax(0,1fr);}
}

/* Highlight-/voorzieningen-tags: lichtgroen/mint, donkergroene tekst + icoon, compact */
.dkg-camping-kenmerken-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;margin-bottom:0;}
.dkg-kenmerk-pill{display:inline-flex;align-items:center;gap:7px;background:var(--dkg-green-pale);color:var(--dkg-green-dark);border-radius:999px;padding:9px 16px;font-size:.92rem;font-weight:600;line-height:1;}
.dkg-kenmerk-pill .dkg-icon{color:var(--dkg-green-dark);flex-shrink:0;}

.dkg-camping-single-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;}
@media (min-width:900px){ .dkg-camping-single-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);} }
.dkg-camping-single-main h2{font-size:1.4rem;margin-bottom:16px;}
.dkg-camping-content{font-family:"Inter","Work Sans",-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.02rem;font-weight:400;line-height:1.6;color:var(--dkg-text);max-width:68ch;}
.dkg-camping-content p{margin:0 0 1.2em;}
.dkg-camping-content p:last-child{margin-bottom:0;}
.dkg-price-box{border:1px solid var(--dkg-border);border-radius:14px;padding:22px;margin-bottom:20px;background:#fff;}
.dkg-prijs-groot{display:block;font-size:1.6rem;font-weight:800;color:var(--dkg-green);}
.dkg-prijs-sub{color:var(--dkg-muted);font-size:.84rem;}
.dkg-prijs-note{color:var(--dkg-muted);font-size:.8rem;margin:10px 0 16px;}
.dkg-info-box{border:1px solid var(--dkg-border);border-radius:14px;padding:24px;background:#fff;}
.dkg-info-box h2{font-size:1.1rem;margin-bottom:16px;}
.dkg-info-box ul{list-style:none;display:flex;flex-direction:column;margin:0;padding:0;}
.dkg-info-box li{display:flex;align-items:center;gap:12px;font-size:.92rem;line-height:1.5;padding:13px 0;border-top:1px solid var(--dkg-border);min-width:0;}
.dkg-info-box li>*:last-child{min-width:0;overflow-wrap:anywhere;}
.dkg-info-box li:first-child{padding-top:0;border-top:0;}
.dkg-info-box li:last-child{padding-bottom:0;}
.dkg-info-icon{color:var(--dkg-green-dark);flex-shrink:0;}
.dkg-info-icon svg{display:block;}
.dkg-info-label{color:var(--dkg-muted);width:72px;flex-shrink:0;}
.dkg-info-text{color:var(--dkg-text);flex:1;}
.dkg-info-text a{color:#2766ad;text-decoration:none;}
.dkg-info-text a:hover{text-decoration:underline;}

/* Tool / calculator */
.dkg-calculator{border:1px solid var(--dkg-border);border-radius:16px;padding:24px;background:#fff;margin:24px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;}
.dkg-calc-col h2{font-size:1.05rem;margin-bottom:4px;}
.dkg-calc-step-label{color:var(--dkg-muted);font-size:.86rem;margin-bottom:14px;}
.dkg-ampere-row{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.dkg-ampere-btn{border:1px solid var(--dkg-border);background:#fff;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer;}
.dkg-ampere-btn.active{background:var(--dkg-green);color:#fff;border-color:var(--dkg-green);}
.dkg-max-box{background:var(--dkg-green-pale);border-radius:12px;padding:16px;margin-bottom:18px;}
.dkg-max-box strong{display:block;font-size:1.3rem;color:var(--dkg-green-dark);}
.dkg-device-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--dkg-border);}
.dkg-device-row:last-of-type{border-bottom:0;}
.dkg-device-name{font-weight:600;font-size:.92rem;}
.dkg-device-watt{color:var(--dkg-muted);font-size:.8rem;}
.dkg-qty-controls{display:flex;align-items:center;gap:8px;}
.dkg-qty-controls button{width:28px;height:28px;border-radius:999px;border:1px solid var(--dkg-border);background:#fff;cursor:pointer;font-weight:700;}
.dkg-qty-value{min-width:18px;text-align:center;font-weight:700;}
.dkg-add-device-btn{margin-top:14px;background:transparent;border:1px dashed var(--dkg-border);border-radius:10px;padding:10px;width:100%;cursor:pointer;color:var(--dkg-green);font-weight:600;}
.dkg-calc-result{display:flex;flex-direction:column;align-items:center;text-align:center;}
.dkg-gauge-wrap{position:relative;width:180px;height:180px;margin-bottom:14px;}
.dkg-gauge-value{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dkg-gauge-value strong{font-size:1.7rem;}
.dkg-gauge-value span{font-size:.78rem;color:var(--dkg-muted);}
.dkg-limit-sub{color:var(--dkg-muted);font-size:.82rem;margin-bottom:14px;}
.dkg-limit-ok,.dkg-limit-over{border-radius:10px;padding:10px 14px;font-size:.84rem;font-weight:600;width:100%;}
.dkg-limit-ok{background:var(--dkg-green-pale);color:var(--dkg-green-dark);}
.dkg-limit-over{background:#fdeaea;color:#a8382e;}
.dkg-selected-list{list-style:none;width:100%;margin-top:16px;font-size:.85rem;display:flex;flex-direction:column;gap:6px;}
.dkg-selected-list li{display:flex;justify-content:space-between;}
.dkg-tool-content{line-height:1.7;max-width:70ch;}
@media (min-width:860px){ .dkg-calculator{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);} }

/* Misc pages */
.dkg-page-content,.dkg-article{max-width:76ch;margin-left:auto;margin-right:auto;line-height:1.7;}
.dkg-article .dkg-cat-pill{margin-bottom:10px;display:inline-block;}
.dkg-article h1{font-size:2rem;margin:6px 0;}
.dkg-article-thumb{margin:20px 0;border-radius:14px;overflow:hidden;}
.dkg-artikel-list-page{grid-template-columns:minmax(0,1fr);}
@media (min-width:720px){ .dkg-artikel-list-page{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:1040px){ .dkg-artikel-list-page{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* Footer */
.dkg-footer{border-top:1px solid var(--dkg-border);margin-top:50px;padding:36px 0 28px;color:var(--dkg-muted);font-size:.86rem;}
.dkg-footer-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;}
.dkg-footer-links{display:flex;gap:18px;flex-wrap:wrap;}

/* Camping detailpagina — header */
.dkg-camping-single-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px;font-size:.98rem;}

/* Camping detailpagina — consequent verticaal ritme, i.p.v. losse margins per onderdeel.
   Waarden gemeten tegen de referentieafbeelding (gaps tussen hoofdblokken ±16-25px op
   1440px-breedte) — ruim strakker dan de vorige ronde, met iets meer lucht onder H2's. */
.dkg-camping-section{margin-top:26px;}
.dkg-camping-section>h2{margin-bottom:16px;}
.dkg-camping-block{margin-top:20px;}
.dkg-camping-block:first-child{margin-top:0;}
@media (max-width:720px){
	.dkg-camping-section{margin-top:28px;}
	.dkg-camping-block{margin-top:20px;}
}

/* Camping detailpagina — body in Inter (referentie-eis), koppen blijven Fraunces (serif),
   bewust gescoped tot de detailpagina zodat andere pagina's ongewijzigd blijven. */
.dkg-camping-single{font-family:"Inter","Work Sans",-apple-system,BlinkMacSystemFont,sans-serif;}
.dkg-camping-single h1,.dkg-camping-single h2,.dkg-camping-single h3{font-family:"Fraunces","Georgia",serif;}

/* "Over de camping" + "Waarom kiezen" samen in één omlijnde kaart, conform referentie */
.dkg-camping-overview-card{border:1px solid var(--dkg-border);border-radius:16px;padding:26px 28px;background:var(--dkg-surface);}
.dkg-camping-overview-card .dkg-camping-block:first-child{margin-top:0;}
.dkg-camping-why{background:var(--dkg-green-pale);border-radius:14px;padding:22px 24px;}
.dkg-camping-why h2{font-size:1.2rem;}
.dkg-camping-voorzieningen-card{border:1px solid var(--dkg-border);border-radius:16px;padding:26px 28px;background:var(--dkg-surface);}
.dkg-camping-voorzieningen-card .dkg-voorzieningen-grid{margin-top:0;}

/* Camping detailpagina — galerij + prijskaart naast elkaar */
.dkg-camping-top-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;margin-top:24px;}
@media (min-width:980px){ .dkg-camping-top-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);} }
.dkg-camping-top-side{display:flex;flex-direction:column;}
.dkg-camping-top-side .dkg-offers-card{height:100%;display:flex;flex-direction:column;}

.dkg-camping-gallery-single .dkg-camping-gallery-side{display:none;}

.dkg-lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,15,12,.92);display:flex;align-items:center;justify-content:center;padding:20px;}
.dkg-lightbox[hidden]{display:none;}
.dkg-lightbox-img{max-width:min(90vw,1100px);max-height:85vh;object-fit:contain;border-radius:8px;}
.dkg-lightbox-close,.dkg-lightbox-prev,.dkg-lightbox-next{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;width:44px;height:44px;font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.dkg-lightbox-close{top:18px;right:18px;}
.dkg-lightbox-prev{left:18px;top:50%;transform:translateY(-50%);}
.dkg-lightbox-next{right:18px;top:50%;transform:translateY(-50%);}

/* Prijsvergelijker — compacte kaart */
.dkg-offers-card{border:1px solid var(--dkg-border);border-radius:16px;padding:20px;background:var(--dkg-green-pale);}
.dkg-offers-card h2{font-size:1.1rem;margin-bottom:4px;}
.dkg-offers-card-sub{color:var(--dkg-muted);font-size:.84rem;margin:0 0 14px;line-height:1.45;}
.dkg-offers-card-list{display:flex;flex-direction:column;gap:10px;}
.dkg-offer-row{background:#fff;border-radius:12px;padding:13px 14px;border:1px solid var(--dkg-border);}
.dkg-offer-row-unavailable{opacity:.72;}
.dkg-offer-partner{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.92rem;margin-bottom:8px;}
.dkg-partner-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--dkg-green);color:#fff;font-weight:800;font-size:.8rem;flex-shrink:0;}
.dkg-partner-logo{width:28px;height:28px;border-radius:8px;object-fit:contain;flex-shrink:0;}
.dkg-offer-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:.92rem;}
.dkg-offer-beschikbaar{display:inline-flex;align-items:center;gap:5px;color:var(--dkg-green);font-weight:700;}
.dkg-offer-nietbeschikbaar{display:inline-flex;align-items:center;gap:5px;color:#a8382e;font-weight:700;}
.dkg-offer-prijs{color:var(--dkg-muted);}
.dkg-offer-prijs strong{color:var(--dkg-text);font-size:1.05rem;}
.dkg-offers-disclaimer{color:var(--dkg-muted);font-size:.78rem;line-height:1.5;margin:12px 0 0;}

/* Volledige prijsvergelijking */
.dkg-offers-table-wrap{overflow-x:auto;border:1px solid var(--dkg-border);border-radius:14px;}
.dkg-offers-table{width:100%;border-collapse:collapse;font-size:.98rem;}
.dkg-offers-table .dkg-btn-primary{white-space:nowrap;}
/* Tussen 721-900px is er geen ruimte voor alle kolommen + een knop zonder tekstomloop (die de
   ronde knop lelijk "ineen liet klappen"). Een min-width + horizontaal scrollen binnen de eigen
   kaart is hier logischer dan de knoptekst laten afbreken. */
@media (min-width:721px) and (max-width:900px){
	.dkg-offers-table{min-width:680px;}
}
.dkg-offers-table th{text-align:left;background:var(--dkg-surface);border-bottom:1px solid var(--dkg-border);padding:14px 18px;font-weight:700;font-size:.86rem;}
.dkg-offers-table td{padding:16px 18px;border-top:1px solid var(--dkg-border);vertical-align:middle;}
.dkg-offers-table td[data-label="Aanbieder"]{display:flex;align-items:center;gap:10px;font-weight:600;}
.dkg-offers-table tr.dkg-offer-row-unavailable{opacity:.6;}
.dkg-oude-prijs{color:var(--dkg-muted);margin-right:6px;}
.dkg-offer-beschikbaar .dkg-icon,.dkg-offer-nietbeschikbaar .dkg-icon{width:16px;height:16px;padding:3px;border-radius:999px;color:#fff;box-sizing:content-box;}
.dkg-offer-beschikbaar .dkg-icon{background:var(--dkg-green);}
.dkg-offer-nietbeschikbaar .dkg-icon{background:#c0392b;}
@media (max-width:720px){
	.dkg-offers-table thead{display:none;}
	.dkg-offers-table,.dkg-offers-table tbody,.dkg-offers-table tr,.dkg-offers-table td{display:block;width:100%;}
	.dkg-offers-table tr{padding:12px 16px;border-top:1px solid var(--dkg-border);}
	.dkg-offers-table td{border:0;padding:4px 0;}
	.dkg-offers-table td[data-label]:not([data-label=""])::before{content:attr(data-label) ": ";color:var(--dkg-muted);font-size:.78rem;}
}

/* Waarom kiezen voor... — rustige lijst met klein vinkje, géén grote gekleurde kaarten */
.dkg-why-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px 28px;margin-top:16px;}
.dkg-why-item{display:flex;align-items:flex-start;gap:10px;font-size:.96rem;font-weight:500;color:var(--dkg-text);line-height:1.4;}
.dkg-why-check{display:flex;align-items:center;justify-content:center;color:var(--dkg-green);flex-shrink:0;margin-top:2px;}
.dkg-why-check .dkg-icon{width:16px;height:16px;}
@media (min-width:640px){ .dkg-why-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* Voorzieningen — vlakke icoon-tegel-grid conform referentieontwerp */
.dkg-voorzieningen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px;}
.dkg-voorziening-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--dkg-green-pale);border-radius:14px;padding:16px 10px;text-align:center;min-width:0;min-height:96px;}
.dkg-voorziening-icon{color:var(--dkg-green-dark);}
/* min-width:0 + width:100% is nodig omdat dit een flex-column-kind is: zonder die twee negeert
   een los, lang woord (bv. "Huuraccommodaties") de breedte van de tegel en breekt zichtbaar uit
   de groene achtergrond i.p.v. netjes af te breken — overflow-wrap kan pas wrappen als het vak
   zelf eerst mag krimpen tot de beschikbare tegelbreedte. */
.dkg-voorziening-label{overflow-wrap:break-word;word-break:break-word;hyphens:auto;min-width:0;width:100%;font-size:.86rem;font-weight:600;color:var(--dkg-green-dark);line-height:1.3;}
.dkg-voorzieningen-meer{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:.92rem;}
@media (min-width:560px){ .dkg-voorzieningen-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (min-width:900px){ .dkg-voorzieningen-grid{grid-template-columns:repeat(6,minmax(0,1fr));} }

/* Ligging / kaart op de detailpagina */
/* Ligging — titel + kaart + bijschrift samen in één omlijnde kaart (zelfde taal als
   Praktische informatie ernaast), niet een losse H2 met daaronder een kale Leaflet-kaart. */
.dkg-camping-map-card{border:1px solid var(--dkg-border);border-radius:14px;padding:24px;background:#fff;}
.dkg-camping-map-card h2{font-size:1.1rem;margin-bottom:16px;}
.dkg-camping-map-wrap{height:260px;border-radius:12px;overflow:hidden;border:1px solid var(--dkg-border);}
.dkg-camping-map-wrap #dkg-map{width:100%;height:100%;}
.dkg-camping-map-caption{color:var(--dkg-muted);font-size:.86rem;line-height:1.5;margin:12px 0 0;}
@media (min-width:900px){ .dkg-camping-map-wrap{height:300px;} }

/* Campinginformatie — één omlijnde kaart met interne verdeelstrepen, drie kolommen die op
   desktop dezelfde boven- en onderkant delen (align-items:stretch). De derde kolom (Kenmerken)
   is nu zelf opgesplitst in subgroepen (algemeen/kampeermogelijkheid/type) i.p.v. één platte,
   ongelimiteerde pillenlijst — voorkomt dat die kolom de andere twee torenhoog overstijgt. */
.dkg-detail-cards-row{display:grid;grid-template-columns:minmax(0,1fr);border:1px solid var(--dkg-border);border-radius:16px;background:#fff;overflow:hidden;margin-top:18px;}
.dkg-detail-card{padding:20px 24px;border-top:1px solid var(--dkg-border);min-width:0;}
.dkg-detail-card:first-child{border-top:0;}
.dkg-detail-card h3{display:flex;align-items:center;gap:9px;font-size:1.02rem;margin-bottom:16px;}
.dkg-detail-card h3 .dkg-icon{color:var(--dkg-green-dark);}
.dkg-detail-subhead{font-size:.82rem;color:var(--dkg-muted);margin:14px 0 8px;font-weight:600;}
.dkg-detail-list{display:flex;flex-direction:column;gap:13px;margin:0;}
.dkg-detail-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.93rem;line-height:1.5;}
.dkg-detail-list dt{display:flex;align-items:center;gap:8px;color:var(--dkg-muted);margin:0;}
.dkg-detail-list dt .dkg-icon{color:var(--dkg-green-dark);flex-shrink:0;}
.dkg-detail-list dd{margin:0;font-weight:600;text-align:right;min-width:0;}
.dkg-detail-pills{display:flex;flex-wrap:wrap;gap:8px;min-width:0;}
.dkg-detail-pill{background:var(--dkg-green-pale);color:var(--dkg-green-dark);border-radius:999px;padding:7px 14px;font-size:.84rem;font-weight:600;}
@media (min-width:860px){
	.dkg-detail-cards-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;}
	.dkg-detail-card{border-top:0;border-left:1px solid var(--dkg-border);}
	.dkg-detail-card:first-child{border-left:0;}
}

/* Ligging en omgeving — volledig optionele, dynamische sectie */
.dkg-ligging-omgeving-card{border:1px solid var(--dkg-border);border-radius:16px;padding:26px 28px;background:var(--dkg-surface);}
.dkg-ligging-omgeving-card h2{margin-bottom:18px;}
.dkg-ligging-omgeving-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;}
.dkg-ligging-omgeving-foto{border-radius:14px;overflow:hidden;aspect-ratio:4/3;}
.dkg-ligging-omgeving-foto img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-ligging-omgeving-tekst{color:var(--dkg-text);font-size:.96rem;line-height:1.65;}
.dkg-ligging-omgeving-tekst p{margin:0 0 1em;}
.dkg-ligging-omgeving-tekst p:last-child{margin-bottom:0;}
.dkg-ligging-omgeving-lijsten{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
.dkg-ligging-lijst{background:var(--dkg-green-pale);border-radius:14px;padding:18px 20px;}
.dkg-ligging-lijst h3{font-size:.92rem;margin-bottom:14px;color:var(--dkg-green-dark);}
.dkg-ligging-lijst ul{display:flex;flex-direction:column;gap:12px;}
.dkg-ligging-lijst li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.9rem;min-width:0;}
.dkg-ligging-lijst-label{display:flex;align-items:center;gap:8px;color:var(--dkg-text);min-width:0;flex:1 1 auto;overflow-wrap:break-word;}
.dkg-ligging-lijst-label .dkg-icon{color:var(--dkg-green-dark);flex-shrink:0;}
/* Geen white-space:nowrap hier: dit veld toont bij "Afstanden" een korte waarde (bv. "4-6 km",
   die toch nooit breekt) maar bij "Populaire uitstapjes" een volledige redenzin -- nowrap
   forceerde die zin voorheen op 1 regel en duwde de rij (en daarmee de pagina) breder dan het
   scherm. Door gewoon te laten wrappen blijft het korte geval ongewijzigd en wrapt het lange
   geval netjes. */
.dkg-ligging-lijst-waarde{font-weight:700;text-align:right;max-width:55%;}
@media (min-width:640px){ .dkg-ligging-omgeving-lijsten{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (min-width:980px){
	.dkg-ligging-omgeving-grid{grid-template-columns:200px minmax(0,1fr);}
	.dkg-ligging-omgeving-lijsten{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* Zonder foto (resp. zonder uitstapjes) blijft er anders een ongebruikte grid-kolom over —
   groot wit vlak naast een smalle tekst-/lijstkolom. Dan de volledige breedte gebruiken. */
.dkg-ligging-omgeving-grid--zonder-foto{grid-template-columns:minmax(0,1fr);}
.dkg-ligging-omgeving-lijsten--1-kolom{grid-template-columns:minmax(0,1fr);}
@media (min-width:980px){
	.dkg-ligging-omgeving-grid--zonder-foto{grid-template-columns:minmax(0,1fr);}
}

/* ==========================================================================
   SEO-landingspagina's (/campings/{land}/, /campings/{land}/{regio}/, ...)
   Universeel, herbruikbaar voor elk land/regio — Zeeland is hier de testcase.
   Body in Inter conform huisstijl-afspraak, gescoped tot dit template.
   ========================================================================== */
.dkg-seo-landing{font-family:"Inter","Work Sans",-apple-system,BlinkMacSystemFont,sans-serif;}
.dkg-seo-landing h1,.dkg-seo-landing h2,.dkg-seo-landing h3{font-family:"Fraunces","Georgia",serif;}
.dkg-seo-section{margin-top:52px;}
.dkg-seo-section .dkg-section-head{margin-bottom:20px;}

/* Hero — bewust edge-to-edge (geen max-width/radius), conform referentie anders dan de
   bestaande homepage/zoeker-hero die wél binnen een gutter valt. */
.dkg-seo-hero{position:relative;overflow:hidden;min-height:300px;display:flex;align-items:center;margin-top:18px;background:var(--dkg-green-dark);}
.dkg-seo-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.dkg-seo-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,16,11,.78) 0%,rgba(8,16,11,.45) 48%,rgba(8,16,11,.12) 100%);z-index:1;}
.dkg-seo-hero-content{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:40px 20px 90px;width:100%;box-sizing:border-box;}
.dkg-seo-hero-context{color:#dCe9df;font-size:.78rem;font-weight:700;letter-spacing:.08em;margin:0 0 10px;}
.dkg-seo-hero-content h1{color:#fff;font-size:2.5rem;line-height:1.12;font-weight:600;margin:0 0 14px;max-width:14ch;}
.dkg-seo-hero-intro{color:#eef3ef;font-size:1rem;line-height:1.55;max-width:56ch;margin:0;}
@media (max-width:720px){ .dkg-seo-hero{min-height:260px;} .dkg-seo-hero-content h1{font-size:1.7rem;} .dkg-seo-hero-content{padding-bottom:76px;} }

/* Zoek-/filtermodule — witte kaart die bewust over de onderkant van de hero valt. */
.dkg-seo-search-wrap{position:relative;z-index:3;margin-top:-62px;background:var(--dkg-surface);border:1px solid var(--dkg-border);border-radius:18px;box-shadow:var(--dkg-shadow);padding:22px;}
.dkg-seo-search-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
.dkg-seo-search-field{display:flex;flex-direction:column;gap:6px;border:1px solid var(--dkg-border);border-radius:12px;padding:9px 14px;min-width:0;}
.dkg-seo-search-label{display:flex;align-items:center;gap:7px;font-size:.76rem;font-weight:700;color:var(--dkg-muted);}
.dkg-seo-search-label .dkg-icon{color:var(--dkg-green-dark);}
.dkg-seo-search-field input,.dkg-seo-search-field select{border:0;outline:0;background:transparent;font-size:.94rem;font-family:inherit;color:var(--dkg-text);padding:0;}
/* Datumvelden zijn visueel aanwezig (conform referentie) maar bewust inactief: er is nog geen
   echte beschikbaarheids-/affiliate-koppeling, dus dit veld mag niet suggereren dat er al op
   datum gezocht wordt. Zelfde positie/grootte als de andere velden — alleen duidelijk inactief. */
.dkg-seo-search-field-disabled{background:var(--dkg-surface-sunken);cursor:not-allowed;}
.dkg-seo-search-field-disabled input{cursor:not-allowed;}
.dkg-seo-search-field-disabled input::placeholder{color:var(--dkg-muted);}
.dkg-seo-search-field-disabled .dkg-seo-search-label{color:var(--dkg-muted);}
.dkg-seo-search-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;padding:14px 22px;font-size:.95rem;}
.dkg-seo-quickfilters{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--dkg-border);}
.dkg-seo-quickfilter{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--dkg-border);border-radius:999px;padding:9px 15px;font-size:.86rem;font-weight:600;color:var(--dkg-text);background:#fff;}
.dkg-seo-quickfilter .dkg-icon{color:var(--dkg-green-dark);}
.dkg-seo-quickfilter-meer{background:var(--dkg-surface-sunken);}
@media (min-width:720px){
	.dkg-seo-search-bar{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,1.1fr) auto;align-items:stretch;}
}

/* Resultatenkop */
.dkg-seo-results-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;}
.dkg-seo-results-head h2{font-size:1.3rem;}
.dkg-sort-form select{border:1px solid var(--dkg-border);border-radius:8px;padding:8px 12px;font-family:inherit;font-size:.88rem;}
.dkg-seo-results-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start;}
.dkg-seo-results-list{display:flex;flex-direction:column;gap:18px;}
.dkg-seo-results-map{position:sticky;top:90px;height:560px;border-radius:16px;overflow:hidden;border:1px solid var(--dkg-border);}
.dkg-seo-results-map #dkg-map{width:100%;height:100%;}
.dkg-seo-geen-resultaten{color:var(--dkg-muted);}
@media (min-width:980px){ .dkg-seo-results-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);} }

/* Grote horizontale resultaatkaart */
.dkg-result-card{display:flex;flex-direction:column;border:1px solid var(--dkg-border);border-radius:16px;overflow:hidden;background:#fff;}
.dkg-result-card-media{position:relative;aspect-ratio:16/10;flex-shrink:0;}
.dkg-result-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-result-card-badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--dkg-green);color:#fff;font-size:.72rem;font-weight:700;padding:5px 11px;border-radius:999px;}
.dkg-result-card .dkg-heart-btn{position:absolute;top:12px;right:12px;}
.dkg-result-card-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;flex:1;}
.dkg-result-card-naam{font-size:1.15rem;font-weight:700;margin:4px 0 10px;}
.dkg-result-card-naam a{color:var(--dkg-text);}
.dkg-result-card-kenmerken{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:0;padding:0;}
.dkg-result-card-kenmerken li{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--dkg-text);}
.dkg-result-card-kenmerken .dkg-icon{color:var(--dkg-green-dark);flex-shrink:0;}
.dkg-result-card-foot{display:flex;flex-direction:column;gap:10px;margin-top:auto;}
.dkg-result-card-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.dkg-result-card-cta .dkg-prijs{font-size:1.1rem;}
.dkg-result-card-cta .dkg-btn-primary{white-space:nowrap;}
/* Op zeer smalle schermen is er geen ruimte voor prijs + knop op één rij zonder dat de knoptekst
   afbreekt — daar (en alleen daar) stapelen we i.p.v. de knoptekst lelijk te laten omklappen.
   Desktop/tablet-weergave van de kaart blijft ongewijzigd. */
@media (max-width:420px){
	.dkg-result-card-cta{flex-direction:column;align-items:stretch;}
	.dkg-result-card-cta .dkg-btn-primary{text-align:center;}
}
@media (min-width:640px){
	.dkg-result-card{flex-direction:row;}
	.dkg-result-card-media{width:260px;aspect-ratio:auto;}
}

/* Populaire bestemmingen */
.dkg-seo-destinations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.dkg-seo-destination-card{display:block;}
.dkg-seo-destination-media{border-radius:14px;overflow:hidden;aspect-ratio:1;background:var(--dkg-surface-sunken);}
.dkg-seo-destination-media img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-seo-destination-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;min-width:0;}
.dkg-seo-destination-naam{font-weight:700;font-size:.96rem;color:var(--dkg-text);min-width:0;overflow-wrap:break-word;}
.dkg-seo-destination-aantal{color:var(--dkg-muted);font-size:.82rem;white-space:nowrap;flex-shrink:0;}
@media (min-width:640px){ .dkg-seo-destinations-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (min-width:980px){ .dkg-seo-destinations-grid{grid-template-columns:repeat(6,minmax(0,1fr));} }

/* Populaire filters */
.dkg-seo-filters-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.dkg-seo-filter-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;border:1px solid var(--dkg-border);border-radius:14px;padding:22px 14px;background:#fff;}
.dkg-seo-filter-icon{color:var(--dkg-green-dark);}
.dkg-seo-filter-label{font-weight:700;font-size:.92rem;color:var(--dkg-text);}
.dkg-seo-filter-aantal{color:var(--dkg-muted);font-size:.8rem;}
@media (min-width:640px){ .dkg-seo-filters-grid{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (min-width:980px){ .dkg-seo-filters-grid{grid-template-columns:repeat(6,minmax(0,1fr));} }

/* SEO-contentblok — structuur volledig dynamisch (zie dkg_seo_content_sections) */
.dkg-seo-content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:start;}
.dkg-seo-content-tekst h2{font-size:1.4rem;margin:28px 0 12px;}
.dkg-seo-content-tekst h2:first-child{margin-top:0;}
.dkg-seo-content-tekst p{color:var(--dkg-text);line-height:1.7;margin:0 0 1em;max-width:62ch;}
.dkg-seo-content-foto{border-radius:16px;overflow:hidden;}
.dkg-seo-content-foto img{width:100%;height:100%;object-fit:cover;display:block;}
@media (min-width:900px){ .dkg-seo-content-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);} }

/* Bestemmingenpagina (/bestemmingen/) — hergebruikt .dkg-land-grid/.dkg-land-card en
   .dkg-seo-destinations-grid/.dkg-seo-destination-card van resp. de homepage en de SEO-
   landingspagina-engine; hieronder alleen wat daar nog niet bestond. */
.dkg-dest-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--dkg-surface-sunken);color:var(--dkg-muted);}
.dkg-seo-destination-media{position:relative;}
.dkg-seo-destination-media .dkg-dest-fallback{position:absolute;}
.dkg-land-card{display:block;}
.dkg-land-label{display:flex;flex-direction:column;gap:2px;}
.dkg-land-label small{color:#e4ece6;font-weight:600;font-size:.76rem;}

.dkg-bestemmingen-cta{position:relative;border-radius:20px;overflow:hidden;background:var(--dkg-green-pale);display:grid;grid-template-columns:minmax(0,1fr);}
.dkg-bestemmingen-cta-media{aspect-ratio:16/10;}
.dkg-bestemmingen-cta-media img{width:100%;height:100%;object-fit:cover;display:block;}
.dkg-bestemmingen-cta-content{padding:28px 24px;}
.dkg-bestemmingen-cta-content h2{font-size:1.5rem;margin-bottom:10px;}
.dkg-bestemmingen-cta-content p{color:var(--dkg-text);line-height:1.6;margin:0 0 20px;max-width:46ch;}
.dkg-bestemmingen-cta-actions{display:flex;flex-wrap:wrap;gap:12px;}
@media (min-width:720px){
	.dkg-bestemmingen-cta{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:stretch;}
	.dkg-bestemmingen-cta-media{aspect-ratio:auto;}
	.dkg-bestemmingen-cta-content{padding:36px 40px;align-self:center;}
}

/* FAQ (seo-faq.php) — compact, native <details>/<summary>, geen extra JS. */
.dkg-seo-faq-list{display:flex;flex-direction:column;gap:10px;max-width:760px;}
.dkg-seo-faq-item{border:1px solid var(--dkg-border);border-radius:14px;padding:16px 20px;background:#fff;}
.dkg-seo-faq-item summary{cursor:pointer;font-weight:700;font-size:.98rem;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.dkg-seo-faq-item summary::-webkit-details-marker{display:none;}
.dkg-seo-faq-item summary::after{content:"+";flex-shrink:0;color:var(--dkg-green-dark);font-size:1.2rem;font-weight:400;}
.dkg-seo-faq-item[open] summary::after{content:"–";}
.dkg-seo-faq-item p{color:var(--dkg-text);line-height:1.6;margin:12px 0 0;}
