/*
Theme Name:   RED GYM Fitness
Template:     hello-elementor
Version:      1.0.2
Text Domain:  red-gym-fitness
*/

/* =================================================================
   1. TOKENS
   ================================================================= */
:root{
  --rgf-ease: cubic-bezier(.22,.61,.36,1);
  --rgf-dur:  .3s;
  --rgf-reveal-dur: .65s;
  --rgf-reveal-dist: 16px;
  --rgf-reveal-stagger: 110ms;
}

/* =================================================================
   2. GLOBAL / RESET
   ================================================================= */
html, body{ overflow-x:clip; }

.elementor h1.e-heading-base,
.elementor h2.e-heading-base,
.elementor h3.e-heading-base{ margin:0; }

.p-no-margin p{ margin-block:0; }

/* Scrollbar Farbe */
::-webkit-scrollbar {
  width: 14px;
}

::-webkit-scrollbar-track {
  background: #0a0a0b;
}

::-webkit-scrollbar-thumb {
  background: #E10600;
  border-radius: 14px;
}

::-webkit-scrollbar-thumb:hover {
  background: #b80500;
}

/* Firefox */
html {
  scrollbar-color: #E10600 #0a0a0b;
  scrollbar-width: thin;
}
/* =================================================================
   3. TYPOGRAFIE
   ================================================================= */
.rgf-h1, .rgf-h2, .rgf-h3{
  font-family:var(--rgf-font-display,"Anton",sans-serif);
  font-weight:400;
  text-transform:uppercase;
  line-height:1.04;
  margin:0;
  text-wrap:balance;
  color:#fff;
}
.rgf-h1{ font-size:var(--rgf-h1); }
.rgf-h2{ font-size:var(--rgf-h2); line-height:1.08; }
.rgf-h3{ font-size:var(--rgf-h3); line-height:1.12; }

.rgf-sub{
  font-family:var(--rgf-font-text,sans-serif);
  font-size:var(--rgf-body);
  line-height:1.55;
  color:var(--rgf-text-muted,#9a9aa2);
  margin:0;
  max-width:var(--rgf-measure,72ch);
}

.rgf-eyebrow{
  display:inline-flex; align-items:center; gap:.85em;
  font-family:var(--rgf-font-text,sans-serif);
  font-size:var(--rgf-eyebrow);
  font-weight:700; text-transform:uppercase; letter-spacing:.18em;
  color:var(--rgf-red,#e10600);
  margin:0; line-height:1;
}
.rgf-eyebrow::before{
  content:""; flex:none;
  width:86px; height:8px;
  background-image:
    linear-gradient(currentColor,currentColor),
    linear-gradient(currentColor,currentColor),
    linear-gradient(currentColor,currentColor),
    linear-gradient(currentColor,currentColor);
  background-repeat:no-repeat;
  background-size:26px 6px, 12px 6px, 12px 6px, 12px 6px;
  background-position:0 center, 34px center, 54px center, 74px center;
  transform:translateY(.06em) skewX(-20deg);
  transform-origin:left center;
}
.rgf-hero .rgf-eyebrow-h1{ color:#fff; }
.rgf-hero .rgf-eyebrow-h1::before{ color:var(--rgf-red,#e10600); }
.rgf-eyebrow-center{
  display:flex; align-items:center; justify-content:center; text-align:center;
  gap:clamp(12px,2vw,24px);
  font-family:var(--rgf-font-text,sans-serif);
  font-size:var(--rgf-eyebrow);
  font-weight:700; text-transform:uppercase; letter-spacing:.22em;
  color:var(--rgf-text-muted,#9a9aa2);
  margin:0; line-height:1;
}
.rgf-eyebrow-center::before,
.rgf-eyebrow-center::after{ content:""; height:1px; flex:1 1 auto; max-width:220px; }
.rgf-eyebrow-center::before{ background:linear-gradient(90deg, transparent, var(--rgf-red,#e10600)); }
.rgf-eyebrow-center::after { background:linear-gradient(90deg, var(--rgf-red,#e10600), transparent); }

/* =================================================================
   4. LINKS  (Seiteninhalt + Footer – Header & Off-Canvas ausgenommen)
   ================================================================= */

/* Scope = Seiteninhalt + Footer. Header/Off-Canvas bewusst NICHT enthalten. */
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a{
  color:#fff;
  text-decoration:none;
  background-image:
    linear-gradient(var(--rgf-red,#e10600), var(--rgf-red,#e10600)),
    linear-gradient(rgba(255,255,255,.35), rgba(255,255,255,.35));
  background-repeat:no-repeat,no-repeat;
  background-position:0 100%,0 100%;
  background-size:0% 1.5px,100% 1.5px;
  padding-bottom:.1em;
  transition: background-size var(--rgf-dur,.3s) var(--rgf-ease,ease),
              color var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a:hover,
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a:focus-visible{
  background-size:100% 1.5px,100% 1.5px;
}
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a:focus-visible{
  outline:2px solid var(--rgf-red,#e10600); outline-offset:3px; border-radius:2px;
}

/* Reset: Buttons / CTAs / Off-Canvas-Menülinks → nur Linie weg, Padding NICHT anfassen */
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a.rgf-btn,
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a.elementor-button,
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a.e-button-base,
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a.rxg-bundles__cta,
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a.rxg-menu__item{
  background-image:none;
}

/* Reset: Links mit Bild/Icon/Logo → Linie weg + Padding weg (echte Text-Link-Reste) */
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a:has(img),
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a:has(svg),
:is(main, [data-elementor-type="wp-page"], .elementor-location-single, .elementor-location-footer) a[class*="logo"]{
  background-image:none; padding-bottom:0;
}

/* Footer-Navigation (Icon-List): keine Default-Linie, nur rote Hover-Linie */
.elementor-location-footer .elementor-icon-list-item a{
  background-image:linear-gradient(var(--rgf-red,#e10600), var(--rgf-red,#e10600));
  background-repeat:no-repeat; background-position:0 100%;
  background-size:0% 1.5px; padding-bottom:.1em;
}
.elementor-location-footer .elementor-icon-list-item a:hover,
.elementor-location-footer .elementor-icon-list-item a:focus-visible{
  background-size:100% 1.5px;
}
/* CTA-Buttons der Tarif-Cards: nie Link-Styling */
a.rxg-bundles__cta.rxg-bundles__cta{
  background-image:none !important;
  padding-bottom:15.2px !important;
}
a.rxg-tb {
    padding-bottom: 11px !important;
}
/* =================================================================
   5. HEADER
   ================================================================= */
.rgf-hdr{
  background-color:transparent;
  transition: background-color .3s ease, backdrop-filter .3s ease;
}
.rgf-hdr--solid{
  background-color:rgba(10,10,10,.7);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.rgf-hdr .elementor-icon{ display:flex; align-items:center; justify-content:center; }
.rgf-hdr .elementor-icon svg{ display:block; }

/* Header verstecken, solange ein Fullscreen-Overlay offen ist */
body:has(.rxg-lb.is-open) .rgf-hdr,
body:has(.rxg-bundles__modal:not([hidden])) .rgf-hdr{
  opacity:0; pointer-events:none;
}
/* =================================================================
   6. BUTTONS
   ================================================================= */
.rgf-btn.rgf-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--rgf-font-text,"Inter",sans-serif);
  font-size:clamp(14px,1.3vw,16px);
  font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  line-height:1; text-decoration:none; cursor:pointer;
  padding:.95em 1.9em;
  border:2px solid transparent;
  border-radius:0;
  transition: transform var(--rgf-dur,.3s) var(--rgf-ease,ease),
              background-color var(--rgf-dur,.3s) var(--rgf-ease,ease),
              color var(--rgf-dur,.3s) var(--rgf-ease,ease),
              border-color var(--rgf-dur,.3s) var(--rgf-ease,ease),
              box-shadow var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
.rgf-btn.rgf-btn:focus-visible{ outline:2px solid var(--rgf-red,#e10600); outline-offset:3px; }

.rgf-btn--primary.rgf-btn--primary{
  background-color:var(--rgf-red,#e10600);
  border-color:var(--rgf-red,#e10600);
  color:#fff;
  box-shadow:0 4px 22px -4px color-mix(in srgb, var(--rgf-red,#e10600) 55%, transparent);
}
.rgf-btn--primary.rgf-btn--primary:hover{
  background-color:var(--rgf-red-hot,#ff2a17);
  border-color:var(--rgf-red-hot,#ff2a17);
  transform:translateY(-2px);
  box-shadow:0 8px 34px -2px color-mix(in srgb, var(--rgf-red,#e10600) 78%, transparent);
}
.rgf-btn--primary.rgf-btn--primary:active{ transform:translateY(1px); }

.rgf-btn--outline.rgf-btn--outline{
  background-color:transparent;
  border-color:rgba(255,255,255,.65);
  color:#fff;
}
.rgf-btn--outline.rgf-btn--outline:hover{ background-color:#fff; border-color:#fff; color:#0a0a0c; }
.rgf-btn--outline.rgf-btn--outline:active{ transform:translateY(1px); }

@media (prefers-reduced-motion:reduce){
  .rgf-btn--primary.rgf-btn--primary:hover,
  .rgf-btn--outline.rgf-btn--outline:hover{ transform:none; }
}

/* =================================================================
   7. HERO
   ================================================================= */
.rgf-hero{ position:relative; min-height:100svh; }

/* Video + Overlay füllen den kompletten Hero */
.rgf-hero > .elementor-widget-video,
.rgf-hero .rgf-hero-overlay{ position:absolute; inset:0; }
.rgf-hero > .elementor-widget-video{ z-index:0; }
.rgf-hero .rgf-hero-overlay{ z-index:1; pointer-events:none;
  background:
    linear-gradient(180deg, #0a0a0c99 0%, #0a0a0c26 45%, #0a0a0ccc 100%),
    linear-gradient(90deg,  #0a0a0cd9, #0a0a0c1a 70%);
}
.rgf-hero .elementor-video,
.rgf-hero video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* Content-Layer */
.rgf-hero-content{
  position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; justify-content:flex-end;
  gap:clamp(1.5rem,4vh,3rem);
  padding-inline:var(--rgf-gutter);
  padding-block:clamp(2rem,5vh,4rem);
  pointer-events:none;
}
.rgf-hero-content > *{ pointer-events:auto; }

/* Deko-Labels */
.rgf-hero-side{
  position:absolute; top:50%; right:clamp(6px,1.2vw,20px); transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-family:var(--rgf-font-text,sans-serif); font-size:clamp(10px,.85vw,12px);
  font-weight:700; letter-spacing:.35em; text-transform:uppercase;
  color:rgba(255,255,255,.5); white-space:nowrap;
  pointer-events:none; user-select:none; z-index:3;
}
.rgf-hero-scroll{
  position:absolute; right:clamp(6px,1.2vw,20px); bottom:clamp(16px,3vh,30px);
  writing-mode:vertical-rl;
  font-family:var(--rgf-font-text,sans-serif); font-size:clamp(9px,.8vw,11px);
  font-weight:700; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(255,255,255,.5);
  pointer-events:none; user-select:none; z-index:3;
}
.rgf-hero-scroll::before{
  content:""; position:absolute; bottom:100%; left:50%; margin-left:-.5px; margin-bottom:12px;
  width:1px; height:56px; background:linear-gradient(var(--rgf-red,#e10600), transparent);
  transform-origin:top; animation:rgf-scrollline 1.8s var(--rgf-ease,ease) infinite;
}
@keyframes rgf-scrollline{
  0%{ transform:scaleY(0); transform-origin:top; }
  40%{ transform:scaleY(1); transform-origin:top; }
  60%{ transform:scaleY(1); transform-origin:bottom; }
  100%{ transform:scaleY(0); transform-origin:bottom; }
}
@media (prefers-reduced-motion:reduce){
  .rgf-hero-scroll::before{ animation:none; transform:scaleY(1); transform-origin:top; }
}

/* Meta-Leiste */
.rgf-hairline{
  border-block-start:1px solid var(--rgf-border,rgba(255,255,255,.14));
  padding-block-start:clamp(14px,2vh,22px);
}
.rgf-meta{ display:flex; flex-wrap:wrap; gap:clamp(24px,5vw,72px); align-items:flex-start; }
.rgf-meta > *{ flex:0 0 auto; width:auto; display:flex; flex-direction:column; gap:.35em; }
.rgf-meta__label{
  font-family:var(--rgf-font-bebas,"Bebas Neue",sans-serif);
  font-size:14px; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  color:var(--rgf-text-muted,#9a9aa2); margin:0; line-height:1;
}
.rgf-meta__value{
  font-family:var(--rgf-font-display,"Anton",sans-serif);
  font-size:20px; font-weight:400; color:#fff; margin:0; line-height:1;
}
.rgf-meta__today{ justify-content:space-between; align-items:flex-start; }
.rgf-meta__today > div{
  display:flex; flex-direction:column; gap:.3em; align-items:flex-end; margin-left:auto;
}

/* Status-Badge */
.rgf-status{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--rgf-font-bebas,"Bebas Neue",sans-serif);
  font-size:14px; letter-spacing:.12em; text-transform:uppercase; line-height:1;
}
.rgf-status::before{
  content:""; flex:none; width:9px; height:9px; border-radius:50%; background:#888;
  position:relative; top:-.10em;
}
.rgf-status--open{ color:#fff; }
.rgf-status--open::before{ background:#22c55e; animation:rgf-pulse 2s var(--rgf-ease,ease) infinite; }
.rgf-status--soon{ color:#fff; }
.rgf-status--soon::before{ background:#f59e0b; animation:none; }
.rgf-status--closed{ color:var(--rgf-text-muted,#9a9aa2); }
.rgf-status--closed::before{ background:var(--rgf-red,#e10600); }
@keyframes rgf-pulse{
  0%{ box-shadow:0 0 0 0 rgba(34,197,94,.55); }
  70%{ box-shadow:0 0 0 7px rgba(34,197,94,0); }
  100%{ box-shadow:0 0 0 0 rgba(34,197,94,0); }
}
@media (prefers-reduced-motion:reduce){ .rgf-status--open::before{ animation:none; } }

/* =================================================================
   8. SECTION-DIVIDER
   ================================================================= */
.rgf-divider{ position:relative; }
.rgf-divider::before{
  content:""; position:absolute; top:-1px; left:50%; transform:translateX(-50%);
  width:min(84%,1240px); height:1px;
  background:linear-gradient(90deg, transparent, var(--rgf-red,#e10600), transparent);
  box-shadow:0 0 16px color-mix(in srgb, var(--rgf-red,#e10600) 40%, transparent);
  pointer-events:none;
}

/* =================================================================
   9. PARTNER-LOGOS
   ================================================================= */
.rgf-partners.rgf-partners{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:clamp(32px,6vw,80px);
}
.rgf-partners img.rgf-partner,
.rgf-partner.rgf-partner{
  height:clamp(28px,3.5vw,44px) !important;
  width:auto !important; max-width:none !important; aspect-ratio:auto !important;
  object-fit:contain;
  filter:grayscale(1) brightness(0) invert(1);
  opacity:.55;
  transition: opacity var(--rgf-dur,.3s) var(--rgf-ease,ease),
              filter   var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
.rgf-partner.rgf-partner:hover{ filter:none; opacity:1; }

/* =================================================================
   10. INFOBAR
   ================================================================= */
.rgf-infobar{
  display:grid; grid-template-columns:repeat(3,1fr); margin-top:auto;
  border:0;
  border-top:1px solid var(--rgf-border,rgba(255,255,255,.12));   /* nur oben */
}
.rgf-infobar > *{
  display:flex; flex-direction:column; gap:.5em;
  padding:clamp(16px,2vw,24px);
  border-left:1px solid var(--rgf-border,rgba(255,255,255,.12));
}
.rgf-infobar > *:first-child{ border-left:0; padding-left:0; }    /* bündig zur Map */
.rgf-infobar .rgf-meta__value{ line-height:1.4; }

/* Telefon-Extra-Wrapper neutralisieren → Wert wird direktes Flex-Kind */
.rgf-infobar > * > div{ display:contents; }

/* Linke Kontaktspalte: Map füllt die Resthöhe → kein schwarzer Balken unten */
.e-con:has(> .rgf-infobar){
  display:flex;
  flex-direction:column;
}
.e-con:has(> .rgf-infobar) > .elementor-widget-html{
  flex:1 1 auto;
  min-height:0;
  display:flex;              /* macht .rxg-map zum Flex-Kind */
}
.e-con:has(> .rgf-infobar) .rxg-map{
  flex:1 1 auto;             /* statt nur min-height → füllt die Spalte */
}
/* =================================================================
   11. UTILITIES
   ================================================================= */
@media (max-width:767px){ .rgf-hide-mobile{  display:none !important; } }
@media (min-width:768px){ .rgf-hide-desktop{ display:none !important; } }
/* Zentrierter Inhalt mit Max-Breite – auf den INHALT-Wrapper, nicht die Section */
.rgf-wrap{
  width:100%;
  max-width:var(--rgf-content,1320px);
  margin-inline:auto;
  padding-inline:var(--rgf-gutter);
}

/* =================================================================
   12. VIEW TRANSITIONS
   ================================================================= */
@view-transition{ navigation:auto; }
::view-transition-old(root),
::view-transition-new(root){ animation-duration:.5s; animation-timing-function:ease; }
::view-transition-old(root){ animation-name:slide-out-to-left; }
::view-transition-new(root){ animation-name:slide-in-from-right; }
html:active-view-transition-type(back)::view-transition-old(root){ animation-name:slide-out-to-right; }
html:active-view-transition-type(back)::view-transition-new(root){ animation-name:slide-in-from-left; }
@keyframes slide-in-from-right{ from{ transform:translateX(100%); } }
@keyframes slide-out-to-left  { to  { transform:translateX(-100%); } }
@keyframes slide-in-from-left { from{ transform:translateX(-100%); } }
@keyframes slide-out-to-right { to  { transform:translateX(100%); } }
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){ animation:none !important; }
}

/* =================================================================
   13. SCROLL-REVEAL
   ================================================================= */
.rgf-js .rgf-reveal{
  opacity:0;
  transform:translateY(var(--rgf-reveal-dist,16px));
  transition: opacity var(--rgf-reveal-dur,.65s) var(--rgf-ease,ease),
              transform var(--rgf-reveal-dur,.65s) var(--rgf-ease,ease);
}
.rgf-js .rgf-reveal--left { transform:translateX(calc(-1 * var(--rgf-reveal-dist,16px))); }
.rgf-js .rgf-reveal--right{ transform:translateX(var(--rgf-reveal-dist,16px)); }
.rgf-js .rgf-reveal--scale{ transform:scale(.96); }
.rgf-js .rgf-reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  .rgf-js .rgf-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* =================================================================
   14. RESPONSIVE (≤ 767px)
   ================================================================= */
@media (max-width:767px){
  .rgf-hero-side, .rgf-hero-scroll{ display:none; }
  .rgf-hero-content{ justify-content:center; }
@media (max-width:767px){
  .rgf-eyebrow{
    flex-direction:column;       /* Striche über den Text */
    align-items:flex-start;      /* linksbündig */
    gap:.7em;
  }
  .rgf-eyebrow::before{
    width:clamp(120px,40vw,180px);   /* Striche breiter → „volle Breite"-Wirkung */
  }
}

  .rgf-hero-actions.rgf-hero-actions{ flex-direction:column; align-items:stretch; }
  .rgf-hero-actions.rgf-hero-actions .rgf-btn{ width:100%; }

  .rgf-meta.rgf-meta{ flex-direction:column; gap:0; }
  .rgf-meta.rgf-meta > *{
    flex-direction:row; justify-content:space-between; align-items:baseline;
    width:100%; padding-block:14px;
    border-block-start:1px solid var(--rgf-border,rgba(255,255,255,.14));
  }
  .rgf-meta.rgf-meta > *:first-child{ border-block-start:0; }
  .rgf-meta__value{ white-space:nowrap; font-size: 16px !important;}
  .rgf-meta__label{ flex:none; }
  .rgf-meta__today > div{ text-align:right; }

  .rgf-infobar{ grid-template-columns:1fr; }
  .rgf-infobar > *{ border-left:0; border-top:1px solid var(--rgf-border,rgba(255,255,255,.12)); }
  .rgf-infobar > *:first-child{ border-top:0; }
}

.rgf-bg-section{ position:relative; isolation:isolate; }

.rgf-bg-section::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,8,10,.65) 0%, rgba(8,8,10,.95) 100%);
}

/* Inhalt über das Overlay heben */
.rgf-bg-section > *{ position:relative; z-index:1; }


/* =================================================================
   15.  Atomic Form 
   ================================================================= */
/* === RED GYM – Atomic Form === */
.rgf-form{
  --_red:     var(--rgf-red, #e30613);
  --_red-hot: var(--rgf-red-hot, #ff1a2e);
  --_border:  var(--rgf-border, #2a2a2a);
  --_muted:   var(--rgf-text-muted, #9a9a9a);
  --_dur:     var(--rgf-dur, .3s);
  --_ease:    var(--rgf-ease, ease);
}

/* Inputs + Textarea – exakt nach OnePage */
.rgf-form.rgf-form .e-form-input-base,
.rgf-form.rgf-form .e-form-textarea-base{
  width:100%;
  font-family:var(--rgf-font-text, inherit);
  font-size:15.5px;
  color:var(--rgf-text, #fff);
  background-color:#121215;
  border:1px solid rgba(247,247,248,.16);   /* = #F7F7F829 */
  border-radius:0;
  padding:13px 15px;
  line-height:1.4;
  transition:border-color 200ms ease, box-shadow 200ms ease;
  height: 47px;
  box-sizing:border-box;
}
.rgf-form.rgf-form .e-form-textarea-base{ min-height:9rem; resize:vertical; }

/* Placeholder */
.rgf-form.rgf-form .e-form-input-base::placeholder,
.rgf-form.rgf-form .e-form-textarea-base::placeholder{ color:var(--_muted); opacity:1; }

/* Focus – roter Border, passend zur OnePage-Transition */
.rgf-form.rgf-form .e-form-input-base:focus,
.rgf-form.rgf-form .e-form-textarea-base:focus{
  outline:none; border-color:var(--_red); box-shadow:0 0 0 1px var(--_red);
}

.rgf-form.rgf-form .e-form-input-base:-webkit-autofill,
.rgf-form.rgf-form .e-form-input-base:-webkit-autofill:hover,
.rgf-form.rgf-form .e-form-input-base:-webkit-autofill:focus{
  -webkit-text-fill-color:#fff; caret-color:#fff;
  box-shadow:0 0 0 1000px #121215 inset;     /* war #000 */
  border:1px solid rgba(247,247,248,.16);
  transition:background-color 9999s ease-out 0s;
}

/* Labels */
.rgf-form.rgf-form .e-form-label-base{
  color:#fff; font-family:var(--rgf-font-text, inherit); font-weight:700; font-size:13.5px;
}

/* Checkbox-Row */
.rgf-form.rgf-form .e-form-checkbox-row{
  gap:.6rem; align-items:flex-start; color:var(--_muted); font-size:.85rem; line-height:1.5;
}
.rgf-form.rgf-form .e-form-checkbox-row input[type="checkbox"]{
  flex:0 0 auto; width:1.1rem; height:1.1rem; accent-color:var(--_red);
}
.rgf-form.rgf-form .e-form-checkbox-row a{ color:#fff; text-decoration:underline; }

/* Submit – jetzt full-width + rot erzwungen */
.rgf-form.rgf-form .e-form-submit-button-base{
  display:block; width:100%; align-self:stretch;
  background-color:var(--_red); color:#fff; border:0; border-radius:0;
  padding:1rem 1.5rem;
  font-family:var(--rgf-font-text, inherit); font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; text-align:center; cursor:pointer;
  transition:background-color var(--_dur) var(--_ease), box-shadow var(--_dur) var(--_ease);
}
.rgf-form.rgf-form .e-form-submit-button-base:hover{
  background-color:var(--_red-hot); box-shadow:0 0 24px -4px var(--_red);
}
.rgf-form.rgf-form .e-form-submit-button-base:focus-visible{ outline:2px solid #fff; outline-offset:2px; }

/* Messages */
.rgf-form.rgf-form .e-form-success-message-base{ color:#4ade80; }
.rgf-form.rgf-form .e-form-error-message-base{ color:var(--_red); }
/* === RED GYM – Atomic Form: 2-Spalten-Feldreihen === */
.rgf-form .rgf-form__field.rgf-form__field{
  display:flex; flex-direction:column; gap:.5rem;  /* Label → Eingabe eng */
  min-width:0;                                       /* verhindert Row-Overflow */
}
.rgf-form .rgf-form__row.rgf-form__row{
  display:flex; align-items:flex-start;
  gap:var(--rgf-space-m, 1.25rem);                   /* Spaltenabstand */
}
.rgf-form .rgf-form__row > .rgf-form__field{ flex:1 1 0; }  /* gleich breit, 50/50 */

@media (max-width:767px){
  .rgf-form .rgf-form__row.rgf-form__row{ flex-direction:column; gap:1rem; }
}

/* =================================================================
   16. SLIDER (Training / Services)
   ================================================================= */
.rgf-slider{ width:100%; }

/* Header */
.rgf-slider__head{
  display:flex; align-items:center; gap:clamp(16px,3vw,32px);
  margin-bottom:clamp(20px,3vw,36px);
}
.rgf-slider__title{
  display:flex; align-items:flex-start; gap:.5em;
  font-family:var(--rgf-font-display,sans-serif);
  font-size:var(--rgf-h2); line-height:1; text-transform:uppercase;
  color:#fff; margin:0; white-space:nowrap;
}
.rgf-slider__count{
  font-family:var(--rgf-font-text,sans-serif); font-weight:700;
  font-size:.34em; letter-spacing:.05em; color:var(--rgf-red,#e10600);
  transform:translateY(.15em);
}
.rgf-slider__line{
  flex:1 1 auto; height:1px; min-width:40px;
  background:linear-gradient(90deg, var(--rgf-border,rgba(255,255,255,.14)), transparent);
}
.rgf-slider__nav{ display:flex; gap:10px; flex:0 0 auto; }
.rgf-slider__btn{
  width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--rgf-border,rgba(255,255,255,.14));
  border-radius:var(--rgf-radius,4px); color:#fff; cursor:pointer;
  transition:border-color var(--rgf-dur,.3s) var(--rgf-ease,ease),
             background-color var(--rgf-dur,.3s) var(--rgf-ease,ease),
             opacity var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
.rgf-slider__btn:hover{ border-color:var(--rgf-red,#e10600); background:var(--rgf-red,#e10600); }
.rgf-slider__btn:focus-visible{ outline:2px solid var(--rgf-red,#e10600); outline-offset:2px; }
.rgf-slider__btn[disabled]{ opacity:.3; pointer-events:none; }
.rgf-slider__btn svg{ width:20px; height:20px; display:block; }

/* Track */
.rgf-slider__track{
  display:flex; gap:clamp(14px,1.6vw,22px);
  overflow-x:auto; overflow-y:hidden;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding-block:10px;          /* Luft oben+unten für Hover-Lift (sonst Rand gekappt) */
  margin-block:-10px;          /* optisch wieder ausgleichen */
  cursor:grab;
}
.rgf-slider__track::-webkit-scrollbar{ display:none; }
.rgf-slider__track > *{ scroll-snap-align:start; flex:0 0 auto; }
.rgf-slider__track.is-dragging{ cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; }
.rgf-slider__track.is-dragging *{ pointer-events:none; }   /* Klick während Drag unterdrücken */
@media (prefers-reduced-motion:reduce){ .rgf-slider__track{ scroll-behavior:auto; } }

/* ---- Media-Card (Training) ---- */
.rgf-card--media{
  position:relative; width:clamp(240px,26vw,320px); aspect-ratio:3/4;
  overflow:hidden; border-radius:var(--rgf-radius,4px);
  background:var(--rgf-bg-offset,#0A0A0B); isolation:isolate;
}
.rgf-card--media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:brightness(.72);
  transition:transform .6s var(--rgf-ease,ease), filter .6s var(--rgf-ease,ease);
}
.rgf-card--media::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, transparent 20%, rgba(5,5,7,.45) 45%, rgba(5,5,7,.8) 72%, rgba(5,5,7,.97) 100%);
}
.rgf-card--media:hover img{ transform:scale(1.06); filter:brightness(.92); }
.rgf-card__num{
  position:absolute; top:14px; left:16px; z-index:2;
  font-family:var(--rgf-font-display,sans-serif); font-size:20px; line-height:1;
  color:var(--rgf-red,#e10600); text-shadow:0 1px 6px rgba(0,0,0,.6);
}
.rgf-card--media .rgf-card__body{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:flex; flex-direction:column; gap:.55em;
  padding:clamp(16px,1.6vw,22px);
}
.rgf-card--media .rgf-card__body::before{
  content:""; width:34px; height:3px; background:var(--rgf-red,#e10600);
  transform-origin:left; transform:scaleX(.55);
  transition:transform var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
.rgf-card--media:hover .rgf-card__body::before{ transform:scaleX(1); }

/* ---- Service-Card ---- */
.rgf-card--service{
  width:clamp(220px,21vw,270px);
  display:flex; flex-direction:column; gap:clamp(14px,1.4vw,20px);
  padding:clamp(20px,1.8vw,28px);
  background:var(--rgf-bg-offset,#0A0A0B);
  border:1px solid var(--rgf-border,rgba(255,255,255,.12));
  border-radius:var(--rgf-radius,4px);
  transition:border-color var(--rgf-dur,.3s) var(--rgf-ease,ease),
             transform var(--rgf-dur,.3s) var(--rgf-ease,ease);
}
.rgf-card--service:hover{
  border-color:color-mix(in srgb, var(--rgf-red,#e10600) 55%, transparent);
  transform:translateY(-4px);
}
.rgf-card__icon{ width:30px; height:30px; color:var(--rgf-red,#e10600); }
.rgf-card__icon svg{ width:100%; height:100%; display:block; stroke:currentColor; fill:none; }

/* ---- Card-Text ---- */
.rgf-card__title{
  font-family:var(--rgf-font-display,sans-serif); text-transform:uppercase;
  line-height:1.05; color:#fff; margin:0;
}
/* Training-Titel: eigene, kleinere Größe → läuft nicht mehr aus der Karte */
.rgf-card--media .rgf-card__title{
  font-size:clamp(18px,1.5vw,22px); text-wrap:balance;
}
.rgf-card--service .rgf-card__title{ font-size:clamp(16px,1.3vw,19px); }

.rgf-card__text{
  font-family:var(--rgf-font-text,sans-serif); font-size:var(--rgf-small,14px);
  line-height:1.5; color:var(--rgf-text-muted,#9a9aa2); margin:0;
}
.rgf-card--media .rgf-card__text{
  max-width:34ch;
  min-height:calc(3 * 1.5em);      /* immer Platz für 3 Zeilen reservieren */
  display:-webkit-box;
  -webkit-line-clamp:3;            /* mehr als 3 Zeilen abschneiden (…) */
  -webkit-box-orient:vertical;
  overflow:hidden;
}
@media (max-width:767px){
  .rgf-card--media{ width:74vw; }
  .rgf-card--service{ width:72vw; }
  .rgf-slider__title{ white-space:normal; }
}

/* =================================================================
   17. Sure Cookie Policy Table – RED GYM Styling
   ================================================================= */

.surecookie-cookie-policy.surecookie-cookie-policy {
  color: #e8e8ea;
  font-family: 'Inter', sans-serif;
}

/* --- Inhaltsverzeichnis --- */
.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc {
  background: #1a1a1e;
  border: 1px solid #2a2a30;
  border-left: 4px solid #E10600;
  border-radius: 8px;
  padding: 20px 24px;
  margin-bottom: 40px;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 22px;
  letter-spacing: 0.04em;
  color: #ffffff;
  margin: 0 0 12px;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc ol {
  margin: 0;
  padding-left: 20px;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc li {
  margin-bottom: 6px;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc a {
  color: #e8e8ea;
  text-decoration: none;
  border-bottom: 1px solid #E10600;
  transition: color 0.2s ease;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-toc a:hover {
  color: #E10600;
}

/* --- Kategorie-Überschriften --- */
.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-category {
  margin-bottom: 48px;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-category > h3 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 28px;
  letter-spacing: 0.04em;
  color: #ffffff;
  margin: 0 0 8px;
  padding-left: 14px;
  border-left: 4px solid #E10600;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-category > p {
  color: #9a9aa2;
  margin: 0 0 20px;
  padding-left: 18px;
}

/* --- Tabelle --- */
.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid #2a2a30;
  background: #1a1a1e;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  margin: 0;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table th {
  background: #121215;
  color: #ffffff;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 17px;
  letter-spacing: 0.06em;
  text-align: left;
  padding: 14px 18px;
  border-bottom: 2px solid #E10600;
  white-space: nowrap;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table td {
  padding: 14px 18px;
  border-bottom: 1px solid #2a2a30;
  vertical-align: top;
  line-height: 1.55;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tbody tr:last-child td {
  border-bottom: none;
}

.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tbody tr:hover td {
  background: #202024;
}

/* Cookie-Name hervorheben */
.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table td[data-label="Cookie-Name"] {
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: 13.5px;
  color: #E10600;
  font-weight: 700;
  word-break: break-word;
}

/* --- Stand-Datum --- */
.surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-last-updated {
  color: #6f6f78;
  font-size: 13px;
  margin-top: 8px;
}

/* --- Mobile: Tabelle als Karten stapeln --- */
@media (max-width: 767px) {
  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table,
  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tbody,
  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tr,
  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table td {
    display: block;
    width: 100%;
  }

  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tr {
    border-bottom: 2px solid #E10600;
    padding: 6px 0;
  }

  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table tbody tr:last-child {
    border-bottom: none;
  }

  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table td {
    border-bottom: none;
    padding: 8px 16px;
  }

  .surecookie-cookie-policy.surecookie-cookie-policy .surecookie-cookie-policy-table td::before {
    content: attr(data-label);
    display: block;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: #9a9aa2;
    margin-bottom: 2px;
  }
}