/*
 * 2.17.8 — site-wide polish loaded on every page except the homepage
 * (the homepage already uses a pre-faded FAQ portrait).
 */

/* FAQ portraits fade out at the bottom instead of being cut by the section edge. */
.gnnh-course-faq__image img,
.gnnc-faq-art img,
.gnnh-oils-faq .gnnh-faq__image img,
.gnn-miodowa-faq__image img {
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 72%, rgba(0, 0, 0, 0.55) 86%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0, #000 72%, rgba(0, 0, 0, 0.55) 86%, transparent 100%);
}

/* "Inne klientki wybrały również…" on phones: one full-width card per row, like the other programmes. */
@media (max-width: 767px) {
    .gnnh-course--total .gnnh-total-related .gnnh-related-card,
    .gnnh-course--manual .gnnh-manual-related .gnnh-related-card {
        flex-basis: 100%;
        min-width: 0;
    }
}

/* Blog cards: the fixed 58px title box cut three-line titles mid-sentence and the excerpt was cut
   mid-line. Titles show in full; excerpts stop after three lines with an ellipsis. */
.gnn-post-card__title {
    height: auto;
    min-height: 58px;
    overflow: visible;
}

.gnn-post-card__excerpt {
    display: -webkit-box;
    max-height: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
}

@media (max-width: 767px) {
    .gnn-post-card__title {
        min-height: 0;
    }
}

/* Empty cart: newer WooCommerce wraps the notice in .wc-empty-cart-message, which kept it narrow
   and off-centre above the centred button. */
.woocommerce-cart .gnn-commerce-content .woocommerce > .wc-empty-cart-message {
    flex: 0 0 100%;
}

/* "Inne klientki wybrały również…": square photos (nothing cut off) and no hover effect on any programme page. */
.gnnh-course-related .gnnh-related-card img,
.gnnc-related .gnnc-related-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover;
    transition: none !important;
}

.gnnh-course-related .gnnh-related-card,
.gnnh-course-related .gnnh-related-card:hover,
.gnnh-course-related .gnnh-related-card:focus-visible,
.gnnc-related .gnnc-related-card,
.gnnc-related .gnnc-related-card:hover,
.gnnc-related .gnnc-related-card:focus-visible {
    color: #2d2525 !important;
}

.gnnh-course-related .gnnh-related-card:hover img,
.gnnh-course-related .gnnh-related-card:focus-visible img,
.gnnc-related .gnnc-related-card:hover img,
.gnnc-related .gnnc-related-card:focus-visible img {
    box-shadow: none !important;
    transform: none !important;
}

.gnnh-course-related .gnnh-related-card:hover strong,
.gnnh-course-related .gnnh-related-card:focus-visible strong,
.gnnc-related .gnnc-related-card:hover strong,
.gnnc-related .gnnc-related-card:focus-visible strong {
    color: inherit !important;
}

/* Manualny BOTOKS gifts: the portrait bleeds 36px left, which ran 4px past the screen edge on laptops. */
@media (min-width: 1101px) and (max-width: 1440px) {
    .gnnc-gifts .gnnc-two-col .gnnc-gifts-person {
        margin-left: -24px;
    }
}

/* Manualny BOTOKS "Co sprawia…": the designed line break left a lone "ma" in narrower columns. */
.gnnc-unique h2 {
    text-wrap: balance;
}

@media (max-width: 1560px) {
    .gnnc-unique h2 br {
        display: none;
    }
}

/* /programy/ on small laptops: "Zobacz plan przemiany" stays on one line. */
@media (max-width: 1200px) {
    .gnnh-program-row .gnnh-program-row__action {
        flex-basis: 250px;
    }

    .gnnh-program-row .gnnh-program-row__action .gnnh-button {
        padding-inline: 20px;
        white-space: nowrap;
    }
}

/*
 * FAQ sections: the last question must never sit on the section edge. Lifting spojrzenia had 0px
 * at every width, Bankietowy / Manualny BOTOKS had 0px on phones.
 */
.gnnh-course--eye .gnnh-course-faq .gnnh-faq__content {
    padding-bottom: 72px;
}

@media (max-width: 767px) {
    .gnnh-course--eye .gnnh-course-faq .gnnh-faq__content {
        padding-bottom: 48px;
    }

    section.gnnc-faq .gnnc-two-col .gnnh-faq__content {
        padding-bottom: 48px;
    }
}

/* O mnie, expertise strip: the designed round line icons (assets/about-v2180) instead of drawn SVGs. */
.gnnh-about-page .gnnh-about-expertise__item .gnnh-about-expertise__icon {
    display: block;
    width: 54px;
    height: auto;
    margin: 0 auto 14px;
}

@media (max-width: 767px) {
    .gnnh-about-page .gnnh-about-expertise__item .gnnh-about-expertise__icon {
        width: 48px;
        margin-bottom: 10px;
    }

    /* All five areas are shown; the fifth sits centred under the 2x2 grid. */
    .gnnh-about-page .gnnh-about-expertise__list .gnnh-about-expertise__item:nth-child(5) {
        display: flex;
        flex-basis: 100%;
    }
}

/* /newsletter/ (The Newsletter Plugin page): hero + the site's newsletter card, or the plugin's message. */
.gnn-newsletter-page {
    background: #fff8f2;
    color: var(--gnn-text, #2d2525);
}

.gnn-newsletter-page__hero {
    padding: 22px 0 10px;
}

.gnn-newsletter-page__hero h1 {
    margin: 26px 0 12px;
    color: #111111;
    font-size: 50px;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.gnn-newsletter-page__hero p {
    max-width: 640px;
    margin: 0;
    color: #4d4744;
    font-size: 17px;
    line-height: 1.55;
}

.gnn-newsletter-page__message-section {
    padding: 40px 0 90px;
}

.gnn-newsletter-page__message {
    max-width: 720px;
    padding: 40px;
    border: 1px solid rgba(86, 151, 136, 0.3);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(45, 37, 37, 0.07);
    color: #2d2525;
    font-size: 17px;
    line-height: 1.6;
}

.gnn-newsletter-page__message p {
    margin: 0 0 16px;
}

.gnn-newsletter-page__message .gnnh-button {
    margin-top: 10px;
}

@media (max-width: 767px) {
    .gnn-newsletter-page__hero h1 {
        margin-top: 18px;
        font-size: 34px;
    }

    .gnn-newsletter-page__hero p {
        font-size: 15px;
    }

    .gnn-newsletter-page__message {
        padding: 26px 20px;
        font-size: 15px;
    }
}

/* Moje konto (logged out): one centred login card instead of the heading squeezed beside a narrow form. */
body.woocommerce-account:not(.logged-in) .gnn-prose > .woocommerce {
    display: block;
    width: 100%;
    max-width: 520px;
    margin: 10px auto 0;
}

body.woocommerce-account:not(.logged-in) .gnn-prose > .woocommerce > h2 {
    margin: 0 0 16px;
    color: #111111;
    font-size: 28px;
    text-align: center;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login {
    margin: 0;
    padding: 32px;
    border: 1px solid rgba(86, 151, 136, 0.3);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(45, 37, 37, 0.07);
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row {
    width: 100%;
    margin: 0 0 16px;
    padding: 0;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login label {
    display: block;
    margin-bottom: 6px;
    color: #2d2525;
    font-size: 14px;
    font-weight: 600;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login input.input-text {
    width: 100%;
    min-height: 52px;
    padding: 12px 20px;
    border: 1px solid rgba(86, 151, 136, 0.45);
    border-radius: 999px;
    background: #fffdfb;
    font-size: 16px;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login input.input-text:focus {
    border-color: var(--gnn-a11y-sage, #498074);
    outline: none;
    box-shadow: 0 0 0 4px rgba(86, 151, 136, 0.14);
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    font-weight: 500;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__submit,
body.woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"] {
    display: block;
    width: 100%;
    min-height: 52px;
    margin: 0;
    border: 0;
    border-radius: 999px;
    background: var(--gnn-a11y-sage, #498074);
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    white-space: nowrap;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .lost_password {
    margin: 14px 0 0;
    text-align: center;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .lost_password a {
    color: var(--gnn-a11y-sage-hover, #3d7065);
    font-weight: 600;
}

@media (max-width: 767px) {
    body.woocommerce-account:not(.logged-in) .woocommerce-form-login {
        padding: 24px 18px;
    }
}

.gnn-newsletter-page .gnnh-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 9px;
    color: #77706e;
    font-size: 12px;
}

.gnn-newsletter-page .gnnh-breadcrumbs a {
    color: #77706e;
}

.gnn-newsletter-page .gnnh-breadcrumbs strong {
    color: var(--gnn-a11y-sage-text, #467a6e);
    font-weight: 500;
}

/*
 * FAQ cards match the homepage everywhere: 13px corners, flat when closed, the homepage's soft
 * green shadow only on the open question. Bankietowy / BOTOKS had a shadow on every card and
 * 14px corners, Totalna Odnowa 12px corners and no open shadow, Kobiecy Weekend a 52px arrow.
 */
main .gnnc-faq .gnnh-accordion .gnnh-accordion__item,
main.gnnh-course--total .gnnh-total-faq .gnnh-accordion .gnnh-accordion__item,
main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__item {
    border-radius: 13px;
    box-shadow: none;
}

main .gnnc-faq .gnnh-accordion .gnnh-accordion__item.is-open,
main.gnnh-course--total .gnnh-total-faq .gnnh-accordion .gnnh-accordion__item.is-open,
main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__item.is-open {
    box-shadow: 0 14px 32px rgba(65, 119, 107, 0.13);
}

main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__icon {
    width: 44px;
    height: 44px;
}

main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__item > button {
    min-height: 64px;
}

@media (max-width: 600px) {
    main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__icon {
        width: 40px;
        height: 40px;
    }

    main .gnn-miodowa-faq .gnnh-accordion .gnnh-accordion__item > button {
        min-height: 58px;
    }
}
