/* =====================================================================
   jboumans.nl 2026 · Elementor-brug (CONTRACTEN §5)
   Elementors wrappers verdwijnen uit de layout, zodat tokens.css, base.css en blocks.css (byte voor byte uit
   site/css) precies hetzelfde tekenen als in het prototype. Getoetst tegen Elementor 4.3.4 (assets/css/frontend.min.css,
   includes/elements/container.php) met test_brug.py: berekende stijlen en pixels op 1280 en 390 breed.

   De DOM die Elementor maakt (CONTRACTEN §3):
     <main id="main"> div.elementor > div.e-con.jb-vrij > div.elementor-widget-jb_x > <section> (de vorm)
   Buiten de editor worden die wrappers display:contents: elke sectie staat dan in de layout direct onder <main>,
   zoals in het prototype. In de editor blijven het echte vakken (Elementor tekent daar zijn randen op), zonder maten.
   ===================================================================== */

body:not(.elementor-editor-active) main > .elementor,
body:not(.elementor-editor-active) .e-con.jb-vrij,
body:not(.elementor-editor-active) .e-con.jb-vrij > .elementor-element {
  display: contents;
}
.e-con.jb-vrij.jb-vrij {
  --display: block; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --width: 100%; --content-width: 100%; --container-max-width: 100%;
  display: block; max-width: none; padding: 0; margin: 0; gap: 0; min-height: 0;
}
.e-con.jb-vrij > .elementor-element { margin: 0; }

/* Het contactformulier: het sjabloon met het Pro-formulier staat in .jb-letter op de plek van <form class="jb-form">. */
body:not(.elementor-editor-active) .jb-letter .elementor,
body:not(.elementor-editor-active) .jb-letter .e-con.jb-vrij,
body:not(.elementor-editor-active) .jb-letter .e-con.jb-vrij > .elementor-element {
  display: contents;
}

/* Herstel: wat Elementors frontend.css op alle inhoud zet (.elementor a, .elementor img, figure) en wat regels uit
   base.css en blocks.css met een lagere specificiteit verliezen. Gemaakt door brug.py bij elke bouw. */
/* jb:herstel:begin */
/* UA-standaard van links terug (0,1,1, na Elementor geladen); klasseregels hieronder winnen weer */
.elementor a:where(:any-link){text-decoration:underline;}
/* UA-standaard van <figure> terug (Elementor zet margin:0 met 0,4,1) */
.elementor .elementor-widget.elementor-widget.elementor-widget figure{margin:1em 40px;}
.elementor .elementor-widget.elementor-widget.elementor-widget figure{margin:0;}
.elementor img{max-width:100%;height:auto;}
.elementor a{text-decoration-thickness:2px;}
.elementor a:hover{text-decoration-style:wavy;}
.elementor .jb-logo{text-decoration:none;}
.elementor .jb-logo img{height:48px;border-radius:6px;}
.elementor .jb-tabs__list a{text-decoration:none;box-shadow:inset 0 5px 0 var(--tab);}
.elementor .jb-lang{text-decoration:none;}
@media (max-width: 29.99em){.elementor .jb-logo img{height:40px;}}
.elementor .jb-button{text-decoration:none;box-shadow:3px 3px 0 var(--ink);}
.elementor .jb-button:hover{box-shadow:5px 5px 0 var(--ink);text-decoration:none;}
.elementor .jb-button:active{box-shadow:1px 1px 0 var(--ink);}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-print{margin:0;}
.elementor .jb-print img{height:auto;}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-now__photo{margin-top:calc(var(--line) * 1.5);}
@media (min-width: 56em){.elementor .elementor-widget.elementor-widget.elementor-widget .jb-now__photo{margin-top:0.5rem;}}
.elementor .jb-door{text-decoration:none;box-shadow:4px 4px 0 color-mix(in srgb, var(--ink) 20%, transparent);}
.elementor .jb-door:hover,.elementor .jb-door:focus-visible{box-shadow:5px 6px 0 var(--ink);}
.elementor .jb-taped img{height:clamp(13rem, 52vw, 18rem);max-width:min(78vw, 26rem);}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-video{margin:0;}
.elementor .jb-video img{border:0;border-radius:3px;}
.elementor .jb-postcard__stamp img{height:auto;border:0.3rem solid var(--hl-pink);}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-mascot{margin:0;}
.elementor .jb-mascot img{height:auto;}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-pinned,.elementor .elementor-widget.elementor-widget.elementor-widget .jb-snap{margin:0;}
.elementor .jb-pinned img,.elementor .jb-snap img{height:auto;}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-sticker{margin:0 0 1rem 1.25rem;}
.elementor .jb-sticker img{border-radius:50%;border:3px solid var(--ink);}
@media (max-width: 47.99em){.elementor .elementor-widget.elementor-widget.elementor-widget .jb-sticker{margin:0 0 0.5rem auto;}}
.elementor .jb-chip{text-decoration:none;}
.elementor .jb-card__pic img{height:100%;}
.elementor .jb-card__link{text-decoration:none;}
.elementor .jb-card:has(.jb-card__link):hover{box-shadow:5px 6px 0 var(--ink);}
.elementor .jb-filter .jb-chip[aria-pressed="true"]{box-shadow:2px 2px 0 var(--ink);}
.elementor .elementor-widget.elementor-widget.elementor-widget .jb-lightbox__figure{margin:0;}
.elementor .jb-lightbox__img{height:auto;max-width:100%;}
.elementor .jb-more__link{text-decoration:none;}
/* jb:herstel:eind */
