/* FITfactory v60 – Navigation, Bildkomposition und EGYM-Programme */
@media screen {
  .main-nav .nav-dropdown {
    position:relative;
    display:flex;
    align-items:stretch;
  }
  .main-nav .nav-link {
    display:flex;
    align-items:center;
    border-radius:9px;
  }
  .main-nav .nav-link.active,
  .main-nav .nav-link[aria-current="page"] {
    color:var(--ff-accent,#e2a5f2);
    background:var(--ff-raised,#3a2445);
    box-shadow:inset 0 -2px 0 var(--ff-accent,#e2a5f2);
  }
  .nav-submenu-toggle {
    width:28px;
    min-width:28px;
    padding:0;
    border:0;
    border-radius:8px;
    color:var(--ff-text,#fff);
    background:transparent;
    cursor:pointer;
  }
  .nav-submenu-toggle span {
    display:block;
    font-size:1.05rem;
    line-height:1;
    transform:translateY(-1px);
    transition:transform .18s ease;
  }
  .nav-submenu-toggle[aria-expanded="true"] span { transform:rotate(180deg) translateY(1px); }
  .nav-submenu {
    position:absolute;
    z-index:80;
    top:calc(100% + 8px);
    left:0;
    min-width:238px;
    padding:9px;
    display:none;
    gap:4px;
    border:1px solid var(--ff-border,#6d5378);
    border-radius:14px;
    background:#21142a;
    box-shadow:0 18px 45px rgba(5,2,8,.45);
  }
  .nav-dropdown:hover .nav-submenu,
  .nav-dropdown:focus-within .nav-submenu,
  .nav-dropdown.submenu-open .nav-submenu { display:grid; }
  .nav-submenu a {
    display:block;
    padding:11px 13px;
    border-radius:9px;
    color:var(--ff-text,#fff);
    text-decoration:none;
    white-space:nowrap;
  }
  .nav-submenu a:hover,
  .nav-submenu a.active,
  .nav-submenu a[aria-current="page"] {
    color:var(--ff-accent,#e2a5f2);
    background:#3a2445;
  }

  .home-hero-v60 {
    min-height:0;
    overflow:hidden;
    overflow:clip;
    background:#180f1e;
  }
  .home-hero-v60 .hero-layout {
    position:static;
    min-height:clamp(660px,calc(100svh - 84px),820px);
  }
  .home-hero-v60 .hero-media {
    inset:0;
    width:auto;
    transform:none;
    background:#180f1e;
  }
  .home-hero-v60 .hero-media picture {
    display:block;
    width:69%;
    height:100%;
    margin-left:auto;
  }
  .home-hero-v60 .hero-media img {
    display:block;
    position:static;
    inset:auto;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
  .home-hero-v60 .hero-media::after {
    background:
      linear-gradient(90deg,#180f1e 0%,rgba(24,15,30,.99) 30%,rgba(24,15,30,.92) 43%,rgba(24,15,30,.35) 59%,rgba(24,15,30,.03) 78%),
      linear-gradient(0deg,rgba(13,8,17,.42),transparent 42%);
  }
  .home-hero-v60 .hero-copy {
    width:min(620px,55%);
    padding:58px 0 70px;
  }
  .home-hero-v60 .hero-copy h1 { font-size:clamp(5.1rem,7vw,6rem); }
  .home-hero-v60 .media-badge {
    right:max(18px,calc((100% - 1180px)/2));
    width:min(410px,calc(100% - 36px));
  }

  .studio-story-v60 {
    margin-top:clamp(30px,5vw,64px);
    margin-bottom:clamp(34px,6vw,78px);
    padding:0;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);
    align-items:stretch;
    overflow:hidden;
    border:1px solid rgba(226,165,242,.28);
    border-radius:24px;
    background:linear-gradient(135deg,#1c1123,#352040);
    box-shadow:0 22px 55px rgba(6,2,9,.28);
  }
  .studio-story-v60 figure {
    min-width:0;
    margin:0;
    position:relative;
  }
  .studio-story-v60 picture,
  .studio-story-v60 img {
    display:block;
    width:100%;
    height:100%;
  }
  .studio-story-v60 img {
    min-height:470px;
    object-fit:cover;
  }
  .studio-story-v60 figcaption {
    position:absolute;
    left:16px;
    bottom:14px;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    color:#fff;
    background:rgba(17,9,22,.84);
    font-size:.78rem;
  }
  .studio-story-copy-v60 {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:clamp(34px,5vw,66px);
  }
  .studio-story-copy-v60 h2 { margin:10px 0 18px; }
  .studio-story-copy-v60 p:not(.eyebrow) { color:var(--ff-muted,#d7cbdc); }
  .studio-story-reverse-v60 figure { order:2; }
  .studio-story-reverse-v60 .studio-story-copy-v60 { order:1; }

  .training-hero-v60 {
    position:relative;
    min-height:clamp(650px,calc(100svh - 86px),820px);
    overflow:hidden;
    background:#160d1c;
    color:#fff;
  }
  .training-hero-media-v60 {
    position:absolute;
    inset:0;
    margin:0;
  }
  .training-hero-media-v60 picture,
  .training-hero-media-v60 img {
    display:block;
    width:100%;
    height:100%;
  }
  .training-hero-media-v60 img { object-fit:cover; object-position:center; }
  .training-hero-media-v60::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(90deg,rgba(20,11,25,.99) 0%,rgba(20,11,25,.96) 30%,rgba(20,11,25,.76) 47%,rgba(20,11,25,.15) 68%,rgba(20,11,25,.04) 100%),
      linear-gradient(0deg,rgba(15,8,19,.54),transparent 45%);
  }
  .training-hero-media-v60 figcaption {
    position:absolute;
    z-index:2;
    right:max(18px,calc((100vw - 1180px)/2));
    bottom:16px;
    max-width:430px;
    padding:8px 11px;
    border:1px solid rgba(255,255,255,.23);
    border-radius:999px;
    background:rgba(15,8,19,.82);
    color:#fff;
    font-size:.78rem;
  }
  .training-hero-overlay-v60 {
    position:relative;
    z-index:2;
    min-height:inherit;
    display:flex;
    align-items:center;
    padding-top:clamp(54px,8vw,90px);
    padding-bottom:clamp(68px,9vw,110px);
  }
  .training-hero-copy-v60 { width:min(620px,54%); }
  .training-hero-copy-v60 h1 {
    margin:12px 0 22px;
    max-width:760px;
    color:#fff;
    font-size:clamp(4.2rem,6.5vw,6.5rem);
    line-height:.94;
    letter-spacing:-.045em;
  }
  .training-hero-copy-v60 h1 em { color:#edb1fb; font-style:normal; }
  .training-hero-copy-v60 .lead { max-width:690px; color:#f3eaf6; }
  .training-hero-copy-v60 .button-secondary { color:#fff; border-color:#d8b5e3; background:rgba(20,11,25,.52); }

  body .egym-program-section,
  body .wellpass-egym-clarifier {
    background:linear-gradient(145deg,#17101d,#281530);
    color:var(--ff-text,#fff);
  }
  body .egym-benefit-grid article,
  body .egym-program-grid article,
  body .egym-location-grid article,
  body .egym-mini-grid article {
    border-color:rgba(226,165,242,.27);
    background:#2a1933;
    color:var(--ff-text,#fff);
  }
  body .egym-benefit-grid p,
  body .egym-program-grid p,
  body .egym-location-grid p,
  body .egym-mini-grid p,
  body .wellpass-egym-clarifier p { color:var(--ff-muted,#d7cbdc); }
  body .egym-program-grid h3,
  body .egym-benefit-grid h3,
  body .egym-mini-grid h3,
  body .egym-location-grid h3 { color:var(--ff-text,#fff); }
  body .egym-page-nav a {
    border-color:var(--ff-border,#6d5378);
    color:var(--ff-text,#fff);
    background:#24162c;
  }
  body .egym-page-nav a:hover { border-color:var(--ff-accent,#e2a5f2); background:#3a2445; }
  body .wellpass-egym-clarifier .button-secondary { background:#2b1934; color:#fff; }
  body .egym-program-grid .text-link { display:inline-flex; margin-top:14px; }

  .egym-program-hero-v60 {
    display:grid;
    grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
    gap:clamp(34px,6vw,74px);
    align-items:center;
    padding-top:clamp(42px,7vw,78px);
    padding-bottom:clamp(56px,8vw,96px);
  }
  .egym-program-hero-v60 h1 {
    margin:10px 0 20px;
    font-size:clamp(4rem,7vw,7rem);
    line-height:.92;
  }
  .egym-program-hero-v60 figure { margin:0; }
  .egym-program-hero-v60 picture,
  .egym-program-hero-v60 img { display:block; width:100%; }
  .egym-program-hero-v60 img {
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:22px;
    border:1px solid rgba(226,165,242,.28);
  }
  .egym-program-hero-v60 figcaption { margin-top:9px; color:var(--ff-muted,#d7cbdc); font-size:.8rem; }
  .egym-program-detail-v60 {
    padding:clamp(58px,8vw,100px) 0;
    background:linear-gradient(145deg,#160e1b,#2e1638);
  }
  .egym-program-points-v60 {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:30px;
  }
  .egym-program-points-v60 article {
    padding:24px;
    border:1px solid rgba(226,165,242,.26);
    border-radius:18px;
    background:#2b1934;
  }
  .egym-program-points-v60 h3 { margin:15px 0 9px; }
  .egym-program-points-v60 p { color:var(--ff-muted,#d7cbdc); }
  .egym-program-detail-v60 .availability-note-v13 { margin-top:24px; }
  .egym-program-start-v60 {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
    gap:32px;
    align-items:center;
  }
  .egym-other-programs-v60 { padding-bottom:clamp(58px,8vw,96px); }
  .egym-other-programs-v60>p { font-weight:900; text-transform:uppercase; letter-spacing:.08em; color:var(--ff-accent,#e2a5f2); }
  .egym-other-programs-v60>div { display:flex; flex-wrap:wrap; gap:9px; }
  .egym-other-programs-v60 a {
    padding:9px 12px;
    border:1px solid var(--ff-border,#6d5378);
    border-radius:999px;
    color:var(--ff-text,#fff);
    text-decoration:none;
    background:#24162c;
  }
  .egym-other-programs-v60 a:hover { border-color:var(--ff-accent,#e2a5f2); color:var(--ff-accent,#e2a5f2); }
}

@media (max-width:1199px) {
  .home-hero-v60 .hero-layout {
    width:100%;
    min-height:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .home-hero-v60 .hero-media {
    position:relative;
    order:1;
    width:100%;
    height:auto;
    aspect-ratio:16/9;
  }
  .home-hero-v60 .hero-media picture { width:100%; margin:0; }
  .home-hero-v60 .hero-media::after { background:linear-gradient(0deg,rgba(24,15,30,.60),transparent 50%); }
  .home-hero-v60 .hero-copy {
    order:2;
    width:min(calc(100% - 70px),620px);
    margin-inline:auto;
    padding:42px 0 54px;
  }
  .home-hero-v60 .hero-copy h1 { font-size:clamp(3.8rem,9vw,5.5rem); }
  .home-hero-v60 .media-badge { right:35px; left:35px; bottom:18px; width:auto; }
}

@media (max-width:899px) {
  .home-hero-v60 .hero-media { aspect-ratio:8/5; }
  .studio-story-v60,
  .egym-program-hero-v60,
  .egym-program-start-v60 { grid-template-columns:1fr; }
  .studio-story-v60 figure,
  .studio-story-reverse-v60 figure { order:1; }
  .studio-story-copy-v60,
  .studio-story-reverse-v60 .studio-story-copy-v60 { order:2; }
  .studio-story-v60 img { min-height:0; aspect-ratio:4/3; }
  .training-hero-v60 { min-height:0; }
  .training-hero-media-v60 { position:relative; aspect-ratio:8/5; }
  .training-hero-media-v60::after { background:linear-gradient(0deg,rgba(20,11,25,.56),transparent 48%); }
  .training-hero-media-v60 figcaption { right:18px; left:18px; bottom:12px; border-radius:12px; }
  .training-hero-overlay-v60 { min-height:0; padding-top:42px; padding-bottom:58px; }
  .training-hero-copy-v60 { width:100%; }
  .training-hero-copy-v60 h1 { font-size:clamp(3.5rem,10vw,5.4rem); }
  .egym-program-points-v60 { grid-template-columns:1fr; }
}

@media (max-width:1049px) {
  .main-nav .nav-dropdown {
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) 48px;
  }
  .main-nav .nav-dropdown>.nav-link { min-width:0; }
  .nav-submenu-toggle {
    width:48px;
    min-width:48px;
    border:1px solid var(--ff-border,#6d5378);
  }
  .nav-submenu {
    position:static;
    grid-column:1/-1;
    min-width:0;
    margin-top:6px;
    box-shadow:none;
  }
  .nav-dropdown:hover .nav-submenu { display:none; }
  .nav-dropdown:focus-within .nav-submenu,
  .nav-dropdown.submenu-open .nav-submenu { display:grid; }
}

@media (max-width:699px) {
  .home-hero-v60 .hero-media { aspect-ratio:4/5; }
  .home-hero-v60 .hero-copy { width:min(calc(100% - 36px),620px); padding:38px 0 48px; }
  .home-hero-v60 .hero-copy h1 { font-size:clamp(3.1rem,14vw,4.8rem); }
  .home-hero-v60 .media-badge { right:18px; left:18px; bottom:14px; }
  .studio-story-v60 { width:calc(100% - 36px); border-radius:18px; }
  .studio-story-v60 img { aspect-ratio:4/5; }
  .studio-story-copy-v60 { padding:30px 22px 34px; }
  .studio-story-copy-v60 .button-row,
  .training-hero-copy-v60 .button-row,
  .egym-program-hero-v60 .button-row,
  .egym-program-start-v60 .button-row { display:grid; grid-template-columns:1fr; }
  .studio-story-copy-v60 .button,
  .training-hero-copy-v60 .button,
  .egym-program-hero-v60 .button,
  .egym-program-start-v60 .button { width:100%; }
  .training-hero-media-v60 { aspect-ratio:4/5; }
  .training-hero-copy-v60 h1 { font-size:clamp(3.15rem,14vw,4.7rem); }
  .egym-program-hero-v60 { padding-top:28px; gap:28px; }
  .egym-program-hero-v60 figure { order:-1; }
  .egym-program-hero-v60 h1 { font-size:clamp(3.4rem,17vw,5.5rem); }
}

@media (prefers-reduced-motion:reduce) {
  .nav-submenu-toggle span { transition:none; }
}
