/* =========================================================
   CavereX 2026 — Main Stylesheet
   ========================================================= */

:root{
  --cx-navy:      #12124C;
  --cx-navy-dark: #0a0a30;
  --cx-red:       #D71334;
  --cx-red-dark:  #8f0d23;
  --cx-white:     #ffffff;
  --cx-grey-50:   #f7f8fb;
  --cx-grey-100:  #eef0f5;
  --cx-grey-300:  #d7dae2;
  --cx-grey-500:  #7d8399;
  --cx-grey-700:  #454a5c;
  --cx-grey-900:  #1c1e2b;
  --cx-radius:    14px;
  --cx-radius-lg: 22px;
  --cx-shadow:    0 10px 30px rgba(18,18,76,.10);
  --cx-shadow-lg: 0 20px 50px rgba(18,18,76,.16);
  --cx-maxw:      1180px;
  --cx-font:      'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--cx-font);
  color:var(--cx-grey-900);
  background:var(--cx-white);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--cx-font); color:var(--cx-navy); line-height:1.2; margin:0 0 .5em; font-weight:800; letter-spacing:-.01em; }
h1{ font-size:clamp(2rem,4vw,3.4rem); }
h2{ font-size:clamp(1.6rem,3vw,2.3rem); }
h3{ font-size:1.25rem; }
p{ margin:0 0 1em; color:var(--cx-grey-700); }
.container{ max-width:var(--cx-maxw); margin:0 auto; padding:0 24px; }
section{ padding:88px 0; }
.section-tight{ padding:56px 0; }
.eyebrow{
  display:inline-block; font-size:.78rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--cx-red); margin-bottom:12px;
}
.section-head{ max-width:680px; margin:0 0 44px; }
.section-head.center{ margin-inline:auto; text-align:center; }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 28px;
  border-radius:100px; font-weight:700; font-size:.95rem; border:2px solid transparent;
  cursor:pointer; transition:.2s ease; white-space:nowrap;
}
.btn-primary{ background:var(--cx-red); color:#fff; }
.btn-primary:hover{ background:var(--cx-red-dark); transform:translateY(-2px); box-shadow:var(--cx-shadow-lg); }
.btn-outline{ border-color:rgba(255,255,255,.5); color:#fff; }
.btn-outline:hover{ background:rgba(255,255,255,.12); }
.btn-navy{ background:var(--cx-navy); color:#fff; }
.btn-navy:hover{ background:var(--cx-navy-dark); transform:translateY(-2px); }
.btn-ghost{ border-color:var(--cx-grey-300); color:var(--cx-navy); }
.btn-ghost:hover{ border-color:var(--cx-navy); }
.btn-sm{ padding:9px 18px; font-size:.82rem; }

/* =========== Top bar =========== */
.cx-topbar{
  background:var(--cx-navy-dark); color:#cfd2e8; font-size:.82rem;
}
.cx-topbar .container{ display:flex; justify-content:space-between; align-items:center; padding-top:8px; padding-bottom:8px; gap:16px; flex-wrap:wrap; }
.cx-topbar a{ color:#cfd2e8; }
.cx-topbar-contact{ display:flex; gap:18px; flex-wrap:wrap; }
.cx-topbar-contact a:hover{ color:#fff; }
.cx-social{ display:flex; gap:12px; }
.cx-social a{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); }
.cx-social a:hover{ background:var(--cx-red); }
.cx-social svg{ width:13px; height:13px; fill:currentColor; }

.cx-lang-switch{ display:flex; align-items:center; gap:2px; background:rgba(255,255,255,.08); border-radius:100px; padding:2px; }
.cx-lang-switch a{ padding:3px 10px; border-radius:100px; font-weight:700; font-size:.76rem; letter-spacing:.03em; color:#9fa3cc; }
.cx-lang-switch a.active{ background:#fff; color:var(--cx-navy-dark); }
.cx-lang-switch a:not(.active):hover{ color:#fff; }

/* =========== Header / Nav =========== */
.cx-header{
  position:sticky; top:0; z-index:1000; background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--cx-grey-100);
}
.cx-header .container{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; gap:24px; }
.cx-logo{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:1.35rem; color:var(--cx-navy); }
.cx-logo img{ max-height:32px; width:auto; }
.cx-logo .mark{ color:var(--cx-red); }

.cx-nav{ display:flex; align-items:center; gap:6px; }
.cx-nav ul{ display:flex; align-items:center; gap:2px; }
.cx-nav li{ position:relative; }
.cx-nav>ul>li>a{
  display:block; padding:10px 16px; font-weight:600; font-size:.95rem; color:var(--cx-navy);
  border-radius:100px; transition:.2s;
}
.cx-nav>ul>li>a:hover, .cx-nav>ul>li.current-menu-item>a{ background:var(--cx-grey-100); color:var(--cx-red); }
.cx-nav li.menu-item-has-children>a::after{ content:"▾"; margin-left:5px; font-size:.7em; }
.cx-nav .sub-menu{
  position:absolute; top:100%; left:0; background:#fff; min-width:220px;
  border-radius:12px; box-shadow:var(--cx-shadow-lg); padding:8px; opacity:0; visibility:hidden;
  transform:translateY(6px); transition:.18s ease;
}
.cx-nav li.menu-item-has-children:hover>.sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.cx-nav .sub-menu a{ display:block; padding:9px 14px; border-radius:8px; font-size:.9rem; color:var(--cx-grey-700); }
.cx-nav .sub-menu a:hover{ background:var(--cx-grey-50); color:var(--cx-red); }
.cx-header-cta{ display:flex; align-items:center; gap:14px; }
.cx-phone-quick{
  display:none; align-items:center; justify-content:center; width:38px; height:38px;
  border-radius:50%; background:var(--cx-grey-100); color:var(--cx-navy); flex:none;
}
.cx-phone-quick:hover{ background:var(--cx-red); color:#fff; }
.cx-burger{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.cx-burger span{ display:block; width:24px; height:2px; background:var(--cx-navy); margin:5px 0; border-radius:2px; }

/* Contact block shown inside the mobile slide-out menu only (desktop keeps it in the top bar). */
.cx-nav-contact{ display:none; }

/* =========== Hero =========== */
.cx-hero{
  position:relative; overflow:hidden; color:#fff; padding:110px 0 100px;
  background:linear-gradient(155deg,var(--cx-navy) 0%,var(--cx-navy-dark) 55%,var(--cx-red-dark) 130%);
}
.cx-hero::before{
  content:""; position:absolute; inset:-10%;
  background:
    radial-gradient(600px 400px at 85% 10%, rgba(215,19,52,.35), transparent 70%),
    radial-gradient(500px 500px at 5% 90%, rgba(255,255,255,.06), transparent 70%);
  pointer-events:none;
  animation:cx-drift 16s ease-in-out infinite alternate;
}
@keyframes cx-drift{
  0%{ transform:translate(0,0) scale(1); }
  100%{ transform:translate(-2%,2%) scale(1.04); }
}
.cx-hero .container{ position:relative; }
.cx-hero-inner{ max-width:760px; }
.cx-hero h1{ color:#fff; margin-bottom:22px; }
.cx-hero h1 em{ font-style:normal; color:#ff8fa1; }
.cx-hero p.lead{ font-size:1.15rem; color:#d7d9ee; max-width:620px; margin-bottom:32px; }
.cx-hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.cx-hero-stats{ display:flex; gap:40px; margin-top:56px; flex-wrap:wrap; }
.cx-hero-stats .stat b{ display:block; font-size:1.9rem; color:#fff; }
.cx-hero-stats .stat span{ font-size:.85rem; color:#b9bce0; }

/* Slide/rotator (front page top strip, optional) */
.cx-strip{ background:var(--cx-grey-50); border-bottom:1px solid var(--cx-grey-100); }
.cx-strip .container{ display:flex; gap:32px; padding:14px 24px; overflow-x:auto; }
.cx-strip .item{ font-size:.85rem; color:var(--cx-grey-700); white-space:nowrap; }
.cx-strip .item a{ color:var(--cx-red); font-weight:700; margin-left:6px; }

/* =========== Cards / Services =========== */
.cx-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.cx-grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
.cx-card{
  background:#fff; border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius-lg);
  padding:36px 30px; box-shadow:var(--cx-shadow); transition:.25s ease;
}
.cx-card:hover{ transform:translateY(-6px); box-shadow:var(--cx-shadow-lg); border-color:transparent; }
.cx-card .icon{
  width:58px; height:58px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--cx-red),var(--cx-navy)); margin-bottom:20px;
}
.cx-card .icon img{ width:30px; height:30px; filter:brightness(0) invert(1); }
.cx-card h3{ margin-bottom:10px; }
.cx-card a.more{ font-weight:700; color:var(--cx-red); display:inline-flex; align-items:center; gap:6px; margin-top:8px; }
.cx-card a.more:hover{ gap:10px; }

/* Alternating feature rows (Leistungen detail) */
.cx-feature-row{ padding:44px 0; border-top:1px solid var(--cx-grey-100); }
.cx-feature-row:first-of-type{ border-top:none; }
.cx-feature-row .row-head{ display:grid; grid-template-columns:88px 1fr; gap:26px; align-items:center; margin-bottom:34px; }
.cx-feature-row .icon-wrap{
  width:80px; height:80px; border-radius:20px; flex:none; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--cx-red),var(--cx-navy)); box-shadow:0 12px 26px rgba(215,19,52,.22);
}
.cx-feature-row .icon-wrap img{ width:38px; height:38px; filter:brightness(0) invert(1); }
.cx-feature-row .row-head h2{ margin-bottom:8px; }
.cx-feature-row .row-head p{ margin-bottom:0; max-width:70ch; }

.cx-subcard-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.cx-subcard{
  background:#fff; border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius);
  padding:26px 28px; transition:.25s ease;
}
.cx-subcard:hover{ border-color:transparent; box-shadow:var(--cx-shadow); transform:translateY(-4px); }
.cx-subcard .sub-icon{
  width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center;
  background:var(--cx-grey-50); color:var(--cx-red); margin-bottom:16px;
}
.cx-subcard .sub-icon svg{ width:24px; height:24px; }
.cx-subcard h4{ color:var(--cx-navy); font-weight:800; margin-bottom:8px; font-size:1.02rem; }
.cx-subcard p{ margin-bottom:0; font-size:.94rem; }

.cx-band{
  color:#fff; padding:70px 0; text-align:center;
  background:linear-gradient(120deg,var(--cx-red) 0%,var(--cx-navy) 100%);
}
.cx-band h2{ color:#fff; }
.cx-band p{ color:#e9e9f5; max-width:640px; margin:0 auto 28px; font-size:1.05rem; }

/* Compact "statement" band used between Leistungen sections — quote-style so it doesn't read as empty space */
.cx-statement-band{ padding:56px 0; text-align:center; color:#fff; }
.cx-statement-band .quote-icon{ width:34px; height:34px; opacity:.55; margin:0 auto 16px; display:block; }
.cx-statement-band .eyebrow{ color:rgba(255,255,255,.65); margin-bottom:10px; }
.cx-statement-band p{
  font-size:1.3rem; font-weight:700; max-width:720px; margin:0 auto;
  color:#fff; line-height:1.5;
}

/* =========== About / Auszeichnung =========== */
.cx-about-media{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cx-about-media img{ border-radius:var(--cx-radius); aspect-ratio:1/1; object-fit:cover; }

.cx-award{
  display:grid; grid-template-columns:220px 1fr; gap:36px; align-items:center;
  background:var(--cx-grey-50); border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius-lg);
  padding:36px; margin:40px 0;
}
.cx-award img{ border-radius:12px; box-shadow:var(--cx-shadow); }
.cx-award .eyebrow{ margin-bottom:8px; }

.cx-logo-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; margin-top:24px; }
.cx-logo-tile{
  aspect-ratio:2.1/1; display:flex; align-items:center; justify-content:center; text-align:center;
  background:#fff; border:1px solid var(--cx-grey-100); border-radius:14px; padding:18px 22px;
  transition:.2s;
}
.cx-logo-tile:hover{ border-color:var(--cx-red); box-shadow:var(--cx-shadow); }
.cx-logo-tile img{ max-height:56px; width:auto; filter:grayscale(1) opacity(.75); transition:.2s; }
.cx-logo-tile:hover img{ filter:none; }
.cx-logo-tile span{ font-weight:700; color:var(--cx-grey-500); font-size:.95rem; letter-spacing:.02em; }
.cx-logo-tile:hover span{ color:var(--cx-navy); }

.cx-tabs-nav{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px; }
.cx-tabs-nav button{
  padding:10px 20px; border-radius:100px; border:2px solid var(--cx-grey-100); background:#fff;
  font-weight:700; cursor:pointer; color:var(--cx-grey-700); font-size:.9rem;
}
.cx-tabs-nav button.active{ background:var(--cx-navy); border-color:var(--cx-navy); color:#fff; }
.cx-tab-panel{ display:none; }
.cx-tab-panel.active{ display:block; }
.cx-domain-card{
  display:grid; grid-template-columns:96px 1fr; gap:32px; align-items:flex-start;
  background:#fff; border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius-lg);
  padding:40px; box-shadow:var(--cx-shadow);
}
.cx-domain-card .domain-icon{
  width:92px; height:92px; border-radius:24px; flex:none;
  background:linear-gradient(135deg,var(--cx-red),var(--cx-navy));
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 26px rgba(215,19,52,.25);
}
.cx-domain-card .domain-icon img{ width:44px; height:44px; filter:brightness(0) invert(1); }
.cx-domain-card h3{ font-size:1.35rem; margin-bottom:8px; }
.cx-domain-card .domain-desc{ color:var(--cx-grey-700); margin-bottom:24px; max-width:56ch; }
.cx-domain-card .domain-block{ margin-bottom:20px; }
.cx-domain-card .domain-block:last-child{ margin-bottom:0; }
.cx-domain-card .domain-label{
  display:block; font-size:.72rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.09em; color:var(--cx-grey-500); margin-bottom:12px;
}
.chip-row{ display:flex; flex-wrap:wrap; gap:9px; }
.chip{
  background:var(--cx-grey-50); border:1px solid var(--cx-grey-100); color:var(--cx-navy);
  font-weight:700; font-size:.84rem; padding:8px 16px; border-radius:100px; transition:.2s;
}
.chip:hover{ border-color:var(--cx-navy); background:#fff; }
.chip-alt{ background:#fdecef; border-color:#f7c9d1; color:var(--cx-red-dark); }
.chip-alt:hover{ border-color:var(--cx-red); background:#fff; }

/* =========== Karriere =========== */
.cx-job-list{ display:flex; flex-direction:column; gap:12px; margin-top:20px; }
.cx-job-item{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:20px 26px; border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius); background:#fff;
}
.cx-job-item:hover{ border-color:var(--cx-red); }
.cx-job-item .tag{ font-size:.75rem; color:var(--cx-red); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }

/* =========== Forms =========== */
.cx-form{ background:#fff; border:1px solid var(--cx-grey-100); border-radius:var(--cx-radius-lg); padding:36px; box-shadow:var(--cx-shadow); }
.cx-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cx-form-grid .full{ grid-column:1/-1; }
.cx-form label{ display:block; font-weight:700; font-size:.85rem; margin-bottom:6px; color:var(--cx-navy); }
.cx-form input[type=text],
.cx-form input[type=email],
.cx-form input[type=tel],
.cx-form select,
.cx-form textarea{
  width:100%; padding:13px 16px; border:1.5px solid var(--cx-grey-300); border-radius:10px;
  font-family:var(--cx-font); font-size:.95rem; background:var(--cx-grey-50);
}
.cx-form input:focus, .cx-form select:focus, .cx-form textarea:focus{ outline:none; border-color:var(--cx-red); background:#fff; }
.cx-form .consent{ display:flex; gap:10px; align-items:flex-start; font-size:.85rem; color:var(--cx-grey-700); }
.cx-form .consent input{ margin-top:4px; }
.wpcf7-form-control-wrap{ display:block; }
.cx-form-notice{ padding:14px 18px; border-radius:10px; font-size:.92rem; font-weight:600; margin-bottom:20px; }
.cx-form-notice.success{ background:#e7f7ee; color:#146c3b; border:1px solid #b8e6cc; }
.cx-form-notice.error{ background:#fdeceb; color:#a3241a; border:1px solid #f6c3bd; }

/* =========== Contact / Info blocks =========== */
.cx-info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.cx-info-item{ display:flex; gap:16px; margin-bottom:18px; align-items:center; }
.cx-info-item .ic{ width:44px; height:44px; border-radius:12px; background:var(--cx-grey-50); color:var(--cx-red); display:flex; align-items:center; justify-content:center; flex:none; }
.cx-info-item .ic svg{ display:block; }
.cx-info-item b{ display:block; color:var(--cx-navy); }

/* =========== Legal pages =========== */
.cx-legal{ max-width:820px; margin:0 auto; }
.cx-legal h2{ margin-top:1.6em; }
.cx-legal ul{ list-style:disc; padding-left:22px; margin-bottom:1em; }
.cx-legal ul li{ margin-bottom:6px; color:var(--cx-grey-700); }

/* =========== Footer =========== */
.cx-footer{ background:var(--cx-navy-dark); color:#c6c9e2; padding-top:64px; }
.cx-footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08); }
.cx-footer h4{ color:#fff; font-size:.95rem; margin-bottom:16px; }
.cx-footer-logo{ max-height:38px; margin-bottom:16px; }
.cx-footer li{ margin-bottom:10px; }
.cx-footer a:hover{ color:#fff; }
.cx-footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:24px 0; flex-wrap:wrap; gap:12px; font-size:.82rem; color:#9296c0; }
.cx-footer-legal{ display:flex; gap:18px; flex-wrap:wrap; }
.cx-footer-legal a:hover{ color:#fff; }
.cx-footer-legal .agb-btn{
  border:1px solid rgba(255,255,255,.25); padding:5px 14px; border-radius:100px; font-weight:700;
}
.cx-footer-legal .agb-btn:hover{ background:var(--cx-red); border-color:var(--cx-red); }

/* =========== Cookie banner =========== */
.cx-cookie{
  position:fixed; left:0; right:0; bottom:0; z-index:2000; background:#fff; color:var(--cx-grey-900);
  box-shadow:0 -10px 40px rgba(0,0,0,.18); padding:22px 24px; transform:translateY(120%);
  transition:transform .4s ease;
}
.cx-cookie.show{ transform:translateY(0); }
.cx-cookie-inner{ max-width:var(--cx-maxw); margin:0 auto; display:flex; gap:28px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.cx-cookie-text{ max-width:640px; font-size:.88rem; color:var(--cx-grey-700); }
.cx-cookie-text a{ color:var(--cx-red); font-weight:700; }
.cx-cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.cx-cookie-settings{ display:none; max-width:var(--cx-maxw); margin:16px auto 0; border-top:1px solid var(--cx-grey-100); padding-top:16px; }
.cx-cookie-settings.show{ display:block; }
.cx-cookie-option{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:12px 0; border-bottom:1px solid var(--cx-grey-100); }
.cx-switch{ position:relative; width:44px; height:24px; flex:none; }
.cx-switch input{ opacity:0; width:0; height:0; }
.cx-switch .slider{ position:absolute; inset:0; background:var(--cx-grey-300); border-radius:100px; cursor:pointer; transition:.2s; }
.cx-switch .slider::before{ content:""; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.2s; }
.cx-switch input:checked+.slider{ background:var(--cx-red); }
.cx-switch input:checked+.slider::before{ transform:translateX(20px); }
.cx-switch input:disabled+.slider{ opacity:.5; cursor:not-allowed; }

/* =========== Responsive =========== */
@media (max-width:980px){
  .cx-grid-3{ grid-template-columns:1fr 1fr; }
  .cx-footer-top{ grid-template-columns:1fr 1fr; }
  .cx-logo-grid{ grid-template-columns:repeat(3,1fr); }
  .cx-award{ grid-template-columns:1fr; text-align:center; }
  .cx-award img{ margin:0 auto; }
}
@media (max-width:768px){
  .cx-topbar .cx-topbar-contact{ font-size:.76rem; gap:10px; flex-wrap:wrap; }
  .cx-topbar .container{ padding-top:6px; padding-bottom:6px; }
  .cx-nav{ position:fixed; top:0; right:-100%; width:82%; max-width:340px; height:100vh; background:#fff;
    flex-direction:column; align-items:flex-start; padding:90px 26px 26px; box-shadow:-10px 0 40px rgba(0,0,0,.15);
    transition:right .3s ease; overflow-y:auto; }
  .cx-nav.open{ right:0; }
  .cx-nav ul{ flex-direction:column; align-items:flex-start; width:100%; }
  .cx-nav .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; padding-left:12px; }
  .cx-nav li.menu-item-has-children.open .sub-menu{ display:block; }
  .cx-nav-contact{
    display:flex; flex-direction:column; gap:12px; margin-top:28px; padding-top:22px;
    border-top:1px solid var(--cx-grey-100); width:100%;
  }
  .cx-nav-phone{ display:flex; align-items:center; gap:8px; font-weight:800; color:var(--cx-navy); font-size:1.02rem; }
  .cx-nav-email{ color:var(--cx-grey-700); font-size:.9rem; }
  .cx-nav-contact .cx-social a{ background:var(--cx-grey-100); color:var(--cx-navy); }
  .cx-burger{ display:block; }
  .cx-phone-quick{ display:flex; }
  .cx-header-cta .btn{ display:none; }
  .cx-grid-3, .cx-grid-2, .cx-info-grid{ grid-template-columns:1fr; }
  .cx-feature-row{ grid-template-columns:1fr; }
  .cx-feature-row .row-head{ grid-template-columns:1fr; text-align:left; }
  .cx-subcard-grid{ grid-template-columns:1fr; }
  .cx-about-media{ grid-template-columns:1fr; }
  .cx-logo-grid{ grid-template-columns:repeat(2,1fr); }
  .cx-footer-top{ grid-template-columns:1fr; }
  .cx-form-grid{ grid-template-columns:1fr; }
  .cx-hero{ padding:80px 0 60px; }
  .cx-cookie-inner{ flex-direction:column; align-items:stretch; }
  .cx-domain-card{ grid-template-columns:1fr; text-align:left; padding:28px; }
  .cx-domain-card .domain-icon{ margin-bottom:8px; }
}

/* Utility */
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.text-center{ text-align:center; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--cx-red); color:#fff; padding:10px 16px; z-index:3000; }
.skip-link:focus{ left:10px; top:10px; }

/* =========================================================
   Subtle scroll-reveal animation (auto-applied via JS, see main.js).
   Kept gentle: short travel distance, no bounce, honors reduced-motion.
   ========================================================= */
.cx-anim{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .65s cubic-bezier(.22,.7,.32,1), transform .65s cubic-bezier(.22,.7,.32,1);
  will-change:opacity, transform;
}
.cx-anim.in-view{ opacity:1; transform:translateY(0); }

/* Logo tiles / job items get a slightly quicker, softer pop */
.cx-logo-tile.cx-anim, .cx-job-item.cx-anim{ transform:translateY(14px) scale(.98); }
.cx-logo-tile.cx-anim.in-view, .cx-job-item.cx-anim.in-view{ transform:translateY(0) scale(1); }

/* Hero content fades/slides in once on load (not scroll-triggered) */
.cx-hero-inner > *{ opacity:0; animation:cx-fade-up .8s cubic-bezier(.22,.7,.32,1) forwards; }
.cx-hero-inner .eyebrow{ animation-delay:.05s; }
.cx-hero-inner h1{ animation-delay:.15s; }
.cx-hero-inner p.lead{ animation-delay:.28s; }
.cx-hero-inner .cx-hero-actions{ animation-delay:.4s; }
.cx-hero-inner .cx-hero-stats{ animation-delay:.5s; }
@keyframes cx-fade-up{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}

/* A touch of life on interactive elements without being noisy */
.cx-nav>ul>li>a, .btn, .cx-card, .cx-logo-tile, .cx-job-item, .cx-domain-card{
  transition-property:transform, background-color, border-color, box-shadow, color;
  transition-duration:.25s;
  transition-timing-function:cubic-bezier(.22,.7,.32,1);
}
.cx-tabs-nav button{ transition:background-color .2s ease, border-color .2s ease, color .2s ease; }
.cx-tab-panel{ animation:cx-fade-up .4s ease; }

@media (prefers-reduced-motion: reduce){
  .cx-anim{ opacity:1 !important; transform:none !important; transition:none !important; }
  .cx-hero-inner > *{ animation:none !important; opacity:1 !important; }
  .cx-hero::before{ animation:none !important; }
  .cx-tab-panel{ animation:none !important; }
  *{ scroll-behavior:auto !important; }
}

/* =========================================================
   Accessibility widget (Barrierefreiheit)
   ========================================================= */
.cx-a11y{ position:fixed; left:22px; bottom:22px; z-index:1900; }
.cx-a11y-toggle{
  width:52px; height:52px; border-radius:50%; border:none; cursor:pointer;
  background:var(--cx-navy); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 28px rgba(18,18,76,.35); transition:.2s;
}
.cx-a11y-toggle:hover{ background:var(--cx-navy-dark); transform:translateY(-2px); }
.cx-a11y-panel{
  position:absolute; left:0; bottom:64px; width:250px; background:#fff; border-radius:14px;
  box-shadow:var(--cx-shadow-lg); padding:16px; border:1px solid var(--cx-grey-100);
}
.cx-a11y-panel[hidden]{ display:none; }
.cx-a11y-panel h4{ margin:0 0 10px; font-size:.95rem; color:var(--cx-navy); }
.cx-a11y-panel button{
  display:block; width:100%; text-align:left; padding:9px 12px; margin-bottom:6px;
  border-radius:8px; border:1px solid var(--cx-grey-100); background:var(--cx-grey-50);
  cursor:pointer; font-size:.86rem; color:var(--cx-grey-900); font-family:var(--cx-font);
}
.cx-a11y-panel button:hover{ border-color:var(--cx-navy); }
.cx-a11y-panel button[aria-pressed="true"]{ background:var(--cx-navy); color:#fff; border-color:var(--cx-navy); }
.cx-a11y-statement{ display:block; text-align:center; margin-top:8px; font-size:.8rem; color:var(--cx-red); font-weight:700; }

/* Font-size steps applied to <html> */
html.cx-a11y-font-1{ font-size:107.5%; }
html.cx-a11y-font-2{ font-size:115%; }
html.cx-a11y-font-3{ font-size:122.5%; }

/* High-contrast mode */
html.cx-a11y-contrast body{ background:#000; color:#fff; }
html.cx-a11y-contrast .cx-header,
html.cx-a11y-contrast .cx-form,
html.cx-a11y-contrast .cx-card,
html.cx-a11y-contrast .cx-a11y-panel,
html.cx-a11y-contrast .cx-domain-card,
html.cx-a11y-contrast .cx-subcard,
html.cx-a11y-contrast .cx-logo-tile{ background:#000 !important; border-color:#fff !important; }
html.cx-a11y-contrast p, html.cx-a11y-contrast li, html.cx-a11y-contrast span{ color:#fff !important; }
html.cx-a11y-contrast h1, html.cx-a11y-contrast h2, html.cx-a11y-contrast h3, html.cx-a11y-contrast h4{ color:#fff !important; }
html.cx-a11y-contrast a{ color:#ffd400 !important; }
html.cx-a11y-contrast .btn-primary{ background:#ffd400 !important; color:#000 !important; }

/* Underline-links mode (helps users who rely on colour alone for link recognition) */
html.cx-a11y-underline a{ text-decoration:underline !important; }

/* Strong visible focus ring for keyboard navigation (WCAG 2.4.7) */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:3px solid var(--cx-red); outline-offset:2px; border-radius:4px;
}
