/* ============================================================
   LEISTUNGEN — "Alles aus einer Hand" (one-hand redesign)
   All classes prefixed oh-. Colors/fonts via var() tokens only.
   ============================================================ */

.oh-root{
  --oh-ease: cubic-bezier(.3,.8,.4,1);
  position:relative;
  display:flex;
  flex-direction:column;
  gap:clamp(48px,6vw,84px);
}

/* ── Header ──────────────────────────────────────────────── */
.oh-head{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(28px,4vw,64px);
  align-items:end;
}
.oh-head .eyebrow{margin-bottom:20px}
.oh-title{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.02;
  letter-spacing:-.02em;
  font-size:clamp(32px,4.6vw,62px);
  margin:0;
  color:var(--text);
}
.oh-title-em{
  position:relative;
  display:inline-block;
  background:linear-gradient(180deg,transparent 64%,rgba(var(--accent-glow),.22) 64%);
  background-size:100% 100%;
}
.oh-head-r{display:flex;flex-direction:column;gap:28px}
.oh-lead{
  font-size:clamp(16px,1.4vw,19px);
  color:var(--text-dim);
  line-height:1.62;
  max-width:46ch;
  margin:0;
}

/* stat chips */
.oh-stats{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:10px;
}
.oh-stat{
  flex:1 1 120px;min-width:108px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:calc(var(--r-card) - 4px);
  padding:16px 18px;
  display:flex;flex-direction:column;gap:6px;
  transition:border-color .35s var(--oh-ease), transform .35s var(--oh-ease);
}
@media (hover:hover){.oh-stat:hover{border-color:rgba(var(--accent-glow),.5);transform:translateY(-3px)}}
.oh-stat-n{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(30px,3.4vw,42px);line-height:1;
  letter-spacing:-.02em;color:var(--text);
  display:inline-flex;align-items:baseline;
}
.oh-stat-u{color:var(--accent);font-size:.62em;margin-left:1px}
.oh-stat-l{font-size:12.5px;color:var(--text-dim);line-height:1.35}

/* ── Interactive value chain ─────────────────────────────── */
.oh-chain{
  position:relative;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  padding-top:34px;
}
.oh-chain-track,
.oh-chain-progress{
  position:absolute;top:0;height:2px;border-radius:2px;
  left:max(7%,28px);right:max(7%,28px);
}
.oh-chain-track{background:var(--line)}
.oh-chain-progress{
  right:auto;width:0%;
  background:var(--accent);
  box-shadow:0 0 14px rgba(var(--accent-glow),.6);
  transition:width .6s var(--oh-ease);
}
.oh-node{
  position:relative;
  appearance:none;background:none;border:0;cursor:pointer;
  font-family:var(--font-display);text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:14px 6px 0;color:var(--text-dim);
}
.oh-node-dot{
  position:absolute;top:-34px;left:50%;transform:translateX(-50%) scale(.7);
  width:13px;height:13px;border-radius:50%;
  background:var(--bg);border:2px solid var(--line);
  transition:transform .4s var(--oh-ease), border-color .4s var(--oh-ease), background .4s var(--oh-ease);
}
.oh-node-step{
  font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-dim);opacity:.7;transition:opacity .35s var(--oh-ease);
}
.oh-node-name{
  font-size:clamp(13px,1.3vw,16px);font-weight:700;letter-spacing:-.01em;
  color:var(--text-dim);transition:color .35s var(--oh-ease);
}
.oh-node:hover .oh-node-name{color:var(--text)}
.oh-node.is-active .oh-node-dot{
  transform:translateX(-50%) scale(1);
  background:var(--accent);border-color:var(--accent);
}
.oh-node.is-active .oh-node-step{opacity:1;color:var(--accent)}
.oh-node.is-active .oh-node-name{color:var(--text)}
.oh-node:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}

/* ── Asymmetric service grid ─────────────────────────────── */
.oh-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.oh-card{
  grid-column:span 2;
  position:relative;
  display:flex;flex-direction:column;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-card);
  padding:clamp(24px,2.4vw,34px);
  overflow:hidden;
  isolation:isolate;
  transition:border-color .4s var(--oh-ease), box-shadow .4s var(--oh-ease), transform .4s var(--oh-ease);
}
.oh-card--feat{grid-column:span 3}
.oh-card--wide{grid-column:span 6}

/* hover lift + gold wash */
.oh-card::before{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:radial-gradient(120% 90% at 100% 0%, rgba(var(--accent-glow),.10), transparent 60%);
  opacity:0;transition:opacity .45s var(--oh-ease);
}
.oh-card:hover{
  border-color:rgba(var(--accent-glow),.5);
  box-shadow:0 24px 54px -26px rgba(22,25,28,.28);
  transform:translateY(-5px);
}
.oh-card:hover::before{opacity:1}

/* chain-highlighted card (also the touch "tapped" state — gives the lift
   that desktop gets on :hover) */
.oh-card.is-lit{
  border-color:rgba(var(--accent-glow),.7);
  box-shadow:0 24px 54px -26px rgba(var(--accent-glow),.45);
  transform:translateY(-5px);
}
.oh-card.is-lit::before{opacity:1}

/* large index numeral */
.oh-num{
  position:absolute;top:18px;right:24px;
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(40px,5vw,72px);line-height:1;
  letter-spacing:-.04em;
  color:transparent;
  -webkit-text-stroke:1px var(--line);
  text-stroke:1px var(--line);
  pointer-events:none;user-select:none;
  transition:-webkit-text-stroke-color .4s var(--oh-ease), color .4s var(--oh-ease);
}
.oh-card:hover .oh-num,
.oh-card.is-lit .oh-num{-webkit-text-stroke-color:rgba(var(--accent-glow),.55)}

.oh-ico{
  width:46px;height:46px;color:var(--accent);
  display:block;margin-bottom:auto;
  transition:transform .5s var(--oh-ease);
}
.oh-ico svg{width:100%;height:100%}
.oh-card:hover .oh-ico,
.oh-card.is-lit .oh-ico{transform:translateY(-2px) scale(1.04)}

.oh-card-body{display:flex;flex-direction:column;align-items:flex-start}
.oh-card-h{
  margin:26px 0 10px;
  font-family:var(--font-display);font-size:clamp(19px,1.8vw,23px);
  font-weight:700;letter-spacing:-.01em;color:var(--text);
}
.oh-card-p{
  font-size:14.5px;color:var(--text-dim);margin:0 0 18px;line-height:1.56;
  max-width:42ch;
}

/* link */
.oh-lnk{
  margin-top:auto;
  font-family:var(--font-display);font-size:12px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--text);text-decoration:none;
  position:relative;display:inline-flex;align-items:center;gap:7px;
}
.oh-lnk::after{
  content:"";position:absolute;left:0;bottom:-5px;height:1px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--oh-ease);
}
.oh-lnk:hover::after{transform:scaleX(1)}
.oh-arr{display:inline-block;color:var(--accent);transition:transform .35s var(--oh-ease)}
.oh-lnk:hover .oh-arr{transform:translateX(4px)}

/* animated bottom accent line drawing in on hover/lit */
.oh-card-line{
  position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--oh-ease);
}
.oh-card:hover .oh-card-line,
.oh-card.is-lit .oh-card-line{transform:scaleX(1)}

/* wide tile internal split */
.oh-card-split{
  display:grid;grid-template-columns:auto 1fr;
  gap:clamp(20px,3vw,40px);align-items:start;
  max-width:64ch;
}
.oh-card--wide .oh-ico{margin-bottom:0}

/* credo corner stamp */
.oh-stamp{
  position:absolute;right:clamp(24px,3vw,42px);bottom:clamp(20px,3vw,34px);
  width:118px;height:118px;border-radius:50%;
  border:1px solid var(--line);
  display:grid;place-items:center;text-align:center;
  color:var(--text-dim);
  transition:border-color .5s var(--oh-ease), transform .6s var(--oh-ease), color .5s var(--oh-ease);
}
.oh-stamp-t{
  font-family:var(--font-display);font-weight:700;
  font-size:14px;line-height:1.15;letter-spacing:-.01em;
}
.oh-card--wide:hover .oh-stamp{
  border-color:rgba(var(--accent-glow),.6);
  color:var(--text);
  transform:rotate(-6deg);
}

/* ── Dark-theme nicety (if section ever placed in .theme-dark) ── */
.theme-dark .oh-card:hover{background:var(--surface-2)}
.theme-dark .oh-node-dot{background:var(--surface)}

/* ── Scroll-reveal self-resolving fallback ───────────────── */
.oh-card-line{will-change:transform}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width:980px){
  .oh-head{grid-template-columns:1fr}
  .oh-grid{grid-template-columns:repeat(2,1fr)}
  .oh-card,
  .oh-card--feat,
  .oh-card--wide{grid-column:span 1}
  .oh-card--wide .oh-card-split{grid-template-columns:1fr;max-width:none}
  .oh-stamp{position:static;margin-top:22px;width:96px;height:96px}
}
@media (max-width:620px){
  .oh-chain{grid-template-columns:repeat(2,1fr);gap:18px 10px;padding-top:8px}
  .oh-chain-track,.oh-chain-progress{display:none}
  .oh-node{
    flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:6px 10px;
    padding:12px 14px;background:var(--surface);
    border:1px solid var(--line);border-radius:calc(var(--r-card) - 4px);
  }
  .oh-node-dot{position:static;transform:scale(1)}
  .oh-node.is-active{border-color:rgba(var(--accent-glow),.6)}
  .oh-node-step{width:100%;order:-1}
}
@media (max-width:520px){
  .oh-grid{grid-template-columns:1fr}
  .oh-card,.oh-card--feat,.oh-card--wide{grid-column:span 1}
  .oh-stats{gap:8px}
  .oh-stat{flex-basis:100%}
}

/* ── Reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .oh-root *,
  .oh-card,.oh-card-line,.oh-num,.oh-ico,.oh-stamp,
  .oh-chain-progress,.oh-node-dot,.oh-stat,.oh-arr{
    transition:none !important;
  }
  .oh-card:hover{transform:none}
  .oh-card-line{transform:scaleX(1)} /* show accent statically */
  .oh-card--wide:hover .oh-stamp{transform:none}
}
