.callback-tab{position:fixed;z-index:170;left:0;top:58%;min-width:46px;min-height:118px;padding:14px 11px;border:0;border-radius:0 14px 14px 0;background:#ff6a2d;color:#fff;box-shadow:0 14px 32px rgba(3,11,25,.25);font:900 13px/1 Arial,Helvetica,sans-serif;letter-spacing:.04em;cursor:pointer}.callback-tab span{display:block;writing-mode:vertical-rl;transform:rotate(180deg)}.callback-tab:hover,.callback-tab:focus-visible{background:#1761dc}.callback-dialog{width:min(620px,calc(100% - 30px));max-height:min(820px,calc(100vh - 30px));padding:0;border:0;border-radius:22px;background:#fff;color:#07172f;box-shadow:0 30px 90px rgba(3,11,25,.4);font-family:Arial,Helvetica,sans-serif}.callback-dialog::backdrop{background:rgba(3,11,25,.68);backdrop-filter:blur(3px)}.callback-dialog form{padding:32px}.callback-dialog header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.callback-dialog header small{display:block;margin-bottom:10px;color:#1761dc;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.callback-dialog h2{max-width:480px;margin:0;font-size:clamp(32px,5vw,50px);line-height:.95;letter-spacing:-.05em}.callback-dialog header>button{width:40px;height:40px;flex:0 0 40px;border:1px solid #cfdae6;border-radius:50%;background:#fff;color:#07172f;font-size:25px;line-height:1;cursor:pointer}.callback-dialog form>p{margin:22px 0;color:#52677d;font-size:16px;line-height:1.6}.callback-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.callback-fields label:first-child{grid-column:1/-1}.callback-fields label>span,.callback-dialog legend{display:block;margin-bottom:8px;font-size:13px;font-weight:900}.callback-fields input{width:100%;min-height:48px;padding:12px 13px;border:1px solid #c7d3df;border-radius:9px;background:#fff;color:#07172f;font:inherit}.callback-dialog fieldset{margin:20px 0 0;padding:0;border:0}.callback-moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.callback-moments label{display:block;cursor:pointer}.callback-moments input{position:absolute;opacity:0;pointer-events:none}.callback-moments span{display:flex;min-height:88px;flex-direction:column;justify-content:center;padding:13px;border:1px solid #c7d3df;border-radius:10px;background:#f5f8fb}.callback-moments strong,.callback-moments small{display:block}.callback-moments strong{font-size:13px}.callback-moments small{margin-top:5px;color:#62768a;font-size:11px;line-height:1.35}.callback-moments input:checked+span{border-color:#1761dc;background:#eaf2ff;box-shadow:inset 0 0 0 1px #1761dc}.callback-moments input:focus-visible+span{outline:3px solid rgba(23,97,220,.3);outline-offset:2px}.callback-consent{display:flex;gap:10px;align-items:flex-start;margin-top:18px;color:#52677d;font-size:12px;line-height:1.5}.callback-consent input{margin-top:2px}.callback-dialog footer{display:grid;grid-template-columns:auto 1fr;gap:15px;align-items:center;margin-top:22px}.callback-dialog footer button{min-height:48px;padding:14px 18px;border:0;border-radius:999px;background:#ff6a2d;color:#fff;font:900 12px/1 Arial,Helvetica,sans-serif;cursor:pointer}.callback-dialog footer button:disabled{cursor:wait;opacity:.65}.callback-dialog footer span{color:#52677d;font-size:12px;line-height:1.4}.callback-dialog footer span.is-error{color:#a12b1d}.callback-dialog footer span.is-success{color:#18733d;font-weight:900}.callback-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}@media(max-width:650px){.callback-tab{top:auto;right:16px;bottom:16px;left:auto;min-width:0;min-height:46px;padding:14px 18px;border-radius:999px}.callback-tab span{writing-mode:horizontal-tb;transform:none}.callback-dialog{max-height:calc(100vh - 18px);border-radius:17px}.callback-dialog form{padding:23px}.callback-fields,.callback-moments{grid-template-columns:1fr}.callback-fields label:first-child{grid-column:auto}.callback-moments span{min-height:68px}.callback-dialog footer{grid-template-columns:1fr}.callback-dialog footer button{width:100%}}

.callback-moments{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.callback-moments label.is-unavailable{cursor:not-allowed}.callback-moments label.is-unavailable span{opacity:.42;background:#edf1f4}.callback-moments label.is-unavailable small:after{content:" · niet meer beschikbaar"}
.callback-date-top{margin-bottom:18px}.callback-date-preference{margin:0!important}.callback-date-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.callback-date-options label{display:block;min-width:0;cursor:pointer}.callback-date-options input{position:absolute;opacity:0;pointer-events:none}.callback-date-options span{display:flex;min-height:70px;flex-direction:column;justify-content:center;padding:11px 12px;border:1px solid #c7d3df;border-radius:10px;background:#f5f8fb}.callback-date-options strong,.callback-date-options small{display:block}.callback-date-options strong{font-size:12px}.callback-date-options small{margin-top:4px;color:#62768a;font-size:10px;line-height:1.35}.callback-date-options input:checked+span{border-color:#1761dc;background:#eaf2ff;box-shadow:inset 0 0 0 1px #1761dc}.callback-date-options input:focus-visible+span{outline:3px solid rgba(23,97,220,.3);outline-offset:2px}.callback-date-top>.callback-specific-date{display:block;margin-top:12px}.callback-date-top>.callback-specific-date>span{display:block;margin-bottom:8px;font-size:13px;font-weight:900}.callback-date-top>.callback-specific-date input{width:100%;min-height:48px;padding:12px 13px;border:1px solid #c7d3df;border-radius:9px;background:#fff;color:#07172f;font:inherit}.callback-dialog [data-callback-moment-group] legend small{margin-left:6px;color:#62768a;font-size:10px;font-weight:500}.callback-specific-date[hidden],[data-callback-moment-group][hidden]{display:none!important}
@media(max-width:650px){.callback-moments{grid-template-columns:1fr}}
@media(max-width:650px){.callback-date-options{grid-template-columns:1fr}.callback-date-options span{min-height:58px}}

/* Een korte reflectie trekt af en toe rustig de aandacht naar het terugbeltapje. */
.callback-tab{overflow:hidden;isolation:isolate}
.callback-tab span{position:relative;z-index:1}
.callback-tab::after{position:absolute;z-index:0;top:-30%;bottom:-30%;left:-62px;width:30px;background:linear-gradient(100deg,transparent,rgba(255,255,255,.12) 25%,rgba(255,255,255,.62) 50%,rgba(255,255,255,.12) 75%,transparent);transform:skewX(-14deg);pointer-events:none;content:"";animation:callback-tab-reflection 10s ease-in-out infinite}
@keyframes callback-tab-reflection{0%,70%{left:-62px}78%,100%{left:135px}}
@media(prefers-reduced-motion:reduce){.callback-tab::after{animation:none}}

/* Houd de actie in het terugbelvenster los van de algemene websitefooter. */
.callback-dialog footer{min-height:0;padding:0;background:transparent;color:inherit}

/* Het onderwerp krijgt voldoende schrijfruimte; het venster blijft op lage schermen scrolbaar. */
.callback-dialog{overflow-y:auto}
.callback-fields .callback-topic,.callback-fields .callback-email{grid-column:1/-1}
.callback-fields .callback-email small{display:block;margin-top:7px;color:#62768a;font-size:12px;font-weight:400;line-height:1.45}

/* Contacttabs blijven aan de zijkant, vrij van aanvraagknop en seizoensdecoratie. */
:root{--contact-tab-top:clamp(120px,58vh,calc(100vh - 260px))}
.callback-tab{top:var(--contact-tab-top)}
.whatsapp-tab{box-sizing:border-box;position:fixed;z-index:170;left:0;top:calc(var(--contact-tab-top) - 60px);display:flex;align-items:center;gap:12px;width:48px;height:48px;padding:0 11px;overflow:hidden;border:1px solid rgba(255,255,255,.3);border-left:0;border-radius:0 24px 24px 0;background:#128c4a;color:#fff!important;box-shadow:0 14px 32px rgba(3,11,25,.25);font:900 12px/1 Arial,Helvetica,sans-serif;text-decoration:none;transition:width .3s ease,background .2s ease}
.whatsapp-tab svg{flex:0 0 26px}
.whatsapp-tab span{white-space:nowrap;opacity:0;transition:opacity .2s ease}
.whatsapp-tab:hover,.whatsapp-tab:focus-visible{width:164px;background:#087b3e}
.whatsapp-tab:hover span,.whatsapp-tab:focus-visible span{opacity:1}
.whatsapp-tab:focus-visible{outline:3px solid #1761dc;outline-offset:3px}
@media(max-width:650px){.callback-tab{left:0;right:auto;bottom:auto;top:var(--contact-tab-top);min-width:46px;min-height:118px;padding:14px 11px;border-radius:0 14px 14px 0}.callback-tab span{writing-mode:vertical-rl;transform:rotate(180deg)}}
/* Op touchscreens is de bestemming meteen leesbaar, zonder hover nodig te hebben. */
@media(hover:none){.whatsapp-tab{width:164px}.whatsapp-tab span{opacity:1}}
@media(prefers-reduced-motion:reduce){.whatsapp-tab,.whatsapp-tab span{transition:none}}

.contact-dock{display:contents}.contact-dock-quote{display:none}
@media(max-width:650px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .contact-dock{box-sizing:border-box;position:fixed;z-index:485;inset:auto 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #dce4ec;box-shadow:0 -6px 24px #06183018;font:700 12px/1.2 Arial,Helvetica,sans-serif}
  .contact-dock .whatsapp-tab,.contact-dock .callback-tab,.contact-dock .contact-dock-quote{position:relative;inset:auto;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:6px;width:auto;min-width:0;height:48px;min-height:48px;padding:8px;border:0;border-radius:12px;box-shadow:none;letter-spacing:0;font:800 12px/1.2 Arial,Helvetica,sans-serif;text-decoration:none}
  .contact-dock .whatsapp-tab svg{width:20px;height:20px;flex-basis:20px}
  .contact-dock .whatsapp-tab span{opacity:1;white-space:normal;font-size:11px}
  .contact-dock .callback-tab span{writing-mode:horizontal-tb;transform:none}
  .contact-dock .contact-dock-quote{background:#061830;color:#fff}
  .contact-dock-quote b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#ff6a2d;font-size:10px}
  .request-float{display:none!important}
  .request-toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .halloween-mini-control{bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .halloween-pumpkin-art{position:fixed!important;left:-17px;right:auto;top:auto;bottom:var(--halloween-pumpkin-bottom,calc(72px + env(safe-area-inset-bottom,0px)))!important;width:175px;touch-action:none}
  .halloween-pumpkins{bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .weather-lab-trigger{bottom:calc(90px + env(safe-area-inset-bottom,0px))!important}
  .home-page .weather-lab-trigger{bottom:calc(180px + env(safe-area-inset-bottom,0px))!important}
  .hosting-subnav--dock{bottom:calc(82px + env(safe-area-inset-bottom,0px))!important}
}

/* Mobiel: contact links, compacte terugbelknop en beide manden samen rechts. */
.contact-dock-carts{display:contents}.contact-dock-order{display:none}
@media(max-width:650px){
  .contact-dock--orders{grid-template-columns:minmax(82px,1fr) 48px minmax(140px,1.65fr);gap:5px;padding-left:8px;padding-right:8px}
  .contact-dock--orders .callback-tab{padding:6px 3px;font-size:11px}
  .contact-dock--orders .whatsapp-tab{gap:5px;padding:6px}
  .contact-dock--orders .whatsapp-tab svg{width:18px;height:18px;flex-basis:18px}
  .contact-dock--orders .contact-dock-carts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;min-width:0;border-radius:12px;background:#cad5e4}
  .contact-dock--orders .contact-dock-quote,.contact-dock--orders .contact-dock-order{position:static;display:flex;align-items:center;justify-content:center;gap:3px;box-sizing:border-box;min-width:0;min-height:48px;padding:6px 3px;color:#fff;font:800 10px/1.2 Arial,Helvetica,sans-serif;text-decoration:none;white-space:nowrap}
  .contact-dock--orders .contact-dock-quote{border-radius:12px 0 0 12px}
  .contact-dock--orders .contact-dock-order{border-radius:0 12px 12px 0;background:#174edb}
  .contact-dock--orders .contact-dock-carts b{display:grid;place-items:center;flex-shrink:0;min-width:16px;height:18px;padding:0 2px;border-radius:20px;background:#fff;color:#061830;font-size:10px}
  .contact-dock-carts a:focus-visible{outline:3px solid #ff6a2d;outline-offset:2px}
}
@media(max-width:360px){.contact-dock--orders .contact-dock-quote,.contact-dock--orders .contact-dock-order{flex-direction:column;gap:3px;padding:4px 2px}}
