/* Navigation: siehe css/valen-nav.css (seitenübergreifend identisch) */

/* Auf den hellen Sektionen trägt der helle Fokusring nicht. */
.software-catalog :focus-visible { outline-color: #7a5b3c; }

.software-hero { min-height:76svh; background:radial-gradient(ellipse at 72% 30%,rgba(255,255,255,.065),transparent 34%),radial-gradient(ellipse at 50% -18%,#17191c 0,#08090a 54%,#050607 100%); }
.software-hero-inner { position:relative; z-index:2; width:100%; padding-top:8rem; }
.software-title { max-width:1100px; font-size:clamp(3.7rem,8.2vw,7.6rem); line-height:.92; letter-spacing:-.075em; }
.software-title .line:nth-child(2) span { color:rgba(243,243,244,.42); }
.software-lead { max-width:590px; margin-top:2.2rem; color:var(--text-inv-sub); font-size:clamp(1.03rem,1.7vw,1.28rem); line-height:1.65; }
.software-glow { position:absolute; right:-10%; top:5%; width:55vw; height:55vw; border:1px solid rgba(255,255,255,.06); border-radius:50%; box-shadow:inset 0 0 100px rgba(255,255,255,.025); }
.software-glow::before,.software-glow::after { content:""; position:absolute; inset:12%; border:1px solid rgba(255,255,255,.045); border-radius:50%; }
.software-glow::after { inset:31%; background:radial-gradient(circle,rgba(255,255,255,.055),transparent 68%); }

.software-catalog { position:relative; padding:10rem 0 12rem; background:#ebe9e4; color:#171819; }
.catalog-header { display:grid; grid-template-columns:.6fr 1.15fr .85fr; gap:4rem; align-items:end; margin-bottom:7rem; }
.catalog-header .eyebrow { align-self:start; color:#8d6947; }
.catalog-header h2 { max-width:12ch; color:#171819; font-size:clamp(2.7rem,5vw,5.1rem); line-height:.98; letter-spacing:-.065em; }
.catalog-header > p:last-child { color:#6e6a65; font-size:.94rem; line-height:1.75; }

.dept-nav { position:sticky; z-index:10; top:calc(var(--nav-h-compact) + var(--nav-float) + 14px); width:max-content; max-width:100%; display:flex; gap:.35rem; margin:0 auto 9rem; padding:.4rem; border:1px solid rgba(25,24,22,.1); border-radius:var(--radius-pill); background:rgba(247,246,243,.72); box-shadow:0 16px 48px -34px rgba(30,26,21,.6),inset 0 1px rgba(255,255,255,.85); backdrop-filter:blur(22px) saturate(150%); -webkit-backdrop-filter:blur(22px) saturate(150%); }
.dept-nav a { padding:.72rem 1.15rem; border-radius:var(--radius-pill); color:#615d58; font-size:.72rem; font-weight:650; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; transition:background .2s,color .2s,box-shadow .2s; }
.dept-nav a:hover,.dept-nav a:focus-visible { background:#fff; color:#171819; box-shadow:0 8px 22px -17px #000; }
.dept-nav a span { margin-right:.45rem; color:#9d7650; font-size:.55rem; }

.dept { --dept-rgb:185,142,99; scroll-margin-top:10rem; }
.dept + .dept { margin-top:11rem; }
.dept-header { display:grid; grid-template-columns:.45fr 1fr .8fr; gap:4rem; align-items:end; margin-bottom:3rem; }
.dept-kicker { align-self:start; display:flex; gap:.65rem; color:#87827c; font-size:.61rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.dept-kicker span:first-child { color:rgb(var(--dept-rgb)); }
.dept-header h2 { color:#171819; font-size:clamp(3rem,6vw,5.4rem); font-weight:500; line-height:.86; letter-spacing:-.075em; }
.dept-header p { color:#6f6b66; font-size:1rem; line-height:1.7; }
.dept-grid { display:grid; gap:2rem; }

.software-card { position:relative; min-height:590px; display:grid; grid-template-columns:.82fr 1.18fr; overflow:hidden; border:1px solid rgba(255,255,255,.74); border-radius:var(--radius-xl); background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(255,255,255,.44)); color:#171819; text-decoration:none; box-shadow:0 45px 110px -72px rgba(35,29,23,.58),inset 0 1px rgba(255,255,255,.92); backdrop-filter:blur(26px) saturate(135%); -webkit-backdrop-filter:blur(26px) saturate(135%); transition:transform .55s var(--ease-out),box-shadow .55s,border-color .4s; }
.software-card::after { content:""; position:absolute; z-index:3; inset:0; pointer-events:none; background:linear-gradient(108deg,transparent 28%,rgba(255,255,255,.36) 45%,transparent 59%); transform:translateX(-115%); transition:transform 1s var(--ease-out); }
.software-card:hover,.software-card:focus-within { transform:translateY(-8px); border-color:#fff; box-shadow:0 58px 125px -70px rgba(55,42,29,.55),inset 0 1px #fff; }
.software-card:focus-within { outline:2px solid #7a5b3c; outline-offset:4px; }
.software-card:hover::after,.software-card:focus-within::after { transform:translateX(110%); }
.software-card-copy { position:relative; z-index:2; align-self:center; padding:clamp(2.5rem,5vw,5rem); }
.software-meta { display:flex; align-items:center; gap:.8rem; color:#8c8781; font-size:.59rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.software-meta > span:last-child { margin-left:auto; max-width:18ch; text-align:right; }
.software-status { padding:.28rem .55rem; border:1px solid rgba(var(--dept-rgb),.25); border-radius:var(--radius-pill); background:rgba(var(--dept-rgb),.08); color:#725a43; }
.software-card h3 { margin-top:3rem; color:#171819; font-size:clamp(3rem,5.5vw,5.2rem); line-height:.92; letter-spacing:-.07em; }
.software-headline { max-width:18ch; margin-top:1.25rem; color:#292a2b; font-size:clamp(1.1rem,1.7vw,1.35rem); font-weight:500; line-height:1.35; }
.software-description { max-width:48ch; margin-top:.9rem; color:#6e6964; font-size:.9rem; line-height:1.72; }
.software-link { width:max-content; display:inline-flex; align-items:center; gap:.75rem; margin-top:2.2rem; padding:.9rem 1.15rem; border:1px solid #171819; border-radius:var(--radius); background:#171819; color:#fff; font-size:.78rem; font-weight:650; text-decoration:none; box-shadow:0 14px 35px -22px #000; transition:gap .3s,background .25s,transform .3s; }
.software-link i { font-style:normal; }
.software-card:hover .software-link,.software-card:focus-within .software-link { gap:1rem; background:#000; transform:translateY(-2px); }
.software-card { cursor:pointer; }
.software-link { position:static; }
.software-link::after { content:""; position:absolute; z-index:5; inset:0; border-radius:var(--radius-xl); }
.software-link:focus-visible { outline:3px solid rgba(129,92,57,.5); outline-offset:4px; }

.software-visual { position:relative; min-height:590px; overflow:hidden; perspective:900px; background:radial-gradient(circle at 50% 45%,rgba(var(--dept-rgb),.2),transparent 42%),linear-gradient(145deg,#191b1e,#0d0f11); }
.software-visual::before { content:""; position:absolute; inset:0; opacity:.65; background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px); background-size:38px 38px; mask-image:radial-gradient(circle,#000,transparent 72%); }
.visual-plane { position:absolute; border:1px solid rgba(220,238,249,.18); border-radius:var(--radius-md); background:linear-gradient(145deg,rgba(235,246,252,.14),rgba(77,103,121,.06)); box-shadow:inset 0 1px rgba(255,255,255,.24),0 24px 45px -24px #000; backdrop-filter:blur(14px); transition:transform .7s var(--ease-out); }
.plane-back { width:55%; height:55%; left:8%; top:20%; transform:rotate(-11deg); opacity:.45; }
.plane-mid { width:58%; height:60%; right:8%; top:15%; padding:1.2rem; transform:rotate(8deg); color:rgba(237,246,252,.4); font-size:.5rem; letter-spacing:.12em; }
.plane-mid i { display:block; width:68%; height:4px; margin-top:1.2rem; border-radius:4px; background:rgba(219,237,248,.12); }
.plane-mid i:nth-of-type(2){width:86%}.plane-mid i:nth-of-type(3){width:48%}
.plane-front { width:36%; aspect-ratio:1; left:32%; top:22%; display:grid; place-content:center; text-align:center; transform:translateY(10px); }
.plane-front b { color:#f4e1ce; font-size:3.8rem; font-weight:300; letter-spacing:-.08em; text-shadow:0 0 26px rgba(242,207,169,.45); }
.plane-front small { margin-top:.35rem; color:rgba(246,235,223,.46); font-size:.48rem; letter-spacing:.18em; text-transform:uppercase; }
.software-card:hover .plane-back { transform:rotate(-14deg) translate(-8px,-5px); }
.software-card:hover .plane-mid { transform:rotate(10deg) translate(8px,-8px); }
.software-card:hover .plane-front { transform:translateY(-3px) scale(1.025); }
.visual-beam { position:absolute; width:35%; height:160%; left:26%; top:-30%; transform:rotate(24deg); background:linear-gradient(90deg,transparent,rgba(239,205,170,.075),transparent); filter:blur(6px); }
.visual-company { background:radial-gradient(circle at 50% 45%,rgba(188,202,214,.16),transparent 42%),linear-gradient(145deg,#171a1d,#090b0d); }
.visual-company .plane-front b { color:#edf1f4; text-shadow:0 0 26px rgba(206,221,232,.34); }
.visual-company .visual-beam { background:linear-gradient(90deg,transparent,rgba(214,226,235,.07),transparent); }
.software-visual-image { display:flex; align-items:center; justify-content:center; padding:clamp(1.2rem,3vw,2.5rem); background:radial-gradient(circle at 65% 38%,rgba(122,159,211,.1),transparent 42%),#e6e4df; }
.software-visual-image::before { display:none; }
.software-visual-image img { position:relative; z-index:1; width:100%; height:auto; object-fit:contain; transform:none; transition:transform .75s var(--ease-out); }
.software-card:hover .software-visual-image img { transform:scale(1.012); }
.visual-caption { position:absolute; z-index:2; left:2rem; bottom:1.6rem; padding:.55rem .72rem; border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-pill); background:rgba(10,11,12,.58); color:rgba(255,255,255,.7); font-size:.58rem; font-weight:650; letter-spacing:.08em; backdrop-filter:blur(15px); }

@media (max-width:1000px) {
  .catalog-header,.dept-header { grid-template-columns:1fr 1fr; }
  .catalog-header .eyebrow,.dept-kicker { grid-column:1/-1; }
  .software-card { grid-template-columns:1fr; }
  .software-visual { min-height:470px; order:-1; }
}
@media (max-width:760px) {
  .software-hero { min-height:70svh; }
  .software-hero-inner { padding-top:7rem; }
  .software-catalog { padding:7rem 0; }
  .catalog-header,.dept-header { grid-template-columns:1fr; gap:1.5rem; }
  .catalog-header .eyebrow,.dept-kicker { grid-column:auto; }
  .dept-nav { width:100%; margin-bottom:6rem; overflow:auto; justify-content:flex-start; }
  .dept-nav a { white-space:nowrap; }
  .dept + .dept { margin-top:8rem; }
  .dept-header h2 { font-size:clamp(3.8rem,20vw,5.6rem); }
  .software-card { min-height:0; border-radius:var(--radius-lg); }
  .software-visual { min-height:340px; }
  .software-card-copy { padding:2rem 1.4rem 2.5rem; }
  .software-card h3 { margin-top:2.2rem; }
  .software-visual-image { padding:1rem; }
  .software-visual-image img { width:100%; }
}
@media (prefers-reduced-motion:reduce) { .software-card,.software-card::after,.visual-plane,.software-link,.software-visual-image img { transition:none; } }
