/* Neue Startseite ("gn"): nutzt Farben und Schriften des aktiven Themes aus theme.css,
   dadurch laufen alle vier Farbschemata und die Admin-Farbeinstellungen weiter. */
.gn{
  --gn-paper:var(--bg-page); --gn-card:var(--bg-section); --gn-ink:var(--color-text-primary);
  --gn-soft:var(--color-text-secondary); --gn-line:var(--border); --gn-acc:var(--orange);
  color:var(--gn-ink); font-family:var(--font-body); font-size:1.0625rem; line-height:1.55;
  background-color:var(--gn-paper);
  /* feines Raster wie eine Werkstattskizze */
  background-image:linear-gradient(color-mix(in srgb,var(--gn-line) 45%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--gn-line) 45%,transparent) 1px,transparent 1px);
  background-size:64px 64px;
}
.gn *{box-sizing:border-box}
.gn :focus-visible{outline:3px solid var(--gn-acc);outline-offset:3px}
.gn #portfolio,.gn #leistungen,.gn #ueber{background:transparent}
.gn-wrap{width:min(1240px,100% - 32px);margin-inline:auto}
.gn-mono{font:400 .72rem/1.4 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}
.gn-eyebrow{font:600 .72rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gn-acc)}
.gn h1,.gn h2,.gn h3{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;line-height:.9;margin:0;color:inherit}
.gn h2{font-size:clamp(2.6rem,6vw,5rem);margin-top:10px}
.gn-section{padding:clamp(64px,9vw,128px) 0;scroll-margin-top:var(--nav-h,64px)}

/* Buttons */
.gn-btn{display:inline-flex;align-items:center;gap:10px;font:600 .78rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;
  padding:16px 22px;border:1.5px solid var(--gn-ink);background:transparent;color:var(--gn-ink);cursor:pointer;transition:transform .15s,box-shadow .15s}
.gn-btn:hover{transform:translate(-3px,-3px);box-shadow:3px 3px 0 var(--gn-ink)}
.gn-btn.gn-primary{background:var(--gn-acc);border-color:var(--gn-acc);color:#fff}
.gn-btn.gn-small{padding:11px 14px;font-size:.68rem}
.gn-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* Hero */
.gn-hero{padding:clamp(40px,6vw,88px) 0 0}
.gn-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.gn-hero h1{font-size:clamp(3.2rem,8.4vw,7.8rem);line-height:.86;margin:22px 0 28px}
.gn-hero h1 b{color:var(--gn-acc);font-weight:900}
.gn-line{display:block;white-space:nowrap}
.gn-lead{font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:34em;color:var(--gn-soft);margin:0}
.gn-lead strong{color:var(--gn-ink);font-weight:600}
.gn-rise{animation:gn-rise .7s cubic-bezier(.2,.7,.2,1) both}
.gn-rise:nth-child(2){animation-delay:.08s}.gn-rise:nth-child(3){animation-delay:.16s}.gn-rise:nth-child(4){animation-delay:.24s}
@keyframes gn-rise{from{opacity:0;transform:translateY(24px)}}

/* Regal mit App-Icons */
.gn-shelf{display:grid;grid-template-columns:repeat(5,1fr);gap:18px 14px;padding-bottom:24px}
.gn-shelf a{position:relative;padding:14px 0 12px;border-bottom:3px solid var(--gn-ink);display:block;animation:gn-rise .6s both;animation-delay:calc(var(--i)*45ms + .2s)}
.gn-shelf img,.gn-shelf .gn-noicon{width:100%;height:auto;aspect-ratio:1;border-radius:22%;box-shadow:0 10px 18px -8px rgba(0,0,0,.45);transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.gn-shelf a:hover img,.gn-shelf a:focus-visible img{transform:translateY(-10px) rotate(-3deg)}
.gn-shelf span:not(.gn-noicon){position:absolute;left:0;bottom:-20px;font:400 .6rem/1 var(--font-mono);opacity:0;transition:opacity .15s;white-space:nowrap}
.gn-shelf a:hover span,.gn-shelf a:focus-visible span{opacity:1}
.gn-noicon{display:grid;place-items:center;background:var(--gn-card);font-size:1.6rem}
@media (max-width:900px){.gn-hero-grid{grid-template-columns:1fr}}

/* Faktenleiste */
.gn-facts{margin-top:clamp(48px,7vw,96px);border-block:1.5px solid var(--gn-ink);background:var(--gn-card)}
.gn-facts .gn-wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.gn-facts .gn-wrap>div{padding:22px 20px;border-left:1.5px solid var(--gn-line)}
.gn-facts .gn-wrap>div:first-child{border-left:0;padding-left:0}
.gn-facts b{display:block;font:900 clamp(2rem,4vw,3.2rem)/1 var(--font-cond)}
.gn-facts span{color:var(--gn-soft)}
@media (max-width:700px){.gn-facts .gn-wrap{grid-template-columns:1fr 1fr}.gn-facts .gn-wrap>div:nth-child(3){border-left:0;padding-left:0}.gn-facts .gn-wrap>div:nth-child(n+3){border-top:1.5px solid var(--gn-line)}}

/* App-Finder */
.gn-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px}
.gn-head p{max-width:30em;margin:14px 0 0;color:var(--gn-soft)}
.gn-chips{display:flex;flex-wrap:wrap;gap:8px}
.gn-chip{font:600 .72rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;border:1.5px solid var(--gn-ink);background:transparent;color:var(--gn-ink);cursor:pointer;border-radius:999px}
.gn-chip[aria-pressed="true"]{background:var(--gn-ink);color:var(--gn-paper)}
.gn-chip sup{font-size:.6rem;opacity:.7;margin-left:4px}
.gn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px}

/* Typenschild: jede App als Maschinenschild mit Nieten */
.gn-plate{position:relative;display:flex;flex-direction:column;background-color:var(--gn-card);border:1.5px solid var(--gn-ink);padding:26px 24px 22px;scroll-margin-top:calc(var(--nav-h,64px) + 16px);
  background-image:radial-gradient(circle,var(--gn-ink) 2.5px,transparent 3px),radial-gradient(circle,var(--gn-ink) 2.5px,transparent 3px),radial-gradient(circle,var(--gn-ink) 2.5px,transparent 3px),radial-gradient(circle,var(--gn-ink) 2.5px,transparent 3px);
  background-size:8px 8px;background-repeat:no-repeat;background-position:8px 8px,calc(100% - 8px) 8px,8px calc(100% - 8px),calc(100% - 8px) calc(100% - 8px);
  transition:transform .18s,box-shadow .18s}
.gn-plate:hover{transform:translate(-4px,-4px);box-shadow:6px 6px 0 var(--gn-acc)}
.gn-plate header{display:flex;gap:14px;align-items:center}
.gn-plate header img,.gn-plate header .gn-noicon{width:60px;height:60px;flex:none;border-radius:22%}
.gn-plate h3{font-size:2rem;text-transform:none;line-height:1}
.gn-ver{color:var(--gn-soft);margin-top:4px}
.gn-plate p{margin:16px 0 18px;color:var(--gn-soft);font-size:.98rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.gn-plate dl{margin:auto 0 0;border-top:1.5px solid var(--gn-ink)}
.gn-plate dl div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--gn-line)}
.gn-plate dt{color:var(--gn-soft)}
.gn-plate dd{margin:0;text-align:right;font-weight:600}
.gn-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.gn-badge{position:absolute;top:-11px;right:18px;background:var(--gn-acc);color:#fff;padding:5px 9px;font:600 .62rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.gn-plate.gn-big{grid-column:span 2;display:grid;grid-template-columns:1fr 150px;column-gap:24px}
.gn-plate.gn-big>*{grid-column:1}
.gn-plate.gn-big .gn-shot{grid-column:2;grid-row:1 / span 6;align-self:center;width:150px;height:auto;border-radius:18px;border:1.5px solid var(--gn-ink)}
.gn-plate[hidden]{display:none!important}
@media (max-width:680px){.gn-plate.gn-big{grid-column:auto;display:flex}.gn-plate.gn-big .gn-shot{display:none}}

/* Sets: umgekehrte Farben, funktioniert in jedem Farbschema */
.gn-band{background:var(--gn-ink);color:var(--gn-paper)}
.gn-band .gn-head p,.gn-set p{color:color-mix(in srgb,var(--gn-paper) 65%,var(--gn-ink))}
.gn-sets{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));border:1.5px solid color-mix(in srgb,var(--gn-paper) 40%,var(--gn-ink))}
.gn-set{padding:30px 26px;border-right:1.5px solid color-mix(in srgb,var(--gn-paper) 20%,var(--gn-ink))}
.gn-set:last-child{border-right:0}
.gn-set h3{font-size:2.2rem;margin:10px 0 18px}
.gn-row{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.gn-row img,.gn-row .gn-noicon{width:54px;height:54px;border-radius:22%}
.gn-row i{font:900 1.6rem/1 var(--font-cond);color:var(--gn-acc);font-style:normal}
.gn-set p{margin:0}
@media (max-width:900px){.gn-set{border-right:0;border-bottom:1.5px solid color-mix(in srgb,var(--gn-paper) 20%,var(--gn-ink))}}

/* Leistungen */
.gn-rows{border-top:1.5px solid var(--gn-ink)}
.gn-rows article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,.6fr);gap:24px;align-items:baseline;padding:26px 0;border-bottom:1.5px solid var(--gn-ink)}
.gn-rows h3{font-size:clamp(1.8rem,3.4vw,2.8rem);text-wrap:balance}
.gn-rows .gc-clamp{color:var(--gn-soft)}
.gn-rows .gn-mono{color:var(--gn-soft);text-align:right}
@media (max-width:760px){.gn-rows article{grid-template-columns:1fr;gap:10px}.gn-rows .gn-mono{text-align:left}}

/* Referenzen: Karten sofort zeigen, nicht erst nach der Scroll-Animation aus main.js */
.gn-refs{padding-top:0}
.gn .reveal,.gn [data-anim]{opacity:1!important;transform:none!important}

/* Über */
.gn-about{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.gn-about blockquote{margin:18px 0 0;padding:0;border:0;font:900 clamp(2.2rem,5vw,4.2rem)/.95 var(--font-cond);text-transform:uppercase}
.gn-about blockquote em{font-style:normal;color:var(--gn-acc)}
.gn-about .gc-clamp{color:var(--gn-soft)}
.gn-photo{width:120px;height:120px;object-fit:cover;border-radius:50%;border:1.5px solid var(--gn-ink);margin-top:28px}
@media (max-width:820px){.gn-about{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){.gn *{animation:none!important;transition:none!important}}

/* Hinweis-Kasten in der App-Karte (z. B. Kostenrechner) und Link zur Quicklinks-Seite */
.gn-tipp{display:block;margin-top:16px;padding:14px 16px;border:1px solid var(--orange);border-radius:10px;background:color-mix(in srgb,var(--orange) 10%,transparent);color:inherit;text-decoration:none}
.gn-tipp:hover,.gn-tipp:focus-visible{background:color-mix(in srgb,var(--orange) 18%,transparent)}
.gn-tipp strong{display:block;font:700 1.05rem/1.25 var(--font-cond)}
.gn-tipp span{display:block;margin:4px 0 8px;font-size:.88rem;color:var(--color-text-secondary)}
.gn-tipp em{font-style:normal;font-weight:600;color:var(--orange)}
.gn-plate[data-ziel]{cursor:pointer}
.gn-einsatz{display:inline-flex;align-items:center;gap:10px;margin-top:14px;padding:8px 14px 8px 8px;border:1.5px solid var(--orange);border-radius:10px;color:inherit;text-decoration:none}
.gn-einsatz img{width:36px;height:36px;border-radius:9px}
.gn-einsatz span{font:400 .68rem/1.3 var(--font-mono);letter-spacing:.06em;text-transform:uppercase}
.gn-einsatz b{display:block;font:700 1.05rem/1.1 var(--font-cond);letter-spacing:0;text-transform:none}
