/* ══════════════════════════════════════════════════════════════════
   innobu · Homepage Flow Layer — "Continuous Current"
   Loaded LAST on de/ + en/ homepages, after homepage-cohesion.
   Goal: turn the stacked, centered glass-box sections into ONE flowing
   surface — a living, drifting background, sections that emerge from that
   surface, an eyebrow flourish that links one section to the next, calmer
   vertical rhythm, and a smoother, well-orchestrated scroll-reveal cascade.
   Pure CSS; honours prefers-reduced-motion.
   Echoes the established Editorial-Dark DNA (navy / cyan→teal / Fraunces).
   ══════════════════════════════════════════════════════════════════ */

:root{
    --flow-ease:cubic-bezier(.16,1,.3,1);          /* expo-out — soft, long settle */
    --flow-ease-soft:cubic-bezier(.22,.61,.36,1);
    /* a slightly more generous, musical rhythm than the cohesion default */
    --co-rhythm:clamp(76px,10vw,138px);
}

/* ──────────────────────────────────────────────────────────────────
   1 · Living surface — the static body field gains slow, GPU-cheap drift
   Two soft blobs counter-drift behind everything (z-index:-1), so the
   page reads as one breathing field instead of flat navy under boxes.
   ────────────────────────────────────────────────────────────────── */
body::before,
body::after{
    content:"";
    position:fixed;
    pointer-events:none;
    z-index:-1;                       /* behind all content, above body bg */
    will-change:transform;
}
/* cyan aurora, upper field */
body::before{
    inset:-25% -20% auto -20%;
    height:95vh;
    background:radial-gradient(48% 60% at 30% 30%,rgba(64,192,240,.14),transparent 70%),
              radial-gradient(40% 50% at 72% 18%,rgba(64,192,240,.09),transparent 72%);
    filter:blur(8px);
    animation:flow-drift-a 30s ease-in-out infinite alternate;
}
/* teal aurora, lower field — counter motion for depth/parallax */
body::after{
    inset:auto -20% -25% -20%;
    height:100vh;
    background:radial-gradient(46% 58% at 70% 72%,rgba(0,178,169,.11),transparent 72%),
              radial-gradient(40% 52% at 18% 82%,rgba(56,110,190,.08),transparent 74%);
    filter:blur(10px);
    animation:flow-drift-b 38s ease-in-out infinite alternate;
}
@keyframes flow-drift-a{
    from{transform:translate3d(-3%,-2%,0) scale(1.02)}
    to{transform:translate3d(4%,3%,0) scale(1.12)}
}
@keyframes flow-drift-b{
    from{transform:translate3d(3%,2%,0) scale(1.06)}
    to{transform:translate3d(-4%,-3%,0) scale(1)}
}

/* ──────────────────────────────────────────────────────────────────
   2 · Section eyebrow — an editorial "node" that ties each section to the
   next. The cohesion layer draws two flanking hairlines around the eyebrow
   text; here they DRAW IN on reveal (width 0 → full) with a soft glow, so
   every section announces itself with a small flowing flourish. Centred,
   horizontal — never crosses the headline text.
   ────────────────────────────────────────────────────────────────── */
main{position:relative}

.section-eyebrow{position:relative}
/* default (no-JS, reduced-motion): the cohesion layer's 32px lines stay put.
   We only add a transition + glow so the draw-in is smooth when JS drives it. */
.section-eyebrow::before,
.section-eyebrow::after{
    transition:width .8s var(--flow-ease) .12s, box-shadow .8s ease .12s;
}
/* JS marks the eyebrow .ino-reveal (pending) → collapse the lines… */
.section-eyebrow.ino-reveal:not(.is-in)::before,
.section-eyebrow.ino-reveal:not(.is-in)::after{width:0;box-shadow:none}
/* …then on reveal they draw back out with a soft glow */
.section-eyebrow.is-in::before,
.section-eyebrow.is-in::after{box-shadow:0 0 10px rgba(64,192,240,.35)}

/* ──────────────────────────────────────────────────────────────────
   3 · Section blending — let panels emerge from the surface instead of
   sitting as hard cards. Softer shadow, top inner highlight, lighter
   fill so the living field reads through.
   ────────────────────────────────────────────────────────────────── */
.transformation-projects-section,
.resources-section,
.ki-adoption-stats,
.pillar-cluster-section{
    box-shadow:0 40px 110px -56px rgba(0,0,0,.85);
    background:linear-gradient(155deg,rgba(18,30,54,.34),rgba(9,17,32,.4));
    -webkit-backdrop-filter:blur(9px) saturate(115%);
            backdrop-filter:blur(9px) saturate(115%);
    position:relative;
}
/* a hairline of light along the top edge — catches the "surface" */
.transformation-projects-section::after,
.resources-section::after,
.ki-adoption-stats::after,
.pillar-cluster-section::after{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    background:linear-gradient(180deg,rgba(64,192,240,.06),transparent 26%);
}
/* keep any existing decorative content above this sheen */
.transformation-projects-section > *,
.resources-section > *,
.ki-adoption-stats > *,
.pillar-cluster-section > *{position:relative;z-index:1}

/* ──────────────────────────────────────────────────────────────────
   4 · Vertical rhythm — calmer, more even cadence; tighten the
   heading→intro→content gaps so each section reads as one breath.
   ────────────────────────────────────────────────────────────────── */
.hero,
.articles-section,
.transformation-projects-section,
.resources-section,
.pillar-cluster-section,
.cta-section{margin-top:var(--co-rhythm);margin-bottom:var(--co-rhythm)}

.section-eyebrow{margin-bottom:18px}
.section-heading{margin-bottom:18px}
.insights-intro-text,
.projects-subtitle{margin-top:0}
.articles-section .insights-intro-text{margin-bottom:22px}

/* ──────────────────────────────────────────────────────────────────
   5 · Reveal engine — richer, softer, well-orchestrated.
   homepage-reveal.js adds .ino-reveal (hidden) then .is-in (in view) and
   sets --r-delay per element for the cascade. Children of a revealed
   section flow in with a staggered, expo-eased rise + faint scale.
   ────────────────────────────────────────────────────────────────── */
.ino-reveal{
    opacity:0;
    transform:translateY(34px) scale(.985);
    transition:opacity .9s var(--flow-ease),transform 1.05s var(--flow-ease);
    transition-delay:var(--r-delay,0ms);
    will-change:opacity,transform;
}
.ino-reveal.is-in{opacity:1;transform:none}

/* a gentle, slower variant for large heading blocks */
.ino-reveal--head{transition-duration:1s,1.15s}

/* the legacy reveal-pending system (resources + hc-strip) — match easing */
.reveal-pending{
    transform:translateY(30px) scale(.99);
    transition:opacity .9s var(--flow-ease),transform 1.05s var(--flow-ease);
}
.reveal-pending.revealed{transform:none}

/* ──────────────────────────────────────────────────────────────────
   6 · Micro-polish — smoother card hovers in the system's grammar
   ────────────────────────────────────────────────────────────────── */
.hb-card{transition:transform .4s var(--flow-ease),border-color .4s ease,box-shadow .4s ease}
.value-prop-box{transition:transform .45s var(--flow-ease),border-color .4s ease,box-shadow .4s ease}
html{scroll-behavior:smooth}

/* ──────────────────────────────────────────────────────────────────
   6b · Schwerpunkte / Focus-areas pillar cards — these were added later
   with flat, off-system styling (plain outlined boxes). Pull them into the
   Editorial-Dark language, mirroring the Energie-Referenz pillars: glass
   tile, hairline, faint serif index numeral, cinematic hover. ID-scoped so
   it overrides the page's inline <style> for BOTH languages at once.
   ────────────────────────────────────────────────────────────────── */
#schwerpunkte .pillar-grid,
#focus-areas  .pillar-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:clamp(13px,1.3vw,20px);
    margin-top:clamp(2.2rem,3.6vw,3rem);
    perspective:1400px;
}
#schwerpunkte .pillar-card,
#focus-areas  .pillar-card{
    position:relative;isolation:isolate;overflow:hidden;
    display:flex;flex-direction:column;
    background:var(--co-glass);
    border:1px solid var(--co-line);
    border-radius:16px;
    padding:1.7rem 1.45rem 1.5rem;
    -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
    box-shadow:0 22px 60px -34px rgba(0,0,0,.85);
    transition:transform .45s var(--flow-ease),border-color .45s ease,box-shadow .45s ease;
}
/* faint serif index numeral, top-right — echoes the reference pillars */
#schwerpunkte .pillar-card::before,
#focus-areas  .pillar-card::before{
    position:absolute;top:.5rem;right:1rem;z-index:0;
    font-family:'Fraunces',Georgia,serif;font-weight:500;
    font-size:2.6rem;line-height:1;letter-spacing:-.02em;
    color:transparent;-webkit-background-clip:text;background-clip:text;
    background-image:linear-gradient(160deg,rgba(64,192,240,.26),rgba(0,178,169,.05));
    opacity:.5;transition:opacity .45s ease,transform .45s var(--flow-ease);
}
#schwerpunkte .pillar-card:nth-child(1)::before,#focus-areas .pillar-card:nth-child(1)::before{content:"01"}
#schwerpunkte .pillar-card:nth-child(2)::before,#focus-areas .pillar-card:nth-child(2)::before{content:"02"}
#schwerpunkte .pillar-card:nth-child(3)::before,#focus-areas .pillar-card:nth-child(3)::before{content:"03"}
#schwerpunkte .pillar-card:nth-child(4)::before,#focus-areas .pillar-card:nth-child(4)::before{content:"04"}
#schwerpunkte .pillar-card:nth-child(5)::before,#focus-areas .pillar-card:nth-child(5)::before{content:"05"}
/* diagonal sheen on hover */
#schwerpunkte .pillar-card::after,
#focus-areas  .pillar-card::after{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:linear-gradient(135deg,rgba(64,192,240,.09),transparent 44%);
    opacity:0;transition:opacity .45s ease;
}
#schwerpunkte .pillar-card:hover,
#focus-areas  .pillar-card:hover{
    transform:translateY(-7px);border-color:rgba(64,192,240,.42);
    background:var(--co-glass);
    box-shadow:0 28px 60px -30px rgba(0,0,0,.9),0 0 34px -8px rgba(64,192,240,.28);
}
#schwerpunkte .pillar-card:hover::after,
#focus-areas  .pillar-card:hover::after{opacity:1}
#schwerpunkte .pillar-card:hover::before,
#focus-areas  .pillar-card:hover::before{opacity:.9;transform:translateY(-2px)}
/* title / text / link in the system grammar */
#schwerpunkte .pillar-card-title,
#focus-areas  .pillar-card-title{
    position:relative;z-index:1;
    font-family:var(--font-primary,'Plus Jakarta Sans',sans-serif);
    font-size:1.06rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;
    color:#eaf5ff;margin:0 0 .55rem;
}
#schwerpunkte .pillar-card-text,
#focus-areas  .pillar-card-text{
    position:relative;z-index:1;
    font-size:.9rem;line-height:1.55;color:rgba(172,200,230,.82);margin:0 0 1.1rem;flex-grow:1;
}
#schwerpunkte .pillar-card-link,
#focus-areas  .pillar-card-link{
    position:relative;z-index:1;
    font-size:.84rem;font-weight:700;color:var(--co-accent,#40c0f0);
    letter-spacing:.01em;transition:color .3s ease;
}
#schwerpunkte .pillar-card:hover .pillar-card-link,
#focus-areas  .pillar-card:hover .pillar-card-link{color:#fff}

@media(max-width:1080px){
    #schwerpunkte .pillar-grid,#focus-areas .pillar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:680px){
    #schwerpunkte .pillar-grid,#focus-areas .pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:460px){
    #schwerpunkte .pillar-grid,#focus-areas .pillar-grid{grid-template-columns:1fr}
}

/* ──────────────────────────────────────────────────────────────────
   7 · Mobile — drift stays gentle; rhythm tightens
   ────────────────────────────────────────────────────────────────── */
@media(max-width:768px){
    :root{--co-rhythm:58px}
    body::before,body::after{filter:blur(6px)}
    .ino-reveal{transform:translateY(26px) scale(.99)}
}

/* ──────────────────────────────────────────────────────────────────
   8 · Reduced motion — lock everything to a calm static state
   ────────────────────────────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
    body::before,body::after{animation:none}
    html{scroll-behavior:auto}
    .ino-reveal,.reveal-pending{opacity:1;transform:none;transition:none}
}

/* ââ 6c Â· Schwerpunkte/Focus icon nodes + stronger card definition ââ
   Appended so it survives re-applies; later rules win on equal specificity. */
#schwerpunkte .pillar-card,#focus-areas .pillar-card{
    background:linear-gradient(155deg,rgba(28,46,78,.6),rgba(12,22,40,.66));
    border:1px solid rgba(64,192,240,.24);
    box-shadow:0 22px 60px -34px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.05);
}
#schwerpunkte .pillar-icon,#focus-areas .pillar-icon{
    position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;margin-bottom:1.05rem;border-radius:13px;color:var(--co-accent,#40c0f0);
    background:radial-gradient(125% 125% at 30% 18%,rgba(64,192,240,.2),rgba(10,20,36,.22));
    border:1px solid rgba(64,192,240,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
    transition:color .45s ease,border-color .45s ease,box-shadow .45s ease,transform .45s var(--flow-ease,ease);
}
#schwerpunkte .pillar-icon svg,#focus-areas .pillar-icon svg{width:22px;height:22px;display:block}
#schwerpunkte .pillar-card:hover .pillar-icon,#focus-areas .pillar-card:hover .pillar-icon{
    color:#8fe0ff;border-color:rgba(64,192,240,.55);transform:translateY(-2px);
    box-shadow:0 8px 22px -10px rgba(64,192,240,.55),inset 0 1px 0 rgba(255,255,255,.08);
}

/* ── 6d · Schwerpunkte/Focus panel parity with the Energie-Referenz panel ──
   The panel had background+shadow but no border-radius, padding or border:
   square corners, content jammed to the top edge, cards flush to the sides.
   Match .transformation-projects-section so the two sections are a family. */
.pillar-cluster-section{
    border:1px solid var(--co-line);
    border-radius:22px;
    padding:clamp(34px,4vw,52px) clamp(22px,3vw,44px);
}
.pillar-cluster-section .pillar-grid{margin-top:clamp(2.2rem,3.4vw,3rem)}
@media(max-width:768px){
    .pillar-cluster-section{border-radius:18px;padding:30px 20px}
}
