/* RIZZO ACADEMY – Onepager
   -------------------------------------------------- */

:root{
  --bg: #0f1216;
  --bg2:#0b0d10;
  --card:#151a21;
  --text:#f3f5f7;
  --muted:#b9c1cc;
  --line: rgba(255,255,255,.12);
  --accent:#caa343;   /* warm gold */
  --accent2:#e0c36a;  /* light gold */
  --shadow: 0 14px 40px rgba(0,0,0,.35);
  --radius: 18px;
  --container: 1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: radial-gradient(1200px 600px at 20% -10%, rgba(202,163,67,.18), transparent 60%),
              radial-gradient(900px 500px at 85% 10%, rgba(224,195,106,.10), transparent 55%),
              linear-gradient(180deg, var(--bg), var(--bg2));
  color:var(--text);
  line-height:1.5;
}

img, video{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
a:hover{opacity:.95}
p{margin:0 0 1rem}
h1,h2,h3{margin:0 0 .6rem; line-height:1.15}
h1{font-size:clamp(2rem, 4.2vw, 3.4rem); letter-spacing:-0.02em}
h2{font-size:clamp(1.6rem, 3.0vw, 2.4rem); letter-spacing:-0.02em}
h3{font-size:1.15rem}

.container{
  width:min(var(--container), calc(100% - 2rem));
  margin-inline:auto;
}

.section{padding: clamp(3.2rem, 6vw, 5rem) 0}
.section-alt{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0));
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.section-head{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  margin-bottom:1.75rem;
  max-width: 760px;
}
.section-head p{color:var(--muted); margin:0}

/* Accessibility */
.skip-link{
  position:absolute;
  left:-999px;
  top:10px;
  background:#fff;
  color:#000;
  padding:.6rem .9rem;
  border-radius:10px;
  z-index:999;
}
.skip-link:focus{left:10px}
.sr-only{
  position:absolute;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);
  border:0;
}

/* Header / Nav */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(15,18,22,.70);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.8rem 0;
}
.brand-logo{
  height:42px;
  width:auto;
}
.site-nav{
  display:flex;
  align-items:center;
  gap:1.1rem;
}
.site-nav a{
  color:var(--muted);
  font-weight:600;
  font-size:.95rem;
}
.site-nav a:hover{color:var(--text)}
.nav-toggle{
  display:none;
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  color:var(--text);
  border-radius:12px;
  padding:.55rem .7rem;
}
.nav-toggle-bars{
  width:22px;height:14px;
  display:block;
  position:relative;
}
.nav-toggle-bars::before,
.nav-toggle-bars::after{
  content:"";
  position:absolute;left:0;right:0;
  height:2px;background: var(--text);
  border-radius:2px;
}
.nav-toggle-bars::before{top:0}
.nav-toggle-bars::after{bottom:0}
.nav-toggle-bars{border-top:2px solid var(--text); border-bottom:2px solid var(--text);}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.9rem 1.15rem;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--accent2), var(--accent));
  color:#1b1200;
  font-weight:800;
  border:1px solid rgba(255,255,255,.15);
  box-shadow: 0 10px 28px rgba(202,163,67,.18);
}
.btn:hover{transform: translateY(-1px)}
.btn:active{transform: translateY(0)}
.btn-small{padding:.7rem 1rem; font-weight:800; font-size:.95rem}
.btn-ghost{
  background: transparent;
  color: var(--text);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:none;
}
.btn-ghost:hover{background: rgba(255,255,255,.06)}
.btn:focus-visible, .nav-toggle:focus-visible, .faq-q:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 3px solid rgba(224,195,106,.55);
  outline-offset: 3px;
}

/* Hero */
.hero{
  position:relative;
  padding: clamp(4.2rem, 7vw, 6rem) 0;
  overflow:hidden;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:-2;
}
.hero-media img{width:100%; height:100%; object-fit:cover; filter: saturate(1.05) contrast(1.05)}
.hero-overlay{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(900px 520px at 18% 20%, rgba(0,0,0,.05), rgba(0,0,0,.62)),
    linear-gradient(90deg, rgba(0,0,0,.72), rgba(0,0,0,.18));
}
.hero-content{max-width: 820px}
.eyebrow{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  color: rgba(255,255,255,.85);
  font-weight:700;
  letter-spacing:.04em;
  text-transform: uppercase;
  font-size:.82rem;
  margin:0 0 .7rem;
}
.lead{
  font-size: clamp(1.05rem, 1.7vw, 1.25rem);
  color: rgba(255,255,255,.9);
  margin-bottom:1.3rem;
}
.hero-actions{
  display:flex; gap:.8rem; flex-wrap:wrap;
  margin: 1rem 0 1.2rem;
}
.hero-highlights{
  margin:1.6rem 0 0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:.8rem;
}
.hero-highlights li{
  padding: .9rem 1rem;
  border-radius: 16px;
  background: rgba(15,18,22,.55);
  border:1px solid rgba(255,255,255,.14);
  box-shadow: 0 10px 26px rgba(0,0,0,.25);
}
.hero-highlights strong{display:block; font-weight:900}
.hero-highlights span{color:var(--muted); font-weight:600}

/* Grids */
.grid-2{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(1rem, 3vw, 2.3rem);
  align-items:start;
}
.stack{display:flex; flex-direction:column; gap:.75rem}
.muted{color:var(--muted)}
.small{font-size:.92rem}

/* Pills */
.pill-row{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.35rem}
.pill{
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.05);
  padding:.45rem .7rem;
  border-radius:999px;
  color:rgba(255,255,255,.88);
  font-weight:700;
}

/* Cards */
.cards-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:1rem;
}
.cards-2{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:1rem;
}
.card{
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: 1.15rem 1.15rem 1.25rem;
  box-shadow: var(--shadow);
}
.card.wide{
  padding:0;
  overflow:hidden;
}
.card.wide .card-media img{height:220px; width:100%; object-fit:cover}
.card.wide .card-body{padding: 1.1rem 1.15rem 1.2rem}
.icon{
  width:42px;height:42px;
  display:grid; place-items:center;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(224,195,106,.22), rgba(202,163,67,.10));
  border:1px solid rgba(224,195,106,.25);
  margin-bottom:.65rem;
  font-weight:900;
}
.mini-list{margin:.75rem 0 0; padding-left:1.1rem; color:var(--muted)}
.mini-list li{margin:.2rem 0}

/* Split */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:1.2rem;
  margin-top: 1.4rem;
  align-items:center;
}
.split-media{
  border-radius: var(--radius);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  box-shadow: var(--shadow);
}
.split-media img{height:100%; width:100%; object-fit:cover}
.checklist{margin:.8rem 0 1rem; padding:0; list-style:none; display:grid; gap:.45rem}
.checklist li{
  display:flex; gap:.6rem; align-items:flex-start;
  color: rgba(255,255,255,.88);
}
.checklist li::before{
  content:"✓";
  color: var(--accent2);
  font-weight:900;
}

/* Media card */
.media-card{padding:0; overflow:hidden}
.media-video{
  width:100%;
  aspect-ratio: 16 / 9;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.media-caption{
  padding:.85rem 1rem;
  color: var(--muted);
  margin:0;
}

/* Steps */
.steps{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap:1rem;
}
.step{
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  padding: 1.15rem;
}
.step-no{
  width:34px;height:34px;
  display:grid; place-items:center;
  border-radius: 999px;
  background: rgba(224,195,106,.18);
  border:1px solid rgba(224,195,106,.22);
  color: var(--accent2);
  font-weight:900;
  margin-bottom:.6rem;
}

/* Team */
.team-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:1rem;
}
.team-card{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem;
  border-radius: var(--radius);
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  box-shadow: var(--shadow);
}
.team-card img{
  width:84px;height:84px;
  border-radius: 999px;
  object-fit:cover;
  border: 2px solid rgba(224,195,106,.32);
}
.team-card h3{margin:0}
.team-card .muted{margin:0}

.cta-banner{
  margin-top: 1.2rem;
  padding: 1.2rem 1.25rem;
  border-radius: var(--radius);
  border: 1px solid rgba(224,195,106,.22);
  background: radial-gradient(900px 420px at 20% 0%, rgba(224,195,106,.14), transparent 60%),
              rgba(255,255,255,.04);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  box-shadow: var(--shadow);
}

/* References */
.logo-cloud{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.chip{
  padding:.6rem .8rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.9);
  font-weight:700;
}

/* FAQ */
.faq{
  max-width: 860px;
}
.faq-q{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding: 1rem 1.1rem;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: var(--text);
  font-weight:800;
  cursor:pointer;
  margin-bottom:.6rem;
  text-align:left;
}
.faq-icon{
  width:32px;height:32px;
  border-radius:10px;
  display:grid; place-items:center;
  background: rgba(224,195,106,.14);
  border:1px solid rgba(224,195,106,.18);
  color: var(--accent2);
  font-size: 1.1rem;
}
.faq-a{
  margin-top:-.25rem;
  margin-bottom:.75rem;
  padding: .95rem 1.1rem;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.18);
  color: var(--muted);
}

/* Contact */
.contact-cards{
  display:grid;
  gap:.7rem;
  margin-top:.3rem;
}
.contact-card{
  border-radius: var(--radius);
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  padding: .9rem 1rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
}
.contact-label{color: var(--muted); font-weight:700; font-size:.9rem}
.contact-value{font-weight:900}

.form{
  padding: 1.2rem 1.2rem 1.3rem;
}
.field{display:flex; flex-direction:column; gap:.35rem; margin-bottom:.85rem}
label{font-weight:800}
input, textarea{
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding:.85rem .9rem;
  font-size: 1rem;
}
textarea{resize:vertical; min-height: 120px}
.error{color: #ffb3b3; min-height:1.1rem}
.form-status{margin:.75rem 0 0; color: var(--muted)}

/* Footer */
.site-footer{
  border-top:1px solid var(--line);
  padding: 1.3rem 0;
  color: var(--muted);
}
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.footer-links{display:flex; gap:1rem}
.footer-links a{color: var(--muted); font-weight:700}
.footer-links a:hover{color: var(--text)}

/* Reveal animation */
.reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 920px){
  .grid-2{grid-template-columns: 1fr}
  .split{grid-template-columns: 1fr}
  .steps{grid-template-columns: repeat(2, minmax(0,1fr))}
  .cards-3{grid-template-columns: 1fr}
  .cards-2{grid-template-columns: 1fr}
  .team-grid{grid-template-columns: 1fr}
  .hero-highlights{grid-template-columns: 1fr}
  .cta-banner{flex-direction:column; align-items:flex-start}
}

@media (max-width: 860px){
  .nav-toggle{display:inline-flex}
  .site-nav{
    position: absolute;
    top: calc(100% + 1px);
    right: 1rem;
    left: 1rem;
    flex-direction: column;
    align-items: stretch;
    gap:.4rem;
    padding:.8rem;
    border-radius: 16px;
    background: rgba(15,18,22,.92);
    border:1px solid rgba(255,255,255,.12);
    box-shadow: var(--shadow);
    transform: translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition: opacity .2s ease, transform .2s ease;
  }
  .site-nav a{padding:.75rem .8rem; border-radius: 12px; background: rgba(255,255,255,.03)}
  .site-nav a.btn{background: linear-gradient(180deg, var(--accent2), var(--accent)); color:#1b1200}
  .site-nav.is-open{opacity:1; transform: translateY(0); pointer-events:auto}
}


/* --------------------------------------------------
   Legal pages (Impressum / Datenschutz)
   -------------------------------------------------- */
.hero.hero--sub{
  padding: clamp(3.2rem, 6vw, 4.2rem) 0;
}
.back-link{
  color: rgba(255,255,255,.9);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.28);
}
.back-link:hover{border-bottom-color: rgba(255,255,255,.55)}
.legal-card{
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(1.2rem, 3vw, 2rem);
}
.legal h2{margin-top:0}
.legal h3{
  margin-top: 1.4rem;
  margin-bottom: .35rem;
}
.legal p{max-width: 78ch}
.legal .muted{color: var(--muted)}
.legal a{color: rgba(255,255,255,.92)}
.legal a:hover{color: var(--accent2)}
