.shop-products-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.shop-home { padding-bottom: 56px; }
.shop-grid-intro { max-width: 860px; margin: -1rem auto 2rem; text-align: center; }
.shop-home-hero { padding: clamp(2rem, 5vw, 4rem) 0 1rem; }
.shop-home-hero-inner { padding: clamp(1.5rem, 4vw, 3rem); background: linear-gradient(125deg, #f2f7fc, #fff); border: 1px solid #e5e9ef; border-radius: 1.25rem; }
.shop-home-hero h1 { max-width: 850px; margin: .35rem 0 .75rem; color: #102846; font-size: clamp(2rem, 4vw, 3.25rem); }
.shop-home-hero p { max-width: 760px; margin-bottom: 1.25rem; color: #626d7c; }
.shop-eyebrow { margin: 0; color: #336799; font-size: .78rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.shop-search-form { display: flex; gap: .65rem; max-width: 680px; margin: 1.5rem 0 2rem; }
.shop-search-form .form-control { min-width: 0; min-height: 48px; flex: 1 1 auto; }
.shop-search-form .form-select { min-width: 0; min-height: 48px; flex: 0 1 165px; }
.shop-search-form .btn-main { flex: 0 0 auto; border: 0; }
.shop-category-links { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0 2rem; }
.shop-category-chip { display: inline-flex; align-items: center; min-height: 42px; padding: .5rem .9rem; color: #214e78; background: #f3f7fb; border: 1px solid #dfe8f1; border-radius: 999px; font-weight: 650; }
.shop-category-chip:hover, .shop-category-chip:focus-visible { color: #fff; background: #245b89; border-color: #245b89; }
.shop-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.75rem 0 1rem; }
.shop-list-heading h2 { margin: 0; color: #102846; font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.shop-home > .container { container-name: shop-catalog; container-type: inline-size; }
.shop-detail > .container { container-name: shop-catalog; container-type: inline-size; }
.shop-products-grid { display: grid; min-width: 0; max-width: 100%; grid-template-columns: minmax(min(100%, 16.25rem), 1fr); gap: 1.25rem; }
@container shop-catalog (min-width: 33.75rem) { .shop-products-grid { grid-template-columns: repeat(2, minmax(16.25rem, 1fr)); } }
@container shop-catalog (min-width: 51.25rem) { .shop-products-grid { grid-template-columns: repeat(3, minmax(16.25rem, 1fr)); } }
@container shop-catalog (min-width: 68.75rem) { .shop-products-grid { grid-template-columns: repeat(4, minmax(16.25rem, 1fr)); } }
.shop-product-card { display: flex; flex-direction: column; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; overflow: hidden; height: 100%; background: #fff; border: 1px solid #e5e9ef; border-radius: .85rem; box-shadow: 0 5px 18px rgba(26, 43, 72, .07); transition: transform .18s ease, box-shadow .18s ease, outline-color .18s ease; }
.shop-product-card:hover, .shop-product-card:focus-within { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(26, 43, 72, .12); }
.shop-product-card:focus-within { outline: 3px solid rgba(36, 91, 137, .45); outline-offset: 2px; }
.shop-product-card-image { flex: 0 0 12.25rem; height: 12.25rem; display: grid; place-items: center; overflow: hidden; padding: .75rem; background: #f6f8fb; }
.shop-product-card-image img { width: auto; height: auto; max-width: min(100%, 12rem); max-height: 8.75rem; object-fit: contain; }
.shop-product-image-placeholder { color: #98a2b3; font-size: 2rem; }
.shop-product-card-body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 1rem 1.05rem 1.1rem; }
.shop-product-card h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; min-width: 0; max-width: 100%; min-height: 2.65em; max-height: 2.65em; overflow: hidden; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.32; margin: 0 0 .5rem; }
.shop-product-card h3 a { color: inherit; text-decoration: none; }
.shop-product-card h3 a:hover { color: #245b89; }
.shop-product-card-description { min-width: 0; max-width: 100%; min-height: 4.5em; max-height: 4.5em; overflow: hidden; overflow-wrap: anywhere; color: #626d7c; font-size: .86rem; line-height: 1.45; margin: 0 0 .75rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.shop-product-card-meta { display: grid; gap: .35rem; margin: auto 0 .65rem; padding: .65rem 0; border-top: 1px solid #e7ebf0; border-bottom: 1px solid #e7ebf0; }
.shop-product-card-meta > div { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; min-width: 0; }
.shop-product-card-meta dt, .shop-product-card-meta dd { margin: 0; font-size: .78rem; line-height: 1.35; }
.shop-product-card-meta dt { flex: 0 0 auto; color: #6c7788; }
.shop-product-card-meta dd { min-width: 0; color: #27384f; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.shop-card-stock { display: inline-flex; align-items: center; gap: .35rem; }
.shop-card-stock::before { content: ""; display: inline-block; flex: 0 0 .45rem; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.shop-card-stock.is-in-stock { color: #356747; }
.shop-card-stock.is-few-left { color: #8b5c17; }
.shop-card-stock.is-order-item { color: #52677f; }
.shop-card-stock.is-out-of-stock, .shop-card-stock.is-unknown { color: #795c5c; }
.shop-product-card-price-row { display: flex; justify-content: flex-end; align-items: end; gap: .5rem; margin-top: 0; padding-top: .65rem; border-top: 1px solid #e7ebf0; }
.shop-product-card-price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-end; gap: .2rem .5rem; text-align: right; }
.shop-product-card-price strong { color: #245b89; font-size: 1.15rem; line-height: 1.25; font-weight: 750; }
.shop-product-card-price del { color: #788294; font-size: .78rem; }
.shop-grid-empty { padding: 2rem; text-align: center; color: #6c7788; border: 1px dashed #d4dae3; border-radius: .85rem; }
.shop-breadcrumbs { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: 1rem 0; color: #667085; font-size: .92rem; }
.shop-breadcrumbs a { color: #2457a7; text-decoration: none; }
.shop-category-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.25rem 0 1.5rem; }
.shop-category-copy { min-width: 0; max-width: 760px; }
.shop-category-copy h1 { margin: .3rem 0 .55rem; color: #102846; }
.shop-category-copy > p:not(.shop-eyebrow) { margin: 0; color: #626d7c; }
.shop-category-image { flex: 0 0 96px; display: grid; place-items: center; width: 96px; height: 96px; padding: .55rem; background: #f6f8fb; border: 1px solid #e5e9ef; border-radius: .8rem; }
.shop-category-image img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.shop-detail { padding: 0 0 4rem; }
.shop-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); align-items: start; gap: clamp(1.5rem, 4vw, 3rem); }
.shop-detail-main-image { display: grid; place-items: center; width: 100%; min-width: 0; min-height: 21rem; padding: 1.25rem; color: inherit; font: inherit; text-align: center; cursor: zoom-in; background: #f6f8fb; border: 1px solid #e5e9ef; border-radius: 1rem; }
.shop-detail-main-image img { width: auto; height: auto; max-width: min(100%, 520px); max-height: 23rem; object-fit: contain; }
.shop-detail-thumbnails { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .75rem; }
.shop-detail-thumbnails button { display: grid; place-items: center; width: 76px; height: 68px; padding: .25rem; color: inherit; cursor: zoom-in; background: #f6f8fb; border: 1px solid #e5e9ef; border-radius: .55rem; }
.shop-detail-main-image:focus-visible, .shop-detail-thumbnails button:focus-visible { outline: 3px solid #245b89; outline-offset: 2px; }
.shop-detail-thumbnails img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.shop-product-lightbox { display: none; position: fixed; inset: 0; width: min(92vw, 1280px); height: min(88vh, 840px); height: min(88dvh, 840px); max-width: none; max-height: none; margin: auto; padding: 1rem clamp(1rem, 2.2vw, 2rem) .8rem; overflow: hidden; box-sizing: border-box; color: #26374c; background: #fff; border: 1px solid #dbe2ea; border-radius: 1rem; box-shadow: 0 1.5rem 5rem rgba(16, 24, 40, .22); grid-template-rows: auto minmax(0, 1fr) auto; gap: .35rem; }
.shop-product-lightbox[open] { display: grid; }
.shop-product-lightbox::backdrop { background: rgba(16, 24, 40, .66); }
.shop-product-lightbox-header { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 1rem; }
.shop-product-lightbox-header h2 { min-width: 0; margin: 0; color: #183552; font-size: clamp(1rem, 1.6vw, 1.35rem); line-height: 1.35; font-weight: 700; overflow-wrap: anywhere; }
.shop-product-lightbox-close { display: grid; flex: 0 0 40px; place-items: center; width: 40px; height: 40px; padding: 0; color: #536273; font-size: 1.2rem; font-weight: 700; -webkit-text-stroke: 1px currentColor; line-height: 1; cursor: pointer; background: transparent; border: 0; border-radius: 50%; transform: translate(calc(clamp(1rem, 2.2vw, 2rem) - .65rem), -.45rem); transition: color .16s ease, background-color .16s ease; }
.shop-product-lightbox-close:hover { color: #173f67; background: #f0f4f8; }
.shop-product-lightbox-close:focus-visible { color: #173f67; background: #f0f4f8; outline: 2px solid #245b89; outline-offset: 2px; }
.shop-product-lightbox .shop-product-lightbox-stage { position: relative; inset: auto; display: grid; min-width: 0; min-height: 0; grid-template-columns: minmax(3.25rem, 1fr) minmax(0, 6fr) minmax(3.25rem, 1fr); grid-template-rows: minmax(0, 1fr); align-items: center; justify-items: center; gap: clamp(.35rem, 1vw, .9rem); padding: 0 .25rem; cursor: default; }
.shop-product-lightbox-stage img { display: block; grid-column: 2; grid-row: 1; width: 100%; height: 100%; max-width: 90%; max-height: 86%; object-fit: contain; }
.shop-product-lightbox-nav { position: static; z-index: 1; display: grid; grid-row: 1; place-items: center; width: 44px; height: 44px; padding: 0; color: #364b61; font-size: 1rem; line-height: 1; cursor: pointer; background: rgba(255, 255, 255, .96); border: 1px solid #d9e1e9; border-radius: 50%; box-shadow: 0 3px 14px rgba(25, 45, 66, .12); transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease; }
.shop-product-lightbox-nav--previous { grid-column: 1; }
.shop-product-lightbox-nav--next { grid-column: 3; }
.shop-product-lightbox-nav:hover, .shop-product-lightbox-nav:focus-visible { color: #fff; background: #245b89; border-color: #245b89; outline: 2px solid #245b89; outline-offset: 2px; box-shadow: 0 4px 16px rgba(25, 65, 105, .25); }
.shop-product-lightbox-thumbnails { display: flex; min-width: 0; min-height: 72px; max-width: 100%; justify-content: center; gap: .55rem; overflow-x: auto; padding: .55rem .2rem .2rem; scrollbar-width: thin; }
.shop-product-lightbox-thumbnails[hidden] { display: none; }
.shop-product-lightbox-thumbnail { display: grid; flex: 0 0 68px; place-items: center; width: 68px; height: 58px; padding: .2rem; overflow: hidden; cursor: pointer; background: #f7f9fb; border: 1px solid #d9e1e9; border-radius: .55rem; transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease; }
.shop-product-lightbox-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.shop-product-lightbox-thumbnail:hover { background: #f0f5fb; border-color: #8da8c2; }
.shop-product-lightbox-thumbnail.is-active, .shop-product-lightbox-thumbnail[aria-pressed="true"] { background: #fff; border: 2px solid #245b89; box-shadow: 0 0 0 2px rgba(36, 91, 137, .14); }
.shop-product-lightbox-thumbnail:focus-visible { outline: 2px solid #245b89; outline-offset: 2px; }
.shop-detail h1 { margin: 0 0 .75rem; color: #102846; font-size: clamp(1.8rem, 2.8vw, 2.5rem); line-height: 1.16; }
.shop-product-details > .lead { color: #5b6676; font-size: 1.05rem; line-height: 1.55; }
.shop-product-long-description { margin: 1rem 0 .25rem; color: #344256; line-height: 1.65; overflow-wrap: anywhere; }
.shop-product-long-description > :first-child { margin-top: 0; }
.shop-product-long-description > :last-child { margin-bottom: 0; }
.shop-detail-price { display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap; margin: 1.15rem 0; }
.shop-detail-price strong { font-size: clamp(1.8rem, 3vw, 2.15rem); line-height: 1.2; color: #245b89; }
.shop-detail-price del { color: #788294; font-size: .95rem; }
.shop-product-detail-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .65rem; margin: 1rem 0 0; padding: 0; }
.shop-product-detail-meta > div { display: grid; align-content: start; gap: .38rem; min-width: 0; padding: .85rem .95rem; background: #f7f9fb; border: 1px solid #e3e9f0; border-radius: .75rem; }
.shop-product-detail-meta dt, .shop-product-detail-meta dd { margin: 0; font-size: .92rem; line-height: 1.45; }
.shop-product-detail-meta dt { color: #687385; font-weight: 600; }
.shop-product-detail-meta dd { min-width: 0; color: #26374c; font-weight: 700; overflow-wrap: anywhere; }
.shop-product-category { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem; margin: .75rem 0 0; color: #687385; font-size: .88rem; }
.shop-product-category a { color: #245b89; }
.shop-stock { display: inline-flex; align-items: center; gap: .4rem; padding: .28rem .55rem; border-radius: .35rem; background: #f1f6f2; color: #315e3b; font-weight: 600; font-size: .86rem; }
.shop-stock::before { content: ""; display: inline-block; flex: 0 0 .45rem; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.shop-stock.is-few-left { background: #fbf3e5; color: #8b5c17; }
.shop-stock.is-order-item { background: #eef2f6; color: #52677f; }
.shop-stock.is-unavailable { background: #f4eeee; color: #785858; }
.shop-stock.is-unknown { background: #f4eeee; color: #795c5c; }
.shop-detail-description { margin-top: 1.5rem; }
.shop-detail-lower { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(250px, .8fr); align-items: start; gap: clamp(1.5rem, 4vw, 3rem); margin-top: 2.75rem; }
.shop-detail-lower.is-help-only .shop-help-panel { grid-column: 2; }
.shop-detail-information { min-width: 0; }
.shop-detail-information > :first-child { margin-top: 0; }
.shop-help-panel { align-self: start; padding: 1.4rem; background: #f4f8fc; border: 1px solid #e1eaf3; border-radius: .9rem; }
.shop-help-panel h2 { margin: 0 0 .65rem; color: #102846; font-size: 1.25rem; }
.shop-help-panel p { margin: 0 0 1rem; color: #5f6b7b; line-height: 1.55; }
.shop-help-phone, .shop-help-contact { display: flex; align-items: center; gap: .55rem; width: fit-content; min-height: 44px; font-weight: 700; text-decoration: none; }
.shop-help-phone { color: #245b89; font-size: 1.05rem; }
.shop-help-contact { color: #394b61; font-size: .92rem; }
.shop-related-products { margin-top: 3rem; }
.shop-related-products .shop-list-heading { margin-top: 0; }
.shop-specifications { width: 100%; table-layout: fixed; border-collapse: collapse; margin-top: .75rem; }
.shop-specifications th, .shop-specifications td { padding: .65rem .5rem; border-bottom: 1px solid #e4e8ef; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.shop-specifications th { width: 38%; }
.shop-specifications-plain { padding: .85rem 1rem; color: #344256; background: #f7f9fb; border: 1px solid #e4e8ef; border-radius: .55rem; line-height: 1.55; }
.shop-pagination { display: flex; justify-content: center; margin-top: 2rem; }
@media (max-width: 991.98px) { .shop-detail-grid { gap: 1.5rem; } .shop-detail-lower { grid-template-columns: 1fr; } .shop-detail-lower.is-help-only .shop-help-panel { grid-column: auto; } }
@media (max-width: 575.98px) { .shop-products-grid { justify-content: center; gap: .85rem; } .shop-product-card-image { flex-basis: 10.5rem; height: 10.5rem; } .shop-product-card-image img { max-height: 8rem; } .shop-detail-grid { grid-template-columns: 1fr; } .shop-detail-main-image { min-height: 17rem; padding: .9rem; } .shop-detail-main-image img { max-height: 20rem; } .shop-product-lightbox { width: 100vw; height: 100vh; height: 100dvh; max-width: 100vw; max-height: 100dvh; border: 0; border-radius: 0; } .shop-product-lightbox-nav { width: 42px; height: 42px; } .shop-detail-lower { margin-top: 2rem; gap: 1.5rem; } .shop-help-panel { padding: 1.1rem; } .shop-category-hero { align-items: flex-start; gap: .9rem; } .shop-category-image { flex-basis: 72px; width: 72px; height: 72px; } .shop-search-form { flex-wrap: wrap; gap: .45rem; } .shop-search-form .form-control { flex-basis: 100%; } .shop-search-form .form-select { flex: 1 1 55%; } .shop-search-form .btn-main { flex: 1 1 35%; padding-inline: .85rem; } .shop-category-search .form-control { flex-basis: auto; } .shop-category-search .btn-main { flex: 0 0 auto; } .shop-list-heading { align-items: flex-start; flex-direction: column; } .shop-specifications th, .shop-specifications td { padding: .55rem .35rem; font-size: .9rem; } }

@media (max-width: 575.98px) {
    @container shop-catalog (min-width: 33.35rem) {
        .shop-products-grid { grid-template-columns: repeat(2, minmax(16.25rem, 1fr)); }
    }
}

@media (max-width: 575.98px) {
    .shop-home { padding-bottom: 32px; }
}

@media (max-width: 575.98px) {
    .shop-product-lightbox .shop-product-lightbox-stage {
        grid-template-columns: 42px minmax(0, 1fr) 42px;
        gap: .2rem;
        padding-inline: 0;
        touch-action: pan-y pinch-zoom;
    }

    .shop-product-lightbox-stage img {
        max-width: 100%;
        max-height: 100%;
    }

    .shop-product-lightbox-thumbnails {
        justify-content: flex-start;
        padding-inline: .5rem;
        scroll-padding-inline: .5rem;
    }
}

@media (max-width: 575.98px) {
    .shop-specifications,
    .shop-specifications tbody,
    .shop-specifications tr,
    .shop-specifications th,
    .shop-specifications td { display: block; width: 100%; }
    .shop-specifications tr { padding: .55rem 0; border-bottom: 1px solid #e4e8ef; }
    .shop-specifications th,
    .shop-specifications td { padding: 0 .25rem; border: 0; }
    .shop-specifications th { margin-bottom: .15rem; color: #687385; font-size: .82rem; }
    .shop-specifications td { font-size: .92rem; }
}
