/*
Theme Name: ImZenox - First Edition
Description: Coding/Grafikdesign mit Modus-Switch, 3D-Druck, News & Jobs. Auftragsannahme immer hell.
Version: v3d5b
Text Domain: imzenox-eu
*/

:root{ --bg:#fff; --fg:#0f172a; --muted:#64748b; --border:rgba(0,0,0,.12); }
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"; color:var(--fg); background:var(--bg); }
a{ color:inherit; text-decoration:none; }
.container{ max-width:1100px; margin:0 auto; padding:0 1rem; }
.section{ padding:3rem 0; }
.section--border{ border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.is-hidden{ display:none !important; }
.muted{ color:var(--muted); }

/* Header / Nav */
.site-header{ position:sticky; top:0; z-index:50; backdrop-filter:saturate(140%) blur(8px); background:rgba(255,255,255,.75); border-bottom:1px solid var(--border); }
.navbar{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.5rem 1rem; }
.brand a{ display:inline-flex; align-items:center; gap:.5rem; font-weight:800; }
.brand .logo{ height:40px; width:32px; border-radius:.5rem; margin-right:.4rem; }
.site-nav .menu{ display:flex; gap:.5rem; flex-wrap:wrap; margin:0; padding:0 1rem 1rem; }
.site-nav .menu li{ list-style:none; }
.site-nav .menu a{ display:inline-flex; padding:.5rem .75rem; border-radius:.6rem; border:1px solid transparent; }
.site-nav .menu .current-menu-item > a{ border-color:var(--border); }

/* Mode switch */
.mode-switch{ display:inline-grid; grid-auto-flow:column; gap:.35rem; padding:.25rem; border:1px solid var(--border); border-radius:.8rem; }
.mode-switch button{ padding:.45rem .8rem; border-radius:.6rem; border:1px solid transparent; background:transparent; cursor:pointer; }
.mode-switch button.active{ background:#000; color:#fff; border-color:transparent; }
body.theme-coding .mode-switch button{ color:#fff !important; border-color:rgba(255,255,255,.22); }
body.theme-design .mode-switch button{ color:#0f172a !important; border-color:var(--border); }
body.theme-design .mode-switch button.active{ background:transparent; border:1px solid #0f172a; font-weight:700; }
.no-mode .mode-switch{ display:none; }

/* Chips / Surfaces */
.badge,.chip{ display:inline-flex; align-items:center; padding:.25rem .6rem; border-radius:.6rem; border:1px solid var(--border); font-size:.78rem; }
.surface{ background:#fff; border:1px solid var(--border); border-radius:1rem; overflow:hidden; }

/* Grid & media */
.grid{ display:grid; gap:1rem; }
.grid.grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.aspect-video{ position:relative; width:100%; padding-top:56.25%; border-radius:.75rem; background:#f1f5f9; overflow:hidden; }
.aspect-video > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* Hero */
.hero{ position:relative; overflow:hidden; }
.hero h1{ margin:0; font-size:clamp(2rem,3vw + 1rem,3rem); line-height:1.12; }
.hero .lead{ margin-top:.75rem; font-size:1.1rem; color:var(--fg); opacity:.9; }
.hero .ring-overlay{ position:absolute; inset:0; pointer-events:none; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:.5rem; padding:.7rem 1rem; border-radius:1rem; border:1px solid var(--border); font-weight:600; }
.btn--primary{ color:#fff; background:linear-gradient(90deg,#8b5cf6,#d946ef); border-color:transparent; will-change:transform; transform:translateZ(0); backface-visibility:hidden; }
.btn--ghost{ background:#fff; }
body.theme-coding .btn.btn--ghost{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.22); color:#fff; }

/* Footer */
.site-footer{ border-top:1px solid var(--border); padding:2rem 1rem; color:var(--muted); }

/* Coding Theme (Gradient via ::before → keine Pixelkante) */
body.theme-coding{ color:#fff; overflow-x:hidden; background:#0b0b0f; }
body.theme-coding::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; transform:translateZ(0);
  background-image:
    radial-gradient(1200px 800px at 95% 20%, rgba(139,92,246,.42) 0%, rgba(139,92,246,.18) 45%, rgba(139,92,246,0) 70%),
    radial-gradient(900px 700px at 0% 0%, rgba(217,70,239,.18) 0%, rgba(217,70,239,0) 60%),
    linear-gradient(180deg,#0b0b0f 0%,#000 100%);
  background-repeat:no-repeat,no-repeat,no-repeat;
  background-position:100% 20%,0% 0%,center;
  background-size:1400px 900px,900px 700px,auto;
}
body.theme-coding .site-header{ background:rgba(10,10,14,.55); border-color:rgba(255,255,255,.12); }
body.theme-coding .brand a, body.theme-coding .site-nav .menu a, body.theme-coding .hero .lead{ color:#fff; }
body.theme-coding .surface{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.16); box-shadow:0 10px 30px rgba(0,0,0,.35); }
body.theme-coding .badge, body.theme-coding .chip{ border-color:rgba(255,255,255,.22); color:#fff; }
body.theme-coding .hero{ background:transparent !important; }
body.theme-coding .hero .ring-overlay{ background:radial-gradient(800px 400px at 65% 15%, rgba(167,139,250,.25) 0%, rgba(167,139,250,0) 60%); }

/* Design Theme (hell + CMYK-Leiste) */


/* TechCare Theme */
body.theme-techcare{ background:linear-gradient(180deg,#eaf6ff 0%, #ffffff 55%, #fff9db 100%); color:#0b2a3a; }
body.theme-techcare::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; transform:translateZ(0);
  background-image:
    radial-gradient(900px 700px at 15% 15%, rgba(56,189,248,.35) 0%, rgba(56,189,248,0) 65%),
    radial-gradient(700px 600px at 85% 25%, rgba(250,204,21,.22) 0%, rgba(250,204,21,0) 60%);
  background-repeat:no-repeat,no-repeat;
}
body.theme-techcare .site-header{ background:rgba(255,255,255,.88); border-color:rgba(2,132,199,.18); }
body.theme-techcare .brand a, body.theme-techcare .site-nav .menu a, body.theme-techcare .hero .lead{ color:#0b2a3a; }
body.theme-techcare .surface{ background:#fff; border-color:rgba(2,132,199,.18); }
body.theme-techcare .badge, body.theme-techcare .chip{ border-color:rgba(2,132,199,.22); }

/* Mode-Switch Buttons in TechCare */
body.theme-techcare .mode-switch button{ color:#0b2a3a !important; border-color:rgba(2,132,199,.25); }
body.theme-techcare .mode-switch button.active{ background:rgba(2,132,199,.10); border-color:rgba(2,132,199,.55); font-weight:700; }
body.theme-design{ background:linear-gradient(180deg,#fff,#f8fafc); color:#0f172a; }
body.theme-design .site-header{ background:rgba(255,255,255,.85); border-color:var(--border); }
body.theme-design .brand a, body.theme-design .site-nav .menu a, body.theme-design .hero .lead{ color:#0f172a; }
.cmyk-strip{ display:none; height:8px; overflow:hidden; border-radius:999px; margin-top:.75rem; }
.cmyk-strip > span{ flex:1; }
.cmyk-strip .c{ background:#00BCD4; } .cmyk-strip .m{ background:#E91E63; } .cmyk-strip .y{ background:#FFEB3B; } .cmyk-strip .k{ background:#111; }
body.theme-design .cmyk-strip{ display:flex; }

/* Auftragsannahme immer hell, egal welcher Modus */
body.imz-auftrag{ background:linear-gradient(180deg,#fff 0%, #f8fafc 100%) !important; color:#0f172a !important; }
body.imz-auftrag::before{ display:none !important; }
body.imz-auftrag .site-header{ background:rgba(255,255,255,.92) !important; border-color:rgba(0,0,0,.12) !important; }
body.imz-auftrag .brand a, body.imz-auftrag .site-nav .menu a{ color:#0f172a !important; }
body.imz-auftrag .mode-switch button{ color:#0f172a !important; border-color:rgba(0,0,0,.15) !important; }
body.imz-auftrag .surface{ background:#fff !important; border:1px solid rgba(0,0,0,.10) !important; box-shadow:0 10px 30px rgba(2,6,23,.06) !important; }
body.imz-auftrag input, body.imz-auftrag select, body.imz-auftrag textarea{ background:#fff !important; color:#0f172a !important; border:1px solid rgba(0,0,0,.15) !important; border-radius:.6rem; padding:.6rem .75rem; }
body.imz-auftrag a{ color:#0f172a !important; text-decoration:underline; }
body.imz-auftrag input[type="checkbox"]{ accent-color:#8b5cf6; }

/* 3D‑Druck neutral & gut lesbar */
.post-type-archive-prints, .single-prints{ background:linear-gradient(180deg,#fff 0%, #f8fafc 100%); color:#0f172a; }
.post-type-archive-prints .site-header, .single-prints .site-header{ background:rgba(255,255,255,.9); }
.post-type-archive-prints .surface, .single-prints .surface{ background:#fff; border:1px solid rgba(0,0,0,.1); box-shadow:0 10px 30px rgba(2,6,23,.06); }
.print-price{ font-weight:700; background:linear-gradient(90deg,#06b6d4,#22d3ee); border:0; color:#002; padding:.15rem .5rem; border-radius:.5rem; }

/* Mobile */
@media (max-width:640px){
  .container{ padding:0 .75rem; }
  .site-nav .menu{ flex-direction:column; gap:.25rem; }
  .grid.grid-3{ grid-template-columns:1fr; }
  .hero .lead{ font-size:1rem; }
}


/* v3d5c: Custom Logo */
.custom-logo{ height:40px; width:auto; border-radius:.5rem; display:inline-block; }
.custom-logo-link{ display:inline-flex; align-items:center; gap:.5rem; }
.brand .logo{ height:40px; width:32px; border-radius:.5rem; margin-right:.4rem; }


/* IMZ: Mobile tweaks */
@media (max-width: 820px){
  .container{ padding-left:16px; padding-right:16px; }
  .section{ padding-top:28px; padding-bottom:28px; }

  /* Header / nav */
  .nav ul{ flex-wrap:wrap; gap:10px; }
  .nav a.nav-link{ padding:10px 10px; font-size:14px; }

  /* Mode switch */
  .mode-switch{ flex-wrap:wrap; gap:8px; }
  .mode-switch button{ padding:10px 12px; font-size:14px; border-radius:999px; }

  /* Hero */
  .hero h1{ font-size: clamp(28px, 7vw, 44px); line-height:1.1; }
  .lead{ font-size:16px; }

  /* Buttons */
  .btn-row{ flex-direction:column; align-items:stretch; }
  .btn-row .btn{ width:100%; justify-content:center; }

  /* Chips */
  .chip{ font-size:13px; padding:8px 10px; }
  .chip svg{ width:18px; height:18px; }

  /* Grids */
  .grid, .imz-post-grid, .imz-grid, .imz-service-grid, .portfolio-grid{
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 420px){
  .nav a.nav-link{ padding:9px 9px; font-size:13px; }
  .mode-switch button{ padding:10px 10px; }
}
/* IMZ: end Mobile tweaks */


/* IMZ: Sticky header mobile */
@media (max-width: 820px){
  .site-header{
    position: sticky;
    top: 0;
    z-index: 1000;
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0,0,0,.08);
  }
  /* keep header content compact */
  .site-header .navbar{ padding-top:10px; padding-bottom:10px; }

  /* Put switcher on its own row above the menu tabs */
  .site-header .navbar{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .site-header .brand{ width:100%; }
  .site-header .brand a{ display:flex; gap:10px; align-items:center; justify-content:center; flex-wrap:wrap; }
  .site-header .brand span{ text-align:center; }

  .site-header .mode-switch{
    width:100%;
    display:flex;
    gap:8px;
    justify-content:center;
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom:2px;
  }
  .site-header .mode-switch::-webkit-scrollbar{ height:4px; }
  .site-header .mode-switch button{
    flex:0 0 auto;
    min-width: 44px;
  }

  /* Menu tabs: allow wrap nicely */
  .site-nav .menu{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    padding-bottom:10px;
  }
}

@media (prefers-color-scheme: dark) and (max-width: 820px){
  .site-header{
    background: rgba(8,12,20,.72);
    border-bottom: 1px solid rgba(255,255,255,.10);
  }
}
/* IMZ: end Sticky header mobile */

/* IMZ: Mobile menu default hidden */
.imz-mobile-menu-btn{display:none;}
.imz-mobile-menu{display:none;}
/* IMZ: Mobile menu overlay */
@media (max-width: 820px){
  /* We no longer keep full header sticky; only the menu button is fixed */
  .site-header{ position: relative; }

  /* Hide the tabs/menu row on mobile */
  .site-nav{ display:none !important; }

  /* Floating menu button */
  .imz-mobile-menu-btn{
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 2000;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.12);
    background: rgba(255,255,255,.86);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
  }
  .imz-burger{
    width: 18px;
    height: 2px;
    background: currentColor;
    position: relative;
    border-radius: 999px;
    display:block;
  }
  .imz-burger::before, .imz-burger::after{
    content:"";
    position:absolute;
    left:0;
    width: 18px;
    height: 2px;
    background: currentColor;
    border-radius: 999px;
  }
  .imz-burger::before{ top: -6px; }
  .imz-burger::after{ top: 6px; }

  /* Overlay */
  .imz-mobile-menu{
    position: fixed;
    inset: 0;
    z-index: 2100;
    background: rgba(0,0,0,.45);
    display:none;
  }
  .imz-mobile-menu.is-open{ display:block; }

  .imz-mobile-menu__panel{
    position:absolute;
    left: 10px;
    right: 10px;
    top: 66px;
    max-height: calc(100vh - 86px);
    overflow:auto;
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(0,0,0,.10);
    box-shadow: 0 20px 60px rgba(0,0,0,.22);
    padding: 14px;
  }
  .imz-mobile-menu__top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom: 10px;
  }
  .imz-mobile-menu__close{
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.12);
    background: rgba(255,255,255,.9);
  }

  /* Menu list styling */
  .imz-mobile-menu__content ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
  .imz-mobile-menu__content a{
    display:flex;
    justify-content:center;
    text-decoration:none;
    padding: 12px 12px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.10);
    background: rgba(2,132,199,.06);
    color: inherit;
    font-weight: 600;
  }
}

@media (prefers-color-scheme: dark) and (max-width: 820px){
  .imz-mobile-menu-btn{
    background: rgba(8,12,20,.72);
    border-color: rgba(255,255,255,.14);
  }
  .imz-mobile-menu__panel{
    background: rgba(8,12,20,.78);
    border-color: rgba(255,255,255,.12);
  }
  .imz-mobile-menu__content a{
    border-color: rgba(255,255,255,.12);
    background: rgba(56,189,248,.08);
  }
  .imz-mobile-menu__close{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #fff; }
}
/* IMZ: end Mobile menu overlay */

@media (max-width: 820px){ html.imz-no-scroll, html.imz-no-scroll body{ overflow:hidden; } }


/* IMZ: Mobile menu theme colors */
@media (max-width: 820px){
  body.theme-coding .imz-mobile-menu-btn{
    background: rgba(15, 23, 42, .78);
    border-color: rgba(56, 189, 248, .35);
    color: #fff;
  }
  body.theme-coding .imz-mobile-menu__panel{
    background: rgba(15, 23, 42, .82);
    border-color: rgba(56, 189, 248, .25);
    color: #fff;
  }
  body.theme-coding .imz-mobile-menu__content a{
    background: rgba(56, 189, 248, .10);
    border-color: rgba(255,255,255,.12);
    color: #fff;
  }

  body.theme-design .imz-mobile-menu-btn{
    background: rgba(255,255,255,.86);
    border-color: rgba(16,185,129,.35);
    color: #0b2a3a;
  }
  body.theme-design .imz-mobile-menu__panel{
    background: rgba(255,255,255,.94);
    border-color: rgba(16,185,129,.18);
    color: #0b2a3a;
  }
  body.theme-design .imz-mobile-menu__content a{
    background: rgba(16,185,129,.08);
    border-color: rgba(0,0,0,.10);
    color: #0b2a3a;
  }

  body.theme-techcare .imz-mobile-menu-btn{
    background: rgba(255,255,255,.90);
    border-color: rgba(56,189,248,.45);
    color: #0b2a3a;
    box-shadow: 0 10px 30px rgba(250, 204, 21, .18), 0 10px 30px rgba(56, 189, 248, .18);
  }
  body.theme-techcare .imz-mobile-menu__panel{
    background: rgba(255,255,255,.95);
    border-color: rgba(56,189,248,.22);
    color: #0b2a3a;
  }
  body.theme-techcare .imz-mobile-menu__content a{
    background: rgba(56,189,248,.10);
    border-color: rgba(250,204,21,.18);
    color: #0b2a3a;
  }
}
/* IMZ: end Mobile menu theme colors */


/* IMZ: Review layout safety */
.imz-reviews-wrap{ max-width: 980px; margin-left:auto; margin-right:auto; }
.imz-review-form{ max-width: 720px; }
@media (max-width: 820px){
  .imz-review-form{ max-width: 100%; }
  .imz-review-form .btn{ width:100%; }
}
/* IMZ: end Review layout safety */

/* IMZ: Reviews UI v2 */
.imz-reviews-wrap{ max-width: 980px; margin-left:auto; margin-right:auto; }
.imz-reviews{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
  margin-top:12px;
}
.imz-r-card{
  margin:0;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  padding:14px;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.imz-r-stars{
  font-size:16px;
  letter-spacing:1px;
  margin-bottom:8px;
  line-height:1;
}
.imz-r-stars .is-on{ opacity:1; }
.imz-r-stars .is-off{ opacity:.25; }
.imz-r-quote{ margin:0; opacity:.92; }
.imz-r-meta{ margin-top:10px; opacity:.9; }

.imz-review-form{ margin-top:14px; max-width: 720px; }
.imz-alert{
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.70);
  border-radius:14px;
  padding:10px 12px;
  margin-bottom:10px;
}
.imz-alert--ok{ border-color: rgba(16,185,129,.25); }
.imz-alert--warn{ border-color: rgba(250,204,21,.35); }

.imz-form{ display:grid; gap:12px; }
.imz-form-row label{ display:block; font-weight:700; margin-bottom:6px; }
.imz-form-row input, .imz-form-row textarea{
  width:100%;
  border-radius:14px;
  padding:12px 12px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.90);
  color: inherit;
}
.imz-form-row textarea{ resize: vertical; }

.imz-stars-input{
  display:inline-flex;
  flex-direction: row-reverse;
  gap:6px;
  user-select:none;
}
.imz-stars-input input{ display:none; }
.imz-stars-input label{
  font-size:22px;
  opacity:.35;
  cursor:pointer;
  line-height:1;
}
.imz-stars-input input:checked ~ label{ opacity:1; }
.imz-stars-input label:hover,
.imz-stars-input label:hover ~ label{ opacity:.85; }

/* Theme accents for the review box */
body.theme-coding .imz-reviews-wrap{ border:1px solid rgba(56,189,248,.18); }
body.theme-design .imz-reviews-wrap{ border:1px solid rgba(16,185,129,.18); }
body.theme-techcare .imz-reviews-wrap{ border:1px solid rgba(56,189,248,.20); }

@media (max-width: 820px){
  .imz-review-form{ max-width: 100%; }
  .imz-review-form .btn{ width:100%; }
}

@media (prefers-color-scheme: dark){
  .imz-r-card, .imz-alert{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.10); }
  .imz-form-row input, .imz-form-row textarea{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
  .imz-r-stars .is-off{ opacity:.35; }
}
/* IMZ: end Reviews UI v2 */

/* IMZ: Sticky CTA v2 */
.imz-sticky-cta{ display:none; }
@media (max-width: 820px){
  body.theme-techcare .imz-sticky-cta{
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    z-index: 2500;
    display: flex;
    gap: 10px;
    padding: 10px;
    border-radius: 18px;
    border: 1px solid rgba(56,189,248,.25);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 16px 50px rgba(56,189,248,.14), 0 16px 50px rgba(250,204,21,.10);
  }
  body.theme-techcare .imz-sticky-btn{
    flex: 1;
    min-width: 0;
    text-align: center;
    text-decoration: none;
    font-weight: 800;
    padding: 12px 10px;
    border-radius: 14px;
    border: 1px solid rgba(56,189,248,.35);
    background: rgba(56,189,248,.10);
    color: inherit;
  }
  body.theme-techcare .imz-sticky-btn--ghost{
    border-color: rgba(250,204,21,.35);
    background: rgba(250,204,21,.16);
  }
  /* Reserve space so it never overlaps content */
  body.theme-techcare{ padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
}
/* IMZ: end Sticky CTA v2 */

/* IMZ: Slider */
.imz-slider{ max-width: 1100px; margin-left:auto; margin-right:auto; }
.imz-slider__top{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; margin-bottom:10px;
}
.imz-slider__controls{ display:flex; gap:8px; }
.imz-slider__btn{
  width:44px; height:44px; border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-size:22px;
  line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
}
.imz-slider__viewport{
  overflow:hidden;
  border-radius:18px;
}
.imz-slider__track{
  display:flex;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 2px 2px 10px;
  -webkit-overflow-scrolling: touch;
}
.imz-slider__track::-webkit-scrollbar{ height:6px; }
.imz-slide{
  scroll-snap-align: start;
  flex: 0 0 360px;
}
@media (max-width: 820px){
  .imz-slide{ flex-basis: 86vw; }
}
@media (prefers-color-scheme: dark){
  .imz-slider__btn{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color:#fff; }
}
/* IMZ: end Slider */

/* IMZ: Reviews badge */
.imz-reviews-badge{
  margin-left:8px;
  font-size:12px;
  font-weight:700;
  opacity:.85;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display:inline-flex;
  align-items:center;
  gap:6px;
  vertical-align:middle;
}
@media (prefers-color-scheme: dark){
  .imz-reviews-badge{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color:#fff; }
}
/* IMZ: end Reviews badge */

/* IMZ: Reviews filters */
.imz-slider__filters{ display:flex; gap:8px; flex-wrap:wrap; }
.imz-filter-btn{
  border:1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.60);
  border-radius:999px;
  padding:8px 12px;
  font-weight:800;
  font-size:13px;
  cursor:pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.imz-filter-btn.is-active{
  background: rgba(56,189,248,.12);
  border-color: rgba(56,189,248,.30);
}
@media (max-width: 820px){
  .imz-filter-btn{ padding:8px 10px; }
}
@media (prefers-color-scheme: dark){
  .imz-filter-btn{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color:#fff; }
  .imz-filter-btn.is-active{ background: rgba(56,189,248,.12); border-color: rgba(56,189,248,.30); }
}
/* IMZ: end Reviews filters */

/* IMZ: TechCare packages */
.imz-packages{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
  margin-top:12px;
}
.imz-package{
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.imz-package h3{ margin:0; }
.imz-package ul{ margin:0; padding-left:1.1rem; }
.imz-package .btn{ margin-top:auto; }
.imz-ico{
  width:42px; height:42px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.55);
}
.imz-ico svg{ width:22px; height:22px; }
@media (prefers-color-scheme: dark){
  .imz-package{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
  .imz-ico{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
}
/* IMZ: end TechCare packages */

/* IMZ: Review avatar */
.imz-r-avatar{
  width:44px; height:44px;
  border-radius:999px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.10);
  margin-bottom:10px;
}
.imz-r-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }
/* Ensure review cards always look like separate boxes */
.imz-r-card{ box-shadow: 0 10px 30px rgba(0,0,0,.06); }
@media (prefers-color-scheme: dark){
  .imz-r-card{ box-shadow: 0 10px 30px rgba(0,0,0,.28); }
  .imz-r-avatar{ border-color: rgba(255,255,255,.12); }
}
/* IMZ: end Review avatar */

/* IMZ: Reviews techcare contrast */
body.theme-techcare .imz-filter-btn{
  background: rgba(56,189,248,.14);
  border-color: rgba(56,189,248,.40);
  color: #0b2a3a;
}
body.theme-techcare .imz-filter-btn.is-active{
  background: rgba(250,204,21,.24);
  border-color: rgba(250,204,21,.55);
  color: #0b2a3a;
}
body.theme-techcare .imz-slider__btn{
  background: rgba(255,255,255,.86);
  border-color: rgba(56,189,248,.35);
  color: #0b2a3a;
}
body.theme-techcare .imz-slider__btn:hover{
  background: rgba(255,255,255,.94);
}
body.theme-techcare .imz-reviews-badge{
  background: rgba(255,255,255,.70);
  border-color: rgba(56,189,248,.22);
  color: #0b2a3a;
}
@media (prefers-color-scheme: dark){
  body.theme-techcare .imz-filter-btn{
    background: rgba(56,189,248,.10);
    border-color: rgba(56,189,248,.28);
    color: #fff;
  }
  body.theme-techcare .imz-filter-btn.is-active{
    background: rgba(250,204,21,.14);
    border-color: rgba(250,204,21,.30);
    color: #fff;
  }
  body.theme-techcare .imz-slider__btn{
    background: rgba(255,255,255,.06);
    border-color: rgba(56,189,248,.22);
    color:#fff;
  }
  body.theme-techcare .imz-reviews-badge{
    background: rgba(255,255,255,.06);
    border-color: rgba(56,189,248,.22);
    color:#fff;
  }
}
/* IMZ: end Reviews techcare contrast */

/* IMZ: TechCare filter black */
body.theme-techcare .imz-filter-btn{
  background: rgba(0,0,0,.88) !important;
  border-color: rgba(0,0,0,.88) !important;
  color: #fff !important;
}
body.theme-techcare .imz-filter-btn.is-active{
  background: rgba(0,0,0,.98) !important;
  border-color: rgba(250,204,21,.65) !important;
  color: #fff !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
body.theme-techcare .imz-filter-btn:focus{
  outline: 2px solid rgba(250,204,21,.85);
  outline-offset: 2px;
}
/* IMZ: end TechCare filter black */

/* IMZ: Portal light */
.imz-portal{ position:relative; overflow:hidden; padding:56px 0 44px; }
.imz-portal__bg{
  position:absolute; inset:-80px;
  background:
    radial-gradient(900px 520px at 15% 20%, rgba(99,102,241,.20), transparent 60%),
    radial-gradient(900px 560px at 85% 25%, rgba(168,85,247,.18), transparent 62%),
    radial-gradient(950px 620px at 50% 90%, rgba(34,197,94,.14), transparent 64%),
    linear-gradient(180deg, #ffffff 0%, #f7f8ff 60%, #ffffff 100%);
  animation: imzPortalFloat 12s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes imzPortalFloat{ from{ transform: translate3d(0,0,0) scale(1); } to{ transform: translate3d(0,-10px,0) scale(1.02); } }
.imz-portal__wrap{ position:relative; color:#0b0b0b; }
.imz-portal__top{ text-align:center; max-width: 860px; margin:0 auto 18px; }
.imz-portal__brand{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 6px 12px; border-radius:999px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-weight:900;
  letter-spacing:.02em;
  margin-bottom:10px;
}
.imz-portal__title{ font-size: clamp(30px, 4vw, 44px); margin:0 0 8px; letter-spacing:-0.02em; line-height:1.05; }
.imz-portal__sub{ margin:0 auto; max-width:70ch; opacity:.85; font-size: 16px; }

.imz-portal__grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  max-width: 1100px;
  margin: 22px auto 20px;
}
.imz-portal-card{
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.82);
  border-radius: 22px;
  padding: 18px;
  text-align:left;
  cursor:pointer;
  display:flex;
  gap: 14px;
  align-items:flex-start;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow: 0 18px 60px rgba(0,0,0,.10);
  min-height: 150px;
}
.imz-portal-card:hover{
  transform: translateY(-2px);
  border-color: rgba(99,102,241,.25);
  box-shadow: 0 22px 70px rgba(0,0,0,.14);
}
.imz-portal-card__icon{
  width: 46px; height: 46px;
  border-radius: 16px;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.65);
  display:flex; align-items:center; justify-content:center;
  flex: 0 0 auto;
  font-size: 18px;
  font-weight: 900;
}
.imz-portal-card__title{ font-weight: 900; font-size: 18px; margin-top: 2px; }
.imz-portal-card__desc{ opacity:.82; font-size: 14px; margin-top: 6px; line-height:1.35; }
.imz-portal-card__cta{ margin-top: 10px; font-weight: 900; opacity:.9; }

.imz-portal__split{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  max-width: 1100px;
  margin: 12px auto 0;
}
.imz-portal-panel{
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.84);
  border-radius: 22px;
  padding: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,.08);
}
.imz-portal-panel h2{ margin:0 0 10px; font-size: 18px; }
.imz-portal-list{ margin:0; padding-left: 1.1rem; display:grid; gap:.45rem; opacity:.92; }
.imz-portal-link{
  display:inline-flex;
  margin-top: 12px;
  text-decoration:none;
  font-weight: 900;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.65);
  padding: 8px 12px;
  border-radius: 999px;
  color:#0b0b0b;
}
.imz-portal-link:hover{ border-color: rgba(99,102,241,.25); }

.imz-portal-news-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.imz-portal-news{ display:grid; gap: 10px; }
.imz-portal-news-card{
  text-decoration:none; color:#0b0b0b;
  border:1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.72);
  border-radius: 16px;
  padding: 12px;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.imz-portal-news-card:hover{
  transform: translateY(-1px);
  border-color: rgba(99,102,241,.25);
  background: rgba(255,255,255,.82);
}
.imz-portal-news-meta{ display:flex; align-items:center; gap: 8px; opacity:.78; font-size: 12px; }
.imz-portal-news-title{ margin-top: 6px; font-weight: 900; line-height:1.2; }
.imz-portal-muted{ margin:0; opacity:.75; }

@media (max-width: 920px){
  .imz-portal__grid{ grid-template-columns: 1fr; }
  .imz-portal-card{ min-height:auto; }
  .imz-portal__split{ grid-template-columns: 1fr; }
  .imz-portal__top{ text-align:left; }
}
/* IMZ: end Portal light */

/* IMZ: Portal page chrome off */
body.imz-portal-page{ background:#fff; }
body.imz-portal-page .site-header,
body.imz-portal-page .site-footer{ display:none !important; }
body.imz-portal-page main{ margin-top:0 !important; }
/* IMZ: end Portal page chrome off */

/* IMZ: Portal black bar fix */
html, body{ background:#fff; }
body.imz-portal-page{ margin:0; background:#fff !important; min-height:100vh; }
body.imz-portal-page #page,
body.imz-portal-page .site,
body.imz-portal-page .site-content{ background:transparent !important; }
body.imz-portal-page .imz-portal{ min-height:100vh; padding-bottom:64px; }
/* Hide any fixed bottom UI that could show as a bar */
body.imz-portal-page .imz-sticky-cta,
body.imz-portal-page .mode-switch,
body.imz-portal-page .tabs,
body.imz-portal-page .top-tabs,
body.imz-portal-page .switcher,
body.imz-portal-page .ring-overlay{
  display:none !important;
}
/* IMZ: end Portal black bar fix */

/* IMZ: Portal links are cards */
.imz-portal-card{ text-decoration:none; color: inherit; }
.imz-portal-card:visited{ color: inherit; }
/* IMZ: end Portal links are cards */

/* IMZ: Force hide top legal links (Header only) */
.site-header a[href*="impressum"],
.site-header a[href*="datenschutz"],
.site-header a[href*="Impressum"],
.site-header a[href*="Datenschutz"]{
    display: none !important;
}

.site-header li:has(a[href*="impressum"]),
.site-header li:has(a[href*="datenschutz"]){
    display: none !important;
}
/* IMZ: end Force hide top legal links */

/* IMZ: Portal upgrade v2 */
body.imz-portal-page .imz-portal__top{ margin-bottom: 26px; }
body.imz-portal-page .imz-portal__title{ letter-spacing: -0.03em; }
body.imz-portal-page .imz-portal__sub{ font-size: 16.5px; }

/* subtle grain overlay */
body.imz-portal-page .imz-portal::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    radial-gradient(rgba(0,0,0,.06) 1px, transparent 1px);
  background-size: 10px 10px;
  opacity:.18;
  mix-blend-mode: multiply;
}

/* Premium hover glow */
body.imz-portal-page .imz-portal-card{
  position: relative;
  overflow:hidden;
}
body.imz-portal-page .imz-portal-card::after{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(420px 220px at 30% 10%, rgba(99,102,241,.25), transparent 55%),
    radial-gradient(420px 220px at 80% 30%, rgba(34,197,94,.18), transparent 60%);
  opacity:0;
  transition: opacity .18s ease;
  pointer-events:none;
}
body.imz-portal-page .imz-portal-card:hover::after{ opacity:1; }
body.imz-portal-page .imz-portal-card:hover{
  transform: translateY(-3px);
}

/* Entrance animation */
@media (prefers-reduced-motion: no-preference){
  body.imz-portal-page .imz-portal__top,
  body.imz-portal-page .imz-portal__grid,
  body.imz-portal-page .imz-portal__split{
    animation: imzPortalIn .55s ease both;
  }
  body.imz-portal-page .imz-portal__grid{ animation-delay: .06s; }
  body.imz-portal-page .imz-portal__split{ animation-delay: .12s; }

  @keyframes imzPortalIn{
    from{ opacity:0; transform: translateY(10px); }
    to{ opacity:1; transform: translateY(0); }
  }
}

/* Click transition */
body.imz-portal-page.imz-portal-leaving .imz-portal__wrap{
  opacity:0;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease;
}

/* Better focus */
body.imz-portal-page .imz-portal-card:focus-visible{
  outline: 3px solid rgba(99,102,241,.45);
  outline-offset: 3px;
}
/* IMZ: end Portal upgrade v2 */
