:root{
  --bg:#111; --bg-2:#1b1b1b; --bg-3:#222;
  --ink:#fff; --muted:#cfcfcf; --accent:#e53935; --focus:#7aa2ff;
  --radius:16px; --pad:16px; --pad-lg:22px;
  --maxw:1200px; --ring:rgba(255,255,255,.08);
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.4; -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:8px}

/* Topbar */
.topbar{position:sticky; top:0; z-index:60; background:var(--bg-3);
  padding:calc(env(safe-area-inset-top,0px) + 8px) var(--pad);
  box-shadow:0 1px 0 var(--ring) inset;}
.topbar-inner{margin:0 auto; max-width:var(--maxw); display:flex; align-items:center; justify-content:space-between; gap:12px;}
.brand{display:flex; align-items:center; gap:10px; font-weight:600;}
.brand img{width:28px;height:28px}
.cta-appoint{display:none;background:var(--accent);color:#fff;border:0;padding:10px 14px;border-radius:999px;font-weight:600}
.cta-mobile{display:none;background:var(--accent);color:#fff;border:0;padding:10px 14px;border-radius:999px;font-weight:700}

/* Header & Nav */
header{background:var(--bg-2)}
.nav-wrap{margin:0 auto; max-width:var(--maxw); display:flex; align-items:center; justify-content:space-between; padding:8px var(--pad); gap:10px;}
.nav-toggle{background:transparent;border:0;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nav-toggle .bar,.nav-toggle .bar::before,.nav-toggle .bar::after{
  content:"";display:block;width:22px;height:2px;background:#ddd;border-radius:2px;position:relative;transition:.2s}
.nav-toggle .bar::before{position:absolute; top:-7px}
.nav-toggle .bar::after{position:absolute; top:7px}
.nav-open .nav-toggle .bar{background:transparent}
.nav-open .nav-toggle .bar::before{transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle .bar::after{transform:translateY(-7px) rotate(-45deg)}

nav{position:fixed; inset:0 0 auto 0;
  top:calc(56px + env(safe-area-inset-top,0px));
  background:rgba(17,17,17,.96); backdrop-filter:saturate(120%) blur(8px);
  transform:translateY(-120%); transition:transform .2s ease-out;
  padding:12px var(--pad) calc(env(safe-area-inset-bottom,0px) + 16px); z-index:40;}
.nav-open nav{transform:translateY(0)}
.menu{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.menu a{display:block;padding:14px 12px;border-radius:12px;background:#171717;color:#ddd;font-weight:600;letter-spacing:.2px}
.menu a:hover{color:#fff}

/* Desktop nav */
@media (min-width:900px){
  .nav-toggle--mobile{display:none}
  nav{position:static; transform:none; background:transparent; backdrop-filter:none; padding:0;}
  .menu{display:flex; gap:0; justify-content:center; flex-wrap:wrap;}
  .menu a{background:transparent; padding:12px 14px; margin:0 6px; border-radius:999px; color:#ccc;}
  .menu a:hover{background:#2a2a2a}
  .cta-appoint{display:inline-block}
  .cta-mobile{display:none}
  header .nav-toggle{display:none}
}
@media (max-width:899.98px){
  .brand{display:none}
  .cta-appoint{display:none}
  .cta-mobile{display:inline-flex; align-items:center; gap:8px}
  header .nav-toggle{display:none}
  .nav-toggle--mobile{display:inline-flex}
}

/* Hero (homepage) */
.hero{position:relative; min-height:70svh; display:grid; place-items:center; padding:40px var(--pad-lg);
  background:linear-gradient(to right, rgba(0,0,0,.85) 10%, rgba(0,0,0,.35) 100%), url('../HOME-Marco-Hintergrund.jpg') center/cover no-repeat; isolation:isolate;}
.hero::after{content:""; position:absolute; inset:auto 0 0 0; height:120px; background:linear-gradient(to top, var(--bg), transparent); pointer-events:none; z-index:-1;}
.hero-inner{width:min(100%, var(--maxw)); display:flex; align-items:flex-start; justify-content:flex-start;}
.hero-card{background:rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius);
  padding:20px clamp(16px, 4vw, 28px); max-width:760px; box-shadow:0 20px 60px rgba(0,0,0,.45); backdrop-filter:saturate(120%) blur(2px);}
.hero h1{font-size:clamp(28px, 5.5vw, 52px); line-height:1.12; margin:0 0 10px; letter-spacing:.3px;}
.hero h1 span{color:var(--accent)}
.hero p{color:var(--muted); font-size:clamp(14px, 3.2vw, 18px); margin:4px 0 14px;}
.gym-icon{margin-top:14px}
.gym-icon img{width:64px; opacity:.85}

/* Page header strip (body-consigli) */
.page-hero{background:linear-gradient(180deg, rgba(255,255,255,.04), transparent); border-bottom:1px solid var(--ring);}
.page-hero-inner{max-width:var(--maxw); margin:0 auto; padding:22px var(--pad)}
.crumbs{color:#9c9c9c; font-size:.9rem; margin-bottom:6px}
.page-hero h1{font-size:clamp(24px, 3.8vw, 38px); margin:0; letter-spacing:.3px}
.page-hero h1 span{color:var(--accent)}

/* Layout (body-consigli) */
.wrap{max-width:var(--maxw); margin:0 auto; padding:22px var(--pad) 40px}
.grid{display:grid; grid-template-columns: 320px 1fr; gap:28px; align-items:start;}
.gallery{position:sticky; top:calc(64px + 12px); display:grid; gap:16px;}
.shot{border-radius:14px; overflow:hidden; background:#0f0f0f; border:1px solid var(--ring); box-shadow:0 10px 30px rgba(0,0,0,.35);}
.shot img{aspect-ratio:16/9; object-fit:cover; transition:transform .25s ease}
.shot:hover img{transform:scale(1.02)}

.content{background:linear-gradient(90deg, rgba(255,255,255,.035), rgba(255,255,255,0) 60%); border:1px solid var(--ring);
  border-radius:16px; padding:24px clamp(16px, 4vw, 32px); box-shadow:0 20px 60px rgba(0,0,0,.35);}
.content p{color:var(--muted); font-size:clamp(15px, 2.2vw, 18px); line-height:1.7; margin:0 0 16px;}

@media (max-width:900px){
  .grid{grid-template-columns: 1fr; gap:18px}
  .gallery{position:relative; top:auto; display:grid; grid-auto-flow:column; grid-auto-columns:75%;
    overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; gap:12px; padding-bottom:6px;}
  .shot{scroll-snap-align:start}
  .content{background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0) 60%)}
}

/* ===== Mobile polish ===== */
@media (max-width: 899.98px){
  /* Remove the empty grey bar below the topbar */
  header .nav-wrap{ display:none; }

  /* Tighter topbar button */
  .cta-mobile{
    padding:10px 12px;
    font-size:0.95rem;
    border-radius:14px;
    letter-spacing:.2px;
  }

  /* Hero: less tall, centered content, better crop */
  .hero{
    min-height:60svh;
    padding:24px var(--pad);
    background-position:55% center; /* shift a bit to avoid awkward crops */
  }
  .hero-inner{ justify-content:center; }
  .hero-card{
    padding:16px;
    border-radius:14px;
    background:rgba(0,0,0,.55);
    box-shadow:0 12px 36px rgba(0,0,0,.35);
  }
  .hero h1{ font-size:clamp(24px, 7vw, 34px); }
  .hero p{ font-size:clamp(13px, 3.8vw, 16px); margin:6px 0 10px; }
  .gym-icon img{ width:48px; opacity:.9; }
}

/* Make the mobile overlay nav always sit exactly under the topbar */
nav{ top:var(--topbar-h, 56px); }


/* Footer */
footer{background:var(--bg-3); color:#aaa; padding:18px var(--pad); text-align:center; font-size:14px;}


