/* Contact + Our Stores: content-sized main + footer margin-top:auto (cart parity) */
html:has(main.contact-page),
html:has(main.our-store-page) {
    overflow-x: clip;
}

body#kt_body.header-body-root:has(main.contact-page),
body#kt_body.header-body-root:has(main.our-store-page) {
    height: auto;
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overscroll-behavior-y: none;
    overflow-x: clip;
}

.d-flex.flex-column.flex-root:has(main.contact-page),
.d-flex.flex-column.flex-root:has(main.our-store-page) {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: 100%;
}

#kt_wrapper:has(main.contact-page),
#kt_wrapper:has(main.our-store-page) {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: 100%;
}

#kt_wrapper:has(main.contact-page) #kt_footer,
#kt_wrapper:has(main.our-store-page) #kt_footer {
    margin-top: auto;
    flex-shrink: 0;
}

/* Shared: Layout Primitives */
:is(
    .product-box-container,
    .product-detail-box-container,
    .news-box-container,
    .philosophy-page-box-container
) {
    max-width: var(--site-max-width, 1440px);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: max(var(--site-px, 0px), env(safe-area-inset-left, 0px));
    padding-right: max(var(--site-px, 0px), env(safe-area-inset-right, 0px));
}

/* Shared: CTA Rail Links */
:is(.view-all, .read-more-link) {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 170px;
    border-bottom: 1px solid currentColor;
    padding: 0 0 6px;
    line-height: 1;
}

:is(.view-all-arrow, .read-more-arrow) {
    margin-left: auto;
    padding-left: 16px;
    display: inline-flex;
    align-items: center;
}
