/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 200;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-9210f8a7.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 200;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-76393105.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-9210f8a7.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-76393105.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-9210f8a7.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-76393105.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-9210f8a7.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-76393105.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-9210f8a7.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-76393105.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-1e82e2bf.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-49e242af.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-1e82e2bf.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-49e242af.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-1e82e2bf.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-49e242af.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-1e82e2bf.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-49e242af.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-1e82e2bf.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/montserrat/montserrat-49e242af.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-ca741028.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-61a96359.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-ca741028.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-61a96359.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-ca741028.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-61a96359.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-ca741028.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-61a96359.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 800 900;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-ca741028.woff2)
        format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 800 900;
    font-display: swap;
    src: url(../assets/fonts/playfairdisplay/playfairdisplay-61a96359.woff2)
        format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/nunito/nunito-9abf3bd2.woff2) format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Nunito';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/nunito/nunito-ff573f56.woff2) format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/poppins/poppins-c9d614f4.woff2) format('woff2');
    unicode-range:
        U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
        U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
        U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../assets/fonts/poppins/poppins-e6a077c3.woff2) format('woff2');
    unicode-range:
        U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
        U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
        U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
    color-scheme: light;
    --bp-md: 768px;
    --bp-lg: 1024px;
    --bp-xl: 1280px;
    --color-canvas: #fafafa;
    --color-surface: #ffffff;
    --color-ink: #000000;
    --color-muted: #595959;
    /* Softer secondary text for the cookie banner and settings, still 4.5:1 on the surface. */
    --color-subtle: #737373;
    /* Light outline of the cookie layers and their outlined pills (design reference). */
    --color-line-strong: color-mix(in srgb, var(--color-ink) 16%, transparent);
    /* Decorative hairline; controls keep a 3:1 boundary through --color-control-border. */
    --color-line: rgb(0 0 0 / 9%);
    --color-control-border: #767676;
    --color-fill: color-mix(in srgb, var(--color-ink) 5%, transparent);
    --color-fill-strong: color-mix(in srgb, var(--color-ink) 9%, transparent);
    --color-accent: #000000;
    --color-accent-hover: #262626;
    --color-on-accent: #ffffff;
    /* Status meaning comes from text and an icon, never a hue. */
    --color-error: var(--color-ink);
    --color-success: var(--color-ink);
    --color-info: var(--color-ink);
    --color-focus: var(--color-ink);
    --color-backdrop: rgb(0 0 0 / 55%);
    /* 88% keeps muted nav text at 4.5:1 while the dark CTA band scrolls under the header. */
    --color-header: color-mix(in srgb, var(--color-canvas) 88%, transparent);
    --color-image-surface: #111111;
    --color-on-image: #ffffff;
    /* Text spans the full width on small screens, so the scrim is even: white text stays
       at 4.5:1 even over a white photo. From 1024px the text sits left and the scrim fades. */
    --color-image-scrim: rgb(0 0 0 / 55%);
    --color-image-scrim-wide: linear-gradient(
        90deg,
        rgb(0 0 0 / 72%) 0%,
        rgb(0 0 0 / 55%) 70%,
        rgb(0 0 0 / 30%) 100%
    );
    /* Full-bleed CTA band; in dark theme it stays a dim surface instead of a white panel. */
    --color-band: var(--color-accent);
    --color-on-band: var(--color-on-accent);
    --font-body:
        'Montserrat', ui-sans-serif, system-ui, -apple-system,
        BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono: ui-monospace, 'SFMono-Regular', Consolas, monospace;
    /* 11px at 320px; 13px at 1280px, with the default 16px root. */
    --fs-nav: clamp(0.6875rem, 0.6458rem + 0.2083vw, 0.8125rem);
    /* 11.5px at 320px; 12px at 1280px. Cookie banner and settings only, matched 1:1 to the design reference. */
    --fs-caption: clamp(0.71875rem, 0.7083rem + 0.0521vw, 0.75rem);
    /* 13px at 320px; 14px at 1280px. */
    --fs-small: clamp(0.8125rem, 0.7917rem + 0.1042vw, 0.875rem);
    /* 15px at 320px; 16px at 1280px. */
    --fs-body: clamp(0.9375rem, 0.9167rem + 0.1042vw, 1rem);
    /* 17px at 320px; 20px at 1280px. */
    --fs-lead: clamp(1.0625rem, 1rem + 0.3125vw, 1.25rem);
    /* 18px at 320px; 22px at 1280px. */
    --fs-heading: clamp(1.125rem, 1.0417rem + 0.4167vw, 1.375rem);
    /* 26px at 320px; 36px at 1280px. */
    --fs-title: clamp(1.625rem, 1.4167rem + 1.0417vw, 2.25rem);
    /* 36px at 320px; 64px at 1280px. */
    --fs-display: clamp(2.25rem, 1.6667rem + 2.9167vw, 4rem);
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --space-8: 4rem;
    --space-9: 6rem;
    /* 48px at 320px; 120px at 1280px. Applied once per section boundary. */
    --section-y: clamp(3rem, 1.5rem + 7.5vw, 7.5rem);
    --radius-surface: 0.875rem; /* floating layers: consent, dialog, nav panel */
    --radius-control: 0.5rem;
    /* Inline text chips such as <code> in running text. */
    --radius-inline: 0.25rem;
    --radius-pill: 999px;
    --shadow-overlay:
        0 24px 64px -24px rgb(0 0 0 / 30%), 0 2px 6px rgb(0 0 0 / 6%);
    --shadow-layer:
        0 0 0 1px var(--color-line-strong), var(--shadow-overlay); /* cookie banner and settings */
    /* Switch: the off track keeps a 3:1 boundary on the surface; the knob is white until checked. */
    --color-switch-off: color-mix(
        in srgb,
        var(--color-ink) 42%,
        var(--color-surface)
    );
    --color-switch-knob: #ffffff;
    --shadow-knob: 0 1px 3px rgb(0 0 0 / 25%);
    --z-media-content: 1;
    --z-control-overlay: 1; /* switch input above its drawn track */
    --z-header: 10;
    --z-dropdown: 11;
    --z-consent: 30;
    --z-skip: 50;
    --wrap: 80rem;
    --wrap-pad: var(--space-4);
    /* Narrower block: legal text, whose tables may exceed --measure. */
    --wrap-narrow: 56rem;
    --measure: 68ch;
    --hero-width: 52rem;
    --catalog-nav: 13rem;
    --header-height: 4rem;
    --control-size: 2.75rem;
    --control-size-large: 3.5rem;
    /* Visual height of the banner and settings pills (28px and 32px, design reference);
       their hit area stays --control-size. */
    --control-size-compact: 1.75rem;
    --control-size-compact-dialog: 2rem;
    --switch-width: 2.75rem;
    --switch-height: 1.5rem;
    --switch-inset: 0.125rem;
    --checkbox-size: 1.25rem;
    --field-message-height: 10rem;
    --form-width: 40rem;
    --measure-short: 32ch;
    --facts-term-width: 8rem;
    --icon-grid-min: 9rem;
    /* Cookie banner and settings share this width. */
    --dialog-width: 33rem;
    --swatch-height: 4rem;
    --nav-panel-width: 18rem;
    --image-section-measure: 42rem;
    --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
    --dur-in: 0.28s;
    --dur-out: 0.18s;
    /* Hover on light-on-dark buttons (CTA band, image section): no darker accent exists there, so the fill dims. */
    --opacity-inverse-hover: 0.88;
}

:root {
    --fs-nav: 0.85rem;
    --fs-section-title: 2rem;
    --fs-card-title: 1.4rem;
    --fs-small: 0.9rem;
    --fs-body: 1rem;
    --fs-menu: 0.875rem;
    --fs-caption: 0.8rem;
    --fs-hero-lead: 1.5rem;
    --fs-mobile-title: 1.8rem;
    --fs-hero-mobile: 2.5rem;
    --fs-lead: 1.3rem;
    --fs-micro: 0.7rem;
    --fs-testimonial-title: 2.2rem;
    --fs-retreat-mobile: 3.3rem;
    --fs-article-title: 1.6rem;
    --fs-trial-title: 1.7rem;
    --fs-marquee: 3rem;
    --fs-tablet-body: 0.95rem;
    --fs-tablet-title: 2.4rem;
    --fs-eyebrow-large: 1.2rem;
    --fs-legacy-tablet-label: 0.059375rem;
}
/* Production-derived shared components. Mobile first, source breakpoints. */
:root {
    --color-primary: #d7b693;
    --color-secondary: #79735f;
    --color-primary-ink: #936741;
    --color-accent: #98643e;
    --color-ink: #1a1a1a;
    --color-white: #fff;
    --font-body: 'Montserrat', sans-serif;
    --font-display: 'Playfair Display', serif;
    --fs-body: clamp(0.9rem, 0.85rem + 0.2vw, 1rem);
    --fs-small: clamp(0.8rem, 0.78rem + 0.1vw, 0.9rem);
    --fs-nav: 0.85rem;
    --fs-title: clamp(1.8rem, 1rem + 2vw, 3rem);
    --fs-section: var(--fs-section-title);
    --fs-card: var(--fs-card-title);
    --color-accent-hover: #805232;
    --color-subtle: #737373;
    --color-surface: #fff;
    --color-focus: #805232;
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
    scroll-padding-top: 110px;
}
body {
    margin: 0;
    background: #fff;
    color: var(--color-ink);
    font-family: var(--font-body);
    font-size: var(--fs-small);
    line-height: 1.667;
}
button,
input,
textarea,
select {
    font: inherit;
}
button,
a {
    -webkit-tap-highlight-color: transparent;
}
button {
    cursor: pointer;
}
button:disabled {
    cursor: wait;
}
img {
    display: block;
    max-width: 100%;
    height: auto;
}
svg {
    display: inline-block;
    max-width: 100%;
    fill: currentColor;
}
a {
    color: var(--color-accent);
    text-decoration: none;
}
a:hover {
    color: #a76a46;
}
p {
    margin: 0 0 1em;
}
h1,
h2,
h3,
h4 {
    font-family: var(--font-display);
    margin: 0;
    font-weight: 600;
    line-height: 1.2;
}
h1 {
    font-size: var(--fs-title);
    font-weight: 700;
}
h2 {
    font-size: var(--fs-section);
}
h3 {
    font-size: var(--fs-card);
}
ul {
    padding-left: 1.3em;
}
iframe {
    border: 0;
    display: block;
    width: 100%;
}
figure {
    margin: 0;
}
[hidden] {
    display: none !important;
}
:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 5px;
}
.u-sr-only,
.form__honeypot,
.honeypot {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link {
    position: fixed;
    top: -100px;
    left: 20px;
    z-index: 100;
    background: white;
    padding: 12px;
}
.skip-link:focus {
    top: 10px;
}
.container {
    width: min(1140px, calc(100% - 60px));
    margin-inline: auto;
}
.container--wide {
    width: min(1200px, calc(100% - 60px));
}
.container--article {
    max-width: 900px;
}
.icon {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
}
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 44px;
    padding: 6.4px 32px;
    border: 1px solid transparent;
    border-radius: 32px;
    background: var(--color-accent);
    color: #fff;
    font-size: var(--fs-body);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.01em;
    text-align: center;
    transition:
        background 0.2s,
        color 0.2s,
        transform 0.2s;
}
.button:hover {
    background: var(--color-accent-hover);
    color: #fff;
}
.button--light {
    background: white;
    color: var(--color-accent);
}
.button--light:hover {
    background: var(--color-primary);
    color: white;
}
.button--outline {
    background: transparent;
    color: white;
    border-color: white;
}
.button--text {
    padding: 0;
    min-height: 44px;
    background: none;
    color: var(--color-accent);
    border: 0;
}
.button--text:hover {
    background: none;
    color: #a76a46;
}
.button--color-secondary {
    background: transparent;
    color: var(--color-ink);
    border: 1px solid var(--color-line-strong);
}
.button__icon {
    width: 1em;
    height: 1em;
}
.icon-button {
    display: inline-grid;
    place-items: center;
    min-width: 44px;
    min-height: 44px;
    border: 0;
    background: none;
    color: inherit;
}
.glass {
    background: rgb(255 255 255/0.6);
    border: 1px solid rgb(255 255 255/0.35);
    border-radius: 32px;
    backdrop-filter: blur(18px);
    box-shadow: 0 5px 20px rgb(15 23 42/0.1);
}
.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    height: 80px;
    padding-top: 20px;
    padding: 0;
}
.site-header__bar {
    display: flex;
    align-items: center;
    min-height: 80px;
    padding: 15px 5%;
    gap: 10px;
    width: 100%;
    border-radius: 0;
    border-inline: 0;
}
.site-header__logo {
    flex: none;
    width: 140px;
}
.site-nav {
    margin-left: auto;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    margin: 0;
    display: none;
}
.site-nav__list {
    display: block;
    align-items: center;
    gap: 20px;
    margin: 0;
    padding: 20px 5%;
    list-style: none;
}
.site-nav__link {
    position: relative;
    display: block;
    padding: 20px 0;
    color: #1c244b;
    font-size: var(--fs-menu);
    letter-spacing: 0.01em;
    white-space: nowrap;
    font-family: 'Poppins', sans-serif;
}
.site-nav__link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width 0.25s;
    display: none;
}
.site-nav__link:hover::after,
.site-nav__link[aria-current]::after {
    width: 100%;
}
.site-header__cta {
    margin-left: auto;
    background: white;
    color: var(--color-ink);
    border-color: var(--color-primary);
    font-size: var(--fs-caption);
    font-weight: 400;
    white-space: nowrap;
    padding: 2px 15px;
    display: none;
}
.site-header__toggle {
    display: grid;
    font-size: var(--fs-hero-lead);
    margin-left: auto;
}
.page-hero {
    isolation: isolate;
    position: relative;
    margin-top: -100px;
    padding: 150px 0 100px;
    overflow: hidden;
    color: #fff;
    background: var(--color-primary);
}
.page-hero::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg, var(--color-accent) 0%, transparent 80%);
}
.page-hero__image,
.page-hero__video,
.hero-slideshow {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.page-hero__video {
    width: 100%;
    height: 100%;
    pointer-events: none;
    transform: scale(1.35);
}
.page-hero__title {
    width: 100%;
    line-height: 1.333;
    margin-bottom: 30px;
    font-size: var(--fs-mobile-title);
}
.page-hero__lead {
    width: 100%;
    font-size: var(--fs-body);
    line-height: 1.6;
    margin-bottom: 50px;
}
.page-hero__lead:last-child {
    margin-bottom: 0;
}
.page-hero__actions {
    display: flex;
    gap: 20px;
    flex-direction: column-reverse;
    align-items: flex-start;
}
/* Source mobile portrait is offset inside the cover frame to keep the face visible. */
.page-hero--portrait .page-hero__image {
    object-position: -176px 99px;
}
.page-hero--home {
    min-height: 70vh;
    display: flex;
    align-items: center;
    padding: 150px 0 120px;
}
.page-hero--home .page-hero__title {
    margin-bottom: 50px;
    font-size: var(--fs-hero-mobile);
    line-height: 1.28;
}
.page-hero--home .page-hero__lead {
    width: 100%;
    font-size: var(--fs-lead);
    line-height: 1.538;
    margin-bottom: 50px;
}
.page-hero__caption {
    font-size: var(--fs-micro);
    margin: 8px 0 0 25px;
    line-height: 1.4;
    margin-left: 0;
}
.shape {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: calc(100vw * 19.6 / 283.5);
    transform: rotate(180deg);
    color: white;
    pointer-events: none;
}
.shape svg {
    height: 100%;
    width: 100%;
}
.section-label {
    display: flex;
    align-items: center;
    gap: 16px;
    width: max-content;
    max-width: 100%;
    font-size: var(--fs-caption);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 5px;
    padding: 5px 0;
    color: var(--color-secondary);
}
.section-label::after {
    content: '';
    width: 70px;
    height: 1px;
    background: currentColor;
}
.section-label--light {
    color: white;
}
.section-title {
    font-size: var(--fs-section);
    line-height: 1;
    color: var(--color-secondary);
    margin-bottom: 30px;
}
.section-title a {
    color: inherit;
}
.section-title--large {
    font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem);
}
.section-title--muted {
    color: var(--color-secondary);
}
.page-section {
    padding: 50px 0;
}
.page-section--compact {
    padding: 70px 0;
}
.page-section--gallery {
    padding: 100px 0 0;
}
.page-section--article {
    padding: 50px 0;
}
.intro__grid,
.testimonials__intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: stretch;
}
.intro__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.intro .section-title {
    margin: 0 0 40px;
}
.intro__copy p {
    margin-bottom: 0.9rem;
}
.intro__copy > .section-label {
    margin: 0;
}
.intro .section-label {
    padding-block: 2px;
    color: var(--color-primary-ink);
}
.intro__body {
    display: flow-root;
    margin-bottom: 20px;
}
.intro__body a {
    line-height: 1.8;
}
.intro .button--text {
    position: relative;
    min-height: 0;
    font-size: inherit;
    line-height: inherit;
}
.intro .button--text::after {
    content: '';
    position: absolute;
    inset: calc(50% - 22px) 0;
}
.illustration {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-height: 300px;
    text-align: center;
    background: center/contain no-repeat;
}
.illustration--intro {
    background-image: url('/assets/images/uploads/2025/11/bg-elemen-1.svg');
}
.illustration--testimonials {
    background-image: url('/assets/images/uploads/2025/11/bg-elemen-2.svg');
}
.illustration__image {
    width: 250px;
    margin-bottom: 20px;
}
.illustration--intro .illustration__image {
    aspect-ratio: 139.92 / 163.14;
}
.illustration--testimonials .illustration__image {
    width: 120px;
}
.illustration__quote {
    max-width: 100%;
    font-size: var(--fs-micro);
    line-height: 1rem;
    margin: 0 0 0.9rem;
}
.classes-section {
    position: relative;
    isolation: isolate;
    padding: 100px 0 120px;
    background: url('/assets/images/uploads/2025/11/joga-zemun-na-otvorenom-casovi-17.webp')
        center/cover fixed;
    text-align: center;
    background-attachment: scroll;
}
.classes-section::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgb(215 182 147/0.5);
}
.classes-section .section-label {
    margin-inline: auto;
    margin-bottom: 10px;
    padding-block: 2px;
    color: white;
}
.classes-section .section-title {
    color: white;
    margin-bottom: 40px;
}
.classes-section__lead {
    display: flow-root;
    max-width: 85%;
    margin: 0 auto 60px;
    color: white;
}
.classes-section__lead p {
    margin-bottom: 0.9rem;
}
.class-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    padding-inline: 20px;
}
.class-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 50px 20px 40px;
}
.class-card__icon {
    aspect-ratio: 1;
    width: 120px;
    margin: 0 auto 30px;
    opacity: 0.8;
}
.class-card__icon-link {
    display: block;
}
.class-card__title a {
    color: inherit;
}
.class-card__title sup {
    position: relative;
    top: -0.5em;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline;
}
.class-card__title small {
    font-size: 80%;
}
.class-card__title {
    width: 100%;
    font-size: var(--fs-card);
    font-weight: 400;
    line-height: 1;
    margin-bottom: 10px;
    color: var(--color-ink);
}
.class-card__divider {
    width: 50%;
    height: 1px;
    background: rgb(255 255 255/0.5);
    margin: 15px auto;
}
.class-card__text {
    font-size: var(--fs-small);
    line-height: 1.556;
    width: 80%;
    margin: 0 auto;
}
.testimonials {
    padding: 150px 0 0;
    margin-bottom: 100px;
    padding-top: 0;
}
.testimonials__intro {
    grid-template-columns: 1fr;
    margin-bottom: 10px;
}
.testimonials .section-title {
    font-size: var(--fs-testimonial-title);
    line-height: 1.136;
    width: 70%;
}
.testimonials__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
}
.testimonials__copy > .section-label {
    padding-block: 2px;
    margin: 0;
}
.testimonials__copy > .section-title {
    line-height: 2.5rem;
}
.testimonials__copy > p:last-child {
    margin-bottom: 0.9rem;
}
.illustration--testimonials {
    margin-bottom: 20px;
}
/* Preserve the source SVG viewBox ratio before its lazy image is decoded. */
.illustration--testimonials .illustration__image {
    margin-bottom: 0;
    aspect-ratio: 71.73 / 257.44;
}
.testimonial-carousel {
    overflow: hidden;
}
.testimonial-carousel__track {
    display: flex;
    gap: 10px;
    transition: transform 0.5s ease;
}
.testimonial {
    flex: 0 0 50%;
    padding: 10px;
    flex-basis: 100%;
}
.testimonial__body {
    position: relative;
    border-radius: 40px;
    background: #f5f5f5;
    padding: 50px;
    font-size: var(--fs-small);
    line-height: 1.778;
    margin: 0;
    text-align: center;
    font-style: italic;
}
.testimonial__body::after {
    content: '';
    position: absolute;
    top: calc(100% - 7px);
    left: 50%;
    width: 14px;
    height: 14px;
    transform: translateX(-50%) scaleX(0.75) rotate(45deg);
    background: #f5f5f5;
}
/* Source testimonial footer: 25px separation and a 24px name line at every width. */
.testimonial__name {
    display: block;
    margin: 25px 10px 0;
    font-family: var(--font-display);
    font-size: var(--fs-body);
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.5px;
    font-style: normal;
    text-align: center;
}
/* The 44px controls overlap the slides' empty bottom padding by 4px, reserving the source's 40px slot. */
.carousel-dots {
    display: flex;
    justify-content: center;
    gap: 4px;
    margin-top: -4px;
}
.carousel-dots__button {
    border: 0;
    background: none;
    width: 28px;
    height: 44px;
    padding: 9px;
}
.carousel-dots__button::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-primary);
}
.carousel-dots__button[aria-current='true']::after {
    background: #e6e6e6;
}
.retreat {
    margin-bottom: 10px;
    min-height: 410px;
    border-radius: 30px;
    overflow: hidden;
    position: relative;
    isolation: isolate;
    padding-bottom: 130px;
}
.retreat__image {
    position: absolute;
    inset: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.retreat__panel {
    width: 100%;
    padding: 40px;
    background: rgb(215 182 147/0.9);
    border-radius: 30px 30px 200px 30px;
    clip-path: ellipse(130% 100% at 0 50%);
}
.retreat__title {
    font-size: var(--fs-retreat-mobile);
    line-height: 1.06;
    margin-bottom: 10px;
}
.retreat__title a {
    color: var(--color-ink);
}
.retreat__subtitle {
    font-family: var(--font-display);
    font-size: var(--fs-body);
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: 20px;
    white-space: normal;
}
/* Source decorative divider: 43% line with 15px space above and below; no shared divider uses this ratio. */
.retreat__subtitle::before {
    content: '';
    display: block;
    height: 31px;
    background: linear-gradient(
            rgba(255, 255, 255, 0.498),
            rgba(255, 255, 255, 0.498)
        )
        left center/43% 1px no-repeat;
}
/* Source text widgets also retain the Hello paragraph's .9rem bottom margin. */
.retreat__date {
    font-family: var(--font-display);
    font-size: var(--fs-hero-mobile);
    line-height: 1;
    margin-bottom: calc(20px + 0.9rem);
}
.retreat__note {
    font-size: var(--fs-caption);
    margin: 0 0 0.9rem;
}
.video-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}
/* The source's 20px container gap plus the retreat's 10px margin do not collapse. */
.retreat + .video-grid {
    margin-top: 30px;
    padding-bottom: 10px;
}
.video-embed {
    position: relative;
    display: block;
    padding: 0;
    border: 0;
    background: var(--color-primary);
    border-radius: 30px;
    overflow: hidden;
    aspect-ratio: 16/9;
    width: 100%;
}
.video-embed > img,
.video-embed > iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.video-embed__play {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 50px;
    height: 50px;
    color: var(--color-primary);
    filter: drop-shadow(0 1px 3px #0006);
}
.location-section {
    padding: 70px 0 0;
    padding-top: 70px;
}
.location-section .section-title {
    margin-bottom: 20px;
}
.location-section > .container {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.location-section .section-label {
    padding-block: 2px;
    color: var(--color-primary-ink);
}
/* Source text widget keeps both its paragraph margin and its 20px widget margin. */
.location-section > .container > p:not(.section-label) {
    margin-bottom: calc(0.9rem + 20px);
}
.map-embed {
    overflow: hidden;
    border-radius: 32px;
}
.map-embed__frame {
    height: 400px;
}
.map-embed--small .map-embed__frame {
    height: 200px;
}
.map-embed--contact .map-embed__frame {
    height: 390px;
}
.copy-layout {
    display: grid;
    grid-template-columns: minmax(0, 65.702fr) minmax(0, 34.298fr);
    gap: 30px;
}
.copy-layout__main {
    min-width: 0;
}
.prose p {
    margin-bottom: 20px;
}
.prose h2,
.prose__title {
    margin: 35px 0 20px;
    color: var(--color-secondary);
}
.prose h3 {
    margin: 30px 0 20px;
}
.prose__underlined {
    text-decoration: underline;
}
.copy-layout__aside {
    position: relative;
}
.location-card {
    padding: 40px 30px;
    margin-bottom: 40px;
}
.location-card__title {
    font-size: var(--fs-article-title);
    color: var(--color-secondary);
    margin-bottom: 15px;
}
.location-card__title a {
    color: inherit;
}
.location-card__list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    font-size: var(--fs-caption);
}
.location-card__list li {
    margin-bottom: 10px;
}
.location-card__list a {
    color: var(--color-ink);
}
.location-card__note {
    font-size: var(--fs-caption);
    line-height: 1.6;
}
.trial-card {
    position: static;
    top: 140px;
    background: var(--color-secondary);
    padding: 40px 30px 50px;
    color: white;
    text-align: center;
}
.trial-card__title {
    font-size: var(--fs-trial-title);
    margin-bottom: 15px;
}
.trial-card__title a {
    color: white;
}
.trial-card__copy {
    font-family: 'Nunito', sans-serif;
    line-height: 1.4;
    margin: 20px 0;
}
.image-carousel {
    position: relative;
    overflow: hidden;
    border-radius: 30px;
    aspect-ratio: 3/2;
}
.image-carousel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.8s;
}
.image-carousel__slide.is-active {
    opacity: 1;
    z-index: 1;
}
.image-carousel__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.gallery {
    display: grid;
    gap: 20px;
    margin: 30px 0 70px;
}
.gallery--pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.gallery--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.gallery--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.gallery__item {
    display: block;
    overflow: hidden;
    border-radius: 30px;
    position: relative;
}
.gallery__item img {
    width: 100%;
    transition: opacity 0.8s;
}
.gallery__item:hover img {
    opacity: 0.75;
}
.gallery--masonry {
    display: block;
    columns: 2;
    column-gap: 20px;
}
.gallery--masonry .gallery__item {
    break-inside: avoid;
    margin-bottom: 20px;
}
.accordion {
    margin: 30px 0;
}
.accordion__item {
    border-bottom: 1px solid #d5d8dc;
}
.accordion__title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    list-style: none;
    cursor: pointer;
    font-weight: 600;
    padding: 20px 0;
}
.accordion__title::-webkit-details-marker {
    display: none;
}
.accordion__title svg {
    width: 16px;
    height: 16px;
    flex: none;
    transition: transform 0.2s;
}
.accordion__item[open] .accordion__title svg {
    transform: rotate(180deg);
}
.accordion__body {
    padding-bottom: 20px;
}
.post-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 35px 30px;
}
.post-card__image {
    display: block;
    overflow: hidden;
    border-radius: 30px;
    margin-bottom: 20px;
}
.post-card__image img {
    width: 100%;
    aspect-ratio: 2/1;
    object-fit: cover;
}
.post-card__title {
    font-size: clamp(1.7rem, 1.2rem + 1vw, 2rem);
    line-height: 1.3;
    margin-bottom: 15px;
}
.post-card__title a {
    color: var(--color-secondary);
}
.post-card__excerpt {
    font-family: 'Nunito', sans-serif;
    line-height: 1.4;
    color: #777;
    margin-bottom: 50px;
}
.post-card__excerpt p {
    margin-bottom: 0;
}
.archive-intro {
    width: 100%;
    margin-bottom: 50px;
}
.archive-byline {
    font-weight: 300;
    font-style: italic;
    font-size: var(--fs-body);
}

.page-hero--article {
    padding: 160px 0 100px;
}
.page-hero--article .page-hero__title,
.page-hero--article .page-hero__lead {
    width: 100%;
}
.breadcrumbs {
    font-size: var(--fs-caption);
    margin-top: 30px;
    border-top: 1px solid #fff6;
    padding-top: 20px;
}
.breadcrumbs a {
    color: inherit;
}
.breadcrumbs__list {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.breadcrumbs__list li + li::before {
    content: '»';
    margin-right: 8px;
}
.prose--article {
    padding: 0;
}
.prose--article h2 {
    font-size: var(--fs-article-title);
    font-weight: 800;
    padding-bottom: 10px;
}
.prose--article h3 {
    font-size: var(--fs-lead);
}
.article-lead {
    font-size: var(--fs-body);
    line-height: 1.6;
}
.share {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 40px 0;
}
.share__link {
    font-size: var(--fs-caption);
    font-weight: 500;
    padding: 8px 16px;
    border: 1px solid var(--color-primary);
    border-radius: 20px;
}
.post-navigation {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    border-top: 1px solid var(--color-primary);
    padding-top: 30px;
}
.post-navigation__link {
    max-width: 48%;
}
.post-navigation__link--next {
    text-align: right;
    margin-left: auto;
}
.post-navigation__label {
    display: block;
    font-size: var(--fs-caption);
}
.post-navigation__title {
    font-family: var(--font-display);
}
.contact-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}
.contact-links {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}
.contact-links a {
    color: inherit;
}
.form__row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}
.form__field {
    margin-bottom: 20px;
}
.form__label {
    display: block;
    margin-bottom: 9px;
    font-size: var(--fs-nav);
    line-height: 1;
}
/* Source Elementor small fields; 16px type also preserves mobile focus readability. */
.form-control {
    width: 100%;
    border: 1px solid #c0c0c0;
    border-radius: var(--radius-control);
    padding: 5px 14px;
    min-height: 40px;
    font-size: 1rem;
    line-height: 1.4;
    background: white;
    color: var(--color-ink);
}
textarea.form-control {
    min-height: 40px;
    resize: vertical;
}
.form__consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: var(--fs-small);
    margin: 15px 0;
}
.form__consent input {
    margin-top: 7px;
    accent-color: var(--color-accent);
    width: 18px;
    height: 18px;
    flex: none;
}
.form__note,
.form-field__error {
    font-size: var(--fs-small);
}
.form-field__error {
    color: #9a2929;
}
.form-control[aria-invalid='true'] {
    border-color: #9a2929;
}
.notice {
    padding: 15px;
    border: 1px solid var(--color-primary);
    border-radius: 12px;
    margin: 20px 0;
}
.notice--error {
    border-color: #9a2929;
}
.thank-you {
    min-height: 83vh;
    text-align: center;
    padding: 130px 20px 100px;
}
.thank-you h1 {
    margin-bottom: 30px;
}
.thank-you p {
    font-size: var(--fs-lead);
}
.legal {
    max-width: 900px;
    margin: 70px auto;
    padding-inline: 30px;
}
.legal h1 {
    margin-bottom: 40px;
}
.legal h2 {
    margin: 30px 0 20px;
}
.page-hero--centered {
    text-align: center;
    padding: 180px 0 100px;
}
.page-hero--centered .page-hero__title,
.page-hero--centered .page-hero__lead {
    width: 100%;
}
.marquee {
    overflow: hidden;
    padding: 30px 0;
    white-space: nowrap;
    font-size: var(--fs-marquee);
    font-weight: 200;
    line-height: 1.8;
    color: var(--color-primary);
}
.marquee__track {
    display: block;
    width: max-content;
    animation: marquee 60s linear infinite;
    background: linear-gradient(
        90deg,
        var(--color-primary),
        var(--color-secondary),
        var(--color-primary),
        var(--color-secondary)
    );
    background-clip: text;
    color: transparent;
}
.site-footer__main {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: 100px 20px 130px;
    text-align: center;
    background: var(--color-primary);
}
.site-footer__main::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/assets/images/uploads/2025/11/fav.svg') center/40%
        no-repeat fixed;
    opacity: 0.02;
    z-index: -1;
    background-attachment: scroll;
}
.site-footer__logo {
    aspect-ratio: 250.17 / 300.12;
    width: 180px;
    margin: 0 auto 30px;
}
.site-footer__phone {
    display: block;
    color: var(--color-ink);
    font-size: var(--fs-lead);
    line-height: 1.54;
    margin-bottom: 15px;
}
.site-footer__channels,
.site-footer__menu,
.site-footer__socials {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    list-style: none;
    padding: 0;
    margin: 0 0 30px;
}
.site-footer__channels a,
.site-footer__menu a,
.site-footer__socials a {
    color: var(--color-ink);
}
.site-footer__menu {
    gap: 15px 25px;
    font-size: var(--fs-nav);
    flex-wrap: wrap;
}
.site-footer__socials {
    font-size: var(--fs-caption);
}
.site-footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-block: 50px;
    font-size: var(--fs-caption);
    line-height: 1.25;
    flex-direction: column;
    text-align: center;
}
.site-footer__bottom p {
    margin: 0;
}
.site-footer__bottom a {
    color: var(--color-ink);
}
.site-footer__privacy {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
    font-size: var(--fs-micro);
    margin-top: 30px;
}
.site-footer__privacy a,
.site-footer__privacy button {
    color: var(--color-ink);
    background: none;
    border: 0;
    font: inherit;
    padding: 0;
}
.floating-call {
    position: fixed;
    right: 15px;
    bottom: 15px;
    z-index: 15;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--color-accent);
    color: white;
    box-shadow: 0 5px 15px #0003;
    font-size: var(--fs-hero-lead);
}
.floating-call svg {
    width: 25px;
    height: 25px;
}
.lightbox {
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    padding: 60px 40px;
    border: 0;
    background: rgb(0 0 0/0.92);
    color: white;
}
.lightbox::backdrop {
    background: #000;
}
.lightbox__image {
    height: calc(100dvh - 150px);
    width: 100%;
    object-fit: contain;
}
.lightbox__caption {
    text-align: center;
    margin-top: 15px;
}
.lightbox__close {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: var(--fs-section-title);
}
.lightbox__previous,
.lightbox__next {
    position: absolute;
    top: 45%;
    font-size: var(--fs-section-title);
}
.lightbox__previous {
    left: 10px;
}
.lightbox__next {
    right: 10px;
}
.ph-x::before {
    content: '×';
}
.ph-caret-down::before {
    content: '⌄';
}

.reveal:nth-child(2) {
    animation-delay: 0.5s;
}
.reveal:nth-child(3) {
    animation-delay: 1s;
}
.prose__text {
    margin-bottom: 40px;
}
.prose__text--compact {
    margin-bottom: 10px;
}
.prose__text--flush {
    margin-bottom: 0;
}
.copy-layout__main > .prose__title {
    margin-top: 10px;
    margin-bottom: 20px;
}
.copy-layout__main > .gallery--pair {
    margin-bottom: 20px;
}
.form-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}
.accordion__icon--open {
    display: none;
}
.accordion__item[open] .accordion__icon--closed {
    display: none;
}
.accordion__item[open] .accordion__icon--open {
    display: block;
}
.site-nav.is-open {
    display: block;
}
.page-section--compact,
.page-section--gallery {
    padding: 50px 0;
}
.copy-layout,
.contact-layout {
    grid-template-columns: 1fr;
}
.page-hero--archive {
    padding: 150px 0 80px;
}
.site-footer__channels,
.site-footer__socials {
    font-size: var(--fs-small);
}
.site-footer__channels .icon,
.site-footer__socials .icon {
    width: 24px;
    height: 24px;
}
.page-hero--contact {
    padding: 130px 0 50px;
}
.container,
.container--wide {
    width: calc(100% - 30px);
}
.intro__grid {
    grid-template-columns: 1fr;
}
.gallery--three,
.gallery--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.page-section--gallery .container {
    width: calc(100% - 40px);
}
@media (min-width: 768px) {
    body {
        font-size: var(--fs-tablet-body);
        line-height: 1.684;
    }
    .site-header__bar {
        gap: 30px;
    }
    .site-header__logo {
        width: 160px;
    }
    .site-header__cta {
        display: inline-flex;
    }
    .site-header__toggle {
        margin-left: 0;
    }
    .page-hero {
        margin-top: -80px;
    }
    .page-hero__title {
        width: 70%;
        line-height: 1.25;
        font-size: var(--fs-tablet-title);
    }
    .page-hero__lead {
        width: 70%;
        font-size: var(--fs-lead);
        line-height: 1.54;
    }
    .page-hero__actions {
        flex-direction: initial;
        align-items: initial;
    }
    .page-hero--portrait .page-hero__image {
        object-position: top center;
    }
    .page-hero--home {
        min-height: 85vh;
        padding: 150px 0 100px;
    }
    .page-hero--home .page-hero__title {
        font-size: initial;
        line-height: initial;
    }
    .page-hero--home .page-hero__lead {
        width: 65%;
        font-size: var(--fs-hero-lead);
        line-height: 1.333;
    }
    .page-hero__caption {
        margin-left: initial;
    }
    .section-label {
        padding: 15px 0;
    }
    .page-section {
        padding: 70px 0;
    }
    .illustration {
        min-height: 350px;
    }
    .classes-section__lead {
        max-width: 60%;
    }
    .class-grid {
        padding-inline: 150px;
    }
    .testimonials {
        margin-bottom: 100px;
    }
    .testimonials__intro {
        margin-bottom: 10px;
    }
    .testimonial {
        padding: 10px;
        flex-basis: 100%;
    }
    .testimonial__body {
        padding: 50px;
    }
    .retreat {
        padding-bottom: initial;
    }
    /* Source tablet art direction fixes this panel width independently of the desktop percentage. */
    .retreat__panel {
        width: 345.797px;
    }
    .retreat__title {
        font-size: clamp(3.3rem, 2rem + 3vw, 4.5rem);
        line-height: 1.089;
    }
    .retreat__subtitle {
        font-size: var(--fs-eyebrow-large);
        line-height: 4.08;
    }
    .video-grid {
        grid-template-columns: 1fr 1fr;
    }
    .location-section {
        padding-top: 80px;
    }
    .gallery {
        gap: 30px;
    }
    .gallery--masonry {
        columns: 3;
        column-gap: 10px;
    }
    .gallery--masonry .gallery__item {
        margin-bottom: 10px;
    }
    .post-card__image img {
        aspect-ratio: 3/2;
    }
    .archive-intro {
        width: 70%;
    }
    .page-hero--article {
        padding: 180px 0 130px;
    }
    .article-lead {
        font-size: var(--fs-lead);
        line-height: 1.462;
    }
    .contact-layout {
        gap: 60px;
    }
    .form__row {
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .site-footer__main {
        padding: 130px 20px 150px;
    }
    .site-footer__phone {
        font-size: var(--fs-hero-lead);
        line-height: 1.333;
    }
    .site-footer__menu {
        gap: 30px;
        flex-wrap: initial;
    }
    .site-footer__bottom {
        gap: 30px;
        flex-direction: initial;
        text-align: initial;
    }
    .floating-call {
        right: 25px;
        bottom: 25px;
        width: 60px;
        height: 60px;
    }
    .lightbox {
        padding: 60px 70px;
    }
    .page-hero--archive {
        padding: 120px 0 140px;
    }
    .site-footer__channels,
    .site-footer__socials {
        font-size: var(--fs-legacy-tablet-label);
    }
    .page-hero--contact {
        padding: 140px 0 120px;
    }
    .container,
    .container--wide {
        width: initial;
    }
    .intro__grid {
        grid-template-columns: initial;
    }
    .gallery--three,
    .gallery--four {
        grid-template-columns: initial;
    }
    .page-section--gallery .container {
        width: initial;
    }
}
@media (min-width: 1024px) {
    body {
        font-size: var(--fs-body);
        line-height: 1.8;
    }
    .site-header {
        height: 100px;
        padding: initial;
    }
    .site-header__bar {
        padding: 15px 30px;
        width: initial;
        border-radius: initial;
        border-inline: 1px solid rgb(255 255 255/0.35);
    }
    .site-nav {
        position: initial;
        top: initial;
        left: initial;
        right: initial;
        background: initial;
        margin: initial;
        display: block;
    }
    .site-nav__list {
        display: flex;
        padding: 0;
    }
    .site-nav__link {
        padding: 5px 0;
        color: var(--color-ink);
        font-size: var(--fs-nav);
        font-family: initial;
    }
    .site-nav__link::after {
        display: block;
    }
    .site-header__cta {
        margin-left: 20px;
        padding: initial;
    }
    .site-header__toggle {
        display: none;
    }
    .page-hero {
        margin-top: -100px;
        padding: 180px 0 150px;
    }
    .page-hero__title {
        width: 50%;
        line-height: 1.267;
        font-size: initial;
    }
    .page-hero__lead {
        width: 54%;
    }
    .page-hero--home .page-hero__lead {
        width: 44%;
    }
    .page-section {
        padding: 150px 0;
    }
    .classes-section {
        padding: 200px 0;
        background-attachment: initial;
    }
    .class-grid {
        grid-template-columns: repeat(3, 1fr);
        padding-inline: initial;
    }
    .testimonials {
        padding-top: initial;
    }
    .testimonials__intro {
        grid-template-columns: 41.929% 1fr;
    }
    .testimonial-carousel__track {
        gap: 0;
    }
    .testimonial {
        flex-basis: 50%;
    }
    .testimonials .section-title {
        width: 70%;
    }
    .retreat__panel {
        width: 35%;
    }
    .location-section {
        padding-top: initial;
    }
    .trial-card {
        position: sticky;
    }
    .gallery--masonry {
        column-gap: 30px;
    }
    .gallery--masonry .gallery__item {
        margin-bottom: 30px;
    }
    .post-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .page-hero--article {
        padding: 220px 0 180px;
    }
    .prose--article {
        padding: 50px;
    }
    .site-footer__main::before {
        background-attachment: initial;
    }
    .site-nav.is-open {
        display: initial;
    }
    .page-section--compact,
    .page-section--gallery {
        padding: initial;
    }
    .copy-layout,
    .contact-layout {
        grid-template-columns: initial;
    }
    .page-hero--archive {
        padding: initial;
    }
    .site-footer__channels,
    .site-footer__socials {
        font-size: initial;
    }
    .site-footer__channels .icon,
    .site-footer__socials .icon {
        width: initial;
        height: initial;
    }
    .page-hero--contact {
        padding: initial;
    }
}
@media (min-width: 1280px) {
    .site-nav__list {
        gap: 30px;
    }
    .site-header__cta {
        margin-left: 90px;
    }
}
@keyframes marquee {
    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
    }
    .page-hero__video {
        display: none;
    }
    .marquee__track {
        transform: none;
    }
    .hero-slideshow__image {
        transform: none;
    }
    .reveal {
        opacity: 1;
        transform: none;
    }
}
@supports not (backdrop-filter: blur(18px)) {
    .glass {
        background: rgb(255 255 255/0.95);
        box-shadow: 0 8px 20px rgb(15 23 42/0.18);
    }
}
/* Floating layers are the only boxed surfaces: one elevation, no inner boxes. The cookie banner
   and settings follow the approved design reference: no visible banner title, text and compact
   pills at one size, reject and accept equally prominent, the close icon rejects. */
.consent {
    position: fixed;
    z-index: var(--z-consent);
    inset-inline: var(--space-3);
    inset-block-end: max(var(--space-3), env(safe-area-inset-bottom));
    max-inline-size: var(--dialog-width);
    max-block-size: calc(100svh - var(--space-6));
    margin-inline: auto;
    overflow-y: auto;
    border-radius: var(--radius-surface);
    background: var(--color-surface);
    box-shadow: var(--shadow-layer);
}
.consent__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-3) var(--space-2);
    padding: var(--space-4);
}
.consent__text {
    margin: 0;
    color: var(--color-subtle);
    font-size: var(--fs-caption);
    line-height: 1.75;
    text-wrap: pretty;
}
.consent__text a,
.dialog__intro a {
    color: var(--color-ink);
}
/* Row gaps keep the 44px hit areas of wrapped 28px pills from overlapping. */
.consent__actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4) var(--space-2);
}
.consent__choices {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4) var(--space-2);
}
.consent__status {
    margin: 0;
    color: var(--color-muted);
    font-size: var(--fs-small);
}
/* Small soft close icon placed as in the design reference; the 44px target overlaps the padding. */
.consent__close,
.dialog__close {
    flex: none;
    color: var(--color-subtle);
    font-size: var(--fs-caption);
}
.consent__close {
    align-self: start;
    margin-block: calc(var(--space-4) - var(--control-size) / 2) 0;
    margin-inline-end: calc(var(--space-1) * -1);
}
.dialog__close {
    margin-block: calc((1lh - var(--control-size)) / 2);
    margin-inline-end: calc(var(--space-3) * -1);
}
.consent__close .ph-light,
.dialog__close .ph-light {
    font-size: 1em;
} /* glyph matches the button text */
.consent .button,
.dialog .button {
    position: relative;
    padding: var(--space-1) var(--space-3);
    font-size: var(--fs-caption);
    font-weight: 400;
}
.consent .button {
    min-block-size: var(--control-size-compact);
}
.dialog .button {
    min-block-size: var(--control-size-compact-dialog);
    padding-inline: var(--space-4);
}
.consent .button--secondary,
.dialog .button--secondary {
    border-color: var(--color-line-strong);
}
.consent .button::after,
.dialog .button::after {
    content: '';
    position: absolute;
    inset: calc(50% - var(--control-size) / 2) 0;
}
.dialog {
    inline-size: min(calc(100% - var(--space-6)), var(--dialog-width));
    max-block-size: calc(100svh - var(--space-6));
    padding: 0;
    border: 0;
    border-radius: var(--radius-surface);
    background: var(--color-surface);
    color: var(--color-ink);
    box-shadow: var(--shadow-layer);
    overflow: auto;
}
.dialog::backdrop {
    background: var(--color-backdrop);
}
/* Header and footer stay in place; the text and categories between them scroll. */
.dialog__form {
    display: flex;
    flex-direction: column;
    max-block-size: inherit;
}
.dialog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-4) 0;
}
.dialog__title {
    margin: 0;
    font-size: var(--fs-body);
    font-weight: 400;
    letter-spacing: 0;
}
.dialog__body {
    flex: 1 1 auto;
    min-block-size: 0;
    overflow-y: auto;
    padding: var(--space-1) var(--space-4) var(--space-2);
}
.dialog__body > :last-child {
    margin-block-end: 0;
}
.dialog__intro {
    margin-block-end: var(--space-3);
    color: var(--color-subtle);
    font-size: var(--fs-caption);
    line-height: 1.75;
}
.dialog__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3) var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-block-start: 1px solid var(--color-line);
}
.dialog__submit {
    margin-inline-start: auto;
}
/* Each category is a native disclosure; an optional one has its switch beside the summary row,
   outside <summary>, so opening the description and changing the choice stay separate. */
.consent-categories {
    margin: 0;
    padding: 0;
    list-style: none;
}
.consent-category {
    position: relative;
}
.consent-category + .consent-category {
    border-block-start: 1px solid var(--color-line);
}
.consent-category__summary {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-block-size: calc(var(--control-size) + var(--space-1));
    border-radius: var(--radius-control);
    list-style: none;
    cursor: pointer;

    &::-webkit-details-marker {
        display: none;
    }
}
.consent-category--optional .consent-category__summary {
    margin-inline-end: calc(var(--switch-width) + var(--space-3));
}
.consent-category__chevron {
    color: var(--color-subtle);
    font-size: var(--fs-caption);
    transform: rotate(-90deg);
    transition: transform var(--dur-out) var(--ease);
}
.consent-category__details[open] .consent-category__chevron {
    transform: none;
}
.consent-category__name {
    min-inline-size: 0;
    font-size: var(--fs-small);
    overflow-wrap: anywhere;
}
.consent-category__state {
    margin-inline-start: auto;
    color: var(--color-subtle);
    font-size: var(--fs-caption);
    white-space: nowrap;
}
.consent-category__description {
    margin: 0 0 var(--space-4);
    padding-inline-start: calc(var(--fs-caption) + var(--space-3));
    color: var(--color-subtle);
    font-size: var(--fs-caption);
    line-height: 1.75;
}
/* Switch: a real checkbox with role="switch" covers the whole 44px control; the track is drawn. */
.switch {
    position: relative;
    display: inline-grid;
    place-items: center;
    min-block-size: var(--control-size);
}
.switch__input {
    position: absolute;
    inset: 0;
    z-index: var(--z-control-overlay);
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.switch__track {
    position: relative;
    display: block;
    inline-size: var(--switch-width);
    block-size: var(--switch-height);
    border-radius: var(--radius-pill);
    background: var(--color-switch-off);
    transition: background-color var(--dur-out) var(--ease);
}
.switch__track::before {
    content: '';
    position: absolute;
    inset-block-start: var(--switch-inset);
    inset-inline-start: var(--switch-inset);
    inline-size: calc(var(--switch-height) - 2 * var(--switch-inset));
    aspect-ratio: 1;
    border-radius: 50%; /* round knob */
    background: var(--color-switch-knob);
    box-shadow: var(--shadow-knob);
    transition:
        transform var(--dur-out) var(--ease),
        background-color var(--dur-out) var(--ease);
}
.switch__input:checked + .switch__track {
    background: var(--color-accent);
}
.switch__input:checked + .switch__track::before {
    background: var(--color-on-accent);
    transform: translateX(calc(var(--switch-width) - var(--switch-height)));
}
.switch__input:focus-visible + .switch__track {
    outline: 2px solid var(--color-focus);
    outline-offset: 3px;
}
/* After .switch so the absolute position wins at equal specificity. */
.consent-category__switch {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    block-size: calc(var(--control-size) + var(--space-1));
}

.gallery--tablet-pair {
    columns: 2;
}
.gallery--article {
    columns: 2;
}
@media (min-width: 1024px) {
    .gallery--tablet-pair,
    .gallery--article {
        columns: 3;
    }
}

/* Shared component breakpoint restoration: explicit values keep geometry independent of inherited browser defaults. */
@media (min-width: 768px) {
    .container {
        width: min(1140px, calc(100% - 60px));
    }
    .container--wide {
        width: min(1200px, calc(100% - 60px));
    }
    .container--article {
        max-width: 900px;
    }
    .page-section--gallery .container {
        width: min(1140px, calc(100% - 60px));
    }
    .intro__grid {
        grid-template-columns: 1fr 1fr;
    }
    .gallery--three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .gallery--four {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .page-hero--home .page-hero__title {
        font-size: var(--fs-tablet-title);
        line-height: 1.25;
    }
    .page-hero__caption {
        margin-left: 20px;
    }
    .page-hero__actions {
        flex-direction: row;
        align-items: stretch;
    }
}
@media (min-width: 1024px) {
    .site-header {
        padding: 20px 0 0;
    }
    .site-header__bar {
        width: min(1200px, calc(100% - 60px));
        border-radius: 32px;
    }
    .site-nav {
        margin-left: auto;
    }
    .site-nav__link {
        font-family: var(--font-body);
    }
    .site-header__cta {
        padding: 6.4px 32px;
    }
    .page-hero__title,
    .page-hero--home .page-hero__title {
        font-size: var(--fs-title);
        line-height: 1.267;
    }
    .page-hero__caption {
        margin-left: 25px;
    }
    .page-hero--archive,
    .page-hero--contact {
        padding: 180px 0 150px;
    }
    .page-section--compact {
        padding: 70px 0;
    }
    .page-section--gallery {
        padding: 100px 0 0;
    }
    .page-section--article {
        padding: 50px 0;
    }
    .copy-layout {
        grid-template-columns: minmax(0, 65.702fr) minmax(0, 34.298fr);
    }
    .contact-layout {
        grid-template-columns: 1fr 1fr;
    }
    .classes-section {
        background-attachment: fixed;
    }
    .testimonials {
        padding-top: 150px;
    }
    .location-section {
        padding-top: 70px;
    }
    .site-footer__main::before {
        background-attachment: fixed;
    }
    .site-footer__channels {
        font-size: var(--fs-body);
    }
    .site-footer__socials {
        font-size: var(--fs-caption);
    }
    .site-footer__channels .icon,
    .site-footer__socials .icon {
        width: 1em;
        height: 1em;
    }
}

img.post-card__image {
    width: 100%;
    aspect-ratio: 2/1;
    object-fit: cover;
    border-radius: 30px;
    margin-bottom: 20px;
}
.contact-links .icon {
    width: 20px;
    height: 20px;
    margin-right: 8px;
}
.contact-links svg {
    width: 20px;
    height: 20px;
    vertical-align: -0.15em;
}
@media (min-width: 768px) {
    img.post-card__image {
        aspect-ratio: 3/2;
    }
}
.page-hero__divider {
    height: 1px;
    width: 100%;
    border: 0;
    background: rgb(255 255 255/0.5);
    margin: 30px 0;
}
@media (min-width: 768px) {
    .page-section--compact,
    .page-section--gallery {
        padding: 50px 0;
    }
    .page-section--article {
        padding: 50px 0;
    }
}
@media (min-width: 1024px) {
    .page-section--compact {
        padding: 70px 0;
    }
    .page-section--gallery {
        padding: 100px 0 0;
    }
}

/* Source-parity corrections: exact Elementor kit sizes and measured 390/768/1440 geometry. */
:root {
    --fs-body: 1rem;
    --fs-small: 0.9rem;
    --fs-title: 3rem;
    --fs-section-large: 3.5rem;
    --fs-retreat-title: 4.5rem;
    --fs-hero-caption: 0.8rem;
}
body {
    font-size: var(--fs-small);
    line-height: 1.5rem;
}
h1 {
    letter-spacing: -0.02em;
}
h2 a,
h3 a {
    font-weight: 400;
}
.button--light {
    color: var(--color-ink);
}
.button--secondary {
    background: transparent;
    color: var(--color-ink);
    border: 1px solid var(--color-line-strong);
}
.site-header__bar {
    width: 100%;
    padding: 0 20px;
    margin: 0;
    border-radius: 0;
}
.site-header__logo {
    width: 140px;
}
.page-hero__title {
    font-size: var(--fs-mobile-title);
    line-height: 2.4rem;
}
.page-hero--home .page-hero__title {
    font-size: var(--fs-hero-mobile);
    line-height: 3.2rem;
}
.page-hero--home .page-hero__actions {
    align-items: stretch;
}
.page-hero--home .page-hero__actions .button {
    width: 100%;
    padding: 0.7rem 1.6rem;
    font-size: var(--fs-small);
    line-height: 1.4rem;
}
.page-hero__caption {
    font-size: var(--fs-hero-caption);
    line-height: 1.2rem;
    margin: 8px 0 0;
    text-align: center;
}
.section-label {
    width: 220px;
    gap: 10px;
    margin: 0;
    padding: 5px 0;
    font-size: var(--fs-caption);
    line-height: 1;
}
.section-label::before,
.section-label::after {
    content: '';
    flex: 1 1 0;
    min-width: 0;
    height: 1px;
    background: currentColor;
}
.section-label::after {
    width: auto;
}
.section-title--large {
    font-size: var(--fs-section-large);
}
.shape {
    inset-inline: 0;
    width: 100%;
    bottom: -1px;
    line-height: 0;
}
.shape svg {
    display: block;
    width: 100%;
    height: 100%;
}
.testimonial__body {
    font-size: var(--fs-small);
    line-height: 1.6rem;
}
.retreat__panel {
    color: var(--color-white);
}
.retreat__title,
.retreat__title a {
    color: inherit;
    font-weight: 400;
}
.retreat__title {
    font-size: var(--fs-retreat-mobile);
    line-height: 3.5rem;
}
.retreat__subtitle {
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: 1.2rem;
    margin-bottom: 20px;
}
.retreat__date {
    font-size: var(--fs-hero-mobile);
    line-height: 2.5rem;
}
.retreat__note {
    font-size: var(--fs-small);
    line-height: 1.5rem;
}
.site-footer__menu {
    flex-wrap: nowrap;
    font-size: var(--fs-small);
    line-height: 1.5rem;
    letter-spacing: 0.04em;
    gap: 20px;
}
.site-footer__bottom {
    flex-direction: column;
    text-align: center;
    align-items: center;
}
@media (min-width: 768px) {
    body {
        font-size: var(--fs-tablet-body);
        line-height: 1.6rem;
    }
    .site-header__bar {
        width: 90%;
        padding: 0 20px;
        margin-inline: auto;
    }
    /* The original nested flex layout constrains this logo to 121.5px at 768px. */
    .site-header__logo {
        width: 121.5px;
    }
    .page-hero {
        margin-top: -100px;
    }
    .page-hero__title,
    .page-hero--home .page-hero__title {
        font-size: var(--fs-tablet-title);
        line-height: 3rem;
    }
    .page-hero--home {
        padding-block: 0;
    }
    .page-hero--home .page-hero__actions {
        align-items: flex-start;
    }
    .page-hero--home .page-hero__actions .button {
        width: auto;
        font-size: var(--fs-tablet-body);
        line-height: 1.5rem;
    }
    .page-hero__caption {
        margin-left: 20px;
        text-align: left;
    }
    .section-label {
        padding-block: 15px;
        font-size: 0.9rem;
    }
    .retreat__title {
        font-size: var(--fs-retreat-title);
        line-height: 4.9rem;
    }
    .retreat__subtitle {
        font-size: var(--fs-eyebrow-large);
        line-height: 4.9rem;
        margin-bottom: 0;
    }
    .retreat__note {
        font-size: var(--fs-tablet-body);
        line-height: 1.6rem;
    }
    .site-footer__menu {
        font-size: var(--fs-nav);
        line-height: 1.6rem;
        gap: 30px;
    }
    .site-footer__bottom {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
        align-items: flex-start;
    }
}
@media (min-width: 1024px) {
    body {
        font-size: var(--fs-body);
        line-height: 1.8rem;
    }
    h1 {
        letter-spacing: -0.03em;
    }
    .site-header__bar {
        width: min(1200px, calc(100% - 60px));
        padding: 0 30px;
        border-radius: 32px;
    }
    .site-header__logo {
        width: 160px;
    }
    .site-nav__link {
        line-height: 1.2;
    }
    .page-hero__title,
    .page-hero--home .page-hero__title {
        font-size: var(--fs-title);
        line-height: 3.8rem;
    }
    .page-hero--home {
        padding-block: 0;
    }
    .page-hero--home .page-hero__actions .button {
        padding: 0.4rem 2rem;
        font-size: var(--fs-body);
        line-height: 1.8;
    }
    .page-hero__caption {
        margin-left: 25px;
    }
    .section-label {
        font-size: var(--fs-caption);
    }
    .retreat__note {
        font-size: var(--fs-body);
        line-height: 1.8rem;
    }
    .site-footer__menu {
        letter-spacing: 0.01em;
    }
}

/* Lightbox geometry comes from Elementor's conditional lightbox stylesheet and source UI. */
:root {
    --color-lightbox-ui: rgba(238, 238, 238, 0.9);
    --color-lightbox-fullscreen: #000;
    --fs-lightbox-control: 1.25rem;
    --fs-lightbox-arrow: 1.5625rem;
    --fs-lightbox-counter: 0.9375rem;
    --fs-lightbox-caption: 0.875rem;
}
.testimonial-carousel__track {
    touch-action: pan-y;
}
.testimonial-carousel__track.is-resetting {
    transition: none;
}
.lightbox {
    inset: 0;
    margin: 0;
    padding: 0;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    overflow: hidden;
    color: var(--color-lightbox-ui);
    background: rgba(0, 0, 0, 0.8);
}
.lightbox::backdrop {
    background: transparent;
}
.lightbox__toolbar {
    position: absolute;
    z-index: 4;
    inset: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px 8px 20px;
    min-height: 60px;
}
.lightbox__counter {
    font-size: var(--fs-lightbox-counter);
    line-height: 1;
}
.lightbox__actions {
    display: flex;
    gap: 0;
    align-items: center;
}
.lightbox__actions .icon-button {
    position: static;
    min-width: 40px;
    min-height: 44px;
    padding: 10px;
    font-size: var(--fs-lightbox-control);
    line-height: 1;
    color: inherit;
}
.lightbox__actions svg {
    width: 20px;
    height: 20px;
}
.lightbox__stage {
    position: absolute;
    inset: 70px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    touch-action: pan-y;
}
.lightbox__stage .lightbox__image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 30px;
    box-shadow:
        0 0 30px rgba(0, 0, 0, 0.3),
        0 0 8px -5px rgba(0, 0, 0, 0.3);
    user-select: none;
}
.lightbox__caption {
    position: absolute;
    inset: auto 20px 20px;
    margin: 0;
    font-size: var(--fs-lightbox-caption);
    line-height: 1.4;
    text-align: center;
}
.lightbox__previous,
.lightbox__next {
    z-index: 3;
    top: calc(50% - 22px);
    font-size: var(--fs-lightbox-arrow);
    line-height: 1;
}
.lightbox__previous {
    left: 10px;
}
.lightbox__next {
    right: 10px;
}
.lightbox__previous svg,
.lightbox__next svg {
    width: 25px;
    height: 25px;
}
.lightbox__share-menu {
    position: absolute;
    z-index: 5;
    right: 56px;
    top: 60px;
    min-width: 200px;
    padding: 14px 20px;
    border-radius: 3px;
    background: white;
    color: #0c0d0e;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
.lightbox__share-menu::before {
    content: '';
    position: absolute;
    right: 10px;
    top: -16px;
    border: 8px solid transparent;
    border-bottom-color: white;
}
.lightbox__share-link {
    display: block;
    color: #3f444b;
    font-size: 0.75rem;
    line-height: 2.5;
    text-align: left;
}
.lightbox__share-link:hover {
    color: #000;
}
.lightbox__share-link svg {
    width: 1.25em;
    height: 1.25em;
    margin-right: 0.75em;
}
.lightbox.is-zoomed .lightbox__stage {
    overflow: auto;
    display: block;
    cursor: grab;
    touch-action: none;
}
.lightbox.is-zoomed .lightbox__image {
    width: var(--lightbox-image-width);
    height: var(--lightbox-image-height);
    max-width: none;
    max-height: none;
    object-fit: contain;
}
.lightbox.is-zoomed .lightbox__stage:active {
    cursor: grabbing;
}
.lightbox.is-zoomed .lightbox__toolbar,
.lightbox.is-zoomed .lightbox__caption {
    background: rgba(0, 0, 0, 0.5);
}
.lightbox.is-zoomed .lightbox__previous,
.lightbox.is-zoomed .lightbox__next {
    opacity: 0;
    pointer-events: none;
}
/* Production fullscreen has an opaque backdrop, hiding the page underneath. */
.lightbox.is-fullscreen {
    width: 100vw;
    height: 100dvh;
    background: var(--color-lightbox-fullscreen);
}
@media (min-width: 768px) {
    .lightbox__stage {
        inset: 70px;
    }
}

/* Source inner-page geometry: the final lead retains its 50px widget margin. */
.page-hero__lead:last-child {
    margin-bottom: 50px;
}
.page-hero__title {
    width: 50%;
}
.page-hero--home .page-hero__title {
    width: 100%;
}
.page-hero--portrait > .container {
    width: calc(100% - 60px);
}
.copy-layout__main {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.copy-layout__main > .prose__title {
    margin-top: 0;
}
.prose h2 {
    line-height: 1;
}
.gallery--pair {
    grid-template-columns: 1fr;
    gap: 30px;
}
.location-card__title {
    line-height: 1;
}
.location-card__list {
    font-size: inherit;
    line-height: inherit;
}
.trial-card {
    text-align: left;
}
.trial-card__title {
    line-height: 1;
}
.site-footer__main {
    padding-inline: 0;
}
.site-footer__menu {
    gap: 16px;
}
.site-footer__menu li {
    flex-shrink: 0;
    white-space: nowrap;
}
@media (min-width: 768px) {
    .page-hero__title {
        width: 50%;
    }
    .page-hero__lead {
        width: 54%;
        line-height: 2rem;
    }
    .page-hero--home .page-hero__title {
        width: 70%;
    }
    .page-hero--portrait > .container {
        width: calc(100% - 60px);
    }
    .gallery--pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .illustration__quote {
        max-width: 50%;
    }
}
@media (min-width: 1024px) {
    .page-hero--home .page-hero__title {
        width: 50%;
    }
    .page-hero--portrait > .container {
        width: min(1140px, calc(100% - 60px));
    }
    .copy-layout {
        grid-template-columns: 65.702% minmax(0, 1fr);
        gap: 50px;
    }
    /* Match the original menu's independently offset navigation group. */
    .site-nav {
        margin-right: 28.4px;
    }
    .site-footer__menu {
        gap: 16px;
    }
}
/* Each source divider has its own measured separator width. */
.section-label {
    white-space: nowrap;
}
.intro .section-label {
    width: 160px;
}
.classes-section .section-label {
    width: 180px;
}
.testimonials .section-label {
    width: 270px;
    color: var(--color-primary-ink);
}
html.has-lightbox {
    overflow: hidden;
}
.lightbox.is-sharing::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 3;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: none;
}

/* Source reset typography is part of the document's measured vertical rhythm. */
.prose p {
    margin-block: 0 0.9rem;
}
.prose ul,
.prose ol {
    margin-block: 0;
    padding-left: 40px;
}
.prose--article {
    padding: 0;
}
.prose--article h2,
.prose--article h3 {
    margin-block: 0.5rem 1rem;
    line-height: 1.2;
}
.post-card__title {
    font-size: var(--fs-trial-title);
    line-height: 2rem;
    margin-bottom: 24px;
}
.post-card__title a {
    color: var(--color-accent);
    line-height: inherit;
}
.site-footer__menu {
    line-height: 1.5rem;
}
.site-footer__menu a,
.site-footer__menu span {
    display: inline-block;
    line-height: inherit;
}
/* The contact channels are inline source pills, followed by ordinary body copy. */
.contact-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0 16px;
    margin: 0 0 30px;
    font-size: var(--fs-caption);
    line-height: 1.5rem;
}
.contact-links a {
    display: block;
    width: 100%;
    padding: 6px 10px;
    margin-bottom: 14px;
    border: 1px solid white;
    border-radius: 16px;
    background: white;
    color: #000;
    text-align: center;
}
.contact-links svg {
    width: 22px;
    height: 22px;
}
.page-hero--contact .page-hero__lead:last-child {
    width: 100%;
    margin-bottom: 0.9rem;
    font-size: var(--fs-small);
    line-height: 1.5rem;
}
.page-section:has(> .contact-layout) {
    padding: 50px 0 0;
}
.page-hero > .container {
    width: calc(100% - 60px);
}
.page-hero--home > .container,
.page-hero--archive > .container,
.page-hero--article > .container {
    width: calc(100% - 30px);
}
.page-hero--contact > .container {
    width: calc(100% - 20px);
    margin-left: 15px;
}
.page-hero--archive .page-hero__lead {
    display: flow-root;
    width: max-content;
    max-width: 100%;
    margin: 0;
    font-size: var(--fs-body);
    line-height: 1.5rem;
}
.page-hero--archive .page-hero__lead p {
    margin: 0 0 0.9rem;
}
.page-hero__divider {
    width: 200px;
    margin: 10px 0;
}
.page-hero--article .page-hero__divider {
    margin-inline: auto;
}
.breadcrumbs {
    padding: 0;
    margin: 0 0 0.9rem;
    border: 0;
    font-size: var(--fs-caption);
    line-height: 1.2rem;
}
.page-section--article .breadcrumbs {
    text-align: center;
}
.post-navigation {
    padding: 10px 0;
    border-block: 1px solid #e6e6e6;
}
.post-navigation__link,
.post-navigation__title {
    color: var(--color-ink);
    font-size: var(--fs-caption);
    line-height: 1.2rem;
    font-family: var(--font-body);
}
.page-hero--centered {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}
.page-hero--centered > .container {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.page-hero--centered .page-hero__title {
    width: 50%;
    margin-bottom: 30px;
}
.page-hero--centered .page-hero__lead {
    width: 100%;
    line-height: 1.7;
}
.page-hero--centered .page-hero__actions {
    justify-content: center;
}
/* Preserve the source button's visible geometry; its transparent hit area stays 44px. */
.thank-you .button {
    position: relative;
    min-height: 0;
    border: 0;
    font-size: inherit;
    line-height: 1.4rem;
    padding: 10px 25px;
}
.thank-you .button::after {
    content: '';
    position: absolute;
    inset: calc(50% - var(--control-size) / 2) 0;
}
/* The JS share wrapper is the full-screen dismissible overlay; its nav is the panel. */
.lightbox__share-menu {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.5);
    box-shadow: none;
}
.lightbox__share-menu::before,
.lightbox.is-sharing::after {
    content: none;
}
.lightbox__share-links {
    position: absolute;
    right: 56px;
    top: 60px;
    min-width: 200px;
    padding: 14px 20px;
    border-radius: 3px;
    background: #fff;
    color: #0c0d0e;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}
.lightbox__share-links::before {
    content: '';
    position: absolute;
    right: 10px;
    top: -16px;
    border: 8px solid transparent;
    border-bottom-color: white;
}
.testimonial-carousel__track.is-dragging {
    transition: none;
    cursor: grabbing;
    user-select: none;
}
@media (min-width: 768px) {
    .page-hero > .container,
    .page-hero--home > .container,
    .page-hero--archive > .container,
    .page-hero--article > .container {
        width: calc(100% - 60px);
    }
    .page-hero--contact > .container {
        width: calc(100% - 100px);
        margin-inline: auto;
    }
    .page-hero--contact .page-hero__lead {
        width: 100%;
    }
    .page-hero--contact .page-hero__lead:last-child {
        font-size: var(--fs-tablet-body);
        line-height: 1.6rem;
    }
    .contact-links {
        font-size: var(--fs-small);
        line-height: 1.6rem;
    }
    .contact-links a {
        padding: 10px 20px;
        border-radius: 20px;
    }
    .page-hero--archive .page-hero__lead {
        font-size: var(--fs-lead);
        line-height: 2rem;
    }
    .page-hero--centered {
        padding: 180px 0 150px;
    }
    .page-hero--centered .page-hero__lead {
        width: 54%;
        line-height: 2rem;
    }
    /* The source tablet button uses compact padding, independent of the desktop CTA. */
    .thank-you .button {
        line-height: 1.5rem;
        padding: 0.7px 1.6px;
    }
    .post-card__title {
        font-size: var(--fs-section-title);
        line-height: 2.6rem;
    }
}
@media (min-width: 1024px) {
    .page-hero > .container,
    .page-hero--home > .container,
    .page-hero--archive > .container,
    .page-hero--contact > .container {
        width: min(1140px, calc(100% - 60px));
        margin-inline: auto;
    }
    .page-hero--article > .container {
        width: min(900px, calc(100% - 60px));
    }
    .page-hero--contact .page-hero__lead {
        width: 54%;
    }
    .page-hero--contact .page-hero__lead:last-child {
        width: 40%;
        font-size: var(--fs-body);
        line-height: 1.8rem;
    }
    .page-section:has(> .contact-layout) {
        padding: 70px 0 0;
    }
    .contact-layout {
        grid-template-columns: minmax(0, 583.8fr) minmax(0, 496.2fr);
        gap: 60px;
    }
    .contact-links {
        font-size: var(--fs-small);
        line-height: 1.8;
    }
    .contact-links a {
        display: inline-block;
        width: auto;
        padding: 8px 18px;
        margin-bottom: 12px;
        border-radius: 30px;
    }
}
/* Native FAQ mirrors the source nested-accordion's 10px padding and leading icon. */
.accordion {
    margin: 0;
}
.accordion__item {
    border: 0;
}
.accordion__title {
    justify-content: flex-start;
    gap: 10px;
    padding: 10px;
    border-bottom: 1px solid #e6e6e6;
    color: #1f2124;
    font-size: var(--fs-body);
    font-weight: 400;
}
.accordion__title svg {
    order: -1;
    width: 13.125px;
    height: 15px;
    color: var(--color-secondary);
}
.accordion__item[open] .accordion__title svg {
    transform: none;
    color: var(--color-primary);
}
.accordion__body {
    padding: 10px 0 20px 35px;
}
.page-section:has(> .copy-layout) {
    padding-bottom: 0;
}
.page-hero--article {
    padding: 220px 0 180px;
}
.page-hero--article > .container {
    width: 100%;
}
.page-hero--article .page-hero__title {
    width: 90%;
    margin-inline: auto;
}
.breadcrumbs__list {
    display: contents;
}
.breadcrumbs__list li {
    display: inline;
}
.page-hero--centered > .container {
    width: calc(100% - 40px);
}
.site-footer__menu {
    line-height: 1.5rem;
}
@media (min-width: 768px) {
    .page-hero--article > .container {
        width: min(900px, 100%);
    }
    .page-hero--article .page-hero__title {
        width: 100%;
    }
    .page-hero--centered > .container {
        width: min(1140px, 100%);
    }
    .site-footer__menu {
        line-height: 1.6rem;
    }
}
@media (min-width: 1024px) {
    .thank-you .button {
        line-height: 1.8rem;
        padding: 6.4px 32px;
    }
}
/* Header CTA keeps its source visible height while retaining a 44px pointer target. */
.site-header__cta {
    position: relative;
    min-height: 30px;
    height: 30px;
    line-height: 1.8;
}
.site-header__cta::after {
    content: '';
    position: absolute;
    inset: calc(50% - 22px) 0;
}
@media (min-width: 1024px) {
    .site-header__cta {
        min-height: 44px;
        height: 44px;
    }
}
/* The native video shares the poster's stable cover box. */
.page-hero__video {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: auto;
    bottom: auto;
    transform: none;
    max-width: none;
    opacity: 0;
}
.page-hero__video.is-ready {
    opacity: 1;
}

/* Source post-excerpt widget and Rajac's three separately spaced text widgets. */
.article-lead {
    margin-bottom: 20px;
}
.prose--retreat {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.prose--retreat .prose__section {
    display: flow-root;
    margin-bottom: 30px;
}
.prose--retreat .prose__section--flush {
    margin-bottom: 0;
}
.prose--guide {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.prose--guide > .prose__section {
    display: flow-root;
}
.prose--guide > .gallery,
.prose--guide > .section-title {
    margin: 0;
}
.form__note--protection {
    font-size: 0.75rem;
    line-height: 1.2rem;
    text-align: end;
}
.form__row {
    grid-template-columns: 1fr;
}
.form__row .button {
    width: 100%;
}
.table-wrap {
    max-width: 100%;
    overflow-x: auto;
}
@media (min-width: 768px) {
    .form__row {
        justify-items: end;
    }
    .form__row .button {
        width: auto;
    }
}
@media (min-width: 1024px) {
    .site-footer__menu {
        line-height: 1.8rem;
    }
}

/* Source footer containers retain Elementor's default 20px flex gap at every width. */
.marquee__track {
    min-height: 90px;
}
.site-footer__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding-block: 130px 150px;
}
.site-footer__logo {
    margin-block: 0 30px;
}
.site-footer__phone {
    margin: 0;
    font-size: var(--fs-lead);
    line-height: 2rem;
}
.site-footer__channels .icon {
    width: 30px;
    height: 24px;
}
.site-footer__socials .icon {
    width: 25px;
    height: 20px;
}
.site-footer__channels a,
.site-footer__socials a,
.site-footer__socials li > span {
    display: flex;
    align-items: center;
    gap: 5px;
    letter-spacing: 0.04em;
}
.site-footer__socials {
    margin-bottom: 0;
    font-size: var(--fs-small);
    line-height: 1.5rem;
}
@media (min-width: 768px) {
    .site-footer__phone {
        font-size: var(--fs-hero-lead);
    }
    .site-footer__socials {
        font-size: var(--fs-legacy-tablet-label);
        line-height: 1.6rem;
    }
}
@media (min-width: 1024px) {
    .site-footer__socials {
        font-size: var(--fs-caption);
        line-height: 1.8rem;
    }
    .site-footer__channels a,
    .site-footer__socials a,
    .site-footer__socials li > span {
        letter-spacing: 0.01em;
    }
}

/* The source article gallery uses two tablet columns; the gallery page uses three. */
@media (min-width: 768px) {
    .gallery--two-tablet {
        columns: 2;
    }
}
@media (min-width: 1024px) {
    .gallery--two-tablet {
        columns: 3;
    }
}

/* Source masonry keeps document order and fills the shortest column. */
.gallery--masonry {
    --masonry-columns: 2;
}
.gallery--masonry.is-masonry-ready {
    position: relative;
    columns: auto;
    height: var(--masonry-height);
}
.gallery--masonry.is-masonry-ready .gallery__item {
    position: absolute;
    inset: 0 auto auto 0;
    width: var(--masonry-width);
    transform: translate(var(--masonry-x), var(--masonry-y));
    margin: 0;
}
@media (min-width: 768px) {
    .gallery--masonry {
        --masonry-columns: 3;
    }
    .gallery--two-tablet {
        --masonry-columns: 2;
    }
}
@media (min-width: 1024px) {
    .gallery--masonry {
        --masonry-columns: 3;
    }
}

/* Source home action widget has a 5px bottom margin; its caption paragraph retains the Hello reset margin. */
.page-hero--home .page-hero__actions {
    margin-bottom: 5px;
}
.page-hero--home .page-hero__caption {
    margin-top: 13px;
}
.page-hero__caption {
    margin-bottom: 0.9rem;
}

@media (min-width: 768px) {
    .page-hero--home .page-hero__actions {
        margin-bottom: 0;
    }
    .page-hero--home .page-hero__caption {
        margin-top: 8px;
    }
}

/* The source class sidebar uses a 300px map below the desktop breakpoint; the about sidebar stays 200px. */
.copy-layout__aside--extended-map .map-embed--small .map-embed__frame {
    height: 300px;
}
@media (min-width: 1024px) {
    .copy-layout__aside--extended-map .map-embed--small .map-embed__frame {
        height: 200px;
    }
}

/* Source sidebar containers add a 20px flex gap between their widgets. */
.location-card,
.trial-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.location-card__list {
    margin-bottom: 0;
}
.location-card__list li {
    margin-bottom: 8px;
}
.location-card__list li:last-child {
    margin-bottom: 0;
}
.location-card__list a {
    display: flex;
    align-items: center;
    gap: 5px;
    color: var(--color-accent);
    line-height: 1.8;
}
.location-card__list .icon {
    flex: none;
    width: 22.5px;
    height: 18px;
    color: var(--color-secondary);
}
.location-card__note {
    display: flow-root;
    font-size: var(--fs-small);
    line-height: inherit;
    margin-bottom: 10px;
}
.location-card__note p {
    margin-bottom: 0.9rem;
}
.location-card .map-embed {
    margin-bottom: 10px;
}
.trial-card__copy {
    margin: 0;
    font-weight: 400;
}
.trial-card .button {
    font-size: inherit;
    font-weight: 400;
}
/* Source gallery's negative final-row gap prevents an extra 30px after each pair. */
.copy-layout__main > .gallery--pair {
    margin-top: 0;
}
.page-section--compact {
    padding-top: 70px;
}
.copy-layout {
    row-gap: 20px;
}
/* Archive widgets retain the source's separate 20px flex gaps and paragraph margins. */
.page-hero--archive .breadcrumbs a {
    line-height: 1.8;
}
.page-section--archive {
    padding-top: 50px;
}
.page-section--archive > .container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.page-section--archive .section-title {
    margin-bottom: 0;
}
.archive-byline {
    line-height: 1;
    margin: 0 0 20px;
}
.archive-intro {
    display: flow-root;
    margin-bottom: 20px;
}
.archive-intro p {
    margin-bottom: 0.9rem;
}
.classes-section > .container--wide {
    width: 100%;
}
/* Gallery widgets retain the source paragraph margin and 20px container gap. */
.page-section--gallery .section-title {
    margin-bottom: 20px;
}
.page-section--gallery .prose {
    display: flow-root;
}
.page-section--gallery .gallery {
    margin-top: 20px;
}
.page-section--gallery .gallery:has(+ .section-title) {
    margin-bottom: 90px;
}
.page-section--gallery .video-grid {
    margin-top: 20px;
}

/* Article template uses centered title widgets and a 21px divider widget. */
.page-hero--article > .container {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.page-hero--article .page-hero__title {
    text-align: center;
}
.page-hero--article .page-hero__divider {
    display: none;
    margin-block: 10px;
}
.page-section--article > .container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.page-section--article .breadcrumbs {
    margin: 0 0 0.9rem;
}
.page-section--article .breadcrumbs a {
    line-height: 1.8;
}
.prose--article h2,
.prose--article h3 {
    color: var(--color-ink);
}
.prose--article .section-title {
    color: var(--color-secondary);
    font-size: var(--fs-section);
    font-weight: 600;
    line-height: 1;
    padding-bottom: 0;
}
.prose--retreat h2 {
    font-size: var(--fs-section);
    font-weight: 600;
    padding-bottom: 0;
}
.prose--retreat h3 {
    font-size: var(--fs-card);
}
.share {
    gap: 10px;
    margin: 0;
}
.share__link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    height: 25px;
    padding: 0 10px;
    color: var(--color-ink);
    border-color: var(--color-ink);
    border-radius: 5px;
}
.share__link::after {
    content: '';
    position: absolute;
    inset: calc(50% - 22px) 0;
}
.post-navigation {
    position: relative;
    gap: 0;
    border: 0;
}
.post-navigation::after {
    content: '';
    position: absolute;
    inset-block: 10px;
    left: 50%;
    width: 1px;
    background: #e6e6e6;
}
.post-navigation__link {
    position: relative;
    width: calc(50% - 0.5px);
    max-width: none;
    min-width: 0;
    padding-inline: 45px 15px;
}
.post-navigation__link {
    font-size: inherit;
    line-height: 1.8;
}
.post-navigation__label,
.post-navigation__title {
    line-height: inherit;
}
.post-navigation__link--next {
    padding-inline: 15px 45px;
}
.post-navigation__label {
    color: var(--color-accent);
    font-size: 0.8em;
    text-transform: uppercase;
}
.post-navigation__title {
    display: block;
    overflow: hidden;
    font-size: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.post-navigation__label .icon {
    position: absolute;
    left: 0;
    top: calc(50% - 15px);
    width: 30px;
    height: 30px;
    color: var(--color-secondary);
}
.post-navigation__link--next .icon {
    right: 0;
    left: auto;
}
@media (min-width: 768px) {
    .testimonials .section-title {
        width: 70%;
    }
    .site-header {
        height: 85px;
    }
    .site-header__bar {
        min-height: 85px;
    }
    .page-hero--article .page-hero__divider {
        display: block;
    }
    .share__link {
        height: 30px;
    }
    img.post-card__image,
    .post-card__image img {
        aspect-ratio: 100 / 66;
    }
}
@media (min-width: 1024px) {
    .page-section--archive {
        padding-top: 70px;
    }
    .classes-section > .container--wide {
        width: min(1200px, calc(100% - 60px));
    }
    .site-header {
        height: 100px;
    }
    .site-header__bar {
        min-height: 80px;
    }
    .share {
        gap: 20px;
    }
}

:root {
    --motion-control-duration: 300ms;
    --motion-overlay-duration: 400ms;
    --motion-share-panel-duration: 250ms;
    --motion-share-link-duration: 500ms;
    --motion-share-delay: 100ms;
}
/* Source: Elementor lightbox/Swiper durations; no unloaded zoomIn entrance. */
.lightbox__toolbar {
    min-height: 60px;
    padding: 15px 52px 15px 20px;
    font-size: var(--fs-lightbox-control);
}
.lightbox__counter {
    line-height: 1.5;
}
.lightbox__actions .icon-button {
    min-width: 0;
    min-height: 0;
    box-sizing: content-box;
    width: 20px;
    height: 20px;
    padding: 5px;
    margin: 0 7px;
    border-radius: 0;
}
.lightbox__actions .lightbox__close {
    position: absolute;
    right: 15px;
    top: 13px;
    margin: 0;
}
/* Keep the source's 30px visual control and the accepted 44px minimum hit target. */
.lightbox__actions .icon-button::after {
    content: '';
    position: absolute;
    inset: -7px;
}
.lightbox__actions .icon-button:not(.lightbox__close) {
    position: relative;
}
.lightbox__previous,
.lightbox__next {
    top: 0;
    bottom: 0;
    width: 20%;
    height: 100%;
    padding: 0;
    display: flex;
    align-items: center;
}
.lightbox__previous {
    left: 0;
    justify-content: flex-start;
}
.lightbox__next {
    right: 0;
    justify-content: flex-end;
}
.lightbox__previous svg,
.lightbox__next svg {
    box-sizing: content-box;
    padding: 10px;
    background: rgba(0, 0, 0, 0.5);
}
@media (min-width: 768px) {
    .lightbox__previous,
    .lightbox__next {
        width: 15%;
        justify-content: center;
    }
    .lightbox__previous svg,
    .lightbox__next svg {
        padding: 0;
        background: transparent;
    }
}
.lightbox__slide,
.lightbox__pan {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lightbox__slide {
    pointer-events: none;
}
.lightbox__pan {
    pointer-events: auto;
    transition: transform var(--motion-control-duration) ease;
}
.lightbox.is-dragging .lightbox__pan {
    transition: none;
}
.lightbox__stage .lightbox__image {
    transition: transform var(--motion-control-duration) ease;
    transform: scale(1);
}
.lightbox.is-zoomed .lightbox__stage {
    display: flex;
    overflow: hidden;
    cursor: grab;
    touch-action: none;
}
.lightbox.is-zoomed .lightbox__image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    transform: scale(3);
}
.lightbox.is-dragging .lightbox__stage {
    cursor: grabbing;
}
.lightbox__counter,
.lightbox__actions > :not(.lightbox__close),
.lightbox__caption,
.lightbox__previous,
.lightbox__next {
    transition: opacity var(--motion-control-duration) ease;
}
.lightbox.is-ui-hidden .lightbox__counter,
.lightbox.is-ui-hidden .lightbox__actions > :not(.lightbox__close),
.lightbox.is-ui-hidden .lightbox__caption,
.lightbox.is-ui-hidden .lightbox__previous,
.lightbox.is-ui-hidden .lightbox__next {
    opacity: 0;
    pointer-events: none;
}
.lightbox__share-menu {
    background: rgba(0, 0, 0, 0);
    transition: background-color var(--motion-overlay-duration) ease;
}
.lightbox__share-links {
    transform: scale(0);
    opacity: 0;
    transform-origin: 90% 10%;
    transition:
        transform var(--motion-share-panel-duration) ease
            var(--motion-share-delay),
        opacity var(--motion-share-panel-duration) ease
            var(--motion-share-delay);
}
.lightbox__share-link {
    opacity: 0;
    transition: opacity var(--motion-share-link-duration) ease
        var(--motion-share-delay);
}
.lightbox.is-sharing .lightbox__share-menu {
    background: rgba(0, 0, 0, 0.5);
}
.lightbox.is-sharing .lightbox__share-links {
    transform: scale(1);
    opacity: 1;
}
.lightbox.is-sharing .lightbox__share-link {
    opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
    .lightbox__pan,
    .lightbox__stage .lightbox__image,
    .lightbox__counter,
    .lightbox__actions > :not(.lightbox__close),
    .lightbox__caption,
    .lightbox__previous,
    .lightbox__next,
    .lightbox__share-menu,
    .lightbox__share-links,
    .lightbox__share-link {
        transition: none;
    }
}

.hero-slideshow__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
/* Source timings are copied from Elementor's loaded effects. */
:root {
    --dur-source-menu: 0.3s;
    --dur-source-crossfade: 1.5s;
    --dur-source-zoom: 20s;
    --dur-source-zoom-reset: 10s;
}
/* Source values: five parent-range scroll effects; JS is the sole transform owner. */
[data-motion-x],
[data-motion-y] {
    transform: translate3d(var(--motion-x, 0px), var(--motion-y, 0px), 0);
    transition: none;
}

/* Source fadeInUp: full card height, 1.25 seconds, default ease, existing 0/.5/1s delays. */
.reveal.is-pending {
    visibility: hidden;
}
.reveal.is-visible {
    animation-name: reveal;
    animation-duration: 1.25s;
    animation-fill-mode: both;
}
@keyframes reveal {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

/* Source background zoom: 1.3 -> 1 over 20s; hidden slides reset immediately after their fade. */
.hero-slideshow__image {
    opacity: 0;
    transform: scale(1.3);
    transition: opacity var(--dur-source-crossfade);
}
.hero-slideshow__image.is-active {
    transform: scale(1);
    transition:
        opacity var(--dur-source-crossfade),
        transform var(--dur-source-zoom) linear;
}
.hero-slideshow__image.is-active {
    opacity: 1;
}
.hero-slideshow__image.is-outgoing {
    opacity: 0;
    transform: scale(1.3);
    transition:
        opacity var(--dur-source-crossfade),
        transform var(--dur-source-zoom-reset) linear;
}
.hero-slideshow.is-initializing .hero-slideshow__image {
    transform: scale(1.3);
    transition: none;
}

/* Source dropdown scales from the top over 300ms. Keep closed links out of focus order. */
.site-nav,
.site-nav.is-open {
    display: block;
    max-height: 0;
    overflow: hidden;
    transform: scaleY(0);
    transform-origin: top;
    visibility: hidden;
    pointer-events: none;
    transition:
        max-height var(--dur-source-menu),
        transform var(--dur-source-menu),
        visibility 0s var(--dur-source-menu);
}
.site-nav.is-open {
    max-height: var(--menu-height, 0px);
    transform: scaleY(1);
    visibility: visible;
    pointer-events: auto;
    transition:
        max-height var(--dur-source-menu),
        transform var(--dur-source-menu),
        visibility 0s;
}
.image-carousel {
    touch-action: pan-y;
}
.image-carousel.is-dragging .image-carousel__slide {
    transition: none;
}
.image-carousel.is-dragging img {
    user-select: none;
    -webkit-user-drag: none;
}
@media (min-width: 1024px) {
    .site-nav,
    .site-nav.is-open {
        display: block;
        max-height: none;
        overflow: visible;
        transform: none;
        visibility: visible;
        pointer-events: auto;
        transition: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    [data-motion-x],
    [data-motion-y] {
        transform: none;
    }
    .reveal.is-pending {
        visibility: visible;
    }
    .hero-slideshow__image {
        transform: none;
    }
}
