/* Engima – runtime enhancements: cookie consent, form states, mobile polish.
   Loaded on every page. Kept namespaced (eng-) to avoid clashing with Elementor. */

:root{
  --eng-dark:#0e1116; --eng-panel:#1a212b; --eng-line:#2c3542;
  --eng-text:#e9eef4; --eng-muted:#aab2bd; --eng-accent:#2563eb; --eng-accent-h:#3b82f6;
  --eng-green:#16a34a; --eng-red:#dc2626;
}

/* ── Cookie consent ─────────────────────────────────────────── */
.eng-cc{position:fixed;left:16px;right:16px;bottom:16px;z-index:99999;max-width:460px;
  background:var(--eng-dark);color:var(--eng-text);border:1px solid var(--eng-line);
  border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  padding:20px 22px;line-height:1.5;transform:translateY(140%);transition:transform .4s cubic-bezier(.16,1,.3,1);}
.eng-cc.eng-show{transform:translateY(0)}
.eng-cc h2{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:.2px}
.eng-cc p{margin:0 0 14px;font-size:13.5px;color:var(--eng-muted)}
.eng-cc a{color:var(--eng-accent-h);text-decoration:underline}
.eng-cc__row{display:flex;flex-wrap:wrap;gap:8px}
.eng-cc__btn{border:1px solid var(--eng-line);background:transparent;color:var(--eng-text);
  padding:10px 16px;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:.15s;flex:1;min-width:120px}
.eng-cc__btn:hover{border-color:var(--eng-accent-h)}
.eng-cc__btn--primary{background:var(--eng-accent);border-color:var(--eng-accent);color:#fff}
.eng-cc__btn--primary:hover{background:var(--eng-accent-h);border-color:var(--eng-accent-h)}
.eng-cc__link{background:none;border:none;color:var(--eng-muted);font-size:12.5px;cursor:pointer;
  text-decoration:underline;padding:6px 0;font-family:inherit}
.eng-cc__prefs{margin:6px 0 14px;display:none}
.eng-cc.eng-prefs-open .eng-cc__prefs{display:block}
.eng-cc__pref{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--eng-line)}
.eng-cc__pref b{font-size:13.5px;display:block}
.eng-cc__pref span{font-size:12px;color:var(--eng-muted)}
.eng-cc__pref input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--eng-accent)}
.eng-cc__pref input:disabled{opacity:.5}

/* Floating re-open button (privacy settings) */
.eng-cc-reopen{position:fixed;left:16px;bottom:16px;z-index:9998;width:42px;height:42px;border-radius:50%;
  background:var(--eng-dark);border:1px solid var(--eng-line);color:var(--eng-text);cursor:pointer;
  display:none;align-items:center;justify-content:center;font-size:20px;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.eng-cc-reopen.eng-show{display:flex}
.eng-cc-reopen:hover{border-color:var(--eng-accent-h)}

@media(max-width:520px){
  .eng-cc{left:10px;right:10px;bottom:10px;padding:18px}
  .eng-cc__btn{min-width:100%}
}

/* ── Contact / application form states ──────────────────────── */
.eng-form-msg{margin-top:16px;padding:14px 16px;border-radius:10px;font-size:14px;display:none}
.eng-form-msg.eng-show{display:block}
.eng-form-msg.eng-ok{background:rgba(22,163,74,.12);border:1px solid var(--eng-green);color:#bbf7d0}
.eng-form-msg.eng-err{background:rgba(220,38,38,.12);border:1px solid var(--eng-red);color:#fecaca}
.eng-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
form.elementor-form.eng-sending button[type=submit]{opacity:.6;pointer-events:none}

/* Social icons hidden until a URL is configured */
.elementor-social-icon.eng-hide{display:none!important}

/* Footer contact links (e-mail/telefoon) inherited a dark-blue link colour with
   almost no contrast on the dark footer. Make them readable like the address. */
.elementor-location-footer a[href^="mailto:"],
.elementor-location-footer a[href^="tel:"]{color:#fff!important;transition:color .15s}
.elementor-location-footer a[href^="mailto:"]:hover,
.elementor-location-footer a[href^="tel:"]:hover{color:#6EC1E4!important;text-decoration:underline}

/* Neutralise any leftover Complianz markup (its JS/config are removed) */
#cmplz-cookiebanner-container,#cmplz-manage-consent,.cmplz-cookiebanner,
.cmplz-blocker-container,.cmplz-manage-consent{display:none!important}

/* Custom mobile menu. The static mirror lost Elementor's mobile-header CSS/JS,
   so its burger + menu collapse to 0×0 on phones. We render our own overlay
   (built by engima.js) and only on ≤1024px, leaving the working desktop nav. */
.eng-nav-toggle{display:none}
.eng-nav-overlay{display:none}
@media(max-width:1024px){
  .elementor-menu-toggle{display:none!important} /* hide the broken Elementor burger */
  .eng-nav-toggle{position:fixed;top:14px;right:14px;z-index:99990;width:46px;height:46px;
    display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
    background:var(--eng-dark);border:1px solid var(--eng-line);border-radius:10px;cursor:pointer;padding:0}
  .eng-nav-toggle span{display:block;width:22px;height:2px;background:var(--eng-text);transition:.25s}
  body.eng-nav-open .eng-nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.eng-nav-open .eng-nav-toggle span:nth-child(2){opacity:0}
  body.eng-nav-open .eng-nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .eng-nav-overlay{display:block;position:fixed;inset:0;z-index:99989;background:rgba(8,10,14,.6);
    opacity:0;visibility:hidden;transition:.25s}
  body.eng-nav-open .eng-nav-overlay{opacity:1;visibility:visible}
  .eng-nav-panel{position:absolute;top:0;right:0;height:100%;width:min(82vw,340px);background:var(--eng-dark);
    border-left:1px solid var(--eng-line);padding:72px 0 24px;transform:translateX(100%);
    transition:transform .3s cubic-bezier(.16,1,.3,1);overflow-y:auto}
  body.eng-nav-open .eng-nav-panel{transform:translateX(0)}
  .eng-nav-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--eng-text);
    font-size:32px;line-height:1;cursor:pointer}
  .eng-nav-panel ul{list-style:none;margin:0;padding:0}
  .eng-nav-panel a{display:block;padding:15px 26px;color:var(--eng-text);text-decoration:none;
    font-size:18px;font-weight:600;border-bottom:1px solid var(--eng-line);text-transform:capitalize}
  .eng-nav-panel a:hover,.eng-nav-panel a:active{background:var(--eng-panel);color:var(--eng-accent-h)}
}

/* ── Mobile polish (safe, additive) ─────────────────────────── */
@media(max-width:767px){
  /* Prevent accidental horizontal scroll from wide elements */
  html,body{overflow-x:hidden;max-width:100%}
  /* Comfortable tap targets for nav & buttons */
  .elementor-button,.elementor-item{min-height:44px}
  /* Keep media from overflowing */
  img,video,iframe{max-width:100%;height:auto}
}
