:root{--red:#ed1c2a;--black:#090909;--light:#f2f0eb;--text:#171717;--line:#d3d0ca;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:#fff;font-family:Arial,Helvetica,sans-serif;line-height:1.6}img{display:block;max-width:100%}a{color:inherit}button,input,textarea{font:inherit}.wrap{width:min(calc(100% - 34px),var(--max));margin:auto}h1,h2,.button,.eyebrow{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Narrow",Arial,sans-serif;font-weight:400;letter-spacing:.02em}
.hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;background:url("../images/crew_10.jpeg") center 38%/cover no-repeat}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.64) 48%,rgba(0,0,0,.42)),linear-gradient(0deg,rgba(0,0,0,.66),rgba(0,0,0,.06) 52%)}.hero-inner{position:relative;padding:92px 0 76px}.logo{width:115px;margin-bottom:24px;filter:drop-shadow(0 5px 15px rgba(0,0,0,.45))}.eyebrow{margin:0 0 12px;color:var(--red);text-transform:uppercase;letter-spacing:.13em;font-size:13px}h1{margin:0 0 22px;font-size:clamp(58px,9vw,110px);line-height:.84;text-transform:uppercase;letter-spacing:-.035em}.lead{margin:0 0 14px;max-width:650px;font-size:clamp(20px,3vw,30px);font-weight:700;line-height:1.28}.copy{max-width:640px;color:#d4d4d4;margin:0 0 30px}.button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--red);background:var(--red);color:#fff;text-decoration:none;text-transform:uppercase;padding:13px 18px;cursor:pointer;font-size:14px}.button:disabled{opacity:.55;cursor:not-allowed}
.contact{background:var(--light);color:var(--text);padding:82px 0}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;align-items:start}.contact h2{margin:0 0 18px;font-size:clamp(42px,6vw,74px);line-height:.9;text-transform:uppercase}address{margin-top:30px;font-style:normal}address a{color:var(--red);text-decoration:none}.contact-form{display:grid;gap:16px;padding:28px;background:#fff;border:1px solid var(--line)}.contact-form label{display:grid;gap:6px;font-size:13px;font-weight:800}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{width:100%;border:1px solid #bcb8b1;background:#faf9f6;color:#111;padding:13px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--red);outline-offset:1px}.contact-form textarea{resize:vertical;min-height:160px}.privacy{grid-template-columns:auto 1fr;align-items:start;gap:10px!important;font-weight:400!important;line-height:1.4}.privacy input{margin-top:4px}.hp{position:absolute;left:-9999px;opacity:0;pointer-events:none}.status{min-height:24px;margin:0;font-weight:800}.status.success{color:#167536}.status.error{color:#b00020}footer{background:#080808;border-top:1px solid #222;color:#aaa;padding:26px 0}.footer-inner{display:flex;align-items:center;gap:14px}.footer-inner img{width:40px}
@media(max-width:820px){.hero{min-height:720px;background-position:center}.overlay{background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.46) 62%,rgba(0,0,0,.16))}.hero-inner{padding:260px 0 58px}.contact-grid{grid-template-columns:1fr}}
@media(max-width:540px){.wrap{width:min(calc(100% - 26px),var(--max))}.hero{min-height:670px}.logo{width:88px}h1{font-size:58px}.lead{font-size:21px}.contact{padding:60px 0}.contact-form{padding:20px}}


/* Logo als echtes Background-Image */
.logo-mark{
  width:120px;
  height:120px;
  margin-bottom:24px;
  background-image:url("../images/logo.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:drop-shadow(0 5px 15px rgba(0,0,0,.45));
}

.footer-logo{
  width:42px;
  height:42px;
  flex:0 0 42px;
  background-image:url("../images/logo.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

@media(max-width:540px){
  .logo-mark{
    width:92px;
    height:92px;
  }
}


/* ===== DE / EN language switch ===== */
.language-switch{
  position:absolute;
  top:28px;
  right:0;
  display:flex;
  gap:6px;
  z-index:2;
}

.language-switch button{
  border:1px solid rgba(255,255,255,.5);
  background:rgba(0,0,0,.25);
  color:#fff;
  padding:8px 10px;
  cursor:pointer;
  font-weight:800;
  font-size:11px;
  letter-spacing:.06em;
}

.language-switch button.active{
  background:var(--red);
  border-color:var(--red);
}

[data-lang]{display:none}

html[lang="de"] [data-lang="de"],
html[lang="en"] [data-lang="en"]{
  display:initial;
}

p[data-lang],
div[data-lang]{
  display:none;
}

html[lang="de"] p[data-lang="de"],
html[lang="en"] p[data-lang="en"],
html[lang="de"] div[data-lang="de"],
html[lang="en"] div[data-lang="en"]{
  display:block;
}

@media(max-width:540px){
  .language-switch{
    top:18px;
    right:0;
  }
}


/* ===== Trainingsplan ===== */
.schedule-section{
  background:#0f0f0f;
  color:#fff;
  padding:74px 0;
}

.schedule-head{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px;
  align-items:end;
  margin-bottom:28px;
}

.schedule-head h2{
  margin:0;
  font-size:clamp(38px,5vw,68px);
  line-height:.92;
  text-transform:uppercase;
}

.schedule-note{
  color:#bdbdbd;
  margin:0;
  max-width:520px;
}

.schedule-table{
  overflow-x:auto;
  border:1px solid #2a2a2a;
  background:#151515;
}

.schedule-table table{
  width:100%;
  min-width:900px;
  border-collapse:collapse;
}

.schedule-table th,
.schedule-table td{
  padding:14px 12px;
  border-right:1px solid #2f2f2f;
  border-bottom:1px solid #2f2f2f;
  text-align:left;
  vertical-align:top;
}

.schedule-table thead th{
  background:#1d1d1d;
  color:#fff;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.05em;
}

.schedule-table tbody th{
  width:90px;
  color:#aaa;
  font-weight:800;
}

.class-tag{
  display:inline-block;
  padding:5px 8px;
  background:#262626;
  color:#fff;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}

.class-tag.accent{
  background:var(--red);
}

@media(max-width:820px){
  .schedule-head{
    grid-template-columns:1fr;
    gap:14px;
  }
}

@media(max-width:540px){
  .schedule-section{
    padding:58px 0;
  }
}


/* ===== Footer links ===== */
.footer-link{
  color:#cfcfcf;
  text-decoration:none;
}

.footer-link:hover{
  color:#fff;
}

.footer-sep{
  color:#555;
}

/* ===== Legal / Impressum ===== */
.legal-page{
  min-height:100vh;
  background:#0b0b0b;
  color:#fff;
}

.legal-header{
  border-bottom:1px solid #222;
  background:#090909;
}

.legal-header-inner{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.legal-brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.legal-switch{
  position:static;
}

.legal-main{
  padding:74px 0 88px;
}

.legal-wrap{
  max-width:900px;
}

.legal-title{
  margin:0 0 30px;
  font-size:clamp(52px,8vw,92px);
  line-height:.9;
  text-transform:uppercase;
}

.legal-card{
  background:#f2f0eb;
  color:#171717;
  padding:clamp(24px,5vw,48px);
}

.legal-card section + section{
  margin-top:42px;
  padding-top:36px;
  border-top:1px solid #d0cdc6;
}

.legal-card h2{
  margin:0 0 12px;
  font-size:clamp(25px,3vw,36px);
  text-transform:uppercase;
  line-height:1;
}

.legal-card p{
  margin:0;
}

.legal-card a{
  color:var(--red);
  text-decoration:none;
}

.legal-card ul{
  margin:12px 0 0;
  padding-left:22px;
}

.legal-warning{
  border-left:4px solid var(--red);
  padding-left:22px;
}

.legal-back{
  margin:30px 0 0;
}

@media(max-width:540px){
  .legal-header-inner{
    min-height:70px;
  }

  .legal-brand span{
    font-size:13px;
  }

  .legal-main{
    padding:52px 0 68px;
  }

  .legal-card{
    padding:22px;
  }
}

.footer-inner{
  flex-wrap:wrap;
}
.instagram-link{
  white-space:nowrap;
}


/* ===== V7 LIGHT THEME ===== */
:root{
  --red:#ed1c2a;
  --black:#111111;
  --light:#f6f4ef;
  --paper:#ffffff;
  --text:#171717;
  --muted:#6c6c6c;
  --line:#d8d5cf;
}

body,
.legal-page{
  background:#f7f5f0;
  color:var(--text);
}

.hero{
  min-height:78vh;
  background:
    linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.82)),
    url("../images/crew_10.jpeg") center 38%/cover no-repeat;
  color:#111;
}

.overlay{
  background:
    linear-gradient(90deg,rgba(255,255,255,.94),rgba(255,255,255,.82) 52%,rgba(255,255,255,.64)),
    linear-gradient(0deg,rgba(255,255,255,.92),rgba(255,255,255,.12) 55%);
}

.logo-mark{
  filter:none;
}

.eyebrow{
  color:var(--red);
}

h1,
.lead{
  color:#111;
}

.copy{
  color:#555;
}

.button{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

.button:hover{
  filter:brightness(.96);
}

.language-switch button{
  border:1px solid #222;
  background:#fff;
  color:#111;
}

.language-switch button.active{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

.schedule-section{
  background:#fff;
  color:#111;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.schedule-note{
  color:#666;
}

.schedule-table{
  border:1px solid var(--line);
  background:#fff;
}

.schedule-table table{
  background:#fff;
}

.schedule-table th,
.schedule-table td{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  color:#111;
}

.schedule-table thead th{
  background:#f1eee8;
  color:#111;
}

.schedule-table tbody th{
  color:#666;
  background:#faf9f6;
}

.class-tag{
  background:#111;
  color:#fff;
}

.class-tag.accent{
  background:var(--red);
  color:#fff;
}

.contact{
  background:#f6f4ef;
  color:#171717;
}

.contact-form{
  background:#fff;
  border:1px solid #cbc7bf;
  box-shadow:0 12px 36px rgba(0,0,0,.05);
}

.contact-form input[type=text],
.contact-form input[type=email],
.contact-form textarea{
  background:#fff;
  color:#111;
  border:1px solid #bbb7af;
}

.contact-form input:focus,
.contact-form textarea:focus{
  outline:2px solid var(--red);
}

footer{
  background:#fff;
  color:#555;
  border-top:1px solid var(--line);
}

.footer-link{
  color:#333;
}

.footer-link:hover{
  color:var(--red);
}

.footer-sep{
  color:#aaa;
}

/* Legal page */
.legal-header{
  background:#fff;
  border-bottom:1px solid var(--line);
}

.legal-brand{
  color:#111;
}

.legal-main{
  background:#f7f5f0;
}

.legal-title{
  color:#111;
}

.legal-card{
  background:#fff;
  color:#171717;
  border:1px solid var(--line);
  box-shadow:0 12px 36px rgba(0,0,0,.04);
}

.legal-card section + section{
  border-top:1px solid var(--line);
}

.legal-warning{
  background:#fff9f9;
}

@media(max-width:820px){
  .hero{
    background:
      linear-gradient(rgba(255,255,255,.84),rgba(255,255,255,.9)),
      url("../images/crew_10.jpeg") center/cover no-repeat;
  }

  .overlay{
    background:
      linear-gradient(0deg,rgba(255,255,255,.97),rgba(255,255,255,.7) 64%,rgba(255,255,255,.42));
  }
}
