/* last-minute-vakantie-boeken.nl 2026. Design: docs/lmvb-design-direction.md, prototype design/lmvb-prototype.css. Homepage-only rules (hero, atlas, strip, logos): front.css. */
@font-face{font-family:"Barlow Semi Condensed";src:url(https://www.last-minute-vakantie-boeken.nl/wp-content/themes/lmvb/assets/fonts/barlow-semi-condensed-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(https://www.last-minute-vakantie-boeken.nl/wp-content/themes/lmvb/assets/fonts/source-sans-3-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(https://www.last-minute-vakantie-boeken.nl/wp-content/themes/lmvb/assets/fonts/source-sans-3-600.woff2) format("woff2");font-weight:600;font-display:swap}
/* Metric-matched fallbacks (measured against the woff2 files) so the swap does not move text. */
@font-face{font-family:"Barlow fallback";src:local("Arial Narrow Bold"),local("ArialNarrow-Bold"),local("Liberation Sans Narrow Bold"),local("LiberationSansNarrow-Bold");font-weight:600;size-adjust:101%;ascent-override:99%;descent-override:20%;line-gap-override:0%}
@font-face{font-family:"Source Sans fallback";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans");size-adjust:94%;ascent-override:109%;descent-override:42%;line-gap-override:0%}

:root{
  --inkt:#1F1B27;--zacht:#524A60;--avond:#2B1747;--viool:#5B37A6;--viool-d:#472A86;
  --zon:#FF9E7D;--zon-d:#F6835E;--zon-rand:#C2553A;--veld:#F4F0FA;--lijn:#DFD7EC;--rand:#B9ACCF;--invoer:#8E85A0;--wit:#FFFFFF;
  --avond-tekst:#E6DDF5;--avond-zacht:#B4A6CE;--avond-foto:rgba(43,23,71,.82);--staaf:#D3C8E6;--schaduw:31,27,39;
  --kop:"Barlow Semi Condensed","Barlow fallback","Arial Narrow",sans-serif;
  --tekst:"Source Sans 3","Source Sans fallback",Arial,sans-serif;
  --max:1200px;--gut:16px;--sec:48px;--r:6px;
  /* spacing scale: every margin in the content column is one of these */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;background:var(--wit);color:var(--inkt);font:400 17px/1.6 var(--tekst);font-variant-numeric:lining-nums}
img{max-width:100%;height:auto;display:block}
a{color:var(--viool);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--viool-d);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--zon);outline-offset:2px;box-shadow:0 0 0 5px var(--inkt)}
h1,h2,h3{font-family:var(--kop);font-weight:600;line-height:1.1;margin:0;letter-spacing:0;text-wrap:balance}
h1{font-size:34px}
h2{font-size:28px}
h3{font-size:21px;line-height:1.2}
p{margin:0 0 1em}
b,strong{font-weight:600}
.wrap{max-width:calc(var(--max) + 2*var(--gut));margin:0 auto;padding:0 var(--gut)}
.band{padding:var(--sec) 0}
.veld{background:var(--veld)}
.kop>a{display:inline-block;padding:10px 0}
.kop{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 24px;margin-bottom:20px}
.lead{margin:-8px 0 20px;max-width:62ch;color:var(--zacht)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:8px;top:-60px;z-index:50;padding:10px 16px;background:var(--inkt);color:#fff;border-radius:var(--r)}
.skip:focus{top:8px;color:#fff}

/* inline SVG colours (wordmark tile, temperature sun) follow the tokens */
.i-tegel{fill:var(--viool)}.i-zon{fill:var(--zon)}.i-zonrand{stroke:var(--zon-rand)}

/* buttons */
.knop{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 22px;border:2px solid var(--viool);border-radius:var(--r);background:var(--viool);color:#fff;font:600 17px/1.2 var(--tekst);text-align:center;text-decoration:none;cursor:pointer}
.knop:hover{background:var(--viool-d);border-color:var(--viool-d);color:#fff}
.knop-intern{background:var(--wit);color:var(--viool)}
.knop-intern:hover{background:var(--veld);border-color:var(--viool-d);color:var(--viool-d)}
.uit{flex:none;width:14px;height:14px}


/* header */
.kopbalk{position:relative;z-index:20;background:var(--wit);border-bottom:1px solid var(--lijn)}
.kopbalk .wrap{display:flex;align-items:center;gap:8px;min-height:60px}
.merk{display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;color:var(--inkt);text-decoration:none;font:600 clamp(15px,(100vw - 164px)*.0778,19px)/1 var(--kop);white-space:nowrap}
.merk svg{flex:none;width:28px;height:28px}
.merk span span{color:var(--viool)}
.merk:hover{color:var(--inkt)}
.icoon{flex:none;display:grid;place-items:center;width:44px;height:44px;margin-left:auto;padding:0;border:0;border-radius:var(--r);background:none;color:var(--inkt);cursor:pointer}
.icoon:hover{background:var(--veld)}
.icoon+.icoon{margin:0 -10px 0 0}
.menu{position:absolute;left:0;right:0;top:100%;background:var(--wit);border-bottom:1px solid var(--lijn);padding:4px var(--gut) 20px;box-shadow:0 14px 28px rgba(var(--schaduw),.14)}
.menu>ul{list-style:none;margin:0;padding:0}
.menu>ul>li{border-bottom:1px solid var(--lijn)}
.menu>ul>li>a,.menu>ul>li>button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:0;border:0;background:none;color:var(--inkt);font:600 18px/1.2 var(--tekst);text-decoration:none;cursor:pointer}
.pijl{width:8px;height:8px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);margin-left:10px}
[aria-expanded=true] .pijl{transform:translateY(2px) rotate(-135deg)}
.mega{columns:2;column-gap:20px;padding:4px 0 16px}
.mega div{break-inside:avoid;padding:6px 0 10px}
.mega h3{font-size:18px}
.mega h3 a{display:block;padding:6px 0;color:var(--inkt);text-decoration:none}
.mega ul{list-style:none;margin:0;padding:0}
.mega li a{display:block;padding:7px 0;color:var(--zacht);font-size:16px;line-height:1.3;text-decoration:none}
.mega a:hover{color:var(--viool);text-decoration:underline}
.zoekpaneel{position:absolute;left:0;right:0;top:100%;padding:16px 0;background:var(--wit);border-bottom:1px solid var(--lijn);box-shadow:0 14px 28px rgba(var(--schaduw),.14)}
.zoek{display:flex;gap:8px}
.zoek input{flex:1;min-width:0;min-height:48px;padding:0 16px;border:1px solid var(--invoer);border-radius:var(--r);background:var(--wit);color:var(--inkt);font:inherit}
.zoek input:focus{outline:3px solid var(--zon);outline-offset:0;border-color:var(--inkt);box-shadow:none}


.temp{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:15px;line-height:1.2;font-variant-numeric:tabular-nums}
.temp b{font-weight:600}
.temp svg{flex:none}

/* resort cards (photo, name, country): home strip and the resort grid */
.plaats{display:block;color:var(--inkt);text-decoration:none}
.plaats img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);margin-bottom:8px}
.plaats b{display:block;font:600 21px/1.15 var(--kop)}
.plaats span{color:var(--zacht);font-size:15px}
.plaats:hover{color:var(--inkt)}
.plaats:hover b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}



/* footer */
.voet{background:var(--avond);color:var(--avond-tekst);padding:44px 0 28px;font-size:16px}
.voet .merk{color:#fff;margin-bottom:24px}
.voet .merk span span{color:var(--zon)}
.voet-kols{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px}
.voet h2{margin-bottom:6px;color:#fff;font-size:19px}
.voet ul{margin:0;padding:0;list-style:none}
.voet li a{display:inline-flex;align-items:center;min-height:44px;padding:4px 0;line-height:1.2;color:var(--avond-tekst);text-decoration:none}
.voet li a:hover{color:#fff;text-decoration:underline}
.voet .ook small{display:block;margin-top:-6px;color:var(--avond-zacht);font-size:14px}
.copy{margin:36px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:var(--avond-zacht);font-size:14px}
.copy a{color:inherit}

/* inner: title band, facts, layout */
.titelband{background:var(--veld);padding:16px 0 24px;border-bottom:1px solid var(--lijn)}
.kruimels{margin-bottom:8px;color:var(--zacht);font-size:15px;text-wrap:pretty}
.kruimels a{display:inline-block;padding:4px 0;color:var(--zacht)}
.titelband h1{font-size:36px}
.titelband .intro{margin:8px 0 0;max-width:60ch;font-size:18px}
.feiten{display:flex;flex-wrap:wrap;gap:8px 24px;margin:16px 0 0;padding:0;list-style:none;font-size:16px;line-height:1.3}
.feiten li{display:flex;align-items:center;gap:8px}
.feiten svg{flex:none;width:1.125em;height:1.125em}
.feiten .temp{margin:0;font-size:inherit;line-height:inherit}
.sprong{display:flex;gap:8px;margin:8px calc(-1*var(--gut)) -8px;padding:8px var(--gut);list-style:none;overflow-x:auto;scrollbar-width:none}
.sprong a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--rand);border-radius:var(--r);background:var(--wit);color:var(--inkt);font-weight:600;white-space:nowrap;text-decoration:none}
.sprong a:hover{border-color:var(--viool);color:var(--viool)}
.opbouw{display:grid;gap:44px;padding-top:24px;padding-bottom:var(--sec)}
.inhoud{min-width:0;display:flow-root}
.inhoud p,.inhoud ul,.inhoud ol{margin:0 0 var(--s4)}
.inhoud p,.lead,.titelband .intro,.rij p{text-wrap:pretty}
.inhoud h2{margin:var(--s7) 0 var(--s3);font-size:28px}
.inhoud h3,.inhoud h4{margin:var(--s5) 0 var(--s1)}
.inhoud h4{font:600 19px/1.25 var(--tekst)}
/* blocks: one margin above and below; the first and last child of the column sit flush */
.inhoud .kader,.inhoud .tt-feed-offers,.inhoud .klimaat,.inhoud .zus,.inhoud .resorts,.inhoud .operators,.inhoud iframe{margin-block:var(--s6)}
/* a frameless block that opens with its own h2 (offers, resort grid) is a section: the h2's 48 above it */
.inhoud .tt-feed-offers,.inhoud .resorts{margin-top:var(--s7)}
.inhoud>:first-child,.inhoud>:first-child>:first-child,.inhoud>:first-child>:first-child>:first-child{margin-top:0!important}
.inhoud>:last-child{margin-bottom:0}
/* [knop] inside a paragraph (after text, a <br> or alone) or loose in the column: its own line, the text gap above */
.inhoud .btn.knop{display:flex;width:fit-content;max-width:100%;margin:var(--s5) 0}
.inhoud .btn.knop+br{display:none}
.uitgelicht{width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:var(--r);margin-bottom:24px}

/* inner: climate strip */
.klimaat{margin:var(--s6) 0;padding:18px 16px 14px;border:1px solid var(--lijn);border-radius:var(--r)}
.klimaat h2{margin:0 0 2px!important;font-size:22px!important}
.klimaat>p{margin:0 0 14px;color:var(--zacht);font-size:15px}
.maanden{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;align-items:end;height:132px;margin:0;padding:0;list-style:none}
.maanden li{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:13px;line-height:1.2;font-variant-numeric:tabular-nums}
.maanden i{display:block;width:100%;max-width:28px;height:calc(var(--t)*3px);margin:3px 0 4px;border-radius:4px 4px 0 0;background:var(--staaf)}
.maanden .nu i{background:var(--zon)}
.maanden .nu{font-weight:600}
.maanden b{font-weight:400}
.maanden .nu b{font-weight:600}
.klimaat small{display:block;margin-top:14px;color:var(--zacht);font-size:13px}

/* inner: [kader] */
.kader{margin:var(--s6) 0;padding:16px 18px;border-left:4px solid var(--viool);border-radius:0 var(--r) var(--r) 0;background:var(--veld)}
.kader-tip{border-left-color:var(--zon)}
.kader-titel{margin:0 0 4px;font:600 19px/1.25 var(--kop)}
.kader p:last-child{margin:0}

/* inner: [tt-feed] offers (theme styles the plugin's markup; see the spec) */
.tt-feed-offers>h2{margin:0 0 4px!important}
.bijgewerkt{margin:0 0 14px;font-size:15px;color:var(--zacht)}
.tt-feed-offer{display:grid;grid-template-columns:88px 1fr;grid-template-rows:auto 1fr;gap:0 14px;padding:14px 0;border-top:1px solid var(--lijn)}
.tt-feed-offer:last-of-type{border-bottom:1px solid var(--lijn)}
.tt-feed-offer h3{grid-column:2;margin:0!important;font-size:19px}
.tt-feed-offer-content{display:contents}
.tt-feed-offer-image{grid-column:1;grid-row:1/3;background:var(--veld);width:88px;aspect-ratio:1;object-fit:cover;border-radius:4px}
.tt-feed-offer-image.geen-foto{display:grid;place-items:center;color:var(--rand)}
.geen-foto svg{width:28px;height:28px}
.tt-feed-offer-content>div{grid-column:2}
.tt-feed-offer-content p{margin:0}
.tt-feed-offer-content p:empty{display:none}
.tt-feed-offer .plaats-regel{color:var(--zacht);font-size:15px}
.tt-feed-offer .knop{justify-content:space-between;width:100%;max-width:260px;margin-top:8px;min-height:48px;padding:8px 14px;font-weight:400;font-size:16px}
.tt-feed-offer .knop strong{font-size:19px;font-weight:600;white-space:nowrap}

/* inner: operators ([reisorganisatie]) */
.operators{margin-top:var(--s6)}
.operator{display:grid;grid-template-columns:1fr auto;grid-template-areas:"kop logo" "tekst tekst" "knop knop";align-items:center;gap:8px 16px;padding:20px 0;border-top:1px solid var(--lijn)}
.operator-kop{grid-area:kop}
.operator-text{grid-area:tekst}
.operator .knop{grid-area:knop}
.operator-logo{grid-area:logo;justify-self:end}
.operator:last-child{border-bottom:1px solid var(--lijn)}
/* The pages keep their <hr> between [reisorganisatie] sections (editors place it); the section border is the line. */
.inhoud .operator+hr,.inhoud hr:has(+.operator){display:none}
.operator-kop{display:flex;align-items:center;justify-content:space-between;gap:16px}
.operator h3,.operator h2{margin:0!important;font-size:22px}
.operator-logo img{max-height:32px;max-width:112px;width:auto;object-fit:contain}
.operator-text p{margin:0 0 .6em}
.operator .knop{justify-self:start}

/* inner: resort cards inside the content */
.plaatsen-raster{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 12px;margin:16px 0 0;padding:0;list-style:none}
.plaatsen-raster .plaats b{font-size:19px}
.plaatsen-raster .plaats span{font-size:14px}
.ook-plaatsen{margin:16px 0 0}
.ook-plaatsen a{display:inline-block;padding:6px 0}

/* inner: sister site */
.zus{display:grid;gap:4px;margin:var(--s6) 0 0;padding:18px;border:1px solid var(--lijn);border-radius:var(--r)}
.zus h2{margin:0!important;font-size:22px!important}
.zus p{margin:0}

/* inner: sidebar section nav */
.zijbalk .sectie-titel,.section-nav .side-title{margin:0 0 6px;font:600 21px/1.2 var(--kop)}
.secnav ul,.section-nav ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--lijn)}
.secnav li,.section-nav li{border-bottom:1px solid var(--lijn)}
.secnav a,.section-nav a{display:flex;align-items:center;min-height:44px;padding:6px 12px;color:var(--inkt);text-decoration:none}
.secnav a:hover,.section-nav a:hover{color:var(--viool);text-decoration:underline}
.secnav li>[aria-current],.section-nav li>[aria-current]{border-left:4px solid var(--zon);padding-left:8px;background:var(--veld);font-weight:600}
.secnav .sub a,.section-nav ul ul a{padding-left:28px;font-size:16px}

/* archive and search rows */
.rijen{margin:0;padding:0;list-style:none}
.rij{display:grid;grid-template-columns:96px 1fr;gap:4px 14px;padding:16px 0;border-top:1px solid var(--lijn)}
.rij:last-child{border-bottom:1px solid var(--lijn)}
/* A list's first row needs no line above it: there is nothing to separate it from. */
.rij:first-child,.operator:first-child{border-top:0;padding-top:0}
.rij img{grid-row:1/4;width:96px;aspect-ratio:1;object-fit:cover;border-radius:4px}
.rij h2,.rij h3{margin:0!important;font-size:21px!important}
.rij h2 a,.rij h3 a{color:var(--inkt);text-decoration:none}
.rij h2 a:hover,.rij h3 a:hover{color:var(--viool);text-decoration:underline}
.rij .datum{color:var(--zacht);font-size:15px}
.rij p{margin:0;font-size:16px}
.paginering{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}
.paginering a,.paginering span{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--rand);border-radius:var(--r);color:var(--inkt);text-decoration:none}
.paginering [aria-current]{background:var(--inkt);border-color:var(--inkt);color:#fff}
.paginering a:hover{border-color:var(--viool);color:var(--viool)}

/* 404 */
.niet-gevonden .zoek{max-width:520px;margin:20px 0 0}

/* section nav (shared markup): the root is the title, deeper levels indent */
.section-nav .side-title a{display:block;padding:4px 0;color:var(--inkt);text-decoration:none}
.section-nav ul ul{border-top:1px solid var(--lijn)}
.section-nav ul ul li:last-child{border-bottom:0}
.section-nav ul ul ul a{padding-left:44px;font-size:15px}

/* header: menu extras */
.menu>ul>li>a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.mega h3 a[aria-current],.mega li a[aria-current]{color:var(--viool);font-weight:600}

/* title band extras */
.kruimels span[aria-current],.kruimels .breadcrumb_last{color:var(--zacht)}
.titelband .meta{margin:10px 0 0;color:var(--zacht);font-size:16px}
.titelband .meta a{color:var(--zacht)}
.titelband .zoek{max-width:560px;margin-top:16px}
.opbouw.smal{grid-template-columns:minmax(0,1fr)}

/* content: lists, tables, quotes, Avada-era markup */
.inhoud :where(ul,ol){padding-left:0}
.inhoud :where(ul,ol):not([class]){padding-left:1.3em}
.inhoud :where(ul,ol):not([class])>li{margin:var(--s1) 0}
.inhoud blockquote{margin:1.4em 0;padding:4px 0 4px 18px;border-left:4px solid var(--lijn);color:var(--zacht)}
.inhoud table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:16px}
.inhoud th,.inhoud td{padding:8px 10px;border-bottom:1px solid var(--lijn);text-align:left;vertical-align:top}
.inhoud hr{height:1px;margin:28px 0;border:0;background:var(--lijn)}
.inhoud img{border-radius:4px}
.inhoud img.alignright,.inhoud .wp-caption.alignright{float:right;max-width:min(45%,300px);margin:.3em 0 .8em 20px}
.inhoud img.alignleft,.inhoud .wp-caption.alignleft{float:left;max-width:min(45%,300px);margin:.3em 20px .8em 0}
.inhoud img.aligncenter{margin:0 auto 1em}
.inhoud img.is-wide{width:100%;margin:0 0 var(--s4);border-radius:var(--r)}
.inhoud .wp-caption{max-width:100%;margin:0 0 var(--s4)}
.inhoud .wp-caption img{margin:0}
.inhoud .wp-caption-text{margin:6px 0 0;color:var(--zacht);font-size:15px}
.inhoud h2,.inhoud h3,.inhoud hr,.inhoud .breed,.inhoud .kader,.inhoud .knop{clear:both}
.inhoud span[style]{color:inherit!important;font-size:inherit!important;text-decoration:inherit!important}
.inhoud img[src*="tradetracker.net"][width="1"],.inhoud img[src*="ti.tradetracker.net"]{position:absolute;width:1px;height:1px;opacity:0}
.inhoud iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:var(--r)}
.inhoud .embed-kaart{aspect-ratio:4/3}
.btn.knop:not(.knop-intern)::after{content:"";flex:none;width:14px;height:14px;background:currentColor;-webkit-mask:var(--uit) center/contain no-repeat;mask:var(--uit) center/contain no-repeat}
:root{--uit:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h5'/%3E%3C/svg%3E")}

/* [tt-feed]: the h2 colour comes from the theme (the plugin's inline white is removed in compat.php) */
.tt-feed-offers>h2{color:var(--inkt)}
.tt-feed-offer .knop{text-decoration:none}

/* operators: unconverted pages keep h2 + floated logo + [knop] + <hr> (styled above); converted ones are .operator */
.operator-logo{display:block}
.operators>p{margin-top:16px}

/* resort grid extras */
.resorts>h2{margin-top:0!important}
.terug{margin:16px 0 0}

/* forms: Contact Form 7 (the form tag and its action stay as the plugin and Staatic render them) */
.wpcf7-form{max-width:560px}
.wpcf7-form p{margin:0 0 20px}
/* CF7 prints each label as its own <p> before the field's <p>: keep it with its field */
.wpcf7-form p:has(+p>.wpcf7-form-control-wrap){margin-bottom:6px;font-weight:600}
.wpcf7-form label{display:block;font-weight:600}
.wpcf7-form-control-wrap{display:block}
.wpcf7-form input[type=text],.wpcf7-form input[type=email],.wpcf7-form input[type=tel],.wpcf7-form input[type=url],.wpcf7-form textarea{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--invoer);border-radius:var(--r);background:var(--wit);color:var(--inkt);font:inherit;font-weight:400}
.wpcf7-form textarea{min-height:160px;resize:vertical}
.wpcf7-form input:focus,.wpcf7-form textarea:focus{outline:3px solid var(--zon);outline-offset:0;border-color:var(--inkt);box-shadow:none}
.wpcf7-form .wpcf7-submit{display:inline-flex;align-items:center;min-height:48px;padding:10px 22px;border:2px solid var(--viool);border-radius:var(--r);background:var(--viool);color:#fff;font:600 17px/1.2 var(--tekst);cursor:pointer}
.wpcf7-form .wpcf7-submit:hover{background:var(--viool-d);border-color:var(--viool-d)}
/* the plugin sheet (red tip, framed and indented message) is more specific than a single class: scoped to .inhoud */
.inhoud .wpcf7-not-valid-tip{display:block;margin-top:4px;color:var(--inkt);font-size:15px;font-weight:600}
.inhoud .wpcf7-form [aria-invalid=true]{border-color:var(--zon-rand);box-shadow:inset 4px 0 0 var(--zon-rand)}
.inhoud .wpcf7 form.wpcf7-form .wpcf7-response-output{margin:20px 0 0;padding:12px 16px;border:0;border-left:4px solid var(--zon);border-radius:0 var(--r) var(--r) 0;background:var(--veld)}
.wpcf7-spinner{display:none}

/* plugin lists: [wp_sitemap_page], [link-exchange] (its sheet floats 285px columns; the text after them wrapped beside) */
.inhoud ul.link-exchanges{display:grid;gap:var(--s5);padding:0}
.inhoud li.link-exchanges-category{float:none;width:auto;margin:0}
.link-exchanges h3{margin:0 0 var(--s1)!important}
.inhoud .link-exchanges ul{margin:0;padding:0;list-style:none}
.inhoud .link-exchanges li{margin:0}
.link-exchanges li a{display:inline-block;padding:6px 0}
.wsp-container ul{list-style:none;padding-left:0}
.wsp-container ul ul{margin:0;padding-left:20px}
.wsp-container li a{display:inline-block;padding:6px 0}

/* archive and search rows */
.rij.zonder-foto{grid-template-columns:1fr}

@media (min-width:600px){
  .voet-kols{grid-template-columns:repeat(4,1fr)}
  .plaatsen-raster{grid-template-columns:repeat(3,1fr)}
  .operator{grid-template-columns:1fr 160px;grid-template-areas:"kop logo" "tekst ." "knop .";align-items:start;column-gap:32px}
  .operator-logo{align-self:center}
  .tt-feed-offer{grid-template-columns:120px 1fr auto;grid-template-rows:auto auto;align-items:center}
  .tt-feed-offer-image{width:120px}
  .tt-feed-offer h3{align-self:end}
  .tt-feed-offer:not(:has(.plaats-regel)) h3{grid-row:1/3;align-self:center}
  .tt-feed-offer-content>div{display:contents}
  .tt-feed-offer-content>div>p:not(:last-child){grid-column:2;align-self:start}
  .tt-feed-offer-content>div>p:last-child{grid-column:3;grid-row:1/3}
  /* one width for every row so the buttons form a column: two lines (label over price) up to 767 px, one line wider */
  .tt-feed-offer .knop{flex-direction:column;align-items:flex-end;gap:0;width:164px;max-width:none;min-height:60px;margin:0;padding:8px 16px;line-height:1.15}
  .rij{grid-template-columns:200px 1fr;gap:4px 24px}
  .rij img{width:200px;aspect-ratio:3/2}
}
@media (min-width:768px){
  .tt-feed-offer .knop{flex-direction:row;align-items:center;gap:12px;width:232px;min-height:48px;line-height:1.2}
}
@media (min-width:900px){
  :root{--gut:24px;--sec:72px}
  body{font-size:18px}
  h1{font-size:48px}
  h2{font-size:34px}
  .merk{gap:10px;font-size:22px}
  .merk svg{width:30px;height:30px}
  .kopbalk .wrap{min-height:72px;gap:16px}
  .burger{display:none}
  .zoek-knop{order:3;margin-left:4px}
  .menu,.menu[hidden]{display:flex;align-items:center;position:static;margin-left:auto;padding:0;border:0;box-shadow:none}
  .menu>ul{display:flex;gap:2px}
  .menu>ul>li{border:0}
  .menu>ul>li>a,.menu>ul>li>button{min-height:44px;padding:0 14px;border-radius:var(--r);font-size:17px}
  .menu>ul>li>a:hover,.menu>ul>li>button:hover,.menu>ul>li>button[aria-expanded=true]{background:var(--veld)}
  /* on the container's gutters (the bar is full width; the panel is placed against it) */
  .mega{position:absolute;left:max(var(--gut),(100% - var(--max))/2);right:max(var(--gut),(100% - var(--max))/2);top:calc(100% - 2px);columns:5;column-gap:32px;padding:24px 28px 16px;border:1px solid var(--lijn);border-radius:var(--r);background:var(--wit);box-shadow:0 18px 40px rgba(var(--schaduw),.16)}
  .mega li a{padding:4px 0}
  .mega .menu-item-operators{display:none}
  .zoek-mobiel{display:none}
  .titelband{padding:24px 0 32px}
  .titelband h1{font-size:52px}
  .titelband .intro{font-size:20px}
  .sprong{margin:12px 0 0;padding:0;flex-wrap:wrap;overflow:visible}
  .inhoud h2{font-size:32px}
  .klimaat{padding:22px 24px 18px}
  .maanden{gap:6px}
  .maanden li{font-size:14px}
  .plaatsen-raster{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:1099px){
  .inhoud>*{max-width:68ch}
  .inhoud>.breed{max-width:none}
  .inhoud iframe{max-width:68ch}
  .operator-text p{max-width:62ch}
}
@media (min-width:1100px){
  .opbouw{grid-template-columns:minmax(0,1fr) 300px;gap:64px;padding-top:36px}
}
@media (forced-colors:active){.maanden i{background:CanvasText}.maanden .nu i{background:Highlight}}

/* === sidebar modules (inc/sidebar-modules.php; spec "Sidebar") === */
.zijbalk{display:grid;gap:40px;align-content:start;min-width:0}
.zb-blok ul,.zb-blok ol{margin:0;padding:0;list-style:none}
.zb-ops li,.zb-warm li{border-top:1px solid var(--lijn)}
.zb-ops li:last-child{border-bottom:1px solid var(--lijn)}
.zb-ops li a{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 0;color:var(--inkt);font-weight:600;text-decoration:none}
.zb-ops li a:hover{color:var(--viool)}
.zb-ops li a:hover .zb-naam{text-decoration:underline}
.zb-logo{flex:none;display:grid;place-items:center;width:72px;height:44px;padding:4px;border:1px solid var(--lijn);border-radius:4px;background:var(--wit)}
.zb-logo img{max-width:100%;max-height:100%;width:auto;object-fit:contain}
.zb-ops .zb-naam{flex:1;min-width:0}
.zb-ops .uit{color:var(--zacht)}
.zb-meer{margin:10px 0 0;font-size:16px}
.zb-meer a{display:inline-block;padding:6px 0}
/* warm destinations: the tinted ruled index of the homepage's "Meer landen" */
.zb-warm{padding:16px 16px 4px;border:1px solid var(--lijn);border-radius:var(--r);background:var(--veld)}
.zb-warm a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;color:var(--inkt);text-decoration:none}
.zb-warm .zb-naam{font:600 19px/1.2 var(--kop)}
.zb-warm a:hover .zb-naam{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.zb-warm .temp{margin:0}
.zb-landen ul{display:flex;flex-wrap:wrap;gap:8px}
.zb-landen a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--rand);border-radius:var(--r);color:var(--inkt);font-weight:600;text-decoration:none}
.zb-landen a:hover{border-color:var(--viool);color:var(--viool)}
/* table of contents: desktop only (on phones the sidebar follows the content); sticky inside the aside, which ends
   above the footer, and scrolls on its own when taller than the viewport */
/* below 1100 px the sidebar follows the content, whose chips and resort grid already list the section: no section
   nav or table of contents there */
.zb-toc,.zijbalk .section-nav{display:none}
.zb-toc ol{border-left:2px solid var(--lijn)}
.zb-toc a{display:block;margin-left:-2px;padding:7px 0 7px 14px;border-left:2px solid transparent;color:var(--zacht);font-size:16px;line-height:1.3;text-decoration:none}
.zb-toc a:hover{border-left-color:var(--viool);color:var(--viool)}
@media (min-width:1100px){
  .zijbalk .section-nav{display:block}
  .zb-toc{display:block;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}
}

/* === content blocks [feiten] and [sectie] (inc/content-blocks.php; Over ons) === */
/* [feiten]: the opening line in the display face, the counts set in it */
.feiten-zin{margin:0 0 var(--s6)!important;font:600 24px/1.25 var(--kop);text-wrap:balance;font-variant-numeric:lining-nums}
/* [sectie]: a ruled section; h2 above the text on phones and tablets, beside it from 1100 px (the page has no sidebar there) */
.inhoud .sectie{margin:var(--s7) 0 0;padding-top:var(--s5);border-top:1px solid var(--lijn)}
.inhoud .feiten-zin+.sectie{margin-top:0}
.inhoud .sectie h2{margin:0 0 var(--s3)}
.sectie-tekst{max-width:68ch}
.sectie-tekst>:last-child{margin-bottom:0}
.sectie-tekst ul:not([class]){padding-left:1.3em}
.sectie-tekst ul:not([class])>li{margin:0 0 var(--s2)}
.sectie-tekst .btn.knop{margin:var(--s5) 0 0}
@media (min-width:900px){
  .feiten-zin{font-size:30px;max-width:30ch}
}
@media (min-width:1100px){
  .opbouw.smal .feiten-zin{max-width:none;padding-left:calc(300px + 64px)}
  .inhoud .sectie{display:grid;grid-template-columns:300px minmax(0,68ch);gap:0 64px;padding-top:var(--s6)}
  .inhoud .sectie h2{position:sticky;top:24px;align-self:start;margin:0;font-size:32px}
}
