:root{--bg:#000;--fg:#fff;--muted:rgba(255,255,255,.68);--line:rgba(255,255,255,.14);--panel:rgba(255,255,255,.055);--accent:#e6ff00}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#000;color:#fff;font-family:Inter,Arial,Helvetica,sans-serif}a{color:inherit}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px clamp(20px,5vw,70px);background:rgba(0,0,0,.72);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.brand{text-decoration:none;line-height:.9}.brand span{display:block;color:var(--muted);font-size:11px;letter-spacing:.28em;font-weight:900}.brand strong{display:block;font-size:28px;letter-spacing:-.06em}
.main-nav{display:flex;gap:24px;align-items:center}.main-nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900;color:rgba(255,255,255,.76)}.main-nav a:hover{color:var(--accent)}
.hero{min-height:78vh;padding:86px clamp(20px,5vw,70px);display:grid;align-items:center;position:relative;border-bottom:1px solid var(--line)}.hero:before{content:"";position:absolute;right:-15vw;top:4vh;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(circle,rgba(230,255,0,.16),transparent 62%);filter:blur(12px);pointer-events:none}.hero-copy{position:relative;z-index:2;max-width:1200px}
.eyebrow{color:var(--accent);font-size:12px;font-weight:950;letter-spacing:.28em;text-transform:uppercase;margin:0 0 18px}h1{margin:0;font-size:clamp(64px,12vw,170px);line-height:.82;letter-spacing:-.085em;font-weight:1000}h1 span{color:transparent;-webkit-text-stroke:2px #fff;text-stroke:2px #fff}h2{font-size:clamp(42px,7vw,96px);line-height:.9;letter-spacing:-.07em;margin:0 0 16px}h3{letter-spacing:-.04em}.lead{font-size:clamp(20px,2.4vw,32px);line-height:1.18;color:rgba(255,255,255,.82);max-width:840px;margin:30px 0 0;font-weight:650}.small-lead{font-size:clamp(18px,2vw,26px)}
.hero-actions,.form-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.button,button.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:14px 18px;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:950;cursor:pointer}.button.primary,button.button.primary{background:#fff;color:#000;border-color:#fff}.button.ghost{background:transparent;color:#fff}
.anthem-card{position:absolute;right:clamp(24px,5vw,72px);bottom:clamp(22px,4vw,46px);width:min(310px,calc(100% - 48px));padding:18px 20px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(10,10,10,.62);backdrop-filter:blur(16px);box-shadow:0 24px 80px rgba(0,0,0,.35);z-index:5}.anthem-card span{display:block;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.26em;text-transform:uppercase;margin-bottom:8px}.anthem-card strong{display:block;font-size:17px;line-height:1.1;letter-spacing:-.02em;margin-bottom:12px}.anthem-card div{display:flex;flex-wrap:wrap;gap:8px}.anthem-card a{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 10px;color:rgba(255,255,255,.82);font-size:12px;font-weight:800;text-decoration:none}.anthem-card a:hover{background:#fff;border-color:#fff;color:#000}
.ticker{display:flex;gap:28px;overflow:hidden;white-space:nowrap;border-bottom:1px solid var(--line);padding:17px clamp(20px,5vw,70px);color:rgba(255,255,255,.72);font-size:12px;font-weight:950;letter-spacing:.2em}.content-section{padding:76px clamp(20px,5vw,70px);border-bottom:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1fr minmax(240px,520px);gap:40px;align-items:end;margin-bottom:34px}.section-head p:not(.eyebrow){color:var(--muted);font-size:18px;line-height:1.45;margin:0}
.spotify-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px}.spotify-card{min-height:350px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(255,255,255,.045));border:1px solid rgba(255,255,255,.09);padding:18px;transition:.22s ease}.spotify-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.12)}.spotify-card.is-featured{grid-row:span 2}.album-art{height:180px;border-radius:22px;background:radial-gradient(circle at 30% 25%,rgba(230,255,0,.7),transparent 30%),linear-gradient(135deg,#3b3b3b,#050505);display:flex;align-items:end;padding:16px;margin-bottom:18px}.album-art span{font-size:48px;font-weight:1000;letter-spacing:-.08em;color:#000}.card-meta{display:flex;justify-content:space-between;gap:12px;color:var(--accent);font-size:11px;font-weight:950;letter-spacing:.15em;text-transform:uppercase}.spotify-card h3{font-size:27px;margin:14px 0 10px}.spotify-card p,.route-card p{color:rgba(255,255,255,.72);line-height:1.4}.spotify-card a,.route-actions a,.external-club-link{font-size:13px;font-weight:900;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.inverted-block{background:#fff;color:#000}.inverted-block .eyebrow{color:#000}.inverted-block .section-head p:not(.eyebrow),.inverted-block .club-row p{color:rgba(0,0,0,.62)}.club-list{display:grid;gap:14px}.club-row{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;border-top:1px solid rgba(0,0,0,.14);padding:22px 0}.club-row h3{font-size:32px;margin:0 0 7px}.club-row p{margin:0}.club-side{display:flex;align-items:flex-end;gap:10px;flex-direction:column}.club-side span{border:1px solid rgba(0,0,0,.18);border-radius:999px;padding:9px 13px;font-size:12px;font-weight:900}.club-side a{color:#000;border-color:rgba(0,0,0,.35)}
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.route-card{border:1px solid rgba(255,255,255,.1);background:var(--panel);border-radius:28px;padding:22px;min-height:310px}.route-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:20px}.route-top strong{font-size:54px;letter-spacing:-.08em}.route-top span{border:1px solid var(--line);border-radius:999px;padding:8px 10px;font-size:12px;font-weight:900;color:rgba(255,255,255,.8)}.route-card h3{font-size:30px;margin:0 0 10px}.route-facts{display:grid;gap:10px;margin:20px 0}.route-facts div{display:grid;grid-template-columns:86px 1fr;gap:10px}.route-facts dt{color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:900}.route-facts dd{margin:0;color:rgba(255,255,255,.72)}.route-actions{display:flex;gap:14px;flex-wrap:wrap}
.cta{text-align:center;padding:96px clamp(20px,5vw,70px);border-bottom:1px solid var(--line)}.cta h2{max-width:1000px;margin-left:auto;margin-right:auto}.cta .lead{margin-left:auto;margin-right:auto}.cta-actions{margin-top:24px}.site-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--muted);padding:32px clamp(20px,5vw,70px)}.site-footer a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28)}
.form-card,.admin-card{background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}label{display:grid;gap:8px;color:rgba(255,255,255,.76);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}input,select,textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px 16px;color:#fff;font:inherit}textarea{min-height:130px;resize:vertical}
.admin-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;padding:36px clamp(20px,5vw,70px)}.admin-menu{display:grid;gap:10px;align-content:start}.admin-menu a{padding:13px 14px;border:1px solid var(--line);border-radius:16px;text-decoration:none;font-weight:900}.admin-menu a:hover{background:#fff;color:#000}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}.table th{color:var(--accent);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.notice{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:16px;margin:16px 0}
@media(max-width:980px){.section-head,.spotify-grid,.route-grid,.admin-layout{grid-template-columns:1fr}.spotify-card.is-featured{grid-row:auto}.main-nav{display:none}}@media(max-width:720px){h1{font-size:64px}h1 span{-webkit-text-stroke:1px #fff}.hero{min-height:auto;padding-bottom:54px}.anthem-card{position:relative;right:auto;bottom:auto;margin-top:28px}.club-row{grid-template-columns:1fr}.club-side{align-items:flex-start}.form-grid{grid-template-columns:1fr}}


/* Select dropdown contrast fix */
select,
select option {
  background:#111;
  color:#fff;
}

select option:checked,
select option:hover {
  background:#222;
  color:#fff;
}


/* RUN CITY Route Finder */
.route-finder{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:end;
  margin:0 0 28px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:28px;
  background:rgba(255,255,255,.055);
}
.route-finder h3{
  font-size:32px;
  margin:0 0 10px;
}
.route-finder p{
  color:rgba(255,255,255,.68);
  line-height:1.45;
  margin:0;
}
.route-finder-controls{
  display:flex;
  gap:12px;
  align-items:end;
  flex-wrap:wrap;
}
.route-finder-controls label{
  min-width:220px;
  flex:1;
}
.route-finder-status{
  grid-column:1/-1;
  color:rgba(255,255,255,.7);
  font-size:14px;
  margin-top:2px !important;
}
.route-bucket{
  display:inline-flex;
  width:max-content;
  margin:0 0 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:6px 9px;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}
.user-distance{
  margin-top:14px;
  color:#fff;
  font-weight:900;
  font-size:13px;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:12px;
}
@media(max-width:780px){
  .route-finder{grid-template-columns:1fr}
}


/* Mobile Floating Quick Navigation */
.mobile-quick-nav{
  display:none;
}

@media(max-width:980px){
  .site-header{
    position:sticky;
    top:0;
    z-index:40;
  }

  .mobile-quick-nav{
    position:sticky;
    top:77px;
    z-index:35;
    display:flex;
    gap:8px;
    justify-content:center;
    padding:10px 14px 12px;
    background:rgba(0,0,0,.78);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
  }

  .mobile-quick-nav a{
    flex:1;
    max-width:128px;
    text-align:center;
    text-decoration:none;
    color:#fff;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    padding:10px 12px;
    font-size:11px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
    background:rgba(255,255,255,.055);
  }

  .mobile-quick-nav a:hover,
  .mobile-quick-nav a:focus{
    background:#fff;
    color:#000;
    border-color:#fff;
  }

  .hero{
    padding-top:54px;
  }

  .content-section{
    padding-top:58px;
  }
}

@media(max-width:420px){
  .mobile-quick-nav{
    top:73px;
    padding-left:10px;
    padding-right:10px;
  }

  .mobile-quick-nav a{
    font-size:10px;
    padding:9px 8px;
    letter-spacing:.1em;
  }
}


/* iPhone horizontal overflow / jumping fix */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

body{
  position:relative;
}

main,
section,
.site-header,
.mobile-quick-nav,
.hero,
.content-section,
.cta,
.site-footer{
  max-width:100%;
  overflow-x:clip;
}

.hero-copy,
.section-head,
.spotify-grid,
.club-list,
.route-grid,
.route-finder,
.form-card,
.admin-card{
  min-width:0;
  max-width:100%;
}

h1,
h2,
h3,
.lead,
.section-head p,
.spotify-card p,
.route-card p,
.club-row p{
  overflow-wrap:anywhere;
}

@media(max-width:720px){
  .site-header{
    padding-left:16px;
    padding-right:16px;
  }

  .brand strong{
    font-size:24px;
  }

  h1{
    font-size:clamp(52px,18vw,74px);
    line-height:.86;
    letter-spacing:-.075em;
  }

  h2{
    font-size:clamp(38px,14vw,64px);
  }

  .hero,
  .content-section,
  .cta,
  .site-footer{
    padding-left:16px;
    padding-right:16px;
  }

  .album-art span{
    font-size:clamp(34px,14vw,48px);
  }

  .route-top strong{
    font-size:clamp(38px,15vw,54px);
  }

  .spotify-card,
  .route-card,
  .form-card,
  .admin-card,
  .route-finder,
  .anthem-card{
    width:100%;
    max-width:100%;
  }

  .mobile-quick-nav{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .mobile-quick-nav a{
    min-width:0;
  }
}


/* iPhone fixed header + visible floating menu fix */
@media(max-width:980px){
  body{
    padding-top:0;
  }

  .site-header{
    position:sticky !important;
    top:0 !important;
    z-index:1000 !important;
    min-height:72px;
    height:auto;
    padding-top:14px !important;
    padding-bottom:14px !important;
    overflow:visible !important;
  }

  .brand{
    display:block;
    min-width:0;
  }

  .brand span{
    font-size:10px;
    line-height:1.1;
  }

  .brand strong{
    font-size:24px;
    line-height:.9;
  }

  .mobile-quick-nav{
    position:sticky !important;
    top:72px !important;
    z-index:999 !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    gap:8px;
    justify-content:center;
    width:100%;
    max-width:100vw;
    padding:9px 12px 10px;
    background:rgba(0,0,0,.86);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    overflow:hidden;
  }

  .mobile-quick-nav a{
    flex:1 1 0;
    min-width:0;
    max-width:none;
    text-align:center;
    text-decoration:none;
    color:#fff;
    border:1px solid rgba(255,255,255,.16);
    border-radius:999px;
    padding:9px 8px;
    font-size:10px;
    line-height:1;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
    background:rgba(255,255,255,.055);
  }

  .mobile-quick-nav a:active,
  .mobile-quick-nav a:focus{
    background:#fff;
    color:#000;
  }

  .hero{
    padding-top:44px !important;
  }
}

@media(min-width:981px){
  .mobile-quick-nav{
    display:none !important;
  }
}

@supports (padding-top: env(safe-area-inset-top)){
  @media(max-width:980px){
    .site-header{
      padding-top:calc(14px + env(safe-area-inset-top)) !important;
    }

    .mobile-quick-nav{
      top:calc(72px + env(safe-area-inset-top)) !important;
    }
  }
}

/* Locate button visibility fix */
.route-finder-controls .button,
#useLocationBtn{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}


/* RUN CITY iPhone true floating nav fix */
@media(max-width:980px){
  .site-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    z-index:5000 !important;
    min-height:72px !important;
    padding-top:14px !important;
    padding-bottom:14px !important;
    background:rgba(0,0,0,.94) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    transform:translateZ(0);
  }

  .mobile-quick-nav{
    position:fixed !important;
    top:72px !important;
    left:0 !important;
    right:0 !important;
    z-index:4999 !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    gap:8px;
    justify-content:center;
    width:100vw !important;
    max-width:100vw !important;
    padding:9px 12px 10px !important;
    background:rgba(0,0,0,.92) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    overflow:hidden;
    transform:translateZ(0);
  }

  .mobile-quick-nav a{
    flex:1 1 0;
    min-width:0;
    max-width:none;
    text-align:center;
    text-decoration:none;
    color:#fff;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    padding:10px 8px;
    font-size:10px;
    line-height:1;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
    background:rgba(255,255,255,.06);
  }

  main#top{
    padding-top:132px !important;
  }

  .hero{
    padding-top:42px !important;
  }
}

@media(min-width:981px){
  .mobile-quick-nav{
    display:none !important;
  }
}

@supports (padding-top: env(safe-area-inset-top)){
  @media(max-width:980px){
    .site-header{
      padding-top:calc(14px + env(safe-area-inset-top)) !important;
      min-height:calc(72px + env(safe-area-inset-top)) !important;
    }

    .mobile-quick-nav{
      top:calc(72px + env(safe-area-inset-top)) !important;
    }

    main#top{
      padding-top:calc(132px + env(safe-area-inset-top)) !important;
    }
  }
}

/* Nearby route rule visual note */
.route-finder-status{
  min-height:1.4em;
}

/* RUN CITY TABLET HERO SVG CLEANUP START
   Tablet-Zone: styles.css wechselt bis 980px schon in mobile/tablet Header-Regeln,
   die SVG-Hero-Headline aus index.php greift aber ab 721px. Dieser Zwischenbereich
   braucht eigene Werte, damit HANNOVER. nicht zu dick/verschnörkelt wirkt. */
@media (min-width:721px) and (max-width:980px){
  .hero .hero-title-svg-wrap{
    width:min(690px, calc(100vw - 42px)) !important;
    max-width:min(690px, calc(100vw - 42px)) !important;
  }

  .hero .hero-title-svg{
    width:100% !important;
    height:auto !important;
    overflow:visible !important;
  }

  .hero svg.hero-title-svg text.hero-svg-fill{
    letter-spacing:-5px !important;
  }

  .hero svg.hero-title-svg text.hero-svg-outline{
    fill:#000 !important;
    -webkit-text-fill-color:#000 !important;
    stroke:#fff !important;
    stroke-opacity:.98 !important;
    stroke-width:1.05px !important;
    letter-spacing:2px !important;
    paint-order:stroke fill !important;
    stroke-linejoin:round !important;
    stroke-linecap:round !important;
  }
}

/* iPad quer / größere Tablets: etwas kräftiger, aber weiterhin sauber */
@media (min-width:981px) and (max-width:1180px){
  .hero svg.hero-title-svg text.hero-svg-outline{
    fill:#000 !important;
    -webkit-text-fill-color:#000 !important;
    stroke:#fff !important;
    stroke-opacity:.98 !important;
    stroke-width:1.55px !important;
    letter-spacing:1.4px !important;
    paint-order:stroke fill !important;
  }
}
/* RUN CITY TABLET HERO SVG CLEANUP END */

