/*
Theme Name: Betheme Child
Theme URI: https://themes.muffingroup.com/betheme
Author: Muffin group
Author URI: https://muffingroup.com
Description: Child Theme for Betheme
Template: betheme
Version: 2.0.3
*/

/* ================================================================================
   VTM-DIVE — GLOBAL DESIGN LAYER
   --------------------------------------------------------------------------------
   Spec: VTM-Dive/Website/vtm-global-design-spec.md
   Managed by Claude via SSH. Bump the version below on EVERY change — never
   silently overwrite. Keep a one-line changelog entry per version.

   v1.0.0  2026-09-10  Initial global setup: self-hosted fonts, colour tokens,
                       typography, layout width, buttons, forms, header
                       (transparent-over-hero + navy sticky), footer, WooCommerce
                       base, "Bild folgt" image placeholders, responsive.
   v1.0.1  2026-09-10  Beat BeTheme's Options CSS: !important + broader selectors
                       for heading font (Titan One) and header background (navy),
                       so it holds even before the Options pass.
   v1.0.2  2026-09-10  Heading font override raised above BeTheme's #Subheader
                       .title specificity (html body / #Subheader selectors).
   v1.0.3  2026-09-10  Header bg logic fixed: navy default now excludes
                       .header-transparent so the Options "Transparent header"
                       actually takes effect; sticky state re-wins as navy.
   v1.0.4  2026-09-11  Removed the white gap above the hero on pages using the
                       custom overlay header template: BeTheme's #Content wrapper
                       carries a default padding-top:30px (reserved for a normal
                       fixed header) that isn't needed under an absolute/overlay
                       header — zeroed it, scoped to .mfn-header-template pages.
   v1.1.0  2026-09-11  DESIGN FREEDOM PASS, on request. Removed !important from
                       every look-and-feel rule (typography, buttons, forms,
                       footer, WooCommerce colours, header background colour) —
                       those are now soft DEFAULTS: anything unstyled still gets
                       the brand look, but a colour/font/style set in BeBuilder
                       or Betheme Options on a specific element now wins, as it
                       normally would. Kept `!important` ONLY on things that are
                       not a design choice but a functional fix: the transparent
                       ↔ sticky header state-switch (needed so scrolling doesn't
                       leave an unreadable header) and the #Content padding-top
                       bug fix from v1.0.4. Ask if you want those relaxed too.
   ================================================================================ */

/* ---------- 1. FONTS (self-hosted — no external requests) ------------------------ */

@font-face{
  font-family:'Titan One';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/titanone-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Titan One';font-style:normal;font-weight:400;font-display:swap;
  src:url('fonts/titanone-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Outfit';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/outfit-var-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Outfit';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/outfit-var-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'JetBrains Mono';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/jbmono-var-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'JetBrains Mono';font-style:normal;font-weight:100 900;font-display:swap;
  src:url('fonts/jbmono-var-latinext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ---------- 2. TOKENS ----------------------------------------------------------- */

:root{
  --vtm-blue:#005F82;
  --vtm-navy:#0A2850;
  --vtm-aqua:#20C4C9;
  --vtm-aqua-dark:#1AA6AB;
  --vtm-ink:#14202B;
  --vtm-muted:#5B6B78;
  --vtm-bg:#FFFFFF;
  --vtm-bg-alt:#F4F7F9;
  --vtm-border:#DDE5EA;
  --vtm-ph:#E3E8EC;
  --vtm-ph-dark:#2A3B4D;

  --vtm-font-head:'Titan One',Georgia,serif;
  --vtm-font-body:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --vtm-font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --vtm-radius:8px;
  --vtm-shadow:0 6px 24px -8px rgba(10,40,80,.15);
  --vtm-container:1240px;
  --vtm-focus:0 0 0 3px rgba(0,95,130,.20);
}

/* ---------- 3. BASE & TYPOGRAPHY (soft defaults — overridable) ----------------- */

body,
.mfn-base,
#Wrapper{
  font-family:var(--vtm-font-body);
  font-size:17px;
  line-height:1.65;
  color:var(--vtm-ink);
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6,
.mfn-heading,.title,.column_title,
.the_content_wrapper h1,.the_content_wrapper h2,
.mcb-column .column_column h1,.mcb-column .column_column h2{
  color:var(--vtm-navy);
  font-weight:700;
  letter-spacing:0;
}

/* Titan One default for H1/H2. No !important — a font set on a specific
   element in BeBuilder or Options wins. */
h1,h2,
.mcb-column .column_column h1,
.mcb-column .column_column h2,
#Subheader .title,
.page-title-container .title,
.mfn-heading.title-h1,
.mfn-heading.title-h2{
  font-family:var(--vtm-font-head);
  font-weight:400;
  line-height:1.12;
}

h1{font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08;}
h2{font-size:clamp(1.8rem,3.5vw,2.5rem);}
h3,h3 a{font-family:var(--vtm-font-body);font-weight:700;font-size:clamp(1.35rem,2vw,1.6rem);line-height:1.2;}
h4,h4 a{font-family:var(--vtm-font-body);font-weight:700;font-size:1.15rem;line-height:1.25;}
h5{font-family:var(--vtm-font-body);font-weight:600;font-size:1rem;}
h6{font-family:var(--vtm-font-body);font-weight:600;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;}

p{margin:0 0 1.1em;}
.the_content_wrapper > p,
.column_column p{max-width:68ch;}

a{color:var(--vtm-blue);}
.the_content_wrapper a:not(.button),
.column_column a:not(.button){
  text-decoration:underline;
  text-decoration-color:var(--vtm-aqua);
  text-underline-offset:3px;
  transition:color var(--vtm-t-1) ease;
}
.the_content_wrapper a:not(.button):hover,
.column_column a:not(.button):hover{color:var(--vtm-navy);}

/* Eyebrow / small label */
.vtm-eyebrow{
  display:inline-block;
  font-family:var(--vtm-font-body);
  font-weight:600;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--vtm-blue);
  margin-bottom:.6em;
}

/* Numeric / price / date */
.vtm-mono,
.price,.woocommerce-Price-amount,
.mfn-woocommerce-price,
.event-date,.evo_time,.ev_ftr_date{
  font-family:var(--vtm-font-mono);
  font-weight:500;
  font-variant-numeric:tabular-nums;
}

/* ---------- 4. LAYOUT WIDTH ---------------------------------------------------- */

.container{max-width:var(--vtm-container);}
@media (min-width:1240px){
  .container{width:var(--vtm-container);}
}

/* Section vertical rhythm (only where BeTheme leaves defaults) */
.section .section_wrapper{padding-top:0;padding-bottom:0;}
.section{padding:64px 0;}
@media (min-width:768px){.section{padding:104px 0;}}
.section.the_content{padding-top:48px;padding-bottom:48px;}
/* v1.1.1 — empty BeTheme wrappers (no editor content / empty pager) must not
   get section padding, otherwise they show as a white band under BeBuilder pages */
.section.the_content.no_content,
.section.section-page-footer:not(:has(.page-pager a)){display:none;}

.bg-alt,.section.bg-alt{background:var(--vtm-bg-alt);}

/* ---------- 5. BUTTONS (soft defaults — style one in BeBuilder to override) --- */

.button,
a.button,
.button.button_theme,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
input[type="submit"],
button[type="submit"],
.mfn-button,
.wpforms-submit{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--vtm-font-body);
  font-weight:700;
  font-size:15px;
  line-height:1;
  letter-spacing:.01em;
  text-transform:none;
  text-decoration:none;
  padding:14px 26px;
  border-radius:var(--vtm-radius);
  border:2px solid transparent;
  background:var(--vtm-aqua);
  color:var(--vtm-navy);
  box-shadow:none;
  transition:transform var(--vtm-t-1) ease,background-color var(--vtm-t-1) ease,color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease;
  cursor:pointer;
}
.button:hover,
a.button:hover,
.button.button_theme:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.mfn-button:hover,
.wpforms-submit:hover{
  background:var(--vtm-aqua-dark);
  color:var(--vtm-navy);
  transform:translateY(-1px);
}

/* Secondary: navy outline */
.button.button_stroke,
a.button.button-stroke,
.button.vtm-secondary,
.woocommerce a.button.wc-backward,
.woocommerce a.added_to_cart{
  background:transparent;
  color:var(--vtm-navy);
  border-color:var(--vtm-navy);
}
.button.button_stroke:hover,
a.button.button-stroke:hover,
.button.vtm-secondary:hover,
.woocommerce a.button.wc-backward:hover,
.woocommerce a.added_to_cart:hover{
  background:var(--vtm-navy);
  color:#fff;
  border-color:var(--vtm-navy);
}

/* Text button */
.vtm-textlink{
  font-weight:700;color:var(--vtm-navy);text-decoration:none;
  border-bottom:2px solid transparent;transition:border-color var(--vtm-t-1) ease;
}
.vtm-textlink::after{content:" \2192";color:var(--vtm-aqua);}
.vtm-textlink:hover{border-color:var(--vtm-aqua);}

/* On dark sections */
.section-dark,.mcb-section-dark,.dark{color:rgba(255,255,255,.82);}
.section-dark h1,.section-dark h2,.section-dark h3,.section-dark h4,.section-dark h5,.section-dark h6{color:#fff;}
.section-dark .button.button_stroke,
.section-dark .vtm-secondary{color:#fff;border-color:#fff;}
.section-dark .button.button_stroke:hover,
.section-dark .vtm-secondary:hover{background:#fff;color:var(--vtm-navy);}

/* ---------- 6. FORMS (soft defaults) ---------------------------------------- */

input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
input[type="password"],input[type="search"],input[type="number"],input[type="date"],
textarea,select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.wpforms-field input,.wpforms-field textarea,.wpforms-field select{
  font-family:var(--vtm-font-body);
  font-size:16px;
  color:var(--vtm-ink);
  background:#fff;
  border:1px solid var(--vtm-border);
  border-radius:var(--vtm-radius);
  padding:12px 14px;
  min-height:44px;
  box-shadow:none;
  transition:border-color var(--vtm-t-1) ease,box-shadow var(--vtm-t-1) ease;
}
textarea{min-height:140px;}
input:focus,textarea:focus,select:focus,
.wpforms-field input:focus,.wpforms-field textarea:focus{
  outline:none;
  border-color:var(--vtm-blue);
  box-shadow:var(--vtm-focus);
}
label,.wpforms-field-label,.woocommerce form .form-row label{
  font-family:var(--vtm-font-body);
  font-weight:600;
  font-size:14px;
  color:var(--vtm-navy);
}
::placeholder{color:var(--vtm-muted);opacity:1;}

/* ---------- 7. HEADER — #Content padding-top bug fix ------------------------
   v1.1.27 removed this section's old BeTheme "Header 1" CSS (#Top_bar,
   #Header_wrapper.is-sticky, body.header-transparent): dead code since the
   site switched to its own Header Builder template (post 2484 "VTM Header",
   #mfn-header-template / .mfn-menu-link / .logo-wrapper) — those old
   selectors don't match anything in the current DOM (verified live). The
   header's own look/behaviour now lives entirely in section 12 (MISC / QoL,
   v1.1.26 "Surface Tension"), which targets the real markup.

   This one rule survives because it's an unrelated functional fix (see
   v1.0.4) that DOES target the current template: BeTheme's #Content wrapper
   carries a default padding-top:30px meant for a normal fixed header; under
   the absolute/overlay Header Builder template that just leaves a blank
   gap above the hero. --- */
body.mfn-header-template #Content{
  padding-top:0!important;
}

/* ---------- 8. FOOTER (soft defaults) --------------------------------------- */

#Footer{
  background:var(--vtm-navy);
  color:rgba(255,255,255,.75);
  font-family:var(--vtm-font-body);
}
#Footer .widgets_wrapper{padding:56px 0;}
#Footer .widget-title,
#Footer .widgettitle,
#Footer h3,#Footer h4{
  color:#fff;
  font-family:var(--vtm-font-body);
  font-weight:700;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:1em;
}
#Footer a{color:rgba(255,255,255,.75);text-decoration:none;transition:color var(--vtm-t-1) ease;}
#Footer a:hover{color:var(--vtm-aqua);}
#Footer .social a,#Footer .social li a{color:var(--vtm-aqua);}
#Footer ul{list-style:none;margin:0;padding:0;}
#Footer ul li{margin:0 0 .5em;}

#Footer .footer_copy,
#Footer #bottom_bar,
.footer_copy{
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.55);
  font-size:13px;
}
#Footer .footer_copy a,.footer_copy a{color:rgba(255,255,255,.55);}
#Footer .footer_copy a:hover{color:var(--vtm-aqua);}

/* ---------- 9. WOOCOMMERCE BASE (soft defaults) ----------------------------- */

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  background:#fff;
  border:1px solid var(--vtm-border);
  border-radius:var(--vtm-radius);
  padding:14px;
  transition:transform var(--vtm-t-1) ease,box-shadow var(--vtm-t-1) ease;
}
.woocommerce ul.products li.product:hover{
  transform:translateY(-3px);
  box-shadow:var(--vtm-shadow);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3{
  font-family:var(--vtm-font-body);
  font-weight:600;
  font-size:1rem;
  color:var(--vtm-navy);
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--vtm-navy);
  font-family:var(--vtm-font-mono);
  font-weight:600;
}
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale{
  background:var(--vtm-aqua);
  color:var(--vtm-navy);
  font-family:var(--vtm-font-body);
  font-weight:700;
  border-radius:999px;
  min-height:auto;line-height:1;padding:.5em .9em;
}
/* product image slot → placeholder look until real images */
.woocommerce ul.products li.product a img,
.woocommerce div.product div.images img{
  background:var(--vtm-ph);
  border-radius:6px;
}
/* single product add-to-cart = primary */
.woocommerce div.product form.cart .button{background:var(--vtm-aqua);color:var(--vtm-navy);}
/* tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom-color:var(--vtm-navy);}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--vtm-navy);}

/* WooCommerce messages */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info{border-top-color:var(--vtm-blue);}

/* ---------- 10. IMAGE PLACEHOLDERS ("Bild folgt") -------------------- */

.vtm-ph{
  position:relative;
  background:var(--vtm-ph);
  border-radius:var(--vtm-radius);
  min-height:220px;
  overflow:hidden;
}
.vtm-ph::after{
  content:"Bild folgt";
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--vtm-font-body);
  font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--vtm-muted);
}
.vtm-ph--dark{background:var(--vtm-ph-dark);}
.vtm-ph--dark::after{color:rgba(255,255,255,.55);}

/* Homepage hero placeholder: full-bleed navy block behind transparent header */
.vtm-hero-ph{
  background:var(--vtm-navy);
  color:#fff;
  min-height:72vh;
  display:flex;align-items:center;
}
.vtm-hero-ph h1{color:#fff;}
.vtm-hero-ph p{color:rgba(255,255,255,.8);}

/* ---------- 11. RESPONSIVE ----------------------------------------------- */

@media (max-width:1100px){
  .section{padding:56px 0;}
}
@media (max-width:768px){
  body,#Wrapper{font-size:16px;line-height:1.6;}
  .section{padding:44px 0;}
  .button,a.button,input[type="submit"],.wpforms-submit{padding:12px 20px;}
  #Footer .widgets_wrapper{padding:40px 0;}
}

/* ---------- 12. MISC / QoL -------------------------------------------- */

::selection{background:var(--vtm-aqua);color:var(--vtm-navy);}
img{border-radius:0;}
hr{border:none;border-top:1px solid var(--vtm-border);margin:2em 0;}

/* ================================================================================
   v1.1.2 — Reveal-on-hover cards
   BeBuilder: class `vtm-reveal` on the WRAP, `vtm-reveal-text` on the text COLUMN.
   Title + button stay visible; the text slides up on hover / keyboard focus.
   Touch devices have no hover, so the text is always shown there.
   ================================================================================ */
.vtm-reveal .vtm-reveal-text{
  max-height:0;opacity:0;overflow:hidden;transform:translateY(16px);
  transition:max-height 1.6s var(--vtm-ease),opacity 1.4s ease,transform 1.6s var(--vtm-ease); /* terug (muis weg): 1,6 s */
}
.vtm-reveal:hover .vtm-reveal-text,
.vtm-reveal:focus-within .vtm-reveal-text{
  max-height:300px;opacity:1;transform:none;
  transition:max-height var(--vtm-t-4) var(--vtm-ease),opacity var(--vtm-t-4) ease .1s,transform var(--vtm-t-4) var(--vtm-ease); /* omhoog (hover): 0,8 s */
}

/* extra dark fade behind the text so white copy stays readable over the photo */
.vtm-reveal .mcb-wrap-background-overlay::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(to top,rgba(8,25,58,.78) 0%,rgba(8,25,58,0) 65%);
  opacity:0;transition:opacity var(--vtm-t-4) ease;
}
.vtm-reveal:hover .mcb-wrap-background-overlay::after,
.vtm-reveal:focus-within .mcb-wrap-background-overlay::after{opacity:1;}

@media (hover:none){
  .vtm-reveal .vtm-reveal-text{max-height:none;opacity:1;transform:none;}
  .vtm-reveal .mcb-wrap-background-overlay::after{opacity:1;}
}
@media (prefers-reduced-motion:reduce){
  .vtm-reveal .vtm-reveal-text,
  .vtm-reveal .mcb-wrap-background-overlay::after{transition:none;}
}

/* ================================================================================
   v1.1.3 — Hero parallax (JS: js/vtm-parallax.js)
   The video/photo layer is translated down by 15% of the scroll distance, so it
   travels slower than the content. It only ever moves down, and the edge that
   opens up at the top stays above the viewport, so no overshoot is needed.
   Only active once the script has added .vtm-parallax-on (desktop, no
   reduced-motion). Opt out per section with the class vtm-no-parallax.
   ================================================================================ */
.vtm-parallax-on > .section_video{will-change:transform;}

/* v1.1.4 — card parallax: class `vtm-parallax-card` on a wrap (see js/vtm-parallax.js).
   No CSS needed; the script sizes and positions the wrap's background photo. */

/* ================================================================================
   v1.1.5 — Header burger only on tablet/mobile
   BeTheme's "desktop" breakpoint starts at 1441px; 960–1440px (most laptops) is
   "laptop". The burger column only carries `hide-desktop`, so it also showed on
   laptops next to the full main menu. The menu columns are hidden below 960px
   (hide-tablet + hide-mobile), so hide the burger from 960px up.
   Functional fix, hence !important (same as BeTheme's own hide-* helpers).
   ================================================================================ */
@media (min-width:960px){
  .mcb-header-section .column_header_burger{display:none!important;}
}

/* ================================================================================
   v1.1.6 — Card shade + trust badge
   `vtm-shade`  (on a WRAP with a photo): navy gradient from the bottom edge so white
                text stays readable. Layered on ::before of the wrap's overlay
                (::after is used by vtm-reveal), i.e. on top of BeBuilder's own overlay.
   `vtm-badge`  (on a TEXT COLUMN): small glass pill, e.g. review score line.
   ================================================================================ */
.vtm-shade .mcb-wrap-background-overlay::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(to top,rgba(8,25,58,.88) 0%,rgba(8,25,58,.6) 32%,rgba(8,25,58,0) 68%);
}

.vtm-badge .column_attr,
.vtm-badge .mcb-column-inner > p{
  display:inline-flex;align-items:center;gap:.5em;
  margin:0 0 14px;padding:7px 14px;
  font-size:13px;font-weight:600;line-height:1.3;letter-spacing:.01em;color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3);border-radius:999px;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.vtm-badge .column_attr p{margin:0;}

/* ================================================================================
   v1.1.7 — Water background effect (JS: js/vtm-water.js)
   Class `vtm-water` on a SECTION without photo/video. Two layers of thin aqua wave
   lines drift slowly in opposite directions while bobbing gently; soft light rays
   sway behind them. All decorative (aria-hidden, pointer-events none), transform-only
   animation, paused off-screen by the script, off for prefers-reduced-motion.
   Tuning: line opacity in the two SVG stroke-opacity values, speed = the durations.
   ================================================================================ */
.vtm-water-on{position:relative;overflow:hidden;isolation:isolate;}
.vtm-water-on > .section_wrapper{position:relative;z-index:1;}
.vtm-water-fx{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
  /* fade the whole effect out towards the top and bottom edge, so two vtm-water
     sections on top of each other blend instead of showing a hard seam */
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%);
}

.vtm-wave{position:absolute;inset:-20px 0;animation:vtmBob 11s ease-in-out infinite alternate;}
.vtm-wave-b{animation-duration:15s;animation-delay:-5s;}
.vtm-wave-drift{position:absolute;top:0;bottom:0;left:0;will-change:transform;}

/* layer A: 1200px tile, drifts left, 90s */
.vtm-wave-a .vtm-wave-drift{
  width:calc(100% + 1200px);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='200' viewBox='0 0 1200 200' fill='none' stroke='%2320C4C9' stroke-width='1.2' stroke-linecap='round'%3E%3Cpath stroke-opacity='.16' d='M0 40C150 0 450 80 600 40C750 0 1050 80 1200 40'/%3E%3Cpath stroke-opacity='.11' d='M0 90C150 60 450 120 600 90C750 60 1050 120 1200 90'/%3E%3Cpath stroke-opacity='.07' d='M0 145C150 105 450 185 600 145C750 105 1050 185 1200 145'/%3E%3C/svg%3E") 0 0/1200px 200px repeat;
  animation:vtmDriftL 90s linear infinite;
}
/* layer B: 1800px tile, drifts right, 140s, fainter and wider */
.vtm-wave-b .vtm-wave-drift{
  width:calc(100% + 1800px);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1800' height='260' viewBox='0 0 1800 260' fill='none' stroke='%23FFFFFF' stroke-width='1' stroke-linecap='round'%3E%3Cpath stroke-opacity='.09' d='M0 70C225 20 675 120 900 70C1125 20 1575 120 1800 70'/%3E%3Cpath stroke-opacity='.06' d='M0 160C225 120 675 200 900 160C1125 120 1575 200 1800 160'/%3E%3C/svg%3E") 0 0/1800px 260px repeat;
  animation:vtmDriftR 140s linear infinite;
}
@keyframes vtmDriftL{from{transform:translate3d(0,0,0)}to{transform:translate3d(-1200px,0,0)}}
@keyframes vtmDriftR{from{transform:translate3d(-1800px,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes vtmBob{from{transform:translate3d(0,-9px,0)}to{transform:translate3d(0,9px,0)}}

/* soft light rays from above */
.vtm-rays{
  position:absolute;top:0;bottom:0;left:-6%;right:-6%;
  background:
    linear-gradient(105deg,transparent 18%,rgba(255,255,255,.055) 26%,transparent 36%),
    linear-gradient(105deg,transparent 46%,rgba(255,255,255,.04) 55%,transparent 66%),
    linear-gradient(105deg,transparent 72%,rgba(32,196,201,.06) 80%,transparent 90%);
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 78%);mask-image:linear-gradient(to bottom,#000 0%,transparent 78%);
  animation:vtmRays 24s ease-in-out infinite alternate;will-change:transform;
}
@keyframes vtmRays{from{transform:translate3d(-2.5%,0,0)}to{transform:translate3d(2.5%,0,0)}}

.vtm-water-paused .vtm-wave,
.vtm-water-paused .vtm-wave-drift,
.vtm-water-paused .vtm-rays{animation-play-state:paused;}

@media (max-width:767px){                 /* lighter on phones: one wave layer, no rays */
  .vtm-wave-b,.vtm-rays{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .vtm-wave,.vtm-wave-drift,.vtm-rays{animation:none;}
}

/* ================================================================================
   v1.1.9 — Caustics (JS: js/vtm-caustics.js)
   Class `vtm-caustics` on a SECTION without photo/video. The script draws a low-res
   WebGL light net into .vtm-caustics-canvas; here it is placed behind the content,
   blended with `screen` (only brightens) and faded out at the top and bottom edge
   so stacked sections blend. Tuning: `opacity` = strength.
   ================================================================================ */
.vtm-caustics-on{position:relative;overflow:hidden;isolation:isolate;}
.vtm-caustics-on > .section_wrapper{position:relative;z-index:1;}
.vtm-caustics-canvas{
  position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;
  mix-blend-mode:screen;opacity:.12;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 160px,#000 calc(100% - 160px),transparent 100%);
}

/* ================================================================================
   v1.1.11 — Depth gauge, dive-computer design (JS: js/vtm-depth.js)
   Class `vtm-depth` on any section switches it on for that page. A fixed, decorative,
   non-interactive instrument on the right edge: 0 m (Oberfläche) to 10 m (Grund = max
   depth of the dive site). No box: a gradient line with a fill, per-metre ticks, a dot per
   section, the 5 m safety-stop marker, a big readout and the max depth reached. A soft
   edgeless vignette behind it keeps it readable on light photos/video.
   Wide screens only (the script does not build it below 1360px).
   ================================================================================ */
.vtm-dg{
  --h:clamp(240px,52vh,420px);
  position:fixed;right:10px;top:50%;z-index:40;pointer-events:none;
  transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:flex-end;gap:16px;
  font-family:var(--vtm-font-body,"Outfit",sans-serif);color:#fff;
  opacity:0;transition:opacity var(--vtm-t-4) ease;
  text-shadow:0 1px 8px rgba(4,20,45,.6);
}
.vtm-dg.is-in{opacity:1;}
.vtm-dg::before{                                   /* edgeless vignette, no visible box */
  content:"";position:absolute;z-index:-1;inset:-50px -40px;
  /* v1.1.25 2026-09-29: veel lichter op verzoek klant (was .42) — getest tegen zowel de
     donkere hero als de lichtste foto's onderaan de pagina, blijft overal leesbaar. */
  background:radial-gradient(ellipse 60% 55% at 62% 50%,rgba(4,20,45,.12),rgba(4,20,45,0) 72%);
}

/* readout */
.vtm-dg-read{display:flex;flex-direction:column;align-items:flex-end;gap:5px;margin-right:6px;}
.vtm-dg-cap{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.75;}
.vtm-dg-val{display:flex;align-items:baseline;gap:4px;line-height:1;}
.vtm-dg-num{font-family:var(--vtm-font-head,"Titan One",serif);font-size:30px;letter-spacing:.01em;}
.vtm-dg-unit{font-size:15px;font-weight:700;color:#6EE6EA;text-shadow:0 1px 6px rgba(4,20,45,.85);}

/* track */
.vtm-dg-track{position:relative;width:1px;height:var(--h);margin-right:26px;}
.vtm-dg-line{position:absolute;top:0;bottom:0;left:0;width:1px;
  background:linear-gradient(to bottom,rgba(180,240,242,.8),rgba(255,255,255,.22));}
.vtm-dg-fill{position:absolute;top:0;left:-.5px;width:2px;height:0;border-radius:2px;
  background:linear-gradient(to bottom,rgba(32,196,201,0),#20C4C9);
  box-shadow:0 0 10px rgba(32,196,201,.55);}
.vtm-dg-ticks{position:absolute;top:0;bottom:0;left:1px;width:6px;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.65) 0,rgba(255,255,255,.65) 1px,transparent 1px,transparent 10%);
  border-bottom:1px solid rgba(255,255,255,.65);}
.vtm-dg-ticks--half{width:3px;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.32) 0,rgba(255,255,255,.32) 1px,transparent 1px,transparent 5%);
  border-bottom:0;}
.vtm-dg-mark{position:absolute;left:12px;transform:translateY(-50%);font-size:11px;font-weight:500;opacity:.8;font-variant-numeric:tabular-nums;}

/* 5 m safety stop */
.vtm-dg-stop{position:absolute;right:12px;transform:translateY(-50%);width:58px;text-align:right;
  font-size:8.5px;font-weight:600;line-height:1.25;letter-spacing:.1em;text-transform:uppercase;color:#7FE3E6;hyphens:manual;}
.vtm-dg-stop::after{content:"";position:absolute;right:-10px;top:50%;width:8px;height:1px;background:#7FE3E6;}

/* one dot per section: hollow until you have passed it */
.vtm-dg-dot{position:absolute;left:0;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.75);background:rgba(10,40,80,.5);transition:background-color var(--vtm-t-2) ease,border-color var(--vtm-t-2) ease;}
.vtm-dg-dot.is-past{background:#fff;border-color:#fff;}

/* current depth: aqua dot with a soft pulse */
.vtm-dg-pin{position:absolute;left:0;top:0;width:11px;height:11px;border-radius:50%;transform:translate(-50%,-50%);
  background:#20C4C9;border:2px solid #fff;box-shadow:0 0 12px rgba(32,196,201,.8);
  transition:top var(--vtm-t-2) linear;animation:vtmDgPulse 2.6s ease-out infinite;}
.vtm-dg-fill{transition:height var(--vtm-t-2) linear;}
@keyframes vtmDgPulse{0%{box-shadow:0 0 0 0 rgba(32,196,201,.55),0 0 12px rgba(32,196,201,.8)}
  70%{box-shadow:0 0 0 12px rgba(32,196,201,0),0 0 12px rgba(32,196,201,.8)}100%{box-shadow:0 0 0 0 rgba(32,196,201,0),0 0 12px rgba(32,196,201,.8)}}

/* rising bubbles (spawned while scrolling) */
.vtm-dg-bubbles{position:absolute;inset:0;pointer-events:none;}
.vtm-dg-bub{position:absolute;left:0;border-radius:50%;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.18);
  animation:vtmDgBub 1.7s ease-out forwards;}
@keyframes vtmDgBub{0%{transform:translate(-50%,0) scale(.6);opacity:0}15%{opacity:.9}100%{transform:translate(-50%,var(--rise,-52px)) scale(1.1);opacity:0}}

.vtm-dg-foot{margin-right:6px;font-size:10px;font-weight:500;letter-spacing:.06em;opacity:.65;font-variant-numeric:tabular-nums;}
.vtm-dg-foot b{font-weight:700;}

@media (prefers-reduced-motion:reduce){
  .vtm-dg,.vtm-dg-pin,.vtm-dg-fill,.vtm-dg-dot{transition:none;}
  .vtm-dg-pin{animation:none;}
}

/* ================================================================================
   v1.1.12 — Custom cursor, site-wide (JS: js/vtm-cursor.js)
   Only exists on devices with a real mouse (the script does not add anything otherwise).
   `html.vtm-cursor-on` hides the native cursor; the map, form fields, the Rox booking app
   and anything marked data-cursor="native" keep the normal cursor.
   Labels: data-cursor="Text" or class vtm-cursor-ansehen/-buchen/-mehr/-entdecken/-anfragen/-lesen.
   ================================================================================ */
html.vtm-cursor-on{cursor:none;}
html.vtm-cursor-on :is(a,button,[role="button"],label,summary,.button,[onclick],.vtm-nocursor){cursor:none;}
html.vtm-cursor-on :is(.vtm-map,.maplibregl-map,.rox-appointment-booking-frontend-root,[data-cursor="native"]){cursor:auto;}
html.vtm-cursor-on :is(.vtm-map,.maplibregl-map,.rox-appointment-booking-frontend-root,[data-cursor="native"]) :is(a,button,[role="button"],label,summary,.button){cursor:pointer;}

.vtm-cur{position:fixed;left:0;top:0;z-index:2147483000;pointer-events:none;opacity:0;transition:opacity var(--vtm-t-2) ease;}
.vtm-cur.is-on{opacity:1;}
.vtm-cur[data-mode="native"]{opacity:0!important;}
/* buitenlaag: alleen de schermpositie (transform via JS); binnenlaag: vorm, grootte en schaal */
.vtm-cur-pos{position:absolute;left:0;top:0;width:0;height:0;will-change:transform;}
.vtm-cur-dot,.vtm-cur-ring{position:absolute;left:0;top:0;translate:-50% -50%;border-radius:50%;}
.vtm-cur-dot{width:8px;height:8px;background:#20C4C9;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.95),0 1px 8px rgba(4,20,45,.4);
  transition:scale var(--vtm-t-2) var(--vtm-ease),opacity var(--vtm-t-2) ease;}
.vtm-cur-ring{--d:34px;width:var(--d);height:var(--d);display:flex;align-items:center;justify-content:center;
  border:1.5px solid rgba(255,255,255,.9);
  box-shadow:0 0 0 1px rgba(4,20,45,.28),inset 0 0 0 1px rgba(4,20,45,.1);
  transition:width var(--vtm-t-2) var(--vtm-ease),height var(--vtm-t-2) var(--vtm-ease),background-color var(--vtm-t-2) ease,border-color var(--vtm-t-2) ease;}
.vtm-cur-label{font-family:var(--vtm-font-body,"Outfit",sans-serif);font-size:12.5px;font-weight:600;line-height:1;letter-spacing:.04em;color:#fff;
  opacity:0;scale:.8;transition:opacity var(--vtm-t-2) ease,scale var(--vtm-t-2) var(--vtm-ease);white-space:nowrap;}

/* over links en knoppen: ring groeit en kleurt aqua, de stip verdwijnt */
.vtm-cur[data-mode="hover"] .vtm-cur-ring{--d:54px;background:rgba(32,196,201,.2);border-color:#20C4C9;}
.vtm-cur[data-mode="hover"] .vtm-cur-dot{scale:0;}
/* met label: ring wordt een donkere schijf met tekst */
.vtm-cur[data-mode="label"] .vtm-cur-ring{--d:88px;background:rgba(10,40,80,.82);border-color:rgba(255,255,255,.55);}
.vtm-cur[data-mode="label"] .vtm-cur-label{opacity:1;scale:1;}
.vtm-cur[data-mode="label"] .vtm-cur-dot{scale:0;}
/* klik: een bel "ploft" — een ring zet uit vanaf de klikplek en vervaagt. De cursor zelf beweegt of schaalt niet. */
.vtm-cur-pop{position:absolute;width:46px;height:46px;border-radius:50%;translate:-50% -50%;pointer-events:none;
  border:2px solid #20C4C9;background:rgba(32,196,201,.14);box-shadow:0 0 0 1px rgba(255,255,255,.55);
  animation:vtmCurPop .6s cubic-bezier(.15,.7,.3,1) forwards;}
@keyframes vtmCurPop{0%{scale:.3;opacity:.95}70%{opacity:.45}100%{scale:1.7;opacity:0}}
.vtm-cur[data-mode="label"] .vtm-cur-pop{border-color:#fff;background:rgba(255,255,255,.12);}


/* ================================================================================
   v1.1.13 — Heebo, self-hosted (used by the Rox booking app)
   The Rox plugin's CSS pulled Heebo (and Inter, unused) from fonts.googleapis.com, which sent
   every visitor's IP address to Google. The Google @import is now stripped (inc/vtm-privacy.php)
   and Heebo is served from this theme instead. Variable font, weights 100–900, OFL licence.
   ================================================================================ */
@font-face{font-family:"Heebo";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("fonts/heebo-var-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Heebo";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("fonts/heebo-var-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ================================================================================
   v1.1.15 — Pop-ups (JS: js/vtm-modal.js) + knoppen naast elkaar
   Block = class `vtm-modal` + ID; open with a link to #that-id. Without JS the block stays on the page.
   Buttons:  vtm-btn-primary (aqua, gevuld)  ·  vtm-btn-ghost (omlijnd wit)  — on a BeBuilder button (Advanced → Custom → Classes).
   Row:      class vtm-cta-row on the WRAP that holds the buttons: centers them side by side (wraps on narrow screens).
   ================================================================================ */
/* `vtm-js` wordt meteen in <head> gezet (functions.php): het blok is dan vanaf de eerste paint verborgen, zonder flits. Zonder JavaScript blijft het gewoon op de pagina staan. */
html.vtm-js .vtm-modal:not(.is-open),.vtm-modal-init:not(.is-open){display:none!important;}
.vtm-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(4,20,45,.78);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity var(--vtm-t-2) ease;}
.vtm-modal-overlay[hidden]{display:none;}
.vtm-modal-overlay.is-visible{opacity:1;}
.vtm-modal-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;display:flex;justify-content:center;align-items:flex-start;padding:min(7vh,64px) 16px 40px;box-sizing:border-box;}
.vtm-modal-dialog{position:relative;width:100%;margin:auto 0;outline:none;transform:translateY(18px) scale(.98);opacity:0;
  transition:transform var(--vtm-t-2) var(--vtm-ease),opacity var(--vtm-t-2) ease;}
.vtm-modal-overlay.is-visible .vtm-modal-dialog{transform:none;opacity:1;}
.vtm-modal-body{position:relative;}
/* vangnet, alleen voor "brede" pop-ups (vtm-modal-wide, zoals de Rox-boekingswidget): een eigen
   ondoorzichtige achtergrond, zodat de pop-up nooit "doorzichtig" oogt — ook niet als het geopende blok
   zelf op dat moment (nog) geen eigen achtergrond tekent (bijv. terwijl Rox opnieuw laadt). Rox' eigen
   witte kaart (.service-layout) tekent hier gewoon overheen. Smalle pop-ups (bijv. de Kurs-Finder) blijven
   bewust "glas" zonder deze achtergrond, want die hebben hun eigen doorschijnende kaart. */
.vtm-modal-dialog:has(.vtm-modal-wide){background:#fff;border-radius:25px;min-height:200px;box-shadow:0 30px 60px -28px rgba(4,20,45,.55);overflow:hidden;}
/* BeTheme geeft de column-inner van een module een standaard buitenmarge (voor de ruimte tussen
   blokken in de normale paginaflow: 0 12px 40px). Binnen een pop-up hoort de inhoud strak tegen de
   randen van onze eigen witte kaart aan te sluiten, dus die marge wordt hier geneutraliseerd — anders
   ontstaat een scheve, asymmetrische rand (zichtbaar geworden zodra de kaart hierboven een eigen
   ondoorzichtige achtergrond kreeg). */
.vtm-modal-body .mcb-column-inner{margin:0!important;}
.vtm-modal-body > .vtm-modal{display:block!important;margin-left:auto;margin-right:auto;}
/* Vangnet-melding (js/vtm-modal.js): ligt bovenop een lege .vtm-modal-body zolang een "brede" pop-up
   (Rox) nog niets heeft laten zien. Verdwijnt vanzelf zodra er inhoud verschijnt. */
.vtm-modal-fallback{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  padding:40px;text-align:center;background:#fff;border-radius:inherit;}
.vtm-modal-fallback[hidden]{display:none;}
.vtm-modal-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(10,40,80,.15);border-top-color:#20C4C9;animation:vtmModalSpin .8s linear infinite;}
.vtm-modal-fallback.is-error .vtm-modal-spin{display:none;}
.vtm-modal-fallback-text{margin:0;max-width:360px;font-family:var(--vtm-font-body,"Outfit",sans-serif);font-size:15px;line-height:1.5;color:#5B6B78;}
.vtm-modal-fallback.is-error .vtm-modal-fallback-text{color:#0A2850;font-weight:600;}
@keyframes vtmModalSpin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.vtm-modal-spin{animation-duration:1.6s;}}
.vtm-modal-close{position:absolute;top:-6px;right:-6px;z-index:5;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.35);
  display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(10,40,80,.85);cursor:pointer;
  box-shadow:0 8px 22px -8px rgba(4,20,45,.8);transition:background-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
.vtm-modal-close:hover{background:#20C4C9;color:#0A2850;transform:scale(1.06);}
.vtm-modal-close:focus-visible{outline:2px solid #7FE3E6;outline-offset:3px;}
html.vtm-modal-open{overflow:hidden;padding-right:var(--vtm-sbw,0px);}
/* meldingen van het boekingsformulier (Ant Design) moeten boven de pop-up blijven */
body > .ant-message,body > .ant-notification{z-index:20000!important;}
@media (max-width:640px){
  .vtm-modal-scroll{padding:56px 10px 24px;}
  .vtm-modal-close{top:-46px;right:2px;}
}
@media (prefers-reduced-motion:reduce){
  .vtm-modal-overlay,.vtm-modal-dialog{transition:none;}
  .vtm-modal-dialog{transform:none;}
}

/* twee knoppen naast elkaar */
.vtm-cta-row .mcb-wrap-inner{display:flex!important;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 16px;}
.vtm-cta-row .mcb-wrap-inner > .column{width:auto!important;flex:0 0 auto;margin:0!important;}
a.vtm-btn-primary,.vtm-btn-primary a,
a.vtm-btn-ghost,.vtm-btn-ghost a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 30px;border-radius:999px;
  font-family:var(--vtm-font-body,"Outfit",sans-serif);font-size:17px;font-weight:700;letter-spacing:-.005em;line-height:1.2;text-decoration:none;
  transition:background-color var(--vtm-t-2) ease,color var(--vtm-t-2) ease,border-color var(--vtm-t-2) ease,transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2) ease;}
a.vtm-btn-primary,.vtm-btn-primary a{background:#20C4C9;color:#0A2850;border:1.5px solid #20C4C9;box-shadow:0 12px 26px -12px rgba(32,196,201,.9);}
a.vtm-btn-primary:hover,.vtm-btn-primary a:hover{background:#7FE3E6;border-color:#7FE3E6;color:#0A2850;transform:translateY(-2px);}
a.vtm-btn-ghost,.vtm-btn-ghost a{background:rgba(255,255,255,.06);color:#fff;border:1.5px solid rgba(255,255,255,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
a.vtm-btn-ghost:hover,.vtm-btn-ghost a:hover{background:rgba(255,255,255,.16);border-color:#fff;color:#fff;transform:translateY(-2px);}

/* ================================================================================
   v1.1.16  2026-09-27  Contactformulier: privacy-akkoord-vakje (DSGVO), CF7-form
   post 2530. `currentColor` voor de rand zodat hij vanzelf meekleurt op zowel
   lichte als donkere secties (geen aparte varianten nodig). !important nodig om
   BeTheme's eigen Options-CSS voor checkboxes te verslaan (zelfde patroon als
   v1.0.1). BeTheme schakelt de verstuur-knop zelf uit zolang het vakje niet is
   aangevinkt (disabled-state hieronder subtiel zichtbaar gemaakt i.p.v.
   onveranderd/verwarrend).
   ================================================================================ */
.wpcf7-acceptance{display:block;margin:4px 0 22px;}
.wpcf7-acceptance .wpcf7-list-item{margin:0;}
.wpcf7-acceptance label{display:flex;align-items:flex-start;gap:11px;font-size:.92rem;line-height:1.5;cursor:pointer;color:inherit;}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;
  flex:0 0 21px;width:21px!important;height:21px!important;margin-top:2px;
  border:2px solid currentColor!important;border-radius:6px!important;background:transparent!important;color:inherit!important;
  cursor:pointer;position:relative;transition:background-color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease,transform .1s ease;}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:hover{border-color:var(--vtm-aqua)!important;}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:checked{background:var(--vtm-aqua)!important;border-color:var(--vtm-aqua)!important;}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:checked:active{transform:scale(.92);}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:checked::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;
  border:solid var(--vtm-navy);border-width:0 2px 2px 0;transform:rotate(45deg);}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"]:focus-visible{outline:none!important;box-shadow:var(--vtm-focus)!important;}
.wpcf7-acceptance a{color:inherit;text-decoration:underline;text-decoration-color:var(--vtm-aqua);text-underline-offset:2px;}
.wpcf7-acceptance a:hover{color:var(--vtm-aqua);}
.wpcf7-form input[type="submit"][disabled]{opacity:.4;cursor:not-allowed;}

/* ================================================================================
   v1.1.17  2026-09-27  Verzendicoon op de "Absenden"-knop (CF7). Een <input
   type="submit"> kan geen kind-elementen bevatten, dus het icoon gaat als
   achtergrondafbeelding (SVG) rechts in de knop — wit, zelfde kleur als de
   knoptekst. Extra padding-rechts maakt er ruimte voor.
   v1.1.18  2026-09-27  Vriendelijker icoon: gevuld rond vliegtuigje i.p.v. het
   dunne lijn-pijltje — zelfde "versturen"-gedachte, zachter/warmer beeld.
   v1.1.19  2026-09-27  Icoon naar links verplaatst (voor de tekst i.p.v. erna).
   v1.1.20  2026-09-27  Ruimte gecorrigeerd: met alleen een grotere linker-padding
   kwam de tekst tegen het icoon aan te "kleven" met een groot leeg gat rechts
   (tekst bleef immers gewoon gecentreerd in de knop, dus icoon+tekst samen
   schoven links). Nu weer symmetrische padding zodat de tekst net als vóór het
   icoon mooi in het midden staat; het icoon is een vast ingedeeld accent aan de
   linkerkant met een strakke, gelijkmatige afstand tot de tekst.
   v1.1.21  2026-09-27  Nog steeds links overwicht (tekst wordt gecentreerd in de
   HELE knop, maar telt het icoon niet mee — icoon+tekst sámen stonden daardoor
   alsnog ~15px links van het echte midden). Nu asymmetrische padding (meer links,
   minder rechts, zelfde totaal) + icoon verder naar rechts, zodat het icoon+tekst
   samen als geheel gecentreerd staan i.p.v. alleen de tekst.
   ================================================================================ */
.wpcf7-form input[type="submit"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M3.4 20.6l17.5-8.4c.8-.4.8-1.5 0-1.9L3.4 1.9c-.7-.4-1.6.2-1.5 1l1.4 7 10 1.5-10 1.5-1.4 7c-.1.8.8 1.4 1.5 1z'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:left 32px center!important;
  background-size:17px 17px!important;
  padding:20px 32px 20px 60px!important;
}

/* ================================================================================
   v1.1.22  2026-09-27  Reviewkaarten homepage ("Was unsere lieben Gäste sagen!"):
   gelijke hoogte + groter lettertype. BeTheme's eigen elementen (blockquote +
   progress_icons hergebruikt als sterren), geen eigen vtm-klasse nodig — dit
   patroon (one-third-kolom met blockquote + progress_icons) komt alleen bij
   reviewkaarten voor, dus scoping via :has() i.p.v. een broze sectie-ID.
   - Rij van kaarten wordt flex zodat ze elkaars hoogte volgen (was: hoogte volgde
     alleen de eigen tekstlengte, dus een korte review gaf een kort, "kaal" kaartje
     naast langere buren).
   - Binnen elke kaart: blockquote-kolom groeit mee, sterren blijven onderaan
     "geankerd" i.p.v. ergens halverwege te eindigen.
   - Reviewtekst van 14px naar 16px (was fors kleiner dan de rest van de site).
   ================================================================================ */
.section_wrapper:has(.column_blockquote){display:flex!important;flex-wrap:wrap!important;align-items:stretch!important;}
.mcb-wrap.one-third:has(.column_blockquote):has(.column_progress_icons){display:flex!important;}
.mcb-wrap-inner:has(> .column_blockquote):has(> .column_progress_icons){
  display:flex!important;flex-direction:column!important;width:100%;padding-bottom:25px!important;
}
.column_blockquote:has(+ .column_progress_icons){flex:1 1 auto!important;}
.mcb-wrap-inner:has(> .column_blockquote) blockquote{font-size:16px!important;line-height:1.6!important;}
.mcb-wrap-inner:has(> .column_blockquote) .progress_icons{margin-top:16px;}
a.vtm-btn-primary:focus-visible,.vtm-btn-primary a:focus-visible,a.vtm-btn-ghost:focus-visible,.vtm-btn-ghost a:focus-visible{outline:2px solid #7FE3E6;outline-offset:3px;}

/* ================================================================================
   v1.1.23  2026-09-27  Footer-links: leesbaarheid + rustiger uiterlijk. De
   algemene link-stijl (`.column_column a` — voor gewone lichte tekstblokken,
   permanente aqua-onderstreping, navy bij hover) gold óók in de footer, want de
   footer-tekst zit ook in `.column_column`-elementen. Op de donkere footer-
   achtergrond werd "navy bij hover" onleesbaar (navy op navy). Los van de bug
   vond de klant de permanente aqua-onderstreping in de footer ook niet mooi.
   Nu, gescoped op het footer-template zelf (`#mfn-footer-template`, BeTheme's
   eigen stabiele ID voor een Footer Builder-template — dus geen broze hash):
   standaard géén onderstreping, bij hover alleen een kleurverandering naar aqua
   (geen onderstreping — op verzoek klant, past beter bij losse lijst-links dan
   bij lopende tekst). Geldt ook voor de social-iconen (Font Awesome-iconen
   kleuren via `color`, dus deze regel werkt daar automatisch in mee).
   ================================================================================ */
#mfn-footer-template a:not(.button):not(.logo-wrapper){text-decoration:none;transition:color var(--vtm-t-1) ease;}
#mfn-footer-template a:not(.button):not(.logo-wrapper):hover{color:var(--vtm-aqua);}

/* ================================================================================
   v1.1.24  2026-09-29  "Kurs Buchen" / "Kurs Finder"-knoppen (homepage, boven de
   cursusrij): hetzelfde premium hover-gevoel als de kaarten eronder (zachte aqua
   gloed + optillen) + een aangescherpte hiërarchie (Kurs Buchen = hoofdactie,
   groter en met een zachte "ademende" gloed in rust; Kurs Finder = bewust
   rustiger/kleiner, geen gloed) + karakter op de iconen bij hover (kalender
   "tikt", vergrootglas "wiebelt" alsof het zoekt). Gescoped op de href's, dus
   raakt alleen déze 2 knoppen. Native BeTheme-knoppen (Options-gestuurd), bewust
   GEEN Code-element — klant kan label/link gewoon zelf in BeBuilder aanpassen,
   dit is alleen een visuele laag erbovenop.
   ================================================================================ */
a[href="#kurs-buchen"],a[href="#kurs-finder"]{
  transition:transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2) var(--vtm-ease),border-color var(--vtm-t-2) var(--vtm-ease)!important;
}
a[href="#kurs-buchen"] .button_icon i,a[href="#kurs-finder"] .button_icon i{display:inline-block;}

@keyframes vtmCtaBreathe{
  0%,100%{box-shadow:0 0 0 0 rgba(32,196,201,0);}
  50%{box-shadow:0 0 24px 2px rgba(32,196,201,.25);}
}
a.button[href="#kurs-buchen"]{padding:28px 84px!important;animation:vtmCtaBreathe 3.2s ease-in-out 1.5s 3;}   /* v1.4.3: 3 keer, daarna rust (was oneindig) */
a.button[href="#kurs-buchen"]:hover{
  transform:translateY(-3px);
  box-shadow:0 0 0 1px rgba(127,227,230,.55),0 0 40px 6px rgba(32,196,201,.5)!important;
  animation-play-state:paused;
}
@keyframes vtmIconTick{
  0%{transform:scale(1) rotate(0deg);}
  40%{transform:scale(1.25) rotate(-10deg);}
  70%{transform:scale(.94) rotate(5deg);}
  100%{transform:scale(1.08) rotate(0deg);}
}
a.button[href="#kurs-buchen"]:hover .button_icon i{animation:vtmIconTick .5s var(--vtm-ease) both;}

/* v1.1.58: de regels hierboven voor #kurs-buchen gelden nu alleen voor BeBuilder-knoppen (`a.button`); anders pakten ze ook de nieuwe
   `.vtm-c-btn`-knoppen op de cursuspagina's (grote opvulling + gloed). */
a[href="#kurs-finder"]{padding:18px 60px!important;}
a[href="#kurs-finder"]:hover{
  transform:translateY(-2px);
  border-color:rgba(127,227,230,.7)!important;
}
@keyframes vtmIconWiggle{
  0%,100%{transform:rotate(0deg);}
  25%{transform:rotate(-14deg);}
  75%{transform:rotate(14deg);}
}
a[href="#kurs-finder"]:hover .button_icon i{animation:vtmIconWiggle .4s ease-in-out;}

@media (prefers-reduced-motion:reduce){
  a.button[href="#kurs-buchen"]{animation:none;}
  a.button[href="#kurs-buchen"]:hover .button_icon i,a[href="#kurs-finder"]:hover .button_icon i{animation:none;}
}

/* ================================================================================
   v1.1.26  2026-09-29  Hoofdmenu-redesign "Surface Tension" — sticky menu (nieuw
   gedrag) + frosted-glass scroll-overgang + aqua ripple-underline bij hover +
   logo dat meekrimpt + premium gloed op de Tauchshop-knop. Mikt op de ECHTE,
   huidige header-structuur (Header Builder: #mfn-header-template / .mfn-menu-link
   / .logo-wrapper) — NIET op sectie 7 hierboven (#Top_bar / .is-sticky). Dat oude
   blok is dode code: het mikt op BeTheme's klassieke Header 1-systeem, dat deze
   site niet meer gebruikt sinds de overstap naar een eigen Header Builder-
   template (post 2484 "VTM Header"). (Inmiddels verwijderd, zie v1.1.27.)

   Vóór deze wijziging bleef het menu NERGENS op de site vastzitten tijdens
   scrollen (position:absolute, scrollt gewoon mee weg) — klant koos expliciet
   voor een echt sticky menu als onderdeel van deze optie (bevestigd i.p.v.
   aangenomen). JS (js/vtm-header.js) zet alleen een CSS-variabele (--vtm-hs,
   0→1 over de eerste 70px scroll); alle visuele opbouw (achtergrond, blur,
   schaduw, logo-schaal) gebeurt hier in CSS — zelfde aanpak als het
   fotokaarten-parallax-scriptje (nooit dezelfde property vanuit JS én
   CSS:hover laten sturen, zie v3-les hierboven bij de fotokaarten).

   Bijvangst 1: BeTheme's eigen <section> binnen de header-builder-content
   heeft standaard een witte achtergrond (normaal onzichtbaar, want de header
   scrolt toch weg) — die overschildert zodra de header vastzit de nieuwe
   navy/blur-laag hieronder. Naar transparant gezet.

   Bijvangst 2: de --vtm-hs-overgang (transparant→navy) is alleen mooi op de
   homepage, die een donkere hero-foto achter de header heeft. Op binnen-
   pagina's (geen hero) gaf een transparante starttoestand grijze menutekst
   op een lichte achtergrond — bijna onleesbaar, en dat viel nu veel meer op
   omdat de header niet meer wegscrolt. Daarom: alleen `body.home` krijgt de
   scroll-overgang, alle andere pagina's krijgen meteen een vaste navy balk.
   ================================================================================ */
#mfn-header-template.mfn-header-tmpl-absolute{
  position:fixed!important;
  top:0;left:0;right:0;
  z-index:999;
}
/* v1.1.31 bugfix: de header-achtergrond (incl. backdrop-filter) stond eerst
   rechtstreeks OP #mfn-header-template zelf. De Tauchschule-dropdown zit
   daar als kind IN — en een element met backdrop-filter binnen een ouder
   die zelf óók backdrop-filter heeft, blokkeert elkaars blur (bevestigd
   live: de dropdown-blur deed niets zolang de header zijn eigen
   backdrop-filter had, en werkte meteen zodra die tijdelijk verwijderd
   werd). Fix: de achtergrond + blur naar een eigen `::before`-laag
   verplaatst. **v1.1.38: deze volle-breedte `::before`-laag is inmiddels
   VERVANGEN door `.section_wrapper::before` (zie de v1.1.38-toelichting
   verderop) — die krimpt mee met de pil-vorm, zodat er nooit meer een
   moment is met een volle-breedte donkere balk. Hier bewust niets meer
   gedefinieerd (geen dode regels achterlaten). */
#mfn-header-template .mfn-header-tmpl-builder > .section.mfn-default-section{
  background:transparent!important;
}
/* v1.1.43  2026-09-30  Klant, met screenshot: "gekke lijn door de volledige
   breedte van de site" in de compacte staat. Oorzaak: alleen de PIL zelf
   (`.section_wrapper::before`) heeft ooit een achtergrond gehad — de rest
   van de volle-breedte header-doos (de ~38px erboven/errond, waar het
   logo-badge overheen "zweeft") is altijd transparant gebleven, met opzet,
   voor het "zwevende pil"-gevoel. Bij een korte hero bovenaan de pagina
   viel dat niet op (rustige, egale onderwaterfoto), maar verderop in de
   pagina scrollt de ECHTE paginainhoud gewoon door dat transparante gat
   heen — en zodra daar toevallig een harde kleurgrens tussen 2 secties
   voorbijkomt, lijkt dat een rechte lijn dwars over de site. Geen bug in
   1 sectie, maar een gat in het header-ontwerp zelf dat op ELKE lange
   pagina kan optreden.

   Eerste poging (`background:rgba(10,40,80,.5)!important`, vlak, geen
   gradient) loste de lijn wel op maar klant meldde meteen daarna, met
   screenshot: "nu zit er op de volledige breedte een balk, dit is ook
   niet de bedoeling" — een vlakke vulling met scherpe boven-/onderrand
   op de volle 115px hoogte van de header-doos oogde zelf als een
   duidelijk herkenbaar rechthoekig blok, met een even harde rand als het
   probleem dat het moest oplossen (alleen nu permanent zichtbaar i.p.v.
   alleen bij toevallige sectie-overgangen).

   Definitieve fix: een verticale gradient i.p.v. een vlakke kleur — begint
   transparant aan de boven- én onderrand van de doos (dus GEEN scherpe
   randovergang meer, nergens), bouwt op naar een lichte tint (.22,
   beduidend subtieler dan de eerste .5-poging) in het middengedeelte waar
   de pil zit. Getest op meerdere scrolldieptes (700/1200/1800/3000): geen
   zichtbare naad meer, en oogt niet meer als een toegevoegd blok. */
/* v1.1.46 (2026-10-02): de volle-breedte gradient hieronder (v1.1.43) is
   VERWIJDERD — klant: "de rare afbrekende verloop achter het menu over de
   volledige breedte van de website weghalen". De header-doos eromheen is
   dus weer volledig transparant (alleen de pil zelf heeft een achtergrond).
   Bekend risico (zie v1.1.43): op lange pagina's kan een harde sectie-
   overgang die toevallig door het transparante gat achter de header
   voorbijscrolt als een lijn zichtbaar zijn — dat was de reden voor de
   gradient. Komt dat terug, dan niet opnieuw een volle-breedte vlak/gradient
   gebruiken (dat gaf een balk resp. een afbrekend verloop), maar bv. de
   sectie-overgangen zelf zacht maken. */

/* v1.1.48: de losse Tauchshop-bubbel staat 20px rechts naast de pil. Pil-
   buitenbreedte = 744 + 2×28 = 800 → halve breedte 400 → bubbel-links =
   50% + 400 + 20 = 50% + 420px. Met !important zodat dit ongeacht de
   geplakte Code-element-versie (die zelf `left:calc(50% + 506px)` heeft,
   passend bij de oude pilbreedte 972px) klopt. Bij een volgende
   pilbreedte-wijziging DIT getal mee aanpassen. */
#mfn-header-template.vtm-header-compact .vtm-shop-pill{
  left:calc(50% + 430.5px)!important;
}

/* v1.1.47 (2026-10-02): ECHTE oorzaak van het "rare afbrekende verloop op
   volle breedte" gevonden. Het was NIET de eigen gradient (v1.1.43, al weg),
   maar BeBuilder's eigen achtergrond-overlay van de header-sectie
   (`.mcb-header-section > .mcb-background-overlay`, ingesteld in de
   Header Builder): `linear-gradient(0deg, transparent 30%, rgba(0,0,0,.145)
   100%)`, volle breedte. In rust (hoogte ~115px) is dat een onopvallende
   donkere waas boven de hero; in de compacte staat start de sectie door de
   pil-marge pas op y=38px — en dan eindigt die overlay daar abrupt in een
   harde bovenrand, een band over de hele breedte. Fix: in de compacte staat
   faden we die overlay uit (rust-staat blijft ongewijzigd). */
#mfn-header-template .mcb-header-section > .mcb-background-overlay{
  transition:opacity var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template.vtm-header-compact .mcb-header-section > .mcb-background-overlay{
  opacity:0;
}

/* v1.1.39: was continu `scale(calc(1 - var(--vtm-hs)*.14))` — samen met de
   rest omgezet naar een binaire klasse-schakelaar (zie de toelichting
   verderop bij de pil), dus nu gewoon vaste schaal 1 in rust; de compacte
   badge-vorm (verderop) neemt het over zodra `vtm-header-compact` actief
   is. */
#mfn-header-template .logo-wrapper{
  display:inline-block;
  transform:scale(1);
  transform-origin:left center;
}

#mfn-header-template .mfn-menu-link{position:relative;color:#fff!important;text-decoration:none!important;}
/* v1.1.28 bugfix: de regel hierboven raakte ook de Tauchschule-dropdown —
   dat paneel (.mfn-submenu) heeft een witte achtergrond, dus wit-op-wit was
   onleesbaar (klant meldde: "dropdown opent, maar ik zie geen teksten
   staan"). Terug naar de oorspronkelijke navy tekstkleur binnen het paneel
   (bevestigd via de computed style vóórdat de v1.1.26-regel er was:
   rgb(10,40,80) = --vtm-navy). */
#mfn-header-template .mfn-submenu .mfn-menu-link{color:var(--vtm-navy)!important;}
/* v1.1.29 bugfix: "oude underline nog zichtbaar" bij hover op de hoofditems —
   zelfde terugkerende sitewide bug als eerder bij footer/kurskiezer/kaarten:
   BeTheme's eigen kern-CSS (be.css) heeft een generieke `a:hover{text-
   decoration:underline}`, die hier gewoon meekwam naast onze eigen aqua
   ::after-lijn (2 lijnen tegelijk i.p.v. 1). text-decoration:none erbovenop
   de bestaande regel gezet i.p.v. een aparte regel, om precies dezelfde
   selector-specificiteit/plek in de cascade te houden.

   Bijvangst op verzoek klant (2026-09-29): dropdown-paneel (.mfn-submenu)
   van solide wit naar frosted-glass — zelfde materiaal-taal als de header
   zelf, i.p.v. een plat wit vlak dat los staat van het "Surface Tension"-
   concept.

   v1.1.42  2026-09-30  TERUG naar solide wit (klant: "hoofdmenu minder
   zwaar maken, minder animaties"). `backdrop-filter` is een van de duurdere
   CSS-eigenschappen (de browser moet continu alles ERACHTER opnieuw
   samplen/vervagen) — nu op 3 plekken in de header gebruikt (dit paneel,
   de hoofdpil, de Tauchshop-knop), allemaal verwijderd in deze pas. Zie
   ook v1.1.41-blok verderop (druppel-animatie volledig verwijderd) en
   `Claude/vtm-shop-button-v6.html` (ademende gloed + blur van de knop af). */
#mfn-header-template .mfn-submenu{
  background:#fff!important;
  box-shadow:0 10px 30px rgba(1,7,39,.18);
}
#mfn-header-template .mfn-menu-link::after{
  content:"";
  position:absolute;left:0;right:0;bottom:-4px;height:2px;
  background:var(--vtm-aqua);
  transform:scaleX(0);transform-origin:center;
  transition:transform var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template .mfn-menu-link:hover::after{transform:scaleX(1);}
/* v1.1.30 bugfix: klant zag TWEE lijnen tegelijk bij hover (screenshot).
   Oorzaak: het menu heeft BeTheme's eigen ingebouwde hover-animatie actief
   (Options-klasse `mfn-menu-animation-text-toggle-line-bottom` op de
   menu-wrapper) — die tekent via `.label-wrapper::before` een eigen
   lichtblauwgrijze lijn, los van en bovenop onze aqua ::after-ripple. Native
   lijn uitgezet, onze eigen ripple blijft de enige indicator. */
#mfn-header-template .mfn-menu-link .label-wrapper::before{content:none!important;}

/* Tauchshop-knop (los bovenblok, staat NIET in #mfn-header-template zelf) —
   zelfde premium-gloedtaal als de Kurs Buchen/Finder-knoppen (v1.1.24). */
.mfn-header-icon-box:has(.desc-wrapper){
  transition:transform var(--vtm-t-2) var(--vtm-ease);
  animation:vtmShopBreathe 3.4s ease-in-out infinite;
}
@keyframes vtmShopBreathe{
  0%,100%{box-shadow:0 0 0 0 rgba(32,196,201,0);}
  50%{box-shadow:0 0 20px 2px rgba(32,196,201,.22);}
}
.mfn-header-icon-box:has(.desc-wrapper):hover{
  transform:translateY(-2px);
  box-shadow:0 0 0 1px rgba(127,227,230,.5),0 0 28px 4px rgba(32,196,201,.4)!important;
  animation-play-state:paused;
}

/* ================================================================================
   v1.1.32  2026-09-30  Compacte "pil"-vorm bij scrollen — optie 2 uit de 3
   hoofdmenu-mockups (klant koos "Floating Pill", met 2 aanpassingen: kleiner,
   en alle 6 hoofditems moeten erin blijven passen — Tauchschule, Tauchbasis,
   Tauchclub, Service, Über uns, Kontakt, niet slechts een selectie zoals in
   de eerste ruwe mockup). Bouwt voort op de bestaande sticky/frosted header
   (v1.1.26): voorbij dezelfde 70px-scroldrempel trekt de volle-breedte balk
   zich samen tot een smallere, afgeronde capsule, met het logo als los rond
   badge dat over de bovenrand heen "zweeft". Klasse `vtm-header-compact`
   wordt gezet door js/vtm-header.js op die 70px-drempel (zelfde moment als
   --vtm-hs volledig op 1 staat).

   v1.1.38 (2026-09-30) probeerde dit op te lossen door de pil-vorm óók
   `calc(var(--vtm-hs))`-gestuurd te maken (continu aan de scrollpositie
   gekoppeld, net als de achtergrond) — dat loste de desync inderdaad op,
   maar klant wees terecht op een NIEUW probleem: bij continu aan scroll
   gekoppelde waarden kan de gebruiker gewoon stoppen met scrollen op willekeurig
   welk punt tussen 0 en 70px, en dan blijft de header voor altijd in die
   TUSSENSTAND hangen (half breed, half rond, half doorzichtig) — niet meer
   "kapot", maar ook niet meer een nette aan/uit-schakelaar.

   v1.1.39 (2026-09-30) — klant: "of de pil is actief of simpelweg niet en je
   hebt de basis hoofdmenu stijl" — dus geen tussenstanden meer, punt. Terug
   naar een pure klasse-schakelaar (`vtm-header-compact`, binair: alleen y=0
   of y=70, nooit ertussenin), maar dit keer met ALLE eigenschappen — vorm
   ÉN achtergrond/blur — op DEZELFDE gedeelde transition-duur (400ms). Dat is
   het eigenlijke lek van vóór v1.1.38: niet "klasse+transition is fout",
   maar "twee verschillende tijdmodellen door elkaar" (continu vs. klasse-
   transition, met bovendien twee verschillende transition-duurs). Nu: alles
   bepaald door één klasse, alles met identieke duur, dus alles komt altijd
   samen aan bij de eindstand — en rust ALTIJD in óf de basisstijl óf de
   volledige pil, nooit ertussenin, ongeacht waar je stopt met scrollen.
   `--vtm-hs` (de continue variabele) is hiermee overbodig geworden en uit
   js/vtm-header.js gehaald — alleen nog de klasse-toggle op de 70px-drempel.

   Techniek voor de breedte: de rij (`.section_wrapper`) kan niet vloeiend
   animeren naar een "fit-content"-breedte (browsers interpoleren niet naar/
   vanaf 'auto'/'fit-content') — daarom een expliciete `max-width` in beide
   standen (1220px rust / 920px compact, ruim boven de gemeten intrinsieke
   breedte van ~899px met alle 6 items) die wél soepel transitioned. Dropdown-
   tekst (`.mfn-submenu`) bewust NIET meegenomen in de kleinere font-size —
   blijft op normale leesgrootte, alleen de bovenbalk compacter. */
#mfn-header-template .section.mfn-default-section{
  transition:padding var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template.vtm-header-compact .section.mfn-default-section{
  padding-top:0;padding-bottom:14px;
}
#mfn-header-template .section_wrapper{
  position:relative;
  max-width:1220px;
  padding:0;
  margin-top:0;
  border-radius:0;
  transition:max-width var(--vtm-t-3) var(--vtm-ease),
             padding var(--vtm-t-3) var(--vtm-ease),
             margin-top var(--vtm-t-3) var(--vtm-ease),
             border-radius var(--vtm-t-3) var(--vtm-ease);
}
/* v1.1.40  2026-09-30  Klant: pil (en de losse Tauchshop-bubbel, zie het
   Code-element) allebei wat hoger. Verticale padding 8px→14px (was
   51,5px hoog, wordt ~63-64px) — border-radius blijft 50px (nog steeds
   ruim boven de helft van de nieuwe hoogte, dus nog steeds volledig rond
   afgeronde uiteinden). margin-top ongewijzigd, de pil groeit dus naar
   beneden toe. */
#mfn-header-template.vtm-header-compact .section_wrapper{
  /* v1.1.48 (2026-10-02): klant — te veel leegruimte aan de buitenkanten
     binnenin de pil, menu iets verder van het logo, pil minder breed.
     Gemeten: de 2 menugroepen waren 412px breed (flex:1 1 0) voor 299px
     (links) resp. 231px (rechts) aan echte links, dus 108/202px lege ruimte
     aan de buitenzijden. max-width 920→744 (= 2 × ~308px kleinste
     groepsbreedte [min-width:max-content, anders breken de links af naar 2
     regels] + 2 × 64px logo-ruimte), zijpadding 26→28, en de ruimte
     tussen menu en logo 48→64px per kant. De rechtergroep is inherent
     ~68px smaller dan de linker (kortere woorden), dus rechts blijft iets
     meer buitenruimte dan links — gelijk trekken kan alleen met ongelijke
     linkafstanden, dat is lelijker. De Tauchshop-bubbel volgt de nieuwe
     pilbreedte via een eigen `left` (zie hieronder), onafhankelijk van welke
     versie van het Code-element de klant geplakt heeft.
     v1.1.50 (2026-10-02): optisch afgestemd na 12 visuele varianten (zie
     de v1.1.50-toelichting bij `.mfn-header-menu` hieronder): max-width
     747px, zijpadding 23px, ruimte menu↔logo 57,7px → buitenbreedte ≈ 793px. */
  max-width:771px;
  padding:14px 25px;
  margin-top:38px;
  border-radius:50px;
}
/* v1.1.42: `backdrop-filter` (frosted-glass) hier verwijderd — zie de
   v1.1.42-toelichting bij `.mfn-submenu` hierboven. De compacte staat op de
   homepage gaat van "matglas over de hero" naar gewoon een effen, bijna
   ondoorzichtige navy — geen vervaging meer nodig, en dat is meteen ook
   consistent met hoe binnenpagina's (`body:not(.home)`) al werkten: die
   hadden nooit blur, alleen een effen kleur. */
#mfn-header-template .section_wrapper::before{
  content:"";
  position:absolute;inset:0;z-index:-1;
  border-radius:inherit;
  pointer-events:none;
  transition:background-color var(--vtm-t-3) var(--vtm-ease),
             box-shadow var(--vtm-t-3) var(--vtm-ease);
}
body.home #mfn-header-template .section_wrapper::before{
  background:transparent;
  box-shadow:0 0 0 rgba(1,7,39,0);
}
body.home #mfn-header-template.vtm-header-compact .section_wrapper::before{
  background:rgba(10,40,80,.985);
  box-shadow:0 10px 28px rgba(1,7,39,.4);
}
body:not(.home) #mfn-header-template .section_wrapper::before{
  background:var(--vtm-navy);
  box-shadow:0 10px 28px rgba(1,7,39,.4);
}
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap{
  flex:0 0 auto;width:auto;
}
/* v1.1.33: het logo hing eerst op zijn natuurlijke flex-plek tussen de 2
   menu-groepen — die zijn ongelijk breed, dus het logo kwam niet op het
   echte midden van de pil uit. Losgemaakt uit de flex-rij, apart
   gecentreerd op de pil zelf (zie de `:nth-child(2)`-regel verderop).
   Vervolgbugs bij het testen: (1) het logo viel eerst buiten beeld (te
   weinig ruimte boven de pil — `.section_wrapper` kreeg meer marge,
   10px→38px). (2) `display:flex` (nodig om de afbeelding te centreren
   binnenin) brak de centrering van het logo BINNEN zijn eigen kolom (kwam
   eerst van `display:inline-block` + de ouders `text-align:center`) — fix:
   `margin:0 auto` op `.logo-wrapper` (zie verderop).

   v1.1.34/35, ECHTE bugfix (klant meldde 2x, terecht: "dit ziet er nog
   steeds niet uit"): v1.1.34's `justify-content:center` centreerde alleen
   de BUITENRANDEN van de 2 menu-groepen samen als 1 blok — niet het
   zichtbare GAT ertussen (waar het logo zit). Bij ongelijk brede groepen
   (hier: rechts ~88px breder dan links) liggen die twee dingen niet op
   dezelfde plek: het blok-midden was toevallig gelijk aan de doos-breedte-
   midden (beide 720px, meetbaar maar misleidend — vandaar dat mijn eerdere
   "geverifieerd"-melding het echte probleem miste), maar het WERKELIJKE gat
   tussen "Tauchclub" en "Service" zat 43,8px daar vandaan. **Les: bij het
   verifiëren van "is X gecentreerd tussen A en B", altijd de afstand tussen
   de A/B-RANDEN zelf meten (`A.right` en `B.left`), nooit de buitenste
   randen van het hele blok — die twee metingen zijn met ongelijke
   deelbreedtes NIET hetzelfde, ook al lijkt het zo.**
   Robuuste fix: de 2 menu-groepen krijgen elk `flex:1 1 0` (gelijk aandeel
   van de resterende ruimte, ongeacht hun eigen tekstbreedte) + interne
   uitlijning naar de buitenkant (links rechts uitgelijnd, rechts links
   uitgelijnd). Zo liggen hun binnenranden ALTIJD exact op het midden van de
   pil, wiskundig gegarandeerd, ongeacht hoe breed elke tekstgroep zelf is —
   dit hangt niet meer af van een handmatig afgestelde margin-waarde die
   kan verschuiven zodra de tekst verandert. Geverifieerd: doos-midden,
   logo-midden én het WERKELIJKE gat tussen de groepen nu alle drie exact
   720,0px (op zowel homepage als Tauchschule-pagina, 1440px breedte). */
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child{
  flex:1 1 0;width:auto;min-width:max-content;
  display:flex;justify-content:flex-end;
}
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:last-child{
  flex:1 1 0;width:auto;min-width:max-content;
  display:flex;justify-content:flex-start;
}
/* v1.1.39: margins en font-size/padding terug naar klasse+transition (zelfde
   gedeelde 400ms-duur als de pil-vorm hierboven) i.p.v. continu aan de
   scrollpositie gekoppeld — zie de v1.1.39-toelichting hierboven: dit
   voorkomt dat de header in een tussenstand kan blijven "hangen" als de
   gebruiker precies daar stopt met scrollen. */
#mfn-header-template .section_wrapper > .wrap.mcb-header-wrap:first-child{
  margin-right:0;
  transition:margin-right var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template .section_wrapper > .wrap.mcb-header-wrap:last-child{
  margin-left:0;
  transition:margin-left var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child{
  margin-right:57.7px;
}
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:last-child{
  margin-left:57.7px;
}
/* v1.1.51 (2026-10-02): klant koos het aangeboden compromis — pil iets
   BREDER met meer ruimte tussen de linkerlinks, voor een rustiger ritme
   (verschil links/rechts kleiner). 4 varianten opnieuw gemeten (tekst-tot-
   tekst links 37/43/47/55px → pil 791/819/835/871px). Gekozen: links 43px /
   rechts 77px (verhouding 1,8× i.p.v. 1,9×, absoluut verschil gelijk maar
   relatief rustiger), pil ≈ 821px breed (was 793), li-marge links 14px,
   zijpadding 25px, max-width 771px, bubbel `left:calc(50% + 430.5px)`.
   tekst↔logo blijft 74,7px aan beide kanten, buitenruimte 42px. */
/* v1.1.50 (2026-10-02): klant — "speel optisch met afstanden tussen menu-
   items en de grootte van de pil, doe zelf meerdere visuele tests". 12
   varianten naast elkaar bekeken (tekst-tot-tekst-afstand links 27–45px,
   afstand tekst↔logo 60–80px, buitenruimte 36–46px, én een variant waarin
   de rechterlinks maar deels uitgespreid werden). Conclusies: (1) een
   symmetrische afstand tekst→logo is het meest opvallend voor het oog —
   varianten met 10–22px verschil links/rechts (Service dichter/verder van
   het logo dan Tauchclub) oogden direct scheef, dus de rechterlinks
   spreiden zich volledig (space-between, v1.1.49) en alleen de ruimte
   TUSSEN de rechterlinks is groter; (2) onder ~27px tussenruimte links
   oogt de linkergroep gedrongen (verhouding rechts/links >2,3×); boven
   ~40px wordt de pil ≥ 800px terwijl klant juist een smallere pil wilde;
   (3) afstand tekst↔logo 74px (was 80) houdt het logo vrij zonder de pil
   op te rekken. Gekozen: tekst-tot-tekst links 37px / rechts 71px,
   tekst↔logo 74,7px aan beide kanten, buitenruimte 40px aan beide kanten,
   pil 791px breed, alles op 1 regel. De linkerlinks krijgen daarvoor een
   eigen tussenruimte (li-marge 8px i.p.v. 5px). */
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child .mfn-header-menu li:not(:last-child){
  margin-right:14px;
}
/* v1.1.49 (2026-10-02): klant — rechterlinks ruimer uit elkaar "zodat het
   optische plaatje volledig klopt". De rechtergroep (Service/Über uns/
   Kontakt) is inherent ~66px smaller dan de linker (kortere woorden), dus
   rechts bleef meer lege buitenruimte (111px vs 45px links). Nu spreidt de
   rechter menulijst zich met `space-between` over de volle groepsbreedte
   (dezelfde breedte als de linkergroep): Service blijft op dezelfde afstand
   van het logo als Tauchclub, Kontakt eindigt op dezelfde afstand van de
   pilrand als Tauchschule begint, en alleen de ruimte TUSSEN de rechterlinks
   groeit (~+33px per tussenruimte). `margin-right:-10px` compenseert de
   5px li-marge + 5px kolom-marge aan de rand zodat buitenruimte links en
   rechts exact gelijk is (45/45px gemeten). */
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:last-child .mfn-header-menu{
  justify-content:space-between;
  margin-right:-10px;
  /* v1.1.52 (2026-10-02): klant — "rechter menu iets dichter bij elkaar".
     16px extra ruimte aan de BUITENkant (niet aan de logo-kant, zodat de
     symmetrische afstand tekst↔logo 74,7px blijft): tussenruimte rechts
     77→69px, buitenruimte rechts 42→58px (links 43px). */
  padding-right:16px;
  box-sizing:border-box;
}
#mfn-header-template .mfn-menu-link:not(.mfn-submenu *){
  font-size:15px;padding-left:20px;padding-right:20px;
  transition:font-size var(--vtm-t-3) var(--vtm-ease),
             padding var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template.vtm-header-compact .mfn-menu-link:not(.mfn-submenu *){
  font-size:13px;padding-left:12px;padding-right:12px;
}
/* v1.1.36: badge zat eerst alleen ín de pil, boven de rand. v1.1.37 (klant:
   "nog een stukkie naar beneden zodat het in het midden-midden staat van
   de pil"): nu op `top:50%` i.p.v. `top:0` — centreert het midden van de
   badge op het VERTICALE midden van de pil zelf (niet meer op de
   bovenrand), zodat de cirkel gelijkmatig een klein stukje boven én onder
   de pil uitsteekt. Ook de linker/rechter menu-helft verder uit elkaar
   getrokken (`margin-right`/`margin-left` 32px→48px, samen 96px ruimte)
   zodat de nu prominentere, middenstaande badge (68px breed) niet tegen
   "Tauchclub"/"Service" aan zit. Geverifieerd: badge-midden-Y (68,0) =
   pil-midden-Y (68,0), badge-midden-X = pil-midden-X (720,0, ongewijzigd
   t.o.v. v1.1.35), plus een ingezoomde visuele screenshot. */
#mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:nth-child(2){
  position:absolute;
  left:50%;top:50%;
  transform:translateX(-50%) translateY(-50%);
  margin:0;
  z-index:5;
  transition:transform var(--vtm-t-3) var(--vtm-ease);
}
#mfn-header-template .logo-wrapper{
  transition:transform var(--vtm-t-3) var(--vtm-ease),width var(--vtm-t-3) var(--vtm-ease),
             height var(--vtm-t-3) var(--vtm-ease),filter var(--vtm-t-3) ease;
}
#mfn-header-template.vtm-header-compact .logo-wrapper{
  transform:none;transform-origin:center;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto;
  /* v1.1.45 (2026-10-02): logo 10% groter (68px → 75px), klant-verzoek. */
  width:75px;height:75px;
  /* v1.1.44 (2026-10-02): klant — "de cirkel om het logo weghalen, wel de
     schaduw behouden zodat het voelt alsof het logo erop zweeft". Het
     donkere cirkel-vlak + de aqua ring zijn weg; de schaduw zit nu als
     drop-shadow op het logo zelf (volgt de vorm van het logo i.p.v. een
     cirkel), zodat het los boven de pil lijkt te zweven. */
  filter:drop-shadow(0 8px 10px rgba(1,7,39,.55));
}

/* v1.1.41 (2026-09-30) had hier een "vloeiend druppel water"-animatie voor
   de Tauchshop-knop (JS-gespawnde `.vtm-water-drop`/`.vtm-water-ripple`-
   elementen via de Web Animations API). **v1.1.42 (2026-09-30): volledig
   verwijderd** — klant wilde het hoofdmenu minder zwaar/minder animaties
   na een gesprek over de DOM/script-belasting van de site. De bijbehorende
   logica in `js/vtm-header.js` is ook teruggebracht naar de simpele versie
   (alleen de klasse-toggle op de scrolldrempel, geen druppel-metingen/
   -spawns meer). */

/* ================================================================================
   v1.1.53  2026-10-02  MOBIEL + TABLET (+ smal desktop 960–1012px) — klant:
   "loop met het team de pill-menu na op mobiel en zorg dat dit perfect
   eruit ziet". Breakpoints (BeTheme): mobiel ≤767, tablet 768–959, burger
   verdwijnt ≥960. Gevonden bij de nameting (390px) en opgelost:
   1. Tauchshop-bubbel viel op ALLE breedtes <~1013px buiten beeld (de
      desktop-`left:calc(50% + 416px)` week niet af) en op mobiel liep de
      knop in rust half van het scherm. → Rust: ronde 44px-knop (zonder
      label); compact: bubbel 52px rechts naast de pil (mobiel) resp. samen
      met de pil gecentreerd als groep (tablet 640–959px: pil 520px +
      8px + bubbel 52px).
   2. Burger-icoon: donker teal 'icon-menu-fine' op de hero (nauwelijks
      zichtbaar) → eigen witte 3-streeps-icoon, 44×44px tikvlak.
   3. De burger-zijbalk toonde het FOOTER-menu (Datenschutz/AGB/Impressum/
      Kontakt) i.p.v. het hoofdmenu: Header-Builder-item `header_burger` had
      `menu_display=125` = een menu dat niet (meer) bestaat → BeTheme viel
      terug op een ander menu. Nieuw WP-menu "Mobile" (id 45 op staging;
      kopie van Split Left + Split Right + custom link Tauchshop) en
      `menu_display` in post 2484 (`mfn-page-items`, backup in optie
      `vtm_hdr_2484_backup_pre_mobilemenu`) daarop gezet. NB: bij go-live
      moet dit menu mee (staging→live push neemt het mee) — anders valt de
      burger op live terug op het verkeerde menu.
   4. Zijbalk was lichtgrijs met WITTE tekst (de desktop-regel
      `.mfn-menu-link{color:#fff}` + de submenu-regel `.mfn-submenu{background:
      #fff}` lekten erin) → navy paneel, 20px/16px/15px-niveaus, 52px
      tikdoelen, aqua pijltjes, Tauchshop als aqua pilknop, rond sluitkruisje.
   5. BeTheme zet op ≤767px `padding-left/right:0!important` op
      `.section_wrapper` — overruled met een hogere specificiteit + !important.
   6. Pil .96 → .985 dekking: de grote hero-kop scheen als spook door de pil.
   7. `env(safe-area-inset-top)` (iPhone-notch in standalone/PWA-modus).
   8. Toegankelijkheid (js/vtm-header.js): `aria-label` + rol op burger en
      sluitkruisje (BeTheme levert een leeg title / kale span).
   9. Tussenbereik 960–1012px: desktop-menu maar te smal voor pil 821 +
      bubbel → compactere pil (≈766px). 
   Gemeten (live): mobiel 375/390/430/639px, tablet 768/820/959px, 960 en
   1012/1013px: bubbel binnen beeld, gat pil↔bubbel 8px (mobiel/tablet) of
   20px (desktop), logo exact gecentreerd, geen horizontale overflow.
   ================================================================================ */
/*MOB-START*/
@media (max-width:959px){
  /* ---------- rust-staat (bovenaan de pagina) ---------- */
  #mfn-header-template .section.mfn-default-section{padding:0;}
  #mfn-header-template .section_wrapper{padding-top:14px;padding-right:16px!important;padding-bottom:14px;padding-left:16px!important;padding-top:calc(14px + env(safe-area-inset-top,0px));}
  #mfn-header-template .logo-wrapper{width:92px;}
  #mfn-header-template a.mfn-header-menu-burger{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:-8px;}
  #mfn-header-template a.mfn-header-menu-burger .icon-wrapper{display:flex;align-items:center;justify-content:center;width:44px;height:44px;}
  #mfn-header-template a.mfn-header-menu-burger i{display:block;position:relative;width:24px;height:2px;border-radius:2px;background:#fff;font-size:0;line-height:0;filter:drop-shadow(0 1px 3px rgba(1,7,39,.5));}
  #mfn-header-template a.mfn-header-menu-burger i::before,
  #mfn-header-template a.mfn-header-menu-burger i::after{content:""!important;position:absolute;left:0;width:24px;height:2px;border-radius:2px;background:#fff;font-size:0;}
  #mfn-header-template a.mfn-header-menu-burger i::before{top:-7px;}
  #mfn-header-template a.mfn-header-menu-burger i::after{top:7px;}
  #mfn-header-template .vtm-shop-pill{width:44px;min-width:44px;max-width:44px;padding:0;gap:0;justify-content:center;}
  #mfn-header-template .vtm-shop-pill .vtm-shop-pill-label{max-width:0;opacity:0;margin:0;}

  /* ---------- compacte pil ---------- */
  #mfn-header-template.vtm-header-compact .section.mfn-default-section{padding:0 12px 10px;}
  #mfn-header-template.vtm-header-compact .section_wrapper{
    box-sizing:border-box;max-width:none;width:calc(100% - 60px);margin:20px 0 0 0;margin-top:calc(20px + env(safe-area-inset-top,0px));padding:0;padding-left:6px!important;padding-right:6px!important;min-height:52px;align-items:center;border-radius:50px;
  }
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child{
    flex:0 0 52px;min-width:0;width:52px;margin:0;justify-content:flex-start;
  }
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:last-child{
    flex:0 0 0;min-width:0;width:0;margin:0;padding:0;
  }
  #mfn-header-template.vtm-header-compact .logo-wrapper{width:64px;height:64px;}
  #mfn-header-template.vtm-header-compact a.mfn-header-menu-burger{margin-left:0;}
  #mfn-header-template.vtm-header-compact .vtm-shop-pill{
    position:fixed!important;top:calc(46px + env(safe-area-inset-top,0px))!important;right:12px!important;left:auto!important;
    width:52px!important;height:52px!important;min-width:52px!important;max-width:52px!important;
    transform:translateY(-50%)!important;
  }
  #mfn-header-template.vtm-header-compact .vtm-shop-pill:hover{transform:translateY(-50%) translateY(-2px)!important;}

  /* ---------- off-canvas menu (burger) ---------- */
  #mfn-header-template .mfn-header-tmpl-menu-sidebar{
    background:linear-gradient(180deg,#0B2A55 0%,#06152A 100%)!important;
    border-left:1px solid rgba(127,227,230,.18);
    font-family:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  }
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-header-tmpl-menu-sidebar-wrapper{padding:76px 24px 32px;align-items:flex-start;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-close-icon{
    position:absolute;top:14px;right:14px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
    background:rgba(255,255,255,.1);color:#fff;
  }
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-close-icon .icon{font-size:18px;line-height:1;color:#fff;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar ul.mfn-header-menu{width:100%;margin:0;padding:0;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-li{width:100%;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-link{
    display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;
    min-height:52px;padding:12px 0!important;font-size:20px;font-weight:600;letter-spacing:-.01em;color:#fff!important;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-link::after,
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-link::before{content:none!important;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-subicon,
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-sub-subicon{color:#7FE3E6;font-size:13px;margin-left:12px;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-submenu{
    position:static!important;background:transparent!important;box-shadow:none!important;border:0!important;
    width:100%!important;min-width:0!important;padding:0 0 0 14px!important;margin:0!important;transform:none!important;backdrop-filter:none;
  }
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-link .menu-item-helper{display:none!important;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-menu-link .label-wrapper{flex:1 1 auto;margin:0 auto 0 0!important;text-align:left!important;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-submenu .mfn-menu-link{
    justify-content:space-between!important;text-align:left!important;
    min-height:46px;font-size:16px;font-weight:500;color:#B7E7EC!important;border-bottom:1px solid rgba(255,255,255,.05);
  }
  #mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-submenu .mfn-submenu .mfn-menu-link{font-size:15px;color:#8FB0C6!important;min-height:42px;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar ul.mfn-header-menu > li:last-child > .mfn-menu-link .label-wrapper{flex:0 1 auto;margin:0 auto!important;text-align:center!important;}
  #mfn-header-template .mfn-header-tmpl-menu-sidebar ul.mfn-header-menu > li:last-child > .mfn-menu-link{
    justify-content:center;margin-top:18px;border:0;border-radius:999px;background:#20C4C9;color:#0A2850!important;min-height:52px;font-size:17px;
  }
}
@media (min-width:640px) and (max-width:959px){
  #mfn-header-template.vtm-header-compact .section_wrapper{width:520px;margin-left:max(0px,calc(50% - 290px));}
  #mfn-header-template.vtm-header-compact .vtm-shop-pill{right:auto!important;left:calc(50% + 238px)!important;}
}
/*MOB-END*/

/* v1.1.53: tussenbereik 960–1012px (desktop-menu, maar te smal voor pil 821px
   + bubbel: de bubbel zou buiten beeld vallen). Compactere variant van de
   pil: iets minder ruimte tussen menu↔logo (60px) en padding, pil ≈766px. */
@media (min-width:960px) and (max-width:1012px){
  #mfn-header-template.vtm-header-compact .section_wrapper{max-width:720px;padding:14px 23px;}
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child{margin-right:44px;}
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:last-child{margin-left:44px;}
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child .mfn-header-menu li:not(:last-child){margin-right:8px;}
  #mfn-header-template.vtm-header-compact .vtm-shop-pill{left:calc(50% + 403px)!important;}
}

/* ================================================================================
   v1.1.54  2026-10-02  PARTNERBALK ("Unsere Partner") op alle formaten — klant:
   "check ook het Unsere Partner-blok voor alle formaten". Het blok is een
   Code-element (Claude/vtm-partnerbalk-v1.html) dat zichzelf schaalt via
   container queries op de breedte van zijn PLEK (niet de viewport). Gemeten
   (viewport → containerbreedte → rijen): 1440→861: 5+4 ✓; 960–1200→651: 5+4 ✓;
   768→477: 4+4+1 ✗ (wees-logo); 640→520: 5+4 ✓; 600→504: 4+4+1 ✗; 520→424:
   3+3+3 ✓; 430→334: 3+3+3 ✓; 390→294: 3+2+2+2 ✗; 360→264: 3+2+2+2 ✗; 320→224:
   2+2+2+2+1 ✗. Oorzaak: vaste schaalstappen (u .68/.78) in het snippet passen
   niet bij elke containerbreedte, en `max-width:284px` voor 3-per-rij was 12px
   te krap voor de breedste rij (Kallweit+Garmin+Cressi).
   Fix hier in style.css (niet in het Code-element, dus zonder opnieuw plakken;
   `!important` omdat de <style> van het Code-element later laadt):
   • container ≤559px: ALTIJD 3+3+3. Eén vloeiende schaalfactor --k (px per
     snippet-eenheid) = min(.85px, (100cqw − 64px)/356,2), waarbij 356,2 de
     som van de breedste rij is (Kallweit+Garmin+Cressi). De lijst krijgt
     max-width = 356,2·k + 33px, zodat een 4e logo nooit op een rij past en
     rij 2 er net wel in. Logo's schalen dus mee in plaats van te springen.
   • container 560–640px: 5+4, lijst max-width 500px (anders 6+3 bij 640).
   Het snippet zelf is ongewijzigd (≥641px blijft zoals het was). */
@container (max-width:559px){
  .vtm-partners:not(.vtm-partners--v2) .vtm-partners-box{
    --k:min(.85px,calc((100cqw - 64px) / 356.2));
    padding:16px 14px 18px!important;border-radius:22px!important;
  }
  .vtm-partners:not(.vtm-partners--v2) .vtm-partners-title{font-size:10.5px!important;gap:12px!important;}
  .vtm-partners:not(.vtm-partners--v2) .vtm-partners-list{
    gap:14px 16px!important;
    max-width:calc(356.2 * var(--k) + 33px)!important;
    margin-left:auto!important;margin-right:auto!important;
  }
  .vtm-partners:not(.vtm-partners--v2) .vtm-partner{
    width:calc(var(--w) * var(--k))!important;
    height:calc(var(--h) * var(--k))!important;
  }
}
@container (min-width:560px) and (max-width:640px){
  .vtm-partners:not(.vtm-partners--v2) .vtm-partners-list{max-width:500px!important;margin-left:auto!important;margin-right:auto!important;}
}

/* v1.1.54 (vervolg): HERO-SECTIE TE LAAG → partnerbalk werd AFGESNEDEN. De
   hero-sectie (video, klasse `has-video`) heeft in BeBuilder een vaste
   `height:850px` + `overflow:hidden`, terwijl de inhoud (300px bovenpadding +
   kop + weer-regel + partnerbalk + 44px onderpadding) op elke breedte <1440px
   hoger is: gemeten inhoudshoogte 995px (960–1100), 1122px (768), 1068px
   (390), 1120px (360). De partnerbalk viel daardoor op 1100px en smaller
   voor 105–250px buiten de sectie en werd door `overflow:hidden` WEGGESNEDEN
   (op 390px stond de balk zelfs volledig onder de zichtbare rand). Bij 1440px
   paste het net (balk eindigt op 847 van 850). Fix: vaste hoogte → minimaal
   850px, de sectie groeit mee met zijn inhoud. (De video/overlay vullen de
   sectie altijd al 100% via `height:100%`, dus er verschijnt geen kale rand.)
   NB testtip: gebruik NOOIT `scrollIntoView()` om zo'n sectie te bekijken —
   een overflow:hidden-sectie wordt dan intern gescrold en toont een grijze
   band onderaan (de sectie-achtergrond); `window.scrollTo` gebruiken. */
/* Alleen onder 1440px (BeTheme "laptop"-grens): vanaf 1440px blijft de hero
   precies zoals de klant 'm kent (850px, partnerbalk op 847px). Eerste poging
   (overal height:auto) maakte de hero op 1440px 141px hoger dan bedoeld door
   de BeBuilder-onderpadding (104px laptop / 44px mobiel) — daarom nu ook
   `padding-bottom:0`: de partnerbalk houdt zijn eigen ~40px kolomruimte
   eronder, dus de hero is overal ≈ even hoog als ontworpen (≈887px) i.p.v.
   met een extra blauwe strook. */
@media (max-width:1439px){
  #Content .section.mcb-section.has-video{
    height:auto!important;
    min-height:850px!important;
    padding-bottom:0!important;
  }
}

/* ================================================================================
   v1.1.55  2026-10-03  BINNENPAGINA'S: header is meteen de pil — klant (screenshot
   van een nieuwe pagina): het hoofdmenu startte als een breed, vierkant navy
   blok over de volle containerbreedte. Oorzaak: de regel
   `body:not(.home) #mfn-header-template .section_wrapper::before` (v1.1.32,
   van vóór de pil) geeft elke pagina behalve de homepage in RUST een effen
   navy achtergrond op de ONGEKRIMPTE wrapper (1220px, geen afronding). Dat
   staat los van de pagina-inhoud en verdween dus niet vanzelf.
   Fix: js/vtm-header.js zet op binnenpagina's de klasse `vtm-header-compact`
   meteen (en laat 'm staan) → exact dezelfde pil als de homepage na scrollen
   (desktop, tablet, mobiel). `vtm-hdr-instant` zet de overgangen alleen de
   eerste 2 frames uit, zodat de pagina niet eerst breed laadt en dan krimpt.
   De homepage is ongewijzigd (transparant over de hero, pil vanaf 70px). */
#mfn-header-template.vtm-hdr-instant,
#mfn-header-template.vtm-hdr-instant *,
#mfn-header-template.vtm-hdr-instant *::before,
#mfn-header-template.vtm-hdr-instant *::after{transition:none!important;}
/* Geen flits van het oude brede blok: verborgen tot het script de pil heeft
   gezet. Vangnet: laadt het script niet, dan verschijnt de header na 1,2s
   alsnog (visibility is een discrete animatie). */
body:not(.home) #mfn-header-template:not(.vtm-header-compact){
  visibility:hidden;
  animation:vtmHdrShow 0s linear 1.2s both;
}
@keyframes vtmHdrShow{to{visibility:visible;}}

/* ================================================================================
   v1.1.56  2026-10-04  HALVE FOTOBLOKKEN onderaan de homepage ("Rundum-Service…",
   "Bleib länger, tauch mehr") — klant: "dezelfde mooie animaties als de kaarten
   van de cursussen". Die kaarten (Claude/vtm-photo-cards-v5.html) hebben bij
   hover: 4px omhoog, aqua gloed-rand, foto zoomt 4% in, tekst schuift omhoog,
   knop 1,06×. De halve blokken hadden alleen al de tekst-reveal (`vtm-reveal`) en
   de scroll-parallax (`vtm-parallax-card`); ze misten lift, gloed en zoom.
   • lift + gloed: hier, op de `.mcb-wrap-inner` (niet op de `.wrap`, want BeBuilder
     zet de fadeInUp-animatie als transform op de wrap zelf).
   • foto-zoom: js/vtm-parallax.js (cards(), ZOOM 1.04), omdat de parallax-positie
     van de afmeting van de foto afhangt.
   Scope: `.one-second` + `vtm-reveal` + `vtm-parallax-card` = alleen deze 2 wraps
   (de kurskaarten zijn `.one-third` Code-elementen met een eigen hover).
   `:not(:has(.vtm-photocard))`: zodra het blok vervangen is door het Code-element
   (Claude/vtm-photo-block-*-v1.html, met eigen lift/gloed/zoom) doet deze regel
   niets meer — de wrap-klassen mogen blijven staan (nodig voor de "Ansehen"-cursor).
   Alleen op apparaten met hover; reduced-motion: geen overgang. */
@media (hover:hover){
  .mcb-wrap.one-second.vtm-reveal.vtm-parallax-card:not(:has(.vtm-photocard)) > .mcb-wrap-inner{
    transition:transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2) var(--vtm-ease);
  }
  .mcb-wrap.one-second.vtm-reveal.vtm-parallax-card:not(:has(.vtm-photocard)):hover > .mcb-wrap-inner{
    transform:translateY(-4px);
    box-shadow:0 0 0 1px rgba(127,227,230,.5),0 0 40px 4px rgba(32,196,201,.45);
  }
}
@media (prefers-reduced-motion:reduce){
  .mcb-wrap.one-second.vtm-reveal.vtm-parallax-card:not(:has(.vtm-photocard)) > .mcb-wrap-inner{transition:none;}
}

/* ================================================================================
   v1.1.57  2026-10-06  FOOTER-KNOP "Kurs Buchen" op 1 regel — klant (screenshot):
   de tekst brak af op 2 regels ("Kurs / Buchen"). Oorzaak: de BeBuilder-knop in
   de footer (`.mfn-footer-tmpl-builder`, href #kurs-buchen) heeft 84px opvulling
   links en rechts in een smalle kolom (230px op 1440px, 172px op 960–1100px,
   123px op 768px) → er bleef maar 51px over voor het label, terwijl de tekst
   ~90px nodig heeft. Dat de knop op de pagina zelf (hogerop, 294px) wél op 1
   regel stond, maskeerde het.
   Fix: opvulling links/rechts 24px (inhoud gecentreerd), label `nowrap`, en onder
   1440px mag de kolom de volle breedte van zijn wrap pakken (anders blijft de
   knop op tablet 123px smal). Gemeten op 1920/1440/1280/1100/960/768/640/390/
   320px: altijd 1 regel, ≥17px ruimte links/rechts, binnen de wrap, geen
   horizontale overflow. */
.mfn-footer-tmpl-builder a.button[href="#kurs-buchen"]{
  padding-left:24px!important;padding-right:24px!important;
  justify-content:center!important;
}
.mfn-footer-tmpl-builder a.button[href="#kurs-buchen"] .button_label{white-space:nowrap;}
@media (max-width:1439px){
  .mfn-footer-tmpl-builder .column:has(a.button[href="#kurs-buchen"]){width:100%!important;}
}

/* ================================================================================
   v1.1.58  2026-10-24  CURSUSPAGINA-SJABLOON ("vtm-c-…") — eerste pagina: Schnuppertauchen
   Opmaak voor de cursuspagina's onder Tauchschule. De pagina's bestaan uit BeBuilder-secties met
   een class (vtm-c-hero / vtm-c-sec / vtm-c-sec--alt) en per sectie één Code-element dat alleen HTML
   bevat (geen <style>): alle opmaak staat hier. Zo kunnen tekst en foto's later per pagina worden
   aangepast zonder CSS aan te raken, en zien alle ±30 cursuspagina's er gelijk uit.
   Foto van de hero: `.vtm-c-hero__photo` (style="background-image:url(…)"), rechts uitgefaded.
   Knoppen die de boekingspop-up openen: href="#kurs-buchen" + data-vtm-book="Categorie|Dienst"
   (js/vtm-book.js). Ontwerp = Voorstellen/schnuppertauchen-v1 (klant akkoord 2026-10-24). */
.vtm-c-hero,.vtm-c-sec{position:relative;background:#08193A;color:#fff;overflow:hidden;}
.vtm-c-sec{padding:104px 0!important;}
.vtm-c-sec--alt{background:linear-gradient(180deg,#0A2850,#08193A);}
.vtm-c-sec--tight{padding-top:0!important;}
.vtm-c-sec--mid{padding-top:88px!important;padding-bottom:88px!important;}
/* v1.1.63: hero-inhoud begint op elke cursuspagina op dezelfde hoogte onder het menu (190px), met één vaste titelgrootte;
   lange titels (Advanced Open Water Diver) gaan over max. 2 regels en maken de hero dus niet hoger. */
.vtm-c-hero{display:flex;align-items:flex-start;min-height:780px;padding:190px 0 92px!important;isolation:isolate;}
.vtm-c-hero > .section_wrapper{width:100%;min-width:0;}
.vtm-c-hero .vtm-c{min-width:0;max-width:100%;}
.vtm-c h1,.vtm-c h2,.vtm-c h3{overflow-wrap:break-word;}
.vtm-c-hero .section_wrapper,.vtm-c-hero .mcb-wrap,.vtm-c-hero .mcb-wrap-inner,.vtm-c-hero .column,.vtm-c-hero .mcb-column-inner{position:static;}
.vtm-c-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,25,58,.72) 0%,rgba(8,25,58,0) 26%,rgba(8,25,58,0) 56%,rgba(8,25,58,.9) 100%);}
.vtm-c-hero__photo{position:absolute;top:0;bottom:0;right:0;width:74%;z-index:-2;background-size:cover;background-position:58% 22%;background-repeat:no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 46%);mask-image:linear-gradient(90deg,transparent 0%,#000 46%);}
.vtm-c-sec .mcb-column-inner,.vtm-c-hero .mcb-column-inner{margin:0!important;padding:0!important;}
/* Het lege BeBuilder-laagje `.mcb-wrap-background-overlay` (absolute, volle breedte) ving in de hero alle klikken op, omdat de wrap hierboven
   position:static kreeg. Deze secties gebruiken het niet → weg. */
.vtm-c-hero .mcb-wrap-background-overlay,.vtm-c-sec .mcb-wrap-background-overlay,.vtm-c-hero .mcb-section-background-overlay{display:none!important;}

.vtm-c{font-family:var(--vtm-font-body,"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif);font-size:17px;line-height:1.65;color:#fff;}
.vtm-c *{box-sizing:border-box;}
.vtm-c h1,.vtm-c h2,.vtm-c h3{color:#fff!important;margin:0!important;padding:0!important;}
.vtm-c h1,.vtm-c h2{font-family:"Titan One",sans-serif!important;font-weight:400!important;line-height:1.1!important;}
.vtm-c h3{font-family:"Outfit",sans-serif!important;font-weight:700!important;line-height:1.25!important;}
.vtm-c p{margin:0;color:rgba(255,255,255,.72);}
.vtm-c a{text-decoration:none!important;}
.vtm-c ul{list-style:none;margin:0;padding:0;}
.vtm-c li{margin:0;padding:0;}
.vtm-c-eyebrow{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#7FE3E6;}
.vtm-c-hero .vtm-c h1{font-size:clamp(40px,4.6vw,64px)!important;line-height:1.06!important;margin:12px 0 18px!important;max-width:900px;text-wrap:balance;text-shadow:0 6px 30px rgba(1,7,39,.45);}
.vtm-c-lead{max-width:520px;font-size:20px;color:#fff!important;margin:0 0 26px!important;text-shadow:0 1px 14px rgba(1,7,39,.55);}
.vtm-c-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px!important;}
.vtm-c-chips li{padding:8px 16px;border-radius:999px;font-size:14px;font-weight:600;line-height:1.5;background:rgba(10,40,80,.62);border:1px solid rgba(127,227,230,.35);}
.vtm-c-chips b{font-family:"JetBrains Mono",monospace;font-weight:500;color:#7FE3E6;}
.vtm-c-btns{display:flex;flex-wrap:wrap;gap:14px;}
.vtm-c a.vtm-c-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;border-radius:50px;font-weight:700;font-size:16px;line-height:1.3;transition:transform var(--vtm-t-2) var(--vtm-ease),background-color var(--vtm-t-2) ease,border-color var(--vtm-t-2) ease;}
.vtm-c a.vtm-c-btn--pri{background:#20C4C9;color:#0A2850!important;}
.vtm-c a.vtm-c-btn--pri:hover{background:#7FE3E6;transform:translateY(-2px);}
.vtm-c a.vtm-c-btn--sec{border:2px solid rgba(255,255,255,.85);color:#fff!important;}
.vtm-c a.vtm-c-btn--sec:hover{background:#fff;color:#0A2850!important;transform:translateY(-2px);}
.vtm-c-btn svg{width:18px;height:18px;flex:none;}
.vtm-c-head{max-width:680px;margin:0 0 48px;}
.vtm-c-head h2{font-size:clamp(32px,4.2vw,52px)!important;margin:10px 0 14px!important;}

.vtm-c-two{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.vtm-c-opt{position:relative;display:flex;align-items:flex-end;min-height:520px;border-radius:35px;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.14);transition:transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2) var(--vtm-ease);}
.vtm-c-opt:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(127,227,230,.5),0 0 40px 4px rgba(32,196,201,.45);}
.vtm-c-opt__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transition:transform var(--vtm-t-3) var(--vtm-ease);}
.vtm-c-opt:hover .vtm-c-opt__bg{transform:scale(1.04);}
.vtm-c-opt::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(8,25,58,.95) 0%,rgba(8,25,58,.7) 45%,rgba(8,25,58,0) 85%);}
.vtm-c-opt__in{width:100%;padding:34px;}
.vtm-c-tag{display:inline-block;margin-bottom:14px;padding:6px 14px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);}
.vtm-c-opt h3{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:38px!important;line-height:1.1!important;}
.vtm-c-opt p{max-width:440px;margin:10px 0 22px;}
.vtm-c-price{display:flex;align-items:baseline;gap:10px;margin-bottom:22px;}
.vtm-c-price b{font-family:"JetBrains Mono",monospace;font-weight:500;font-size:46px;line-height:1;}
.vtm-c-price--txt b{font-family:"Outfit",sans-serif;font-weight:700;font-size:28px;line-height:1.2;}
.vtm-c-price--txt{margin-bottom:22px;}
.vtm-c-price span{font-size:14px;color:rgba(255,255,255,.72);}

/* v1.1.59: regel onder de kaarten over online boeken (alleen weekend) en "doordeweeks nach Absprache" */
.vtm-c-note{margin:28px 0 0!important;padding:16px 22px;border-radius:20px;font-size:16px;line-height:1.55;color:rgba(255,255,255,.9)!important;background:rgba(32,196,201,.1);border:1px solid rgba(127,227,230,.3);}
.vtm-c-note b{color:#fff;}
.vtm-c .vtm-c-note a{color:#7FE3E6!important;font-weight:700;text-decoration:underline!important;text-underline-offset:3px;}
/* v1.1.61: drie keuzekaarten naast elkaar (Open Water Diver: Comfort, Kompakt, VIP) en links in de vinkjeslijsten */
.vtm-c-two--3{grid-template-columns:repeat(3,1fr);gap:24px;}
.vtm-c-two--3 .vtm-c-opt{min-height:480px;}
.vtm-c-two--3 .vtm-c-opt h3{font-size:34px!important;}
.vtm-c-glass li a{color:#7FE3E6!important;font-weight:600;text-decoration:underline!important;text-underline-offset:3px;}
@media (max-width:1099px){.vtm-c-two--3{grid-template-columns:1fr;}}
.vtm-c-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.vtm-c-steps::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:linear-gradient(90deg,#20C4C9,rgba(32,196,201,.15));}
/* v1.1.60: stappenlijst met 6 (of meer) onderdelen: 3 per rij, zonder doorlopende lijn */
.vtm-c-steps--3{grid-template-columns:repeat(3,1fr);row-gap:44px;}
.vtm-c-steps--3::before{display:none;}
.vtm-c-step__n{position:relative;display:grid;place-items:center;width:56px;height:56px;margin-bottom:22px;border-radius:50%;background:#08193A;border:2px solid #20C4C9;font-family:"JetBrains Mono",monospace;font-size:20px;color:#7FE3E6;}
.vtm-c-step h3{font-size:21px!important;margin-bottom:8px!important;}
.vtm-c-step p{font-size:16px;}
.vtm-c-dur{display:inline-flex;align-items:center;gap:12px;margin-top:40px;padding:12px 22px;border-radius:999px;font-weight:600;background:rgba(32,196,201,.12);border:1px solid rgba(127,227,230,.35);}
.vtm-c-dur b{font-family:"JetBrains Mono",monospace;font-weight:500;color:#7FE3E6;}

.vtm-c-cards{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.vtm-c-glass{padding:40px;border-radius:35px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);}
.vtm-c-glass h3{font-size:24px!important;margin-bottom:22px!important;}
.vtm-c-glass ul{display:grid;gap:16px;}
.vtm-c-glass li{display:flex;gap:14px;align-items:flex-start;}
.vtm-c-glass li > span:not(.vtm-c-ck){min-width:0;}
.vtm-c-ck{flex:none;display:grid;place-items:center;width:26px;height:26px;margin-top:1px;border-radius:50%;background:rgba(32,196,201,.18);border:1px solid #20C4C9;}
.vtm-c-ck svg{width:14px;height:14px;}

.vtm-c-gift{position:relative;display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:center;padding:56px;border-radius:35px;overflow:hidden;background:radial-gradient(120% 140% at 100% 0%,rgba(32,196,201,.35),rgba(32,196,201,0) 55%),linear-gradient(135deg,#0d3a6b,#0A2850);border:1px solid rgba(127,227,230,.35);}
.vtm-c-gift h2{font-size:clamp(30px,3.6vw,46px)!important;margin:8px 0 14px!important;}
.vtm-c-gift p{max-width:520px;}
.vtm-c-gift__r{justify-self:end;text-align:right;}
.vtm-c-gift__r small{display:block;margin-top:12px;font-size:14px;color:rgba(255,255,255,.72);}

.vtm-c-next{position:relative;display:flex;align-items:center;min-height:340px;border-radius:35px;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.14);}
.vtm-c-next__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center 45%;}
.vtm-c-next::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,25,58,.94) 0%,rgba(8,25,58,.75) 50%,rgba(8,25,58,.1) 100%);}
.vtm-c-next__in{max-width:640px;padding:48px;}
.vtm-c-next h2{font-size:clamp(30px,3.6vw,46px)!important;margin:8px 0 12px!important;}
.vtm-c-next p{margin:0 0 24px;}

@media (max-width:899px){
  .vtm-c-sec{padding:72px 0!important;}
  .vtm-c-sec--mid{padding-top:64px!important;padding-bottom:64px!important;}
  .vtm-c-hero{min-height:900px;padding:320px 0 48px!important;}
  .vtm-c-hero__photo{bottom:auto;width:100%;height:560px;background-position:58% 12%;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 100%);mask-image:linear-gradient(180deg,#000 55%,transparent 100%);}
  /* lange titelwoorden (Auffrischungs·kurs, Open Water Diver, …) mogen de hero niet breder maken dan het scherm */
  .vtm-c-hero .vtm-c h1{font-size:clamp(32px,8.4vw,56px)!important;}
  .vtm-c-lead{font-size:18px;}
  .vtm-c-two,.vtm-c-cards,.vtm-c-gift{grid-template-columns:1fr;}
  .vtm-c-opt{min-height:460px;}.vtm-c-opt__in{padding:26px;}.vtm-c-opt h3{font-size:30px!important;}
  .vtm-c-steps,.vtm-c-steps--3{grid-template-columns:1fr;gap:28px;}
  .vtm-c-steps::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;background:linear-gradient(180deg,#20C4C9,rgba(32,196,201,.15));}
  .vtm-c-step{display:grid;grid-template-columns:56px 1fr;gap:0 20px;}
  .vtm-c-step__n{margin:0;grid-row:span 2;}
  .vtm-c-glass{padding:28px;}
  .vtm-c-gift{padding:34px 26px;}.vtm-c-gift__r{justify-self:start;text-align:left;}
  .vtm-c-next__in{padding:32px 26px;}
}
@media (hover:none){.vtm-c-opt:hover{transform:none;box-shadow:none;}.vtm-c-opt:hover .vtm-c-opt__bg{transform:none;}}
@media (prefers-reduced-motion:reduce){.vtm-c-opt,.vtm-c-opt__bg,.vtm-c a.vtm-c-btn{transition:none;}}


@media (prefers-reduced-motion:reduce){
  #mfn-header-template.mfn-header-tmpl-absolute,
  #mfn-header-template .logo-wrapper,
  #mfn-header-template .mfn-menu-link::after,
  #mfn-header-template .section.mfn-default-section,
  #mfn-header-template .section_wrapper,
  #mfn-header-template .section_wrapper::before,
  #mfn-header-template .section_wrapper > .wrap.mcb-header-wrap,
  #mfn-header-template .mfn-menu-link,
  .mfn-header-icon-box:has(.desc-wrapper){transition:none;animation:none;}
}

/* ================================================================================
   v1.1.27  2026-09-29  Cleanup: removed section 7's dead BeTheme "Header 1"
   CSS (#Top_bar, #Header_wrapper.is-sticky, body.header-transparent — the
   transparent-over-hero/navy-sticky rules from v1.0.0/v1.0.1/v1.0.3/v1.1.0,
   plus the cart-badge and mobile-nav-overlay rules that targeted the same
   #Top_bar). Flagged as dead in the v1.1.26 changelog, now confirmed via
   live DOM inspection on staging.vtm-dive.com: #Top_bar and #Header_wrapper
   don't exist in the current markup, and body never carries
   header-transparent/is-sticky. The site has used its own Header Builder
   template (#mfn-header-template, post 2484 "VTM Header") instead since
   before this cleanup — those old selectors matched nothing. The header's
   real styling lives in section 12 (v1.1.26 "Surface Tension"). Kept the
   one rule in section 7 that was still functional despite sitting in that
   block: body.mfn-header-template #Content{padding-top:0!important} (the
   v1.0.4 bug fix, which targets the current template, not the dead one).
   ================================================================================ */

/* v1.1.64: overzichtsraster met kaarten (Specialties): foto boven, titel, korte tekst, onderaan prijs en "Mehr erfahren". Hele kaart is een link. */
.vtm-c-spgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.vtm-c .vtm-c-spc{display:flex;flex-direction:column;border-radius:28px;overflow:hidden;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:#fff!important;text-decoration:none!important;transition:transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2) var(--vtm-ease);}
.vtm-c .vtm-c-spc:hover{transform:translateY(-4px);box-shadow:0 0 0 1px rgba(127,227,230,.5),0 0 40px 4px rgba(32,196,201,.35);}
.vtm-c-spc__img{position:relative;aspect-ratio:4/3;overflow:hidden;}
.vtm-c-spc__img i{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform var(--vtm-t-3) var(--vtm-ease);}
.vtm-c-spc:hover .vtm-c-spc__img i{transform:scale(1.05);}
.vtm-c-spc__img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,25,58,.55) 0%,rgba(8,25,58,0) 55%);}
.vtm-c-spc__body{display:flex;flex-direction:column;flex:1;padding:24px 26px 26px;}
.vtm-c-spc h3{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:26px!important;line-height:1.15!important;margin:0 0 10px!important;color:#fff!important;}
.vtm-c-spc p{margin:0 0 18px!important;font-size:16px;line-height:1.55;color:rgba(255,255,255,.84)!important;}
.vtm-c-spc__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.14);}
.vtm-c-spc__price{font-family:"JetBrains Mono",monospace;font-weight:500;font-size:20px;}
.vtm-c-spc__more{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:#7FE3E6;}
.vtm-c-spc__more svg{transition:transform var(--vtm-t-2);}
.vtm-c-spc:hover .vtm-c-spc__more svg{transform:translate(3px,-3px);}
@media (max-width:1099px){.vtm-c-spgrid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:699px){.vtm-c-spgrid{grid-template-columns:1fr;gap:20px;}.vtm-c-spc h3{font-size:24px!important;}}
@media (hover:none){.vtm-c .vtm-c-spc:hover{transform:none;box-shadow:none;}.vtm-c-spc:hover .vtm-c-spc__img i{transform:none;}}
@media (prefers-reduced-motion:reduce){.vtm-c .vtm-c-spc,.vtm-c-spc__img i{transition:none;}}
.vtm-c-spc__more svg{width:16px;height:16px;flex:none;}.vtm-c-spc__more svg path{stroke:#7FE3E6;}

/* v1.1.65: Über uns: verhaalblok met portret (.vtm-c-story), citaat (.vtm-c-quote) en teamraster (.vtm-c-team / .vtm-c-tm) */
.vtm-c-story{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:64px;align-items:start;}
.vtm-c-story__ph{aspect-ratio:4/5;border-radius:35px;background-size:cover;background-repeat:no-repeat;background-origin:border-box;background-position:center 20%;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);}
.vtm-c-story__who{margin-top:22px;}
.vtm-c-story__who h3{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:30px!important;line-height:1.1!important;margin:0 0 6px!important;color:#fff!important;}
.vtm-c-story__who span{font-size:16px;font-weight:600;letter-spacing:.06em;color:#7FE3E6;}
.vtm-c-story__txt h2{font-size:clamp(30px,3.6vw,46px)!important;margin:10px 0 28px!important;}
.vtm-c-story__txt p{max-width:720px;margin:0 0 22px!important;font-size:18px;line-height:1.72;color:rgba(255,255,255,.88)!important;}
.vtm-c-quote{position:relative;padding:56px 64px;border-radius:35px;background:linear-gradient(135deg,#0B3A74,#0F6E86 70%,#12949A);border:1px solid rgba(127,227,230,.35);}
.vtm-c-quote p{margin:14px 0 0!important;max-width:900px;font-family:"Titan One",sans-serif!important;font-size:clamp(22px,2.7vw,34px)!important;line-height:1.35!important;color:#fff!important;}
.vtm-c-team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.vtm-c-tm{border-radius:28px;overflow:hidden;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);}
.vtm-c-tm__ph{aspect-ratio:4/5;background-size:cover;background-repeat:no-repeat;background-position:center 20%;}
.vtm-c-tm__body{padding:18px 22px 22px;}
.vtm-c-tm h3{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:24px!important;line-height:1.15!important;margin:0!important;color:#fff!important;}
.vtm-c-tm span{display:block;margin-top:6px;font-size:15px;font-weight:600;color:#7FE3E6;min-height:1.4em;}
@media (max-width:1099px){.vtm-c-team{grid-template-columns:repeat(3,1fr);}.vtm-c-story{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:40px;}}
@media (max-width:899px){.vtm-c-story{grid-template-columns:1fr;gap:28px;}.vtm-c-story__ph{max-width:340px;}.vtm-c-quote{padding:34px 26px;}}
@media (max-width:699px){.vtm-c-team{grid-template-columns:repeat(2,1fr);gap:14px;}.vtm-c-tm__body{padding:14px 16px 18px;}.vtm-c-tm h3{font-size:20px!important;}.vtm-c-story__txt p{font-size:17px;}}

/* v1.1.66: Kontakt: drie infokaarten (openingstijden, adres, contact) in glass-stijl */
.vtm-c-info{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.vtm-c-info .vtm-c-glass{padding:36px;}
.vtm-c-hrs{display:grid;gap:12px;margin-bottom:6px;}
.vtm-c-hrs div{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12);font-size:17px;}
.vtm-c-hrs div:last-child{border-bottom:0;}
.vtm-c-hrs span{color:rgba(255,255,255,.8);}
.vtm-c-hrs b{font-weight:700;color:#fff;text-align:right;}
.vtm-c-lines{margin:0 0 14px!important;font-size:19px;line-height:1.55;color:#fff!important;}
.vtm-c-small{margin:14px 0 0!important;font-size:15px;line-height:1.55;color:rgba(255,255,255,.7)!important;}
.vtm-c-links{display:grid;gap:12px;}
.vtm-c-links a{display:block;font-size:20px;font-weight:700;color:#7FE3E6!important;text-decoration:none!important;word-break:break-word;}
.vtm-c-links a:hover{text-decoration:underline!important;text-underline-offset:4px;}
@media (max-width:1099px){.vtm-c-info{grid-template-columns:1fr;}}
@media (max-width:699px){.vtm-c-info .vtm-c-glass{padding:26px;}}

/* v1.1.67: fotogalerij (Tauchclub): vierkante tegels, 4 kolommen, 3 vanaf <1100px, 2 vanaf <700px */
.vtm-c-gal{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.vtm-c-gal__i{display:block;aspect-ratio:1;border-radius:24px;background-size:cover;border:1px solid rgba(255,255,255,.12);transition:transform var(--vtm-t-2) var(--vtm-ease),box-shadow var(--vtm-t-2);}
.vtm-c-gal__i:hover{transform:scale(1.02);box-shadow:0 0 0 1px rgba(127,227,230,.5),0 0 30px 2px rgba(32,196,201,.35);}
@media (max-width:1099px){.vtm-c-gal{grid-template-columns:repeat(3,1fr);}}
@media (max-width:699px){.vtm-c-gal{grid-template-columns:repeat(2,1fr);gap:10px;}.vtm-c-gal__i{border-radius:18px;}}
@media (hover:none){.vtm-c-gal__i:hover{transform:none;box-shadow:none;}}

/* v1.1.68: digitaal Clubantrag-formulier (CF7 "Clubantrag", sectieklasse vtm-c-formsec) in de pagina-stijl: fieldsets in glass, donkere velden, kaarten voor de keuzes */
.vtm-c-formsec .wpcf7 br{display:none;}
.vtm-c-formsec .wpcf7 p{margin:0;}
.vtm-c-formsec .vtm-ca-set{margin:0 0 22px;padding:30px 32px 28px;border:1px solid rgba(255,255,255,.14);border-radius:28px;background:rgba(255,255,255,.04);min-width:0;}
.vtm-c-formsec .vtm-ca-set legend{float:none;width:auto;padding:0 10px;margin:0;font-size:18px;font-weight:700;line-height:1.3;color:#7FE3E6;}
.vtm-c-formsec .vtm-ca-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 16px;}
.vtm-c-formsec .vtm-ca-row--street{grid-template-columns:2fr 1fr;}
.vtm-c-formsec .vtm-ca-row--plz{grid-template-columns:1fr 2fr;}
.vtm-c-formsec .vtm-ca-row:last-child{margin-bottom:0;}
.vtm-c-formsec label{display:block;font-size:15px;font-weight:600;line-height:1.4;color:rgba(255,255,255,.9);}
.vtm-c-formsec .wpcf7-form-control-wrap{display:block;margin-top:7px;}
.vtm-c-formsec input[type=text],.vtm-c-formsec input[type=email],.vtm-c-formsec input[type=tel],.vtm-c-formsec input[type=date],.vtm-c-formsec textarea{width:100%;box-sizing:border-box;padding:13px 16px;font:inherit;font-size:16px;font-weight:400;color:#fff!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:14px!important;color-scheme:dark;box-shadow:none;}
.vtm-c-formsec textarea{min-height:110px;resize:vertical;}
.vtm-c-formsec input:focus,.vtm-c-formsec textarea:focus{outline:0;border-color:#20C4C9!important;box-shadow:0 0 0 3px rgba(32,196,201,.28);}
.vtm-c-formsec .wpcf7-list-item{display:block;margin:0 0 10px;}
.vtm-c-formsec .wpcf7-list-item label{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid rgba(255,255,255,.18);border-radius:16px;font-weight:500;cursor:pointer;transition:border-color var(--vtm-t-2),background var(--vtm-t-2);}
.vtm-c-formsec .wpcf7-list-item label:hover{border-color:rgba(127,227,230,.6);}
.vtm-c-formsec .wpcf7-list-item label:has(input:checked){border-color:#20C4C9;background:rgba(32,196,201,.12);}
.vtm-c-formsec input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border:2px solid rgba(255,255,255,.55);border-radius:7px;background:transparent;cursor:pointer;display:grid;place-content:center;}
.vtm-c-formsec input[type=checkbox]::before{content:"";width:11px;height:6px;border-left:3px solid #08193A;border-bottom:3px solid #08193A;transform:rotate(-45deg) translate(1px,-1px);opacity:0;}
.vtm-c-formsec input[type=checkbox]:checked{background:#20C4C9;border-color:#20C4C9;}
.vtm-c-formsec input[type=checkbox]:checked::before{opacity:1;}
.vtm-c-formsec .wpcf7-form-control-wrap[data-name="mitgliedschaft"] input[type=checkbox]{border-radius:50%;}
.vtm-c-formsec .wpcf7-acceptance .wpcf7-list-item label{border-color:transparent;padding:8px 4px;font-weight:400;font-size:15px;}
.vtm-c-formsec .wpcf7-acceptance .wpcf7-list-item label:has(input:checked){background:transparent;}
.vtm-c-formsec .wpcf7-list-item-label{min-width:0;}
.vtm-c-formsec .wpcf7-list-item-label a{color:#7FE3E6!important;text-decoration:underline!important;text-underline-offset:3px;}
.vtm-c-formsec .vtm-ca-hint{margin:6px 0 12px!important;font-size:15px;line-height:1.55;color:rgba(255,255,255,.75)!important;}
.vtm-c-formsec .vtm-ca-form.js .vtm-ca-person,.vtm-c-formsec .vtm-ca-form.js .vtm-ca-minor{display:none;}
.vtm-c-formsec .vtm-ca-form.js .vtm-ca-person.is-on{display:block;}
.vtm-c-formsec .vtm-ca-form.js .vtm-ca-minor.is-on{display:block;margin-top:14px;}
.vtm-c-formsec input[type=submit]{appearance:none;cursor:pointer;padding:17px 38px;border:0!important;border-radius:999px!important;background:#20C4C9!important;color:#0A2850!important;font:inherit;font-size:17px;font-weight:700;transition:transform var(--vtm-t-2),box-shadow var(--vtm-t-2);}
.vtm-c-formsec input[type=submit]:hover{transform:translateY(-2px);box-shadow:0 0 0 1px rgba(127,227,230,.6),0 0 34px 4px rgba(32,196,201,.5);}
.vtm-c-formsec .wpcf7-not-valid-tip{margin-top:6px;font-size:14px;color:#FF9E9E;}
.vtm-c-formsec .wpcf7-not-valid{border-color:#FF9E9E!important;}
.vtm-c-formsec .wpcf7 form .wpcf7-response-output{margin:22px 0 0;padding:16px 20px;border:1px solid rgba(127,227,230,.5);border-radius:16px;color:#fff;background:rgba(32,196,201,.1);}
.vtm-c-formsec .wpcf7 form.invalid .wpcf7-response-output,.vtm-c-formsec .wpcf7 form.failed .wpcf7-response-output{border-color:#FF9E9E;background:rgba(255,158,158,.1);}
.vtm-c-formsec .wpcf7-spinner{margin-left:14px;}
.vtm-ca-doc{margin:0 0 16px;border:1px solid rgba(255,255,255,.14);border-radius:20px;background:rgba(255,255,255,.04);}
.vtm-ca-doc summary{cursor:pointer;padding:18px 24px;font-size:17px;font-weight:700;color:#7FE3E6;list-style:none;}
.vtm-ca-doc summary::-webkit-details-marker{display:none;}
.vtm-ca-doc summary::after{content:"+";float:right;font-size:22px;line-height:1;}
.vtm-ca-doc[open] summary::after{content:"\2212";}
.vtm-ca-doc__body{max-height:420px;overflow:auto;padding:4px 24px 22px;font-size:15.5px;line-height:1.65;color:rgba(255,255,255,.85);}
.vtm-ca-doc__body h4{margin:18px 0 6px;font-size:16px;font-weight:700;color:#fff;}
.vtm-ca-doc__body p,.vtm-ca-doc__body li{color:rgba(255,255,255,.85)!important;}
.vtm-ca-doc__body ul,.vtm-ca-doc__body ol{margin:6px 0 10px 20px;padding:0;}
@media (max-width:699px){.vtm-c-formsec .vtm-ca-set{padding:24px 20px 22px;border-radius:22px;}.vtm-c-formsec .vtm-ca-row,.vtm-c-formsec .vtm-ca-row--street,.vtm-c-formsec .vtm-ca-row--plz{grid-template-columns:1fr;gap:14px;}.vtm-c-formsec input[type=submit]{width:100%;}}
.vtm-c-formsec .vtm-ca-row > p{display:contents;}
.vtm-c-formsec .vtm-ca-row > br,.vtm-c-formsec .vtm-ca-row > p > br{display:none;}
.vtm-c-formsec .vtm-ca-set > p:empty,.vtm-c-formsec .vtm-ca-set > br{display:none;}
.vtm-c-formsec .wpcf7-form-control-wrap[data-name="mitgliedschaft"] .wpcf7-form-control{display:block;}
.vtm-c-formsec .wpcf7-not-valid-tip{position:static!important;display:block!important;width:auto!important;height:auto!important;padding:0!important;margin:6px 0 0!important;background:transparent!important;color:#FF9E9E!important;font-size:14px!important;line-height:1.4!important;font-weight:500;}
.vtm-c-formsec .wpcf7-not-valid-tip::before,.vtm-c-formsec .wpcf7-not-valid-tip::after{display:none!important;content:none!important;}
body .vtm-c-sec.vtm-c-formsec .mcb-wrap .wpcf7 form .wpcf7-form-control-wrap .wpcf7-not-valid-tip,body .vtm-c-sec.vtm-c-formsec .wpcf7 .wpcf7-not-valid-tip{position:static!important;display:block!important;width:auto!important;height:auto!important;min-height:0!important;padding:0!important;margin:6px 0 0!important;background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;color:#FF9E9E!important;font-size:14px!important;line-height:1.4!important;font-weight:500!important;text-indent:0!important;transform:none!important;box-shadow:none!important;top:auto!important;left:auto!important;right:auto!important;}
body .vtm-c-sec.vtm-c-formsec .wpcf7-not-valid-tip::before,body .vtm-c-sec.vtm-c-formsec .wpcf7-not-valid-tip::after{display:none!important;content:none!important;}

/* v1.1.69: Rox 1.3.x toont in de samenvatting extra rijen (Dauer, Tauchschule); de waardekolom was te smal en kapte af ("VTM Di...") */
#kurs-buchen .summary-details-value{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;flex:0 0 auto!important;text-align:right;}

/* v1.1.70: SEPA-mandaatblok in het Clubantrag (gegevens van de Zahlungsempfänger en de juridische tekst van het bankformulier) */
.vtm-c-formsec .vtm-ca-mandat{display:grid;gap:0;margin:0 0 22px;padding:6px 22px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.04);}
.vtm-c-formsec .vtm-ca-mandat > div{display:grid;grid-template-columns:minmax(0,230px) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.vtm-c-formsec .vtm-ca-mandat > div:last-child{border-bottom:0;}
.vtm-c-formsec .vtm-ca-mandat dt{font-size:14px;color:rgba(255,255,255,.7);}
.vtm-c-formsec .vtm-ca-mandat dd{margin:0;font-weight:600;color:#fff;}
.vtm-c-formsec .vtm-ca-legal{margin:6px 0 16px;padding:18px 22px;border-left:3px solid #20C4C9;border-radius:0 14px 14px 0;background:rgba(255,255,255,.04);}
.vtm-c-formsec .vtm-ca-legal p{margin:0 0 10px!important;font-size:15px;line-height:1.6;color:rgba(255,255,255,.86)!important;}
.vtm-c-formsec .vtm-ca-legal p:last-child{margin-bottom:0!important;}
@media (max-width:699px){.vtm-c-formsec .vtm-ca-mandat > div{grid-template-columns:1fr;gap:4px;}.vtm-c-formsec .vtm-ca-legal{padding:16px;}}

/* v1.1.71: video in een kaart (Tauchbasis): laadt pas na een klik (preload none), met voorbeeldbeeld */
.vtm-c-video{margin:0;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.14);background:#000;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);}
.vtm-c-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000;}
.vtm-c-video figcaption{padding:14px 22px;font-size:15px;color:rgba(255,255,255,.75);background:rgba(255,255,255,.05);}
@media (max-width:699px){.vtm-c-video{border-radius:20px;}}

/* v1.1.72: tekstkaart in .vtm-c-glass (Service: uitleg Revision) */
.vtm-c-glass h4{margin:18px 0 6px!important;font-size:17px!important;font-weight:700;color:#7FE3E6!important;}
.vtm-c-glass h4:first-of-type{margin-top:0!important;}
.vtm-c-glass .vtm-c-ptxt{margin:0 0 6px!important;font-size:16px;line-height:1.65;color:rgba(255,255,255,.86)!important;}

/* v1.1.73: grote prijs in infokaarten (.vtm-c-bigprice) en tussenkop in prijslijsten (.vtm-c-rowh) */
.vtm-c-lines .vtm-c-bigprice{font-family:"JetBrains Mono",monospace;font-weight:500;font-size:36px;line-height:1.1;color:#fff;}
.vtm-c-hrs .vtm-c-rowh{margin:16px 0 0!important;padding-top:6px;border-top:1px solid rgba(255,255,255,.12);}


/* v1.1.74: juridische pagina's (Impressum, AGB, Datenschutzerklärung, Versicherung Aqua-Med): hero zonder foto, leesbare tekstkolom in een glaskaart, inhoudsopgave-chips */
.vtm-c-hero.vtm-c-hero--legal{min-height:0;padding:190px 0 36px!important;}
.vtm-c-hero--legal::before{display:none;}
.vtm-c-hero--legal .vtm-c-lead{max-width:640px;margin-bottom:0!important;}
.vtm-c-legalsec{padding-top:24px!important;}
.vtm-c-legal__toc{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 28px;}
.vtm-c-legal__toc > span{font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#7FE3E6;margin-right:6px;}
.vtm-c .vtm-c-legal__toc a{display:inline-block;padding:8px 16px;border-radius:999px;font-size:14px;line-height:1.3;font-weight:600;color:#fff!important;text-decoration:none!important;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);transition:background var(--vtm-t-2),border-color var(--vtm-t-2);}
.vtm-c .vtm-c-legal__toc a:hover{background:rgba(32,196,201,.16);border-color:rgba(127,227,230,.5);}
.vtm-c-legal{padding:48px 56px;border-radius:35px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);}
.vtm-c-legal > *{max-width:860px;}
.vtm-c-legal p,.vtm-c-legal li{font-size:17px!important;line-height:1.75!important;color:rgba(255,255,255,.88)!important;}
.vtm-c-legal p{margin:0 0 16px!important;overflow-wrap:anywhere;}
.vtm-c-legal strong,.vtm-c-legal b{color:#fff!important;font-weight:700;}
.vtm-c-legal h2{scroll-margin-top:120px;margin:44px 0 14px!important;padding-top:26px;border-top:1px solid rgba(255,255,255,.12);font-size:24px!important;line-height:1.3!important;color:#fff!important;}
.vtm-c-legal > h2:first-child,.vtm-c-legal > p:first-child + h2.vtm-c-first{border-top:0;padding-top:0;margin-top:0!important;}
.vtm-c-legal a{color:#7FE3E6!important;font-weight:600;text-decoration:underline!important;text-underline-offset:3px;overflow-wrap:anywhere;}
.vtm-c-legal ul,.vtm-c-legal ol{margin:0 0 18px;padding:0;list-style:none;}
.vtm-c-legal ul li{position:relative;padding-left:26px;margin:0 0 8px;}
.vtm-c-legal ul li::before{content:"";position:absolute;left:6px;top:.78em;width:7px;height:7px;border-radius:50%;background:#20C4C9;}
.vtm-c-legal ol{counter-reset:vtmleg;}
.vtm-c-legal ol li{position:relative;padding-left:34px;margin:0 0 6px;counter-increment:vtmleg;}
.vtm-c-legal ol li::before{content:counter(vtmleg) ".";position:absolute;left:0;top:0;font-family:"JetBrains Mono",monospace;font-size:15px;color:#7FE3E6;}
.vtm-c-legal ol li a{font-weight:500;}
.vtm-c-aqua__logo{display:inline-block;margin:0 0 26px;padding:16px 26px;border-radius:20px;background:#fff;}
.vtm-c-aqua__logo img{display:block;width:260px;max-width:100%;height:auto;}
.vtm-c-aqua ul li{display:flex;gap:14px;align-items:flex-start;padding-left:0;}
.vtm-c-aqua ul li::before{display:none;}
.vtm-c-aqua ul li > span:not(.vtm-c-ck){min-width:0;}
.vtm-c-legal .vtm-c-btn{display:inline-flex;margin-top:8px;color:#08193A!important;text-decoration:none!important;}
@media (max-width:899px){
  .vtm-c-hero.vtm-c-hero--legal{min-height:0;padding:150px 0 28px!important;}
  .vtm-c-legal{padding:28px 22px;border-radius:26px;}
  .vtm-c-legal p,.vtm-c-legal li{font-size:16px!important;}
  .vtm-c-legal h2{font-size:21px!important;margin-top:34px!important;}
}

/* v1.1.75: Belegungsplan (WP Simple Booking Calendar, [wpsbc]) in het donkere ontwerp: glaskaart, groen blauwgroen = verfügbar, rood = gebucht, amber = Umstellung */
.vtm-c-calsec .column_attr{padding:0!important;}
.vtm-c-calsec .wpsbc-container{max-width:440px;color:#fff;}
.vtm-c-calsec .wpsbc-calendars-wrapper{display:flex;flex-direction:column;gap:18px;width:100%;}
.vtm-c-calsec .wpsbc-calendars{width:100%!important;}
.vtm-c-calsec .wpsbc-calendar{width:100%!important;max-width:440px!important;padding:12px;border-radius:28px;background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.14)!important;}
.vtm-c-calsec .wpsbc-calendar-header{background:transparent!important;border:0!important;}
.vtm-c-calsec .wpsbc-calendar-header .wpsbc-prev,.vtm-c-calsec .wpsbc-calendar-header .wpsbc-next{background:rgba(255,255,255,.14)!important;border-radius:50%;}
.vtm-c-calsec .wpsbc-calendar-header .wpsbc-prev:hover,.vtm-c-calsec .wpsbc-calendar-header .wpsbc-next:hover{background:rgba(32,196,201,.5)!important;}
.vtm-c-calsec .wpsbc-select-container select{background:#0F2A55!important;color:#fff!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:14px;}
.vtm-c-calsec .wpsbc-select-container option{background:#0F2A55;color:#fff;}
.vtm-c-calsec .wpsbc-calendar th{color:#7FE3E6!important;font-weight:600;font-size:13px;}
.vtm-c-calsec .wpsbc-date{border-radius:12px;overflow:hidden;}
.vtm-c-calsec .wpsbc-date.wpsbc-gap{background:transparent!important;}
.vtm-c-calsec .wpsbc-date-number{color:#fff!important;font-weight:600;}
.vtm-c-calsec .wpsbc-legend-item-icon-1 .wpsbc-legend-item-icon-color{background:rgba(32,196,201,.34)!important;}
.vtm-c-calsec .wpsbc-legend-item-icon-2 .wpsbc-legend-item-icon-color{background:rgba(255,107,107,.42)!important;}
.vtm-c-calsec .wpsbc-legend-item-icon-3 .wpsbc-legend-item-icon-color{background:rgba(255,200,87,.45)!important;}
.vtm-c-calsec .wpsbc-legend{background:transparent!important;border:0!important;padding:0 6px!important;display:flex;flex-wrap:wrap;gap:8px 22px;}
.vtm-c-calsec .wpsbc-legend-item-name{color:#fff!important;font-size:15px;}

/* v1.1.76: header bovenaan de pagina: menu rechts (Service, Preise, Über uns, Kontakt) breekt niet meer over twee regels */
@media (min-width:1100px){
  .mfn-header-menu.mfn-header-mainmenu{flex-wrap:nowrap!important;}
  .mfn-header-menu.mfn-header-mainmenu .mfn-menu-link{padding-left:10px!important;padding-right:10px!important;white-space:nowrap;}
}
@media (min-width:1280px){
  .mfn-header-menu.mfn-header-mainmenu .mfn-menu-link{padding-left:14px!important;padding-right:14px!important;}
}

/* v1.1.77: systeempagina's (Termine, Warenkorb, Kasse, Mein Konto, Buchungskonto) in het donkere ontwerp */
.section.the_content:empty{display:none!important;}
.vtm-c-syssec .column_attr{padding:40px;border-radius:35px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.9);font-size:17px;line-height:1.7;}
.vtm-c-syssec .column_attr h1,.vtm-c-syssec .column_attr h2,.vtm-c-syssec .column_attr h3,.vtm-c-syssec .column_attr h4{color:#fff!important;}
.vtm-c-syssec .column_attr a{color:#7FE3E6;}
.vtm-c-syssec label,.vtm-c-syssec .column_attr p,.vtm-c-syssec .column_attr li,.vtm-c-syssec .column_attr td,.vtm-c-syssec .column_attr th{color:rgba(255,255,255,.92)!important;}
.vtm-c-syssec label{font-weight:600;}
.vtm-c-syssec input[type=text],.vtm-c-syssec input[type=email],.vtm-c-syssec input[type=password],.vtm-c-syssec input[type=tel],.vtm-c-syssec input[type=number],.vtm-c-syssec input[type=search],.vtm-c-syssec textarea,.vtm-c-syssec select{background:#fff!important;color:#0A2850!important;border:1px solid transparent!important;border-radius:14px!important;padding:12px 16px!important;min-height:48px;font-size:16px!important;width:100%;max-width:480px;box-sizing:border-box;}
.vtm-c-syssec button,.vtm-c-syssec .button,.vtm-c-syssec a.button,.vtm-c-syssec input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px!important;border:0!important;border-radius:999px!important;background:#20C4C9!important;color:#0A2850!important;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none;}
.vtm-c-syssec button:hover,.vtm-c-syssec .button:hover,.vtm-c-syssec a.button:hover{background:#7FE3E6!important;}
.vtm-c-syssec .woocommerce-message,.vtm-c-syssec .woocommerce-info,.vtm-c-syssec .woocommerce-error{margin:0 0 20px;padding:16px 22px;border-radius:20px;list-style:none;background:rgba(32,196,201,.1);border:1px solid rgba(127,227,230,.3);color:#fff;}
.vtm-c-syssec .woocommerce-error{background:rgba(255,107,107,.12);border-color:rgba(255,107,107,.4);}
.vtm-c-syssec table{width:100%;border-collapse:collapse;}
.vtm-c-syssec table th,.vtm-c-syssec table td{padding:12px 10px;border:0;border-bottom:1px solid rgba(255,255,255,.14);background:transparent;text-align:left;}
.vtm-c-syssec .woocommerce-MyAccount-navigation ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;padding:0;}
.vtm-c-syssec .woocommerce-MyAccount-navigation a{display:inline-block;padding:8px 16px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:#fff;text-decoration:none;font-weight:600;}
/* Rox: aanmeldformulier van het klantpaneel */
.vtm-c-syssec .rlf-login-form .form-group{margin:0 0 18px;}
.vtm-c-syssec .rlf-login-form label{display:block;margin:0 0 8px;}
.vtm-c-syssec .rlf-login-form .footer-btn-container{display:flex;flex-wrap:wrap;align-items:center;gap:18px;}
.vtm-c-syssec .rlf-login-form .primary-submit-btn{background:#20C4C9!important;color:#0A2850!important;}
.vtm-c-syssec .rlf-login-form .forgot-password-link{color:#7FE3E6;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
/* EventON: Terminliste */
.vtm-c-syssec .eventon_events_list .evcal_month_line p{margin:34px 0 12px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#7FE3E6!important;}
.vtm-c-syssec .eventon_events_list .eventon_list_event .desc_trig{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.14);border-left:4px solid #20C4C9;border-radius:18px;padding:18px 22px;color:#fff!important;}
.vtm-c-syssec .eventon_events_list .eventon_list_event .desc_trig *{color:#fff!important;}
.vtm-c-syssec .eventon_events_list .eventon_list_event .desc_trig:hover{background:rgba(32,196,201,.14)!important;}
.vtm-c-syssec .eventon_events_list .eventon_list_event.no_events{background:transparent;box-shadow:none;border:0;}
.vtm-c-syssec .eventon_events_list .no_events{margin:0;padding:0 0 4px;color:rgba(255,255,255,.55)!important;font-size:15px;text-transform:none;background:transparent!important;}
.vtm-c-syssec .evo_filter_bar,.vtm-c-syssec .evo_loading_bar_holder{display:none!important;}
.vtm-c-syssec .cal_head_btn{background:rgba(255,255,255,.1)!important;color:#fff!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:999px!important;padding:8px 18px!important;}
@media (max-width:899px){.vtm-c-syssec .column_attr{padding:26px 20px;border-radius:26px;}}

/* v1.1.78: verfijning systeempagina's */
.vtm-c-syssec .eventon_events_list .no_event,.vtm-c-syssec .eventon_events_list .no_event *{background:transparent!important;box-shadow:none!important;border:0!important;}
.vtm-c-syssec .eventon_events_list .no_event .no_events{color:rgba(255,255,255,.55)!important;text-transform:none;font-size:15px;padding:0 0 6px;}
.vtm-c-syssec .eventon_events_list .eventon_list_event .desc_trig{display:block!important;width:100%!important;box-sizing:border-box;}
.vtm-c-syssec .eventon_events_list .eventon_list_event .desc_trig:not(.no_events){margin-bottom:10px;}
.vtm-c-syssec .woocommerce-form-login{max-width:520px;margin:0;padding:0;border:0;}
.vtm-c-syssec .woocommerce-form-row,.vtm-c-syssec .form-row{float:none!important;width:100%!important;padding:0!important;margin:0 0 18px!important;}
.vtm-c-syssec .woocommerce-form-row label,.vtm-c-syssec .form-row label{display:block;margin:0 0 8px;}
.vtm-c-syssec .password-input{position:relative;display:block;max-width:480px;}
.vtm-c-syssec .password-input input{padding-right:52px!important;}
.vtm-c-syssec .show-password-input{position:absolute;right:10px;top:50%;transform:translateY(-50%);min-height:0!important;width:32px;height:32px;padding:0!important;background:transparent!important;border-radius:8px!important;}
.vtm-c-syssec .woocommerce-form__label-for-checkbox{display:flex;align-items:center;gap:10px;font-weight:400;}
.vtm-c-syssec .rlf-login-form label{font-size:16px!important;}
.vtm-c-syssec .rlf-login-form .primary-submit-btn{font-size:16px!important;min-height:48px;padding:0 28px!important;width:auto!important;}
.vtm-c-syssec .rlf-login-form input{max-width:480px;}

/* v1.1.79: tikvlakken (min. 44 px) op tablet en mobiel in footer, contactgegevens en inhoudsopgave; lange prijsregels breken netjes op 320 px */
@media (max-width:1024px){
  .mfn-footer-tmpl .menu-item a{display:block;padding:8px 0;min-height:44px;line-height:28px;box-sizing:border-box;}
  .mfn-footer-tmpl .column_attr > a{display:inline-block;padding:11px 0;}
  .mfn-footer-tmpl a.mfn-icon-2{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;}
  .vtm-c-links a{display:inline-flex;align-items:center;min-height:44px;}
  .vtm-c .vtm-c-legal__toc a{padding:12px 18px;}
}
.vtm-c-cards > *,.vtm-c-info > *{min-width:0;}
.vtm-c-hrs div{gap:14px;}
.vtm-c-hrs span{min-width:0;overflow-wrap:anywhere;}
.vtm-c-hrs b{white-space:nowrap;text-align:right;}
.vtm-c-nb{white-space:nowrap;}
/* v1.1.80: vtm-c-nb (VTM-Dive niet afbreken in koppen) */

/* ================================================================================
   v1.2.0 ART DIRECTION "Logbuch am Südsee" (alleen de .vtm-c-pagina's; homepage, header en footer blijven ongemoeid)
   Terugdraaien: dit hele blok tot "EINDE v1.2.0" verwijderen.
   Principes: massief in plaats van glas (panel #0D2247, lijn #22427A, 14 px), getallen als uitlezing (mono, signaaloranje #FF8A5B),
   knoppen als toets, prijslijsten met stippellijn, beweging alleen functioneel (120 ms), geen gloed, geen zoom.
   ================================================================================ */
:root{--vtm-panel:#0D2247;--vtm-rule:#22427A;--vtm-signal:#FF8A5B;--vtm-teal:#20C4C9;}
.vtm-c-head h2,.vtm-c-hero h1,.vtm-c-gift h2{text-wrap:balance;}
.vtm-c-eyebrow::before{content:"";display:inline-block;width:22px;height:2px;margin-right:12px;vertical-align:middle;background:var(--vtm-signal);}
/* panelen */
.vtm-c-glass,.vtm-c-legal,.vtm-c-syssec .column_attr{background:var(--vtm-panel);border:1px solid var(--vtm-rule);border-radius:14px;}
.vtm-c-glass{padding:36px;}
.vtm-c .vtm-c-spc{background:var(--vtm-panel);border:1px solid var(--vtm-rule);border-radius:14px;box-shadow:none;transition:border-color var(--vtm-t-1) ease;}
.vtm-c .vtm-c-spc:hover{transform:none;box-shadow:none;border-color:var(--vtm-teal);}
.vtm-c-spc:hover .vtm-c-spc__img i{transform:none;}
.vtm-c-spc__img::after{display:none;}
.vtm-c-spc__img{border-bottom:1px solid var(--vtm-rule);}
.vtm-c-spc__price,.vtm-c-hrs b,.vtm-c-lines .vtm-c-bigprice{color:var(--vtm-signal);}
.vtm-c-spc__foot{border-top:1px solid var(--vtm-rule);}
.vtm-c-opt{border-radius:14px;border:1px solid var(--vtm-rule);transition:border-color var(--vtm-t-1) ease;}
.vtm-c-opt:hover{transform:none;box-shadow:none;border-color:var(--vtm-teal);}
.vtm-c-opt:hover .vtm-c-opt__bg{transform:none;}
.vtm-c-gift{border-radius:14px;background:var(--vtm-panel);border:1px solid var(--vtm-rule);}
.vtm-c-note{border-radius:0 12px 12px 0;background:var(--vtm-panel);border:0;border-left:4px solid var(--vtm-signal);}
.vtm-c-gal__i{border-radius:10px;border:1px solid var(--vtm-rule);transition:border-color var(--vtm-t-1) ease;}
.vtm-c-gal__i:hover{transform:none;box-shadow:none;border-color:var(--vtm-teal);}
/* knoppen als toets */
.vtm-c a.vtm-c-btn{border-radius:12px;padding:15px 24px;transition:background-color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease,box-shadow var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
.vtm-c a.vtm-c-btn--pri{box-shadow:0 4px 0 #14878B;}
.vtm-c a.vtm-c-btn--pri:hover{background:#7FE3E6;transform:none;}
.vtm-c a.vtm-c-btn--pri:active{transform:translateY(3px);box-shadow:0 1px 0 #14878B;}
.vtm-c a.vtm-c-btn--sec{border-radius:12px;}
.vtm-c a.vtm-c-btn--sec:hover{transform:none;}
.vtm-c a:focus-visible,.vtm-c button:focus-visible,.vtm-c input:focus-visible,.vtm-c textarea:focus-visible,.vtm-c select:focus-visible{outline:3px solid var(--vtm-signal);outline-offset:3px;}
/* hero-chips als meetstrook */
.vtm-c-chips{display:inline-flex;flex-wrap:wrap;gap:0;margin:0 0 30px!important;border:1px solid rgba(127,227,230,.45);border-radius:10px;background:rgba(8,25,58,.72);}
.vtm-c-chips li{padding:9px 16px;border:0;border-right:1px solid rgba(127,227,230,.3);border-radius:0;background:transparent;font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;}
.vtm-c-chips li:last-child{border-right:0;}
.vtm-c-chips b{color:var(--vtm-signal);}
@media (max-width:699px){.vtm-c-chips{display:flex;flex-direction:column;align-items:stretch;}.vtm-c-chips li{border-right:0;border-bottom:1px solid rgba(127,227,230,.3);}.vtm-c-chips li:last-child{border-bottom:0;}}
/* vinkjes en stappen */
.vtm-c-ck{width:22px;height:22px;background:transparent;border:0;border-radius:0;}
.vtm-c-ck svg{width:20px;height:20px;}
.vtm-c-step__n{border-radius:10px;border-color:var(--vtm-teal);}
.vtm-c-steps::before{height:1px;background:var(--vtm-rule);}
/* prijslijsten met stippellijn */
.vtm-c-hrs div{align-items:baseline;border-bottom:0;padding-bottom:0;}
.vtm-c-hrs div > span{display:flex;flex:1;align-items:baseline;gap:10px;}
.vtm-c-hrs div > span::after{content:"";flex:1;min-width:16px;border-bottom:2px dotted rgba(127,227,230,.4);transform:translateY(-5px);}
.vtm-c-hrs .vtm-c-rowh{border-top:1px solid var(--vtm-rule);}
/* ritme: de tweede kaart staat lager en de eerste is breder */
@media (min-width:900px){
  .vtm-c-cards{grid-template-columns:1.25fr 1fr;align-items:start;}
  .vtm-c-cards > :nth-child(2){margin-top:44px;}
}
/* kleinere onderdelen in dezelfde taal */
.vtm-c .vtm-c-legal__toc a{border-radius:8px;}
.vtm-c-calsec .wpsbc-calendar{border-radius:14px;}
@media (prefers-reduced-motion:reduce){.vtm-c *,.vtm-c *::before,.vtm-c *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important;}}
/* EINDE v1.2.0 */

/* v1.2.1: een "tight" sectie zet de opvulling bovenaan op 0 en moet dus dezelfde achtergrond voortzetten; bij --alt begon de verloop opnieuw en gaf een harde rand (Über uns, citaat) */
.vtm-c-sec--alt.vtm-c-sec--tight{background:#08193A;}

/* v1.2.1: citaatkaart in dezelfde taal (massief paneel, oranje balk) */
.vtm-c-quote{border-radius:14px;background:var(--vtm-panel,#0D2247);border:1px solid var(--vtm-rule,#22427A);border-left:6px solid var(--vtm-signal,#FF8A5B);}

/* ================================================================================
   v1.2.2 HOMEPAGE in dezelfde art direction (akkoord klant 2026-10-25; alleen staging, live pas na "ja")
   Terugdraaien: dit blok tot "EINDE v1.2.2" verwijderen. Header en footer blijven zoals ze zijn.
   ================================================================================ */
body.home #Content .vtm-photocard,body.home #Content .vtm-seccard{border-radius:14px;}
body.home #Content .vtm-seccard{background:#0D2247!important;border:1px solid #22427A!important;-webkit-backdrop-filter:none;backdrop-filter:none;}
body.home #Content .vtm-photocard-badge{border-radius:6px;background:rgba(8,25,58,.88);border:1px solid rgba(127,227,230,.45);-webkit-backdrop-filter:none;backdrop-filter:none;}
body.home #Content .vtm-photocard:hover,body.home #Content .vtm-seccard:hover{box-shadow:none!important;}
body.home #Content a.button{border-radius:12px!important;font-weight:700;transition:background-color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
body.home #Content a.button:active{transform:translateY(2px);}
body.home #Content a:focus-visible{outline:3px solid #FF8A5B;outline-offset:3px;}
/* leesbaarheid: labels in de hero (waren #01b5d8 op blauw, contrast ca. 2 : 1) */
body.home #Content span[style*="01b5d8"]{color:#BFF4F5!important;}
/* Termijnenlijst (EventON) overal in het donker, ook op de homepage: wit op geel was onleesbaar */
.ajde_evcal_calendar .evo_header_title,.ajde_evcal_calendar .evo_header_title *{color:#fff!important;}
.ajde_evcal_calendar .eventon_list_event .desc_trig{background:rgba(255,255,255,.08)!important;border:1px solid #22427A;border-left:4px solid #20C4C9;border-radius:12px;}
.ajde_evcal_calendar .eventon_list_event .desc_trig *{color:#fff!important;}
.ajde_evcal_calendar .eventon_list_event .desc_trig:hover{background:rgba(32,196,201,.16)!important;}
@media (prefers-reduced-motion:reduce){body.home #Content *{transition:none!important;}}
/* EINDE v1.2.2 */

/* ================================================================================
   v1.3.0 HOMEPAGE "Der Einstieg": groß, hell nach dunkel (Wasseroberfläche bis Grund), Titan One in Riesengröße, Leseblöcke wie auf Papier.
   Alleen `.vtm-h` (kurs-home.php). Terugdraaien: blok verwijderen en de oude pagina uit optie vtm_home_backup_20261025 terugzetten.
   ================================================================================ */
body.home .vtm-h-sec{padding:120px 0!important;background:transparent;}
body.home .vtm-h-sec--modals{padding:0!important;}
body.home .vtm-h-sec--partners{padding:40px 0 100px!important;}
body.home .mcb-section.vtm-depth{height:auto!important;min-height:min(100svh,940px);}
.vtm-h{color:#fff;}
.vtm-h-eyebrow{display:block;font-family:"JetBrains Mono",monospace;font-weight:500;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#BFF4F5;}
.vtm-h-eyebrow::before{content:"";display:inline-block;width:28px;height:2px;margin-right:12px;vertical-align:middle;background:var(--vtm-signal,#FF8A5B);}
.vtm-h-h1{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:clamp(36px,5.6vw,84px)!important;line-height:1!important;letter-spacing:-.01em;margin:20px 0 22px!important;max-width:1100px;color:#fff!important;text-wrap:balance;text-shadow:0 8px 40px rgba(1,20,50,.45);}
.vtm-h-h1 em{font-style:normal;color:#7FE3E6;}
.vtm-h-h2{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:clamp(36px,5.2vw,74px)!important;line-height:1.02!important;margin:14px 0 24px!important;color:#fff!important;text-wrap:balance;}
.vtm-h-h3{font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:clamp(28px,3.2vw,44px)!important;line-height:1.08!important;margin:12px 0 14px!important;color:#fff!important;}
.vtm-h-sub{max-width:640px;margin:0 0 26px!important;font-size:18px;line-height:1.7;color:rgba(255,255,255,.9)!important;}
.vtm-h-lead{max-width:680px;margin:0 auto 34px!important;font-size:clamp(17px,1.6vw,21px);line-height:1.6;color:#fff!important;text-shadow:0 2px 20px rgba(1,20,50,.5);}
.vtm-h-more{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:16px;color:#7FE3E6!important;text-decoration:none!important;border-bottom:2px solid rgba(127,227,230,.4);padding-bottom:3px;transition:border-color var(--vtm-t-1) ease;}
.vtm-h-more:hover{border-color:#7FE3E6;}
.vtm-h-more svg{width:16px;height:16px;}
/* hero */
.vtm-h-herobox{display:flex;flex-direction:column;align-items:center;text-align:center;padding:150px 0 50px;}
.vtm-h-herobox .vtm-h-eyebrow{justify-content:center;color:#fff;}
.vtm-h-ctas{justify-content:center;margin-bottom:40px;}
.vtm-h-readout{display:grid;grid-template-columns:repeat(4,auto);margin:0;border:1px solid rgba(255,255,255,.4);border-radius:12px;background:rgba(5,35,70,.55);overflow:hidden;}
.vtm-h-readout > div{padding:14px 26px;border-right:1px solid rgba(255,255,255,.28);text-align:left;}
.vtm-h-readout > div:last-child{border-right:0;}
.vtm-h-readout dt{margin:0 0 4px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#BFF4F5;}
.vtm-h-readout dd{margin:0;font-family:"JetBrains Mono",monospace;font-weight:500;font-size:22px;color:#fff;white-space:nowrap;}
.vtm-h-readout small{font-size:13px;color:#FF8A5B;}
/* dein weg */
.vtm-h-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,.35);}
.vtm-h-step{display:flex;flex-direction:column;gap:12px;padding:26px 26px 34px 0;color:#fff!important;text-decoration:none!important;border-right:1px solid rgba(255,255,255,.18);padding-left:26px;}
.vtm-h-step:first-child{padding-left:0;}.vtm-h-step:last-child{border-right:0;}
.vtm-h-step__n{font-family:"Titan One",sans-serif;font-size:clamp(70px,8vw,120px);line-height:.9;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.55);transition:color var(--vtm-t-1) ease,-webkit-text-stroke-color var(--vtm-t-1) ease;}
.vtm-h-step:hover .vtm-h-step__n{color:#FF8A5B;-webkit-text-stroke-color:#FF8A5B;}
.vtm-h-step__t{font-family:"Titan One",sans-serif;font-size:26px;line-height:1.1;}
.vtm-h-step__p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.88);}
.vtm-h-step__price{margin-top:auto;font-family:"JetBrains Mono",monospace;font-weight:500;font-size:18px;color:#FF8A5B;}
/* kurse-mozaiek */
.vtm-h-mosaic{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(250px,auto);gap:20px;margin-top:44px;}
.vtm-h-tile{position:relative;display:flex;align-items:flex-end;min-height:260px;border-radius:14px;overflow:hidden;color:#fff!important;text-decoration:none!important;border:1px solid #22427A;isolation:isolate;transition:border-color var(--vtm-t-1) ease;}
.vtm-h-tile:hover{border-color:#7FE3E6;}
.vtm-h-tile--a{grid-column:1/8;grid-row:1/3;min-height:540px;}
.vtm-h-tile--b{grid-column:8/13;}.vtm-h-tile--c{grid-column:8/13;}
.vtm-h-tile--finder{grid-column:1/13;min-height:0;background:#0D2247;}
.vtm-h-tile__img{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;}
.vtm-h-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(5,25,58,.92) 0%,rgba(5,25,58,.35) 55%,rgba(5,25,58,0) 100%);}
.vtm-h-tile--finder::after{display:none;}
.vtm-h-tile__body{display:flex;flex-direction:column;gap:8px;padding:28px;max-width:640px;}
.vtm-h-tile__price{align-self:flex-start;padding:5px 10px;border-radius:6px;background:rgba(8,25,58,.85);border:1px solid rgba(255,138,91,.6);font-family:"JetBrains Mono",monospace;font-size:14px;color:#FF8A5B;}
.vtm-h-tile__t{font-family:"Titan One",sans-serif;font-size:clamp(26px,3vw,40px);line-height:1.05;}
.vtm-h-tile__p{font-size:16px;line-height:1.55;color:rgba(255,255,255,.9);}
.vtm-h-tile__go{margin-top:6px;font-weight:700;color:#7FE3E6;display:inline-flex;gap:8px;align-items:center;}
.vtm-h-tile__go svg{width:16px;height:16px;}
/* südsee */
.vtm-h-split{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;}
.vtm-h-split__img{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;border:1px solid #22427A;background-size:cover;background-position:center;}
.vtm-h-play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:12px;background:#20C4C9;box-shadow:0 5px 0 #14878B;}
.vtm-h-play::before{content:"";position:absolute;left:50%;top:50%;margin:-14px 0 0 -9px;border-left:26px solid #0A2850;border-top:14px solid transparent;border-bottom:14px solid transparent;}
.vtm-h-split__txt .vtm-c-hrs{margin:0 0 26px;max-width:480px;}
/* team */
.vtm-h-people{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:40px 0 34px;align-items:start;}
.vtm-h-person{display:block;color:#fff!important;text-decoration:none!important;}
.vtm-h-person:nth-child(even){margin-top:40px;}
.vtm-h-person__img{display:block;aspect-ratio:3/4;border-radius:14px;background-size:cover;background-repeat:no-repeat;background-origin:border-box;background-position:center 20%;border:1px solid #22427A;}
.vtm-h-person__n{display:block;margin-top:14px;font-family:"Titan One",sans-serif;font-size:26px;}
.vtm-h-person__r{display:block;margin-top:2px;font-size:15px;color:#BFF4F5;}
/* für alle */
.vtm-h-duo{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.vtm-h-duo__i{position:relative;display:flex;align-items:flex-end;min-height:480px;border-radius:14px;overflow:hidden;background-size:cover;border:1px solid #22427A;color:#fff!important;text-decoration:none!important;isolation:isolate;transition:border-color var(--vtm-t-1) ease;}
.vtm-h-duo__i:hover{border-color:#7FE3E6;}
.vtm-h-duo__i::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(5,25,58,.94),rgba(5,25,58,.2) 65%,rgba(5,25,58,0));}
.vtm-h-duo__b{display:flex;flex-direction:column;gap:10px;padding:34px;}
.vtm-h-duo__t{font-family:"Titan One",sans-serif;font-size:clamp(30px,3.4vw,48px);line-height:1.05;}
.vtm-h-duo__p{max-width:420px;font-size:17px;line-height:1.55;}
/* specialties */
.vtm-h-specs{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start;}
.vtm-h-specs__r a{display:flex;align-items:baseline;gap:12px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.2);color:#fff!important;text-decoration:none!important;font-size:19px;}
.vtm-h-specs__r a:first-child{border-top:1px solid rgba(255,255,255,.2);}
.vtm-h-specs__r a span::after{content:"";display:block;}
.vtm-h-specs__r a span{display:flex;flex:1;align-items:baseline;gap:10px;}
.vtm-h-specs__r a span::after{flex:1;min-width:16px;border-bottom:2px dotted rgba(127,227,230,.45);transform:translateY(-5px);}
.vtm-h-specs__r a b{font-family:"JetBrains Mono",monospace;font-weight:500;color:#FF8A5B;}
.vtm-h-specs__r a:hover span{color:#7FE3E6;}
/* club */
.vtm-h-club{position:relative;display:flex;align-items:center;min-height:540px;border-radius:14px;overflow:hidden;background-size:cover;background-position:60% 40%;border:1px solid #22427A;isolation:isolate;}
.vtm-h-club::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,25,58,.95) 0%,rgba(5,25,58,.82) 45%,rgba(5,25,58,.1) 100%);}
.vtm-h-club__b{max-width:560px;padding:48px;}
.vtm-h-club__b .vtm-c-hrs{margin:0 0 28px;}
/* gästestimmen: helle Papierkarten */
.vtm-h-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0 34px;align-items:start;}
.vtm-h-rev{margin:0;padding:30px;border-radius:14px;background:#F6F2E9;color:#0A2850;}
.vtm-h-rev:nth-child(2){margin-top:34px;}
.vtm-h-rev__s{display:flex;gap:3px;margin-bottom:16px;}.vtm-h-rev__s svg{width:22px;height:22px;}
.vtm-h-rev blockquote{margin:0;padding:0;border:0;background:transparent;font-size:16px;line-height:1.7;color:#16335E!important;font-style:normal;}
.vtm-h-rev figcaption{margin-top:18px;font-weight:700;color:#0A2850;}.vtm-h-rev small{font-weight:400;color:#5B6B7F;}
/* mehr als tauchkurse */
.vtm-h-row{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center;margin-top:64px;}
.vtm-h-row--rev{grid-template-columns:1fr 1.1fr;}.vtm-h-row--rev .vtm-h-row__img{order:2;}
.vtm-h-row__img{display:block;aspect-ratio:16/10;border-radius:14px;border:1px solid #22427A;background-size:cover;}
.vtm-h-badge{display:inline-block;margin:0 0 14px!important;padding:5px 10px;border-radius:6px;border:1px solid rgba(255,138,91,.6);font-family:"JetBrains Mono",monospace;font-size:13px;color:#FF8A5B!important;}
.vtm-h-events .vtm-h-sub{max-width:760px;}
.vtm-h-partnerwrap{max-width:900px;margin:0 auto;}
@media (max-width:1099px){
  .vtm-h-steps{grid-template-columns:1fr 1fr;}.vtm-h-step{border-bottom:1px solid rgba(255,255,255,.18);padding-left:0;border-right:0;padding-right:20px;}
  .vtm-h-people{grid-template-columns:repeat(2,1fr);}.vtm-h-person:nth-child(even){margin-top:0;}
  .vtm-h-split,.vtm-h-specs,.vtm-h-row,.vtm-h-row--rev{grid-template-columns:1fr;gap:30px;}.vtm-h-row--rev .vtm-h-row__img{order:0;}
  .vtm-h-revs{grid-template-columns:1fr;}.vtm-h-rev:nth-child(2){margin-top:0;}
  .vtm-h-duo{grid-template-columns:1fr;}
  .vtm-h-mosaic{grid-template-columns:1fr 1fr;}.vtm-h-tile--a{grid-column:1/3;grid-row:auto;min-height:420px;}.vtm-h-tile--b,.vtm-h-tile--c{grid-column:auto;}.vtm-h-tile--finder{grid-column:1/3;}
}
@media (max-width:699px){
  body.home .vtm-h-sec{padding:80px 0!important;}
  .vtm-h-herobox{padding:150px 0 50px;}
  .vtm-h-readout{grid-template-columns:1fr 1fr;width:100%;}.vtm-h-readout > div{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.28);}.vtm-h-readout > div:nth-child(2n){border-right:0;}.vtm-h-readout dd{font-size:18px;}
  .vtm-h-steps{grid-template-columns:1fr;}
  .vtm-h-mosaic{grid-template-columns:1fr;}.vtm-h-tile--a,.vtm-h-tile--finder{grid-column:auto;}.vtm-h-tile--a{min-height:380px;}
  .vtm-h-club__b{padding:30px 24px;}.vtm-h-duo__i{min-height:400px;}
}
@media (prefers-reduced-motion:reduce){.vtm-h *{transition:none!important;}}
/* Abstieg: de achtergrond wordt per sectie dieper, van het blauw onder het hero-beeld (#005f82) tot het donkere navy van de footer */
body.home .vtm-h-sec--way{background:linear-gradient(180deg,#005f82,#05517a)!important;}
body.home .vtm-h-sec--courses{background:linear-gradient(180deg,#05517a,#07446e)!important;}
body.home .vtm-h-sec--sea{background:linear-gradient(180deg,#07446e,#093a62)!important;}
body.home .vtm-h-sec--team{background:linear-gradient(180deg,#093a62,#0a3058)!important;}
body.home .vtm-h-sec--forall{background:linear-gradient(180deg,#0a3058,#0a284d)!important;}
body.home .vtm-h-sec--specs{background:linear-gradient(180deg,#0a284d,#0a2145)!important;}
body.home .vtm-h-sec--club{background:linear-gradient(180deg,#0a2145,#091c3e)!important;}
body.home .vtm-h-sec--revs{background:linear-gradient(180deg,#091c3e,#08193A)!important;}
body.home .vtm-h-sec--more,body.home .vtm-h-sec--events,body.home .vtm-h-sec--partners{background:#08193A!important;}
/* EINDE v1.3.0 */

/* v1.3.1: pijlen in knoppen en links nemen de tekstkleur over (waren vast #0A2850 en dus onzichtbaar op de donkere secundaire knop) */
.vtm-c svg path[stroke="#0A2850"],.vtm-h svg path[stroke="#0A2850"]{stroke:currentColor;}
.vtm-c a.vtm-c-btn--sec svg,.vtm-c a.vtm-c-btn--sec svg path{color:#fff;}
.vtm-c a.vtm-c-btn--sec:hover svg{color:#0A2850;}

/* v1.3.2: tablet: meetstrook in 2 x 2 zonder afgebroken labels, clubtekst leesbaar over het beeld */
.vtm-h-readout dt{white-space:nowrap;}
@media (max-width:1099px){
  .vtm-h-readout{grid-template-columns:1fr 1fr;width:min(100%,560px);}
  .vtm-h-readout > div{border-bottom:1px solid rgba(255,255,255,.28);}
  .vtm-h-readout > div:nth-child(2n){border-right:0;}
  .vtm-h-readout > div:nth-child(n+3){border-bottom:0;}
  .vtm-h-club::before{background:linear-gradient(90deg,rgba(5,25,58,.93) 0%,rgba(5,25,58,.86) 60%,rgba(5,25,58,.7) 100%);}
}
@media (max-width:699px){.vtm-h-readout > div:nth-child(n+3){border-bottom:0;}}
@media (max-width:699px){
  .vtm-h-readout{width:100%;}
  .vtm-h-readout > div{min-width:0;}
  .vtm-h-readout dd{white-space:normal;font-size:17px;}
  .vtm-h-readout dd small{display:block;margin-top:2px;}
}

/* v1.3.3: partnerbalk zonder kader. Een open strook met twee haarlijnen, titel links als label, logos gelijk verdeeld op één rij.
   De effecten blijven: de glans over de hele groep, het binnenvliegen per logo, de gloed en het dimmen van de anderen bij hover. */
body.home #Content .vtm-h-partnerwrap{max-width:1220px;}
body.home #Content .vtm-h-partnerwrap .vtm-partners{max-width:none;padding-top:0;}
body.home #Content .vtm-h-partnerwrap .vtm-partners-box{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 56px;width:100%;padding:36px 0;background:none;border:0;border-top:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);border-radius:0;box-shadow:none;--u:.84!important;}
body.home #Content .vtm-h-partnerwrap .vtm-partners-sheen{border-radius:0;}
body.home #Content .vtm-h-partnerwrap .vtm-partners-title{position:static;transform:none;margin:0;padding:0;background:none;border:0;border-radius:0;text-align:left;font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:500;letter-spacing:.14em;color:#BFF4F5;}
body.home #Content .vtm-h-partnerwrap .vtm-partners-title::before{content:"";display:block;width:28px;height:2px;margin-bottom:12px;background:#FF8A5B;}
body.home #Content .vtm-h-partnerwrap .vtm-partners-list{justify-content:space-between;max-width:none;gap:20px 24px;}
@media (max-width:1099px){
  body.home #Content .vtm-h-partnerwrap .vtm-partners-box{grid-template-columns:1fr;gap:26px;padding:30px 0;--u:.8!important;}
  body.home #Content .vtm-h-partnerwrap .vtm-partners-list{justify-content:center;}
}

/* v1.3.4: EventON-pijlen (vorige/volgende maand) waren wit met een witte pijl en dus onzichtbaar zonder hover */
.ajde_evcal_calendar .evcal_arrows{width:40px;height:40px;border-radius:50%;background:#0D2247!important;border:1.5px solid #7FE3E6!important;color:#fff!important;cursor:pointer;transition:background-color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease,color var(--vtm-t-1) ease;}
.ajde_evcal_calendar .evcal_arrows i,.ajde_evcal_calendar .evcal_arrows svg{color:inherit!important;fill:currentColor;font-size:15px;}
.ajde_evcal_calendar .evcal_arrows:hover,.ajde_evcal_calendar .evcal_arrows:focus-visible{background:#20C4C9!important;border-color:#20C4C9!important;color:#0A2850!important;}
.ajde_evcal_calendar .evcal_arrows:focus-visible{outline:3px solid #FF8A5B;outline-offset:3px;}
.ajde_evcal_calendar .evcal_arrows{width:40px!important;height:40px!important;}
@media (max-width:1024px){.ajde_evcal_calendar .evcal_arrows{width:44px!important;height:44px!important;}}

/* v1.3.5: tikvlak van de tekstlinks op de homepage (waren 31 px hoog) */
@media (max-width:1099px){a.vtm-h-more{min-height:44px;padding-bottom:0;border-bottom:0;box-shadow:inset 0 -2px 0 rgba(127,227,230,.4);}}

/* v1.3.6: tablet (700 tot 1099 px): een overzichtsraster met een oneven aantal kaarten liet de laatste kaart alleen staan met een gat ernaast; die kaart loopt nu over de volle breedte met beeld links */
@media (min-width:700px) and (max-width:1099px){
  .vtm-c-spgrid > .vtm-c-spc:last-child:nth-child(odd){grid-column:1/-1;flex-direction:row;}
  .vtm-c-spgrid > .vtm-c-spc:last-child:nth-child(odd) .vtm-c-spc__img{flex:0 0 46%;aspect-ratio:auto;min-height:260px;border-bottom:0;border-right:1px solid var(--vtm-rule,#22427A);}
}

/* v1.3.7: Zahlungsarten in de footer (alleen methodes waarmee op de website echt betaald kan worden; nu PayPal). Rij boven de copyrightregel in het footer-template (#2552). De lijst moet het thema-lijststijl (marge links en onder) overschrijven. */
.vtm-pay{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 16px;}
.vtm-pay .vtm-pay__label{font-size:13px;line-height:30px;letter-spacing:.08em;text-transform:uppercase;color:#96c8dc;opacity:.85;}
.vtm-pay .vtm-pay__list{display:flex;flex-wrap:wrap;gap:8px;margin:0!important;padding:0!important;list-style:none!important;}
.vtm-pay .vtm-pay__list li{position:relative;width:48px;height:30px;margin:0!important;padding:0!important;list-style:none!important;overflow:hidden;border:1px solid rgba(150,200,220,.35);border-radius:8px;background:rgba(255,255,255,.06);box-sizing:border-box;}
.vtm-pay .vtm-pay__list img{position:absolute;left:50%;top:50%;width:66px;height:42px;max-width:none;margin:0;padding:0;border:0;background:none;transform:translate(-50%,-50%);}
@media (max-width:767px){.vtm-pay{justify-content:center;}}

/* v1.3.8: dropdown (Tauchschule) verdween als de muis door de ruimte tussen menunaam en paneel ging. BeTheme zet het eerste niveau op `top:calc(100% + 8px)`; die 8 px lucht hoort niet bij het menu-item, dus verdween :hover en klapte het paneel dicht. Een onzichtbare brug boven het paneel (hoort bij het paneel, dus bij het item) vult de ruimte, ook in de compacte header. Tweede niveau ligt links tegen het paneel (left:100%) en heeft geen gat. Mobiel menu (sidebar) krijgt geen brug. */
#mfn-header-template .mfn-submenu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px;background:transparent;}
#mfn-header-template .mfn-submenu .mfn-submenu::before{content:none;}
#mfn-header-template .mfn-header-tmpl-menu-sidebar .mfn-submenu::before{content:none!important;}

/* v1.3.9: Kurssprachen unter der Spezifikationsleiste der Kurs-Heroes (Flaggen rund, inline SVG + ein Satz). Erzeugt von vtm_k_langs() in Paginabouw/kurs-lib.php. */
.vtm-c-langs{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:-12px 0 28px;}
.vtm-c-flags{display:inline-flex;gap:8px;flex:none;}
.vtm-c-flag{display:block;width:28px;height:28px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1.5px rgba(255,255,255,.55),0 2px 8px rgba(1,7,39,.35);}
.vtm-c-flag svg{display:block;width:100%;height:100%;}
.vtm-c-langs p{margin:0!important;font-size:15px;line-height:1.4;color:#E6F4F8!important;text-shadow:0 1px 10px rgba(1,7,39,.55);}
@media (max-width:699px){.vtm-c-langs{margin:-10px 0 24px;}.vtm-c-langs p{font-size:14px;}}

/* v1.3.10: Kurssprachen op de homepage: regel met drie Flaggen onder de Hero-knoppen en kleine Flaggen rechtsboven in de Kurskacheln (Schnuppertauchen, Open Water Diver, Specialties). */
.vtm-h-herobox .vtm-c-langs.vtm-h-langs{justify-content:center;margin:-20px 0 30px;}
.vtm-h-herobox .vtm-c-langs.vtm-h-langs p{font-size:14px;}
.vtm-h-tile__langs{position:absolute;top:16px;right:16px;z-index:2;display:flex;gap:6px;}
.vtm-h-tile__langs .vtm-c-flag{width:22px;height:22px;box-shadow:0 0 0 1.5px rgba(255,255,255,.6),0 2px 6px rgba(1,7,39,.45);}
@media (max-width:699px){.vtm-h-herobox .vtm-c-langs.vtm-h-langs{margin:-20px 0 24px;}.vtm-h-tile__langs{top:12px;right:12px;}}

/* v1.3.11: Links in den Hero-Chips (z. B. "Ausbildung nach IDDA oder i.a.c." mit Links zu den Verbänden): Schrift bleibt wie im Chip, dezent gepunktet unterstrichen, Hover in Aqua. */
.vtm-c-chips a{color:inherit!important;text-decoration:none!important;border-bottom:1px dotted rgba(127,227,230,.75);transition:color var(--vtm-t-1) ease,border-color var(--vtm-t-1) ease;}
.vtm-c-chips a:hover{color:#7FE3E6!important;border-bottom-color:#7FE3E6;}

/* v1.3.12: Kurssprache im Buchungsformular zeigt "Deutsch" vorausgewählt: der Platzhalter des Auswahlfelds sieht aus wie ein gewählter Wert (der Server speichert ohne Auswahl Deutsch, inc/vtm-kurssprache.php). */
#cf_kurssprache.placeholder .cf-select-value{color:#151720!important;}

/* v1.3.13: Zahlungsarten-Footer mit allen Methoden der Shopify-Kasse (Visa, Mastercard, PayPal, Klarna, iDEAL | Wero, Apple Pay, Google Pay): Chips im Seitenverhältnis der Icons (152 x 96), Icon vollständig sichtbar (keine Beschneidung wie beim einzelnen PayPal-Zeichen). */
.vtm-pay .vtm-pay__list{gap:8px;}
.vtm-pay .vtm-pay__list li{width:56px;height:36px;}
.vtm-pay .vtm-pay__list img{width:100%;height:100%;max-width:100%;object-fit:contain;transform:translate(-50%,-50%) scale(1.12);}
@media (max-width:767px){.vtm-pay .vtm-pay__list{justify-content:center;}}

/* ================================================================================
   v1.4.0  2026-10-29  MOTION-SYSTEEM (JS: js/vtm-motion.js; vroege schakelaar + font-preload: functions.php)
   Motion-review: de site had veel sfeerbeweging (golven, caustics, parallax) maar de inhoud zelf stond stil,
   de lettertypen sprongen bij het laden, en timing/easing liepen door elkaar. Dit blok brengt dat in één systeem,
   in de lijn van "Logbuch am Südsee": precies en strak, geen gloed, geen glas.
   D  TOKENS    --vtm-ease (één easing), --vtm-t-1 .12s (kleur/rand), -t-2 .24s (toestand), -t-3 .48s (verschijnen),
                -t-4 .9s (groot moment). Alle bestaande `transition:`-regels hierboven gebruiken ze nu ook
                (alleen easing en duur-waarden vervangen; 1,4 s en 1,6 s van de tekstreveal zijn bewust gelaten).
   A  AUFTAUCHEN  hero-laadsequentie: html.vtm-fonts (lettertypen klaar) start de hero; kop komt woord voor woord,
                posterframe onder de hero-video, video fadet in bij `playing`, cursus-hero-foto fadet in bij geladen.
   B  AUFSTEIGEN  scroll-reveal: .vtm-rv (JS zet de klasse) stijgt 18px + fade, .is-in start de animatie, --vtm-d = stagger.
                Alleen `opacity` + `translate` (eigen eigenschap, botst niet met transform van hover/parallax).
                Alles verborgen-staat zit achter html.vtm-motion; die klasse zet functions.php alleen als er geen
                reduced-motion is, geen iframe (BeBuilder) en IntersectionObserver bestaat; failsafe na 4,5 s.
                Uitzetten om te testen: ?vtm-motion=off in de URL.
   C  TEGELS     .vtm-h-tile: foto zoomt 4,5%, onderkant wordt iets donkerder, pijl en tekst schuiven mee, rand blijft teal.
                Bewust GEEN lift/gloed: past niet bij Logbuch (v1.2.0).
   ================================================================================ */
:root{--vtm-ease:cubic-bezier(.2,.8,.2,1);--vtm-t-1:.12s;--vtm-t-2:.24s;--vtm-t-3:.48s;--vtm-t-4:.9s;--vtm-rise:18px;}

@keyframes vtmRise{from{opacity:0;translate:0 var(--vtm-rise);}to{opacity:1;translate:0 0;}}
@keyframes vtmWordRise{from{opacity:0;translate:0 .3em;}to{opacity:1;translate:0 0;}}
@keyframes vtmDraw{from{transform:scaleX(0);}to{transform:scaleX(1);}}
@keyframes vtmNumFill{0%{color:rgba(127,227,230,0);}30%{color:rgba(127,227,230,.5);}100%{color:rgba(127,227,230,0);}}
@keyframes vtmPhotoSettle{from{scale:1.045;}to{scale:1;}}

/* --- B: scroll-reveal ------------------------------------------------------------- */
html.vtm-motion .vtm-rv:not(.is-in){opacity:0;translate:0 var(--vtm-rise);}
html.vtm-motion .vtm-rv.is-in{animation:vtmRise var(--vtm-t-3) var(--vtm-ease) var(--vtm-d,0ms) backwards;}
html.vtm-motion .vtm-rv.vtm-rv--now.is-in{animation:none;}
html.vtm-motion .vtm-h-eyebrow::before,html.vtm-motion .vtm-c-eyebrow::before{transform-origin:0 50%;}
html.vtm-motion .vtm-rv.is-in.vtm-h-eyebrow::before,html.vtm-motion .vtm-rv.is-in .vtm-h-eyebrow::before,
html.vtm-motion .vtm-rv.is-in.vtm-c-eyebrow::before,html.vtm-motion .vtm-rv.is-in .vtm-c-eyebrow::before{
  animation:vtmDraw var(--vtm-t-3) var(--vtm-ease) calc(var(--vtm-d,0ms) + 160ms) backwards;}
html.vtm-motion .vtm-rv.vtm-rv--now.is-in.vtm-h-eyebrow::before,html.vtm-motion .vtm-rv.vtm-rv--now.is-in .vtm-h-eyebrow::before,
html.vtm-motion .vtm-rv.vtm-rv--now.is-in.vtm-c-eyebrow::before,html.vtm-motion .vtm-rv.vtm-rv--now.is-in .vtm-c-eyebrow::before{animation:none;}
/* de contourcijfers op de homepage (01 … 04) lichten één keer even op als ze binnenkomen; `backwards`, zodat de hover-kleur daarna weer werkt */
html.vtm-motion .vtm-rv.is-in:not(.vtm-rv--now) .vtm-h-step__n{animation:vtmNumFill 1.1s var(--vtm-ease) calc(var(--vtm-d,0ms) + 200ms) backwards;}

/* --- A: hero-laadsequentie ----------------------------------------------------------- */
/* de hero-kinderen zijn verborgen vóórdat het script ze markeert (anders flitst de tekst even in beeld) */
html.vtm-motion:not(.vtm-fonts) .vtm-h-herobox > *,html.vtm-motion:not(.vtm-fonts) .vtm-c-hero .vtm-c > *,
html.vtm-motion:not(.vtm-fonts) .vtm-rvh{opacity:0;}
html.vtm-motion.vtm-fonts .vtm-rvh{animation:vtmRise var(--vtm-t-4) var(--vtm-ease) var(--vtm-d,0ms) backwards;}
html.vtm-motion:not(.vtm-fonts) .vtm-w{opacity:0;}
html.vtm-motion.vtm-fonts .vtm-w{animation:vtmWordRise var(--vtm-t-4) var(--vtm-ease) var(--vtm-d,0ms) backwards;}
html.vtm-motion .vtm-w{display:inline-block;}
html.vtm-motion.vtm-fonts .vtm-rvh.vtm-h-eyebrow::before,html.vtm-motion.vtm-fonts .vtm-rvh.vtm-c-eyebrow::before{
  animation:vtmDraw var(--vtm-t-3) var(--vtm-ease) calc(var(--vtm-d,0ms) + 200ms) backwards;}

/* posterframe (eerste beeld van de video) onder de homepage-hero; de video fadet er overheen zodra hij speelt */
.mcb-section.vtm-depth.has-video > .section_video{background:#06203d url("img/vtm-hero-poster-1600.jpg") 50% 50%/cover no-repeat;}
@media (max-width:767px){.mcb-section.vtm-depth.has-video > .section_video{background-image:url("img/vtm-hero-poster-800.jpg");}}
html.vtm-motion .mcb-section.vtm-depth.has-video .section_video video{opacity:0;transition:opacity var(--vtm-t-4) ease;}
html.vtm-motion .mcb-section.vtm-depth.has-video .section_video video.vtm-vplay{opacity:1;}

/* cursus-hero: foto fadet in en "zet" zich (4,5% → 100%) als hij geladen is */
html.vtm-motion .vtm-c-hero__photo{transition:opacity var(--vtm-t-4) ease,scale 1.6s var(--vtm-ease);}
html.vtm-motion .vtm-c-hero__photo:not(.is-loaded){opacity:0;scale:1.045;}

/* --- C: tegels op de homepage ----------------------------------------------------------- */
.vtm-h-tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(5,25,58,.5) 0%,rgba(5,25,58,0) 70%);opacity:0;transition:opacity var(--vtm-t-3) ease;}
.vtm-h-tile--finder::before{display:none;}
.vtm-h-tile__img{transition:transform var(--vtm-t-4) var(--vtm-ease);}
.vtm-h-tile__body{transition:transform var(--vtm-t-3) var(--vtm-ease);}
.vtm-h-tile__go svg{transition:transform var(--vtm-t-2) var(--vtm-ease);}
@media (hover:hover){
  .vtm-h-tile:hover::before,.vtm-h-tile:focus-visible::before{opacity:1;}
  .vtm-h-tile:hover .vtm-h-tile__img,.vtm-h-tile:focus-visible .vtm-h-tile__img{transform:scale(1.045);}
  .vtm-h-tile:hover .vtm-h-tile__body,.vtm-h-tile:focus-visible .vtm-h-tile__body{transform:translateY(-3px);}
  .vtm-h-tile:hover .vtm-h-tile__go svg,.vtm-h-tile:focus-visible .vtm-h-tile__go svg{transform:translateX(4px);}
}
@media (hover:none){.vtm-h-tile:active{border-color:#7FE3E6;}.vtm-h-tile:active .vtm-h-tile__img{transform:scale(1.03);}}

@media (prefers-reduced-motion:reduce){
  .vtm-rv,.vtm-rvh,.vtm-w,.vtm-h-step__n{animation:none!important;opacity:1!important;translate:none!important;}
  .vtm-h-tile::before,.vtm-h-tile__img,.vtm-h-tile__body,.vtm-h-tile__go svg,.vtm-c-hero__photo{transition:none!important;}
  .vtm-c-hero__photo{opacity:1!important;scale:none!important;}
}

/* ================================================================================
   v1.4.1  2026-10-29  MOTION, deel 2: E = dropdown komt uit de menupil, F = boekingsvenster (JS: js/vtm-motion.js, stuk "boeking")
   E  Het paneel onder "Tauchschule" is nu solide donker (dezelfde navy als de pil, geen blur, dus niet zwaarder, zie v1.1.42)
      en wordt in .22 s van boven naar beneden zichtbaar, alsof het uit de onderkant van de pil schuift. Fly-outs (Fortgeschrittene,
      Specialties) schuiven van links naar rechts open. BeTheme's eigen animatie (mfnSubmenuFadeInUp) wordt vervangen. Sluiten blijft
      direct: BeTheme zet het paneel met display:none weg, daar valt niets te animeren. Geen stagger op de regels (bewust rustig).
      Alleen desktop-dropdown; het mobiele menu (.mfn-header-tmpl-menu-sidebar) blijft zoals het was.
   F  Boekingsvenster: opent met schaal .96 naar 1 in .48 s (sluit in .24 s); elke stap schuift 18 px van rechts in; de kaarten van
      categorie, dienst en medewerker verschijnen met 30 ms tussenruimte; een afgeronde stap in de zijbalk "popt" even; op de
      bevestigingspagina tekent de cirkel zich, het icoon popt, een bellen-uitbarsting (JS) en de dienstkaarten stijgen in.
      Alles achter html.vtm-motion (dus niet bij reduced-motion).
   ================================================================================ */
@keyframes vtmSubIn{from{clip-path:inset(-16px -24px 100% -24px);opacity:.35;}to{clip-path:inset(-16px -24px -48px -24px);opacity:1;}}
@keyframes vtmSubSide{from{clip-path:inset(-24px 100% -48px -24px);opacity:.35;}to{clip-path:inset(-24px -48px -48px -24px);opacity:1;}}
@keyframes vtmStepIn{from{opacity:0;translate:18px 0;}to{opacity:1;translate:0 0;}}
@keyframes vtmRiseS{from{opacity:0;translate:0 10px;}to{opacity:1;translate:0 0;}}
@keyframes vtmPop{0%{scale:.6;}60%{scale:1.12;}100%{scale:1;}}
@keyframes vtmRing{from{stroke-dashoffset:200;}to{stroke-dashoffset:0;}}
@keyframes vtmBurst{0%{opacity:.95;transform:translate(-50%,-50%) rotate(var(--a)) translateX(18px) scale(.4);}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--a)) translateX(var(--r)) scale(1);}}

/* --- E: dropdown ------------------------------------------------------------------- */
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){
  background:#0A2850!important;border:1px solid rgba(127,227,230,.22);border-radius:14px;padding:6px 0;
  box-shadow:0 18px 40px -14px rgba(1,7,39,.7);
  animation:vtmSubIn .26s var(--vtm-ease-menu) backwards;   /* geen `forwards`: een blijvende clip-path zou de fly-out afknippen */
}
#mfn-header-template .mfn-submenu .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){animation-name:vtmSubSide;}
#mfn-header-template .mfn-dropdown-pointer:not(.mfn-header-tmpl-menu-sidebar *){display:none!important;}   /* het witte driehoekje hoorde bij het witte paneel */
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .mfn-menu-link{color:#fff!important;transition:background-color var(--vtm-t-1) ease,color var(--vtm-t-1) ease;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .mfn-menu-link::after{display:none;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .mfn-menu-link:hover,
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .mfn-menu-link:focus-visible{background:rgba(32,196,201,.14);color:#7FE3E6!important;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .current-menu-item > .mfn-menu-link{color:#7FE3E6!important;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) .menu-sub i{color:#7FE3E6;}

/* --- F: boekingsvenster ------------------------------------------------------------ */
.vtm-modal-dialog{transform-origin:50% 0;transform:translateY(22px) scale(.96);}
.vtm-modal-overlay.is-visible .vtm-modal-dialog{transition:transform var(--vtm-t-3) var(--vtm-ease),opacity var(--vtm-t-3) ease;}
html.vtm-motion .rox-appointment-booking-frontend .main-content-container{animation:vtmStepIn var(--vtm-t-3) var(--vtm-ease) 60ms backwards;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > *{
  animation:vtmRiseS var(--vtm-t-3) var(--vtm-ease) calc(var(--vtm-i,0) * 30ms + 120ms) backwards;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(2){--vtm-i:1;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(3){--vtm-i:2;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(4){--vtm-i:3;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(5){--vtm-i:4;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(6){--vtm-i:5;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(7){--vtm-i:6;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(8){--vtm-i:7;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(9){--vtm-i:8;}
html.vtm-motion .rox-appointment-booking-frontend :is(.category-cards,.services-grid,.agents-grid,.agent-cards) > :nth-child(n+10){--vtm-i:9;}
html.vtm-motion .rox-appointment-booking-frontend .step-indicator .circle.completed{animation:vtmPop var(--vtm-t-3) var(--vtm-ease);}
/* bevestiging */
html.vtm-motion .rox-appointment-booking-frontend .confirmation-header{position:relative;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-header > svg{animation:vtmPop .6s var(--vtm-ease) .12s backwards;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-header > svg rect{stroke-dasharray:200;animation:vtmRing .7s var(--vtm-ease) backwards;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-service-list > *{animation:vtmRiseS var(--vtm-t-3) var(--vtm-ease) calc(var(--vtm-i,0) * 80ms + 420ms) backwards;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-service-list > :nth-child(2){--vtm-i:1;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-service-list > :nth-child(3){--vtm-i:2;}
html.vtm-motion .rox-appointment-booking-frontend .confirmation-service-list > :nth-child(n+4){--vtm-i:3;}
.vtm-burst{position:absolute;pointer-events:none;z-index:2;}
.vtm-burst i{position:absolute;left:50%;top:50%;width:var(--s,8px);height:var(--s,8px);margin:0;border-radius:50%;
  border:2px solid #20C4C9;background:rgba(32,196,201,.2);animation:vtmBurst .9s var(--vtm-ease) var(--dl,0ms) both;}
@media (prefers-reduced-motion:reduce){.vtm-burst{display:none;}}

/* ================================================================================
   v1.4.2  2026-10-29  Team-review van menu en dropdown: drie echte punten
   1  Toetsenbord: het submenu opende alleen bij hover. Nu ook bij focus (:focus-within), zodat de cursuspagina's in het menu met Tab
      bereikbaar zijn, en de menulinks krijgen een zichtbare focusring (BeTheme zet outline uit). `aria-haspopup` zet js/vtm-header.js.
   2  Specialties-fly-out had 16 regels van 40 px (646 px) en liep op een scherm van 720 px hoog 6 regels buiten beeld, onbereikbaar.
      Fly-outs met meer dan 8 regels staan nu in 2 kolommen.
   3  Easing van het paneel: de gedeelde easing is voor een paneel van .26 s te steil (68% klaar na 20% van de tijd, dus nauwelijks te zien);
      het menu gebruikt --vtm-ease-menu (standaard "ease", 20% tijd = ongeveer 50% klaar).
   ================================================================================ */
#mfn-header-template li.menu-item-has-children:focus-within > .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){display:block;}
#mfn-header-template .mfn-menu-link:focus-visible{outline:2px solid #7FE3E6;outline-offset:3px;border-radius:8px;}
#mfn-header-template .mfn-submenu .mfn-submenu:has(> li:nth-child(9)):not(.mfn-header-tmpl-menu-sidebar *){width:460px;column-count:2;column-gap:0;}
#mfn-header-template .mfn-submenu .mfn-submenu:has(> li:nth-child(9)):not(.mfn-header-tmpl-menu-sidebar *) > li{break-inside:avoid;}

/* ================================================================================
   v1.4.3  2026-10-29  Menu-details, H (dieptemeter als verteller) en I (details)
   Menu     de huidige pagina in het dropdownpaneel heeft nu een aqua bolletje en witte tekst (hover blijft aqua tekst met achtergrond),
            zodat "hier ben je" en "hier wijs je" niet meer hetzelfde zijn. In het paneel gebruikt de cursor een kleine ring (22 px,
            data-mode="menu") in plaats van de grote van 54 px, die de tekst bedekte.
   H        dieptemeter (alleen waar hij bestaat, vanaf 1360 px): bij 5 m licht het label "Sicherheitsstopp" op en pulseert de pin
            (.is-stop, alleen terwijl je er langs komt), bij 10 m popt het getal en stijgt een bellenuitbarsting op (.is-bottom, JS: js/vtm-depth.js).
   I        meetstrook op de homepage: 14 en 2 tellen eenmalig op (JS); sterren van de reviews "vullen" zich van links naar rechts;
            de gloed van de Kurs-buchen-knop ademt 3 keer en rust daarna.
   ================================================================================ */
/* menu: huidige pagina */
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) :is(.current-menu-item,.current-menu-ancestor) > .mfn-menu-link{color:#fff!important;font-weight:600;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) :is(.current-menu-item,.current-menu-ancestor) > .mfn-menu-link::after{
  display:block;content:"";position:absolute;left:3px;right:auto;top:50%;bottom:auto;width:6px;height:6px;border-radius:50%;background:#20C4C9;transform:translateY(-50%);}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) :is(.current-menu-item,.current-menu-ancestor) > .mfn-menu-link:hover{color:#7FE3E6!important;}
/* menu: kleine cursorring */
.vtm-cur[data-mode="menu"] .vtm-cur-ring{--d:22px;background:rgba(32,196,201,.2);border-color:#20C4C9;}
.vtm-cur[data-mode="menu"] .vtm-cur-dot{scale:0;}

/* H: dieptemeter */
.vtm-dg-cap,.vtm-dg-stop{transition:color var(--vtm-t-2) ease,opacity var(--vtm-t-2) ease;}
.vtm-dg.is-stop .vtm-dg-cap{color:#7FE3E6;opacity:1;}
.vtm-dg.is-stop .vtm-dg-stop{color:#fff;}
.vtm-dg.is-stop .vtm-dg-pin{animation:vtmDgStop 1.3s ease-out infinite;}
@keyframes vtmDgStop{0%{box-shadow:0 0 0 0 rgba(127,227,230,.75),0 0 12px rgba(32,196,201,.8)}100%{box-shadow:0 0 0 24px rgba(127,227,230,0),0 0 12px rgba(32,196,201,.8)}}
.vtm-dg.is-bottom .vtm-dg-cap{color:#7FE3E6;opacity:1;}
.vtm-dg.is-bottom .vtm-dg-num{display:inline-block;animation:vtmPop .6s var(--vtm-ease);}
.vtm-dg-bub--big{animation-duration:1.6s;}
@media (prefers-reduced-motion:reduce){.vtm-dg.is-stop .vtm-dg-pin{animation:none;}.vtm-dg.is-bottom .vtm-dg-num{animation:none;}}

/* I: sterren van de reviews vullen zich van links naar rechts als de kaart binnenkomt */
@keyframes vtmWipe{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0);}}
html.vtm-motion .vtm-rv.is-in:not(.vtm-rv--now) .vtm-h-rev__s{animation:vtmWipe .7s var(--vtm-ease) calc(var(--vtm-d,0ms) + 260ms) backwards;}
@media (prefers-reduced-motion:reduce){.vtm-h-rev__s{animation:none!important;}}

/* ================================================================================
   v1.5.0  2026-10-29  G: zachte overgang tussen pagina's (View Transitions, cross-document)
   Navigatie binnen vtm-dive.com wisselt niet meer hard van pagina, maar de oude pagina vervaagt en de nieuwe verschijnt eroverheen
   (.3 s). Chrome en Edge (126+) en Safari (18.2+) doen mee, andere browsers laden gewoon zoals voorheen. Niet bij "Beweging
   verminderen". Geen andere domeinen (de webshop) en geen #-links (de boekingspop-up). De hero-sequentie van de nieuwe pagina
   (v1.4.0) start daarna vanzelf. Bewust geen "foto van de tegel groeit uit tot de hero" (zie vervolg 55 in vtm-css-classes.md).
   ================================================================================ */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto;}
  ::view-transition-group(root){animation-duration:.3s;animation-timing-function:ease;}
}

/* ================================================================================
   v1.6.0  2026-10-29  Vaste actiebalk onderaan op telefoons (JS: js/vtm-actionbar.js)
   Buchen (opent de boekingspop-up), Anrufen, WhatsApp. Alleen tot 767 px breed; verschijnt na 240 px scrollen; verdwijnt zolang de
   boekingspop-up open is; houdt ruimte vrij onderaan de pagina zodat hij de footer niet afdekt. Logbuch-stijl: massief navy, toetsknoppen.
   Uitzetten: de regel `wp_enqueue_script( 'vtm-actionbar'` in functions.php weghalen.
   ================================================================================ */
.vtm-bar{display:none;}
@media (max-width:767px){
  .vtm-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px;
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#0A2850;border-top:1px solid rgba(127,227,230,.28);
    transform:translateY(105%);transition:transform var(--vtm-t-2) var(--vtm-ease);}
  .vtm-bar.is-on{transform:none;}
  html.vtm-bar-on body{padding-bottom:calc(64px + env(safe-area-inset-bottom));}
  html.vtm-modal-open .vtm-bar{display:none;}
  .vtm-bar__a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 10px;border-radius:12px;
    border:1px solid rgba(255,255,255,.4);color:#fff!important;text-decoration:none!important;font-family:var(--vtm-font-body,"Outfit",sans-serif);
    font-size:15px;font-weight:600;line-height:1;white-space:nowrap;-webkit-tap-highlight-color:transparent;
    transition:background-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
  .vtm-bar__a--pri{background:#20C4C9;border-color:#20C4C9;color:#0A2850!important;box-shadow:0 3px 0 #0E8C91;}
  .vtm-bar__a:active{transform:translateY(2px);}
  .vtm-bar__a--pri:active{box-shadow:0 1px 0 #0E8C91;}
  .vtm-bar__a svg{flex:none;}
}
@media (prefers-reduced-motion:reduce){.vtm-bar,.vtm-bar__a{transition:none;}}

/* ================================================================================
   v1.6.1  2026-10-29  Openingsstatus (JS: js/vtm-hours.js)
   "Jetzt geöffnet, bis 18 Uhr" in de meetstrook onder "Tauchbasis" en in de footer onder "Öffnungszeiten". Punt aqua + zachte puls
   als open, grijs als dicht. De uren staan bovenaan js/vtm-hours.js.
   ================================================================================ */
.vtm-open{display:flex;align-items:center;gap:8px;margin:8px 0 0!important;font-family:"JetBrains Mono",monospace;font-size:12px;line-height:1.3;color:#BFF4F5;}
.vtm-open__dot{flex:none;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);}
.vtm-open.is-open .vtm-open__dot{background:#20C4C9;box-shadow:0 0 0 0 rgba(32,196,201,.6);animation:vtmOpenPulse 2.4s ease-out infinite;}
@keyframes vtmOpenPulse{0%{box-shadow:0 0 0 0 rgba(32,196,201,.55);}70%{box-shadow:0 0 0 7px rgba(32,196,201,0);}100%{box-shadow:0 0 0 0 rgba(32,196,201,0);}}
.vtm-open--foot{font-family:var(--vtm-font-body,"Outfit",sans-serif);font-size:14px;margin:6px 0 10px!important;}
.vtm-h-readout .vtm-open{white-space:nowrap;}
@media (prefers-reduced-motion:reduce){.vtm-open.is-open .vtm-open__dot{animation:none;}}

/* ================================================================================
   v1.6.2  2026-10-29  Laadindicator in het boekingsvenster (JS: js/vtm-bk-loader.js)
   Dunne aqua balk bovenin het venster terwijl Rox de volgende stap ophaalt (ongeveer 1 s zonder enig teken van leven).
   De klasse staat op <html>, niet op een Rox-element: React overschrijft de klassen van zijn eigen elementen bij elke render.
   Uitzetten: de regel `wp_enqueue_script( 'vtm-bk-loader'` in functions.php weghalen.
   ================================================================================ */
html.vtm-bk-busy .rox-appointment-booking-frontend .service-layout{position:relative;}
html.vtm-bk-busy .rox-appointment-booking-frontend .service-layout::before{content:"";position:absolute;left:0;top:0;z-index:6;width:38%;height:3px;
  background:linear-gradient(90deg,rgba(32,196,201,0),#20C4C9,rgba(32,196,201,0));pointer-events:none;animation:vtmBkBar 1s var(--vtm-ease) infinite;}
@keyframes vtmBkBar{from{transform:translateX(-100%);}to{transform:translateX(265%);}}
@media (prefers-reduced-motion:reduce){html.vtm-bk-busy .rox-appointment-booking-frontend .service-layout::before{animation:none;width:100%;opacity:.6;}}

/* ================================================================================
   v1.6.3  2026-10-29  Cookiebanner in de stijl van de site (Real Cookie Banner)
   Kleuren, lettertype, hoeken, overlay en knoppen staan in de instellingen van de plugin (opties `rcb-banner-*`, back-up:
   Website/Backups/motion-20261029/rcb-options-voor-ontwerp.json, script: rcb-design.sh). Hier alleen wat de plugin niet kan: een
   zachte opkomst (de plugin zelf doet fadeIn 450 ms en fadeOut 260 ms), afgeronde knoppen en op telefoons afgeronde bovenhoeken.
   De klassenamen van de plugin wisselen per pagina in het voorvoegsel (a5a65-ext-0-298, ab161-ext-0-298, ...); alleen het stuk
   `-ext-N-NNN` blijft gelijk, daarom `[class*="-ext-…"]`. Na een pluginupdate kan dat veranderen: de banner is dan gewoon
   weer de ontwerp-van-de-plugin zonder deze extra's. Teksten en keuzes zijn NIET aangeraakt.
   ================================================================================ */
@keyframes vtmCbRise{from{opacity:0;translate:0 26px;}to{opacity:1;translate:0 0;}}
dialog[class*="-ext-0-298"] > div:first-child{animation:vtmCbRise .55s var(--vtm-ease) .06s backwards;}
dialog[class*="-ext-0-298"] [class*="-ext-4-297"],
dialog[class*="-ext-0-298"] [class*="-ext-4-298"]{border-radius:12px!important;}
@media (max-width:767px){dialog[class*="-ext-0-298"] > div:first-child{border-radius:16px 16px 0 0!important;}}
@media (prefers-reduced-motion:reduce){dialog[class*="-ext-0-298"] > div:first-child{animation:none;}}
/* uitgang: de banner schuift .24 s weg en vervaagt (js/vtm-cookie.js zet .vtm-cb-out vlak voor de keuze doorgaat) */
@keyframes vtmCbOut{to{opacity:0;}}
@keyframes vtmCbFall{to{opacity:0;translate:0 18px;}}
dialog.vtm-cb-out{animation:vtmCbOut .24s ease forwards;pointer-events:none;}
dialog.vtm-cb-out[class*="-ext-0-298"] > div:first-child{animation:vtmCbFall .24s var(--vtm-ease) forwards;}

/* ================================================================================
   v1.7.0  2026-10-29  Focussysteem (toegankelijkheid) en "Zum Inhalt springen"
   Gevonden: een geselecteerd veld in het contactformulier kreeg alleen een heel lichte kleurtint, geen duidelijke rand; veel
   knoppen en kaarten hadden met Tab geen zichtbaar teken. Nu één systeem:
   - toetsenbord (:focus-visible) op links, knoppen, kaarten en velden: 2 px aqua ring met 3 px afstand (op de donkere site),
     navy ring binnen de witte boekingswidget en de witte formuliervelden zijn omringd door de donkere pagina;
   - tekstvelden (ook met de muis): aqua rand en zachte aqua gloed, schuift in met --vtm-t-1;
   - tegels en opties: ring BINNEN de kaart (afstand -5 px), omdat de kaart overflow:hidden heeft en de ring anders afgeknipt wordt;
   - "Zum Inhalt springen"-link (inc/vtm-a11y.php) schuift bij Tab van boven in beeld.
   De header-menulinks hadden al een ring (v1.4.2).
   ================================================================================ */
:is(a,button,[role="button"],summary,input[type="checkbox"],input[type="radio"],input[type="submit"],input[type="button"],select,[tabindex]:not([tabindex="-1"])):focus-visible{
  outline:2px solid #7FE3E6!important;outline-offset:3px!important;}
.rox-appointment-booking-frontend :focus-visible,.vtm-modal-dialog:has(.vtm-modal-wide) :focus-visible{outline-color:#0A2850!important;}
.vtm-h-tile:focus-visible,.vtm-c-opt a:focus-visible,.vtm-h-duo__i:focus-visible,.vtm-h-person:focus-visible{outline-offset:-5px!important;}
/* tekstvelden: ring ook bij muisfocus */
.wpcf7 :is(input:not([type="checkbox"],[type="radio"],[type="submit"],[type="button"]),textarea,select){transition:border-color var(--vtm-t-1) ease,box-shadow var(--vtm-t-2) var(--vtm-ease);}
.wpcf7 :is(input:not([type="checkbox"],[type="radio"],[type="submit"],[type="button"]),textarea,select):focus{
  outline:none!important;border-color:#20C4C9!important;box-shadow:0 0 0 3px rgba(32,196,201,.55),0 0 18px rgba(32,196,201,.25)!important;}
/* skip-link */
.vtm-skip{position:fixed;left:12px;top:-64px;z-index:100001;padding:12px 18px;border-radius:12px;background:#20C4C9;color:#0A2850!important;
  font-family:var(--vtm-font-body,"Outfit",sans-serif);font-weight:700;font-size:15px;text-decoration:none!important;box-shadow:0 8px 24px rgba(1,7,39,.5);
  transition:top var(--vtm-t-2) var(--vtm-ease);}
.vtm-skip:focus,.vtm-skip:focus-visible{top:12px;outline:2px solid #0A2850!important;outline-offset:2px!important;}
@media (prefers-reduced-motion:reduce){.vtm-skip,.wpcf7 :is(input,textarea,select){transition:none;}}

/* ================================================================================
   v1.7.1  2026-10-29  CSS-terugval voor trage telefoons (review-ronde 2, punt 2)
   Op een trage verbinding komt het motion-script pas na ongeveer 15 s (DCL), terwijl de pagina na ongeveer 5 s al staat; de hero-tekst
   was dan verborgen en verscheen daarna zonder beweging. Nu stijgt de hero 1,2 s na het eerste beeld uit zichzelf in (alleen CSS), en
   het script (v1.4.0) laat een hero die al zichtbaar is met rust. Is het script snel (normaal), dan neemt het over zodra de
   lettertypen er zijn (html.vtm-fonts) en doet deze regel niets meer. Hero-foto van cursuspagina's: zelfde terugval.
   ================================================================================ */
@keyframes vtmSafeIn{from{opacity:0;translate:0 var(--vtm-rise);}to{opacity:1;translate:0 0;}}
@keyframes vtmSafePhoto{to{opacity:1;scale:1;}}
html.vtm-motion:not(.vtm-fonts) :is(.vtm-h-herobox,.vtm-c-hero .vtm-c) > *{animation:vtmSafeIn .7s var(--vtm-ease) 1.2s forwards;}
html.vtm-motion .vtm-c-hero__photo:not(.is-loaded){animation:vtmSafePhoto .9s ease 1.4s forwards;}
@media (prefers-reduced-motion:reduce){html.vtm-motion:not(.vtm-fonts) :is(.vtm-h-herobox,.vtm-c-hero .vtm-c) > *,.vtm-c-hero__photo{animation:none!important;}}

/* ================================================================================
   v1.7.2  2026-10-29  Formuliermomenten (review-ronde 2, punt 4): Contact Form 7
   Foutmeldingen stijgen zacht in en het veld "schudt" één keer even (alleen een verschuiving van 4 px); de verzendknop toont tijdens het
   versturen een aqua ring in plaats van de grijze CF7-stip en wordt even gedimd; de melding na het versturen stijgt in, met een
   vinkje bij succes (form.sent). Teksten ongewijzigd. Reduced-motion: geen beweging, de vinkjes en kleuren blijven.
   ================================================================================ */
@keyframes vtmSpin{to{transform:rotate(360deg);}}
@keyframes vtmNudge{0%,100%{translate:0 0;}25%{translate:-5px 0;}60%{translate:4px 0;}}
.wpcf7 .wpcf7-not-valid-tip{animation:vtmRiseS var(--vtm-t-3) var(--vtm-ease) backwards;}
.wpcf7 .wpcf7-not-valid{animation:vtmNudge .36s var(--vtm-ease);}
.wpcf7 form .wpcf7-response-output{animation:vtmRiseS var(--vtm-t-3) var(--vtm-ease) backwards;}
.wpcf7 form.sent .wpcf7-response-output{border-color:#20C4C9!important;background:rgba(32,196,201,.14)!important;}
.wpcf7 form.sent .wpcf7-response-output::before{content:"";display:inline-block;width:20px;height:20px;margin-right:10px;vertical-align:-4px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237FE3E6' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:vtmPop var(--vtm-t-3) var(--vtm-ease);}
.wpcf7 .wpcf7-spinner{background:none!important;border:2.5px solid rgba(127,227,230,.28);border-top-color:#7FE3E6;border-radius:50%;width:22px;height:22px;opacity:1;
  animation:vtmSpin .7s linear infinite;}
.wpcf7 .wpcf7-spinner::before{display:none!important;}
.wpcf7 form.submitting .wpcf7-submit{opacity:.65;pointer-events:none;transition:opacity var(--vtm-t-2) ease;}
@media (prefers-reduced-motion:reduce){
  .wpcf7 .wpcf7-not-valid-tip,.wpcf7 .wpcf7-not-valid,.wpcf7 form .wpcf7-response-output,.wpcf7 form.sent .wpcf7-response-output::before{animation:none!important;}
  .wpcf7 .wpcf7-spinner{animation-duration:2.4s;}
}
/* v1.7.2 vervolg: de foutmelding bij een veld stond in het contactformulier als een rood vlaggetje zonder leesbare tekst (BeTheme-standaard);
   hier dezelfde opmaak als in de formuliersecties (.vtm-c-formsec): leesbare tekst onder het veld, zacht rood. */
body .wpcf7 form .wpcf7-form-control-wrap .wpcf7-not-valid-tip,body .wpcf7 .wpcf7-not-valid-tip{position:static!important;display:block!important;width:auto!important;height:auto!important;min-height:0!important;padding:0!important;margin:6px 0 0!important;background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;color:#FF9E9E!important;font-size:14px!important;line-height:1.4!important;font-weight:500!important;text-indent:0!important;transform:none!important;box-shadow:none!important;top:auto!important;left:auto!important;right:auto!important;}
body .wpcf7 .wpcf7-not-valid-tip::before,body .wpcf7 .wpcf7-not-valid-tip::after{display:none!important;content:none!important;}
body .wpcf7 .wpcf7-not-valid{border-color:#FF9E9E!important;}
body .wpcf7 form .wpcf7-response-output{margin:22px 0 0;padding:16px 20px;border:1px solid rgba(127,227,230,.5);border-radius:16px;color:#fff;background:rgba(32,196,201,.1);}
body .wpcf7 form.invalid .wpcf7-response-output,body .wpcf7 form.failed .wpcf7-response-output{border-color:#FF9E9E;background:rgba(255,158,158,.1);}

/* ================================================================================
   v1.7.3  2026-10-29  Hoverfamilie en kaartlaadstatus (review-ronde 2, punten 5 en 6)
   5  Alle aangeklikte fotokaarten zoomen nu op dezelfde manier als de tegels (foto 4,5% in .9 s binnen het kader, geen lift, geen gloed):
      de homepage-blokken "Tauchen für alle" en "Schnuppertauchen" (.vtm-h-duo__i), de teamfoto's (.vtm-h-person__img), het beeld
      "Direkt am Wasser" (.vtm-h-split__img), de beeldblokken (.vtm-h-row__img) en de opties op cursuspagina's (.vtm-c-opt). Omdat de foto bij de
      eerste vier als achtergrond op de kaart zelf staat, zet js/vtm-motion.js hem in een eigen laag (.vtm-zoom); cursorlabel "Ansehen".
   6  Kaart (Kontakt en homepage): na "Karte laden" blijft het vlak een moment leeg terwijl OpenFreeMap laadt. Nu loopt er een aqua ring
      tot de kaart er is (CSS :has, maximaal 12 s) en de kaart vervaagt zacht in (.8 s). De kaartcode zelf is niet aangepast.
   ================================================================================ */
.vtm-zoomed{position:relative;overflow:hidden;isolation:isolate;}
.vtm-zoom{position:absolute;inset:0;z-index:-2;background-size:cover;background-repeat:no-repeat;transition:transform var(--vtm-t-4) var(--vtm-ease);}
@media (hover:hover){
  .vtm-zoomed:hover .vtm-zoom,.vtm-h-person:hover .vtm-zoom,.vtm-h-person:focus-visible .vtm-zoom{transform:scale(1.045);}
  .vtm-c-opt:hover .vtm-c-opt__bg{transform:scale(1.045);}
}
@keyframes vtmMapIn{from{opacity:0;}to{opacity:1;}}
@keyframes vtmMapRingOut{to{opacity:0;}}
.vtm-map .maplibregl-canvas-container{animation:vtmMapIn .8s ease both;}
.vtm-map[data-ready]:not(:has(.vtm-gate)):not(:has(.maplibregl-canvas))::after{content:"";position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;
  border:3px solid rgba(127,227,230,.25);border-top-color:#7FE3E6;pointer-events:none;animation:vtmSpin .8s linear 15,vtmMapRingOut .3s ease 12s forwards;}
@media (prefers-reduced-motion:reduce){.vtm-zoom{transition:none;}.vtm-map .maplibregl-canvas-container{animation:none;}}

/* ================================================================================
   v1.7.4  2026-10-29  Twee eigen fouten uit de mobiele controle (390 en 320 px)
   1  Openingsstatus in de meetstrook (v1.6.1): de tekst "Heute nur auf Anfrage, Samstag ab 10 Uhr" liep als één regel door in het
      belendende vakje en lag over "ab 24 Std. vorher". Nu breekt hij af binnen zijn eigen vakje.
   2  Actiebalk (v1.6.0) op 320 px: "WhatsApp" werd afgekapt. Op schermen tot 360 px tonen Anrufen en WhatsApp alleen hun icoon (48 px),
      Buchen houdt zijn label.
   ================================================================================ */
.vtm-h-readout .vtm-open{white-space:normal;max-width:100%;line-height:1.35;}
@media (max-width:360px){
  .vtm-bar{grid-template-columns:1fr 48px 48px;}
  .vtm-bar__a:not(.vtm-bar__a--pri){padding:0;}
  .vtm-bar__a:not(.vtm-bar__a--pri) span{display:none;}
}

/* ================================================================================
   v2.0.0  2026-11-05  Mobiel en tablet menu "Insel 2" (JS: js/vtm-island.js). Vervangt het blok v1.8.0. Teamreview (UX, UI, Motion, HIG, Programmeur, Creative Director):
   box-sizing (balk en blad waren 384x82 px op 3 px van de rand in plaats van 366x64 op 12 px, dus niet concentrisch), plakkende BeTheme-hover (grijze knoppen),
   dieptecijfers weg (betekenden niets en werden afgeknipt), "Start" weg (het logo is de thuisknop), Kurs Finder als kaart bovenaan, twee grote titels
   (Tauchschule, Preise) en kleinere regels, Preise en Kontakt onderaan in de duimzone, chips zonder dubbelen en zonder afknippen op smalle schermen,
   Menü-knop met vaste breedte (alleen het icoon wisselt), slepen ook aan de lijst, zachte uitklap, plakkende lussen begrensd, reduced-motion als fade.
   Maten: balk 64 px hoog, 12 px van de randen, binnenmarge en tussenruimtes 8 px, straal 32 buiten en 24 binnen; blad 12 px van de zijkanten, 8 px boven de balk,
   straal 32; knoppen 48, titels 56, kleine regels 52, chips 44. Vanaf 600 px maximaal 560 px breed en gecentreerd.
   ================================================================================ */
:root{--vtm-ease-sheet:cubic-bezier(.32,.72,0,1);--vtm-isl-line:rgba(255,255,255,.3);}
.vtm-top,.vtm-isl,.vtm-isl-sheet,.vtm-isl-dim{display:none;}
@media (max-width:1023px){
  .vtm-isl,.vtm-isl *,.vtm-isl-sheet,.vtm-isl-sheet *{box-sizing:border-box;}
  html.vtm-island-on #mfn-header-template,html.vtm-island-on .vtm-bar{display:none!important;}
  html.vtm-island-on body{padding-bottom:calc(88px + env(safe-area-inset-bottom));}
  html.vtm-isl-open{overflow:hidden;}
  html.vtm-modal-open .vtm-isl,html.vtm-modal-open .vtm-isl-sheet,html.vtm-modal-open .vtm-isl-dim{display:none!important;}

  /* bovenkant: logo en mandje, scrollen mee */
  html.vtm-island-on .vtm-top{display:block;position:absolute;left:0;right:0;top:0;height:92px;z-index:100;pointer-events:none;}
  .vtm-top__logo{position:absolute;left:50%;top:14px;transform:translateX(-50%);height:64px;pointer-events:auto;display:block;}
  .vtm-top__logo img{height:64px;width:auto;display:block;filter:drop-shadow(0 4px 14px rgba(1,7,39,.55));}
  .vtm-top__shop{position:absolute;top:18px;right:max(12px,env(safe-area-inset-right));width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#0A2850;
    border:1px solid rgba(127,227,230,.3);pointer-events:auto;}
  .vtm-top__shop svg{width:20px;height:20px;}

  /* de balk */
  html.vtm-island-on .vtm-isl{display:flex;position:fixed;z-index:9000;left:0;right:0;bottom:max(12px,env(safe-area-inset-bottom));margin:0 auto;width:min(560px,calc(100% - 24px));
    height:64px;padding:8px;align-items:center;border-radius:32px;background:#0A2850;border:1px solid rgba(127,227,230,.3);
    box-shadow:0 18px 40px -12px rgba(1,7,39,.8),inset 0 1px 0 rgba(255,255,255,.06);transition:translate var(--vtm-t-3) var(--vtm-ease);}
  html.vtm-isl-kbd .vtm-isl{translate:0 140%;}
  .vtm-isl-btn{flex:none;height:48px;border-radius:24px;display:flex;align-items:center;justify-content:center;font:600 15px var(--vtm-font-body,"Outfit",sans-serif);color:#fff!important;
    border:1px solid var(--vtm-isl-line);background:none;text-decoration:none!important;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
    transition:background-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
  /* BeTheme zet button:hover op grijs en dat blijft op touch plakken: expliciet vastzetten */
  html .vtm-isl button.vtm-isl-btn:hover,html .vtm-isl button.vtm-isl-btn:focus{background:none;color:#fff;border-color:var(--vtm-isl-line);box-shadow:none;}
  html .vtm-isl-sheet button.vtm-isl-ex:hover,html .vtm-isl-sheet button.vtm-isl-ex:focus{background:none;color:#7FE3E6;border:0;box-shadow:none;}
  .vtm-isl-btn:active{transform:scale(.97);background:rgba(255,255,255,.08);}
  html .vtm-isl button.vtm-isl-btn:active{background:rgba(255,255,255,.08);}
  .vtm-isl-menu{gap:8px;width:121px;padding:0 0 0 14px;margin-right:8px;justify-content:flex-start;}
  .vtm-isl-lbl{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;}
  .vtm-isl-lbl small{font:500 11px "JetBrains Mono",monospace;color:#7FE3E6;margin-top:2px;letter-spacing:.04em;min-width:34px;font-variant-numeric:tabular-nums;transition:opacity var(--vtm-t-2) ease;}
  .vtm-isl-lbl small.is-stop{animation:vtmIslStop .8s ease-in-out 2;}
  @keyframes vtmIslStop{50%{color:#fff;}}
  html.vtm-isl-open .vtm-isl-lbl small{opacity:0;}
  .vtm-isl-lbl .l-c{transition:transform var(--vtm-t-3) var(--vtm-ease);}
  html.vtm-isl-open .vtm-isl-lbl .l-c{transform:translateY(7px);}
  .vtm-isl-book{flex:1;min-width:0;background:#20C4C9;border-color:#20C4C9;color:#0A2850!important;font-weight:700;font-size:16px;box-shadow:0 3px 0 #0E8C91;margin-right:8px;transition:background-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease,margin var(--vtm-t-3) var(--vtm-ease);}
  .vtm-isl-book:active{transform:translateY(2px);box-shadow:0 1px 0 #0E8C91;background:#7FE3E6;}
  .vtm-isl-round{width:48px;overflow:hidden;transition:width var(--vtm-t-3) var(--vtm-ease),margin var(--vtm-t-3) var(--vtm-ease),opacity var(--vtm-t-2) ease,border-width var(--vtm-t-3) var(--vtm-ease),visibility 0s;}
  .vtm-isl-round+.vtm-isl-round{margin-left:8px;}
  .vtm-isl-round svg{width:20px;height:20px;flex:none;}
  .vtm-isl.is-lean .vtm-isl-round{width:0;opacity:0;border-width:0;margin:0;visibility:hidden;transition-delay:0s,0s,0s,0s,.32s;}
  .vtm-isl.is-lean .vtm-isl-book{margin-right:0;}
  .vtm-isl-burger{position:relative;width:20px;height:14px;flex:none;}
  .vtm-isl-burger i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:#fff;transition:transform var(--vtm-t-3) var(--vtm-ease),top var(--vtm-t-3) var(--vtm-ease),opacity var(--vtm-t-2) ease;}
  .vtm-isl-burger i:nth-child(1){top:0;}.vtm-isl-burger i:nth-child(2){top:6px;}.vtm-isl-burger i:nth-child(3){top:12px;}
  html.vtm-isl-open .vtm-isl-burger i:nth-child(1){top:6px;transform:rotate(45deg);}
  html.vtm-isl-open .vtm-isl-burger i:nth-child(2){opacity:0;}
  html.vtm-isl-open .vtm-isl-burger i:nth-child(3){top:6px;transform:rotate(-45deg);}

  /* achtergrond en blad */
  html.vtm-island-on .vtm-isl-dim{display:block;position:fixed;inset:0;z-index:8980;background:rgba(4,20,45,.72);opacity:0;pointer-events:none;transition:opacity var(--vtm-t-2) ease;touch-action:none;}
  html.vtm-isl-open .vtm-isl-dim{opacity:1;pointer-events:auto;transition:opacity var(--vtm-t-3) ease;}
  html.vtm-island-on .vtm-isl-sheet{display:flex;flex-direction:column;position:fixed;z-index:8990;left:0;right:0;margin:0 auto;width:min(560px,calc(100% - 24px));
    bottom:calc(max(12px,env(safe-area-inset-bottom)) + 72px);max-height:calc(100vh - 64px - 92px - 12px);max-height:calc(100dvh - 64px - 92px - 12px);border-radius:32px;background:#0A2850;border:1px solid rgba(127,227,230,.3);
    box-shadow:0 30px 80px -20px rgba(1,7,39,.9),inset 0 1px 0 rgba(255,255,255,.06);transform-origin:50% 100%;transform:translateY(calc(var(--dy,0px) + 32px)) scale(.96);opacity:0;pointer-events:none;visibility:hidden;outline:none;
    transition:transform .3s var(--vtm-ease-sheet),opacity var(--vtm-t-1) ease,visibility 0s linear .3s;}
  html.vtm-isl-open .vtm-isl-sheet{transform:translateY(var(--dy,0px));opacity:1;pointer-events:auto;visibility:visible;transition:transform .56s var(--vtm-ease-sheet),opacity var(--vtm-t-2) ease,visibility 0s;}
  .vtm-isl-sheet.is-drag,.vtm-isl-sheet.is-drag~.vtm-isl-dim{transition:none!important;}
  html.vtm-isl-drag .vtm-isl-dim{transition:none!important;}
  .vtm-isl-grab{flex:none;height:44px;display:grid;place-items:center;cursor:grab;touch-action:none;}
  .vtm-isl-grab:after{content:"";width:40px;height:4px;border-radius:2px;background:rgba(255,255,255,.3);}
  .vtm-isl-body{overflow:auto;overscroll-behavior:contain;padding:0 20px 18px 16px;margin-top:-12px;scrollbar-width:none;-webkit-mask-image:linear-gradient(#000 calc(100% - 20px),transparent);mask-image:linear-gradient(#000 calc(100% - 20px),transparent);}
  .vtm-isl-body::-webkit-scrollbar{display:none;}
  .vtm-isl-head{margin:0 0 12px 12px;display:flex;flex-direction:column;gap:6px;}
  .vtm-isl-eyebrow{font:500 12px/1 "JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#7FE3E6;}
  .vtm-isl-live{display:flex;align-items:center;gap:8px;font:500 13px/1.3 "JetBrains Mono",monospace;color:rgba(255,255,255,.72);}
  .vtm-isl-live:empty{display:none;}
  .vtm-isl-live:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.45);}
  .vtm-isl-live.is-open{color:#7FE3E6;}
  .vtm-isl-live.is-open:before{background:#20C4C9;animation:vtmIslPulse 2.4s ease-out 3;}
  @keyframes vtmIslPulse{0%{box-shadow:0 0 0 0 rgba(32,196,201,.6);}70%{box-shadow:0 0 0 7px rgba(32,196,201,0);}100%{box-shadow:0 0 0 0 rgba(32,196,201,0);}}

  /* Kurs Finder als kaart */
  .vtm-isl-find{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;margin:0 0 12px;padding:8px 8px 8px 18px;border-radius:24px;border:1px solid rgba(32,196,201,.55);
    background:linear-gradient(135deg,rgba(32,196,201,.2),rgba(32,196,201,.06));color:#fff!important;text-decoration:none!important;font:600 15px/1.25 var(--vtm-font-body,"Outfit",sans-serif);text-wrap:balance;-webkit-tap-highlight-color:transparent;transition:background-color var(--vtm-t-1) ease,transform var(--vtm-t-1) ease;}
  .vtm-isl-find:active{transform:scale(.985);background:rgba(32,196,201,.28);}
  .vtm-isl-find b{flex:none;display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 16px;border-radius:22px;background:#20C4C9;color:#0A2850;font-weight:700;font-size:15px;}
  .vtm-isl-find b svg{width:16px;height:16px;}

  /* de lijst met de rail (zonder cijfers: de lijn daalt tot de pagina waar je bent) */
  .vtm-isl-list{list-style:none;margin:0;position:relative;padding:0 0 0 44px;--cur:0px;}
  .vtm-isl-list:before,.vtm-isl-list:after{content:"";position:absolute;left:18px;top:28px;width:2px;margin-left:-1px;border-radius:1px;}
  .vtm-isl-list:before{bottom:26px;background:rgba(127,227,230,.2);}
  .vtm-isl-list:after{height:0;background:linear-gradient(180deg,rgba(127,227,230,.35),#7FE3E6);transition:height .6s var(--vtm-ease) .15s;}
  html.vtm-isl-open .vtm-isl-list:after{height:var(--cur);}
  .vtm-isl-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:0;padding:0;}
  .vtm-isl-row>a{display:flex;align-items:center;min-width:0;min-height:52px;color:rgba(255,255,255,.88)!important;text-decoration:none!important;font:400 22px/1 "Titan One",sans-serif;border-radius:16px;margin-left:-8px;padding-left:8px;
    -webkit-tap-highlight-color:transparent;transition:background-color var(--vtm-t-1) ease,color var(--vtm-t-1) ease;}
  .vtm-isl-row.is-lg>a{min-height:56px;font-size:27px;color:#fff!important;}
  .vtm-isl-row.is-cur>a{color:#7FE3E6!important;}
  .vtm-isl-row>a:active,.vtm-isl-ex:active{background:rgba(32,196,201,.14);}
  .vtm-isl-ex{width:56px;height:56px;display:grid;place-items:center;background:none;border:0;color:#7FE3E6;cursor:pointer;border-radius:16px;padding:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
  .vtm-isl-ex svg{width:18px;height:18px;transition:transform .32s var(--vtm-ease);}
  .vtm-isl-row.is-x .vtm-isl-ex svg{transform:rotate(180deg);}
  .vtm-isl-row:before{content:"";position:absolute;left:-26px;top:26px;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#0A2850;border:2px solid rgba(127,227,230,.55);
    transition:border-color .3s ease,background-color .3s ease,transform .3s var(--vtm-ease);}
  .vtm-isl-row.is-lg:before{top:28px;}
  html.vtm-isl-open .vtm-isl-row.is-passed:before{border-color:#7FE3E6;background:rgba(32,196,201,.3);transition-delay:calc(.2s + var(--i,0)*.07s);}
  .vtm-isl-row.is-cur:before{background:#20C4C9;border-color:#fff;box-shadow:0 0 0 4px rgba(32,196,201,.28);}
  html.vtm-isl-open .vtm-isl-row.is-cur:before{animation:vtmIslArrive .7s var(--vtm-ease) .6s both;}
  @keyframes vtmIslArrive{0%{box-shadow:0 0 0 0 rgba(32,196,201,.55);}100%{box-shadow:0 0 0 12px rgba(32,196,201,0);}}
  .vtm-isl-sub{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:0;overflow:hidden;opacity:0;visibility:hidden;
    transition:max-height var(--vtm-t-2) var(--vtm-ease),opacity var(--vtm-t-1) ease,margin var(--vtm-t-2) var(--vtm-ease),visibility 0s linear var(--vtm-t-2);}
  .vtm-isl-row.is-x .vtm-isl-sub{max-height:var(--sh,420px);opacity:1;margin:2px 0 14px;visibility:visible;transition:max-height var(--vtm-t-3) var(--vtm-ease),opacity var(--vtm-t-2) ease,margin var(--vtm-t-3) var(--vtm-ease),visibility 0s;}
  .vtm-isl-sub a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:0 6px;border-radius:22px;border:1px solid var(--vtm-isl-line);color:#fff!important;
    text-decoration:none!important;font:600 14px/1.15 var(--vtm-font-body,"Outfit",sans-serif);-webkit-tap-highlight-color:transparent;}
  .vtm-isl-sub a:active{background:rgba(32,196,201,.18);border-color:#20C4C9;}
  .vtm-isl-sub a.is-odd{grid-column:1/-1;}

  /* voet */
  .vtm-isl-foot{margin-top:10px;padding-top:12px;border-top:1px solid rgba(127,227,230,.22);display:flex;flex-direction:column;gap:2px;}
  .vtm-isl-route,.vtm-isl-shop{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:14px;color:rgba(255,255,255,.85)!important;text-decoration:none!important;}
  .vtm-isl-route b,.vtm-isl-shop b{color:#7FE3E6;font-weight:600;}
  .vtm-isl-bye{margin:6px 0 0 12px;font:500 12px/1.3 "JetBrains Mono",monospace;color:rgba(191,244,245,.6);letter-spacing:.04em;}
  .vtm-isl-btn:focus-visible,.vtm-isl-row>a:focus-visible,.vtm-isl-ex:focus-visible,.vtm-isl-sub a:focus-visible,.vtm-isl-find:focus-visible,.vtm-isl-shop:focus-visible,.vtm-isl-route:focus-visible,.vtm-top a:focus-visible{outline:2px solid #7FE3E6!important;outline-offset:3px!important;}

  /* trapsgewijze opkomst */
  .vtm-isl-head,.vtm-isl-find,.vtm-isl-row,.vtm-isl-foot{opacity:0;translate:0 12px;transition:opacity var(--vtm-t-1) ease,translate var(--vtm-t-2) ease;}
  html.vtm-isl-open .vtm-isl-head,html.vtm-isl-open .vtm-isl-find,html.vtm-isl-open .vtm-isl-row,html.vtm-isl-open .vtm-isl-foot{opacity:1;translate:0 0;transition:opacity var(--vtm-t-2) ease,translate var(--vtm-t-3) var(--vtm-ease);}
  html.vtm-isl-open .vtm-isl-head{transition-delay:.06s;}html.vtm-isl-open .vtm-isl-find{transition-delay:.1s;}
  html.vtm-isl-open .vtm-isl-row:nth-child(1){transition-delay:.14s;}html.vtm-isl-open .vtm-isl-row:nth-child(2){transition-delay:.175s;}html.vtm-isl-open .vtm-isl-row:nth-child(3){transition-delay:.21s;}
  html.vtm-isl-open .vtm-isl-row:nth-child(4){transition-delay:.245s;}html.vtm-isl-open .vtm-isl-row:nth-child(5){transition-delay:.28s;}html.vtm-isl-open .vtm-isl-row:nth-child(6){transition-delay:.315s;}
  html.vtm-isl-open .vtm-isl-row:nth-child(7){transition-delay:.35s;}html.vtm-isl-open .vtm-isl-row:nth-child(8){transition-delay:.385s;}html.vtm-isl-open .vtm-isl-foot{transition-delay:.42s;}
}
/* smalle telefoons */
@media (max-width:389px){.vtm-isl-book .long{display:none;}}
@media (max-width:359px){
  .vtm-isl-menu{width:48px;padding:0;margin-right:8px;justify-content:center;}.vtm-isl-menu .vtm-isl-lbl{display:none;}
  .vtm-isl-list{padding-left:38px;}.vtm-isl-list:before,.vtm-isl-list:after{left:15px;}.vtm-isl-row:before{left:-23px;}
  .vtm-isl-row>a{font-size:20px;}.vtm-isl-row.is-lg>a{font-size:24px;}.vtm-isl-ex{width:44px;}.vtm-isl-body{padding:0 14px 16px 12px;}
  .vtm-isl-sub{grid-template-columns:1fr;}.vtm-isl-sub a.is-odd{grid-column:auto;}.vtm-isl-find{padding-left:14px;font-size:14px;}
}
@media (prefers-reduced-motion:reduce){
  .vtm-isl,.vtm-isl-btn,.vtm-isl-round,.vtm-isl-burger i,.vtm-isl-dim,.vtm-isl-head,.vtm-isl-find,.vtm-isl-row,.vtm-isl-foot,.vtm-isl-sub,.vtm-isl-list:after,.vtm-isl-row:before{transition-duration:.01s!important;transition-delay:0s!important;}
  html.vtm-island-on .vtm-isl-sheet,html.vtm-isl-open .vtm-isl-sheet{transform:none!important;transition:opacity .12s ease,visibility 0s linear .12s!important;}
  html.vtm-isl-open .vtm-isl-sheet{transition:opacity .12s ease,visibility 0s!important;}
  .vtm-isl-lbl small.is-stop,.vtm-isl-live:before,.vtm-isl-row.is-cur:before{animation:none!important;}
}

/* ================================================================================
   v1.9.0  2026-10-29  Hoofdmenu desktop (vanaf 1024 px): team-audit op 8 breedtes (1024 tot 3440 px) en op touch
   1  "Hier ben je": de huidige pagina (en bij een cursuspagina de ouder Tauchschule) kreeg in de balk geen markering, alleen in het
      dropdownpaneel. Nu staat onder het item een korte aqua streep (18 px), die bij hover uitgroeit tot de volle lijn. JS zet aria-current.
   2  Klikdoel 36 px hoog, WCAG/Apple noemen 44. De pil is 64 px hoog, dus onzichtbaar 4 px erboven en eronder erbij (::before), de vorm
      verandert niet.
   3  Ankerlinks (#kurs-buchen e.d.) verdwenen onder de vaste pil (onderkant op 102 px): scroll-padding-top 112 px.
   4  iPad liggend (touch, 1024 px en breder): de dropdown opent bij hover, dus een tik navigeerde direct weg en het paneel was niet
      bereikbaar. Nu eerste tik opent het paneel (.vtm-touch-open), tweede tik gaat naar de pagina, tik buiten of Esc sluit (JS: vtm-header.js).
   ================================================================================ */
@media (min-width:1024px){
  html{scroll-padding-top:112px;}
  #mfn-header-template .mfn-menu-link:not(.mfn-submenu *):not(.mfn-header-tmpl-menu-sidebar *)::before{
    content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px;
  }
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-item > .mfn-menu-link::after,
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-ancestor > .mfn-menu-link::after,
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-parent > .mfn-menu-link::after{
    left:calc(50% - 9px);right:calc(50% - 9px);transform:scaleX(1);border-radius:2px;
    transition:left var(--vtm-t-3) var(--vtm-ease),right var(--vtm-t-3) var(--vtm-ease);
  }
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-item > .mfn-menu-link:hover::after,
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-ancestor > .mfn-menu-link:hover::after,
  #mfn-header-template .section_wrapper .mfn-header-menu > li.current-menu-parent > .mfn-menu-link:hover::after{left:0;right:0;}
  /* touch: geopend submenu na eerste tik */
  #mfn-header-template li.menu-item-has-children.vtm-touch-open > .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){display:block;}
  #mfn-header-template li.menu-item-has-children.vtm-touch-open > .mfn-menu-link::after{transform:scaleX(1);left:0;right:0;}
}

/* ================================================================================
   v1.9.1  2026-10-29  Dropdown: pijlen en fly-out uitgelijnd (melding klant, screenshot op subpagina)
   Oorzaak: de regels (li) in het paneel schalen niet mee met het paneel (204 px, alleen "Specialties" 218 px), BeTheme zet de fly-out op
   een vaste left van 204 px. Gevolg: pijl van Fortgeschrittene 14 px links van die van Specialties, en de fly-out schoof 15 px over
   het eerste paneel heen. Nu: alle regels vullen het paneel, pijl rechts uitgelijnd, fly-out begint precies aan de rand van het paneel.
   ================================================================================ */
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) > li{width:100%;box-sizing:border-box;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) > li > .mfn-menu-link{width:100%;box-sizing:border-box;}
#mfn-header-template .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *) > li > .mfn-menu-link .label-wrapper{flex:1 1 auto;}
#mfn-header-template .mfn-submenu .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){left:calc(100% + 1px)!important;}

/* ================================================================================
   v1.9.2  2026-10-29  Tekstronde 1: meetstrook op de homepage heeft nog 3 cellen (de cel "Buchen, online ab 24 Std. vorher" is weg)
   Desktop 3 kolommen; tablet en telefoon 2 kolommen met de derde cel over de volle breedte.
   ================================================================================ */
@media (min-width:1100px){.vtm-h-readout{grid-template-columns:repeat(3,auto);}}
@media (max-width:1099px){.vtm-h-readout > div:nth-child(3):last-child{grid-column:1 / -1;border-right:0;}}

/* v1.9.3  2026-10-29  Links in tekst op een optiekaart (bijv. ABC-Ausrüstung bij Open Water Diver Comfort) waren donkerblauw op donker */
.vtm-c-opt p a{color:#7FE3E6!important;font-weight:700;text-decoration:underline!important;text-underline-offset:3px;}
.vtm-c-opt p a:hover{color:#fff!important;}

/* ================================================================================
   v1.9.4  2026-11-05  Websiteaanpassingen Deel 2: de twee blokken naast elkaar (Im Preis enthalten / Voraussetzungen e.d.) stonden verspringend
   (tweede blok 44 px lager). Nu staan ze op elke pagina met hun middelpunten op één horizontale lijn.
   ================================================================================ */
@media (min-width:900px){
  .vtm-c-cards{align-items:center;}
  .vtm-c-cards > :nth-child(2){margin-top:0;}
}

/* ================================================================================
   v1.9.5  2026-11-05  Hoofdmenu: Preise staat nu links van het logo (naast Tauchclub), "Shop" staat als tekst rechts in de pil
   (menu Split Right, klasse vtm-menu-shop); de losse Tauchshop-knop (.vtm-shop-pill in het headertemplate) is verborgen.
   Links en rechts hebben daardoor allebei 4 items: de pil is breder (868 px i.p.v. 821) en de items staan iets dichter (padding 9 px), afstand tot het logo blijft 57,7 px.
   ================================================================================ */
@media (min-width:1024px){
  #mfn-header-template .vtm-shop-pill{display:none!important;}
  #mfn-header-template.vtm-header-compact .section_wrapper{max-width:818px;}
  #mfn-header-template.vtm-header-compact .section_wrapper > .wrap.mcb-header-wrap:first-child .mfn-header-menu li:not(:last-child){margin-right:2px;}
  #mfn-header-template.vtm-header-compact .mfn-header-menu .mfn-menu-link:not(.mfn-submenu *){padding-left:9px!important;padding-right:9px!important;}
  #mfn-header-template li.vtm-menu-shop > .mfn-menu-link{color:#7FE3E6!important;font-weight:600;}
}
@media (min-width:1024px) and (max-width:1199px){
  #mfn-header-template:not(.vtm-header-compact) .mfn-menu-link:not(.mfn-submenu *){font-size:14px;padding-left:11px;padding-right:11px;}
}

/* v1.9.5  hover-intent: open paneel blijft zichtbaar zolang .vtm-hov op het item staat (JS: vtm-header.js) */
@media (min-width:1024px){
  #mfn-header-template li.menu-item-has-children.vtm-hov > .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){display:block;}
  #mfn-header-template li.menu-item-has-children.vtm-hov > .mfn-menu-link::after{transform:scaleX(1);}
}
@media (min-width:1024px) and (hover:hover) and (pointer:fine){
  html.vtm-hi #mfn-header-template .section_wrapper li.menu-item-has-children:not(.vtm-hov):not(:focus-within) > .mfn-submenu{display:none!important;}
  html.vtm-hi #mfn-header-template .section_wrapper li.menu-item-has-children.vtm-hov > .mfn-submenu{display:block!important;}
}

/* v1.9.6 (producttegels .vtm-gp-grid/.vtm-gp-card) is vervangen door v1.9.7 en verwijderd: de Garmin-pagina gebruikt .vtm-gp-prod. */

/* ================================================================================
   v1.9.7  2026-11-05  Garmin-pagina uitgebreid: per product tekst, kenmerken, extra foto's en shoplink (.vtm-gp-prod), groepen, FAQ
   ================================================================================ */
.vtm-gp-nav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;}
.vtm-gp-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--vtm-rule,rgba(255,255,255,.2));background:rgba(255,255,255,.05);color:#fff!important;text-decoration:none!important;font-weight:600;font-size:15px;transition:border-color var(--vtm-t-1) ease,background-color var(--vtm-t-1) ease;}
.vtm-gp-nav a:hover{border-color:var(--vtm-teal,#20C4C9);background:rgba(32,196,201,.12);}
.vtm-gp-group{margin-top:80px;}
.vtm-c .vtm-gp-h{margin:0 0 14px!important;font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:clamp(28px,3.4vw,40px)!important;line-height:1.12!important;color:#fff!important;}
.vtm-gp-gintro{max-width:760px;margin:0 0 22px;color:rgba(255,255,255,.86);font-size:18px;line-height:1.6;}
.vtm-gp-guide{max-width:760px;margin:0 0 34px;padding:16px 22px;border-radius:0 12px 12px 0;background:var(--vtm-panel,rgba(255,255,255,.05));border-left:4px solid var(--vtm-signal,#FF8A5B);font-size:16px;line-height:1.7;}
.vtm-gp-guide a{color:#7FE3E6!important;font-weight:700;text-decoration:underline!important;text-underline-offset:3px;}
.vtm-gp-list{display:grid;gap:28px;}
.vtm-gp-prod{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:44px;align-items:center;padding:30px;border-radius:14px;border:1px solid var(--vtm-rule,rgba(255,255,255,.14));background:rgba(255,255,255,.04);scroll-margin-top:112px;}
.vtm-gp-list > .vtm-gp-prod:nth-child(even) .vtm-gp-media{order:2;}
.vtm-gp-main{display:block;aspect-ratio:1/1;border-radius:12px;background:#fff;overflow:hidden;}
.vtm-gp-main img,.vtm-gp-th img{display:block;width:100%;height:100%;object-fit:contain;}
.vtm-gp-main img{padding:18px;transition:transform var(--vtm-t-3) var(--vtm-ease);}
.vtm-gp-prod:hover .vtm-gp-main img{transform:scale(1.03);}
.vtm-gp-thumbs{display:grid;gap:10px;margin-top:10px;}
.vtm-gp-thumbs--1{grid-template-columns:repeat(1,minmax(0,1fr));}.vtm-gp-thumbs--2{grid-template-columns:repeat(2,minmax(0,1fr));}.vtm-gp-thumbs--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.vtm-gp-th{display:block;aspect-ratio:1/1;border-radius:10px;background:#fff;overflow:hidden;}
.vtm-gp-th img{padding:6px;}
.vtm-c h3.vtm-gp-name{margin:0 0 12px!important;font-family:"Titan One",sans-serif!important;font-weight:400!important;font-size:clamp(24px,2.4vw,32px)!important;line-height:1.15!important;color:#fff!important;}
.vtm-gp-lead{margin:0 0 18px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.92);}
.vtm-gp-facts{margin:0 0 18px;padding:0;list-style:none;display:grid;gap:10px;}
.vtm-gp-facts li{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.5;color:rgba(255,255,255,.88);}
.vtm-gp-ck{flex:0 0 18px;width:18px;height:18px;margin-top:3px;background:#7FE3E6;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.vtm-gp-tip{margin:0 0 18px;padding:12px 16px;border-radius:0 10px 10px 0;background:var(--vtm-panel,rgba(255,255,255,.05));border-left:4px solid var(--vtm-signal,#FF8A5B);font-size:15px;line-height:1.55;color:rgba(255,255,255,.9);}
.vtm-gp-buy{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:6px;}
.vtm-gp-p{display:flex;flex-direction:column;font-family:"JetBrains Mono",monospace;font-size:24px;color:#FF8A5B;line-height:1.1;}
.vtm-gp-p small{margin-bottom:4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#BFF4F5;}
.vtm-gp-faqs{display:grid;gap:12px;max-width:860px;}
.vtm-gp-faq{border-radius:14px;border:1px solid var(--vtm-rule,rgba(255,255,255,.14));background:rgba(255,255,255,.04);}
.vtm-gp-faq summary{cursor:pointer;list-style:none;padding:18px 56px 18px 22px;position:relative;font-weight:600;font-size:17px;line-height:1.4;color:#fff;}
.vtm-gp-faq summary::-webkit-details-marker{display:none;}
.vtm-gp-faq summary::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;margin-top:-8px;border-right:2px solid #7FE3E6;border-bottom:2px solid #7FE3E6;transform:rotate(45deg);transition:transform var(--vtm-t-2) var(--vtm-ease);}
.vtm-gp-faq[open] summary::after{transform:rotate(-135deg);margin-top:-2px;}
.vtm-gp-faq p{margin:0;padding:0 22px 20px;font-size:16px;line-height:1.65;color:rgba(255,255,255,.86);}
@media (max-width:899px){
  .vtm-gp-group{margin-top:60px;}
  .vtm-gp-prod{grid-template-columns:1fr;gap:22px;padding:20px;}
  .vtm-gp-list > .vtm-gp-prod:nth-child(even) .vtm-gp-media{order:0;}
  .vtm-gp-gintro,.vtm-gp-lead{font-size:17px;}
  .vtm-gp-buy .vtm-c-btn{width:100%;justify-content:center;}
}
@media (hover:none){.vtm-gp-prod:hover .vtm-gp-main img{transform:none;}}
@media (prefers-reduced-motion:reduce){.vtm-gp-main img,.vtm-gp-faq summary::after,.vtm-gp-nav a{transition:none;}}

/* ================================================================================
   v1.9.8  2026-11-05  Verwerking teamreview Deel 2 (UX, UI, art, motion, marketing, creative, programmeur, SEO)
   - --vtm-ease-menu ontbrak overal: de dropdown-animatie draaide daardoor niet. Nu gedefinieerd, plus reduced-motion voor het paneel.
   - Escape sluit het paneel ook bij toetsenbordfocus (.vtm-dismissed).
   - Garmin: hero met eigen wit kader op effen navy (geen foto met wit verloop), ritme/specificiteit van tekst, gidsknoppen, FAQ-animatie,
     producten bovenaan uitgelijnd, geen zoom op een niet klikbaar vlak, beeldkaders met multiply (grijze randjes weg), mobiele ankerchips.
   - Optiekaarten: sterker verloop onder de tekst en effen navy chips (leesbaarheid op foto's).
   - Menu: externe aanduiding bij Shop.
   ================================================================================ */
:root{--vtm-ease-menu:cubic-bezier(.3,.7,.2,1);}
@media (prefers-reduced-motion:reduce){#mfn-header-template .mfn-submenu{animation:none!important;}}
@media (min-width:1024px){
  #mfn-header-template li.vtm-dismissed > .mfn-submenu:not(.mfn-header-tmpl-menu-sidebar *){display:none!important;}
  #mfn-header-template li.vtm-menu-shop .menu-label::after{content:" \2197";font-size:.85em;opacity:.85;}
}
/* optiekaarten */
.vtm-c-two--3 .vtm-c-opt::after,.vtm-c-two .vtm-c-opt::after{background:linear-gradient(to top,rgba(8,25,58,.96) 0%,rgba(8,25,58,.8) 55%,rgba(8,25,58,.3) 100%);}
.vtm-c-opt .vtm-c-tag{background:#0A2850;border-color:rgba(127,227,230,.35);}
/* Garmin hero */
.vtm-c-hero--garmin{min-height:0;padding:170px 0 96px!important;}
.vtm-gp-heropanel{position:absolute;z-index:-2;top:150px;right:max(40px,calc((100% - 1220px)/2));width:min(44%,540px);aspect-ratio:1/1;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#fff;border-radius:35px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(1,7,39,.7);}
.vtm-gp-heropanel img{display:block;width:100%;height:auto;object-fit:contain;mix-blend-mode:multiply;padding:4%;}
.vtm-c-hero--garmin .vtm-c h1{max-width:min(620px,52%);}
.vtm-c-hero--garmin .vtm-c-lead{max-width:540px;}
@media (max-width:899px){
  .vtm-c-hero--garmin{padding:132px 0 56px!important;}
  .vtm-gp-heropanel{position:relative;top:auto;right:auto;z-index:0;width:auto;margin:0 max(20px,4vw) 28px;aspect-ratio:16/10;}
  .vtm-c-hero--garmin .vtm-c h1{max-width:100%;}
}
/* Garmin tekst: specificiteit boven .vtm-c p / .vtm-c ul, vaste ritmewaarden */
.vtm-gp-intro h2{font-size:clamp(28px,3vw,40px)!important;}
.vtm-gp-group{margin-top:88px;}
.vtm-gp-nav + .vtm-gp-group{margin-top:56px;}
.vtm-c .vtm-gp-gintro{max-width:760px;margin:0 0 24px;color:rgba(255,255,255,.88);}
.vtm-c .vtm-gp-guide{display:grid;gap:12px;max-width:none;margin:0 0 36px;padding:20px 24px;border-radius:0 14px 14px 0;font-size:16px;line-height:1.5;color:rgba(255,255,255,.9);}
.vtm-gp-gline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;}
.vtm-c .vtm-gp-guide a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid rgba(127,227,230,.4);border-radius:999px;text-decoration:none!important;font-weight:700;}
.vtm-c .vtm-gp-guide a:hover{border-color:var(--vtm-teal,#20C4C9);background:rgba(32,196,201,.12);}
.vtm-gp-list{margin-top:36px;}
.vtm-gp-prod{align-items:start;}
.vtm-gp-prod:hover .vtm-gp-main img{transform:none;}
.vtm-gp-main img,.vtm-gp-th img{mix-blend-mode:multiply;}
.vtm-c .vtm-gp-lead{margin:0 0 4px;color:rgba(255,255,255,.92);}
.vtm-c .vtm-gp-facts{margin:20px 0 0;}
.vtm-c .vtm-gp-tip{margin:22px 0 0;border-radius:0 14px 14px 0;color:rgba(255,255,255,.9);}
.vtm-c .vtm-gp-buy{margin-top:28px;}
.vtm-c .vtm-gp-note{margin-top:44px!important;}
.vtm-gp-test{margin-top:104px;}
.vtm-c .vtm-gp-faq p{margin:0;padding:0 22px 20px;color:rgba(255,255,255,.86);}
.vtm-gp-faq summary{transition:background-color var(--vtm-t-1) ease;border-radius:14px;}
.vtm-gp-faq summary:hover{background:rgba(255,255,255,.04);}
.vtm-gp-faq summary::after{margin-top:-8px;transform:translateY(0) rotate(45deg);}
.vtm-gp-faq[open] summary::after{margin-top:-8px;transform:translateY(6px) rotate(-135deg);}
html.vtm-motion .vtm-gp-faq[open] p{animation:vtmRiseS .24s var(--vtm-ease) backwards;}
@media (max-width:899px){
  .vtm-gp-nav{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-20px;padding-right:20px;padding-bottom:6px;-webkit-overflow-scrolling:touch;}
  .vtm-gp-nav a{flex:0 0 auto;scroll-snap-align:start;}
  .vtm-gp-group{margin-top:64px;}
  .vtm-gp-test{margin-top:72px;}
}
@media (prefers-reduced-motion:reduce){html.vtm-motion .vtm-gp-faq[open] p{animation:none;}}
.vtm-gp-heropanel img{transform:scale(1.4);}
/* Winter-tekst in footer en links in kleine teksten: leesbaar */
.vtm-foot-small{display:block;font-size:15px;line-height:1.55;}
.vtm-foot-small a{color:#fff!important;text-decoration:underline;text-underline-offset:3px;font-weight:600;}
.vtm-c .vtm-c-small a{color:#7FE3E6!important;font-weight:700;text-decoration:underline!important;text-underline-offset:3px;}
/* v1.9.9: Garmin-sectie op de Tauchbasis-pagina (onder de fotoblokken) */
.vtm-tb-garmin{margin-top:104px;}
.vtm-tb-garmin .vtm-c-btns{margin-top:24px;}
.vtm-tb-garmin .vtm-tb-garmin__img{justify-self:stretch;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:#fff;border-radius:14px;overflow:hidden;aspect-ratio:16/10;}
.vtm-tb-garmin .vtm-tb-garmin__img img{display:block;width:100%;height:auto;object-fit:contain;mix-blend-mode:multiply;padding:4%;transform:scale(1.25);}
@media (max-width:899px){.vtm-tb-garmin{margin-top:72px;}.vtm-tb-garmin .vtm-tb-garmin__img{order:-1;}}
