/* FITfactory v47: central, permanent screen palette. Original print styles remain intact. */
@media screen {
  :root {
    color-scheme:dark;
    --ff-page:#211429;
    --ff-section:#291a34;
    --ff-card:#352340;
    --ff-raised:#402a4d;
    --ff-field:#201426;
    --ff-text:#f7f2fa;
    --ff-muted:#d4c4dd;
    --ff-subtle:#bda9c8;
    --ff-accent:#edb8ff;
    --ff-primary:#e3b0f5;
    --ff-primary-hover:#f1d1fc;
    --ff-on-primary:#271333;
    --ff-border:#a083b0;
    --ff-divider:#735680;
    --ff-focus:#f4d976;
    --ff-success-bg:#173c30;
    --ff-success:#b8f1d3;
    --ff-warning-bg:#44331c;
    --ff-warning:#ffe3a3;
    --ff-error-bg:#4d2535;
    --ff-error:#ffd1da;
    --paper:var(--ff-page);
    --anth:var(--ff-card);
    --panel:var(--ff-raised);
    --white:var(--ff-text);
    --muted:var(--ff-muted);
    --dark-muted:var(--ff-muted);
    --purple-light:var(--ff-accent);
    --line:#735680;
    --shadow:0 18px 50px #08040e50;
  }
  html,body{background:var(--ff-page);color:var(--ff-text)}
  ::selection{background:var(--ff-primary);color:var(--ff-on-primary)}
  body :is(h1,h2,h3,h4,h5,h6){color:var(--ff-text)}
  .lead,.section-heading>p,.section-heading-v13>p,.legal-intro{color:var(--ff-muted)}
  .eyebrow,.card-number,.error-code,.text-link,.training-hero-v13 h1 em{color:var(--ff-accent)}
  body :is(.text-link,.legal-page a,.wellpass-page-nav a,.wellpass-contact-lines a,p>a:not(.button)){
    color:var(--ff-accent);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;
  }
  body :is(.text-link,.legal-page a,.wellpass-page-nav a,.wellpass-contact-lines a,p>a:not(.button)):hover{color:var(--ff-primary-hover);text-decoration-thickness:2px}
  .breadcrumbs,.breadcrumbs b,.breadcrumbs a,.footer-legal{color:var(--ff-subtle)}
  .breadcrumbs a:hover{color:var(--ff-accent);text-decoration:underline}
  body :is(.button,.youth-button,.wellpass-banner .button,.wellpass-hero .button,.training-hero-v13 .button){
    background:var(--ff-primary);color:var(--ff-on-primary);border-color:var(--ff-primary);box-shadow:0 8px 24px #08040e38;
  }
  body :is(.button,.youth-button,.wellpass-banner .button,.wellpass-hero .button,.training-hero-v13 .button):hover{
    background:var(--ff-primary-hover);color:var(--ff-on-primary);border-color:var(--ff-primary-hover);box-shadow:0 10px 28px #08040e65;
  }
  body :is(.button,.youth-button):active{background:#d49be8;color:var(--ff-on-primary)}
  body :is(.button-secondary,.wellpass-price .button-secondary,.training-hero-v13 .button-secondary){
    color:var(--ff-text);background:transparent;border-color:var(--ff-border);box-shadow:none;
  }
  body :is(.button-secondary,.wellpass-price .button-secondary,.training-hero-v13 .button-secondary):hover{color:var(--ff-text);background:var(--ff-raised);border-color:var(--ff-accent)}
  body a.studio-join-cta-v36{background:var(--ff-primary)!important;color:var(--ff-on-primary)!important;border-color:var(--ff-primary)!important;box-shadow:0 8px 26px #08040e65}
  body a.studio-join-cta-v36:hover,body a.studio-join-cta-v36:focus-visible{background:var(--ff-primary-hover)!important;color:var(--ff-on-primary)!important;border-color:var(--ff-primary-hover)!important}
  body .button-whatsapp{background:var(--ff-success-bg);color:var(--ff-success);border-color:#80c9a1}
  body .button-whatsapp:hover{background:#245340;color:#d9fbea;border-color:#b8f1d3}
  body :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{
    outline:3px solid var(--ff-focus)!important;outline-offset:4px!important;
  }
  .skip-link{background:var(--ff-primary);color:var(--ff-on-primary)}
  .site-header{background:#1b1021f5;color:var(--ff-text);border-color:var(--ff-divider)}
  .menu-button{background:var(--ff-section);border-color:var(--ff-border);color:var(--ff-text)}
  .main-nav.open{background:radial-gradient(circle at 85% 8%,#60367370,transparent 30%),#1b1021}
  .main-nav>a.active,.main-nav>a:not(.button):hover{color:var(--ff-accent);background:var(--ff-raised)}
  .main-nav>a.active{box-shadow:inset 0 -2px 0 var(--ff-accent)}
  .footer{background:#180f1e;color:var(--ff-text)}
  .footer a:not(.logo){color:var(--ff-muted)}
  .footer a:not(.logo):hover{color:var(--ff-accent);text-decoration:underline;text-underline-offset:4px}
  .footer-social-grid>div{background:var(--ff-section);border-color:var(--ff-divider)}
  .footer-social .social-links a,.social-links a{background:var(--ff-field);color:var(--ff-text);border-color:var(--ff-border)}
  .footer-social .social-links a:hover,.social-links a:hover{background:var(--ff-raised);color:var(--ff-text);border-color:var(--ff-accent)}
  .social-links a b{color:var(--ff-accent)}
  .footer-social,.footer-legal,.location-social{border-color:var(--ff-divider)}
  .dark-section,.egym-story-v13{background:#1b1023;color:var(--ff-text)}
  .steps,.fight-locations,.youth-locations,.fitness-hub-v14,.wellpass-locations{background:var(--ff-section);color:var(--ff-text)}
  .egym-app-v13{background:linear-gradient(145deg,var(--ff-section),var(--ff-card));color:var(--ff-text)}
  :is(.location-card,.training-grid article,.local-benefits article,.two-column-info>div,.training-detail-grid article,.value-grid article,.fight-feature-grid article,.fight-location-grid article,.youth-benefits article,.youth-location-grid article,.action-details>div,.action-info-grid article,.action-overview-card,.area-card-v13,.program-grid-v13 article,.app-features-v13 article,.fitness-hub-steps-v14 article,.wellpass-location-card){
    background:var(--ff-card);color:var(--ff-text);border-color:var(--ff-divider);box-shadow:0 12px 36px #08040e25;
  }
  .dark-section .training-grid article,.benefit-grid article,.process-grid article,.step-grid li,.brand-panels article{background:var(--ff-card);color:var(--ff-text);border-color:var(--ff-divider)}
  .step-grid b,.mini-steps b{background:var(--ff-primary);color:var(--ff-on-primary)}
  .training-grid article>span,.local-benefits span,.training-detail-grid span,.process-grid b,.value-grid span,.fight-feature-grid span,.fight-location-grid article>span,.youth-benefits span,.youth-location-grid article>span,.action-info-grid span,.area-card-v13>span,.fitness-hub-steps-v14 b,.wellpass-steps b{color:var(--ff-accent)}
  .area-card-v13.featured{background:linear-gradient(145deg,#492459,#62316e);border-color:var(--ff-border)}
  .training-grid p,.area-card-v13 p,.program-grid-v13 p,.app-features-v13 p,.fitness-hub-steps-v14 p,.fitness-hub-copy-v14>p:not(.eyebrow):not(.availability-note-v13),.method-list-v13 dd,.wellpass-steps p,.wellpass-small,.photo-story p:not(.eyebrow),.creed-grid p{color:var(--ff-muted)}
  .price-card-grid article{background:var(--ff-card);color:var(--ff-text);border-color:var(--ff-divider)}
  .price-card-grid li:nth-child(-n+2){background:var(--ff-field);color:var(--ff-text);border-color:var(--ff-divider)}
  .price-card-grid li:nth-child(n+3)::before{color:var(--ff-accent)}
  .info-box,.operator-note,.legal-toc,.legal-review-note,.availability-note-v13,.fight-location-benefit-v16,.wellpass-checkin,.wellpass-studio,.wellpass-price{background:var(--ff-card);color:var(--ff-text);border-color:var(--ff-divider);border-left-color:var(--ff-accent)}
  .availability-note-v13,.legal-review-note,.wellpass-small{color:var(--ff-muted)}
  .legal-data,.legal-data>div,.faq-list,.faq-list details,.wellpass-page-nav,.method-list-v13>div{border-color:var(--ff-divider)}
  .legal-data dt{color:var(--ff-muted)}
  .faq-list summary{color:var(--ff-text)}
  .faq-list summary:hover{color:var(--ff-accent)}
  .faq-list summary span{color:var(--ff-accent)}
  .faq-list details[open]{background:var(--ff-section)}
  .faq-list details p{color:var(--ff-muted)}
  .wellpass-badge{background:var(--ff-raised);color:var(--ff-accent);border-color:var(--ff-border)}
  .wellpass-badge::before{background:var(--ff-accent)}
  .wellpass-steps li{border-color:var(--ff-accent)}
  .wellpass-banner{background:#542466}
  .wellpass-hero{background:linear-gradient(125deg,#211429,#391942 70%,#542466)}
  .training-hero-v13.shell{background:radial-gradient(circle at 83% 18%,#a974bd22,transparent 31%),linear-gradient(120deg,#432050,#642974);color:var(--ff-text)}
  .method-feature-v13 figure,.real-training-gallery-v15 figure,.fitness-hub-visuals-v14 figure,.fight-photo-grid-v15 figure{background:var(--ff-card);border-color:var(--ff-divider)}
  .training-hero-media figcaption,.method-feature-v13 figcaption,.app-visual-v13 figcaption,.real-training-gallery-v15 figcaption,.fitness-hub-visuals-v14 figcaption,.fight-photo-grid-v15 figcaption{color:var(--ff-muted)}
  .status-live,.action-status.active{color:var(--ff-success);background:var(--ff-success-bg);border:1px solid #80c9a1}
  .status-planned,.action-status{color:var(--ff-muted);background:var(--ff-raised);border:1px solid var(--ff-border)}
  .fight-location-grid .is-live{border-top-color:#80c9a1}
  .fight-location-grid .is-live>span{color:var(--ff-success)}
  .fight-location-grid .is-planned{border-top-color:var(--ff-subtle)}
  .legal-page mark,.legal-warning{background:var(--ff-warning-bg);color:var(--ff-warning);border-color:#d6b36b}
  .open-line span{background:#80d7a5;box-shadow:0 0 0 5px #80d7a51f}
  /* Photos, original logos and campaign illustrations retain their original pixels. */
}


/* FITfactory v47: screen-only forms, dialogs, consent and response states.
   Append after the shared dark theme. No print or PDF styles are changed. */
@media screen {
  :root {
    --ff-success-bg: #17382e;
    --ff-success-text: #c5f4d7;
    --ff-success-border: #71c995;
    --ff-warning-bg: #44351e;
    --ff-warning-text: #ffe0a6;
    --ff-warning-border: #e4b967;
    --ff-error-bg: #482834;
    --ff-error-text: #ffd1da;
    --ff-error-border: #ef9cae;
  }

  /* Independent page styles formerly supplied white and near-black surfaces. */
  .membership-hero-v35,
  .withdrawal-hero-v35 {
    background: radial-gradient(circle at 82% 35%, #70408242, transparent 42%), var(--ff-page);
    color: var(--ff-text);
  }
  .contact-form-section-v25,
  .withdrawal-template-v35 {
    background: var(--ff-section);
    color: var(--ff-text);
  }
  .membership-form-v35,
  .contact-form-card-v25,
  .contact-grid > article,
  .cancellation-card-v27,
  .withdrawal-form-v35,
  .withdrawal-template-card-v35,
  .selector-form,
  .consent {
    background: var(--ff-card);
    color: var(--ff-text);
    border-color: var(--ff-border);
    box-shadow: 0 24px 64px #10081940;
  }
  .membership-age-note-v35,
  .membership-onsite-offer-v36,
  .membership-final-note-v35,
  .withdrawal-final-v35 {
    background: var(--ff-field);
    color: var(--ff-text);
    border-color: var(--ff-border);
  }
  .membership-sepa-v35,
  .membership-summary-item-v35,
  .membership-confirm-v35,
  .cancellation-fieldset-v27,
  .cancellation-declaration-v27,
  .withdrawal-form-v35 fieldset,
  .withdrawal-declaration-v35 {
    background: var(--ff-section);
    color: var(--ff-text);
    border-color: var(--ff-border);
  }
  .membership-price-note-v35,
  .membership-start-info-v35,
  .cancellation-note-v27 {
    background: var(--ff-raised);
    color: var(--ff-muted);
    border-color: var(--ff-accent);
  }

  /* Text with explicit colors in the existing feature stylesheets. */
  .membership-hero-v35 h1,
  .withdrawal-hero-v35 h1,
  .membership-age-note-v35 h2,
  .contact-form-card-v25 h3,
  .contact-field-v25 > span,
  .membership-form-grid-v35 label > span,
  .membership-choice-card-v35 strong,
  .membership-tariff-card-v35 > strong,
  .membership-price-v35 b,
  .membership-price-note-v35 strong,
  .membership-summary-item-v35 strong,
  .membership-terms-v35 h4,
  .withdrawal-template-card-v35 h2,
  .selector-form legend,
  .selector-form label,
  .settings-panel label b,
  .consent strong {
    color: var(--ff-text);
  }
  .membership-hero-v35 .lead,
  .withdrawal-hero-v35 .lead,
  .membership-age-note-v35 p:not(.eyebrow),
  .membership-heading-v35 > p:last-child,
  .contact-form-heading-v25 p:last-child,
  .contact-form-card-v25 > p:not(.eyebrow),
  .cancellation-card-v27 > p:not(.eyebrow),
  .membership-choice-card-v35 small,
  .membership-tariff-card-v35 small,
  .membership-form-grid-v35 label small,
  .membership-form-grid-v35 em,
  .contact-field-v25 em,
  .membership-price-v35,
  .membership-onsite-offer-v36 p,
  .membership-sepa-v35 p:last-child,
  .membership-summary-item-v35 span,
  .membership-final-note-v35 span,
  .withdrawal-intro-v35 > p,
  .withdrawal-message-v35 em,
  .withdrawal-final-v35 p,
  .withdrawal-template-line-v35,
  .selector-form label small,
  .settings-panel small,
  .contact-privacy-v25,
  .form-note,
  .consent p {
    color: var(--ff-muted);
  }
  .membership-trust-list-v35 {
    color: var(--ff-text);
  }
  .membership-trust-list-v35 li::before {
    color: var(--ff-success-border);
  }
  .contact-privacy-v25 a,
  .withdrawal-form-v35 > .contact-privacy-v25 a,
  .membership-studio-option-v36 > a,
  .membership-studio-option-v36 > a:hover,
  .membership-terms-v35 a,
  .membership-tariff-card-v35.is-coming a,
  .consent > a {
    color: var(--ff-accent);
    text-decoration-color: currentColor;
  }
  .cancellation-fieldset-v27 legend,
  .withdrawal-form-v35 legend {
    color: var(--ff-accent);
  }

  /* Four-step contract form, including generated summary cards. */
  .membership-progress-v35 {
    background: var(--ff-field);
    border-color: var(--ff-border);
  }
  .membership-progress-v35 li {
    color: var(--ff-muted);
  }
  .membership-progress-v35 li span {
    border-color: var(--ff-border);
  }
  .membership-progress-v35 li.is-active {
    background: var(--ff-raised);
    color: var(--ff-accent);
  }
  .membership-progress-v35 li.is-active span,
  .membership-tariff-check-v35 {
    background: var(--ff-primary);
    color: var(--ff-on-primary);
    border-color: var(--ff-primary);
  }
  .membership-progress-v35 li.is-complete {
    color: var(--ff-success-text);
  }
  .membership-progress-v35 li.is-complete span {
    background: var(--ff-success-bg);
    color: var(--ff-success-text);
    border-color: var(--ff-success-border);
  }
  .membership-step-heading-v35 > span {
    background: var(--ff-field);
    color: var(--ff-accent);
  }
  .membership-choice-card-v35,
  .membership-tariff-card-v35 {
    background: var(--ff-section);
    color: var(--ff-text);
    border-color: var(--ff-border);
  }
  .membership-choice-card-v35:hover,
  .membership-tariff-card-v35:not(.is-coming):hover {
    border-color: var(--ff-accent);
    box-shadow: 0 12px 28px #10081940;
  }
  .membership-choice-card-v35:has(input:checked),
  .membership-tariff-card-v35:has(input:checked),
  .selector-form label.selected,
  .selector-form label:has(input:checked) {
    background: var(--ff-raised);
    border-color: var(--ff-accent);
    box-shadow: 0 0 0 3px #edb8ff26;
  }
  .membership-tariff-card-v35.is-coming,
  .membership-tariff-card-v35:has(input:disabled),
  .membership-choice-card-v35:has(input:disabled) {
    background: var(--ff-field);
    color: var(--ff-muted);
    border-color: var(--ff-border);
    border-style: dashed;
    box-shadow: none;
  }
  .membership-locked-studio-v39 {
    background: var(--ff-raised);
    border-color: var(--ff-accent);
    color: var(--ff-text);
    box-shadow: 0 12px 30px #10081933;
  }
  .membership-locked-studio-v39 span {
    color: var(--ff-accent);
  }
  .membership-locked-studio-v39 small {
    color: var(--ff-muted);
  }
  .membership-locked-studio-links-v39 a {
    background: var(--ff-field);
    color: var(--ff-accent);
    border-color: var(--ff-border);
  }
  .membership-locked-studio-links-v39 a:first-child {
    background: var(--ff-primary);
    color: var(--ff-on-primary);
    border-color: var(--ff-primary);
  }
  .membership-summary-item-v35.is-price {
    background: var(--ff-raised);
    border-color: var(--ff-accent);
  }
  .membership-summary-item-v35.is-price strong {
    color: var(--ff-accent);
  }
  .membership-summary-item-v35.is-total-info {
    background: var(--ff-field);
    border-color: var(--ff-border);
  }
  .membership-summary-item-v35.is-total-info strong {
    color: var(--ff-muted);
  }
  .membership-terms-v35 {
    background: var(--ff-field);
    border-color: var(--ff-border);
  }
  .membership-terms-v35 summary {
    background: var(--ff-raised);
    color: var(--ff-text);
  }
  .membership-terms-v35 > div {
    color: var(--ff-muted);
    scrollbar-color: var(--ff-border) var(--ff-field);
  }
  .membership-final-note-v35 #membership-cost-disclosure {
    color: var(--ff-muted);
    border-color: var(--ff-border);
  }

  /* All native input states; no dimensions or validation behavior are changed. */
  .contact-form-v25,
  .cancellation-form-v27,
  .membership-form-v35,
  .withdrawal-form-v35,
  .selector-form,
  .settings-panel,
  .consent {
    color-scheme: dark;
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input, select, textarea),
  .withdrawal-message-v35 textarea {
    background: var(--ff-field);
    color: var(--ff-text);
    border-color: var(--ff-border);
    caret-color: var(--ff-text);
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input, select, textarea):hover {
    border-color: var(--ff-accent);
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input, select, textarea)::placeholder,
  .withdrawal-message-v35 textarea::placeholder {
    color: var(--ff-subtle);
    opacity: 1;
  }
  :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35) :is(option, optgroup) {
    background: var(--ff-field);
    color: var(--ff-text);
  }
  :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35) input:is(:autofill, :-webkit-autofill) {
    background-color: var(--ff-field) !important;
    -webkit-text-fill-color: var(--ff-text) !important;
    caret-color: var(--ff-text);
    box-shadow: 0 0 0 1000px var(--ff-field) inset !important;
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input, select, textarea):is(:user-invalid, [aria-invalid="true"]) {
    background: var(--ff-error-bg);
    border-color: var(--ff-error-border);
    color: var(--ff-error-text);
  }
  .membership-confirm-v35:has(input:user-invalid),
  .cancellation-declaration-v27:has(input:user-invalid),
  .membership-confirm-v35:has(input[aria-invalid="true"]),
  .cancellation-declaration-v27:has(input[aria-invalid="true"]) {
    background: var(--ff-error-bg);
    border-color: var(--ff-error-border);
    color: var(--ff-error-text);
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input, select, textarea):focus,
  .withdrawal-message-v35 textarea:focus {
    outline: 3px solid var(--ff-focus);
    outline-offset: 3px;
    border-color: var(--ff-focus);
  }
  :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35, .selector-form, .settings-panel) input:is([type="checkbox"], [type="radio"]) {
    accent-color: var(--ff-accent);
    color-scheme: dark;
  }
  :is(.cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35, .selector-form, .settings-panel) input:is([type="checkbox"], [type="radio"]):focus-visible,
  .membership-choice-card-v35:has(input:focus-visible),
  .membership-tariff-card-v35:has(input:focus-visible),
  .selector-form label:has(input:focus-visible) {
    outline: 3px solid var(--ff-focus);
    outline-offset: 3px;
  }
  :is(.contact-field-v25, .membership-form-grid-v35, .withdrawal-form-v35) :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea):disabled {
    background: var(--ff-section);
    color: var(--ff-subtle);
    -webkit-text-fill-color: var(--ff-subtle);
    border-color: var(--ff-border);
    border-style: dashed;
    opacity: 1;
    cursor: not-allowed;
  }
  .cancellation-date-field-v27.is-inactive {
    opacity: 1;
  }
  .cancellation-date-field-v27.is-inactive > span {
    color: var(--ff-subtle);
  }
  .settings-panel input:disabled {
    opacity: 1;
  }

  /* Existing primary, secondary and waiting buttons keep their actions. */
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .membership-age-note-v35, .membership-success-v35, .withdrawal-form-v35, .selector-form, .consent, .settings-panel, .withdrawal-template-actions-v35) .button {
    background: var(--ff-primary);
    color: var(--ff-on-primary);
    border-color: var(--ff-primary);
    box-shadow: 0 10px 28px #10081933;
  }
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .membership-age-note-v35, .membership-success-v35, .withdrawal-form-v35, .selector-form, .consent, .settings-panel, .withdrawal-template-actions-v35) .button:hover:not(:disabled) {
    background: var(--ff-accent);
    color: var(--ff-on-primary);
  }
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .membership-age-note-v35, .membership-success-v35, .withdrawal-form-v35, .selector-form, .consent, .settings-panel, .withdrawal-template-actions-v35) .button-secondary {
    background: var(--ff-field);
    color: var(--ff-accent);
    border-color: var(--ff-border);
    box-shadow: none;
  }
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .membership-age-note-v35, .membership-success-v35, .withdrawal-form-v35, .selector-form, .consent, .settings-panel, .withdrawal-template-actions-v35) .button-secondary:hover:not(:disabled) {
    background: var(--ff-raised);
    color: var(--ff-text);
    border-color: var(--ff-accent);
  }
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35) .button:disabled {
    background: var(--ff-raised);
    color: var(--ff-muted);
    border-color: var(--ff-border);
    opacity: 1;
    box-shadow: none;
  }
  body :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .withdrawal-form-v35) .button:disabled:hover {
    background: var(--ff-raised);
    color: var(--ff-muted);
    border-color: var(--ff-border);
    transform: none;
  }
  :is(.contact-form-v25, .cancellation-form-v27, .membership-form-v35, .membership-age-note-v35, .membership-success-v35, .withdrawal-form-v35, .selector-form, .consent, .settings-panel, .withdrawal-template-actions-v35) :is(a, button, summary):focus-visible,
  .membership-locked-studio-links-v39 a:focus-visible {
    outline: 3px solid var(--ff-focus);
    outline-offset: 4px;
  }

  /* Native modal dialogs are inserted by the unchanged shared JavaScript. */
  .contact-dialog-v26,
  .cancellation-dialog-v27,
  .membership-location-dialog-v41 {
    color: var(--ff-text);
    color-scheme: dark;
  }
  .contact-dialog-v26::backdrop,
  .cancellation-dialog-v27::backdrop,
  .membership-location-dialog-v41::backdrop {
    background: #100719d6;
  }
  .contact-dialog-panel-v26,
  .cancellation-dialog-panel-v27,
  .membership-location-panel-v41 {
    background: var(--ff-card);
    color: var(--ff-text);
    border-color: var(--ff-border);
    box-shadow: 0 26px 80px #10081966;
    scrollbar-color: var(--ff-border) var(--ff-card);
  }
  .contact-form-card-v25::before,
  .contact-dialog-panel-v26::before,
  .cancellation-dialog-panel-v27::before,
  .membership-location-panel-v41::before {
    background: linear-gradient(90deg, var(--ff-primary), var(--ff-accent));
  }
  .contact-dialog-heading-v26 h2,
  .cancellation-dialog-heading-v27 h2,
  .membership-location-panel-v41 h2 {
    color: var(--ff-text);
  }
  .contact-dialog-heading-v26 p:last-child,
  .cancellation-dialog-heading-v27 p:last-child,
  .membership-location-intro-v41,
  .membership-location-grid-v41 small {
    color: var(--ff-muted);
  }
  .contact-dialog-close-v26,
  .cancellation-dialog-close-v27,
  .membership-location-close-v41 {
    background: var(--ff-field);
    color: var(--ff-text);
    border-color: var(--ff-border);
  }
  .contact-dialog-close-v26:hover,
  .cancellation-dialog-close-v27:hover,
  .membership-location-close-v41:hover,
  .contact-dialog-close-v26:focus-visible,
  .cancellation-dialog-close-v27:focus-visible,
  .membership-location-close-v41:focus-visible {
    background: var(--ff-raised);
    color: var(--ff-text);
    border-color: var(--ff-accent);
  }
  .contact-dialog-close-v26:focus-visible,
  .cancellation-dialog-close-v27:focus-visible,
  .membership-location-close-v41:focus-visible,
  .membership-location-grid-v41 a:focus-visible {
    outline: 3px solid var(--ff-focus);
    outline-offset: 3px;
  }
  .membership-location-grid-v41 a {
    background: var(--ff-section);
    color: var(--ff-text);
    border-color: var(--ff-border);
  }
  .membership-location-grid-v41 a:hover,
  .membership-location-grid-v41 a:focus-visible {
    background: var(--ff-raised);
    color: var(--ff-text);
    border-color: var(--ff-accent);
    box-shadow: 0 14px 32px #10081940;
  }
  .membership-location-grid-v41 span,
  .membership-location-grid-v41 b {
    color: var(--ff-accent);
  }

  /* Studio contact cards contain their own primary contact-form trigger. */
  body .contact-card a.contact-form-trigger-v26 {
    background: var(--ff-primary);
    color: var(--ff-on-primary);
    border-color: var(--ff-primary);
  }
  body .contact-card a.contact-form-trigger-v26:hover,
  body .contact-card a.contact-form-trigger-v26:focus-visible {
    background: var(--ff-primary-hover, var(--ff-accent));
    color: var(--ff-on-primary);
    border-color: var(--ff-primary-hover, var(--ff-accent));
  }
  body .contact-card a.contact-form-trigger-v26 span {
    color: inherit;
  }

  /* Consent preferences and the on-screen printable withdrawal template. */
  .settings-panel > label,
  .selector-form label,
  .withdrawal-template-line-v35 {
    border-color: var(--ff-border);
  }
  .settings-panel > label:has(input:focus-visible) {
    background: var(--ff-raised);
  }
  .withdrawal-template-card-v35 {
    border-top-color: var(--ff-accent);
  }

  /* Status palettes use light text and visible borders on dark surfaces. */
  .membership-system-status-v35 {
    background: var(--ff-raised);
    color: var(--ff-text);
    border-color: var(--ff-border);
    border-left-color: var(--ff-accent);
  }
  .contact-status-v25.is-success,
  .cancellation-status-v27.is-success,
  .membership-system-status-v35.is-ready,
  .membership-success-v35,
  .membership-offer-v35,
  .success-message {
    background: var(--ff-success-bg);
    color: var(--ff-success-text);
    border-color: var(--ff-success-border);
  }
  .contact-status-v25.is-warning,
  .cancellation-status-v27.is-warning,
  .membership-underage-v35 {
    background: var(--ff-warning-bg);
    color: var(--ff-warning-text);
    border-color: var(--ff-warning-border);
  }
  .contact-status-v25.is-error,
  .cancellation-status-v27.is-error,
  .membership-system-status-v35.is-error,
  .membership-error-summary-v35,
  .form-error {
    background: var(--ff-error-bg);
    color: var(--ff-error-text);
    border-color: var(--ff-error-border);
  }
  .membership-success-v35 h2,
  .membership-success-v35 > p,
  .membership-success-v35 .membership-contract-number-v35 {
    color: var(--ff-success-text);
  }
  .membership-success-icon-v35,
  .status-page .success-icon {
    background: var(--ff-success-bg);
    color: var(--ff-success-text);
    border: 1px solid var(--ff-success-border);
  }
  :is(.membership-underage-v35, .contact-status-v25, .cancellation-status-v27) :is(p, strong, span, small) {
    color: inherit;
  }
  :is(.contact-status-v25, .cancellation-status-v27, .membership-underage-v35, .membership-error-summary-v35, .membership-system-status-v35) a:not(.button) {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .success-message,
  .form-error {
    padding: 12px 14px;
    border-width: 1px;
    border-style: solid;
    border-radius: 8px;
  }
}


@media screen {
  /* Solid readability across the whole brand gradient, including its lightest stop. */
  .brand-creed{background:linear-gradient(105deg,#5f1f77,#713187 55%,#542466)}
  .contact-card .contact-form-trigger-v26{background:var(--ff-primary);color:var(--ff-on-primary);border-color:var(--ff-primary)}
  .contact-card .contact-form-trigger-v26:hover{background:var(--ff-primary-hover);color:var(--ff-on-primary);border-color:var(--ff-primary-hover)}
  .contact-grid .contact-row b{color:var(--ff-accent)}
  .youth-location-grid>article,.action-overview-card,.withdrawal-template-card-v35{min-width:0;overflow-wrap:anywhere}
  .youth-location-grid .button,.action-status{white-space:normal;max-width:100%}
  .legal-page{overflow-wrap:anywhere}
  .fight-location-grid>article,.contact-grid>article,.cancellation-card-v27,.withdrawal-template-intro-v35{min-width:0;overflow-wrap:anywhere}
  .fight-location-grid .button,.contact-grid .button{white-space:normal;max-width:100%}
  .form-page>div{min-width:0;overflow-wrap:anywhere}
  .faq-list summary{padding-right:16px;overflow-wrap:anywhere}
  .faq-list summary span{flex:0 0 24px;line-height:24px;text-align:center}
  @media(max-width:980px){.form-page{grid-template-columns:minmax(0,1fr)}}
  @media(min-width:700px){
    .home-hero .hero-media::after{background:linear-gradient(90deg,rgba(24,15,30,.96),rgba(24,15,30,.86) 64%,rgba(24,15,30,.12) 100%)}
  }
  /* The text column remains covered even over the brightest original photo pixels. */
  .fitness-hub-hero-v14::after{background:linear-gradient(90deg,rgba(24,15,30,.96),rgba(24,15,30,.86) calc(max(18px,(100% - 1180px)/2) + 760px),rgba(24,15,30,.10) 100%)}
  .fitness-hub-hero-copy-v14 .eyebrow{color:var(--ff-accent)}
  @media(max-width:620px){
    .contact-grid .contact-row{flex-wrap:wrap;gap:6px 16px}
    .fitness-hub-hero-v14{display:block;min-height:0;background:var(--ff-section)}
    .fitness-hub-hero-v14>img{position:relative;display:block;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:70% center}
    .fitness-hub-hero-v14::after{display:none}
    .fitness-hub-hero-copy-v14{padding-top:36px;padding-bottom:48px}
  }
}


/* FITfactory v48 – Wellpass Hero und Icon-System */
@media screen {
  .sr-only {
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
  }

  /* A genuine full-width subject hero: photo and gradient reach both viewport edges,
     while all readable copy remains in the established 1180px shell. */
  .wellpass-hero {
    position:relative;
    isolation:isolate;
    min-height:clamp(650px,50vw,760px);
    padding:0;
    overflow:hidden;
    overflow:clip;
    background:
      radial-gradient(circle at 22% 18%,rgba(237,184,255,.14),transparent 34%),
      linear-gradient(120deg,#211429 0%,#35173f 49.8%,#26132f 50%,#211429 100%);
  }
  .wellpass-hero-grid {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0,50%) minmax(0,50%);
    align-items:center;
    min-height:inherit;
    gap:0;
  }
  .wellpass-hero-copy-v48 {
    grid-column:1;
    width:min(100%,620px);
    padding:clamp(64px,7vw,104px) clamp(28px,4vw,64px) clamp(68px,7vw,110px) 0;
  }
  .wellpass-hero h1 {
    max-width:610px;
    margin:10px 0 22px;
    font-size:clamp(2.75rem,4.25vw,4.25rem);
    line-height:.98;
    overflow-wrap:normal;
    text-wrap:balance;
  }
  .wellpass-hero .lead {
    max-width:590px;
    margin:0 0 28px;
    color:#f1e9f3;
    font-size:clamp(1rem,1.15vw,1.08rem);
    line-height:1.72;
  }
  .wellpass-hero-media-v48 {
    position:absolute;
    z-index:1;
    inset:0 0 0 50%;
    margin:0;
    overflow:hidden;
    background:#211429;
  }
  .wellpass-hero-media-v48::after {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(53,23,63,.88) 0,rgba(53,23,63,.30) 10%,transparent 27%);
  }
  .wellpass-hero-media-v48 picture,
  .wellpass-hero-media-v48 img {
    display:block;
    width:100%;
    height:100%;
  }
  .wellpass-hero-media-v48 img {
    object-fit:cover;
    object-position:50% 44%;
    border-radius:0;
  }
  .wellpass-hero-media-v48 figcaption {
    position:absolute;
    z-index:2;
    right:max(18px,calc((100vw - 1180px)/2));
    bottom:18px;
    max-width:calc(100% - 36px);
    margin:0;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:8px;
    background:rgba(24,15,30,.78);
    color:#f5eef7;
    font-size:.82rem;
    font-weight:700;
    backdrop-filter:blur(7px);
  }

  /* Confirmed availability uses the existing success family and remains text-led. */
  .wellpass-badge {
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:34px;
    max-width:100%;
    margin:0 0 16px;
    padding:7px 12px;
    border:1px solid #71c995;
    border-radius:10px;
    background:#17382e;
    color:#c5f4d7;
    box-shadow:0 0 18px rgba(113,201,149,.13);
    font-size:.82rem;
    font-weight:780;
    line-height:1.35;
    overflow-wrap:anywhere;
    cursor:default;
  }
  .wellpass-badge::before {
    content:"";
    width:18px;
    height:18px;
    flex:0 0 18px;
    border-radius:0;
    background:#80d7a5;
    box-shadow:none;
    -webkit-mask:url("/brand/icons/theme-wellpass-available.svg?v=20260904-48") center/contain no-repeat;
    mask:url("/brand/icons/theme-wellpass-available.svg?v=20260904-48") center/contain no-repeat;
  }
  .wellpass-studio .wellpass-badge { margin-bottom:18px; }

  /* One quiet 24px monochrome platform system; visible names remain the link label. */
  .social-links a {
    min-width:0;
  }
  .social-links.compact a {
    min-height:44px;
    padding:8px 11px;
  }
  .social-links a[data-track] > .social-icon {
    display:block;
    width:24px;
    height:24px;
    flex:0 0 24px;
    overflow:visible;
    border-radius:0;
    background:currentColor;
    background-image:none;
    box-shadow:none;
    color:#f3eaf6;
    font-size:0;
  }
  .social-links a[data-track] > .social-icon-instagram {
    -webkit-mask:url("/brand/social/instagram.svg?v=20260904-48") center/contain no-repeat;
    mask:url("/brand/social/instagram.svg?v=20260904-48") center/contain no-repeat;
  }
  .social-links a[data-track] > .social-icon-facebook {
    -webkit-mask:url("/brand/social/facebook.svg?v=20260904-48") center/contain no-repeat;
    mask:url("/brand/social/facebook.svg?v=20260904-48") center/contain no-repeat;
  }
  .social-links a[data-track] > .social-icon-threads {
    -webkit-mask:url("/brand/social/threads.svg?v=20260904-48") center/contain no-repeat;
    mask:url("/brand/social/threads.svg?v=20260904-48") center/contain no-repeat;
  }
  .social-links a[data-track] > .social-icon-youtube {
    -webkit-mask:url("/brand/social/youtube.svg?v=20260904-48") center/contain no-repeat;
    mask:url("/brand/social/youtube.svg?v=20260904-48") center/contain no-repeat;
  }
  .social-links a[data-track]:hover > .social-icon,
  .social-links a[data-track]:focus-visible > .social-icon { color:var(--ff-accent); }
  .social-links a b { margin-left:auto; }
  .social-links a:focus-visible {
    outline:3px solid var(--ff-focus);
    outline-offset:3px;
  }

  /* Topic icons sit in a shared tile; the card copy carries all meaning. */
  .topic-icon {
    display:inline-grid;
    place-items:center;
    width:46px;
    height:46px;
    flex:0 0 46px;
    border:1px solid #a083b0;
    border-radius:13px;
    background:#291b32;
    color:#edb8ff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
    vertical-align:middle;
  }
  .topic-icon::before {
    content:"";
    width:28px;
    height:28px;
    background:currentColor;
    -webkit-mask:var(--topic-icon) center/contain no-repeat;
    mask:var(--topic-icon) center/contain no-repeat;
  }
  .topic-icon-active-pass{--topic-icon:url("/brand/icons/theme-active-pass.svg?v=20260904-48")}
  .topic-icon-boxing-glove{--topic-icon:url("/brand/icons/theme-boxing-glove.svg?v=20260904-48")}
  .topic-icon-calendar-check{--topic-icon:url("/brand/icons/theme-calendar-check.svg?v=20260904-48")}
  .topic-icon-cardio{--topic-icon:url("/brand/icons/theme-cardio.svg?v=20260904-48")}
  .topic-icon-check-in{--topic-icon:url("/brand/icons/theme-check-in.svg?v=20260904-48")}
  .topic-icon-clock{--topic-icon:url("/brand/icons/theme-clock.svg?v=20260904-48")}
  .topic-icon-coaching{--topic-icon:url("/brand/icons/theme-coaching.svg?v=20260904-48")}
  .topic-icon-contact{--topic-icon:url("/brand/icons/theme-contact.svg?v=20260904-48")}
  .topic-icon-contract{--topic-icon:url("/brand/icons/theme-contract.svg?v=20260904-48")}
  .topic-icon-employer{--topic-icon:url("/brand/icons/theme-employer.svg?v=20260904-48")}
  .topic-icon-first-visit{--topic-icon:url("/brand/icons/theme-first-visit.svg?v=20260904-48")}
  .topic-icon-focus{--topic-icon:url("/brand/icons/theme-focus.svg?v=20260904-48")}
  .topic-icon-help{--topic-icon:url("/brand/icons/theme-help.svg?v=20260904-48")}
  .topic-icon-location{--topic-icon:url("/brand/icons/theme-location.svg?v=20260904-48")}
  .topic-icon-mobility{--topic-icon:url("/brand/icons/theme-mobility.svg?v=20260904-48")}
  .topic-icon-online-form{--topic-icon:url("/brand/icons/theme-online-form.svg?v=20260904-48")}
  .topic-icon-price{--topic-icon:url("/brand/icons/theme-price.svg?v=20260904-48")}
  .topic-icon-progress{--topic-icon:url("/brand/icons/theme-progress.svg?v=20260904-48")}
  .topic-icon-services{--topic-icon:url("/brand/icons/theme-services.svg?v=20260904-48")}
  .topic-icon-studios{--topic-icon:url("/brand/icons/theme-studios.svg?v=20260904-48")}
  .topic-icon-technology{--topic-icon:url("/brand/icons/theme-technology.svg?v=20260904-48")}
  .topic-icon-training{--topic-icon:url("/brand/icons/theme-training.svg?v=20260904-48")}
  .topic-icon-wellpass-available{--topic-icon:url("/brand/icons/theme-wellpass-available.svg?v=20260904-48")}

  :is(.location-card,.benefit-grid article,.training-grid article,.local-benefits article,
      .fight-feature-grid article,.value-grid article,.youth-benefits article,
      .action-info-grid article,.area-card-v13,.wellpass-location-card) > .topic-icon {
    margin-bottom:20px;
  }
  :is(.location-card,.benefit-grid article,.training-grid article,.fight-feature-grid article,
      .value-grid article,.youth-benefits article,.action-info-grid article,
      .area-card-v13,.wellpass-location-card) > .topic-icon + :is(h2,h3,h4) {
    margin-top:0;
  }
  .local-benefits article { align-content:start; }
  .local-benefits article > .topic-icon + p { margin-top:0; }
  .area-card-v13.featured > .topic-icon {
    background:#2b1735;
    border-color:#c59ad5;
    color:#f4ceff;
  }

  /* Ordered processes keep native ol/li semantics, an explicit screen-reader step
     prefix and a small visual step label, while the former oversized number is gone. */
  .step-meta-v48 {
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    margin:0 0 20px;
  }
  .step-label-v48 {
    color:var(--ff-muted);
    font-size:.75rem;
    font-weight:800;
    letter-spacing:.065em;
    line-height:1.2;
    text-transform:uppercase;
  }
  .step-grid h3,
  .wellpass-steps h3,
  .egym-process-v13 h3,
  .fitness-hub-steps-v14 h4 { margin-top:0; }
  .wellpass-steps li > .step-meta-v48 { margin-bottom:18px; }
  ol.egym-process-v13,
  ol.fitness-hub-steps-v14 {
    list-style:none;
    padding-left:0;
  }
  .egym-process-v13 li {
    min-width:0;
    padding:24px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:14px;
    background:rgba(255,255,255,.04);
  }
  .egym-process-v13 li p {
    margin:0;
    color:#cfc8d1;
    font-size:.94rem;
  }
  .fitness-hub-steps-v14 li {
    min-width:0;
    padding:18px;
    border:1px solid var(--ff-divider);
    border-radius:13px;
    background:var(--ff-card);
    box-shadow:0 12px 36px rgba(8,4,14,.15);
  }
  .fitness-hub-steps-v14 li p {
    margin:0;
    color:var(--ff-muted);
    font-size:.9rem;
  }
  .mini-steps {
    list-style:none;
    padding-left:0;
  }
  .mini-steps li {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    align-items:start;
  }
  .mini-steps .step-meta-v48 { margin-bottom:2px; }
  .mini-step-copy-v48 { display:block; }
}

@media screen and (max-width:1199px) {
  .wellpass-hero {
    display:flex;
    flex-direction:column;
    min-height:0;
    background:
      radial-gradient(circle at 22% 20%,rgba(237,184,255,.13),transparent 38%),
      linear-gradient(130deg,#211429,#3b1947 72%,#4b2159);
  }
  .wellpass-hero-media-v48 {
    position:relative;
    inset:auto;
    order:-1;
    width:100%;
    aspect-ratio:16/9;
  }
  .wellpass-hero-media-v48::after {
    background:linear-gradient(0deg,rgba(33,20,41,.42),transparent 28%);
  }
  .wellpass-hero-media-v48 img { object-position:50% 48%; }
  .wellpass-hero-grid {
    display:block;
    width:min(1180px,100% - 70px);
    min-height:0;
  }
  .wellpass-hero-copy-v48 {
    width:min(100%,780px);
    padding:46px 0 58px;
  }
  .wellpass-hero h1 {
    max-width:760px;
    font-size:clamp(3rem,7vw,4.6rem);
  }
  .wellpass-hero .lead { max-width:740px; }
  .wellpass-hero-media-v48 figcaption { right:18px; }
}

@media screen and (min-width:700px) {
  .step-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media screen and (max-width:699px) {
  .wellpass-hero-media-v48 { aspect-ratio:4/5; }
  .wellpass-hero-media-v48 img { object-position:50% 45%; }
  .wellpass-hero-grid { width:min(100% - 36px,1180px); }
  .wellpass-hero-copy-v48 { padding:34px 0 44px; }
  .wellpass-hero h1 {
    margin-bottom:18px;
    font-size:clamp(2.35rem,11.5vw,3.45rem);
    line-height:1;
    text-wrap:wrap;
  }
  .wellpass-hero .lead { font-size:.98rem; line-height:1.65; }
  .wellpass-hero .button { width:100%; }
  .wellpass-hero-media-v48 figcaption { bottom:12px; }
  .topic-icon { width:44px; height:44px; flex-basis:44px; }
}

@media screen and (max-width:359px) {
  .wellpass-hero-grid { width:min(100% - 28px,1180px); }
  .wellpass-hero h1 { font-size:2.25rem; }
  .wellpass-badge { align-items:flex-start; }
}

@media (forced-colors:active) {
  .wellpass-badge,
  .topic-icon { background:Canvas; color:CanvasText; border-color:CanvasText; box-shadow:none; }
  .wellpass-badge::before,
  .topic-icon::before,
  .social-links a[data-track] > .social-icon { background:CanvasText; color:CanvasText; }
}

@media (prefers-reduced-motion:reduce) {
  .social-links a { transition:none; }
}

/* FITfactory v49 – responsive Bilderwelt und echte Fotobänder */
@media screen {
  .home-hero-v49 {
    min-height:0;
    background:#180f1e;
    overflow:hidden;
    overflow:clip;
  }
  .home-hero-v49 .hero-layout {
    position:static;
    min-height:clamp(660px,calc(100svh - 84px),820px);
  }
  .home-hero-v49 .hero-media {
    inset:0;
    left:0;
    right:0;
    width:auto;
    transform:none;
  }
  .home-hero-v49 .hero-media::after {
    background:
      linear-gradient(90deg,rgba(24,15,30,.98) 0%,rgba(24,15,30,.96) 25%,rgba(24,15,30,.82) 36%,rgba(24,15,30,.28) 52%,rgba(24,15,30,.04) 72%),
      linear-gradient(0deg,rgba(13,8,17,.40),transparent 38%);
  }
  .home-hero-v49 .hero-media picture,
  .home-hero-v49 .hero-media img {
    display:block;
    width:100%;
    height:100%;
  }
  .home-hero-v49 .hero-media img {
    position:static;
    object-fit:cover;
    object-position:center;
  }
  .home-hero-v49 .hero-copy {
    width:min(620px,55%);
    padding:58px 0 70px;
  }
  .home-hero-v49 .hero-copy h1 {
    font-size:clamp(5.4rem,7.1vw,6rem);
  }
  .home-hero-v49 .media-badge {
    right:max(18px,calc((100% - 1180px)/2));
    width:min(410px,calc(100% - 36px));
  }

  .studio-photo-band-v49 {
    width:100%;
    margin:0;
    background:#140d19;
    overflow:hidden;
  }
  .studio-photo-band-v49 picture,
  .studio-photo-band-v49 img {
    display:block;
    width:100%;
  }
  .studio-photo-band-v49 img {
    height:auto;
    object-fit:cover;
  }
  .studio-photo-band-v49 figcaption {
    margin:0;
    border-top:1px solid rgba(215,167,231,.18);
    background:#1b1023;
    color:var(--ff-muted);
    font-size:.82rem;
    font-weight:700;
  }
  .studio-photo-band-v49 figcaption .shell {
    display:block;
    padding-block:13px 15px;
  }

  .image-feature-v49 {
    display:grid;
    align-items:center;
    gap:30px;
    padding:26px 0 64px;
  }
  .image-feature-v49 figure,
  .trial-image-v49 {
    margin:0;
  }
  .image-feature-v49 picture,
  .image-feature-v49 img,
  .trial-image-v49 picture,
  .trial-image-v49 img,
  .photo-story-v49 picture {
    display:block;
    width:100%;
  }
  .image-feature-v49 img,
  .trial-image-v49 img {
    height:auto;
    border-radius:18px;
    object-fit:cover;
    box-shadow:0 22px 55px rgba(0,0,0,.32);
  }
  .image-feature-v49 h2 {
    max-width:620px;
    font-size:clamp(2.5rem,5.2vw,4.5rem);
  }
  .image-feature-v49 p:not(.eyebrow) {
    max-width:620px;
    color:var(--ff-muted);
  }
  .trial-image-v49 {
    margin-top:32px;
  }
  .trial-image-v49 figcaption {
    padding-top:10px;
    color:var(--ff-muted);
    font-size:.82rem;
  }
  .photo-story-v49 picture,
  .photo-story-v49 img {
    height:100%;
  }
  .photo-story-v49 img {
    object-position:center;
  }
}

@media (min-width:800px) {
  .image-feature-v49 {
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    gap:clamp(42px,7vw,88px);
    padding:34px 0 82px;
  }
}

@media (min-width:1600px) {
  .home-hero-v49 .hero-copy { width:min(620px,55%); }
}

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

@media (max-width:899px) {
  .home-hero-v49 .hero-media { aspect-ratio:8/5; }
}

@media (max-width:699px) {
  .home-hero-v49 .hero-media { aspect-ratio:4/5; }
  .home-hero-v49 .hero-copy {
    width:min(calc(100% - 36px),620px);
    padding:38px 0 48px;
  }
  .home-hero-v49 .hero-copy h1 {
    font-size:clamp(3.15rem,14vw,4.8rem);
  }
  .home-hero-v49 .media-badge {
    right:18px;
    left:18px;
    bottom:14px;
  }
  .studio-photo-band-v49 figcaption .shell { padding-block:11px 13px; }
  .image-feature-v49 { padding-bottom:48px; }
  .trial-image-v49 { margin-top:26px; }
}


/* v49 responsive Training image wrappers */
.training-hero-media picture,
.smart-strength-gallery-v15 picture,
.fitness-hub-visuals-v14 picture,
.method-feature-v13 picture,
.app-visual-v13 picture {
  display:block;
  width:100%;
}
.training-hero-media picture img,
.smart-strength-gallery-v15 picture img,
.fitness-hub-visuals-v14 picture img,
.method-feature-v13 picture img,
.app-visual-v13 picture img {
  display:block;
  width:100%;
  height:auto;
}
.fitness-hub-hero-v14 > .fitness-hub-picture-v49 {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.fitness-hub-hero-v14 > .fitness-hub-picture-v49 > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 46%;
}
@media(max-width:620px) {
  .fitness-hub-hero-v14 > .fitness-hub-picture-v49 {
    position:relative;
    inset:auto;
    height:auto;
  }
  .fitness-hub-hero-v14 > .fitness-hub-picture-v49 > img {
    height:auto;
    aspect-ratio:16 / 10;
    object-fit:cover;
    object-position:58% center;
  }
}

/* FITfactory v55 career release */
@media screen {
  .career-preview-gate {
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:16px;
    align-items:start;
    margin-block:24px;
    padding:18px 22px;
    border:1px solid var(--ff-warning-border,#e4b967);
    border-left-width:5px;
    border-radius:14px;
    background:var(--ff-warning-bg,#44351e);
    color:var(--ff-warning-text,#ffe0a6);
  }
  .career-preview-gate strong { display:block; margin-bottom:4px; color:inherit; }
  .career-preview-gate p { margin:0; max-width:1000px; color:inherit; line-height:1.55; }
  .career-preview-lock {
    position:relative;
    display:block;
    width:32px;
    height:26px;
    margin-top:8px;
    border:2px solid currentColor;
    border-radius:5px;
  }
  .career-preview-lock::before {
    position:absolute;
    left:7px;
    bottom:22px;
    width:14px;
    height:13px;
    border:2px solid currentColor;
    border-bottom:0;
    border-radius:9px 9px 0 0;
    content:"";
  }

  .career-hero {
    position:relative;
    isolation:isolate;
    display:grid;
    min-height:clamp(620px,67vh,760px);
    overflow:hidden;
    background:#160d1c;
  }
  .career-role-hero { min-height:clamp(560px,61vh,680px); }
  .career-hero-picture,
  .career-hero-picture img {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
  }
  .career-hero-picture img { object-fit:cover; object-position:center center; }
  .career-hero-overlay {
    position:absolute;
    z-index:1;
    inset:0;
    background:
      linear-gradient(90deg,#140b1cf7 0%,#1b1021ec 31%,#211429c9 46%,#21142962 67%,#21142910 88%),
      linear-gradient(0deg,#160d1c82 0%,transparent 40%);
  }
  .career-hero-inner {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    width:min(1440px,calc(100% - 36px));
    margin-inline:auto;
    min-height:inherit;
    padding-block:78px;
  }
  .career-hero-copy { width:min(650px,54%); }
  .career-hero-copy .eyebrow { color:#edb8ff; }
  .career-hero-copy h1 {
    margin:10px 0 22px;
    max-width:760px;
    color:#fff;
    font-size:clamp(3.5rem,4.75vw,4.25rem);
    line-height:.91;
    letter-spacing:-.025em;
    overflow-wrap:anywhere;
    text-wrap:balance;
  }
  .career-role-hero .career-hero-copy h1 { font-size:clamp(3.5rem,4.3vw,4.25rem); }
  .career-hero-copy h1 em { color:#edb8ff; font-style:normal; }
  .career-hero-copy .lead { max-width:630px; margin-bottom:28px; color:#f1e8f4; font-size:1.08rem; line-height:1.72; }
  .career-hero-copy .button-secondary { border-color:#e4cee9; color:#fff; background:#1a0e22a8; }
  .career-hero-copy .button-secondary:hover { border-color:#fff; background:#42264e; }
  .career-hero-facts { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
  .career-hero-facts span {
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:6px 11px;
    border:1px solid #c9afd273;
    border-radius:99px;
    background:#1b1021a8;
    color:#eee3f2;
    font-size:.78rem;
    font-weight:760;
  }

  .career-intro {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
    gap:70px;
    align-items:center;
  }
  .career-intro > div > p:not(.eyebrow) { max-width:760px; color:var(--ff-muted); line-height:1.78; }
  .career-creed {
    padding:34px;
    border:1px solid var(--ff-divider);
    border-radius:18px;
    background:linear-gradient(145deg,#4a2857,#32203d);
    box-shadow:0 20px 50px #08040e36;
  }
  .career-creed h2 { margin:10px 0 18px; color:var(--ff-accent); font-size:clamp(2.7rem,4vw,4rem); line-height:.94; }
  .career-creed p:last-child { margin:0; color:var(--ff-muted); }

  .career-values,
  .career-role-section,
  .career-responsibilities,
  .career-path-detail,
  .career-process-section,
  .career-application-section { background:var(--ff-section); }
  .career-value-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
  }
  .career-value-grid article {
    min-width:0;
    padding:28px;
    border:1px solid var(--ff-divider);
    border-radius:16px;
    background:var(--ff-card);
  }
  .career-value-grid h3 { margin:18px 0 10px; font-size:1.5rem; }
  .career-value-grid p { margin:0; color:var(--ff-muted); line-height:1.68; }

  .career-team-story {
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(310px,.85fr);
    gap:64px;
    align-items:center;
  }
  .career-team-story figure { min-width:0; margin:0; }
  .career-team-story picture,
  .career-team-story img { display:block; width:100%; }
  .career-team-story img { height:auto; border-radius:18px; }
  .career-team-story figcaption { margin-top:10px; color:var(--ff-subtle); font-size:.78rem; line-height:1.55; }
  .career-team-story > div p:not(.eyebrow) { color:var(--ff-muted); line-height:1.75; }

  .career-role-card {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,350px);
    gap:32px;
    padding:36px;
    border:1px solid var(--ff-border);
    border-radius:20px;
    background:linear-gradient(140deg,var(--ff-card),#41294d);
    box-shadow:0 24px 58px #08040e3d;
  }
  .career-status {
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    min-height:32px;
    padding:5px 10px;
    border:1px solid currentColor;
    border-radius:99px;
    font-size:.76rem;
    font-weight:850;
    letter-spacing:.03em;
    text-transform:uppercase;
  }
  .career-status-draft { color:var(--ff-warning-text); background:var(--ff-warning-bg); }
  .career-role-main h3 { margin:18px 0 12px; font-size:clamp(2.35rem,4vw,3.75rem); }
  .career-role-main > p { max-width:760px; color:var(--ff-muted); font-size:1.04rem; line-height:1.72; }
  .career-role-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:26px; }
  .career-role-meta span {
    display:grid;
    gap:4px;
    padding:14px;
    border:1px solid var(--ff-divider);
    border-radius:12px;
    background:var(--ff-field);
    color:var(--ff-muted);
    font-size:.82rem;
  }
  .career-role-meta b { color:var(--ff-text); font-size:.73rem; letter-spacing:.03em; text-transform:uppercase; }
  .career-role-action {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    padding:24px;
    border-left:1px solid var(--ff-divider);
  }
  .career-role-action p { color:var(--ff-muted); line-height:1.6; }
  .career-role-action .button { width:100%; margin-top:10px; justify-content:center; text-align:center; }

  .career-path {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
    margin:32px 0 0;
    padding:0;
    list-style:none;
    counter-reset:career-step;
  }
  .career-path li {
    position:relative;
    min-width:0;
    padding:24px 4px 0;
    border-top:3px solid var(--ff-accent);
    counter-increment:career-step;
  }
  .career-path li::after {
    position:absolute;
    top:-7px;
    right:0;
    width:11px;
    height:11px;
    border:2px solid var(--ff-section);
    border-radius:50%;
    background:var(--ff-accent);
    content:"";
  }
  .career-path small { display:block; margin-top:16px; color:var(--ff-accent); font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
  .career-path h3 { margin:7px 0 10px; font-size:1.65rem; }
  .career-path p { margin:0; color:var(--ff-muted); line-height:1.68; }
  .career-path-expanded { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .career-path-expanded > li {
    padding:28px;
    border:1px solid var(--ff-line);
    border-top:3px solid var(--ff-accent);
    border-radius:24px;
    background:linear-gradient(145deg,var(--ff-surface),var(--ff-section-soft));
    box-shadow:var(--ff-shadow-soft);
  }
  .career-path-expanded > li::after { top:-7px; right:24px; }
  .career-path-expanded > li > .topic-icon { width:48px; height:48px; }
  .career-stage-facts { display:grid; gap:0; margin:20px 0 0; }
  .career-stage-facts div {
    display:grid;
    grid-template-columns:minmax(175px,.38fr) minmax(0,1fr);
    gap:18px;
    padding:13px 0;
    border-top:1px solid var(--ff-line);
  }
  .career-stage-facts dt {
    color:var(--ff-accent-soft);
    font-size:.77rem;
    font-weight:850;
    letter-spacing:.07em;
    line-height:1.35;
    overflow-wrap:anywhere;
    text-transform:uppercase;
  }
  .career-stage-facts dd { margin:0; color:var(--ff-muted); line-height:1.55; }

  .career-process-section .section { padding-block:74px; }
  .career-draft-label { color:var(--ff-warning-text)!important; }
  .career-process {
    position:relative;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin:34px 0 0;
    padding:0;
    list-style:none;
  }
  .career-process::before {
    position:absolute;
    top:21px;
    left:7%;
    right:7%;
    height:2px;
    background:var(--ff-divider);
    content:"";
  }
  .career-process li { position:relative; z-index:1; display:grid; justify-items:center; gap:12px; text-align:center; }
  .career-process b {
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    border:2px solid var(--ff-accent);
    border-radius:50%;
    background:var(--ff-section);
    color:var(--ff-accent);
  }
  .career-process span { color:var(--ff-text); font-size:.9rem; font-weight:760; line-height:1.4; }
  .career-faq .faq-list { margin-top:26px; }
  .career-closing p:not(.eyebrow) { max-width:720px; margin-inline:auto; color:var(--ff-muted); }

  .career-home-teaser,
  .career-about-teaser { background:linear-gradient(120deg,#321b3d,#50265f); }
  .career-home-teaser .section {
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:26px;
    align-items:center;
    padding-block:58px;
  }
  .career-home-teaser h2,
  .career-about-teaser h2 { margin:4px 0 8px; font-size:clamp(2.35rem,4vw,3.7rem); }
  .career-home-teaser p:last-child,
  .career-about-teaser p:not(.eyebrow) { max-width:700px; margin:0; color:var(--ff-muted); line-height:1.65; }
  .career-home-teaser .button { white-space:nowrap; }
  .career-about-teaser .section {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:44px;
    align-items:center;
    padding-block:64px;
  }
  .career-about-teaser .button { margin-top:22px; }
  .career-about-teaser > .section > .topic-icon { width:82px; height:82px; }

  .career-job-head { background:var(--ff-section); }
  .career-job-head .section { padding-block:64px; }
  .career-job-head h2 { margin:16px 0 28px; font-size:clamp(3rem,5vw,5rem); }
  .career-job-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
  .career-job-facts > div { display:grid; gap:8px; padding:19px; border:1px solid var(--ff-divider); border-radius:14px; background:var(--ff-card); }
  .career-job-facts span { color:var(--ff-subtle); font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
  .career-job-facts strong { color:#f3a4ff; text-shadow:0 0 16px rgba(240,108,255,.16); }
  .career-gate-copy { max-width:940px; margin:24px 0 0; color:var(--ff-muted); line-height:1.65; }

  .career-role-intro { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:64px; align-items:start; }
  .career-role-intro > div > p:not(.eyebrow) { color:var(--ff-muted); line-height:1.75; }
  .career-definition { padding:30px; border:1px solid var(--ff-divider); border-left:4px solid var(--ff-accent); border-radius:0 16px 16px 0; background:var(--ff-card); }
  .career-definition h3 { margin:18px 0 10px; font-size:1.9rem; }
  .career-definition p { margin:0; color:var(--ff-muted); line-height:1.7; }

  .career-responsibility-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
  .career-responsibility-grid article { padding:28px; border:1px solid var(--ff-divider); border-radius:16px; background:var(--ff-card); }
  .career-responsibility-grid h3 { margin:18px 0 12px; }
  .career-responsibility-grid ul { margin:0; padding-left:20px; color:var(--ff-muted); }
  .career-responsibility-grid li { margin:8px 0; line-height:1.55; }
  .career-scope-note { margin-top:22px; padding:26px 30px; border:1px solid var(--ff-divider); border-radius:14px; background:var(--ff-field); }
  .career-scope-note h3 { margin:0 0 8px; }
  .career-scope-note p { margin:0; color:var(--ff-muted); line-height:1.68; }

  .career-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .career-profile-grid article { padding:34px; border:1px solid var(--ff-divider); border-radius:18px; background:var(--ff-card); }
  .career-check-list { display:grid; gap:12px; margin:22px 0 0; padding:0; list-style:none; }
  .career-check-list li { position:relative; padding-left:29px; color:var(--ff-muted); line-height:1.55; }
  .career-check-list li::before { position:absolute; left:0; top:.15em; color:var(--ff-accent); font-weight:900; content:"✓"; }
  .career-profile-grid .career-draft-label { margin:24px 0 0; font-size:.86rem; line-height:1.6; }

  .career-compensation { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:52px; align-items:center; }
  .career-compensation > div p:not(.eyebrow) { color:var(--ff-muted); line-height:1.72; }
  .career-compensation aside { padding:30px; border:1px solid #f06cff; border-radius:16px; background:linear-gradient(145deg,#32183d,#291a34); color:#f7f2fa; box-shadow:0 0 28px rgba(240,108,255,.09),inset 0 1px 0 rgba(255,255,255,.05); }
  .career-compensation aside .topic-icon { border-color:#f06cff; background:#32183d; color:#f3a4ff; box-shadow:0 0 18px rgba(240,108,255,.12); }
  .career-compensation aside strong { display:block; margin:17px 0 8px; color:#f3a4ff; font-size:1.2rem; }
  .career-compensation aside p { margin:0; color:#f7f2fa; line-height:1.65; }

  .career-application-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:58px; align-items:start; }
  .career-application-grid > div > p:not(.eyebrow) { color:var(--ff-muted); }
  .career-security-list { display:grid; gap:14px; margin-top:30px; }
  .career-security-list > div { display:grid; grid-template-columns:48px minmax(0,1fr); gap:14px; align-items:start; }
  .career-security-list p { display:grid; gap:3px; margin:0; color:var(--ff-muted); line-height:1.55; }
  .career-security-list strong { color:var(--ff-text); }
  .career-form { display:grid; gap:19px; min-width:0; padding:34px; border:1px solid var(--ff-border); border-radius:20px; background:var(--ff-card); box-shadow:0 24px 60px #08040e38; }
  .career-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .career-form label { display:grid; gap:8px; min-width:0; color:var(--ff-text); font-weight:760; }
  .career-form label span { line-height:1.4; }
  .career-form label em { color:var(--ff-subtle); font-size:.8rem; font-style:normal; font-weight:600; }
  .career-form :is(input,select,textarea) {
    width:100%;
    min-height:48px;
    border:1px solid var(--ff-border);
    border-radius:10px;
    background:var(--ff-field);
    color:var(--ff-text);
    font:inherit;
  }
  .career-form :is(input,select) { padding:0 13px; }
  .career-form textarea { min-height:112px; padding:12px 13px; resize:vertical; }
  .career-form ::placeholder { color:#a992b6; opacity:1; }
  .career-form-status { padding:13px 15px; border:1px solid var(--ff-border); border-radius:10px; background:var(--ff-field); color:var(--ff-muted); line-height:1.5; }
  .career-form-status.is-blocked { border-color:var(--ff-warning-border); background:var(--ff-warning-bg); color:var(--ff-warning-text); }
  .career-form-status.is-error { border-color:var(--ff-error-border); background:var(--ff-error-bg); color:var(--ff-error-text); }
  .career-form-status.is-success { border-color:var(--ff-success-border); background:var(--ff-success-bg); color:var(--ff-success-text); }
  .career-form-status.is-queued { border-color:#f06cff; background:#32183d; color:#f7f2fa; }
  .career-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
  .career-upload { padding:20px; border:1px dashed var(--ff-border); border-radius:14px; background:var(--ff-field); transition:border-color .2s ease,background .2s ease; }
  .career-upload.is-dragover { border-color:var(--ff-accent); background:#3a2546; }
  .career-upload > label { grid-template-columns:48px minmax(0,1fr); column-gap:14px; cursor:pointer; }
  .career-upload > label .topic-icon { grid-row:1 / span 2; }
  .career-upload > label strong { align-self:end; color:var(--ff-text); }
  .career-upload > label small { color:var(--ff-muted); font-weight:500; line-height:1.5; }
  .career-upload input[type=file] { height:auto; margin-top:15px; padding:10px; cursor:pointer; }
  .career-upload input[type=file]::file-selector-button { margin-right:12px; padding:8px 12px; border:0; border-radius:8px; background:var(--ff-primary); color:var(--ff-on-primary); font-weight:800; cursor:pointer; }
  .career-file-summary { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:14px; border-top:1px solid var(--ff-divider); color:var(--ff-muted); font-size:.88rem; }
  .career-file-summary button { min-height:42px; padding:8px 12px; border:1px solid var(--ff-border); border-radius:8px; background:transparent; color:var(--ff-text); font-weight:750; cursor:pointer; }
  .career-file-error { min-height:1.35em; margin:8px 0 0; color:var(--ff-error-text); font-size:.86rem; }
  .career-submit[disabled] { cursor:not-allowed; opacity:.58; transform:none; box-shadow:none; }
  .career-privacy-short { margin:0; color:var(--ff-muted); font-size:.84rem; line-height:1.62; }
  #bewerbungen { scroll-margin-top:120px; }
}

@media screen and (max-width:1099px) {
  .career-hero-copy { width:min(620px,66%); }
  .career-hero-copy h1,
  .career-role-hero .career-hero-copy h1 { font-size:clamp(2.8rem,5.7vw,3.75rem); }
  .career-hero-overlay { background:linear-gradient(90deg,#140b1cf5 0%,#1b1021e8 43%,#21142978 74%,#2114291a 100%); }
  .career-value-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .career-role-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .career-path { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:34px; }
  .career-job-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .career-application-grid { grid-template-columns:1fr; }
}

@media screen and (max-width:899px) {
  .career-intro,
  .career-team-story,
  .career-role-intro,
  .career-compensation { grid-template-columns:1fr; gap:34px; }
  .career-role-card { grid-template-columns:1fr; }
  .career-role-action { padding:24px 0 0; border-top:1px solid var(--ff-divider); border-left:0; }
  .career-responsibility-grid { grid-template-columns:1fr; }
  .career-profile-grid { grid-template-columns:1fr; }
  .career-path-expanded { grid-template-columns:1fr; }
  .career-home-teaser .section { grid-template-columns:auto minmax(0,1fr); }
  .career-home-teaser .button { grid-column:1 / -1; width:100%; justify-content:center; white-space:normal; text-align:center; }
}

@media screen and (max-width:699px) {
  .career-preview-gate { grid-template-columns:32px minmax(0,1fr); margin-block:14px; padding:16px; border-radius:10px; }
  .career-preview-lock { width:26px; height:22px; }
  .career-preview-lock::before { left:6px; bottom:18px; width:11px; height:11px; }
  .career-hero,
  .career-role-hero { display:block; min-height:0; }
  .career-hero-picture { position:relative; height:auto; aspect-ratio:1; }
  .career-hero-picture img { object-position:center center; }
  .career-hero-overlay { inset:0 0 auto; height:auto; aspect-ratio:1; background:linear-gradient(0deg,#160d1ca3 0%,transparent 54%); }
  .career-hero-inner { min-height:0; padding-block:38px 48px; }
  .career-hero-copy { width:100%; }
  .career-hero-copy h1,
  .career-role-hero .career-hero-copy h1 { font-size:clamp(1.85rem,9vw,3rem); line-height:.94; }
  .career-hero-copy .lead { font-size:.98rem; line-height:1.65; }
  .career-hero-copy .button-row { display:grid; grid-template-columns:1fr; }
  .career-hero-copy .button { width:100%; white-space:normal; text-align:center; }
  .career-hero-facts { display:grid; grid-template-columns:1fr; }
  .career-intro { padding-block:62px; }
  .career-creed { padding:25px; }
  .career-value-grid,
  .career-role-meta,
  .career-path,
  .career-job-facts { grid-template-columns:1fr; }
  .career-team-story { padding-block:62px; }
  .career-role-card { padding:25px 20px; }
  .career-role-section .section,
  .career-responsibilities .section,
  .career-path-detail .section,
  .career-application-section .section { padding-block:62px; }
  .career-process { grid-template-columns:1fr; gap:12px; }
  .career-process::before { top:20px; bottom:20px; left:21px; right:auto; width:2px; height:auto; }
  .career-process li { grid-template-columns:44px minmax(0,1fr); justify-items:start; align-items:center; text-align:left; }
  .career-path-expanded > li { padding:24px 20px; }
  .career-stage-facts div { grid-template-columns:1fr; gap:5px; }
  .career-process span { padding-left:6px; }
  .career-home-teaser .section { grid-template-columns:1fr; gap:18px; }
  .career-home-teaser .section > .topic-icon { margin-bottom:0; }
  .career-about-teaser .section { grid-template-columns:1fr; gap:24px; }
  .career-about-teaser > .section > .topic-icon { order:-1; width:58px; height:58px; }
  .career-job-head .section { padding-block:48px; }
  .career-job-head h2 { min-width:0; font-size:clamp(2rem,9vw,3rem); overflow-wrap:anywhere; }
  .career-role-section .section-heading > * { min-width:0; }
  .career-role-section .section-heading h2 { overflow-wrap:anywhere; }
  .career-role-intro { padding-block:62px; }
  .career-definition,
  .career-responsibility-grid article,
  .career-profile-grid article,
  .career-compensation aside,
  .career-form { padding:24px 20px; }
  .career-form-row { grid-template-columns:1fr; }
  .career-upload { padding:16px; }
  .career-upload > label { grid-template-columns:42px minmax(0,1fr); }
}

@media screen and (max-width:359px) {
  .career-hero-copy h1,
  .career-role-hero .career-hero-copy h1 { font-size:1.85rem; }
  .career-value-grid article { padding:22px 18px; }
  .career-form { padding-inline:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .career-upload { transition:none; }
}

@media (forced-colors:active) {
  .career-hero-overlay { background:Canvas; opacity:.88; }
  .career-preview-lock,
  .career-path li,
  .career-process b,
  .career-form,
  .career-upload { forced-color-adjust:auto; }
}
