/* Show content immediately even if cached Elementor markup still has entrance classes. */
#content .elementor-element:is(.animated, .elementor-invisible),
#content .elementor-element[data-settings*='"_animation"'] {
    animation: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* Furniture: the icon track must match its visible width at every breakpoint. */
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-card {
    --pprl-furniture-icon-size: 56px;
    grid-template-columns: var(--pprl-furniture-icon-size) minmax(0, 1fr) !important;
    column-gap: 16px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-card > .ppc-furniture-icon {
    width: var(--pprl-furniture-icon-size) !important;
    height: var(--pprl-furniture-icon-size) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-card > .ppc-furniture-icon svg {
    width: 70% !important;
    height: 70% !important;
    max-width: 100% !important;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-content,
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-content > strong,
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-content > .ppc-starting-price {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-content > .ppc-starting-price {
    display: block !important;
    margin-top: 6px !important;
    letter-spacing: normal !important;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-starting-price > [data-ppc-unit-price] {
    display: inline !important;
    margin: 0 !important;
    font: inherit !important;
    white-space: normal !important;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-card-line-total {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 12px !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
#content #pp-canape-wizard#pp-canape-wizard .ppc-card-line-total[hidden] { display: none !important; }
#content #pp-canape-wizard#pp-canape-wizard .ppc-card-line-total > * {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}

/* Only mobile and narrow screens: one outside gutter instead of nested gutters. */
@media (max-width: 1023.98px) {
    #content {
        --pprl-mobile-gutter: 12px;
        min-width: 0;
        padding-inline: 0 !important;
    }
    #content:not(:has(.elementor)) {
        width: 100% !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
        padding-inline: var(--pprl-mobile-gutter) !important;
        box-sizing: border-box;
    }
    #content .pp-contact {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 0 !important;
        box-sizing: border-box;
    }
    #content > .page-content,
    #content > .page-content > .elementor {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
        box-sizing: border-box;
    }
    #content .elementor > .e-con {
        --container-max-width: 100%;
        --content-width: 100%;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
        padding-inline: var(--pprl-mobile-gutter) !important;
        box-sizing: border-box;
    }
    #content .elementor .e-con,
    #content .elementor .e-con-inner,
    #content .elementor .elementor-widget {
        min-width: 0 !important;
        max-width: 100%;
        box-sizing: border-box;
    }
    #content .elementor .e-con > .e-con-inner {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 0 !important;
    }
    /* Undecorated calculator holders need their final width on first paint.
       The JS classifier applies the same padding later; waiting for it caused
       the address card to jump. Containers with configured decoration are
       excluded and keep their existing padding/overlay treatment. */
    #content .elementor .e-con:not([data-settings]):has(> .elementor-widget-shortcode .ppsc-module-root) {
        padding-inline: 0 !important;
        margin-inline: 0 !important;
    }
    #content .elementor .e-con .e-con.pprl-layout-shell,
    #content .elementor .e-con .e-con.pprl-benefits-photo {
        padding-inline: 0 !important;
        margin-inline: 0 !important;
    }
    #content .elementor .elementor-widget-shortcode {
        --container-widget-width: 100%;
        width: 100% !important;
        max-width: 100% !important;
    }
    #content :is(h1, h2, h3, h4, h5, h6, p, .elementor-button-text) {
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: normal;
    }
    #content :is(.ppsc-module-root, .ppbc-calendar, .ppbc-account-page, .pp-cart, .pp-blog-shell) {
        min-width: 0 !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
        box-sizing: border-box;
    }
    #content .pp-blog-shell { width: 100% !important; padding-inline: 0 !important; }
    /* Home-page text panels below the brands slider: one outer gutter, then
       modest readable padding inside each real panel and nested card. */
    #content :is(.pp-auto-seo, .pp-textile-services) {
        width: 100% !important;
        max-width: 100% !important;
        padding-inline: 0 !important;
        box-sizing: border-box;
    }
    #content :is(.pp-auto-seo__inner, .pp-textile-services__inner) {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
        padding-inline: 12px !important;
        box-sizing: border-box;
    }
    #content :is(.pp-textile-services__card, .pp-textile-services__info) {
        min-width: 0 !important;
        max-width: 100% !important;
        padding-inline: 14px !important;
        box-sizing: border-box;
    }
    #content :is(.pp-textile-services__heading, .pp-textile-services__grid, .pp-textile-services__info > div) {
        min-width: 0 !important;
        max-width: 100% !important;
    }
    #content .pp-textile-services__link {
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    #content #pp-canape-wizard#pp-canape-wizard .ppc-furniture-card {
        --pprl-furniture-icon-size: 48px;
        column-gap: 14px !important;
    }

    /* Preserve the original gray overlays and stacked icon cards. Hide only the nested photo. */
    #content .elementor > .e-con.pprl-benefits-layout { padding-inline: 0 !important; }
    #content .pprl-benefits-photo {
        padding-block: 0 !important;
        min-height: 0 !important;
    }
    #content .elementor-background-slideshow,
    #content .elementor-background-video-container {
        display: none !important;
    }
    #content .pprl-background-media {
        background-image: var(--pprl-background-without-media, none) !important;
    }
    #content .pprl-before-media::before {
        background-image: var(--pprl-before-without-media, none) !important;
    }
    #content .pprl-after-media::after {
        background-image: var(--pprl-after-without-media, none) !important;
    }
    #content .pprl-benefits-layout .elementor-widget-icon-box {
        width: 100% !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
    }
}

/* Readable brand colours for active progress markers and FAQ question states. */
#content .ppsc-module-root :is(.ppc-progress-step,.ppt-progress-step,.ppa-progress-step,.pp-progress-step):is(.active,.completed) :is(.ppc-progress-number,.ppt-progress-number,.ppa-progress-number,.pp-progress-number) {
    background: #115e59 !important;
    color: #ffffff !important;
}
#content .e-n-accordion .e-n-accordion-item-title {
    --n-accordion-title-normal-color: #0f766e;
    --n-accordion-title-hover-color: #115e59;
    --n-accordion-title-active-color: #854d0e;
    color: #0f766e;
}
#content .e-n-accordion .e-n-accordion-item-title:hover,
#content .e-n-accordion .e-n-accordion-item-title:focus-visible { color: #115e59; }
#content .e-n-accordion details[open] > .e-n-accordion-item-title { color: #854d0e; }
#content .e-n-accordion .e-n-accordion-item-title:focus-visible { outline: 3px solid #0f766e; outline-offset: 3px; }

/* Service divider headings sit on the light page surface: use the existing dark brand tone. */
body:is(.home,.page-id-2218,.page-id-2499,.page-id-2533,.page-id-3381,.page-id-3781,.page-id-3783) .elementor-widget-divider .elementor-divider__text{color:var(--pp-color-primary,#0f766e)!important}

/* Small labels and dates need text contrast, not the lighter decorative accent. */
.home :is(.pp-auto-seo__label,.pp-auto-seo a,.pp-textile-services a){color:var(--pp-color-primary,#0f766e)!important}
.pp-blog-card__date{color:#586a72}
