/* digitalerdenken.de – gemeinsames Stylesheet
   Farben aus dem Logo: Petrol/Blau #3e7a9d, Rot #c73936 */

@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-400.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/ibm-plex-sans-400-italic.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/ibm-plex-sans-600.woff2") format("woff2");}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500 700;font-display:swap;src:url("fonts/source-serif-4-normal-500-700.woff2") format("woff2");}

:root{
  --blue: #3e7a9d;          /* Logo */
  --blue-strong: #255370;   /* Text und Flächen, Kontrast auf Weiß > 8:1 */
  --blue-deep: #17394f;
  --blue-soft: #e6f0f5;
  --red: #c73936;           /* Logo */
  --red-strong: #a82e2b;    /* Knöpfe, Kontrast mit Weiß > 6:1 */
  --red-soft: #fbe9e8;
  --bg: #fbfaf7;
  --surface: #ffffff;
  --surface-alt: #f2f0ea;
  --border: #e2ded4;
  --text: #1b2329;
  --text-secondary: #3f4b54;
  --text-muted: #67737c;
  --radius: 10px;
  --shadow: 0 1px 2px rgba(23,57,79,.06), 0 12px 32px -14px rgba(23,57,79,.25);
  --serif: "Source Serif 4", ui-serif, Georgia, serif;
  --sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color-scheme: light;
}

*{box-sizing:border-box;}
html{font-size:18px; scroll-behavior:smooth; scroll-padding-top:90px;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
body{margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.65; -webkit-text-size-adjust:100%;}
img{display:block; max-width:100%; height:auto;}
a{color:var(--blue-strong); text-underline-offset:.18em;}
a:hover{color:var(--red-strong);}
h1,h2,h3{font-family:var(--serif); font-weight:600; line-height:1.18; letter-spacing:-.01em; text-wrap:balance; margin:0 0 .6em; color:var(--blue-deep);}
h1{font-size:clamp(2rem, 1.3rem + 3.2vw, 3.3rem);}
h2{font-size:clamp(1.55rem, 1.2rem + 1.5vw, 2.2rem);}
h3{font-size:1.2rem;}
p{margin:0 0 1em;}
p:last-child{margin-bottom:0;}
strong{font-weight:600;}
:focus-visible{outline:3px solid var(--red); outline-offset:3px; border-radius:3px;}

.wrap{max-width:1100px; margin:0 auto; padding:0 24px;}
.narrow{max-width:740px; margin:0 auto; padding:0 24px;}
.skip{position:absolute; left:-9999px;}
.skip:focus{left:16px; top:12px; z-index:100; background:var(--surface); padding:8px 14px;}

/* Kopf */
.site-header{position:sticky; top:0; z-index:50; background:rgba(251,250,247,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--border);}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:72px;}
.logo img{width:96px; height:auto;}
.nav{display:flex; flex-wrap:wrap; gap:4px 22px; font-size:.92rem;}
.nav a{color:var(--text-secondary); text-decoration:none; padding:6px 0;}
.nav a:hover, .nav a[aria-current="page"]{color:var(--red-strong);}
@media (max-width:560px){
  .site-header .wrap{min-height:62px;}
  .logo img{width:78px;}
  .nav{gap:2px 14px; font-size:.85rem; justify-content:flex-end;}
  .nav .nav-optional{display:none;}
}

/* Abschnitte */
.section{padding:76px 0;}
.section-alt{background:var(--surface-alt);}
.section-blue{background:var(--blue-deep); color:#eef4f8;}
.section-blue h2, .section-blue h3{color:#fff;}
.section-blue a{color:#fff;}
@media (max-width:640px){.section{padding:54px 0;}}

.eyebrow{display:inline-block; font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--red-strong); margin-bottom:14px;}
.section-blue .eyebrow{color:#f3b2b0;}
.lead{font-size:1.18rem; color:var(--text-secondary); max-width:38em;}
.section-blue .lead{color:#c9dbe6;}
.muted{color:var(--text-muted);}
.small{font-size:.88rem;}

/* Knöpfe */
.buttons{display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:12px 24px; border-radius:8px; font-family:var(--sans); font-weight:600; font-size:1rem; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:background .15s, color .15s, border-color .15s;}
/* Primär: Logo-Rot (heller als --red-strong, Kontrast mit Weiß 5,2:1) */
.btn-primary{background:var(--red); color:#fff;}
.btn-primary:hover{background:var(--red-strong); color:#fff;}
.btn-secondary{background:var(--surface); color:var(--blue-deep); border-color:var(--border);}
.btn-secondary:hover{border-color:var(--blue); color:var(--blue-deep);}
.section-blue .btn-secondary{background:transparent; color:#fff; border-color:#8fb6cc;}
.section-blue .btn-secondary:hover{background:rgba(255,255,255,.1); color:#fff;}

/* Startseite: Einstieg */
.hero{padding:88px 0 80px;}
.hero h1{max-width:15em;}
.hero .who{font-size:1rem; font-weight:600; color:var(--blue-strong); margin-bottom:18px;}
@media (max-width:640px){.hero{padding:56px 0 52px;}}

/* Punkteraster auf der Startseite (<main class="pattern">); unter der Maus kräftiger (Spotlight, assets/spotlight.js) */
.pattern{position:relative; isolation:isolate;}
.pattern::before, .pattern::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:radial-gradient(circle, var(--blue) 1px, transparent 1.5px); background-size:14px 14px;}
.pattern::before{opacity:.22;}
.pattern::after{opacity:0; transition:opacity .3s;
  -webkit-mask-image:radial-gradient(200px circle at var(--x) var(--y), #000, transparent);
          mask-image:radial-gradient(200px circle at var(--x) var(--y), #000, transparent);}
.pattern.spot::after{opacity:.45;}

/* Karten */
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow);}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
@media (max-width:860px){.grid-2{grid-template-columns:1fr;} .grid-2{gap:32px;}}

/* Über mich */
.about{display:grid; grid-template-columns:300px 1fr; gap:52px; align-items:start;}
.about img{border-radius:var(--radius); box-shadow:var(--shadow); width:100%;}
.about .caption{margin-top:12px; font-size:.88rem; color:var(--text-muted);}
@media (max-width:820px){.about{grid-template-columns:1fr; gap:28px;} .about figure{max-width:340px;}}
figure{margin:0;}

/* Kontakt */
.contact-list{list-style:none; padding:0; margin:26px 0 0; display:grid; gap:10px;}
.contact-list li{display:flex; gap:12px; align-items:baseline;}
.contact-list .label{min-width:7.5em; color:var(--text-muted); font-size:.92rem;}

/* Webinar-Seite */
.webinar-hero{padding:64px 0 72px;}
.webinar-hero .grid-2{grid-template-columns:1.15fr .85fr;}
@media (max-width:860px){.webinar-hero .grid-2{grid-template-columns:1fr;}}
.webinar-hero h1{font-size:clamp(1.8rem, 1rem + 2vw, 2.4rem);} /* Titel auf dem Desktop in zwei Zeilen */
.webinar-hero .lead{font-size:1rem;}
.subtitle{font-family:var(--serif); font-size:clamp(1.2rem, 1.05rem + .6vw, 1.45rem); color:var(--blue-strong); line-height:1.35; margin-bottom:26px;}
/* Vertrauenszeile unten in der Anmeldekarte (Webinar) */
.trust{display:flex; align-items:center; gap:12px; margin:18px 0 0; padding-top:16px; border-top:1px solid var(--border);}
.trust .faces{display:flex; flex:none;}
.trust .faces img{width:44px; height:44px; border-radius:50%; border:2px solid var(--surface);}
.trust .faces img:first-child{position:relative; z-index:1;} /* Niels vorne */
.trust .faces img + img{margin-left:-12px;}                  /* Stephan in der zweiten Reihe */
.trust span{font-size:.84rem; line-height:1.4; color:var(--text-secondary);}
.trust strong{display:block; font-size:.9rem; color:var(--blue-deep);}
/* Gruß mit Foto (Dankeseite Webinar) */
.greeting{display:flex; align-items:center; gap:16px; margin:36px 0 0;}
.greeting img{width:64px; height:64px; border-radius:50%; flex:none;}
.greeting span{font-family:var(--serif); font-size:1.25rem; color:var(--blue-deep); line-height:1.3;}
.greeting small{display:block; font-family:var(--sans); font-size:.85rem; color:var(--text-muted); margin-top:2px;}
.facts{list-style:none; padding:0; margin:28px 0 0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 24px;}
.facts li{border-left:3px solid var(--red); padding-left:12px; line-height:1.4;}
.facts b{display:block; font-size:.78rem; letter-spacing:.07em; text-transform:uppercase; color:var(--text-muted); font-weight:600;}
@media (max-width:420px){.facts{grid-template-columns:1fr;}}

.signup{position:sticky; top:96px;}
.signup h2{font-size:1.45rem;}
.signup .note{font-size:.84rem; color:var(--text-muted); margin-top:16px; line-height:1.5;}
.ktv2-form-element{margin-bottom:14px;}
.ktv2-form-element label{display:block; font-size:.92rem; font-weight:600; margin-bottom:4px;}
.ktv2-form-element input{width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--border); border-radius:8px; font:inherit; color:var(--text); background:var(--surface);}
.ktv2-form-element input:focus{outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);}
.signup form .btn{width:100%; margin-top:6px;}
@media (max-width:860px){.signup{position:static;}}

.steps{list-style:none; counter-reset:step; padding:0; margin:30px 0 0; display:grid; gap:14px;}
.steps li{counter-increment:step; display:grid; grid-template-columns:48px 1fr; gap:16px; align-items:start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px 20px;}
.steps li::before{content:counter(step); font-family:var(--serif); font-weight:700; font-size:1.35rem; color:#fff; background:var(--blue); width:42px; height:42px; border-radius:50%; display:grid; place-items:center;}
.steps h3{margin:.1em 0 .25em; font-size:1.1rem;}
.steps p{color:var(--text-secondary); font-size:.96rem;}

.checks{list-style:none; padding:0; margin:18px 0 0; display:grid; gap:10px;}
.checks li{position:relative; padding-left:30px;}
.checks li::before{content:""; position:absolute; left:2px; top:.45em; width:16px; height:9px; border-left:3px solid var(--red); border-bottom:3px solid var(--red); transform:rotate(-45deg);}

.quote{font-family:var(--serif); font-size:clamp(1.35rem, 1.1rem + 1.1vw, 1.9rem); line-height:1.35; color:#fff; max-width:28em; margin:0;}

.speaker{display:grid; grid-template-columns:180px 1fr; gap:32px; align-items:start;}
.speaker img{border-radius:var(--radius); width:100%;}
@media (max-width:640px){.speaker{grid-template-columns:1fr;} .speaker img{max-width:220px;}}

/* Textseiten (Impressum, Datenschutz) */
.legal{padding:56px 0 80px;}
.legal h1{font-size:clamp(1.9rem, 1.5rem + 1.6vw, 2.5rem);}
.legal h2{font-size:1.35rem; margin-top:2.2em;}
.legal h3{font-size:1.05rem; margin-top:1.6em; font-family:var(--sans); color:var(--text);}
.legal ul{padding-left:1.2em;}
.legal address{font-style:normal;}
.todo{background:#fff3c4; border:1px dashed #b88a00; padding:2px 6px; border-radius:4px; font-size:.9em;}

/* Fuß */
.site-footer{border-top:1px solid var(--border); padding:30px 0 40px; font-size:.88rem; color:var(--text-muted);}
.site-footer .wrap{display:flex; flex-wrap:wrap; gap:10px 24px; justify-content:space-between;}
.site-footer nav{display:flex; gap:20px;}
.site-footer a{color:var(--text-muted);}
.site-footer a:hover{color:var(--red-strong);}
