/* Stage 07 only. Layout geometry follows the accepted three-block Bento reference. */
.cf-pf{height:475vh;margin-top:-145vh;z-index:45;--cf-pf-neon:#CC1715}
.cf-pf .cf-sticky{opacity:0;transform-style:flat;background:transparent}
.cf-pf__scene{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:#020203}
.cf-pf__background{position:absolute;inset:0;z-index:0;pointer-events:none}
.cf-pf__background-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;user-select:none;pointer-events:none;will-change:opacity}
.cf-pf__background::after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.58) 74%,rgba(0,0,0,.84));pointer-events:none}
.cf-pf__word{position:absolute;left:7%;top:3%;white-space:nowrap;z-index:1;font-family:Anton,Impact,'Arial Narrow',sans-serif;font-weight:400;font-size:clamp(18rem,33vw,44rem);line-height:.9;color:rgba(255,255,255,.06);pointer-events:none;user-select:none;transform-origin:18% 50%;opacity:0;will-change:opacity,transform}
.cf-pf__foreground{position:absolute;inset:0;z-index:3;pointer-events:none}
.cf-pf__head{position:absolute;left:7.8vw;top:22.8vh;max-width:85vw;pointer-events:none;opacity:0;will-change:opacity}
.cf-pf__eyebrow{display:block;color:#CC1715;font-family:Inter,Arial,Helvetica,sans-serif;font-size:22px;font-weight:400;letter-spacing:.12em;line-height:1.2;text-transform:uppercase}
.cf-pf__head h2{font-family:Anton,Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-weight:400;font-size:clamp(56px,8vw,122px);line-height:.88;letter-spacing:-.03em;margin:8px 0 0;text-transform:uppercase;white-space:nowrap}
.cf-pf__boards{position:absolute;top:42.6vh;left:7.8vw;right:7.8vw;display:grid;grid-template-columns:1.55fr 1fr;gap:12px;align-items:stretch;min-height:42vh;max-height:none;overflow:visible;pointer-events:auto;will-change:transform}
.cf-pf__right{display:flex;flex-direction:column;gap:10px;min-height:0;align-self:stretch;min-width:0}
/* When taller content scrolls over the giant backdrop lettering, the foreground
   boxes must stay readable rather than taking on the background's gradient. */
.cf-pf__box{position:relative;min-width:0;box-sizing:border-box;background:rgba(7,7,10,.94);backdrop-filter:blur(6px);box-shadow:0 12px 36px rgba(0,0,0,.48);border-radius:4px;overflow:visible;--pf-open:0}
/* The GLOBAL vignette was dimming lower logos as they passed the screen edge.
   Stage07 already owns its dark photo/laser background and opaque Bento panels. */
body.cf-after-home-motion:has(.cf-pf.is-interactive) .cf-global-vignette{opacity:0}
.cf-pf__box--partner,.cf-pf__box--sponsoren{min-height:42vh}
/* Equalise desktop columns as whole groups, not PARTNER with SPONSOREN alone.
   SPONSOREN fills remaining right-column space; FREUNDE retains its content height. */
@media(min-width:901px){.cf-pf__box--sponsoren{flex:1 0 auto}}
.cf-pf__box--freunde{min-height:14vh}
.cf-pf__outline{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible;filter:drop-shadow(0 0 2.3px rgba(204,23,21,.30))}
.cf-pf__trace{stroke:var(--cf-pf-neon);stroke-width:1.05px;vector-effect:non-scaling-stroke;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:999 999;stroke-dashoffset:999}
.cf-pf__box-content{position:relative;z-index:1;padding:20px 27px 22px;height:auto;box-sizing:border-box;opacity:0;will-change:opacity}
.cf-pf__box-heading{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}
.cf-pf .cf-pf__box-heading h3{margin:0;font-family:Inter,Arial,sans-serif;font-size:clamp(.83rem,1.06vw,1.12rem);font-weight:600;letter-spacing:.20em;line-height:1.4;color:#fff}
/* Stage07 geometry button is NOT a generic CTA. The whole frame changes
   square <-> diamond from aria-expanded, with no persistent focus state.
   The central + glyph never rotates; the neon red stays consistent. */
.cf-pf .cf-pf__toggle{
  position:relative;display:grid;place-items:center;flex:0 0 44px;
  width:44px;height:44px;padding:0;box-sizing:border-box;
  border:1px solid rgba(204,23,21,.74);border-radius:.28rem;
  background:linear-gradient(180deg,rgba(204,23,21,.07),rgba(204,23,21,.018));
  color:var(--cf-pf-neon);cursor:pointer;appearance:none;
  box-shadow:inset 0 0 .8rem rgba(204,23,21,.05),
    0 0 .48rem rgba(204,23,21,.25),0 0 1.25rem rgba(204,23,21,.10);
  text-shadow:none;
}
.cf-pf .cf-pf__toggle[hidden]{display:none}
.cf-pf .cf-pf__toggle:hover{
  border-color:rgba(255,70,66,.92);
  background:linear-gradient(180deg,rgba(204,23,21,.12),rgba(204,23,21,.035));
  box-shadow:inset 0 0 1rem rgba(204,23,21,.1),0 0 .7rem rgba(204,23,21,.48);
}
/* Open: replace the square stroke with ONE diamond stroke, not two strokes. */
.cf-pf .cf-pf__toggle[aria-expanded="true"]{
  border-color:transparent;background:transparent;box-shadow:none;
}
.cf-pf .cf-pf__toggle[aria-expanded="true"]::before{
  content:"";position:absolute;inset:4.5px;
  border:1px solid rgba(255,70,66,.92);
  background:linear-gradient(180deg,rgba(204,23,21,.12),rgba(204,23,21,.03));
  box-shadow:inset 0 0 .5rem rgba(204,23,21,.09),0 0 .7rem rgba(204,23,21,.45);
  transform:rotate(45deg);pointer-events:none;
}
/* A pseudo-element avoids font-baseline rotation and keeps + at exact centre. */
.cf-pf .cf-pf__toggle > span{
  position:relative;z-index:1;display:block;width:24px;height:24px;
  font-size:0;line-height:0;pointer-events:none;
}
.cf-pf .cf-pf__toggle > span::before,
.cf-pf .cf-pf__toggle > span::after{
  content:"";position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);background:currentColor;
  box-shadow:0 0 6px rgba(204,23,21,.65);border-radius:1px;
}
.cf-pf .cf-pf__toggle > span::before{width:20px;height:2px}
.cf-pf .cf-pf__toggle > span::after{width:2px;height:20px}
.cf-pf .cf-pf__toggle:focus-visible{outline:2px solid var(--cf-pf-neon);outline-offset:2px}
.cf-pf .cf-pf__toggle[aria-expanded="true"]:focus-visible{outline:0}
.cf-pf .cf-pf__toggle[aria-expanded="true"]:focus-visible::before{
  box-shadow:0 0 0 2px rgba(255,70,66,.8),0 0 .9rem rgba(204,23,21,.55);
}
.cf-pf__friend-link:focus-visible,.cf-pf__tile-link:focus-visible{outline:2px solid var(--cf-pf-neon);outline-offset:2px}
.cf-pf__tile-grid{display:grid;gap:12px;min-height:0}
.cf-pf__tile-grid--partner{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(clamp(128px,14vh,210px),auto);height:auto}
.cf-pf__tile-grid--sponsoren{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(clamp(128px,14vh,210px),auto);height:auto}
.cf-pf__tile{position:relative;min-width:0;min-height:0;display:grid;place-items:center;box-sizing:border-box;border:1px solid rgba(225,225,232,.14);border-radius:4px;background:linear-gradient(135deg,rgba(255,255,255,.065),rgba(255,255,255,.015));overflow:hidden}
.cf-pf__tile-link{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;min-width:0;padding:12px;text-align:center;text-decoration:none;color:#f8f8fa;box-sizing:border-box}
.cf-pf__logo{pointer-events:none;position:absolute;inset:6px;display:block;width:calc(100% - 12px);height:calc(100% - 12px);max-width:calc(100% - 12px);max-height:calc(100% - 12px);object-fit:contain;object-position:center}
.cf-pf__tile--has-logo{border-color:transparent;background:transparent;overflow:hidden}
.cf-pf__tile--has-logo .cf-pf__tile-link{padding:6px}
.cf-pf__wordmark{font-family:Inter,Arial,sans-serif;font-weight:500;letter-spacing:-.025em;font-size:clamp(.7rem,1vw,1.05rem);line-height:1.22;text-align:center;max-width:24ch}
/* Names without approved logos remain in their WordPress grid position.
   The grid cell is geometrically present but has NO visible tile or mask. */
.cf-pf__tile--name-only{border:0;background:transparent;border-radius:0;box-shadow:none;overflow:visible}
.cf-pf__tile--name-only .cf-pf__tile-link{background:transparent;padding:12px}
.cf-pf__tile--name-only .cf-pf__tile-link:hover .cf-pf__wordmark,
.cf-pf__tile--name-only .cf-pf__tile-link:focus-visible .cf-pf__wordmark{color:var(--cf-pf-neon);text-shadow:0 0 .6rem rgba(204,23,21,.45)}
/* Same name typography for Partner and Sponsoren; responsive sizing is shared. */
.cf-pf__friends[hidden]{display:none}
.cf-pf__friends{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:.36rem}
.cf-pf__friends li{margin:0;padding:0}
.cf-pf__friend-link{display:flex;align-items:center;gap:16px;color:rgba(255,255,255,.88);text-decoration:none;font:500 clamp(.7rem,1vw,1.05rem)/1.45 Inter,Arial,sans-serif;letter-spacing:-.025em}
.cf-pf__friend-link:hover{color:#fff}
.cf-pf__chevron{color:var(--cf-pf-neon);font-size:1.35rem;line-height:1;font-weight:400}
.cf-pf__extra[hidden]{display:none}
.cf-pf__extra{margin-top:12px}
.cf-pf__extra .cf-pf__tile-grid{height:auto;grid-auto-rows:minmax(clamp(128px,14vh,210px),auto);grid-template-rows:none}
.cf-pf__box--sponsoren .cf-pf__extra .cf-pf__tile-grid{grid-auto-rows:minmax(clamp(128px,14vh,210px),auto)}
/* The opposite desktop column can stretch after opening. Keep headings at top and
   distribute actual logos through the remaining space instead of leaving an empty void. */
@media(min-width:901px){
 .cf-pf__box--partner .cf-pf__box-content,.cf-pf__box--sponsoren .cf-pf__box-content{height:100%;display:flex;flex-direction:column}
 .cf-pf__tile-stack{width:100%;margin-block:auto}
}
/* The active stage remains a sticky scene; the existing Stage-07 renderer scrolls taller grids through the viewport. */
@media (prefers-reduced-motion:reduce){.cf-pf__background-layer,.cf-pf__head,.cf-pf__word,.cf-pf__box-content{transition:none!important}}
