/* Sekcje strony — odwzorowanie Betheme na natywnych blokach. */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img,
video {
    display: block;
    max-inline-size: 100%;
    block-size: auto;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

/* === Nagłówki — Astra nadpisuje wagę, interlinię i kolor; presety ap-h-* wymuszają wartości z produkcji === */
h1.has-ap-h-1-font-size { font-weight: 700; line-height: 70px; }
h2.has-ap-h-2-font-size { font-weight: 700; line-height: 40px; }
h3.has-ap-h-3-font-size { font-weight: 700; line-height: 35px; }
h4.has-ap-h-4-font-size { font-weight: 600; line-height: 25px; }
h5.has-ap-h-5-font-size { font-weight: 600; line-height: 24px; }

h1.has-ap-h-1-font-size:not([class*="-color"]),
h2.has-ap-h-2-font-size:not([class*="-color"]),
h3.has-ap-h-3-font-size:not([class*="-color"]),
h4.has-ap-h-4-font-size:not([class*="-color"]),
h5.has-ap-h-5-font-size:not([class*="-color"]) {
    color: var(--wp--preset--color--ap-heading);
}

/* === Reset domyślnego paddingu Astry dla bloków najwyższego poziomu strony ===
   Astra stosuje padding 3em/2em/1.5em na .entry-content > .wp-block-group —
   migrowane sekcje mają własny rytm zmierzony z produkcji. */
.entry-content > .wp-block-group.alignfull {
    padding-block: 0;
}

/* Astra dokłada padding-top ~30px na <article> — migrowane strony zaczynają się od pełnej sekcji. */
.ast-single-post.ast-page-builder-template .site-main > article {
    padding-block-start: 0;
}

.entry-content > .wp-block-group.ap-intro {
    padding-block: var(--wp--preset--spacing--100);
    min-block-size: 760px;
}

.entry-content > .wp-block-group.ap-band {
    padding-block: var(--wp--preset--spacing--40) 200px;
}

.entry-content > .wp-block-group.ap-studio,
.entry-content > .wp-block-group.ap-band--pilates {
    padding-block: var(--wp--preset--spacing--75);
}

.entry-content > .wp-block-group.ap-cta {
    padding-block: var(--wp--preset--spacing--125) 30px;
}

.entry-content > .wp-block-group.ap-pricing,
.entry-content > .wp-block-group.ap-faq,
.entry-content > .wp-block-group.ap-legal {
    padding-block-end: var(--wp--preset--spacing--100);
}

.entry-content > .wp-block-group.ap-schedule-page {
    padding-block: 40px var(--wp--preset--spacing--100);
}

.entry-content > .wp-block-group.ap-pose {
    padding-block: 40px 50px;
}

.entry-content > .wp-block-group.ap-hero-kontakt {
    padding-block: 200px 100px;
}

.entry-content > .wp-block-group.ap-hero-studio {
    padding-block: 150px;
    min-block-size: 425px;
}

.entry-content > .wp-block-group.ap-hero-cennik {
    padding-block: 200px var(--wp--preset--spacing--100);
}

.entry-content > .wp-block-group.ap-hero-pilates {
    padding-block: 200px 75px;
}

/* === Header (pasek z logo, menu i wyszukiwarką; fixed, przezroczysty nad hero) === */
.ap-header {
    position: fixed;
    inset-inline: 0;
    inset-block-start: 0;
    z-index: 100;
}

body.admin-bar .ap-header {
    inset-block-start: 32px;
}

.ap-topbar {
    transition: background-color 0.25s ease, box-shadow 0.25s ease;
}

.ap-header--scrolled .ap-topbar {
    background-color: var(--wp--preset--color--ap-surface);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.ap-topbar__inner {
    max-inline-size: 1020px;
    margin-inline: auto;
    padding-inline: 20px;
    min-block-size: 90px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.ap-topbar__logo {
    flex-shrink: 0;
}

.ap-topbar__logo img {
    block-size: 60px;
    inline-size: auto;
}

.ap-nav {
    margin-inline-start: auto;
}

.ap-nav__list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 28px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ap-nav__list a {
    display: block;
    padding-block: 6px;
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--preset--font-size--ap-menu);
    color: var(--wp--preset--color--ap-footer-text);
    text-decoration: none;
}

.ap-nav__list a:hover,
.ap-nav__list .current-menu-item > a {
    color: var(--wp--preset--color--ap-accent);
}

.ap-nav-toggle {
    display: none;
    margin-inline-start: auto;
    padding: 10px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.ap-nav-toggle__bar {
    display: block;
    inline-size: 24px;
    block-size: 2px;
    margin-block: 5px;
    background-color: var(--wp--preset--color--ap-footer-text);
}

.ap-search {
    position: relative;
    flex-shrink: 0;
}

.ap-search__toggle {
    display: grid;
    place-items: center;
    padding: 10px;
    border: 0;
    background: transparent;
    color: var(--wp--preset--color--ap-footer-text);
    cursor: pointer;
}

.ap-search__form {
    position: absolute;
    inset-inline-end: 0;
    inset-block-start: calc(100% + 10px);
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background-color: var(--wp--preset--color--ap-surface);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
}

.ap-search__form[hidden] {
    display: none;
}

.ap-search__input {
    inline-size: 220px;
    padding: 8px 10px;
    border: 1px solid #cfd3d5;
    font-family: inherit;
    font-size: var(--wp--preset--font-size--ap-body);
}

.ap-search__close {
    border: 0;
    background: transparent;
    font-size: 16px;
    cursor: pointer;
}

/* === Subheader (podstrony z mfn-post-hide-title=0: grafik, regulamin, polityka) === */
.ap-subheader {
    background-color: #f7f7f7;
    background-image: url("../img/subheader-bg.webp");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    padding-block: 200px 75px;
}

.ap-subheader__inner {
    max-inline-size: 1020px;
    margin-inline: auto;
    padding-inline: 20px;
}

.ap-subheader__title {
    text-align: center;
    color: var(--wp--preset--color--ap-footer-text);
    margin: 0;
}

/* === Hero strony (podstrony z własnym nagłówkiem w treści) === */
.ap-page-hero {
    background-repeat: no-repeat;
    background-position: center top;
}

.ap-page-hero .wp-block-heading {
    margin: 0;
}

.ap-hero-kontakt {
    background-image: url("../img/contact-hero-bg.webp");
    background-size: cover;
    background-position: center;
}

.ap-hero-studio {
    background-image: url("../img/studio-hero-bg.webp");
    background-size: contain;
    background-position: center bottom;
}

.ap-hero-cennik {
    background-image: url("../img/cennik-hero-bg.webp");
    background-size: contain;
    background-position: center top;
}

.ap-hero-cennik .ap-pricing__grid {
    margin-block-start: 205px;
}

/* Pełna szerokość sekcji ap-* (Astra dodaje padding boczny na <article>) */
.wp-block-group[class*="ap-"].alignfull {
    margin-inline: calc(50% - 50vw);
    max-inline-size: 100vw;
    inline-size: auto;
}

/* === Hero (zamiennik Revolution Slider) === */
.ap-hero {
    background-color: var(--wp--preset--color--ap-hero-bg);
    background-image: url("../img/yoga2-home-slider-bg.webp");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    container-type: inline-size;
    block-size: auto;
}

.entry-content > .ap-hero.alignfull {
    padding-inline: 0;
}

.ap-hero > .ap-hero__stage {
    --ap-s: tan(atan2(min(100cqi, var(--wp--custom--ap-hero--stage-width)), var(--wp--custom--ap-hero--stage-width)));
    position: relative;
    inset-inline-start: auto;
    inset-block-start: auto;
    margin-inline: auto;
    transform: none;
    inline-size: calc(var(--wp--custom--ap-hero--stage-width) * var(--ap-s));
    block-size: calc(var(--wp--custom--ap-hero--stage-height) * var(--ap-s));
}

.ap-js .ap-hero:not(.ap-hero--ready) :is(.ap-hero__title, .ap-hero__years-num, .ap-hero__years-label, .ap-hero__cta) {
    opacity: 0;
}

.ap-hero__title,
.ap-hero__years-num,
.ap-hero__years-label,
.ap-hero__cta {
    transition: opacity 400ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .ap-hero__title,
    .ap-hero__years-num,
    .ap-hero__years-label,
    .ap-hero__cta {
        transition: none;
    }
}

.ap-hero__stage:focus-within {
    opacity: 1 !important;
}

.ap-hero__stage:focus-within .ap-hero__cta {
    opacity: 1 !important;
}

.ap-hero--js .ap-hero__stage {
    position: relative;
    inset-inline-start: auto;
    inset-block-start: auto;
    margin-inline: auto;
    transform: none;
}

.ap-hero__figure,
.ap-hero__years,
.ap-hero__content,
.ap-hero__actions {
    display: contents;
}

.ap-hero__img {
    position: absolute;
    margin: 0;
    transform: scale(0.7);
    transform-origin: center;
}

.ap-hero__img--before {
    --iw: round(nearest, calc(633px * var(--ap-s)), 1px);
    --ih: round(nearest, calc(633px * var(--ap-s)), 1px);
    inset-inline-start: calc(var(--wp--custom--ap-hero--stage-width) * var(--ap-s) / 2 + 43px * var(--ap-s) - var(--iw) / 2);
    inset-block-start: calc(var(--wp--custom--ap-hero--stage-height) * var(--ap-s) / 2 - 37px * var(--ap-s) - var(--ih) / 2);
    inline-size: var(--iw);
    block-size: var(--ih);
    z-index: 6;
}

.ap-hero__img--after {
    --iw: round(nearest, calc(754px * var(--ap-s)), 1px);
    --ih: round(nearest, calc(984px * var(--ap-s)), 1px);
    inset-inline-start: calc(var(--wp--custom--ap-hero--stage-width) * var(--ap-s) / 2 - var(--iw) / 2);
    inset-block-start: calc(var(--wp--custom--ap-hero--stage-height) * var(--ap-s) / 2 - var(--ih) / 2);
    inline-size: var(--iw);
    block-size: var(--ih);
    z-index: 7;
}

.ap-hero__img img {
    inline-size: 100%;
    block-size: 100%;
}

.ap-hero__title {
    position: absolute;
    inset-inline-start: calc(772px * var(--ap-s));
    inset-block-start: calc(407px * var(--ap-s));
    z-index: 8;
    font-family: var(--wp--preset--font-family--ap-montserrat);
    font-size: round(nearest, calc(var(--wp--custom--ap-hero--title-font-size) * var(--ap-s)), 1px);
    font-weight: 500;
    line-height: round(nearest, calc(var(--wp--custom--ap-hero--title-line-height) * var(--ap-s)), 1px);
    color: var(--wp--preset--color--ap-ink);
    white-space: nowrap;
    margin: 0;
}

.ap-hero__years-num {
    position: absolute;
    inset-inline-start: calc(355px * var(--ap-s));
    inset-block-start: calc(484px * var(--ap-s));
    z-index: 9;
    font-family: var(--wp--preset--font-family--ap-montserrat);
    font-size: round(nearest, calc(var(--wp--custom--ap-hero--years-num-font-size) * var(--ap-s)), 1px);
    font-weight: 400;
    line-height: round(nearest, calc(var(--wp--custom--ap-hero--years-num-line-height) * var(--ap-s)), 1px);
    letter-spacing: calc(var(--wp--custom--ap-hero--years-num-letter-spacing) * var(--ap-s));
    color: var(--wp--preset--color--ap-surface);
    white-space: nowrap;
    margin: 0;
}

.ap-hero__years-label {
    position: absolute;
    inset-inline-start: calc(351px * var(--ap-s));
    inset-block-start: calc(596px * var(--ap-s));
    z-index: 10;
    inline-size: calc(var(--wp--custom--ap-hero--years-label-width) * var(--ap-s));
    font-family: var(--wp--preset--font-family--ap-open-sans);
    font-size: round(nearest, calc(var(--wp--custom--ap-hero--years-label-font-size) * var(--ap-s)), 1px);
    font-weight: 400;
    line-height: round(nearest, calc(var(--wp--custom--ap-hero--years-label-line-height) * var(--ap-s)), 1px);
    color: var(--wp--preset--color--ap-footer-text);
    white-space: nowrap;
    margin: 0;
}

.ap-hero__cta {
    position: absolute;
    inset-inline-start: calc(903px * var(--ap-s));
    inset-block-start: calc(514px * var(--ap-s) + 1px);
    z-index: 11;
    margin: 0;
}

.ap-hero__cta:focus-within {
    opacity: 1 !important;
}

.entry-content .ap-hero__cta a {
    display: inline-block;
    transform: none;
    vertical-align: top;
    padding-block: 0;
    padding-inline: round(nearest, calc(var(--wp--custom--ap-hero--cta-padding-inline) * var(--ap-s)), 1px);
    border-radius: round(nearest, calc(var(--wp--custom--ap-hero--cta-radius) * var(--ap-s)), 1px);
    font-family: var(--wp--preset--font-family--ap-roboto);
    font-size: round(nearest, calc(var(--wp--custom--ap-hero--cta-font-size) * var(--ap-s)), 1px);
    font-weight: 500;
    line-height: round(nearest, calc(var(--wp--custom--ap-hero--cta-line-height) * var(--ap-s)), 1px);
    letter-spacing: normal;
    white-space: nowrap;
    box-shadow: 0 round(nearest, calc(var(--wp--custom--ap-hero--cta-shadow-offset-y) * var(--ap-s)), 1px) round(nearest, calc(var(--wp--custom--ap-hero--cta-shadow-blur) * var(--ap-s)), 1px) var(--wp--custom--ap-hero--cta-shadow-color);
}

.entry-content .ap-hero__cta a,
.entry-content .ap-hero__cta a:hover {
    color: var(--wp--preset--color--ap-surface);
    text-decoration: none;
}

.entry-content .ap-hero__cta a:focus-visible {
    outline: var(--wp--custom--ap-hero--focus-outline-width) solid var(--wp--preset--color--ap-ink);
    outline-offset: var(--wp--custom--ap-hero--focus-outline-width);
}

.ap-hero__pause {
    position: absolute;
    inset-inline-end: var(--wp--custom--ap-hero--pause-inset);
    inset-block-end: var(--wp--custom--ap-hero--pause-inset);
    z-index: 20;
    display: grid;
    place-items: center;
    inline-size: var(--wp--custom--ap-hero--pause-size);
    block-size: var(--wp--custom--ap-hero--pause-size);
    padding: 0;
    border: 0;
    border-radius: var(--wp--custom--ap-hero--pause-radius);
    background-color: var(--wp--custom--ap-hero--pause-background);
    color: var(--wp--preset--color--ap-surface);
    cursor: pointer;
    opacity: 0;
}

.ap-hero__pause[hidden] {
    display: none;
}

.ap-hero:hover .ap-hero__pause,
.ap-hero:focus-within .ap-hero__pause,
.ap-hero__pause:focus-visible {
    opacity: 1;
}

.ap-hero__pause:focus-visible {
    outline: var(--wp--custom--ap-hero--focus-outline-width) solid var(--wp--preset--color--ap-ink);
    outline-offset: var(--wp--custom--ap-hero--focus-outline-width);
}

@media (hover: none) {
    .ap-hero__pause {
        background-color: transparent;
        color: var(--wp--preset--color--ap-heading);
        opacity: 0.55;
    }

    .ap-hero__pause:focus-visible {
        opacity: 1;
    }
}

.ap-hero__pause-icon {
    display: block;
    inline-size: var(--wp--custom--ap-hero--pause-icon-size);
    block-size: var(--wp--custom--ap-hero--pause-icon-size);
    border-inline: var(--wp--custom--ap-hero--pause-icon-bar) solid currentColor;
    box-sizing: border-box;
}

.ap-hero__pause[aria-pressed="true"] .ap-hero__pause-icon {
    inline-size: 0;
    block-size: 0;
    border-block: var(--wp--custom--ap-hero--pause-play-bar) solid transparent;
    border-inline: none;
    border-inline-start: var(--wp--custom--ap-hero--pause-icon-size) solid currentColor;
}

/* === Sekcja wstępna + siatka ćwiczeń === */
.ap-intro {
    background-image: url("../img/poses-bg.webp");
    background-repeat: no-repeat;
    background-position: center;
}

.ap-exercise-grid {
    margin-block-start: var(--wp--preset--spacing--50);
    gap: var(--wp--preset--spacing--40);
}

.ap-exercise__img {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    block-size: 76px;
    margin-inline: auto;
    margin-block-end: var(--wp--preset--spacing--30);
}

.ap-exercise__img img {
    max-block-size: 76px;
    inline-size: auto;
}

.ap-exercise__title {
    text-align: center;
    font-size: var(--wp--preset--font-size--ap-lead);
    letter-spacing: 0.04em;
}

/* === Studio === */
.ap-studio__img {
    margin: 0;
}

.ap-studio__img img {
    inline-size: 100%;
    block-size: auto;
}

/* === Harmonogram === */
.ap-schedule__media {
    align-self: center;
}

.ap-schedule__img {
    margin: 0;
}

.ap-schedule__img img {
    inline-size: 100%;
    block-size: auto;
}

.ap-hours {
    margin-block-start: var(--wp--preset--spacing--40);
}

.ap-hours__day + .ap-hours__day {
    margin-block-start: var(--wp--preset--spacing--30);
}

.ap-hours__label {
    font-family: var(--wp--preset--font-family--ap-alt);
    font-size: var(--wp--preset--font-size--ap-lead);
    font-weight: 400;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--wp--preset--color--ap-hours-label);
    margin-block-end: 8px;
}

.ap-hours__time {
    font-size: 25px;
    line-height: 1.2;
    color: var(--wp--preset--color--ap-hours-gold);
    margin-block: 0;
}

.ap-hours__time sup {
    font-size: 0.55em;
    top: -0.6em;
    position: relative;
}

/* === Cytat === */

/* === Galeria (pas zdjęć) === */
.ap-gallery {
    overflow: hidden;
}

.ap-gallery__row {
    align-items: flex-end;
    gap: 0;
}

@media (min-width: 782px) {
    .ap-gallery__item--raise-20 {
        transform: translateY(-20px);
    }
    .ap-gallery__item--raise-80 {
        transform: translateY(-80px);
    }
    .ap-gallery__item--raise-140 {
        transform: translateY(-140px);
    }
}

/* === CTA === */
.ap-cta {
    background-color: var(--wp--preset--color--ap-accent-soft);
    background-image: url("../img/cta-bg.webp");
    background-repeat: no-repeat;
    background-position: center bottom;
}

.ap-cta__content {
    text-align: right;
}

.ap-cta__content p {
    color: var(--wp--preset--color--ap-footer-text);
}

.ap-cta__contact .wp-block-button {
    inline-size: 100%;
}

.entry-content > .ap-contact.alignfull {
    padding-block-start: var(--wp--custom--ap-contact--mobile-padding-block-start);
}

@media (min-width: 782px) {
    .entry-content .ap-studio__grid {
        display: grid;
        grid-template-columns: 40% 60%;
        gap: 0;
        align-items: start;
    }

    .ap-studio__grid > .ap-studio__content {
        align-self: start;
        margin: 0;
        padding-inline-start: var(--wp--custom--ap-studio--content-padding-inline-start);
        padding-inline-end: var(--wp--custom--ap-studio--content-padding-inline-end);
    }

    .ap-studio__grid > .ap-studio__media {
        align-self: start;
        margin: 0;
        padding-inline: var(--wp--custom--ap-studio--media-padding-inline);
    }

    .entry-content .ap-cta__grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
        align-items: start;
        min-block-size: var(--wp--custom--ap-cta--grid-min-block-size);
    }

    .ap-cta__grid > .ap-cta__content {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        margin: 0;
        padding-inline: var(--wp--custom--ap-cta--content-padding-inline-start) var(--wp--custom--ap-cta--content-padding-inline-end);
    }

    .ap-cta__grid > .ap-cta__contact {
        display: contents;
    }

    .ap-cta__contact .ap-cta__phone {
        grid-column: 2;
        grid-row: 1;
        margin: 0;
        padding-inline: var(--wp--custom--ap-cta--phone-padding-inline-start) var(--wp--custom--ap-cta--phone-padding-inline-end);
        line-height: var(--wp--custom--ap-cta--phone-line-height);
    }

    .ap-cta__contact .ap-cta__actions {
        grid-column: 1 / -1;
        grid-row: 2;
        align-self: start;
        inline-size: 100%;
        max-inline-size: var(--wp--custom--ap-cta--actions-max-width);
        margin-inline: auto;
        margin-block-start: var(--wp--custom--ap-cta--actions-margin-top);
        margin-block-end: 0;
    }

    .entry-content .ap-cta__content h3 {
        margin: 0;
    }

    .entry-content .ap-cta__content p {
        margin-block-start: var(--wp--custom--ap-cta--paragraph-margin-top);
    }

    .entry-content > .ap-instructor.alignfull {
        padding-block-start: var(--wp--custom--ap-studio--instructor-gap);
    }

    .ap-instructor > .ap-instructor__grid {
        margin-block-start: var(--wp--custom--ap-studio--instructor-gap);
    }

    .entry-content > .ap-band.ap-band--studio {
        padding-block-start: var(--wp--custom--ap-studio--last-band-padding-top);
    }

    .entry-content > .ap-contact.alignfull {
        padding-block-start: var(--wp--custom--ap-contact--padding-block-start);
    }

    .ap-contact-cards {
        margin-block-start: var(--wp--custom--ap-contact--cards-margin-top);
    }

    .ap-icon-box__icon img {
        inline-size: 100% !important;
    }
}

.ap-cta__contact .wp-block-button__link {
    inline-size: 100%;
    text-align: center;
}

.ap-cta__phone {
    font-size: var(--wp--preset--font-size--ap-phone-cta);
    font-weight: 700;
    line-height: 1.2;
}

.entry-content .ap-cta__phone a,
.entry-content .ap-cta__phone a:hover {
    color: var(--wp--preset--color--ap-footer-text);
    text-decoration: none;
}

/* === Icon boxy kontaktowe === */
.ap-contact-cards {
    padding-block: 50px;
}

.ap-icon-box {
    text-align: center;
}

.ap-icon-box__icon {
    margin-inline: auto;
    inline-size: var(--wp--custom--ap-contact--icon-size);
    block-size: var(--wp--custom--ap-contact--icon-size);
}

.ap-contact-cards .ap-icon-box__icon img {
    inline-size: 100% !important;
    display: block;
    margin-inline: auto;
    block-size: auto;
}

.ap-icon-box .ap-icon-box__content a {
    font-family: var(--wp--preset--font-family--ap-alt);
    font-size: 20px;
    line-height: 36px;
    color: var(--wp--preset--color--ap-muted);
    text-decoration: none;
}

.ap-icon-box .ap-icon-box__content--address {
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--custom--ap-contact--address-font-size);
    line-height: var(--wp--custom--ap-contact--address-line-height);
    color: var(--wp--preset--color--ap-muted);
}

/* === Mapa (click-to-load) === */
.entry-content > .ap-map.alignfull {
    padding-inline: var(--wp--custom--ap-map--inline-padding);
}

.ap-map {
    min-block-size: var(--wp--custom--ap-map--min-height);
    background-color: var(--wp--preset--color--ap-map-bg);
    display: grid;
    place-items: stretch;
}

.ap-map .ap-map__placeholder {
    inline-size: 100%;
    max-inline-size: var(--wp--custom--ap-map--max-width);
    min-inline-size: 0;
    margin-inline: auto;
    min-block-size: var(--wp--custom--ap-map--min-height);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.ap-map .ap-map__placeholder p {
    margin: 0;
    padding-inline: var(--wp--custom--ap-map--placeholder-padding);
    overflow-wrap: anywhere;
}

.ap-map__frame {
    display: block;
    inline-size: 100%;
    block-size: var(--wp--custom--ap-map--min-height);
    border: 0;
    flex-shrink: 0;
}

.ap-map__load {
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--preset--font-size--ap-lead);
    color: var(--wp--preset--color--ap-footer-text);
    background: var(--wp--preset--color--ap-surface);
    border: 1px solid #cfd3d5;
    padding: 12px 24px;
    cursor: pointer;
    margin-block-start: var(--wp--custom--ap-map--placeholder-gap);
    min-block-size: var(--wp--custom--ap-consent--button-min-block-size);
    min-inline-size: var(--wp--custom--ap-consent--button-min-block-size);
}

/* === Cennik === */
.ap-pricing__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
}

.ap-pricing__grid > * {
    margin-block: 0;
}

.ap-price-card {
    background-color: var(--wp--preset--color--ap-surface);
    border: 1px solid #cfd3d5;
    padding: 20px;
    text-align: center;
}

.ap-price-card--featured {
    background-color: var(--wp--preset--color--ap-accent);
    background-image: url("../img/price-gold-bg.webp");
    background-size: cover;
    background-position: center;
    border-color: transparent;
}

.ap-price-card--featured .wp-block-heading,
.ap-price-card--featured p {
    color: var(--wp--preset--color--ap-surface);
}

.ap-price-card__img {
    margin-inline: auto;
    inline-size: 75%;
}

.ap-price-card__price {
    font-family: var(--wp--preset--font-family--ap-heading);
    font-size: var(--wp--preset--font-size--ap-h-3);
    color: var(--wp--preset--color--ap-accent);
    margin-block: 12px;
}

.ap-price-card--featured .ap-price-card__price {
    color: var(--wp--preset--color--ap-surface);
}

.ap-price-card__price small {
    font-size: 15px;
    font-weight: 400;
}

.ap-price-card__sep {
    inline-size: 50%;
    border: 0;
    border-block-start: 1px solid var(--wp--preset--color--ap-accent);
    margin-block: 16px;
}

.ap-price-card--featured .ap-price-card__sep {
    border-color: var(--wp--preset--color--ap-surface);
}

/* === FAQ === */
.ap-faq details {
    border-block-end: 1px solid #e2e2e2;
    padding-block: 12px;
}

.ap-faq summary {
    cursor: pointer;
    font-family: var(--wp--preset--font-family--ap-heading);
    font-size: var(--wp--preset--font-size--ap-lead);
    color: var(--wp--preset--color--ap-heading);
}

/* === Grafik — strona z widżetem Fitssey === */
.ap-fitssey-notes {
    padding-block-start: 30px;
}

/* === Grafik — notki Fitssey === */
.ap-fitssey-notes > .ap-fitssey-note {
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--custom--ap-fitssey--font-size);
    line-height: var(--wp--custom--ap-fitssey--line-height);
    color: var(--wp--preset--color--ap-muted);
    margin-block: 0 var(--wp--custom--ap-fitssey--margin-bottom);
}

.ap-fitssey-note--link {
    font-size: var(--wp--custom--ap-fitssey--font-size);
}

/* === Pilates — pozycje === */
.ap-pose__text {
    background-image: url("../img/gold-dot.webp");
    background-repeat: no-repeat;
    background-position: center 0;
    padding: 20px;
    text-align: center;
}

.ap-pose__img {
    margin-inline: auto;
}

.ap-band {
    background-image: url("../img/bottom-gradient.webp");
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: cover;
}

.ap-band__box {
    background-image: url("../img/activity-box-gold.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding-block: 60px 50px;
    padding-inline: 5%;
    text-align: center;
}

.ap-band__box .wp-block-heading {
    color: var(--wp--preset--color--ap-cream);
    margin: 0;
}

/* === Regulamin / polityka === */
.ap-legal p {
    font-size: 16px;
}

/* === Stopka === */
.ap-footer {
    background-color: var(--wp--preset--color--ap-footer);
    color: var(--wp--preset--color--ap-footer-text);
}

.ap-footer a {
    color: var(--wp--preset--color--ap-footer-text);
}

.ap-footer__action {
    background-color: var(--wp--custom--ap-footer--action-overlay);
    text-align: center;
    padding-block: var(--wp--custom--ap-footer--action-padding-block);
}

.ap-footer__action p {
    margin: 0;
    font-size: var(--wp--custom--ap-footer--action-font-size);
    line-height: var(--wp--custom--ap-footer--action-line-height);
}

.ap-footer__widgets {
    padding-block: 70px;
}

.ap-footer .ap-footer__grid {
    gap: 0;
}

.ap-footer .ap-footer__grid > .ap-footer__col {
    padding: var(--wp--custom--ap-footer--col-padding-block) var(--wp--custom--ap-footer--col-padding-inline);
    margin: 0;
}

.ap-footer__grid > .ap-footer__col + .ap-footer__col {
    margin-block-start: 0;
}

.ap-footer__widgets p {
    margin-block: 0 15px;
    white-space: pre;
}

.ap-footer__widgets a {
    color: var(--wp--preset--color--ap-footer-link);
}

.ap-footer__widgets a[href^="tel:"],
.ap-footer__widgets a[href^="mailto:"] {
    color: var(--wp--preset--color--ap-footer-text);
}

.ap-footer__col--hours > .ap-footer__schedule {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: var(--wp--custom--ap-footer--schedule-gap);
    justify-content: start;
    margin-block: var(--wp--custom--ap-footer--schedule-margin-top) 0;
    font-size: var(--wp--preset--font-size--ap-body);
    line-height: var(--wp--custom--ap-footer--schedule-line-height);
}

.ap-footer__schedule span {
    white-space: nowrap;
}

.ap-footer__col--hours > p {
    margin-block-start: var(--wp--custom--ap-footer--legal-margin-top);
    line-height: var(--wp--custom--ap-footer--legal-line-height);
}

.ap-footer__copy {
    padding-block: var(--wp--custom--ap-footer--copy-padding-block);
}

.ap-footer__copy-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.ap-footer__copy p {
    margin: 0;
}

.ap-footer .ap-footer__social {
    margin: 0;
    gap: var(--wp--custom--ap-footer--social-gap);
}

.ap-footer .ap-footer__social li {
    color: var(--wp--preset--color--ap-social-icon);
}

.ap-footer .ap-footer__social li a {
    padding: 0;
}

.ap-footer .ap-footer__social svg {
    inline-size: var(--wp--custom--ap-footer--social-icon-size);
    block-size: var(--wp--custom--ap-footer--social-icon-size);
}

@media (min-width: 782px) and (max-width: 1219px) {
    .ap-footer .ap-footer__grid {
        flex-wrap: wrap !important;
    }

    .ap-footer .ap-footer__grid > .ap-footer__col {
        flex-basis: 50% !important;
    }

    .ap-footer .ap-footer__grid > .ap-footer__col--hours {
        flex-basis: 100% !important;
    }
}

/* === Mobile === */
@media (max-width: 781px) {
    .ap-hero-kontakt {
        background-image: url("../img/contact-hero-bg-1200.webp");
    }

    .entry-content > .ap-instructor.alignfull {
        padding-block-start: var(--wp--custom--ap-studio--instructor-gap-mobile);
    }

    .ap-instructor > .ap-instructor__grid {
        margin-block-start: var(--wp--custom--ap-studio--instructor-gap-mobile);
    }

    body.admin-bar .ap-header {
        inset-block-start: 46px;
    }

    .ap-topbar__inner {
        min-block-size: 60px;
        gap: 12px;
    }

    .ap-topbar__logo img {
        block-size: 45px;
    }

    .ap-nav-toggle {
        display: block;
    }

    .ap-nav {
        position: fixed;
        inset-inline: 0;
        inset-block-start: 60px;
        background-color: var(--wp--preset--color--ap-surface);
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
        max-block-size: 0;
        overflow: hidden;
        visibility: hidden;
        transition: max-block-size 0.3s ease, visibility 0.3s;
    }

    body.admin-bar .ap-nav {
        inset-block-start: 106px;
    }

    .ap-nav--open {
        max-block-size: 70vh;
        visibility: visible;
        overflow-y: auto;
    }

    .ap-nav__list {
        flex-direction: column;
        gap: 0;
        padding-block: 8px;
    }

    .ap-nav__list a {
        padding: 12px 20px;
        font-size: var(--wp--preset--font-size--ap-lead);
    }

    .ap-subheader {
        padding-block: 80px;
    }

    .ap-cta__content {
        text-align: left;
    }

    .ap-hero-cennik .ap-pricing__grid {
        margin-block-start: 150px;
    }

    .ap-pricing__grid {
        grid-template-columns: 1fr;
    }

    .ap-studio__grid,
    .ap-schedule__grid,
    .ap-cta__grid {
        flex-wrap: wrap;
    }

    .ap-studio__content,
    .ap-studio__media,
    .ap-schedule__content,
    .ap-schedule__media,
    .ap-cta__content,
    .ap-cta__contact {
        flex-basis: 100% !important;
    }

    .ap-exercise-grid {
        flex-wrap: wrap;
    }

    .ap-exercise {
        flex-basis: 46% !important;
    }
}

@media (max-width: 767px) {
    .ap-hero {
        margin-block-start: 61px;
    }

    .home .ap-topbar,
    .home .ap-header--scrolled .ap-topbar {
        background-color: var(--wp--preset--color--ap-mobile-header);
    }

    .home .ap-topbar__inner {
        min-block-size: 61px;
    }

    .entry-content > [class*="ap-"],
    .ap-subheader {
        --wp--preset--font-size--ap-h-1: var(--wp--preset--font-size--ap-h-1-mobile);
        --wp--preset--font-size--ap-h-3: var(--wp--preset--font-size--ap-h-3-mobile);
        --wp--preset--font-size--ap-h-4: var(--wp--preset--font-size--ap-h-4-mobile);
        --wp--preset--font-size--ap-h-5: var(--wp--preset--font-size--ap-h-5-mobile);
    }

    .entry-content > [class*="ap-"] h1.has-ap-h-1-font-size,
    .ap-subheader .ap-subheader__title {
        font-size: var(--wp--preset--font-size--ap-h-1);
        line-height: var(--wp--custom--ap-headings--mobile-h-1-line-height);
    }

    .entry-content > [class*="ap-"] h3.has-ap-h-3-font-size {
        line-height: var(--wp--custom--ap-headings--mobile-h-3-line-height);
    }

    .entry-content > [class*="ap-"] h4.has-ap-h-4-font-size,
    .entry-content > [class*="ap-"] h5.has-ap-h-5-font-size {
        line-height: var(--wp--custom--ap-headings--mobile-h-45-line-height);
    }

    .entry-content > .ap-contact.alignfull > h3 {
        font-size: var(--wp--custom--ap-contact--mobile-heading-font-size) !important;
        line-height: var(--wp--custom--ap-contact--mobile-heading-line-height);
    }

    .ap-contact-cards .ap-icon-box__content a {
        overflow-wrap: anywhere;
    }

    .ap-exercise__title {
        letter-spacing: 0;
    }

    .ap-price-card__price {
        line-height: var(--wp--custom--ap-headings--mobile-h-3-line-height);
    }

    .ap-footer {
        font-size: var(--wp--custom--ap-footer--mobile-font-size);
        line-height: var(--wp--custom--ap-footer--mobile-line-height);
    }

    .ap-footer__action p {
        font-size: var(--wp--custom--ap-footer--action-font-size-mobile);
        line-height: var(--wp--custom--ap-footer--action-line-height-mobile);
    }

    .ap-footer__widgets {
        padding-inline: var(--wp--custom--ap-footer--mobile-padding-inline);
    }

    .ap-footer__grid {
        flex-wrap: wrap;
    }

    .ap-footer__grid > .ap-footer__col {
        flex-basis: 100% !important;
        inline-size: 100%;
    }

    .ap-footer .ap-footer__grid > .ap-footer__col--contact {
        padding-block-start: var(--wp--custom--ap-footer--contact-padding-top-mobile);
    }

    .ap-footer__col--hours > .ap-footer__schedule {
        column-gap: var(--wp--custom--ap-footer--schedule-gap-mobile);
        margin-block-start: var(--wp--custom--ap-footer--schedule-margin-top-mobile);
        font-size: var(--wp--custom--ap-footer--mobile-font-size);
        line-height: var(--wp--custom--ap-footer--mobile-line-height);
    }

    .ap-footer__col--hours > p {
        margin-block-start: var(--wp--custom--ap-footer--legal-margin-top-mobile);
        line-height: var(--wp--custom--ap-footer--mobile-line-height);
    }

    .ap-footer__copy {
        padding-block: var(--wp--custom--ap-footer--copy-padding-top-mobile) var(--wp--custom--ap-footer--copy-padding-bottom-mobile);
    }

    .ap-footer__copy-inner {
        flex-direction: column;
        justify-content: center;
        gap: var(--wp--custom--ap-footer--copy-gap-mobile);
    }

    .ap-footer__copy p {
        font-size: var(--wp--custom--ap-footer--mobile-font-size);
        text-align: center;
    }

    .ap-footer__social {
        justify-content: center;
    }
}

.ap-cookie-bar {
    position: fixed;
    inset-inline: 0;
    inset-block-end: 0;
    z-index: 1000;
    background-color: var(--wp--preset--color--ap-consent-bg);
    color: var(--wp--preset--color--ap-surface);
    box-shadow: var(--wp--custom--ap-consent--banner-shadow);
    padding: var(--wp--custom--ap-consent--banner-padding);
    padding-block-end: calc(var(--wp--custom--ap-consent--banner-padding) + env(safe-area-inset-bottom, 0px));
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--custom--ap-consent--banner-font-size);
    font-weight: 400;
    line-height: var(--wp--custom--ap-consent--banner-line-height);
    max-block-size: 100vh;
    max-block-size: 100dvh;
    overflow-y: auto;
}

.ap-cookie-bar[hidden] {
    display: none;
}

.ap-cookie-bar__inner {
    max-inline-size: var(--wp--custom--ap-consent--inner-max-width);
    margin-inline: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--wp--custom--ap-consent--banner-gap);
}

.ap-cookie-bar__inner:focus-within {
    outline: var(--wp--custom--ap-consent--focus-outline-width) solid var(--wp--preset--color--ap-surface);
    outline-offset: var(--wp--custom--ap-consent--focus-outline-width);
}

.ap-cookie-bar__title {
    position: absolute;
    inline-size: var(--wp--custom--ap-consent--border-width);
    block-size: var(--wp--custom--ap-consent--border-width);
    padding: 0;
    margin: calc(-1 * var(--wp--custom--ap-consent--border-width));
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.ap-cookie-bar__body {
    flex: 1;
    min-inline-size: 0;
}

.ap-cookie-bar__copy,
.ap-cookie-bar__current {
    margin: 0;
}

.ap-cookie-bar__copy a {
    color: var(--wp--preset--color--ap-surface);
    text-decoration: underline;
}

.ap-cookie-bar__actions {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--wp--custom--ap-consent--banner-gap);
}

.ap-cookie-bar__btn {
    min-block-size: var(--wp--custom--ap-consent--button-min-block-size);
    min-inline-size: var(--wp--custom--ap-consent--button-min-block-size);
    padding-inline: var(--wp--custom--ap-consent--banner-button-padding-inline);
    font-family: var(--wp--preset--font-family--ap-body);
    font-size: var(--wp--custom--ap-consent--banner-font-size);
    font-weight: 400;
    line-height: var(--wp--custom--ap-consent--banner-line-height);
    color: var(--wp--preset--color--ap-consent-bg);
    background-color: var(--wp--preset--color--ap-surface);
    border: var(--wp--custom--ap-consent--border-width) solid var(--wp--preset--color--ap-surface);
    border-radius: var(--wp--custom--ap-consent--radius);
    cursor: pointer;
}

.ap-cookie-bar__btn:hover {
    background-color: var(--wp--preset--color--ap-cream);
    color: var(--wp--preset--color--ap-dark);
}

.ap-cookie-bar__btn:focus-visible,
.ap-cookie-bar__close:focus-visible,
.ap-consent-embed__btn:focus-visible,
.ap-consent-embed__link:focus-visible,
.ap-footer__cookie-settings:focus-visible,
.ap-map__load:focus-visible {
    outline: var(--wp--custom--ap-consent--focus-outline-width) solid var(--wp--preset--color--ap-surface);
    outline-offset: var(--wp--custom--ap-consent--focus-outline-width);
}

.ap-consent-embed__btn:focus-visible,
.ap-consent-embed__link:focus-visible,
.ap-footer__cookie-settings:focus-visible,
.ap-map__load:focus-visible {
    outline-color: var(--wp--preset--color--ap-dark);
}

.ap-cookie-bar__copy a:focus-visible {
    outline: var(--wp--custom--ap-consent--focus-outline-width) solid var(--wp--preset--color--ap-surface);
    outline-offset: var(--wp--custom--ap-consent--focus-outline-width);
}

.ap-cookie-bar__close {
    position: absolute;
    inset-block-start: var(--wp--custom--ap-consent--close-offset);
    inset-inline-end: var(--wp--custom--ap-consent--close-offset);
    inline-size: var(--wp--custom--ap-consent--button-min-block-size);
    block-size: var(--wp--custom--ap-consent--button-min-block-size);
    padding: 0;
    font: inherit;
    color: var(--wp--preset--color--ap-surface);
    background: transparent;
    border: 0;
    cursor: pointer;
}

.ap-cookie-bar__close[hidden] {
    display: none;
}

@media (min-width: 768px) {
    .ap-cookie-bar:has(.ap-cookie-bar__close:not([hidden])) .ap-cookie-bar__inner {
        padding-inline-end: var(--wp--custom--ap-consent--close-reserved-space);
    }
}

.ap-cookie-bar--noscript {
    position: static;
}

@media (max-width: 767px) {
    .ap-cookie-bar__inner {
        flex-direction: column;
        align-items: stretch;
    }

    .ap-cookie-bar__actions {
        inline-size: 100%;
    }

    .ap-cookie-bar__btn {
        flex: 1;
        white-space: normal;
    }

    .ap-cookie-bar:has(.ap-cookie-bar__close:not([hidden])) .ap-cookie-bar__body {
        padding-inline-end: var(--wp--custom--ap-consent--close-reserved-space);
    }
}


.ap-consent-embed[hidden] {
    display: none;
}

.ap-consent-embed__inner {
    padding: var(--wp--custom--ap-consent--padding);
    text-align: center;
    background-color: var(--wp--preset--color--ap-bg);
    border-radius: var(--wp--custom--ap-consent--radius);
    font-size: var(--wp--custom--ap-consent--font-size);
    line-height: var(--wp--custom--ap-consent--line-height);
}

.ap-consent-embed__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--wp--custom--ap-consent--gap);
}

.ap-consent-embed__btn {
    min-block-size: var(--wp--custom--ap-consent--button-min-block-size);
    padding-inline: var(--wp--custom--ap-consent--padding);
    font: inherit;
    color: var(--wp--preset--color--ap-surface);
    background-color: var(--wp--preset--color--ap-dark);
    border: 0;
    border-radius: var(--wp--custom--ap-consent--radius);
    cursor: pointer;
}

.ap-footer__cookie-settings {
    padding: 0;
    font: inherit;
    color: inherit;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: start;
}

.ap-consent-embed__error {
    margin: 0;
    color: var(--wp--preset--color--ap-dark);
}

.ap-consent-embed__btn--retry {
    border: var(--wp--custom--ap-consent--focus-outline-width) solid var(--wp--preset--color--ap-accent-soft);
}
