@layer reset, base, layout, components, utilities, theme-overrides;

@layer reset {
    *,
    *::before,
    *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
    }
     .sticky-cta__link-desktop::before {
        display: none !important;
    }
}

@layer base {
	
	/* maven-pro-regular - latin */
	@font-face {
	  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	  font-family: 'Maven Pro';
	  font-style: normal;
	  font-weight: 400;
	  src: url('/assets/fonts/maven-pro/maven-pro-v39-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	}
	/* maven-pro-500 - latin */
	@font-face {
	  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	  font-family: 'Maven Pro';
	  font-style: normal;
	  font-weight: 500;
	  src: url('/assets/fonts/maven-pro/maven-pro-v39-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	}
	/* maven-pro-600 - latin */
	@font-face {
	  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	  font-family: 'Maven Pro';
	  font-style: normal;
	  font-weight: 600;
	  src: url('/assets/fonts/maven-pro/maven-pro-v39-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	}
	/* maven-pro-700 - latin */
	@font-face {
	  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	  font-family: 'Maven Pro';
	  font-style: normal;
	  font-weight: 700;
	  src: url('/assets/fonts/maven-pro/maven-pro-v39-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	}
	/* maven-pro-800 - latin */
	@font-face {
	  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	  font-family: 'Maven Pro';
	  font-style: normal;
	  font-weight: 800;
	  src: url('/assets/fonts/maven-pro/maven-pro-v39-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
	}
	/* patrick-hand-regular - latin */
    @font-face {
        font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
        font-family: 'Patrick Hand';
        font-style: normal;
        font-weight: 400;
        src: url('/assets/fonts/patrick-hand-v24-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    }
    /* lxgw-marker-gothic-regular - latin */
    @font-face {
        font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
        font-family: 'LXGW Marker Gothic';
        font-style: normal;
        font-weight: 400;
        src: url('/assets/fonts/lxgw-marker-gothic-v1-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
    }

    :root {
        --color-primary-physio: #d5b378;
        --color-primary-physio-rgb: 213, 179, 120;
        --color-primary-physio-darker: #b89b65;
        --color-primary-physio-darkest: #a08859;
        --color-logo-gold: #d5b378;
        --color-logo-grey: #9d9e9e;
        --color-header-text-logo-scheme: var(--color-logo-grey);
        --color-header-link-logo-scheme: var(--color-logo-gold);
        --color-header-link-hover-logo-scheme: #b89b65;
        --color-header-border-logo-scheme: var(--color-logo-grey);
        --color-secondary: #FF0055;
        --color-text: #000000;
        --color-text-light: #212121;
        --color-text-muted: #6c6c6c;
        --color-text-on-dark: #c7c7c7;
        --color-text-on-primary: #FFFFFF;
        --color-text-on-primary-darker: #FFFFFF;
        --color-text-on-dark-muted: #b7b7b7;
        --color-link: var(--color-primary-physio);
        --color-link-hover: var(--color-primary-physio-darker);
        --color-background: #ffffff;
        --color-background-rgb: 255,255,255;
        --color-background-light: #F0F0F0;
        --color-background-medium: #e9e9e9;
        --color-background-dark: #4A4B4A;
        --color-background-darker: #313131;
        --color-border: rgba(0,0,0,0.125);
        --color-border-light: #dedede;
        --color-border-dark: transparent;
        --color-primary-osteo: #e67b1b;
        --color-primary-osteo-darker: #c86a10;
        --color-secondary-osteo: #b32326;
        --color-text-on-osteo: #FFFFFF;
        --color-background-osteo-light: #fff8f0;
        --color-text-osteo-note: #4d3a20;
        --color-icon-osteo-note: #8c5e2e;
        --font-family-sans: 'Maven Pro', sans-serif;
        --font-family-note: 'LXGW Marker Gothic', cursive;
        --font-family-slick: 'slick';
        --font-size-base: 1.125rem;
        --line-height-base: 1.6;
        --font-weight-normal: 400;
        --font-weight-bold: 700;
        --h1-size: clamp(2.25rem, 1rem + 6cqw, 4rem);
        --h2-size: clamp(1.8rem, 0.9rem + 4.5cqw, 2.8rem);
        --h3-size: clamp(1.5rem, 0.8rem + 3.5cqw, 2.375rem);
        --h4-size: 1.375rem;
        --h5-size: 1.125rem;
        --h6-size: 1rem;
        --spacing-unit: 1rem;
        --spacing-xxs: calc(var(--spacing-unit) * 0.35);
        --spacing-xs: calc(var(--spacing-unit) * 0.65);
        --spacing-sm: calc(var(--spacing-unit) * 1.25);
        --spacing-md: calc(var(--spacing-unit) * 2);
        --spacing-lg: calc(var(--spacing-unit) * 3.5);
        --spacing-xl: calc(var(--spacing-unit) * 5.5);
        --spacing-section: clamp(var(--spacing-lg), 8vh, var(--spacing-xl));
        --transition-duration: 0.3s;
        --transition-button-swipe: 0.4s;
        --transition-timing-function: ease;
        --transition-short: 0.15s;
        --container-max-width: 960px;
        --container-padding-x: var(--spacing-md);
        --border-radius: 0;
        --border-radius-large: 0;
    }

    html {
        scroll-behavior: smooth;
    }

    body {
        font-family: var(--font-family-sans);
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-normal);
        line-height: var(--line-height-base);
        color: var(--color-text);
        background-color: var(--color-background);
        -webkit-text-size-adjust: 100%;
        -webkit-tap-highlight-color: rgba(0,0,0,0);
        margin: 0;
    }
    body.page-osteopathie {
        --color-link: var(--color-primary-osteo);
        --color-link-hover: var(--color-primary-osteo-darker);
    }
    body.no-scroll {
        overflow: hidden;
    }

    h1, h2, h3, h4, h5, h6 {
        margin-block-end: var(--spacing-sm);
        font-weight: var(--font-weight-normal);
        line-height: 1.2;
    }
    h1 {
        font-size: var(--h1-size);
    }
    h1 small {
        display: block;
        font-size: 0.5em;
        font-weight: var(--font-weight-normal);
        line-height: 1.3;
        color: var(--color-text-muted);
        margin-block-start: var(--spacing-xs);
    }
    h2 {
        font-size: var(--h2-size);
        line-height: 1.1;
    }
    h3 {
        font-size: var(--h3-size);
        line-height: 1.1;
    }
    h4 {
        font-size: var(--h4-size);
        line-height: 1.45;
    }
    h5 {
        font-size: var(--h5-size);
        line-height: 1.45;
        text-transform: uppercase;
    }
    h6 {
        font-size: var(--h6-size);
        font-weight: var(--font-weight-bold);
    }
    p {
        margin-block-end: var(--spacing-md);
    }
    p:last-child {
        margin-block-end: 0;
    }
    a {
        color: var(--color-link);
        transition: color var(--transition-short) ease-in-out;
        text-decoration: none;
    }
    a:hover {
        color: var(--color-link-hover);
        text-decoration: none;
    }
    .button:hover, a.button:hover {
        text-decoration: none;
    }
    strong, b {
        font-weight: var(--font-weight-bold);
    }
    .small {
        font-size: 0.875em;
    }
    .lead {
        font-size: var(--h5-size);
        line-height: 1.7;
        font-weight: var(--font-weight-normal);
        margin-block-end: var(--spacing-lg);
    }
    .visually-hidden {
        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;
    }
}

@layer layout {
    @media (min-width: 1200px) {
        :root {
            --container-max-width: 1140px;
        }
    }
    @media (min-width: 1400px) {
        :root {
            --container-max-width: 1320px;
        }
    }

    .container {
        width: 100%;
        max-width: var(--container-max-width);
        padding-inline: var(--container-padding-x);
        margin-inline: auto;
        container-type: inline-size;
    }
    .page-wrapper {
        width: 100%;
        overflow-x: hidden;
    }
    @media (max-width: 991px) {
        body:has(#stickyCtaBar.sticky-cta--visible[style*="bottom: 0px"]) .page-wrapper {
            padding-block-end: 80px;
        }
    }
    .page-wrapper--padded-top-mobile {
    }
    @media (max-width: 991px) {
        .page-wrapper--padded-top-mobile {
            padding-block-start: 80px;
        }
         body:has(#stickyCtaBar.sticky-cta--visible[style*="bottom: 0px"]) .page-wrapper--padded-top-mobile {
            padding-block-end: 80px;
        }
    }
    .content-section {
        position: relative;
        padding-block: var(--spacing-section);
    }
    .content-section a.button {
        margin-top: var(--spacing-md);
    }
    .content-section--spacing-before-md {
        padding-block-start: var(--spacing-md);
    }
    #leistungen-anker.content-section {
        padding-block: var(--spacing-lg);
        padding-inline: var(--container-padding-x);
    }
    #leistungen-anker.content-section .cta-card-group {
        max-width: none;
        padding-inline: 0;
    }
    body:has(#stickyCtaBar.sticky-cta--visible[style*="top: 0px"]) .page-content > .content-section:first-child {
         padding-block-start: var(--spacing-section);
    }
    body:not(:has(#stickyCtaBar.sticky-cta--visible[style*="top: 0px"])) .page-leistung-detail .page-content > .content-section:first-child,
    body:not(:has(#stickyCtaBar.sticky-cta--visible[style*="top: 0px"])) body[class*="page-subpage"] .page-content > .content-section:first-child,
    body:not(:has(#stickyCtaBar.sticky-cta--visible[style*="top: 0px"])) body[id*="pKontakt"] .page-content > .content-section:first-child,
    body:not(:has(#stickyCtaBar.sticky-cta--visible[style*="top: 0px"])) body[id="pKrankengymnastik"] .page-content > .content-section:first-child,
    body.page-osteopathie .page-content > .content-section:first-child {
        padding-block-start: clamp(var(--spacing-lg), 12vh, var(--spacing-xl));
    }
    .page-leistung-detail .page-content > .content-section:first-child .content-section__header,
    body[class*="page-subpage"] .page-content > .content-section:first-child .content-section__header,
    body[id*="pKontakt"] .page-content > .content-section:first-child .content-section__header,
    body[id="pKrankengymnastik"] .page-content > .content-section:first-child .content-section__header,
    body.page-osteopathie .page-content > .content-section:first-child .content-section__header {
        margin-block-end: var(--spacing-lg);
    }
    body[id="pKrankengymnastik"] .page-content > .content-section:first-child > .container > .text-image {
        margin-block-start: var(--spacing-lg);
    }
    .content-section--no-vertical-padding {
        padding-block: 0;
    }
    .content-section--light-bg {
        background-color: var(--color-background-light);
    }
    .osteopathie-theme-bg {
        background-color: var(--color-background-osteo-light);
    }
    .content-section--dark-bg {
        background-color: var(--color-background-dark);
        color: var(--color-text-on-dark);
    }
    .content-section--dark-bg h1, .content-section--dark-bg h2, .content-section--dark-bg h3, .content-section--dark-bg h4, .content-section--dark-bg h5, .content-section--dark-bg h6 {
        color: var(--color-text-on-dark);
    }
    .content-section--dark-bg a {
        color: var(--color-primary-physio);
    }
    .content-section--dark-bg a:hover {
        color: var(--color-link-hover);
    }
    .content-section__header {
        margin-block-end: var(--spacing-lg);
        margin-inline: auto;
    }
    .content-section__header:not(:first-child) {
        margin-block-start: var(--spacing-lg);
    }
    .osteo-page-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: var(--spacing-sm);
    }
    .osteo-logo-wrapper {
        line-height: 0;
    }
    .osteo-page-logo {
        max-width: 200px;
        height: auto;
        margin-bottom: var(--spacing-xs);
    }
    .osteo-page-header h1 {
        margin-bottom: 0;
    }
    .content-section--centered-content .content-section__inner {
        max-width: 900px;
        margin-inline: auto;
    }
    .text-content h2, .text-content h3, .text-content h4 {
        margin-block-start: var(--spacing-lg);
    }
    .two-column-layout {
        display: grid;
        gap: var(--spacing-lg);
    }
    @media (min-width: 768px) {
        .two-column-layout {
            grid-template-columns: 1fr 1fr;
        }
        .two-column-layout--sidebar-right {
            grid-template-columns: 3fr 2fr;
        }
        .two-column-layout--sidebar-left {
            grid-template-columns: 2fr 3fr;
        }
    }
    .sticky-cta {
        background-color: var(--color-background-dark);
        color: var(--color-text-on-dark);
        padding-block: var(--spacing-xxs);
        position: fixed;
        left: 0;
        width: 100%;
        z-index: 999;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
        transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, top 0.3s ease-in-out, bottom 0.3s ease-in-out;
        opacity: 0;
        transform: translateY(-100%);
        pointer-events: none;
    }
    .sticky-cta--visible {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
    .sticky-cta {
        top: 0;
    }
    .sticky-cta__container {
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .sticky-cta__actions {
        display: flex;
        align-items: center;
        gap: var(--spacing-sm);
    }
    @media (min-width: 992px) {
        .sticky-cta__container {
            justify-content: flex-end;
        }
    }
    @media (max-width: 991px) {
        .sticky-cta {
            top: auto !important;
            bottom: 0;
            padding-block: var(--spacing-xs);
            border-top: 1px solid rgba(var(--color-background-rgb),0.15);
            box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
            transform: translateY(0);
        }
        body.mobile-menu-open .sticky-cta {
            /* display: none; */
        }
        .sticky-cta__container {
            justify-content: center;
        }
        .sticky-cta__actions {
            width: 100%;
            justify-content: space-around;
        }
        .sticky-cta__link {
            flex-basis: calc(50% - (var(--spacing-sm) / 2));
            max-width: calc(50% - (var(--spacing-sm) / 2));
            font-size: 0.9rem;
            padding: var(--spacing-xs) var(--spacing-sm) !important;
        }
         .sticky-cta__link.button--primary {
            color: var(--color-text-on-primary) !important;
            background-color: var(--color-primary-physio) !important;
            border-color: var(--color-primary-physio) !important;
        }
        .sticky-cta__link.button--primary::before {
            display: block !important;
            background-color: var(--color-primary-physio-darker) !important;
        }
        .sticky-cta__link.button--primary:hover {
            color: var(--color-text-on-primary-darker) !important;
        }
        .sticky-cta__link.button--primary:hover .button__icon-img {
             filter: brightness(0) invert(1);
        }
    }
    .page-header__wrapper {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 1002;
        background-color: transparent;
        transition: background-color var(--transition-duration) var(--transition-timing-function),
                    padding-block var(--transition-duration) var(--transition-timing-function),
                    top var(--transition-duration) var(--transition-timing-function);
    }
    .page-header__wrapper--solid-bg {
        background-color: var(--color-background);
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    .page-header__wrapper--osteopathie {
        background-color: var(--color-background-osteo-light) !important;
        box-shadow: 0 2px 5px rgba(0,0,0,0.08);
    }
    .page-header__wrapper--osteopathie .page-header__main-nav-link {
        color: var(--color-text);
    }
    .page-header__wrapper--osteopathie .page-header__main-nav-link:hover,
    .page-header__wrapper--osteopathie .page-header__main-nav-link:focus-visible,
    .page-header__wrapper--osteopathie .page-header__main-nav-link--current {
        color: var(--color-primary-osteo) !important;
    }
     @media (min-width: 992px) {
        .page-header__wrapper--osteopathie .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-primary-osteo);
        }
    }
    .page-header__wrapper--overlay.page-header__wrapper--scrolled {
        background-color: var(--color-background);
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        padding-block: var(--spacing-xxs);
    }
    .page-header__wrapper.page-header__wrapper--scrolled .page-header__brand-logo {
        height: 50px !important;
    }
     .page-header__wrapper--osteopathie.page-header__wrapper--scrolled .page-header__brand-logo--osteopathie {
        height: 40px !important;
    }
    .page-header__wrapper.page-header__wrapper--scrolled .page-header {
        padding-block: var(--spacing-xs);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled) {
        background-color: transparent;
        box-shadow: none;
    }
    .page-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-block: var(--spacing-sm);
        position: relative;
        transition: padding-block var(--transition-duration) var(--transition-timing-function);
    }
    .page-header__brand {
        display: flex;
        align-items: center;
        margin-inline-end: auto;
        position: relative;
        z-index: 1003;
    }
    .page-header__brand-logo {
        height: 70px;
        width: auto;
        transition: height var(--transition-duration) var(--transition-timing-function);
    }
    .page-header__brand-logo--osteopathie {
        height: 60px;
    }
    .page-header__brand-logo .logo-part-gold {
        fill: var(--color-logo-gold);
    }
    .page-header__brand-logo .logo-part-grey {
        fill: var(--color-logo-grey);
    }
    .page-header__brand-logo--osteopathie .fil1osteologo {
        fill: var(--color-secondary-osteo);
    }
    .page-header__brand-logo--osteopathie path:not(.fil1osteologo) {
        fill: var(--color-primary-osteo);
    }
    .page-header__actions {
        display: flex;
        align-items: center;
        gap: var(--spacing-md);
    }
    .page-header__main-navigation-area {
        flex-grow: 1;
        display: flex;
        justify-content: center;
    }
    .page-header__wrapper--osteopathie .page-header__main-navigation-area {
        justify-content: flex-start;
    }
    .page-header__secondary-action {
        margin-inline-start: auto;
    }
    .page-header__search-icon a svg {
        fill: var(--color-text);
        height: 18px;
    }
    .page-header__nav-toggle {
        padding: 0;
        height: 34px;
        width: 34px;
        position: relative;
        border: 0;
        color: var(--color-text);
        z-index: 1005;
        display: none;
        background-color: transparent;
    }
    .page-header__nav-toggle:focus-visible {
        outline: 2px solid var(--color-primary-physio);
        outline-offset: 2px;
    }
    .page-header__nav-toggle-icon::before, .page-header__nav-toggle-icon::after, .page-header__nav-toggle-icon span {
        content: "";
        position: absolute;
        inset-inline-start: 0;
        display: inline-block;
        width: 22px;
        height: 2px;
        background-color: currentColor;
        transition: all 0.3s ease-in;
    }
    .page-header__nav-toggle-icon span {
        inset-block-start: 50%;
        inset-inline-start: 50%;
        height: 2px;
        transform: translate(-50%, -50%);
    }
    .page-header__nav-toggle-icon::before {
        inset-block-start: calc(50% - 6px);
    }
    .page-header__nav-toggle-icon::after {
        inset-block-start: calc(50% + 6px);
    }
    .page-header__nav-toggle:not(.page-header__nav-toggle--collapsed) .page-header__nav-toggle-icon span {
        transform: translate(-50%, -50%) scaleX(0);
    }
    .page-header__nav-toggle:not(.page-header__nav-toggle--collapsed) .page-header__nav-toggle-icon::before {
        inset-block-start: 50%;
        transform: translateY(-50%) rotate(-45deg);
    }
    .page-header__nav-toggle:not(.page-header__nav-toggle--collapsed) .page-header__nav-toggle-icon::after {
        inset-block-start: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    .page-header__wrapper--overlay.page-header__wrapper--scrolled .page-header__main-nav-link,
    .page-header__wrapper--solid-bg .page-header__main-nav-link,
    .page-header__wrapper--overlay.page-header__wrapper--scrolled .page-header__search-icon a svg,
    .page-header__wrapper--solid-bg .page-header__search-icon a svg,
    .page-header__wrapper--overlay.page-header__wrapper--scrolled .page-header__nav-toggle,
    .page-header__wrapper--solid-bg .page-header__nav-toggle {
        color: var(--color-text);
        fill: var(--color-text);
    }
    .page-header__wrapper--osteopathie .page-header__main-nav-link,
    .page-header__wrapper--osteopathie .page-header__search-icon a svg,
    .page-header__wrapper--osteopathie .page-header__nav-toggle {
        color: var(--color-text);
        fill: var(--color-text);
    }
    @media (min-width: 992px) {
        .page-header__wrapper--overlay.page-header__wrapper--scrolled .page-header__main-nav-item:not(:last-child),
        .page-header__wrapper--solid-bg .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-text);
        }
    }
    .page-header__wrapper--scrolled .page-header__brand-logo .logo-part-gold,
    .page-header__wrapper--solid-bg:not(.page-header__wrapper--overlay) .page-header__brand-logo .logo-part-gold {
        fill: var(--color-logo-gold);
    }
    .page-header__wrapper--scrolled .page-header__brand-logo .logo-part-grey,
    .page-header__wrapper--solid-bg:not(.page-header__wrapper--overlay) .page-header__brand-logo .logo-part-grey {
        fill: var(--color-logo-grey);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__main-nav-link,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__search-icon a svg,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__nav-toggle {
        color: var(--color-text-on-dark);
        fill: var(--color-text-on-dark);
    }
    @media (min-width: 992px) {
        .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-text-on-dark);
        }
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__brand-logo .logo-part-gold {
        fill: var(--color-logo-gold);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-white .page-header__brand-logo .logo-part-grey {
        fill: var(--color-text-on-dark);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-link,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__search-icon a svg,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__nav-toggle {
        color: var(--color-header-text-logo-scheme);
        fill: var(--color-header-text-logo-scheme);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-link:hover,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-link:focus-visible {
        color: var(--color-header-link-logo-scheme) !important;
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-link--current,
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-link--active-parent {
        color: var(--color-header-link-logo-scheme) !important;
    }
    @media (min-width: 992px) {
        .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-header-border-logo-scheme);
        }
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__brand-logo .logo-part-gold {
        fill: var(--color-logo-gold);
    }
    .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled).page-header__wrapper--header-logo-colors .page-header__brand-logo .logo-part-grey {
        fill: var(--color-logo-grey);
    }

    @media (max-width: 991px) {
        .page-header__nav-toggle {
            display: block;
        }
        .page-header__actions {
            position: fixed;
            top: 0;
            right: 0;
            width: min(80vw, 320px);
            height: 100vh;
            background-color: var(--color-background);
            box-shadow: -2px 0 10px rgba(0,0,0,0.2);
            transform: translateX(100%);
            transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
            z-index: 1004;
            padding: var(--spacing-lg) var(--container-padding-x) var(--spacing-md);
            overflow-y: auto;
            flex-direction: column;
            align-items: flex-start;
            gap: 0;
        }
        .page-header__actions--expanded {
            transform: translateX(0);
        }
        .mobile-menu-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0,0,0,0.5);
            z-index: 1001;
            opacity: 0;
            visibility: hidden;
            transition: opacity 0.4s ease, visibility 0s 0.4s;
        }
        .mobile-menu-overlay.is-active {
             opacity: 1;
             visibility: visible;
             transition-delay: 0s;
        }
        body.mobile-menu-open .sticky-cta {
             /* display: none; */
        }
        .page-header__main-navigation-area {
            flex-grow: 0;
            width: 100%;
        }
        .page-header__main-nav {
            flex-direction: column;
            align-items: flex-start;
            width: 100%;
        }
        .page-header__main-nav-item {
            width: 100%;
            border-block-end: 1px solid var(--color-border-light);
        }
        .page-header__main-nav-item:last-child {
            border-block-end: none;
        }
        .page-header__main-nav-link {
            padding: var(--spacing-sm) 0;
            width: 100%;
            display: flex;
            justify-content: space-between;
            align-items: center;
            color: var(--color-text);
        }
        .page-header__main-nav-link:hover,
        .page-header__main-nav-link:focus-visible {
            color: var(--color-primary-physio) !important;
        }
        .page-header__secondary-action {
            margin-block-start: var(--spacing-lg);
            padding-block-start: var(--spacing-md);
            border-block-start: 1px solid var(--color-border-light);
            width: 100%;
            margin-inline-start: 0;
        }
        .page-header__secondary-action .button {
            display: block;
            width: 100%;
            text-align: center;
        }
    }
    @media (max-width: 1200px) { }
    @media (max-width: 991px) {
        .page-header__brand-logo {
            height: auto;
            max-height: 50px;
        }
        .page-header__wrapper.page-header__wrapper--scrolled .page-header__brand-logo {
            height: auto;
            max-height: 50px;
        }
    }
    .page-footer {
        background-color: var(--color-background-dark);
        color: var(--color-text-on-dark);
        padding-block: var(--spacing-section);
    }
    .page-footer__section--top {
        text-align: center;
        margin-block-end: var(--spacing-lg);
    }
    .page-footer__cta-text {
        font-size: var(--h3-size);
        line-height: 1.2;
        display: block;
        margin-block-end: var(--spacing-md);
    }
    .page-footer__section--bottom {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
        align-items: start;
    }
    .page-footer__contact-area { }
    .page-footer__map iframe {
        width: 100%;
        height: 280px;
        border: 0;
        border-radius: var(--border-radius);
    }
    .page-footer__info-area { }
    .page-footer__contact-details {
         font-size: 0.95em;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-lg);
        align-items: start;
    }
    .page-footer__contact-details > div { }
    .page-footer__contact-details span,
    .page-footer__contact-details .footer-contact-line {
        display: block;
        margin-block-end: var(--spacing-xxs);
    }
    .page-footer__contact-details span:last-child,
    .page-footer__contact-details .footer-contact-line:last-child {
        margin-block-end: 0;
    }
    .page-footer__contact-details .primary-contact-label {
        color: var(--color-primary-physio);
        font-weight: var(--font-weight-bold);
        margin-block-start: 0;
        margin-block-end: var(--spacing-xs);
    }
    .page-footer__contact-details .footer-contact-link {
        display: inline-flex;
        align-items: center;
        gap: var(--spacing-xs);
        color: var(--color-text-on-dark);
        text-decoration: none;
    }
    .page-footer__contact-details .footer-contact-link:hover {
        color: var(--color-primary-physio) !important;
        text-decoration: underline;
    }
    .page-footer__contact-details .footer-contact__icon {
        width: 1em;
        height: 1em;
        display: inline-block;
        vertical-align: middle;
    }
    .page-footer__meta {
        margin-block-start: var(--spacing-xl);
        padding-block-start: var(--spacing-lg);
        border-block-start: 1px solid rgba(var(--color-background-rgb), 0.1);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--spacing-sm);
        font-size: 0.875rem;
        color: var(--color-text-on-dark-muted);
        text-align: center;
    }
    .page-footer__meta a {
        color: var(--color-text-on-dark-muted);
    }
    .page-footer__meta a:hover {
        color: var(--color-primary-physio) !important;
        text-decoration: underline;
    }
     .page-footer__meta ul, .page-footer__meta li {
        list-style-type: none;
        padding: 0; margin: 0;
    }
    .page-footer__meta-nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--spacing-sm) var(--spacing-md);
    }
    .page-footer__meta-spacer {
        display: none;
    }
    @media (min-width: 768px) {
        .page-footer__section--top {
            text-align: left;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .page-footer__section--bottom {
            grid-template-columns: 0.7fr 1.3fr;
            gap: var(--spacing-xl);
        }
        .page-footer__map iframe {
            height: 100%;
            min-height: 320px;
        }
        .page-footer__info-area {
            padding-inline-start: 0;
        }
         .page-footer__contact-details > div:not(:last-child) {
            margin-bottom: 0;
        }
        .page-footer__meta {
            flex-direction: row;
            justify-content: space-between;
            text-align: left;
        }
        .page-footer__meta-nav {
            justify-content: flex-end;
        }
         .page-footer__meta-spacer {
            display: inline-block;
            margin-inline: var(--spacing-xs);
        }
    }
    .scroll-top {
        overflow: hidden;
        opacity: 0;
        transition: opacity var(--transition-duration) var(--transition-timing-function), background-color var(--transition-duration) var(--transition-timing-function);
        z-index: 1020;
        background-color: var(--color-background-darker);
        color: var(--color-text-on-dark);
        position: fixed;
        inset-block-end: var(--spacing-md);
        inset-inline-end: var(--spacing-md);
        width: 3em;
        height: 3em;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .scroll-top--visible {
        opacity: 1;
    }
    .scroll-top:active,
    .scroll-top:focus-visible,
    .scroll-top:hover {
        color: var(--color-text-on-primary);
        background-color: var(--color-primary-physio);
    }
    .scroll-top__icon {
        transform: rotate(-135deg);
        width: 30%;
        height: 30%;
        border-block-start: 2px solid currentColor;
        border-inline-start: 2px solid currentColor;
    }
}

@layer components {
    .button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--spacing-xs);
        font-weight: var(--font-weight-normal);
        line-height: 1.5;
        text-align: center;
        vertical-align: middle;
        cursor: pointer;
        user-select: none;
        border: 1px solid transparent;
        padding: 0.65rem 1.25rem;
        font-size: 1rem;
        border-radius: var(--border-radius);
        position: relative;
        overflow: hidden;
        z-index: 1;
        transition: color var(--transition-button-swipe) ease-in-out;
        text-decoration: none;
    }
    .button .button__text,
    .button > span:not(.dropdown-arrow):not(.page-header__nav-toggle-icon) {
        position: relative;
        z-index: 2;
        display: inline-block;
        transition: color var(--transition-button-swipe) ease-in-out;
    }
    .button::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
        transform: translateX(-101%);
        transition: transform var(--transition-button-swipe) cubic-bezier(0.77, 0, 0.175, 1);
    }
    .button:hover::before {
        transform: translateX(0);
    }
    .button:hover{
        text-decoration: none;
    }
    .button:focus-visible {
        outline: 0;
        box-shadow: 0 0 0 0.25rem rgba(var(--color-primary-physio-rgb),0.25);
    }
    .button:disabled {
        pointer-events: none;
        opacity: 0.65;
    }
    .button:disabled::before {
        transform: translateX(-101%) !important;
    }
    .button--primary {
        color: var(--color-text-on-primary);
        background-color: var(--color-primary-physio);
        border-color: var(--color-primary-physio);
        padding: var(--spacing-sm) var(--spacing-lg);
        font-size: var(--h5-size);
        min-width: 240px;
    }
    .button--primary::before {
        background-color: var(--color-primary-physio-darker);
    }
    .button--primary:hover .button__text,
    .button--primary:hover > span:not(.dropdown-arrow):not(.page-header__nav-toggle-icon),
    .button--primary:hover:not(:has(> span)),
    .button--primary:hover .button__icon,
    .button--primary:hover .button__icon-img {
        color: var(--color-text-on-primary-darker);
    }
     .button--primary:hover {
        color: var(--color-text-on-primary-darker);
    }
    .button--primary:active {
        background-color: var(--color-primary-physio-darkest);
        border-color: var(--color-primary-physio-darkest);
        color: var(--color-text-on-primary-darker);
    }
    .button--primary:active::before {
        transform: translateX(0);
        background-color: var(--color-primary-physio-darkest);
    }
    .button--osteo {
        background-color: var(--color-secondary-osteo) !important;
        border-color: var(--color-secondary-osteo) !important;
        color: var(--color-text-on-osteo) !important;
    }
    .button--osteo::before {
        background-color: var(--color-primary-osteo) !important;
    }
    .button--osteo:hover,
    .button--osteo:hover .button__text {
        color: var(--color-text-on-osteo) !important;
    }
    .button--osteo:active {
        background-color: var(--color-primary-osteo-darker) !important;
        border-color: var(--color-primary-osteo-darker) !important;
    }
     .button--osteo:active::before {
        background-color: var(--color-primary-osteo-darker) !important;
    }
    .button--primary.button--newsletter {
        position: fixed;
        inset-block-end: var(--spacing-sm);
        inset-inline-end: var(--spacing-sm);
        line-height: 1;
        padding: .5rem 1.5rem .75rem;
        font-size: 1.25rem;
        z-index: 50;
    }
    @media (min-width: 576px) {
        .button--primary.button--newsletter {
            inset-block-end: var(--spacing-md);
            inset-inline-end: var(--spacing-md);
        }
    }
    .button--default {
        color: var(--color-text-on-primary);
        background-color: var(--color-primary-physio);
        border: 1px solid var(--color-border-light);
    }
    .button--default::before {
        background-color: var(--color-primary-physio-darker);
    }
    .button--default:hover .button__text,
    .button--default:hover > span:not(.dropdown-arrow):not(.page-header__nav-toggle-icon),
    .button--default:hover:not(:has(> span)),
    .button--default:hover .button__icon,
    .button--default:hover .button__icon-img {
        color: var(--color-text-on-primary);
    }
    .button--default:hover {
        border-color: var(--color-primary-physio-darker);
        color: var(--color-text-on-primary);
    }
    .button--default:active {
        color: var(--color-text-on-primary);
         background-color: var(--color-primary-physio-darkest);
    }
     .button--default:active::before {
         background-color: var(--color-primary-physio-darkest);
    }
    .button--bordered {
        border-width: 2px;
        font-size: 1.125rem;
    }
    .button--primary.button--bordered {
        color: var(--color-primary-physio);
        background-color: transparent;
        border-color: var(--color-primary-physio);
    }
    .button--primary.button--bordered::before {
        background-color: var(--color-primary-physio-darker);
    }
    .button--primary.button--bordered:hover .button__text,
    .button--primary.button--bordered:hover > span:not(.dropdown-arrow):not(.page-header__nav-toggle-icon),
    .button--primary.button--bordered:hover:not(:has(> span)),
    .button--primary.button--bordered:hover .button__icon,
    .button--primary.button--bordered:hover .button__icon-img {
        color: var(--color-text-on-primary-darker);
    }
     .button--primary.button--bordered:hover {
        border-color: var(--color-primary-physio-darker);
        color: var(--color-text-on-primary-darker);
    }
    .button--primary.button--bordered:active {
        color: var(--color-text-on-primary-darker);
    }
     .button--primary.button--bordered:active::before {
         background-color: var(--color-primary-physio-darkest);
    }
    .button__icon {
        width: 1em;
        height: 1em;
        fill: currentColor;
        flex-shrink: 0;
        position: relative;
        z-index: 2;
        transition: fill var(--transition-button-swipe) ease-in-out;
    }
    .button__icon-img {
        width: 1em;
        height: 1em;
        flex-shrink: 0;
        position: relative;
        z-index: 2;
    }
    .button--small {
        padding: var(--spacing-xxs) var(--spacing-sm);
        font-size: 0.9rem;
        min-width: auto;
    }
    .button--small .button__icon,
    .button--small .button__icon-img {
        width: 0.9em;
        height: 0.9em;
    }
    .button.cta-button-size {
        padding: var(--spacing-sm) var(--spacing-lg);
        font-size: var(--h5-size);
        min-width: 240px;
    }
     .page-header__main-nav {
        display: flex;
        align-items: center;
        list-style: none;
        padding: 0;
        margin: 0;
        gap: 0;
    }
    .page-header__main-nav-item {
        position: relative;
    }
    @media (min-width: 992px) {
        .page-header__main-nav-item:not(:last-child) {
            border-inline-end: 1px solid var(--color-text);
            padding-inline-end: var(--spacing-md);
            margin-inline-end: var(--spacing-md);
        }
        .page-header__wrapper--osteopathie .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-primary-osteo);
        }
        .page-header__wrapper--overlay:not(.page-header__wrapper--scrolled) .page-header__main-nav-item:not(:last-child) {
            border-color: var(--color-text-on-dark);
        }
    }
    .page-header__main-nav-link {
        font-size: var(--h5-size);
        color: var(--color-text-muted);
        padding: var(--spacing-xs) var(--spacing-sm);
        line-height: 1.2;
        display: flex;
        align-items: center;
        text-decoration: none;
    }
    .page-header__main-nav-link:hover,
    .page-header__main-nav-link:focus-visible {
        color: var(--color-primary-physio) !important;
        text-decoration: none;
    }
    .page-header__main-nav-link--current,
    .page-header__main-nav-link--active-parent {
        font-weight: var(--font-weight-bold);
        color: var(--color-primary-physio) !important;
    }
    .page-header__wrapper--osteopathie .page-header__main-nav-link {
        color: var(--color-text);
    }
    .page-header__wrapper--osteopathie .page-header__main-nav-link:hover,
    .page-header__wrapper--osteopathie .page-header__main-nav-link:focus-visible,
    .page-header__wrapper--osteopathie .page-header__main-nav-link--current,
    .page-header__wrapper--osteopathie .page-header__main-nav-link--active-parent {
        color: var(--color-primary-osteo) !important;
    }
    .dropdown-arrow {
        display: inline-block;
        width: 0.5em;
        height: 0.5em;
        margin-inline-start: var(--spacing-xs);
        border-right: 0.12em solid currentColor;
        border-bottom: 0.12em solid currentColor;
        transform: rotate(45deg) translateY(-25%);
        transition: transform var(--transition-short) ease-in-out;
    }
    .page-header__main-nav-link[aria-expanded="true"] .dropdown-arrow {
        transform: rotate(-135deg) translateY(0%);
    }
    @media (max-width: 991px) {
        .page-header__actions--expanded .dropdown-arrow {
            display: inline-block;
        }
        .dropdown-arrow {
            display: none;
        }
    }

    .dropdown-menu {
        opacity: 0;
        visibility: hidden;
        transform: translateY(10px);
        position: absolute;
        inset-block-start: 100%;
        inset-inline-start: 0;
        min-width: 240px;
        background-color: var(--color-background);
        border: 1px solid var(--color-border-light);
        border-radius: var(--border-radius);
        box-shadow: 0 5px 15px rgba(0,0,0,0.15);
        z-index: 1000;
        padding: var(--spacing-xs) 0;
        list-style: none;
        margin: 0;
        transition: opacity var(--transition-short) ease-in-out,
                    visibility var(--transition-short) ease-in-out 0s,
                    transform var(--transition-short) ease-in-out;
    }

    .dropdown-menu::before {
        content: '';
        position: absolute;
        inset-block-start: -6px;
        inset-inline-start: 20px;
        transform: rotate(45deg);
        width: 12px;
        height: 12px;
        background-color: var(--color-background);
        border-top: 1px solid var(--color-border-light);
        border-left: 1px solid var(--color-border-light);
        z-index: -1;
    }

    @media (min-width: 992px) {
        .page-header__main-nav-item--has-dropdown:hover > .dropdown-menu,
        .page-header__main-nav-item--has-dropdown > .page-header__main-nav-link:focus-visible + .dropdown-menu,
        .page-header__main-nav-item--has-dropdown > .dropdown-menu:hover,
        .page-header__main-nav-item--has-dropdown > .dropdown-menu:focus-within {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
            transition-delay: 0s;
        }
    }

    @media (max-width: 991px) {
        .dropdown-menu {
            max-height: 0;
            overflow: hidden;
            background-color: transparent;
            border: none;
            box-shadow: none;
            padding-inline-start: var(--spacing-sm);
            padding-block-start: 0;
            padding-block-end: 0;
            margin-block-start: 0;
            width: 100%;
            transition: max-height 0.3s ease-in-out, padding-block-start 0.3s ease-in-out, padding-block-end 0.3s ease-in-out;
            opacity: 1;
            visibility: visible;
            transform: none;
            position: static;
        }
        .dropdown-menu::before {
            display: none;
        }
        .dropdown-menu--expanded {
            max-height: 500px;
            padding-block-start: var(--spacing-xs);
            padding-block-end: var(--spacing-xs);
        }
    }
    .dropdown-menu__link {
        display: block;
        padding: var(--spacing-xs) var(--spacing-md);
        color: var(--color-text-light);
        font-size: calc(var(--h5-size) * 0.9);
        white-space: nowrap;
        transition: background-color var(--transition-short) ease-in-out, color var(--transition-short) ease-in-out;
        text-decoration: none;
    }
    @media (max-width: 991px) {
        .dropdown-menu__link {
             padding: var(--spacing-xs) 0;
             font-size: calc(var(--h5-size) * 0.85);
        }
    }
    .dropdown-menu__link:hover,
    .dropdown-menu__link:focus-visible {
        background-color: var(--color-background-medium);
        color: var(--color-primary-physio);
        text-decoration: none;
    }
    .dropdown-menu__link:active {
        background-color: var(--color-primary-physio);
        color: var(--color-text-on-primary);
    }
    .dropdown-menu__link--current {
        color: var(--color-primary-physio);
        font-weight: var(--font-weight-bold);
    }
    .cta-termin-card {
        background-color: var(--color-background-light);
        border-radius: var(--border-radius-large);
        padding: var(--spacing-xl);
        text-align: center;
        box-shadow: 0 5px 20px rgba(0,0,0,0.08);
        max-width: 75%;
        margin-inline: auto;
    }
    .page-osteopathie .cta-termin-card {
        background-color: var(--color-background-osteo-light);
    }
    .page-osteopathie .cta-termin-card .button--primary {
        background-color: var(--color-primary-osteo);
        border-color: var(--color-primary-osteo);
        color: var(--color-text-on-osteo);
    }
    .page-osteopathie .cta-termin-card .button--primary::before {
        background-color: var(--color-primary-osteo-darker);
    }
    .page-osteopathie .cta-termin-card .button--primary:hover {
        color: var(--color-text-on-osteo);
    }
    .page-osteopathie .cta-termin-card .cta-termin-card__icon {
        color: var(--color-primary-osteo);
    }
    .cta-termin-card__icon-wrapper {
        margin-block-end: var(--spacing-md);
    }
    .cta-termin-card__icon {
        width: 64px;
        height: 64px;
        color: var(--color-primary-physio);
        margin-inline: auto;
    }
    .cta-termin-card__title {
        font-size: var(--h2-size);
        margin-block-end: var(--spacing-sm);
        color: var(--color-text);
        font-weight: var(--font-weight-normal);
    }
    .cta-termin-card__text p {
        font-size: var(--h5-size);
        margin-block-end: var(--spacing-md);
        line-height: 1.6;
    }
    .cta-termin-card__text p strong {
        font-weight: var(--font-weight-bold);
    }
    .cta-termin-card__actions {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-sm);
        align-items: center;
    }
    @media (min-width: 576px) {
        .cta-termin-card__actions {
            flex-direction: row;
            justify-content: center;
        }
    }
    .slick-slider-component {
        position: relative;
        display: block;
        box-sizing: border-box;
        user-select: none;
        touch-action: pan-y;
        -webkit-tap-highlight-color: transparent;
    }
    .slick-slider-component .slick-list {
        position: relative;
        display: block;
        overflow: hidden;
        margin: 0;
        padding: 0;
    }
    .slick-slider-component .slick-list:focus {
        outline: none;
    }
    .slick-slider-component .slick-track,
    .slick-slider-component .slick-list {
        transform: translate3d(0,0,0);
    }
    .slick-slider-component .slick-track {
        position: relative;
        inset-block-start: 0;
        inset-inline-start: 0;
        display: block;
        margin-inline: auto;
    }
    .slick-slider-component .slick-track::before,
    .slick-slider-component .slick-track::after {
        display: table;
        content: '';
    }
    .slick-slider-component .slick-track::after {
        clear: both;
    }
    .slick-slider-component .slick-slide {
        display: none;
        float: left;
        height: 100%;
        min-height: 1px;
    }
    .slick-slider-component .slick-slide img {
        display: block;
    }
    .slick-slider-component.slick-initialized .slick-slide {
        display: block;
    }
    .slick-slider-component .slick-arrow {
        font-size: 0;
        line-height: 0;
        position: absolute;
        inset-block-start: 50%;
        display: block;
        width: 20px;
        height: 20px;
        padding: 0;
        transform: translateY(-50%);
        cursor: pointer;
        color: transparent;
        border: none;
        outline: none;
        background: transparent;
    }
    .slick-slider-component .slick-arrow::before {
        font-family: var(--font-family-slick);
        font-size: 20px;
        line-height: 1;
        opacity: .75;
        color: var(--color-text-on-dark);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    }
    .slick-slider-component .slick-arrow:hover::before,
    .slick-slider-component .slick-arrow:focus-visible::before {
        opacity: 1;
    }
    .slick-slider-component .slick-arrow.slick-disabled::before {
        opacity: .25;
    }
    .slick-slider-component .slick-prev {
        inset-inline-start: -25px;
    }
    .slick-slider-component .slick-prev::before {
        content: '←';
    }
    .slick-slider-component .slick-next {
        inset-inline-end: -25px;
    }
    .slick-slider-component .slick-next::before {
        content: '→';
    }
    .hero-section-wrapper {
    }
    .hero-slider {
        position: relative;
        line-height: 0;
    }
    .hero-slider__image {
        width: 100%;
        max-height: 75vh;
        object-fit: cover;
        display: block;
        aspect-ratio: 21 / 9;
    }
    .hero-slider__slide {
        position: relative;
    }
    .hero-slider__text-content-below {
        padding-block: var(--spacing-lg) var(--spacing-xl);
    }
    .hero-slider__text-content-below .content-section__header {
        margin-block-end: var(--spacing-md);
    }
    .hero-slider__text-content-below .hero-slider__title {
        font-size: var(--h1-size);
        line-height: 1.1;
        color: var(--color-text);
    }
    .hero-intro__text {
        font-size: 1.1rem;
        line-height: 1.7;
    }
    .hero-intro__text p {
        margin-block-end: var(--spacing-sm);
    }
    .hero-intro__signature {
        margin-block-start: var(--spacing-md);
        font-style: italic;
        color: var(--color-text-muted);
    }
    .cta-card-group {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
     @media (min-width: 768px) {
        .cta-card-group {
            grid-template-columns: repeat(2, 1fr);
        }
    }
    @media (min-width: 1240px) {
        .cta-card-group {
            grid-template-columns: repeat(3, 1fr);
        }
        #pTeam .hero-slider__image {
            object-position: 0 -4rem;
        }
    }
    .cta-card {
        position: relative;
        overflow: hidden;
        border-radius: var(--border-radius);
        background-color: var(--color-background-dark);
        display: block;
        color: var(--color-text-on-dark);
        text-decoration: none;
        z-index: 0;
    }
    .cta-card__image-wrapper {
        line-height: 0;
        width: 100%;
        aspect-ratio: 1 / 1;
        border-radius: var(--border-radius);
        overflow: hidden;
        z-index: 1;
    }
    .cta-card__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform var(--transition-duration) var(--transition-timing-function);
    }
    .cta-card:hover .cta-card__image,
    .cta-card:focus-visible .cta-card__image {
        transform: scale(1.1);
    }
    .cta-card__content {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding: var(--spacing-md);
        z-index: 3;
        color: var(--color-text-on-dark);
        transition: color 0.2s ease-out;
    }
    .cta-card__header {
        position: absolute;
        bottom: 24px;
        left: 0;
        right: 0;
        padding: var(--spacing-md);
        margin-block-end: 0;
        transition: bottom 0.35s ease-out, color 0.2s ease-out;
        z-index: 4;
    }
    .cta-card__header h3 {
        /* font-size: 1.45rem; */
        margin-block-end: var(--spacing-xs);
        color: white;
        transition: color 0.2s ease-out, font-size 0.2s ease-out;
        font-weight: 700;
        text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
    }
    @media (min-width: 768px) {
        .cta-card__header h3 {
            /* font-size: 1.6rem; */
        }
    }
    @media (min-width: 1240px) {
        .cta-card__header h3 {
            font-size: 2.2rem;
        }
    }
    .cta-card__text {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        padding: var(--spacing-md);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.35s ease-out, visibility 0.35s ease-out, color 0.2s ease-out;
        z-index: 3;
    }
    .cta-card__text p {
        font-size: var(--font-size-base);
        line-height: 1.4;
        color: var(--color-text-on-dark-muted);
        margin-block-end: var(--spacing-md);
        transition: color 0.2s ease-out;
    }
    .cta-card__actions {
        margin-block-start: auto;
    }
    .cta-card__actions .button {
        transition: color 0.2s ease-out, background-color 0.2s ease-out, border-color 0.2s ease-out;
    }
    .cta-card--expand-corner::before {
        content: "";
        position: absolute;
        z-index: 2;
        top: -24px;
        right: -24px;
        background: var(--color-primary-physio);
        height: 48px;
        width: 48px;
        border-radius: 48px;
        transform: scale(1);
        transform-origin: 50% 50%;
        transition: transform 0.35s ease-out;
    }
    .cta-card--expand-corner:hover::before,
    .cta-card--expand-corner:focus-visible::before {
        transform: scale(62);
        opacity: .9;
    }
    .cta-card--expand-corner:hover .cta-card__content,
    .cta-card--expand-corner:focus-visible .cta-card__content {
        color: var(--color-text-on-primary);
    }
    .cta-card--expand-corner:hover .cta-card__header,
    .cta-card--expand-corner:focus-visible .cta-card__header {
        bottom: 10rem;
        color: var(--color-text-on-primary);
    }
    .cta-card--expand-corner:hover .cta-card__header h3,
    .cta-card--expand-corner:focus-visible .cta-card__header h3 {
        color: var(--color-text-on-primary);
    }
    .cta-card--expand-corner:hover .cta-card__text,
    .cta-card--expand-corner:focus-visible .cta-card__text {
        opacity: 1;
        visibility: visible;
        color: var(--color-text-on-primary);
    }
    .cta-card--expand-corner:hover .cta-card__text p,
    .cta-card--expand-corner:focus-visible .cta-card__text p {
        color: var(--color-text-on-primary);
    }
    .cta-card--expand-corner:hover .cta-card__actions .button,
    .cta-card--expand-corner:focus-visible .cta-card__actions .button {
        background-color: var(--color-background);
        color: var(--color-primary-physio);
        border-color: var(--color-background);
    }
    .cta-card--expand-corner:hover .cta-card__go-corner {
        background-color: transparent;
    }
    .cta-card__go-corner {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        width: 48px;
        height: 48px;
        overflow: hidden;
        top: 0;
        right: 0;
        background-color: var(--color-primary-physio);
        border-radius: 0 var(--border-radius) 0 48px;
        z-index: 4;
    }
    .cta-card__go-arrow {
        margin-top: -6px;
        margin-right: -6px;
        color: var(--color-text-on-primary);
        font-family: courier, sans-serif;
        font-size: 1.5rem;
        font-weight: bold;
    }
    @media (max-width: 576px) {
        .cta-card--expand-corner:hover::before,
        .cta-card--expand-corner:focus-visible::before {
            transform: scale(45);
        }
        .cta-card--expand-corner:hover .cta-card__header,
        .cta-card--expand-corner:focus-visible .cta-card__header {
            bottom: auto;
            top: var(--spacing-md);
        }
    }
    @container (min-inline-size: 400px) {
        .cta-card__content {
            padding: var(--spacing-lg);
        }
        .cta-card__header {
            padding: 0 var(--spacing-lg);
        }
        .cta-card__text {
            padding: var(--spacing-lg);
        }
    }
    .text-image {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-md);
        container-type: inline-size;
    }
    .text-image__media,
    .text-image__text-content {
        width: 100%;
    }
    .text-image__media {
        overflow: hidden;
        position: relative;
        border-radius: var(--border-radius);
        aspect-ratio: 1 / 1;
    }
    .text-image__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .text-image--align-bottom {
        align-items: flex-end;
    }
    .text-image--align-center {
        align-items: center;
    }
    .text-image__text-content .text-image__inner-padding {
        /*padding-block: var(--spacing-lg);*/
		padding-block: 0;
    }
    .container > .text-image .text-image__text-content {
        padding-block: 0;
    }
    .container > .text-image .text-image__text-content h2,
    .container > .text-image .text-image__text-content h3 {
        margin-block-start: 0;
        font-family: var(--font-family-sans);
        margin-bottom: var(--spacing-sm);
    }
    .text-image__text-content > h2[id^="wann-hilft-"],
    .text-image__text-content > h3[id^="wann-hilft-"] {
        text-align: start;
        margin-bottom: var(--spacing-sm);
        font-family: var(--font-family-sans);
    }
    .text-image__text-content.item-list--note-style > h2,
    .text-image__text-content.item-list--note-style > h3 {
        text-align: start;
    }
    .text-image__sub-headline {
        font-size: var(--h5-size);
        color: var(--color-primary-physio);
        font-weight: var(--font-weight-bold);
        margin-block-end: var(--spacing-sm);
        line-height: 1.3;
    }
        .text-image__sub-headline {
            color: var(--color-primary-osteo);
        }
    @media (min-width: 992px) {
        .text-image {
            flex-direction: row;
            align-items: flex-start;
            gap: var(--spacing-lg);
        }
        .text-image--align-center {
            align-items: center;
        }
        .text-image__media,
        .text-image__text-content {
            width: 50%;
        }
        .text-image--image-left {
        }
        .text-image--image-right {
            flex-direction: row-reverse;
        }
        .text-image--image-left .text-image__text-content {
            padding-inline-start: var(--spacing-lg);
            padding-inline-end: 0;
        }
        .text-image--image-right .text-image__text-content {
            padding-inline-end: var(--spacing-lg);
            padding-inline-start: 0;
        }
    }
    .image-gallery--tiles {
        max-width: 100%;
        margin-inline: auto;
        padding-block-end: 0;
    }
    .image-gallery--tiles .image-gallery__row {
        display: flex;
        flex-wrap: wrap;
        gap: 0;
    }
    .image-gallery--tiles .image-gallery__item {
        flex-grow: 0;
        flex-shrink: 0;
        flex-basis: 100%;
        position: relative;
    }
    .image10n {
        display: block;
        position: relative;
        overflow: hidden;
        color: var(--color-text-on-dark);
        text-decoration: none;
    }
    .image-gallery--tiles .image-gallery__figure {
        margin: 0;
        position: relative;
        line-height: 0;
        aspect-ratio: 4 / 3;
    }
    .image-gallery--tiles .image-gallery__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform var(--transition-duration) var(--transition-timing-function);
    }
    .image-gallery--tiles .image-gallery__link:hover .image-gallery__image,
    .image-gallery--tiles .image-gallery__link:focus-visible .image-gallery__image {
        transform: scale(1.1);
    }
    .image-gallery--tiles .image-gallery__caption {
        position: absolute;
        inset-block-end: 0;
        inset-inline-start: 0;
        width: 100%;
        padding: var(--spacing-sm) var(--spacing-md);
        background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.5) 50%, transparent 100%);
        color: var(--color-text-on-dark);
        font-size: var(--h4-size);
        line-height: 1.3;
        text-align: left;
        z-index: 1;
        box-sizing: border-box;
        transition: opacity var(--transition-duration) ease;
    }
    @media (min-width: 768px) {
        .image-gallery--tiles.image-gallery--two-across .image-gallery__item {
            flex-basis: 50%;
        }
        .image-gallery--tiles .image-gallery__caption {
            font-size: var(--h3-size);
        }
    }
    .item-list {
        display: flex;
        flex-direction: column;
        margin-block-end: 0;
        padding-inline-start: 0;
        list-style: none;
    }
    .item-list__item {
        position: relative;
        display: flex;
        align-items: flex-start;
        gap: var(--spacing-xs);
        padding: var(--spacing-xs) 0;
        color: var(--color-text-light);
    }
    .item-list--styled .item-list__item {
        padding: var(--spacing-xs) var(--spacing-sm);
        background-color: var(--color-background);
        border: 1px solid var(--color-border);
    }
    .item-list--styled .item-list__item + .item-list__item {
        border-top-width: 0;
    }
    .item-list__item:disabled {
        color: var(--color-text-muted);
        pointer-events: none;
        background-color: var(--color-background);
    }
    .item-list__icon {
        width: 1.1em;
        height: 1.1em;
        fill: var(--color-primary-physio);
        flex-shrink: 0;
        margin-top: 0.15em;
    }
    .item-list--compact .item-list__item {
        padding-block: var(--spacing-xxs);
    }
    .item-list--compact .item-list__icon {
        width: 1em;
        height: 1em;
    }
    .text-image__text-content.item-list--note-style {
        font-family: var(--font-family-note);
        padding: var(--spacing-md);
        transform: rotate(-1.5deg);
        margin-block-start: 0;
    }
    .text-image__text-content.item-list--note-style > p,
    .text-image__text-content.item-list--note-style > h2,
    .text-image__text-content.item-list--note-style > h3,
    .text-image__text-content.item-list--note-style > h4 {
        font-family: var(--font-family-sans);
    }
    .text-image__text-content.item-list--note-style .item-list {
        margin-block: 0;
    }
    .page-osteopathie .text-image__text-content.item-list--note-style .item-list {
        border-color: var(--color-primary-osteo);
    }
    .text-image__text-content.item-list--note-style .item-list__item {
        padding: var(--spacing-xs) 0;
        border: none;
        background-color: transparent;
        font-size: 1.4rem;
        line-height: 1.6;
        letter-spacing: 0.5px;
        color: var(--color-text-light);
    }
    .page-osteopathie .text-image__text-content.item-list--note-style .item-list__item {
        color: var(--color-text-osteo-note);
    }
    .text-image__text-content.item-list--note-style .item-list__icon {
        width: 1.5em;
        height: 1.5em;
        fill: #556b2f;
        margin-top: 0.1em;
    }
     .page-osteopathie .text-image__text-content.item-list--note-style .item-list__icon {
        fill: var(--color-icon-osteo-note);
    }
    .item-list--flush > .item-list__item {
        border-width: 0 0 1px;
        background: transparent;
        padding-inline: 0;
        padding-block: var(--spacing-xxs);
    }
    .item-list--flush > .item-list__item:last-child {
        border-bottom-width: 0;
    }
    .content-section--dark-bg .item-list--flush .item-list__item {
        border-color: var(--color-border-dark);
        color: var(--color-text-on-dark-muted);
    }
    .content-section--dark-bg .item-list--flush .item-list__item .item-list__icon {
        fill: var(--color-primary-physio);
    }
    .feature-list {
        font-size: 1.125rem;
    }
    .feature-list__item {
        display: flex;
        align-items: center;
        gap: var(--spacing-xs);
    }
    .team-member-card-group {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    @media (min-width: 1240px) {
        .team-member-card-group {
            grid-template-columns: repeat(2, 1fr);
        }
    }
    .team-member-card {
        background-color: var(--color-background-light);
        border-radius: var(--border-radius);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        height: 100%;
        box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    }
    .team-member-card__image-wrapper {
        line-height: 0;
        width: 100%;
        aspect-ratio: 1 / 1;
        background-color: transparent;
        position: relative;
        overflow: hidden;
    }
    .team-member-card__image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        position: absolute;
        inset: 0;
        transition: opacity var(--transition-duration) var(--transition-timing-function);
    }
    .team-member-card__image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        position: absolute;
        inset: 0;
        transition: opacity var(--transition-duration) var(--transition-timing-function);
    }
    .team-member-card__image--default {
        opacity: 1;
        z-index: 1;
    }
    .team-member-card__image--hover {
        opacity: 0;
        z-index: 0;
    }
    .team-member-card:hover .team-member-card__image--default,
    .team-member-card:focus-within .team-member-card__image--default {
        opacity: 0;
    }
    .team-member-card:hover .team-member-card__image--hover,
    .team-member-card:focus-within .team-member-card__image--hover {
        opacity: 1;
        z-index: 1;
    }
    .team-member-card__content {
        padding: var(--spacing-md);
        flex-grow: 1;
        display: flex;
        flex-direction: column;
    }
    .team-member-card__header {
        margin-block-end: var(--spacing-sm);
    }
    .team-member-card__name {
        font-size: var(--h4-size);
        color: var(--color-text);
        margin-block-end: var(--spacing-xxs);
        font-weight: var(--font-weight-bold);
    }
    .team-member-card__title {
        font-size: var(--font-size-base);
        color: var(--color-primary-physio);
        font-weight: var(--font-weight-normal);
        margin-block-end: var(--spacing-sm);
        display: block;
    }
    .team-member-card__description {
        font-size: 0.95em;
        color: var(--color-text-muted);
        line-height: 1.6;
        margin-block-end: var(--spacing-md);
        flex-grow: 1;
    }
    .team-member-card__contact {
        font-size: 0.9em;
        line-height: 1.5;
        margin-block-start: auto;
    }
    .team-member-card__contact p {
        margin-block-end: var(--spacing-xs);
    }
    .team-member-card__contact a {
        color: var(--color-link);
        text-decoration: none;
    }
    .team-member-card__contact a:hover {
        text-decoration: underline;
    }
    @media (min-width: 768px) {
        .team-member-card {
            flex-direction: row;
        }
        .team-member-card .team-member-card__content {
            order: 1;
            flex-basis: 60%;
            padding: var(--spacing-md);
        }
        .team-member-card .team-member-card__image-wrapper {
            order: 2;
            flex-basis: 40%;
            aspect-ratio: 4 / 5;
        }
    }

    address.contact-info {
        margin-block: var(--spacing-xs);
    }
    .contact-info a {
        display: inline-block;
        margin-bottom: var(--spacing-xs);
    }
    .contact-info a:last-child {
        margin-bottom: 0;
    }
    .contact-info br + a {
        margin-top: var(--spacing-xs);
    }
    .opening-hours-block,
    .contact-details-block {
        margin-bottom: var(--spacing-lg);
    }
    .opening-hours-block p,
    .contact-details-block p,
    .contact-details-block address {
        margin-bottom: var(--spacing-sm);
    }
    .contact-details-block .button {
        margin-bottom: var(--spacing-sm);
    }
    .contact-details-block .button + .button {
         margin-left: 0;
    }
    @media (min-width: 768px) {
        .contact-details-block .button + .button {
            margin-left: var(--spacing-sm);
        }
    }
     .map-full-width-wrapper {
        margin-inline: calc(-1 * var(--container-padding-x));
        position: relative;
    }
    @media (max-width: 767px) {
        .map-full-width-wrapper {
            margin-inline: 0;
        }
    }
}

@layer utilities {
    .u-text-center {
        text-align: center !important;
    }
    .u-text-uppercase {
        text-transform: uppercase !important;
    }
    .u-text-muted {
        color: var(--color-text-muted) !important;
    }
    .u-hidden-mobile {
        @media (max-width: 767px) {
            display: none !important;
        }
    }
    .u-hidden-desktop {
        @media (min-width: 768px) {
            display: none !important;
        }
    }
    .u-mt-3 {
        margin-block-start: var(--spacing-md) !important;
    }
    .u-mt-4 {
        margin-block-start: var(--spacing-lg) !important;
    }
    .u-mb-4 {
        margin-block-end: var(--spacing-lg) !important;
    }
    .animate-on-scroll {
        opacity: 0;
        transition-property: opacity, transform;
        transition-duration: 0.7s;
        transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }
    .animate-on-scroll.is-visible {
        opacity: 1;
        transform: translate(0, 0) !important;
    }
    .fade-in-up {
        transform: translateY(40px);
    }
    .fade-in-down {
        transform: translateY(-40px);
    }
    .fade-in-left {
        transform: translateX(40px);
    }
    .fade-in-right {
        transform: translateX(-40px);
    }
    .animate-children-staggered.is-visible .animate-on-scroll {
        transition-delay: calc(var(--animation-order, 0) * 150ms);
    }
}

@layer theme-overrides {
}

@media (prefers-reduced-motion: reduce) {
  .animate-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}