/* Shared content styles for the responsive Stitch pages. */
main h1,
main h2,
main h3,
main h4 {
  overflow-wrap: break-word;
  hyphens: auto;
}
.hp-service-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 24px;
}
.hp-service-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 320px;
  padding: 28px;
  border: 1px solid rgba(77, 70, 53, 0.5);
  background: #1e2020;
  color: #f8f8f8;
  text-decoration: none;
  transition: border-color 180ms ease;
}
.hp-service-card:hover,
.hp-service-card:focus-visible {
  border-color: var(--hp-logo-gold, #d78a0a);
}
.hp-service-card:focus-visible {
  outline: 2px solid var(--hp-logo-gold, #d78a0a);
  outline-offset: 4px;
}
.hp-service-number {
  display: block;
  margin-bottom: 40px;
  color: #99907c;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.hp-service-copy { margin-top: auto; }
.hp-service-card h3 {
  margin: 0 0 18px;
  font-family: "Anybody", sans-serif;
  font-size: clamp(21px, 2.1vw, 30px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.03em;
  text-transform: uppercase;
}
.hp-service-card p {
  margin: 0 0 30px;
  color: #c9c6c5;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 16px;
  line-height: 1.5;
}
.hp-service-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(215, 138, 10, 0.4);
  color: var(--hp-logo-gold, #d78a0a);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hp-service-card-featured .hp-service-number {
  color: var(--hp-logo-gold, #d78a0a);
}
.hp-service-link .material-symbols-outlined { font-size: 18px; }
.hp-section-heading {
  font-size: clamp(18px, 4.7vw, 32px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.03em;
  hyphens: none;
}
.hp-athletik-pillars h3,
.hp-season-phases h4 {
  font-size: 24px;
  line-height: 1.3;
}
.hp-testimonial-grid {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.hp-testimonial-grid::-webkit-scrollbar { display: none; }
.hp-testimonial-grid:focus-visible { outline: 2px solid var(--hp-logo-gold, #d78a0a); outline-offset: 4px; }
.hp-testimonial-grid > .hp-testimonial-card {
  flex: 0 0 88%;
  scroll-snap-align: start;
}
.hp-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 28px;
}
.hp-carousel-controls[hidden] { display: none; }
.hp-carousel-arrow {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(215, 138, 10, 0.6);
  border-radius: 999px;
  color: #e2e2e2;
  background: transparent;
  transition: background-color .2s, color .2s;
}
.hp-carousel-arrow:hover, .hp-carousel-arrow:focus-visible { background: var(--hp-logo-gold, #d78a0a); color: #050505; }
.hp-carousel-dots { display: flex; gap: 4px; }
.hp-carousel-dots button {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.hp-carousel-dots button::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(226, 226, 226, 0.35);
  transition: width .2s, background-color .2s;
}
.hp-carousel-dots button[aria-current="true"]::before { width: 22px; background: var(--hp-logo-gold, #d78a0a); }
@media (prefers-reduced-motion: reduce) { .hp-testimonial-grid { scroll-behavior: auto; } }
.hp-testimonial-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding: 28px;
  border: 1px solid rgba(77, 70, 53, 0.55);
  background: #0c0f0f;
  text-align: left;
}
.hp-testimonial-card blockquote {
  margin: 18px 0 28px;
  color: #e2e2e2;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
.hp-testimonial-card cite {
  margin-top: auto;
  color: var(--hp-logo-gold, #d78a0a);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 13px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hp-legal-shell {
  width: min(100%, 1120px);
  margin-inline: auto;
}
.hp-legal-title {
  overflow-wrap: normal;
  font-size: clamp(25px, 6vw, 68px) !important;
  hyphens: none;
  line-height: 1.06 !important;
  word-break: normal;
}
.hp-legal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}
.hp-legal-download {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border: 1px solid var(--hp-logo-gold, #d78a0a);
  color: var(--hp-logo-gold, #d78a0a);
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}
.hp-legal-download:hover,
.hp-legal-download:focus-visible {
  background: var(--hp-logo-gold, #d78a0a);
  color: #050505;
}
.hp-legal-document {
  padding: clamp(24px, 5vw, 56px);
  border: 1px solid rgba(77, 70, 53, 0.45);
  background: #1a1c1c;
}
.hp-legal-section + .hp-legal-section {
  margin-top: 64px;
}
.hp-legal-section h2 {
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(77, 70, 53, 0.55);
  color: #f8f8f8;
  font-family: "Anybody", sans-serif;
  font-size: clamp(24px, 4vw, 34px);
  font-weight: 700;
  line-height: 1.2;
  hyphens: none;
}
.hp-legal-section h3 {
  margin: 30px 0 12px;
  color: #f8f8f8;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
  hyphens: none;
}
.hp-legal-section p {
  margin: 0 0 18px;
  color: #d0cdcd;
  font-family: "Hanken Grotesk", sans-serif;
  font-size: 16px;
  line-height: 1.75;
}
.hp-legal-lines {
  overflow-wrap: anywhere;
  white-space: pre-line;
  word-break: break-word;
}
@media (max-width: 480px) {
  .hp-legal-section h2 {
    overflow-wrap: normal;
    font-size: 19px;
    letter-spacing: -0.02em;
    word-break: normal;
  }
}
@media (min-width: 700px) {
  .hp-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hp-service-card-featured { grid-column: span 2; }
  .hp-service-card-featured .hp-service-copy { max-width: 560px; }
  .hp-testimonial-grid > .hp-testimonial-card { flex-basis: calc((100% - 24px) / 2); }
  .hp-testimonial-grid { gap: 24px; }
}
@media (min-width: 1100px) {
  .hp-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hp-service-card { min-height: 380px; padding: 32px; }
  .hp-service-card-featured .hp-service-copy { max-width: 72%; }
}
@media (max-width: 767px) {
  main .hp-focus-heading { font-size: clamp(22px, 7vw, 36px); }
  .hp-season-phases h4,
  .hp-athletik-pillars h3 { font-size: 23px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  main .hp-start-title { font-size: clamp(36px, 6vw, 64px); }
}
@media (max-width: 1023px) {
  main h1 { font-size: clamp(36px, 7vw, 64px); line-height: 1.08; }
}
@media (prefers-reduced-motion: reduce) {
  .hp-service-card { transition: none; }
}

/* Datenschutz-Hinweis und Einwilligung in den Anfrageformularen */
.hp-form-note{font-size:.8125rem;line-height:1.5;color:rgb(208 197 175/.8);margin-top:.75rem}
.hp-form-note a,.hp-consent a{color:inherit;text-decoration:underline}
.hp-consent{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem;line-height:1.5;color:rgb(208 197 175);cursor:pointer}
.hp-consent input{flex:none;width:1.125rem;height:1.125rem;margin-top:.15rem;accent-color:#d4af37;cursor:pointer}

.hp-faq{border-top:1px solid rgba(212,175,55,.2)}
.hp-faq-item{border-bottom:1px solid rgba(212,175,55,.2)}
.hp-faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 0;font-weight:600;color:#f8f8f8;font-size:1.05rem}
.hp-faq-item summary::-webkit-details-marker{display:none}
.hp-faq-item summary::after{content:"+";color:#d4af37;font-size:1.5rem;line-height:1;flex-shrink:0}
.hp-faq-item[open] summary::after{content:"–"}
.hp-faq-item p{margin:0 0 1.25rem;color:rgb(208 197 175);line-height:1.6}
.hp-faq-item a{color:#d4af37;text-decoration:underline}

@media (max-width:767px){
  .auto-rows-\[250px\]{grid-auto-rows:auto}
}
/* Überschriften ohne automatische Silbentrennung; lange Wörter bleiben ganz */
h1,h2,h3{hyphens:manual;-webkit-hyphens:manual}
.hp-nowrap-word{white-space:nowrap}

/* Trainingspläne: Laufzeit-Auswahl (Handy 2×2, ab Tablet eine Reihe) */
.hp-durations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:768px){.hp-durations{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}}
.hp-duration{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:rgb(18 20 20);border:1px solid rgba(77,70,53,.5);padding:24px 20px;color:#f8f8f8;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s}
.hp-duration:hover{border-color:#d4af37}
.hp-duration:focus-visible{outline:2px solid #d4af37;outline-offset:2px}
.hp-duration[aria-pressed="true"]{border-color:#d4af37;background:#1b1806;box-shadow:inset 0 0 0 1px #d4af37}
.hp-duration-num{font-family:Anybody,sans-serif;font-weight:800;font-size:48px;line-height:1;color:#d4af37}
.hp-duration-unit{font-family:"Hanken Grotesk",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin-top:.5rem;color:#f8f8f8}
.hp-duration-note{font-size:.875rem;line-height:1.4;margin-top:.75rem;color:rgb(208 197 175)}
.hp-duration-list{display:grid;gap:1rem}
@media (min-width:768px){.hp-duration-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}}
@media (max-width:380px){.hp-duration{padding:20px 14px}.hp-duration-num{font-size:40px}}
/* Lange Einzelwörter in Überschriften: Schrift so weit verkleinern, dass das Wort in eine Zeile passt */
.hp-fit-athletik{font-size:min(1em,calc((100vw - 48px) / 9.6))}
.hp-fit-modelle{font-size:min(1em,calc((100vw - 48px) / 10))}
.hp-fit-about{font-size:min(1em,calc((100vw - 48px) / 9.8))}
@media (min-width:768px){
  .hp-fit-athletik{font-size:min(1em,5.2vw)}
  .hp-fit-about{font-size:min(1em,7.8vw)}
}
@media (min-width:1024px){
  .hp-fit-about{font-size:min(1em,3.9vw,56px)}
}
/* Startseite: „Scroll“-Hinweis nur auf großen Bildschirmen, damit er die Buttons nie überdeckt */
@media (max-width:1279px),(max-height:820px){.hp-scroll-hint{display:none!important}}
/* Startseite: Überschrift passt bei kleinen Handys und bei 1024 px ganz in die Spalte */
@media (max-width:359px){main .hp-start-title{font-size:32px}}
@media (min-width:1024px) and (max-width:1279px){main .hp-start-title{font-size:56px;line-height:1.08}}
/* Über uns, Qualifikationen: lange Wörter (Sportwissenschaften, Leistungsdiagnostik) passen ungetrennt in die Karte */
:has(> .hp-fit-qual){container-type:inline-size}
.hp-fit-qual{font-size:min(24px,7.6cqw)!important;overflow-wrap:normal;word-break:normal}
/* Titelbilder: etwas heller, Ausschnitt auf die Personen, kleinere Handy-Varianten bis 767 px */
.hp-hero-start{opacity:.55}
.hp-bg-events{opacity:.55;background-position:center 30%}
@media (min-width:768px){.hp-bg-athletik{background-position:center 68%}}
@media (max-width:767px){
  .hp-bg-start{background-image:url('../images/start-hero-mobil.webp?v=20261014p')!important}
  .hp-bg-athletik{background-image:url('../images/athletik-hero-mobil.webp?v=20261014p')!important}
  .hp-bg-events{background-image:url('../images/events-hero-mobil.webp?v=20261014p')!important;background-position:center 40%}
  .hp-bg-tests{background-image:url('../images/tests-bereiche-mobil.webp?v=20261014p')!important}
}
/* Lange Überschriften: Buchstabenabstand an die kleinere Schrift anpassen */
.hp-fit-athletik,.hp-fit-about,.hp-fit-modelle{letter-spacing:-.01em}
@media (min-width:768px) and (max-width:1023px){main .hp-start-title{line-height:1.08}}
/* Leistungstests: „Diagnostiken“ bleibt auch bei Tablet-Breite ungeteilt */
.hp-fit-diag{overflow-wrap:normal;word-break:normal}
@media (min-width:768px){.hp-fit-diag{font-size:min(48px,4.6vw)!important;line-height:1.1!important}}
/* Handy: Abstände zwischen den Abschnitten halbiert (vorher 160px oben und unten), damit man weniger scrollt */
@media (max-width:767px){
  .py-section-gap{padding-top:88px!important;padding-bottom:88px!important}
  .pb-section-gap{padding-bottom:88px!important}
  .mt-section-gap{margin-top:88px!important}
  .mb-section-gap{margin-bottom:88px!important}
  .hp-testimonial-card{padding:24px}
  .text-\[10px\]{font-size:11px}
  .pe-stat-label{font-size:10.5px!important}
}
/* Startseite Handy: ruhigerer Einstieg (kleinerer Titel ohne Trennstrich, kurzer Einleitungssatz, kompaktere Buttons) */
@media (max-width:767px){
  main .hp-start-title{font-size:clamp(28px,8.4vw,36px)!important;line-height:1.08;hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;word-break:normal}
  .hp-hide-mobile{display:none}
  main .hp-start-lead{margin-bottom:28px}
  main .hp-start-lead + div a{padding-top:14px;padding-bottom:14px}
}
/* Einheitlicher Foto-Look „Kräftig & dunkel“ (Patricia, 14.10.2026): Filter liegt nur auf der Website, Bilddateien bleiben unverändert */
main img[src*="assets/images/"],
main [style*="assets/images/"]{filter:saturate(.8) contrast(1.14) brightness(.9)!important}
