/* Lösungen */
.sol-hero .page-hero__media .ph{ transform-origin:50% 50%; }

/* Filters + bento */
.bento{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
@media (max-width:1100px){ .bento{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:760px){ .bento{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:420px){ .bento{ grid-template-columns:1fr; } }
.tile{ position:relative; min-height:150px; display:grid; align-content:space-between; gap:24px; padding:20px; border-radius:var(--r-3); background:var(--ink-800); border:1px solid var(--line); transition:border-color var(--dur-ui), background-color var(--dur-ui); }
.tile:hover{ border-color:var(--brand-bright); background:#14203a; }
.tile--wide{ grid-column:span 2; background:linear-gradient(140deg, rgba(4,111,164,.35), var(--ink-800) 60%); }
@media (max-width:420px){ .tile--wide{ grid-column:auto; } }
.tile__icon{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:rgba(42,159,216,.1); color:var(--brand-bright); font-size:22px; }
.tile__title{ font:500 17px/1.3 var(--font-display); color:var(--text); max-width:22ch; }
.tile__num{ position:absolute; top:18px; right:18px; font-size:11px; color:var(--text-3); letter-spacing:.12em; }
.tile.is-hidden{ display:none; }



/* Infrastructure — exploded stack (pure CSS 3D) */
.infra__list{ display:grid; gap:18px; margin:12px 0 0; }
.infra__list div{ display:grid; gap:4px; padding-top:16px; border-top:1px solid var(--line); }
.infra__list dt{ font:500 12px/1 var(--font-mono); letter-spacing:.16em; text-transform:uppercase; color:var(--cyan); }
.infra__list dd{ margin:0; font-size:16.5px; line-height:1.55; color:var(--text-2); max-width:46ch; }
.stack3d{ position:relative; height:440px; perspective:1400px; }
.slab{ --gap:110px; position:absolute; left:4%; top:calc(60px + var(--i) * var(--gap)); width:min(240px, 46%); aspect-ratio:1; transform-style:preserve-3d; }
.slab__face{ position:absolute; inset:0; border-radius:22px; transform:rotateX(60deg) rotateZ(-42deg); transform-origin:50% 50%;
  background:linear-gradient(135deg, rgba(42,159,216,.32), rgba(63,208,224,.08)); border:1px solid rgba(63,208,224,.45);
  box-shadow:0 0 0 1px rgba(255,255,255,.04) inset, 0 40px 60px -20px rgba(0,0,0,.8), 0 0 60px -10px rgba(42,159,216,.35);
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.slab:nth-child(1) .slab__face{ background:linear-gradient(135deg, rgba(63,208,224,.35), rgba(42,159,216,.08)); }
.slab__label{ position:absolute; left:calc(100% + 56px); top:42%; display:grid; gap:4px; white-space:nowrap; }
.slab__line{ position:absolute; right:calc(100% + 8px); top:9px; width:48px; height:1px; background:var(--brand-bright); transform-origin:100% 50%; }
.slab__label span{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan); }
.slab__label b{ font:500 15px/1.2 var(--font-display); }
@media (max-width:900px){ .stack3d{ height:380px; } .slab{ --gap:90px; width:min(200px, 40%); } }
@media (max-width:520px){ .slab{ width:34%; } .slab__label b{ font-size:13px; white-space:normal; max-width:150px; } .slab__label{ left:calc(100% + 30px); } .slab__line{ width:24px; } }

/* ==== Beratung — "ten disciplines" control-room scene ===========================================
   Static (mobile / short screens / reduced motion): glass cards in a grid.
   Scene (≥901px wide, ≥640px tall, motion OK): pinned, exactly one viewport tall; a rolling list
   on the left, a live panel on the right whose hue drifts per discipline (--h). */
@property --h{ syntax:"<number>"; inherits:true; initial-value:200; }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
.consult{ --h:200; overflow:hidden; isolation:isolate; transition:--h .9s var(--ease-out); }
.consult__bg{ position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(42% 55% at 78% 52%, hsl(var(--h) 85% 55% / .14), transparent 70%),
    radial-gradient(32% 42% at 8% 92%, hsl(calc(var(--h) - 24) 85% 55% / .07), transparent 70%); }
.consult__bg::after{ content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(234,241,251,.07) 1px, transparent 1.4px); background-size:28px 28px;
  -webkit-mask-image:radial-gradient(55% 65% at 75% 50%, #000 15%, transparent 75%); mask-image:radial-gradient(55% 65% at 75% 50%, #000 15%, transparent 75%); }

/* static: card grid */
.consult__list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
@media (max-width:620px){ .consult__list{ grid-template-columns:1fr; } }
.consult__item{ position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); gap:4px 16px; align-content:start; padding:22px; border-radius:var(--r-3);
  border:1px solid var(--line); background:linear-gradient(160deg, rgba(23,34,58,.7), rgba(10,17,32,.5)); transition:border-color var(--dur-ui), transform var(--dur-ui); }
.consult__item:hover{ border-color:rgba(42,159,216,.45); }
.consult__icon{ grid-row:span 2; width:46px; height:46px; border-radius:14px; display:grid; place-items:center; background:rgba(42,159,216,.12); border:1px solid rgba(42,159,216,.22); color:var(--brand-bright); font-size:22px; }
.consult__num{ align-self:end; color:var(--cyan); font-size:12px; letter-spacing:.14em; }
.consult__body{ grid-column:2; }
.consult__title{ font:600 20px/1.2 var(--font-display); letter-spacing:-.01em; }
.consult__desc{ margin-top:6px; font-size:15px; line-height:1.55; }
.consult__arrow, .consult__rail, .consult__panel{ display:none; }
.consult__cta-m{ margin-top:28px; }

/* ---- scene ---- */
.consult.is-scene{ box-sizing:border-box; height:100vh; height:100svh; display:flex; flex-direction:column;
  padding-block:calc(var(--header-h) + clamp(14px, 3.5vh, 40px)) clamp(18px, 4vh, 44px); }
.consult.is-scene .consult__wrap{ flex:1 1 auto; min-height:0; width:100%; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(32px, 5vw, 80px); }
.consult.is-scene .consult__left{ display:flex; flex-direction:column; min-height:0; }
.consult.is-scene .consult__head{ flex:none; gap:clamp(8px, 1.6vh, 18px); margin-bottom:clamp(6px, 2vh, 22px); }
.consult.is-scene .consult__head h2{ font-size:min(var(--fs-h2), 6.2vh); }
.consult.is-scene .consult__cta-m{ display:none; }
.consult.is-scene .consult__listwrap{ position:relative; flex:1 1 auto; min-height:0; padding-left:30px; }
.consult.is-scene .consult__list{ display:block; height:100%; overflow:hidden;
  -webkit-mask-image:linear-gradient(transparent, #000 24%, #000 76%, transparent); mask-image:linear-gradient(transparent, #000 24%, #000 76%, transparent); }
.consult.is-scene .consult__track{ will-change:transform; }
.consult.is-scene .consult__item{ display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; padding:clamp(5px, 1.1vh, 12px) 0;
  border:0; border-radius:0; background:none; opacity:.24; transition:opacity .4s var(--ease-out); }
.consult.is-scene .consult__icon, .consult.is-scene .consult__desc{ display:none; }
.consult.is-scene .consult__num{ align-self:center; grid-row:auto; font-size:12.5px; transition:color .4s, letter-spacing .4s; }
.consult.is-scene .consult__body{ grid-column:auto; }
.consult.is-scene .consult__title{ font-size:clamp(22px, min(2.5vw, 4.4vh), 36px); line-height:1.1; transform:scale(.8); transform-origin:0 50%; transition:transform .5s var(--ease-out); }
.consult.is-scene .consult__arrow{ display:grid; place-items:center; width:40px; height:40px; border-radius:50%; font-size:18px; color:hsl(var(--h) 90% 68%);
  border:1px solid hsl(var(--h) 80% 60% / .4); opacity:0; transform:translateX(-12px); transition:opacity .4s, transform .5s var(--ease-out); }
.consult.is-scene .consult__item.is-active{ opacity:1; }
.consult.is-scene .consult__item.is-active .consult__num{ color:hsl(var(--h) 90% 68%); letter-spacing:.2em; }
.consult.is-scene .consult__item.is-active .consult__title{ transform:none;
  background:linear-gradient(90deg, #EAF1FB 35%, hsl(var(--h) 90% 70%)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.consult.is-scene .consult__item.is-active .consult__arrow{ opacity:1; transform:none; }
/* progress rail */
.consult.is-scene .consult__rail{ display:block; position:absolute; left:0; top:8%; bottom:8%; width:2px; border-radius:2px; background:rgba(234,241,251,.08); }
.consult__rail-fill{ position:absolute; left:0; right:0; top:0; height:50%; border-radius:2px;
  background:linear-gradient(hsl(var(--h) 90% 62% / 0), hsl(var(--h) 90% 62%)); }
.consult__rail-dot{ position:absolute; left:50%; top:50%; width:10px; height:10px; translate:-50% -50%; border-radius:50%;
  background:hsl(var(--h) 95% 70%); box-shadow:0 0 0 4px hsl(var(--h) 90% 60% / .18), 0 0 18px hsl(var(--h) 90% 60% / .8); }

/* panel */
.consult.is-scene .consult__panel{ position:relative; display:flex; flex-direction:column; gap:clamp(10px, 1.7vh, 18px); min-height:0; height:100%; max-height:760px; align-self:center;
  padding:clamp(16px, 2.6vh, 28px); border-radius:var(--r-4); overflow:hidden;
  border:1px solid rgba(234,241,251,.09); background:linear-gradient(160deg, rgba(23,34,58,.88), rgba(9,15,29,.82));
  box-shadow:0 40px 100px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.04); }
.consult__panel::before{ content:""; position:absolute; left:10%; right:10%; top:0; height:1px; background:linear-gradient(90deg, transparent, hsl(var(--h) 90% 65% / .75), transparent); }
.consult__bignum{ position:absolute; left:clamp(14px, 1.6vw, 22px); top:clamp(8px, 1.4vh, 16px); z-index:2; pointer-events:none;
  font:700 clamp(52px, 10vh, 120px)/1 var(--font-display); letter-spacing:-.05em; color:transparent; -webkit-text-stroke:1px hsl(var(--h) 85% 72% / .3); }
.consult__visuals{ position:relative; flex:1 1 auto; min-height:120px; border-radius:var(--r-3); overflow:hidden; border:1px solid var(--line);
  background:radial-gradient(60% 70% at 50% 44%, hsl(var(--h) 85% 50% / .24), transparent 70%), #0A1221; }
.consult__floor{ position:absolute; left:-30%; right:-30%; bottom:-6%; height:58%; transform:perspective(380px) rotateX(64deg); transform-origin:50% 100%;
  background-image:linear-gradient(hsl(var(--h) 80% 62% / .2) 1px, transparent 1px), linear-gradient(90deg, hsl(var(--h) 80% 62% / .2) 1px, transparent 1px);
  background-size:42px 42px; animation:consultFloor 5s linear infinite;
  -webkit-mask-image:linear-gradient(transparent, #000 55%); mask-image:linear-gradient(transparent, #000 55%); }
@keyframes consultFloor{ to{ background-position:0 42px, 0 0; } }
.consult__orbit{ position:absolute; left:50%; top:46%; width:min(82%, 86%); height:86%; translate:-50% -50%; overflow:visible; }
.consult__ring{ transform-box:view-box; transform-origin:50% 50%; }
.consult__ring circle{ fill:none; stroke:hsl(var(--h) 85% 66% / .28); stroke-width:.6; }
.consult__ring--a circle:first-child{ stroke-dasharray:2 5; }
.consult__ring--b circle:first-child{ stroke-dasharray:24 6 2 6; stroke:hsl(var(--h) 85% 66% / .4); }
.consult__ring--c circle{ stroke:hsl(var(--h) 85% 66% / .16); stroke-width:6; }
.consult__ring .consult__sat{ fill:hsl(var(--h) 95% 72%); stroke:none; filter:drop-shadow(0 0 3px hsl(var(--h) 95% 65%)); }
.consult__ring--a{ animation:consultSpin 26s linear infinite; }
.consult__ring--b{ animation:consultSpin 18s linear infinite reverse; }
@keyframes consultSpin{ to{ transform:rotate(360deg); } }
.consult__burst{ position:absolute; left:50%; top:46%; width:min(30%, 20vh); aspect-ratio:1; translate:-50% -50%; border-radius:50%; border:1.5px solid hsl(var(--h) 90% 66%); opacity:0; pointer-events:none; }
.consult__burst.is-on{ animation:consultBurst .9s var(--ease-out); }
@keyframes consultBurst{ 0%{ transform:scale(.7); opacity:.9; } 100%{ transform:scale(2.6); opacity:0; } }
.consult__visual{ position:absolute; left:50%; top:46%; translate:-50% -50%; opacity:0; transform:scale(.6); filter:blur(10px);
  transition:opacity .45s var(--ease-out), transform .7s var(--ease-out), filter .45s var(--ease-out); }
.consult__visual.is-active{ opacity:1; transform:none; filter:none; }
.consult__orb{ display:grid; place-items:center; width:clamp(92px, 17vh, 150px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, hsl(var(--h) 90% 70% / .35), hsl(var(--h) 85% 40% / .14) 55%, rgba(10,18,33,.9) 100%);
  border:1px solid hsl(var(--h) 85% 66% / .45);
  box-shadow:0 0 0 10px hsl(var(--h) 85% 60% / .05), 0 0 60px -6px hsl(var(--h) 90% 55% / .7), inset 0 0 30px hsl(var(--h) 90% 60% / .25);
  color:#EAF1FB; font-size:clamp(40px, 7.5vh, 66px); }
.consult__orb .ti{ filter:drop-shadow(0 0 14px hsl(var(--h) 95% 65%)); }
.consult__visual.is-active .consult__orb{ animation:floaty 3.4s ease-in-out infinite; }
/* photo mode (once all ten consulting images exist) */
.consult__visuals--photos .consult__floor, .consult__visuals--photos .consult__orbit, .consult__visuals--photos .consult__burst{ display:none; }
.consult__visual--photo{ inset:0; left:0; top:0; translate:none; }
.consult__visual--photo .ph, .consult__visual--photo .pic, .consult__visual--photo .pic img{ width:100%; height:100%; object-fit:cover; }

.consult__meta{ flex:none; display:grid; gap:clamp(4px, .8vh, 8px); }
.consult__pnum{ color:hsl(var(--h) 90% 68%); font-size:12.5px; letter-spacing:.16em; }
.consult__ptitle{ font:600 clamp(20px, 3.4vh, 30px)/1.15 var(--font-display); letter-spacing:-.01em; }
.consult__pdesc{ font-size:clamp(14px, 2vh, 16px); line-height:1.55; min-height:3.1em; max-width:52ch; }
.consult__foot{ flex:none; display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:clamp(10px, 1.6vh, 16px); border-top:1px solid var(--line); }
.consult__segs{ display:flex; gap:5px; }
.consult__segs i{ width:clamp(10px, 1.4vw, 20px); height:3px; border-radius:2px; background:rgba(234,241,251,.1); transition:background-color .4s, box-shadow .4s; }
.consult__segs i.is-on{ background:hsl(var(--h) 85% 60% / .55); }
.consult__segs i.is-now{ background:hsl(var(--h) 95% 70%); box-shadow:0 0 10px hsl(var(--h) 90% 60%); }
.consult__cta{ flex:none; }
@media (max-height:760px){ .consult.is-scene .consult__pdesc{ min-height:0; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } }
@media (prefers-reduced-motion: reduce){ .consult{ transition:none; } .consult__floor, .consult__ring--a, .consult__ring--b, .consult__visual.is-active .consult__orb{ animation:none; } }
/* innovdeHR cross-links (tile + Biometrie discipline) */
.tile--link{ border-color:rgba(77,124,255,.35); background:linear-gradient(150deg, rgba(14,56,255,.22), var(--ink-800) 65%); }
.tile--link:hover{ border-color:var(--hr-cyan); }
.tile__a{ color:inherit; }
.tile__a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.tile__a:focus-visible{ outline:none; }
.tile--link:focus-within{ outline:2px solid var(--hr-cyan); outline-offset:2px; }
.tile__badge{ position:absolute; right:52px; top:14px; display:inline-flex; align-items:center; gap:4px; padding:5px 9px; border-radius:var(--r-pill); font:500 11px/1 var(--font-mono); letter-spacing:.06em; color:var(--hr-cyan); border:1px solid rgba(0,229,255,.3); background:rgba(0,229,255,.06); }
.consult__more{ display:inline-flex; margin-top:10px; font-size:14.5px; color:var(--hr-cyan); }
.consult.is-scene .consult__more{ display:none; }
.consult__plink{ font-size:14.5px; color:var(--hr-cyan); margin-left:auto; margin-right:16px; }
