/* ============================================================
   Eplanung Joerg · Professionelle CAE-Lösungen
   Geteiltes Stylesheet für alle Seiten. Rein lokal, keine externen
   Aufrufe, nur System-Schriften. Theme: technisches Blau/Anthrazit.
   ============================================================ */
/* ---------- Logo-Schrift ----------
   Das Original-Logo (templates/epj/images/head.gif) ist in ENGRAVERS GOTHIC
   gesetzt: eine serifenlose, monolineare Versalienschrift. Nicht zu verwechseln
   mit COPPERPLATE GOTHIC – fast gleicher Name, aber mit kleinen Serifen.
   Genau dieser Fallback (macOS: „Copperplate") war der sichtbare Unterschied.

   Sobald die Webfont-Lizenz vorliegt, die Dateien hier ablegen:
       assets/fonts/engravers-gothic.woff2
       assets/fonts/engravers-gothic.woff
   Danach greift @font-face automatisch; bis dahin rendert die serifenlose
   Fallback-Kette (Futura / Century Gothic / Avenir Next), die dem Original
   deutlich näher kommt als Copperplate. Keine externen Aufrufe – DSGVO-konform. */
@font-face{
  font-family:'Engravers Gothic Web';
  src:url("../fonts/engravers-gothic.woff2") format("woff2"),
      url("../fonts/engravers-gothic.woff")  format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
:root{
  --brand:#12508f;      /* technisches blau */
  --brand-2:#0e2233;    /* anthrazit-navy */
  --accent:#2c9bd6;     /* electric blue */
  --accent-2:#d62828;   /* brand-rot (Logo-E + CTA-Akzente) */
  --logo-red:#d62828;   /* rotes E im Logo */
  --ink:#1b2733;
  --muted:#5d6b78;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-2:#eef3f9;
  --line:#dce4ee;
  --ink-inv:#eaf1f8;
  --font-display:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* Reihenfolge: lizenzierte Webfont → lokal installierte Engravers Gothic →
     serifenlose Geometrische als Notnagel. Copperplate ist bewusst NICHT
     enthalten (Serifen, siehe Hinweis oben). */
  --font-logo:'Engravers Gothic Web','Engravers Gothic','EngraversGothic BT',
              Futura,'Century Gothic','Avenir Next','Avenir',var(--font-display);
  --radius:12px;
  --radius-lg:20px;
  --maxw:1140px;
  --shadow:0 20px 50px -28px rgba(14,34,51,.45);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--bg);
  line-height:1.65;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;margin:0 0 .5em;
  color:var(--brand-2);font-weight:700;letter-spacing:-.01em;}
h1{font-size:clamp(2rem,5vw,3.1rem);}
h2{font-size:clamp(1.5rem,3.3vw,2.2rem);}
h3{font-size:1.2rem;}
p{margin:0 0 1em;}
a{color:var(--brand);}
img,svg{max-width:100%;display:block;}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,5vw,32px);}
.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;
  color:var(--accent);margin-bottom:.7em;}
.center{text-align:center;}
.muted{color:var(--muted);}
.reg{font-size:.62em;vertical-align:super;color:var(--muted);}  /* ® / ™ dezent */
/* In Überschriften würde ein 0,62-em-® riesig wirken – dort kleiner setzen. */
h1 .reg,h2 .reg,.c-t .reg{font-size:.42em;}

/* ---------- Demo-Leiste (Pflicht) ---------- */
.demobar{background:var(--brand-2);color:var(--ink-inv);text-align:center;
  font-size:.85rem;padding:8px 14px;}
.demobar b{color:var(--accent);}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;text-decoration:none;
  border-radius:999px;padding:13px 24px;border:0;cursor:pointer;font-size:1rem;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn svg{width:18px;height:18px;flex:none;}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 10px 22px -10px var(--brand);}
.btn-accent{background:var(--accent-2);color:#fff;box-shadow:0 10px 22px -10px var(--accent-2);}
.btn-ghost{background:transparent;color:var(--brand);border:1.5px solid var(--line);}

/* ---------- Header / Nav ---------- */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;gap:10px;padding:11px 0;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--brand-2);
  font-weight:800;font-size:1.1rem;letter-spacing:-.02em;white-space:nowrap;}
.brand .badge{width:44px;height:44px;border-radius:11px;background:#fff;border:1px solid var(--line);
  color:var(--brand-2);display:flex;align-items:center;justify-content:center;
  font-family:var(--font-logo);font-weight:600;text-transform:uppercase;
  font-size:.98rem;letter-spacing:.05em;box-shadow:0 6px 16px -11px rgba(14,34,51,.55);flex:none;}
.brand .badge .e,.brand-name .e{color:var(--logo-red);}
/* Kapitälchen statt durchgängiger Versalien: „Eplanung Joerg" rendert damit wie
   im Original – großes E und J, der Rest als kleine Versalien. */
.brand-name{display:block;font-family:var(--font-logo);font-variant-caps:small-caps;
  font-weight:500;letter-spacing:.09em;}
/* Kapitälchen hier bewusst gesetzt (nicht nur von .brand-name geerbt) –
   die Unterzeile steht im Original-Logo ebenfalls in kleinen Versalien. */
.brand small{display:block;font-family:var(--font-body);text-transform:none;
  font-variant-caps:small-caps;
  font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:.06em;white-space:nowrap;}
.nav-links{display:flex;gap:2px;margin-left:auto;align-items:center;}
/* Kompakte Abstände: mit „Projektierung" und „Dokumentation" ist das Menü
   deutlich breiter als vorher und würde sonst umbrechen. */
.nav-links a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.875rem;
  padding:8px 8px;border-radius:8px;white-space:nowrap;}
.nav-links a:hover{background:var(--surface-2);color:var(--brand);}
.nav-links a.active{color:var(--brand);background:var(--surface-2);}
.nav-right{display:flex;align-items:center;gap:10px;}
.nav-tel{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--brand-2);
  text-decoration:none;white-space:nowrap;font-size:.95rem;}
.nav-tel svg{width:18px;height:18px;}
.nav-toggle{display:none;background:none;border:1.5px solid var(--line);border-radius:9px;
  padding:9px 10px;cursor:pointer;flex:none;}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--brand-2);border-radius:2px;
  transition:transform .3s ease,opacity .2s ease;}
.nav-toggle span+span{margin-top:5px;}

@media(max-width:1024px){
  .nav-toggle{display:block;}
  .nav-right{margin-left:auto;}           /* Tel+Menü an den rechten Rand */
  .nav-tel span{display:none;}            /* nur Telefon-Icon */
  .nav-links{order:9;flex-basis:100%;flex-direction:column;align-items:stretch;margin:0;gap:0;
    max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease;}
  .nav.open .nav-links{max-height:640px;opacity:1;padding-top:6px;}
  .nav-links a{padding:14px 6px;border-radius:0;border-top:1px solid var(--line);}
  .nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav.open .nav-toggle span:nth-child(2){opacity:0;}
  .nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ---------- Hero ---------- */
.hero{background:
   radial-gradient(1200px 500px at 80% -10%, rgba(44,155,214,.18), transparent),
   linear-gradient(180deg,var(--surface),var(--bg));
  border-bottom:1px solid var(--line);}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;
  padding:clamp(44px,7vw,86px) 0;}
.hero h1{margin-bottom:.35em;}
.hero .lead{font-size:1.18rem;color:var(--muted);max-width:52ch;}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}
.hero-art{aspect-ratio:4/3;border-radius:var(--radius-lg);background:
   linear-gradient(135deg,var(--brand-2),var(--brand));
  position:relative;overflow:hidden;box-shadow:var(--shadow);}
.hero-art .grid-lines{position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);
  background-size:34px 34px;}
.hero-art .tag{position:absolute;left:22px;bottom:20px;color:#fff;font-weight:700;
  font-size:1.05rem;text-shadow:0 2px 10px rgba(0,0,0,.35);}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block;}

/* Gestapelte Hero-Headline: „EPLAN® –" plus die vier Bereiche untereinander */
.hero-stack{line-height:1.08;}
/* Nur die direkten Kinder werden zu Zeilen – sonst würde auch das
   verschachtelte .reg zum Block und ® und Gedankenstrich rutschten
   in eigene Zeilen. */
.hero-stack>span{display:block;}
.hero-stack-lead{white-space:nowrap;}
.hero-stack-lead .reg{display:inline;margin-right:.08em;}

/* Zwei versetzt überlappende Visuals (Kundenentwurf) */
.hero-duo{position:relative;padding-bottom:22%;}
.hero-duo figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow);background:var(--brand-2);}
.hero-duo img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-duo-back{width:74%;aspect-ratio:4/3;}
.hero-duo-front{position:absolute;right:0;bottom:0;width:56%;aspect-ratio:1/1;
  border:5px solid var(--surface);}
@media(max-width:820px){
  .hero-in{grid-template-columns:1fr;gap:28px;}
  .hero-art{order:-1;aspect-ratio:4/3;}   /* Schema-SVG ist 4/3 – kein Beschnitt */
  .hero-duo{order:-1;}
}
@media(max-width:520px){   /* zwei gestapelte Visuals wären vor dem Text zu viel */
  .hero-duo{padding-bottom:0;}
  .hero-duo-back{width:100%;}
  .hero-duo-front{display:none;}
}

/* ---------- Sections ---------- */
section{padding:clamp(46px,6vw,80px) 0;}
.section-head{max-width:62ch;margin:0 auto 40px;text-align:center;}
.alt{background:var(--surface-2);}
.lead{font-size:1.1rem;color:var(--muted);}

/* ---------- Karten-Grid ---------- */
.grid{display:grid;gap:22px;}
.g-2{grid-template-columns:repeat(2,1fr);}
.g-3{grid-template-columns:repeat(3,1fr);}
.g-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.g-3,.g-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.g-2,.g-3,.g-4{grid-template-columns:1fr;}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:0 8px 30px -24px rgba(14,34,51,.5);}
.card h3{color:var(--brand-2);}
.card .ico{width:46px;height:46px;border-radius:11px;background:var(--surface-2);
  display:grid;place-items:center;margin-bottom:16px;color:var(--brand);}
.card .ico svg{width:24px;height:24px;}
.card ul{margin:.4em 0 0;padding-left:1.1em;color:var(--muted);}
.card li{margin:.25em 0;}

/* Leistungs-Liste kompakt */
.ticklist{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.ticklist li{position:relative;padding-left:30px;}
.ticklist li::before{content:"";position:absolute;left:0;top:.15em;width:18px;height:18px;
  border-radius:50%;background:var(--accent);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='white' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/13px no-repeat;}

/* Zwei-Spalten-Ticklist (z.B. Anforderungen) */
.ticklist.cols2{display:grid;grid-template-columns:1fr 1fr;gap:10px 34px;}
@media(max-width:640px){.ticklist.cols2{grid-template-columns:1fr;}}

/* Benefit-/Perk-Raster (Jobs „Das bieten wir") */
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:860px){.perks{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.perks{grid-template-columns:1fr;}}
.perk{display:flex;gap:13px;align-items:center;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:15px 17px;box-shadow:0 8px 26px -24px rgba(14,34,51,.5);}
.perk .pico{flex:none;width:42px;height:42px;border-radius:11px;background:rgba(18,80,143,.09);
  display:grid;place-items:center;color:var(--brand);}
.perk .pico svg{width:22px;height:22px;}
.perk b{color:var(--brand-2);font-size:.97rem;font-weight:600;line-height:1.3;}

/* Rollen-Karte */
.role .rico{width:46px;height:46px;border-radius:11px;background:var(--surface-2);
  display:grid;place-items:center;color:var(--brand);margin-bottom:14px;}
.role .rico svg{width:24px;height:24px;}
.tag-chip{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.02em;color:var(--brand);
  background:var(--surface-2);padding:5px 11px;border-radius:999px;margin-top:14px;}

/* Kurs-Akkordeon (Schulungen, native <details>) */
.course{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  margin:0 0 14px;box-shadow:0 8px 30px -26px rgba(14,34,51,.5);}
.course>summary{list-style:none;cursor:pointer;padding:19px 22px;display:flex;align-items:center;gap:16px;}
.course>summary::-webkit-details-marker{display:none;}
.c-head{display:flex;flex-direction:column;gap:3px;min-width:0;}
.c-head .c-t{font-family:var(--font-display);font-weight:700;color:var(--brand-2);font-size:1.16rem;}
.c-head .c-meta{color:var(--muted);font-size:.88rem;}
.c-price{margin-left:auto;text-align:right;white-space:nowrap;}
.c-price b{color:var(--brand-2);font-size:1.08rem;}
.c-price small{display:block;color:var(--muted);font-size:.7rem;}
.course .chev{width:20px;height:20px;color:var(--brand);transition:transform .25s ease;flex:none;}
.course[open] .chev{transform:rotate(180deg);}
.course .c-body{padding:6px 22px 24px;}
.course .c-body h4{color:var(--brand-2);margin:18px 0 8px;font-size:.95rem;}
.cspec{list-style:none;padding:0;margin:0;display:grid;gap:9px;}
.cspec>div{display:grid;grid-template-columns:168px 1fr;gap:12px;font-size:.94rem;}
.cspec .k{color:var(--brand-2);font-weight:600;}
@media(max-width:520px){.cspec>div{grid-template-columns:1fr;gap:1px;}}
.datechips{display:flex;flex-wrap:wrap;gap:6px;}
.datechip{background:var(--surface-2);color:var(--brand-2);font-weight:600;font-size:.82rem;
  padding:4px 10px;border-radius:7px;border:1px solid var(--line);white-space:nowrap;}

/* Sticky-Scroll (Startseite Leistungen): links Bild sticky, rechts scrollt & switcht */
.ss-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:start;}
/* Höhe des Sticky-Bilds MUSS der Höhe eines .ss-step entsprechen (beide 64vh).
   Sonst löst sich das Bild am Ende des Rasters und wird bündig zum Container-
   Boden gesetzt – seine Mitte läge dann um die halbe Höhendifferenz über der
   Textmitte, und der letzte Schritt (04 · Dokumentation) stünde sichtbar zu hoch.
   top:18vh = (100vh − 64vh)/2 hält es währenddessen mittig im Viewport. */
.ss-visual{position:sticky;top:18vh;height:64vh;display:flex;align-items:center;}
.ss-figwrap{position:relative;width:100%;aspect-ratio:4/3;}
.ss-figure{position:absolute;inset:0;opacity:0;transform:translateY(12px) scale(.99);
  transition:opacity .5s ease,transform .5s ease;pointer-events:none;}
.ss-figure.active{opacity:1;transform:none;}
.ss-figure img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-lg);box-shadow:var(--shadow);}
.ss-step{min-height:64vh;display:flex;flex-direction:column;justify-content:center;
  border-left:2px solid var(--line);padding:6px 0 6px 28px;opacity:.4;
  transition:opacity .35s ease,border-color .35s ease;}
.ss-step.active{opacity:1;border-color:var(--accent);}
.ss-step .ss-num{font-weight:800;color:var(--accent);font-size:.85rem;letter-spacing:.18em;margin-bottom:8px;}
.ss-step h3{font-size:1.5rem;}
.ss-inline-img{display:none;}
@media(max-width:860px){
  .ss-grid{grid-template-columns:1fr;gap:0;}
  .ss-visual{display:none;}
  .ss-step{min-height:auto;opacity:1;border-left:0;padding:0;margin:0 0 40px;}
  .ss-inline-img{display:block;margin-bottom:16px;border-radius:var(--radius-lg);box-shadow:var(--shadow);}
}

/* dezentes Leiterbahn-Muster als Section-Hintergrund */
.has-pattern{position:relative;overflow:hidden;}
.has-pattern>.wrap{position:relative;z-index:1;}
.has-pattern::before{content:"";position:absolute;inset:0;background:url("../img/circuit-trace.svg");
  background-size:170px;opacity:.6;pointer-events:none;}

/* Schulungs-/Content-Tabelle */
.spec{width:100%;border-collapse:collapse;margin:8px 0 4px;}
.spec th,.spec td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);
  vertical-align:top;font-size:.95rem;}
.spec th{color:var(--brand-2);width:34%;white-space:nowrap;}

/* CTA-Band */
.cta-band{background:linear-gradient(135deg,var(--brand-2),var(--brand));color:#fff;}
.cta-band h2{color:#fff;}
.cta-band p{color:var(--ink-inv);}
.cta-band .wrap{text-align:center;}

/* Kontakt-Zeilen */
.contact-row{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;}
.contact-row .ico{flex:none;width:42px;height:42px;border-radius:10px;background:var(--surface-2);
  display:grid;place-items:center;color:var(--brand);}
.contact-row .ico svg{width:20px;height:20px;}
.contact-row b{display:block;color:var(--brand-2);}

/* ---------- Footer ---------- */
.site-foot{background:var(--brand-2);color:var(--ink-inv);padding:52px 0 26px;margin-top:10px;}
.site-foot a{color:#cfe0f0;text-decoration:none;}
.site-foot a:hover{text-decoration:underline;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;margin-bottom:32px;}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:22px;}}
.foot-grid h4{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;}
.foot-grid ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.foot-legal{border-top:1px solid rgba(255,255,255,.16);padding-top:18px;
  font-size:.82rem;color:#9fb4c8;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;}

/* Rechtstext-Seiten */
.prose{max-width:74ch;margin:0 auto;}
.prose h2{margin-top:1.6em;}
.prose .note{background:var(--surface-2);border-left:4px solid var(--accent);
  padding:14px 18px;border-radius:0 8px 8px 0;margin:0 0 24px;}
.pagehero{background:linear-gradient(180deg,var(--surface),var(--bg));
  border-bottom:1px solid var(--line);padding:clamp(36px,5vw,64px) 0;}
