.dof-product-shell{--dof-ink:#17241e;--dof-muted:#66736b;--dof-green:#176c4b;--dof-border:#e6ece8;--dof-soft:#f5f8f6;color:var(--dof-ink);font-family:inherit;padding:clamp(24px,5vw,64px) 20px}.dof-product-page{max-width:1120px;margin:0 auto}.dof-product-breadcrumb{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 32px;color:var(--dof-muted);font-size:14px}.dof-product-breadcrumb a{color:inherit;text-decoration:none}.dof-product-breadcrumb a:hover{text-decoration:underline}.dof-product-heading{margin:0 0 28px}.dof-product-category{margin:0 0 10px;color:var(--dof-green);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dof-product-heading h1{max-width:850px;margin:0;color:var(--dof-ink);font-size:clamp(32px,5vw,58px);line-height:1.06;letter-spacing:-.04em}.dof-product-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(24px,4vw,52px);align-items:start}.dof-product-visual{overflow:hidden;min-height:320px;border-radius:24px;background:var(--dof-soft)}.dof-product-visual img{display:block;width:100%;height:100%;min-height:320px;max-height:590px;object-fit:cover}.dof-product-image-placeholder{display:grid;min-height:320px;place-items:center;color:#8da99a;font-size:30px;font-weight:700}.dof-product-summary{padding:28px;border:1px solid var(--dof-border);border-radius:24px;background:#fff;box-shadow:0 18px 50px rgba(23,36,30,.06)}.dof-product-pricebox{margin:0 0 22px}.dof-product-old-price{margin:0 0 4px;color:var(--dof-muted);font-size:15px}.dof-product-price{margin:0;font-size:clamp(32px,4vw,44px);font-weight:750;line-height:1.1;letter-spacing:-.04em}.dof-product-cta{display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;padding:16px 20px;border-radius:13px;background:var(--dof-green);color:#fff!important;font-weight:700;text-decoration:none!important;transition:transform .18s ease,background .18s ease}.dof-product-cta:hover{transform:translateY(-2px);background:#11583d}.dof-product-cta span{font-size:20px}.dof-product-details{display:grid;gap:0;margin:22px 0 0}.dof-product-detail{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:16px;padding:13px 0;border-bottom:1px solid var(--dof-border);font-size:14px}.dof-product-detail:last-child{border-bottom:0}.dof-product-detail dt{color:var(--dof-muted)}.dof-product-detail dd{min-width:0;margin:0;font-weight:600;overflow-wrap:anywhere}.dof-product-detail a{color:var(--dof-green)}.dof-product-description{max-width:820px;margin:48px auto 0;color:#39463f;font-size:17px;line-height:1.75}.dof-product-description h2{margin:0 0 14px;color:var(--dof-ink);font-size:25px;letter-spacing:-.02em}.dof-template-travel .dof-product-heading{margin-bottom:24px}.dof-template-travel .dof-product-visual{border-radius:28px}.dof-template-travel .dof-product-summary{border:0;background:var(--dof-soft);box-shadow:none}.dof-template-travel .dof-product-price{color:var(--dof-green)}.dof-template-compact{padding-top:30px;padding-bottom:40px}.dof-template-compact .dof-product-breadcrumb{margin-bottom:20px}.dof-template-compact .dof-product-heading{margin-bottom:20px}.dof-template-compact .dof-product-layout{grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);gap:28px}.dof-template-compact .dof-product-visual,.dof-template-compact .dof-product-visual img{min-height:240px;max-height:420px}.dof-template-compact .dof-product-summary{padding:22px;border-radius:16px}.dof-template-compact .dof-product-description{margin-top:30px}.dof-product-shell .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.dof-product-shell{padding:25px 16px}.dof-product-breadcrumb{margin-bottom:22px}.dof-product-layout,.dof-template-compact .dof-product-layout{grid-template-columns:1fr;gap:18px}.dof-product-visual,.dof-product-visual img{min-height:230px;max-height:390px}.dof-product-summary,.dof-template-compact .dof-product-summary{padding:21px;border-radius:18px}.dof-product-description{margin-top:32px;font-size:16px}.dof-product-detail{grid-template-columns:minmax(92px,.7fr) minmax(0,1.3fr);gap:12px}}@media(prefers-reduced-motion:reduce){.dof-product-cta{transition:none}}

/* --- 1.3.0 ---------------------------------------------------------------
   Layout: de specificatiekaart is veel hoger dan de foto, waardoor er een
   leeg vlak onder de foto ontstond en de beschrijving (gecentreerd, eigen
   max-width) niet uitlijnde met de kolommen erboven. .dof-product-page wordt
   nu zelf het grid en .dof-product-layout krijgt display:contents, zodat de
   beschrijving onder de foto in kolom 1 valt en de kaart sticky meescrolt. */
.dof-product-page{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);column-gap:clamp(24px,4vw,52px);align-items:start}
.dof-product-breadcrumb{grid-column:1/-1;grid-row:1}
.dof-product-heading{grid-column:1/-1;grid-row:2}
.dof-product-layout{display:contents}
.dof-product-visual{grid-column:1;grid-row:3}
.dof-product-gallery{grid-column:1;grid-row:4}
.dof-product-description{grid-column:1;grid-row:5;max-width:none;margin:40px 0 0}
.dof-product-summary{grid-column:2;grid-row:3/span 3;position:sticky;top:24px}
/* Woordenlijsten (faciliteiten, kenmerken) als losse labels. */
.dof-product-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.dof-product-chips li{padding:4px 10px;border:1px solid var(--dof-border);border-radius:999px;background:#fff;font-size:13px;font-weight:500;line-height:1.5}
.dof-template-travel .dof-product-chips li{background:#fff}
/* Sterren en beoordeling. */
.dof-product-stars{color:#e8a53a;font-size:16px;letter-spacing:2px}
.dof-product-stars .dof-star-empty{color:#d8ded9}
@media(max-width:760px){
  .dof-product-page{display:block}
  .dof-product-summary{position:static}
  .dof-product-description{margin-top:32px}
}

/* --- 1.4.0: aanbiederslogo, galerij, vanaf-prijs en prijstoelichting ----- */
.dof-product-provider{margin:0 0 18px}
.dof-product-provider img{display:block;width:auto;height:auto;max-width:150px;max-height:46px;object-fit:contain}
/* Extra beelden uit de feed, onder de hoofdfoto. */
.dof-product-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}
.dof-product-gallery img{display:block;width:100%;height:92px;border-radius:12px;background:var(--dof-soft);object-fit:cover}
/* "vanaf" hoort bij de prijs maar mag die niet overstemmen. */
.dof-product-from{color:var(--dof-muted);font-size:16px;font-weight:600;letter-spacing:0;vertical-align:middle}
/* Prijstoelichting: tekst staat altijd in de pagina, wordt zichtbaar bij
   hover en toetsenbordfocus. De tooltip hangt aan de prijsbox, niet aan het
   icoon, zodat hij binnen de kaart blijft in plaats van eruit te steken. */
.dof-product-pricebox{position:relative}
.dof-price-note{display:inline-flex;margin-left:8px;vertical-align:middle}
/* hello-elementor claimt in reset.css elk button-element (roze rand, eigen
   breedte en padding). Vandaar de extra specificiteit en appearance:none. */
.dof-product-shell button.dof-price-note-btn{-webkit-appearance:none;appearance:none;display:grid;place-items:center;width:19px;height:19px;min-width:0;padding:0;border:1px solid var(--dof-border);border-radius:50%;background:#fff;color:var(--dof-muted);font-family:inherit;font-size:11px;font-weight:600;line-height:1;white-space:nowrap;cursor:help;transition:none}
.dof-product-shell button.dof-price-note-btn:hover,.dof-product-shell button.dof-price-note-btn:focus-visible{background:#fff;border-color:var(--dof-green);color:var(--dof-green)}
.dof-price-note-text{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:5;padding:11px 13px;border-radius:11px;background:var(--dof-ink);color:#fff;font-size:12px;font-weight:400;line-height:1.5;letter-spacing:0;text-align:left;white-space:normal;opacity:0;visibility:hidden;transition:opacity .15s ease}
.dof-price-note-btn:hover~.dof-price-note-text,.dof-price-note-btn:focus-visible~.dof-price-note-text{opacity:1;visibility:visible}
@media(prefers-reduced-motion:reduce){.dof-price-note-text{transition:none}}
/* Minder lucht boven het kruimelpad; de sitekop sluit er al met een lijn op aan. */
.dof-product-shell{padding-top:clamp(16px,2vw,26px)}
.dof-product-breadcrumb{margin-bottom:26px}
@media(max-width:760px){.dof-product-shell{padding-top:16px}.dof-product-breadcrumb{margin-bottom:18px}}

/* === 1.6.0 — Reisdetail =====================================================
   Eigen opbouw voor het sjabloon "travel", in de huisstijl van de
   coming-soon-pagina (donkergroen #223e2b, lime #c8ef84, zachtgroen #eef3e6).
   De standaard- en compacte sjablonen gebruiken deze regels niet.
   ========================================================================== */

.dof-travel{--dof-deep:#223e2b;--dof-lime:#c8ef84;--dof-leaf:#71944d;--dof-card:#eef3e6}
.dof-travel-sprite{position:absolute;width:0;height:0;overflow:hidden}
.dof-travel svg{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dof-travel-page{max-width:1120px;margin:0 auto}

.dof-travel-crumbs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 26px;color:var(--dof-muted);font-size:14px}
.dof-travel-crumbs a{color:inherit;text-decoration:none}
.dof-travel-crumbs a:hover{text-decoration:underline}

.dof-travel-intro{margin:0 0 26px}
.dof-travel-intro h1{margin:0;color:var(--dof-ink);font-size:clamp(34px,5vw,58px);font-weight:750;line-height:1.04;letter-spacing:-.04em}
.dof-travel-lead{margin:12px 0 0;color:#4d5c50;font-size:clamp(17px,2vw,21px);line-height:1.45}

/* Labels: alleen gevuld met wat de feed levert (sterren, plaats, land). */
.dof-travel-pills{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.dof-travel-pills li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:600}
.dof-travel-pills svg{width:17px;height:17px}
.dof-travel-pills .is-stars{background:#fdf4e3;color:#8a6a1f}
.dof-travel-pills .is-stars svg{fill:#e8a53a;stroke:#e8a53a}
.dof-travel-pills .is-place{background:var(--dof-card);color:#4a6340}
.dof-travel-pills .is-country{background:#e4efe7;color:var(--dof-green)}

/* Beeld: één foto vult de breedte; zijn er extra foto's gekoppeld, dan
   schuift de hoofdfoto naar links met een strook eronder of ernaast. */
.dof-travel-media{margin:0 0 clamp(26px,4vw,42px)}
.dof-travel-hero{overflow:hidden;margin:0;border-radius:26px;background:var(--dof-soft)}
.dof-travel-hero img{display:block;width:100%;height:clamp(260px,42vw,470px);object-fit:cover}
.dof-travel-media.has-thumbs{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.dof-travel-thumbs{display:grid;gap:14px;grid-auto-rows:1fr}
.dof-travel-thumbs img{display:block;width:100%;height:100%;min-height:120px;border-radius:20px;background:var(--dof-soft);object-fit:cover}

.dof-travel-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(26px,4vw,54px);align-items:start}
.dof-travel-main h2{margin:0 0 14px;color:var(--dof-ink);font-size:clamp(21px,2.4vw,27px);font-weight:700;letter-spacing:-.02em}
.dof-travel-main h2:not(:first-child){margin-top:38px}
.dof-travel-text{color:#39463f;font-size:17px;line-height:1.75}
.dof-travel-text p{margin:0 0 1em}
.dof-travel-text p:last-child{margin-bottom:0}

/* Kenmerken: één zin uit de feed, als uitgelichte regel. */
.dof-travel-highlight{display:flex;align-items:center;gap:10px;margin:22px 0 0;padding:14px 16px;border-radius:14px;background:var(--dof-card);color:#3d5137;font-size:15px;font-weight:600}
.dof-travel-highlight svg{fill:var(--dof-leaf);stroke:var(--dof-leaf)}

.dof-travel-facilities{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 20px;margin:0;padding:0;list-style:none}
.dof-travel-facilities li{display:flex;align-items:center;gap:11px;color:#36443c;font-size:15px;font-weight:500}
.dof-travel-facilities svg{color:var(--dof-green)}

.dof-travel-specs{display:grid;gap:0;margin:0}
.dof-travel-specs>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:16px;padding:13px 0;border-bottom:1px solid var(--dof-border);font-size:14px}
.dof-travel-specs>div:last-child{border-bottom:0}
.dof-travel-specs dt{color:var(--dof-muted)}
.dof-travel-specs dd{min-width:0;margin:0;font-weight:600;overflow-wrap:anywhere}

/* Boekkaart */
.dof-travel-card{position:sticky;top:24px;padding:26px;border-radius:24px;background:var(--dof-card)}
.dof-travel-provider{margin:0 0 18px}
.dof-travel-provider img{display:block;width:auto;height:auto;max-width:140px;max-height:42px;object-fit:contain}
.dof-travel-head{display:grid;gap:8px;padding-bottom:18px;border-bottom:1px solid #d8e2d2}
.dof-travel-rating{display:flex;align-items:center;gap:8px;margin:0;color:var(--dof-ink);font-size:21px;font-weight:700;letter-spacing:-.02em}
.dof-travel-rating svg{fill:#e8a53a;stroke:#e8a53a}
.dof-travel-rating span{color:var(--dof-muted);font-size:15px;font-weight:500}
.dof-travel-loc{display:flex;align-items:center;gap:8px;margin:0;color:#4d5c50;font-size:15px;font-weight:600}
.dof-travel-facts{display:grid;gap:13px;margin:18px 0 0;padding:0;list-style:none}
.dof-travel-facts li{display:flex;align-items:center;gap:11px;color:#36443c;font-size:15px;font-weight:600}
.dof-travel-facts svg{color:var(--dof-leaf)}

.dof-travel-pricebox{position:relative;margin:22px 0 0;padding-top:20px;border-top:1px solid #d8e2d2}
.dof-travel-old{margin:0 0 2px;color:var(--dof-muted);font-size:15px}
.dof-travel-from{margin:0;color:var(--dof-muted);font-size:14px;font-weight:600}
.dof-travel-price{display:flex;align-items:baseline;gap:8px;margin:2px 0 0;color:var(--dof-green)}
.dof-travel-price strong{font-size:clamp(34px,4vw,46px);font-weight:750;line-height:1.05;letter-spacing:-.04em}
.dof-travel-pp{color:var(--dof-muted);font-size:16px;font-weight:600}
.dof-travel-note{display:flex;align-items:center;gap:6px;margin:8px 0 0;color:var(--dof-muted);font-size:13px}

.dof-travel-cta{display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;margin-top:20px;padding:17px 22px;border-radius:14px;background:var(--dof-green);color:#fff!important;font-size:16px;font-weight:700;text-decoration:none!important;transition:transform .18s ease,background .18s ease}
.dof-travel-cta:hover{transform:translateY(-2px);background:#11583d}

@media(max-width:860px){
  .dof-travel-body{grid-template-columns:1fr;gap:28px}
  .dof-travel-card{position:static}
  .dof-travel-media.has-thumbs{grid-template-columns:1fr}
  .dof-travel-thumbs{grid-auto-flow:column;grid-auto-columns:minmax(140px,1fr);grid-auto-rows:auto}
  .dof-travel-thumbs img{height:120px}
}
@media(prefers-reduced-motion:reduce){.dof-travel-cta{transition:none}}

/* === 1.7.0 — Categorie-overzicht met filters ===============================
   Zelfde huisstijl als het reisdetail. Links een filterkolom, rechts een grid
   van kaarten. Filteren/sorteren gebeurt in de browser (assets/listing.js).
   ========================================================================== */

.dof-listing-page{max-width:1120px;margin:0 auto}
.dof-listing-intro{margin:0 0 clamp(22px,3vw,34px)}
.dof-listing-intro h1{margin:0;color:var(--dof-ink);font-size:clamp(32px,5vw,52px);font-weight:750;line-height:1.05;letter-spacing:-.04em}
.dof-listing-empty{color:var(--dof-muted);font-size:17px}

.dof-listing-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(22px,3vw,40px);align-items:start}

/* Filterkolom. Zonder JavaScript heeft filteren geen effect, dus verbergen we
   de bedieningselementen tot het script de class dof-has-js heeft gezet. */
.dof-filters{position:sticky;top:24px;display:none;flex-direction:column;gap:16px;padding:22px;border-radius:20px;background:var(--dof-card,#eef3e6)}
.dof-has-js .dof-filters{display:flex}
.dof-filters-head{display:flex;align-items:center;gap:9px;color:var(--dof-ink);font-size:16px}
.dof-filters-head svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.dof-filters-head strong{font-weight:700}
.dof-filter-reset{margin-left:auto;padding:0;border:0;background:none;color:var(--dof-green);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.dof-filter-reset:hover{text-decoration:underline}
.dof-filter-field{display:flex;flex-direction:column;gap:7px;margin:0;border:0;padding:0;color:#4d5c50;font-size:13px;font-weight:600}
.dof-filter-field>span,.dof-filter-field>legend{padding:0;color:#4d5c50;font-size:13px;font-weight:600}
.dof-filter-field input[type=search],.dof-filter-field select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d3ddc7;border-radius:11px;background:#fff;color:var(--dof-ink);font:inherit;font-size:14px}
.dof-filter-field input[type=search]:focus,.dof-filter-field select:focus{outline:2px solid var(--dof-leaf,#71944d);outline-offset:1px;border-color:transparent}
.dof-filter-stars{display:flex;flex-direction:column;gap:8px}
.dof-filter-stars label{display:flex;align-items:center;gap:8px;color:#e8a53a;font-size:15px;font-weight:500;cursor:pointer}
.dof-filter-stars input{accent-color:var(--dof-green);width:16px;height:16px}
.dof-filter-price input[type=range]{width:100%;accent-color:var(--dof-green)}
.dof-filter-price strong{color:var(--dof-green)}

.dof-listing-count{margin:0 0 16px;color:var(--dof-muted);font-size:14px;font-weight:600}
.dof-listing-none{margin:30px 0;color:var(--dof-muted);font-size:16px}

.dof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:clamp(16px,2vw,24px)}

/* Kaart */
.dof-card{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:#fff;border:1px solid var(--dof-border);text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}
.dof-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(23,36,30,.1)}
.dof-card-media{position:relative;aspect-ratio:3/2;background:var(--dof-soft)}
.dof-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.dof-card-noimg{display:grid;place-items:center;height:100%;color:#8da99a;font-size:20px;font-weight:700}
.dof-card-stars{position:absolute;left:12px;bottom:12px;padding:5px 10px;border-radius:999px;background:rgba(23,36,30,.72);color:#ffd27a;font-size:13px;letter-spacing:1px;backdrop-filter:blur(2px)}
.dof-card-draft{position:absolute;right:12px;top:12px;padding:4px 9px;border-radius:999px;background:#b4532a;color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em}
.dof-card-body{display:flex;flex-direction:column;gap:9px;padding:16px 17px 18px}
.dof-card-loc{display:flex;align-items:center;gap:6px;margin:0;color:var(--dof-muted);font-size:13px;font-weight:600}
.dof-card-loc svg{width:15px;height:15px;flex:none;fill:none;stroke:var(--dof-leaf,#71944d);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dof-card-title{margin:0;color:var(--dof-ink);font-size:19px;font-weight:700;line-height:1.2;letter-spacing:-.02em}
.dof-card-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin:0;padding:0;list-style:none}
.dof-card-meta li{display:flex;align-items:center;gap:6px;color:#4d5c50;font-size:13px}
.dof-card-meta svg{width:15px;height:15px;flex:none;fill:none;stroke:var(--dof-leaf,#71944d);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dof-card-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:4px;padding-top:12px;border-top:1px solid var(--dof-border)}
.dof-card-rating{display:inline-flex;align-items:center;gap:6px;color:var(--dof-ink);font-size:15px;font-weight:700}
.dof-card-rating svg{width:16px;height:16px;flex:none;fill:#e8a53a;stroke:#e8a53a}
.dof-card-price{color:var(--dof-green);font-size:13px;text-align:right}
.dof-card-price span{display:block;color:var(--dof-muted);font-size:11px;font-weight:600}
.dof-card-price strong{font-size:20px;font-weight:750;letter-spacing:-.03em}

@media(max-width:860px){
  .dof-listing-layout{grid-template-columns:1fr}
  .dof-filters{position:static}
}
