/* Shared page structure: semantic headings and compact mobile rhythm. */

/* Keep newsletter controls at WCAG AA contrast regardless of Porto defaults. */
.block.newsletter .action.subscribe,
.block.newsletter .action.subscribe:hover,
.block.newsletter .action.subscribe:focus,
.block.newsletter .action.subscribe span {
    border-color: #003f86 !important;
    background: #003f86 !important;
    color: #fff !important;
}

/* The newsletter block is relocated into the footer on some responsive
 * layouts, so keep the actual submit control covered by the contrast rule. */
button.action.subscribe.primary,
button.action.subscribe.primary:hover,
button.action.subscribe.primary:focus,
button.action.subscribe.primary span {
    border-color: #003f86 !important;
    background: #003f86 !important;
    color: #fff !important;
}

/* Give carousel pagination a 44px touch area without enlarging its visual dot. */
.cms-index-index #tile_by_color .owl-dots .owl-dot {
    box-sizing: border-box;
    min-width: 44px;
    min-height: 44px;
    margin: 0 1px;
}
.catalog-category-view .category-description {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 12px 0 10px;
    padding: 18px 22px;
    border: 1px solid #d9e8ef;
    border-radius: 12px;
    background: #f4fbfd;
    color: #273b45;
    font-size: 15px;
    line-height: 1.55;
}

.catalog-category-view .category-description h2 {
    margin: 0 0 8px;
    color: #073c61;
    font-size: 24px;
    line-height: 1.25;
}

.catalog-category-view .category-description p {
    margin: 0 0 10px;
}

.catalog-category-view .category-description p:last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .catalog-category-view .category-description {
        margin-top: 10px;
        padding: 14px 15px;
        border-radius: 10px;
        font-size: 14px;
        line-height: 1.5;
    }

    .catalog-category-view .category-description h2 {
        margin-bottom: 7px;
        font-size: 20px;
    }
}

.cms-tile-life-home .ttl-home-primary-title {
    color: #fff;
    font-size: clamp(2.25rem, 4.4vw, 3.25rem) !important;
    font-weight: 700;
    line-height: 1.05;
}

@media (max-width: 767px) {
    body.catalog-category-view .page-main,
    body.cms-page-view .page-main,
    body.customer-account-login .page-main,
    body.customer-account-create .page-main,
    body.checkout-cart-index .page-main {
        box-sizing: border-box;
        padding-right: 12px;
        padding-left: 12px;
    }

    body.catalog-category-view .columns .column.main,
    body.cms-page-view .columns .column.main,
    body.customer-account-login .columns .column.main,
    body.customer-account-create .columns .column.main,
    body.checkout-cart-index .columns .column.main {
        min-width: 0;
        padding-right: 0;
        padding-left: 0;
    }

    body:not(.catalog-product-view) .page-main > .page-title-wrapper {
        margin-top: 14px;
        margin-bottom: 14px;
    }

    body:not(.catalog-product-view) .page-main > .page-title-wrapper .page-title {
        margin-bottom: 0;
        font-size: clamp(26px, 8vw, 31px);
        line-height: 1.15;
    }

    body.catalog-category-view .category-image,
    body.catalog-category-view .category-description {
        margin-bottom: 12px;
    }

    body.cms-page-view .column.main > [data-content-type="row"],
    body.cms-page-view .column.main > [data-content-type="html"] {
        max-width: 100%;
    }

    body.blog-page.blog-page-list .page-main {
        padding-right: 0;
        padding-left: 0;
    }

    .customer-account-login .page-main-inner,
    .customer-account-create .page-main-inner,
    .contact-index-index .page-main-inner,
    .checkout-cart-index .page-main-inner,
    .categorypath-about-us .page-main-inner,
    .cms-frequently-asked-questions .page-main-inner,
    .customer-account-login .page-title-wrapper,
    .customer-account-create .page-title-wrapper,
    .contact-index-index .page-title-wrapper,
    .checkout-cart-index .page-title-wrapper,
    .categorypath-about-us .page-title-wrapper,
    .categorypath-about-us .category-cms {
        width: min(calc(100% - 24px), 1180px);
    }

    .customer-account-login .page-title-wrapper,
    .customer-account-create .page-title-wrapper,
    .contact-index-index .page-title-wrapper,
    .checkout-cart-index .page-title-wrapper,
    .categorypath-about-us .page-title-wrapper {
        margin-top: 14px;
    }

    .customer-account-login .page-main-inner,
    .customer-account-create .page-main-inner,
    .contact-index-index .page-main-inner,
    .checkout-cart-index .page-main-inner {
        padding-top: 16px;
        padding-bottom: 28px;
    }

    .cms-tile-life-home .ttl-home-primary-title {
        font-size: clamp(1.9rem, 8.5vw, 2.7rem) !important;
    }
}
