/* Shared storefront container. Homepage sections manage their own full-width backgrounds. */
/* Imported Page Builder descriptions contain their own horizontal insets. */
.langs-theme.catalog-category-view .category-description,
.langs-theme.catalog-category-view .category-description [data-content-type="row"],
.langs-theme.catalog-category-view .category-description [data-content-type="row"] > [data-element="inner"],
.langs-theme.catalog-category-view .category-description [data-content-type="text"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.langs-theme:not(.cms-index-index) .page-main { padding-top: 32px; }
.langs-theme:not(.cms-index-index) .breadcrumbs { padding-top: 24px; margin-bottom: 24px; }
.langs-theme:not(.cms-index-index) .breadcrumbs ~ .page-main { padding-top: 0; }
@media (max-width: 767px) {
    .langs-theme:not(.cms-index-index) .page-main { padding-top: 24px; }
    .langs-theme:not(.cms-index-index) .breadcrumbs { padding-top: 16px; margin-bottom: 20px; }
    .langs-theme:not(.cms-index-index) .breadcrumbs ~ .page-main { padding-top: 0; }
}
.langs-theme:not(.cms-index-index) .page-main,
.langs-theme:not(.cms-index-index) .breadcrumbs {
    box-sizing: border-box;
    width: 100%;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 80px;
    padding-right: 80px;
}
.langs-theme:not(.cms-index-index) .page-main .astra-info-page {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}
@media (max-width: 1180px) {
    .langs-theme:not(.cms-index-index) .page-main,
    .langs-theme:not(.cms-index-index) .breadcrumbs {
        padding-left: 42px;
        padding-right: 42px;
    }
}
@media (max-width: 767px) {
    .langs-theme:not(.cms-index-index) .page-main,
    .langs-theme:not(.cms-index-index) .breadcrumbs {
        padding-left: 20px;
        padding-right: 20px;
    }
}


/* Keep registration actions clear of the footer wave, including reCAPTCHA. */
.langs-theme.customer-account-create .page-main {
    padding-bottom: 64px;
}
@media (max-width: 767px) {
    .langs-theme.customer-account-create .page-main {
        padding-bottom: 48px;
    }
}
/* Mobile account and cart controls between the logo and menu. */
.langs-header .langs-header__mobile-icon { display: none; }
@media (max-width: 1024px) {
    .langs-header .langs-header__main { grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; }
    .langs-header .langs-header__actions { display: flex; grid-column: 3; grid-row: 1; gap: 4px; }
    .langs-header .langs-header__toggle { grid-column: 4; }
    .langs-header .langs-header__register,
    .langs-header .langs-header__divider,
    .langs-header .langs-header__logout,
    .langs-header .langs-header__cart-icon { display: none !important; }
    .langs-header .langs-header__account,
    .langs-header .langs-header__cart { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; border-radius: 50%; color: #526b67 !important; position: relative; }
    .langs-header .langs-header__account:hover,
    .langs-header .langs-header__cart:hover { background: #f1f4f2; }
    .langs-header .langs-header__account:focus-visible,
    .langs-header .langs-header__cart:focus-visible { outline: 2px solid #508783; outline-offset: 2px; }
    .langs-header .langs-header__mobile-icon { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .langs-header [data-langs-account-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}
@media (max-width: 767px) {
    .langs-header .langs-header__main { grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
    .langs-header .langs-header__actions { grid-column: 2; }
    .langs-header .langs-header__toggle { grid-column: 3; }
    .langs-header .langs-header__brand img { max-width: 100%; height: auto; max-height: 46px; }
}

/* Replace the mobile sign-in control with sign-out for authenticated customers. */
@media (max-width: 1024px) {
    .langs-header.is-customer-signed-in .langs-header__account { display: none; }
    .langs-header.is-customer-signed-in .langs-header__logout { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; border-radius: 50%; color: #526b67; position: relative; order: 1; }
    .langs-header .langs-header__account { order: 1; }
    .langs-header .langs-header__cart { order: 2; }
    .langs-header .langs-header__logout:hover { background: #f1f4f2; }
    .langs-header .langs-header__logout:focus-visible { outline: 2px solid #508783; outline-offset: 2px; }
    .langs-header .langs-header__logout-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
}

/* Keep the mobile account menu in normal flow below the store header. */
.langs-account-continue { margin: 0 0 20px; }
.langs-account-continue a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #508783; font-weight: 600; text-decoration: none; }
.langs-account-continue a:hover { text-decoration: underline; }
.langs-account-continue svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 767px) {
 .langs-theme.account .page-main { padding-top: 20px; }
 .langs-theme.account .columns { display: flex; flex-direction: column; padding-top: 0; }
 .langs-theme.account .columns > .sidebar-main { order: -1; width: 100%; padding: 0; margin: 0 0 24px; }
 .langs-theme.account .sidebar-main .block-collapsible-nav { position: static; top: auto; left: auto; width: 100%; margin: 0; }
}

/* Appointment page: keep the mobile introduction compact above the form. */
@media (max-width: 767px) {
 .langs-theme.cms-book-an-appointment .page-main,
 .langs-theme.cms-book-an-appointment .breadcrumbs ~ .page-main { padding-top: 24px; }
 .cms-book-an-appointment .pagebuilder-column[data-pb-style="NWGPOQL"] { display: none !important; }
}
