.pl-site-header {
    position: sticky;
    z-index: 100;
    inset-block-start: 0;
    border-block-end: 1px solid var(--wp--preset--color--line);
    background: var(--wp--preset--color--background);
}

.pl-site-header__inner {
    min-block-size: 4.75rem;
    gap: var(--wp--preset--spacing--40);
    padding-block: var(--wp--preset--spacing--20);
}

.pl-site-header__logo {
    flex: 0 1 15.5rem;
    margin: 0;
}

.pl-site-header__logo img {
    inline-size: min(100%, 15.5rem);
}

.pl-primary-nav {
    margin-inline-start: auto;
    font-size: var(--wp--preset--font-size--small);
}

.pl-primary-nav--desktop {
    display: none;
}

.pl-primary-nav--mobile {
    display: block;
}

.pl-primary-nav summary {
    cursor: pointer;
    color: var(--wp--preset--color--primary);
    font-weight: 400;
    list-style: none;
}

.pl-primary-nav summary::-webkit-details-marker {
    display: none;
}

.pl-primary-nav__toggle > summary {
    display: flex;
    align-items: center;
    min-block-size: 2.75rem;
    padding-inline: var(--wp--preset--spacing--30);
    border: 1px solid var(--wp--preset--color--primary);
}

.pl-primary-nav__toggle > summary::after {
    content: "+";
    margin-inline-start: var(--wp--preset--spacing--20);
}

.pl-primary-nav__toggle[open] > summary::after {
    content: "−";
}

.pl-primary-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.pl-primary-nav__toggle > ul {
    position: absolute;
    inset-inline: 0;
    margin-block-start: var(--wp--preset--spacing--20);
    padding: var(--wp--preset--spacing--30);
    background: var(--wp--preset--color--surface);
}

.pl-primary-nav__toggle:not([open]) > ul,
.pl-primary-nav__submenu details:not([open]) > ul {
    display: none;
}

.pl-primary-nav li + li {
    margin-block-start: var(--wp--preset--spacing--20);
}

.pl-primary-nav a,
.pl-primary-nav__submenu summary {
    display: block;
    padding: 0.4rem 0;
    color: var(--wp--preset--color--primary);
    text-decoration: none;
}

.pl-primary-nav a:hover,
.pl-primary-nav summary:hover {
    color: var(--wp--preset--color--secondary);
}

.pl-primary-nav__submenu ul {
    padding-inline-start: var(--wp--preset--spacing--30);
}

body.home article:has(.entry-content > .pl-home) {
    padding: 0;
}

.pl-home {
    overflow: clip;
    background: var(--wp--preset--color--surface);
}

.pl-home > * {
    margin-block-start: 0;
}

article:has(.pl-home) .pl-home {
    padding: 0;
}

.pl-home :is(h1, h2, h3, h4) {
    color: var(--wp--preset--color--primary);
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 500;
}

.pl-home h1 {
    font-size: var(--wp--preset--font-size--pl-heading-1);
    line-height: 1.14;
}

.pl-home h2 {
    font-size: var(--wp--preset--font-size--pl-heading-2);
    line-height: 1.2;
}

.pl-home h3 {
    font-size: var(--wp--preset--font-size--pl-heading-3);
    line-height: 1.25;
}

.pl-home h4 {
    font-size: var(--wp--preset--font-size--pl-heading-4);
    line-height: 1.2;
}

@media (max-width: 47.9375rem) {
    .pl-home h1 {
        font-size: var(--wp--preset--font-size--pl-heading-1-mobile);
        line-height: 1.1;
    }

    .pl-home h2 {
        font-size: var(--wp--preset--font-size--pl-heading-2-mobile);
        line-height: 1.3333;
    }

    .pl-home h3 {
        font-size: var(--wp--preset--font-size--pl-heading-3-mobile);
    }
}

.pl-hero {
    padding-block: var(--wp--preset--spacing--hero-top) var(--wp--preset--spacing--hero-bottom);
}

.pl-hero__title {
    margin: 0;
    text-wrap: balance;
}

.pl-booking-cta {
    padding-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--60);
}

.pl-home .pl-booking-cta a,
.pl-home .pl-clinic a[href="/umawianie_wizyt/"],
.pl-home .pl-booking-section a[href="/umawianie_wizyt/"],
.pl-home .pl-practitioner a[href="/opinie/"] {
    background: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--background);
}

.pl-home .pl-booking-cta a:hover,
.pl-home .pl-clinic a[href="/umawianie_wizyt/"]:hover,
.pl-home .pl-booking-section a[href="/umawianie_wizyt/"]:hover,
.pl-home .pl-practitioner a[href="/opinie/"]:hover {
    background: var(--wp--preset--color--accent-hover);
    color: var(--wp--preset--color--background);
}

.pl-home .pl-practitioner a[href="/opinie/"]:has(img),
.pl-home .pl-practitioner a[href="/opinie/"]:has(img):hover {
    background: none;
    color: inherit;
}

.pl-service-feature {
    container-type: inline-size;
    padding-block: var(--wp--preset--spacing--section-75) var(--wp--preset--spacing--section-120);
    border-block-end: 1px dotted var(--wp--preset--color--secondary);
    background: var(--wp--preset--color--service-surface);
}

.pl-service-feature--first {
    padding-block: var(--wp--preset--spacing--section-100) 0;
}

.pl-service-feature--no-bottom {
    padding-block-end: 0;
}

.pl-service-feature__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
    gap: var(--wp--preset--spacing--50);
}

.pl-service-feature__layout > div {
    min-inline-size: 0;
}

.pl-service-feature__image {
    margin: 0;
}

.pl-service-feature__image img {
    inline-size: 100%;
    block-size: auto;
}

.pl-service-feature__title {
    margin-block-start: 0;
}

.pl-home .pl-service-feature__title a {
    color: var(--wp--preset--color--primary);
    text-decoration: none;
}

.pl-service-feature__subtitle {
    margin-block-start: calc(var(--wp--preset--spacing--30) * -0.75);
    font-family: var(--wp--preset--font-family--title);
}

.pl-service-feature__more,
.pl-service-feature__more a {
    color: var(--wp--preset--color--accent);
}

.pl-service-feature__social {
    margin-block-end: 0;
}

.pl-service-feature__social a {
    display: inline-flex;
    color: var(--wp--preset--color--primary);
    font-size: 0;
}

.pl-service-feature__social a::before {
    inline-size: 1rem;
    block-size: 1rem;
    background: currentcolor;
    content: "";
    -webkit-mask: url("../icons/instagram.svg") center / contain no-repeat;
    mask: url("../icons/instagram.svg") center / contain no-repeat;
}

.pl-clinic-intro {
    padding-block: var(--wp--preset--spacing--section-60) 0;
}

.pl-clinic-intro h2 {
    margin-block-start: 0;
}

.pl-clinic-intro__image {
    margin-block: var(--wp--preset--spacing--50) 0;
}

.pl-clinic-intro__image img {
    inline-size: 100%;
    block-size: auto;
}

.pl-clinic {
    padding-block: var(--wp--preset--spacing--section-80) var(--wp--preset--spacing--section-50);
}

.pl-clinic__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
    gap: var(--wp--preset--spacing--50);
}

.pl-clinic__layout > div {
    min-inline-size: 0;
}

.pl-clinic h2 {
    margin-block-start: 0;
}

.pl-clinic ul {
    padding-inline-start: 1.25rem;
}

.pl-directions {
    padding-block: 0;
}

.pl-directions > p {
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
}

.pl-location {
    padding-block: var(--wp--preset--spacing--section-60) var(--wp--preset--spacing--section-20);
}

.pl-home .pl-location__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
    gap: var(--wp--preset--spacing--50);
}

.pl-home .pl-hours table {
    inline-size: 100%;
    border: 0;
    border-collapse: collapse;
}

.pl-hours td {
    padding-block: 0.25rem;
    border: 0;
}

.pl-hours td:last-child {
    text-align: end;
}

.pl-location__layout > div:first-child > p {
    font-family: var(--wp--preset--font-family--heading);
    font-size: var(--wp--preset--font-size--pl-heading-4);
    font-weight: 500;
    line-height: 1.2;
}

body .pl-home .pl-location .pl-location__phone a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--wp--preset--color--primary);
    font: inherit;
    text-decoration: none;
}

.pl-location__phone a::before {
    content: "";
    inline-size: 1rem;
    block-size: 1rem;
    background: currentcolor;
    -webkit-mask: url("../icons/phone.svg") center / contain no-repeat;
    mask: url("../icons/phone.svg") center / contain no-repeat;
}

body .pl-home .pl-location .pl-location__divider {
    border: 0;
    border-block-start: 1px solid var(--wp--preset--color--divider-strong);
    inline-size: 100%;
    margin-block: 15px;
}

.pl-location__map {
    margin: 0;
}

.pl-location__map img {
    inline-size: 100%;
}

.pl-booking-section {
    padding-block: var(--wp--preset--spacing--section-40);
}

.pl-home .pl-booking-section__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
    gap: var(--wp--preset--spacing--50);
}

.pl-booking-section__action {
    text-align: center;
}

.pl-booking-section__action > div {
    justify-content: center;
}

.pl-practitioner {
    padding-block: var(--wp--preset--spacing--section-40);
}

.pl-home .pl-practitioner__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    inline-size: 100%;
    max-inline-size: var(--wp--style--global--wide-size);
    gap: var(--wp--preset--spacing--50);
}

.pl-practitioner__profile,
.pl-practitioner__review {
    text-align: center;
}

.pl-practitioner figure {
    margin-inline: auto;
}

.pl-practitioner__profile img {
    inline-size: min(100%, 20rem);
}

.pl-practitioner__review img {
    inline-size: min(100%, 20.5rem);
}

.pl-site-footer {
    background: var(--wp--preset--color--surface);
    color: var(--wp--preset--color--footer-text);
    font-size: var(--wp--preset--font-size--pl-footer-body);
    line-height: 1.5;
}

.pl-site-footer > .pl-site-footer__language {
    inline-size: 100%;
    max-inline-size: none;
    margin: 0;
    padding-block: var(--wp--preset--spacing--footer-strip);
    background: var(--wp--preset--color--footer-strip);
    color: var(--wp--preset--color--footer-text);
    font-family: var(--wp--preset--font-family--body);
    font-size: 1.1em;
    line-height: 1.8;
}

.pl-site-footer__columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--50);
    padding-block: var(--wp--preset--spacing--60);
}

.pl-site-footer__columns > div {
    min-inline-size: 0;
}

.pl-site-footer h4 {
    margin-block-start: 0;
    color: var(--wp--preset--color--footer-heading);
}

.pl-site-footer a {
    color: var(--wp--preset--color--primary);
}

.pl-site-footer__links {
    margin-inline-start: 0;
    padding: 0;
    text-align: start;
    list-style: none;
}

.pl-site-footer__links li + li {
    margin-block-start: 0.35rem;
}

.pl-site-footer__hours {
    margin: var(--wp--preset--spacing--footer-content-gap) 0 0;
    overflow: visible;
}

.pl-site-footer__hours table {
    inline-size: max-content;
    border: 0;
    border-collapse: collapse;
}

.pl-site-footer__hours td {
    padding: 0;
    border: 0;
    line-height: 1.8;
    white-space: nowrap;
}

.pl-site-footer__hours td:first-child {
    padding-inline-end: var(--wp--preset--spacing--30);
}

.pl-site-footer__hours td:last-child {
    text-align: end;
}

.pl-site-footer__bottom {
    gap: var(--wp--preset--spacing--30);
    padding-block: var(--wp--preset--spacing--30);
}

.pl-site-footer__bottom p {
    margin: 0;
}

@media (max-width: 47.9375rem) {
    .pl-site-footer {
        font-size: var(--wp--preset--font-size--pl-footer-body-mobile);
        line-height: 1.5625;
    }

    .pl-home > .wp-block-group {
        padding-inline: 1.25rem;
    }

    .pl-practitioner figure img {
        display: block;
        margin-inline: auto;
    }

    .pl-practitioner__review img {
        inline-size: min(100%, 16rem);
    }

    body .pl-site-footer .pl-site-footer__columns,
    body .pl-site-footer .pl-site-footer__bottom {
        margin-inline: auto;
        max-inline-size: calc(100% - 2.5rem);
    }
}

.pl-site-header a:focus-visible,
.pl-site-header button:focus-visible,
.pl-site-header summary:focus-visible,
.pl-home a:focus-visible,
.pl-site-footer a:focus-visible {
    outline: 3px solid var(--wp--preset--color--secondary);
    outline-offset: 3px;
}

@media (min-width: 48.875rem) {
    .pl-service-feature__layout,
    .pl-clinic__layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pl-home .pl-location__layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    }

    .pl-home .pl-booking-section__layout {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    }

    .pl-booking-section__layout > div:first-child {
        padding-inline-end: 10%;
        border-inline-end: 1px solid var(--wp--preset--color--divider);
    }


    .pl-home .pl-practitioner__layout {
        grid-template-columns: minmax(0, 40%) minmax(0, 33.3333%);
        justify-content: start;
    }

    .pl-home .pl-practitioner__profile {
        grid-row: span 2;
        text-align: start;
    }

    .pl-site-footer__columns {
        grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(0, 1fr);
    }
}

@media (min-width: 57.5rem) {
    .pl-primary-nav--desktop {
        display: block;
    }

    .pl-primary-nav--mobile {
        display: none;
    }

    .pl-primary-nav--desktop > ul {
        display: flex;
        align-items: center;
        gap: 0.7rem;
    }

    .pl-primary-nav li + li {
        margin-block-start: 0;
    }

    .pl-primary-nav__submenu {
        position: relative;
    }

    .pl-primary-nav__submenu > button {
        padding: 0.4rem 0.35rem;
        border: 0;
        background: transparent;
        color: var(--wp--preset--color--primary);
        font: inherit;
        cursor: pointer;
    }

    .pl-primary-nav__submenu > button::after {
        content: "▾";
        margin-inline-start: 0.3rem;
        font-size: 0.7em;
    }

    .pl-primary-nav--desktop .pl-primary-nav__submenu > ul {
        position: absolute;
        z-index: 10;
        inset-block-start: 100%;
        inset-inline-start: 0;
        display: none;
        inline-size: max-content;
        max-inline-size: 24rem;
        padding: var(--wp--preset--spacing--30);
        background: var(--wp--preset--color--surface-alt);
    }

    .pl-primary-nav--desktop .pl-primary-nav__submenu:hover > ul,
    .pl-primary-nav--desktop .pl-primary-nav__submenu:focus-within > ul {
        display: block;
    }
}

/* Banner cookies + bramka zgody na embedy (mapa Google, Booksy) */
.pl-cookie-bar {
    position: fixed;
    z-index: 1000;
    inset-inline: 0;
    inset-block-end: 0;
    padding: var(--wp--preset--spacing--30);
    background: var(--wp--preset--color--dark);
    color: var(--wp--preset--color--background);
    box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.25);
}

.pl-cookie-bar__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    max-inline-size: var(--wp--style--global--wide-size);
    margin-inline: auto;
    text-align: start;
}

.pl-cookie-bar__text {
    margin: 0;
    flex: 1 1 26rem;
    font-size: 0.9rem;
    line-height: 1.5;
}

.pl-cookie-bar__text a {
    color: inherit;
    text-decoration: underline;
}

.pl-cookie-bar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.pl-cookie-bar__btn {
    padding: 0.55rem 1.1rem;
    border: 1px solid var(--wp--preset--color--background);
    border-radius: var(--wp--preset--border-radius--small, 4px);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
}

.pl-cookie-bar__accept {
    background: var(--wp--preset--color--accent);
    border-color: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--background);
}

.pl-cookie-bar__accept:hover {
    background: var(--wp--preset--color--accent-hover);
    border-color: var(--wp--preset--color--accent-hover);
}

.pl-cookie-bar__reject {
    background: transparent;
    color: var(--wp--preset--color--background);
}

.pl-consent-embed {
    display: flex;
    align-items: center;
    justify-content: center;
    min-block-size: 12rem;
    block-size: 100%;
    padding: var(--wp--preset--spacing--50);
    background: var(--wp--preset--color--surface-alt);
    text-align: center;
}

.pl-page--contact .pl-consent-embed {
    block-size: 450px;
}

.pl-consent-embed__text {
    margin-block: 0 0.8rem;
}

.pl-consent-embed__btn {
    padding: 0.6rem 1.4rem;
    border: 0;
    border-radius: var(--wp--preset--border-radius--small, 4px);
    background: var(--wp--preset--color--accent);
    color: var(--wp--preset--color--background);
    font: inherit;
    font-weight: 500;
    cursor: pointer;
}

.pl-consent-embed__btn:hover {
    background: var(--wp--preset--color--accent-hover);
}

.pl-consent-embed__link {
    display: block;
    margin-block-start: 0.8rem;
    font-size: 0.85rem;
}
