:root {
    --shop-primary: #ff681b;
    --shop-primary-rgb: 255, 104, 27;
    --shop-secondary: #4b5a9d;
    --shop-secondary-rgb: 75, 90, 157;
    --shop-bg: #ffffff;
    --shop-text: #1f2430;
    --shop-muted: #6f7785;
}

.shop-footer.shop-footer-simple {
    padding: 28px 16px;
}

.shop-footer-simple-inner {
    display: grid;
    gap: 6px;
    justify-items: center;
    max-width: 760px;
    margin: 0 auto;
    color: rgba(255, 255, 255, .86);
    font-size: 14px;
    line-height: 1.45;
    text-align: center;
}

.shop-footer-simple-inner strong {
    color: #fff;
    font-size: 16px;
    font-weight: 900;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    background: var(--shop-bg);
    color: var(--shop-text);
    font-family: Roboto, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
}

.shop-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    transition: grid-template-columns .2s ease;
}

.shop-sidebar-collapsed .shop-shell {
    grid-template-columns: 92px minmax(0, 1fr);
}

.shop-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    background: linear-gradient(180deg, var(--shop-primary) 0%, color-mix(in srgb, var(--shop-primary) 86%, #ffffff) 100%);
    color: #fff;
    padding: 18px 16px 28px;
}

.shop-sidebar-backdrop {
    display: none;
}

.shop-sidebar-brand {
    display: flex;
    justify-content: center;
    margin-bottom: 30px;
}

.shop-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: Montserrat, sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.05;
    width: 100%;
}

.shop-logo img {
    width: min(138px, 100%);
    max-height: 58px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.shop-topbar-menu {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, .42);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 22px;
    cursor: pointer;
}

.shop-side-nav {
    display: grid;
    gap: 8px;
}

.shop-side-section {
    padding: 14px 44px;
    color: rgba(255, 255, 255, .82);
    font-weight: 700;
}

.shop-side-title {
    display: block;
    padding: 14px 18px 6px;
    color: rgba(255, 255, 255, .72);
    font-family: Montserrat, sans-serif;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-side-item.is-divider hr {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .28);
    margin: 10px 18px;
}

.shop-side-item > a,
.shop-side-group-toggle,
.shop-side-subnav a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 22px;
    color: rgba(255, 255, 255, .84);
    font-size: 16px;
    font-weight: 600;
}

.shop-side-group-toggle {
    width: 100%;
    border: 0;
    background: rgba(255, 255, 255, .12);
    cursor: pointer;
    font-family: inherit;
}

.shop-side-item.active > a,
.shop-side-item.active > .shop-side-group-toggle,
.shop-side-subnav a.active {
    background: var(--shop-secondary);
    color: #fff;
    box-shadow: 0 12px 28px rgba(var(--shop-secondary-rgb), .22);
}

.shop-side-item .bi:first-child,
.shop-side-subnav .bi:first-child {
    flex: 0 0 auto;
    font-size: 18px;
}

.shop-side-item span,
.shop-side-subnav span {
    min-width: 0;
}

.shop-side-chevron {
    margin-left: auto;
    font-size: 13px;
}

.shop-side-subnav {
    display: grid;
    gap: 4px;
    margin: 6px 0 4px 20px;
}

.shop-side-item.is-closed .shop-side-subnav {
    display: none;
}

.shop-side-item.is-closed .shop-side-chevron {
    transform: rotate(-90deg);
}

.shop-side-subnav a {
    min-height: 38px;
    font-size: 14px;
}

.shop-side-subtitle {
    display: block;
    padding: 8px 14px 2px;
    color: rgba(255, 255, 255, .62);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-side-subdivider {
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .2);
    margin: 6px 14px;
}

.shop-sidebar-collapsed .shop-logo img {
    width: 54px;
}

.shop-sidebar-collapsed .shop-side-section,
.shop-sidebar-collapsed .shop-side-title,
.shop-sidebar-collapsed .shop-side-item.is-divider,
.shop-sidebar-collapsed .shop-side-item span,
.shop-sidebar-collapsed .shop-side-chevron,
.shop-sidebar-collapsed .shop-side-subnav {
    display: none;
}

.shop-sidebar-collapsed .shop-side-item > a {
    justify-content: center;
    padding: 0;
}

.shop-sidebar-collapsed .shop-side-group-toggle {
    justify-content: center;
    padding: 0;
}

.shop-page {
    min-width: 0;
    min-height: 100vh;
}

.shop-topbar {
    position: sticky;
    top: 0;
    z-index: 10;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    min-height: 74px;
    padding: 12px 18px 12px 12px;
    border-bottom: 1px solid #edf0f4;
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(12px);
}

.shop-topbar-menu {
    border-color: #e4e7ed;
    color: #303641;
}

.shop-search {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 48px;
    min-height: 48px;
}

.shop-search input {
    width: 100%;
    border: 1px solid #e4e7ed;
    border-radius: 24px;
    padding: 0 54px 0 18px;
    color: var(--shop-text);
    font-size: 16px;
    outline: none;
}

.shop-search input:focus {
    border-color: rgba(var(--shop-primary-rgb), .55);
    box-shadow: 0 0 0 4px rgba(var(--shop-primary-rgb), .1);
}

.shop-search button {
    position: absolute;
    right: 3px;
    top: 3px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 21px;
    background: transparent;
    color: #353b45;
    font-size: 18px;
    cursor: pointer;
}

.shop-top-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.shop-top-actions a,
.shop-account-trigger {
    position: relative;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 19px;
    background: transparent;
    color: #303641;
    font-size: 20px;
    cursor: pointer;
}

.shop-top-actions a:hover,
.shop-account-trigger:hover,
.shop-account-trigger[aria-expanded="true"] {
    background: rgba(var(--shop-primary-rgb), .08);
    color: var(--shop-primary);
}

.shop-account-menu-wrap {
    position: relative;
}

.shop-account-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 60;
    display: none;
    min-width: 178px;
    padding: 8px;
    border: 1px solid rgba(22, 47, 43, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 24, 39, .14);
}

.shop-account-menu.is-open {
    display: grid;
    gap: 2px;
}

.shop-account-menu a,
.shop-account-menu button {
    display: block;
    width: 100%;
    height: auto;
    padding: 10px 12px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #303641;
    font: inherit;
    font-size: 14px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.shop-account-menu a:hover,
.shop-account-menu button:hover {
    background: rgba(var(--shop-primary-rgb), .08);
    color: var(--shop-primary);
}

.shop-account-name {
    display: block;
    max-width: 220px;
    overflow: hidden;
    padding: 8px 12px 10px;
    border-bottom: 1px solid #edf0f4;
    color: var(--shop-muted);
    font-size: 13px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-cart-badge {
    position: absolute;
    top: -2px;
    right: -4px;
    display: grid;
    min-width: 18px;
    height: 18px;
    place-items: center;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #e93636;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.shop-cart-badge.is-hidden {
    display: none;
}

.shop-header-horizontal .shop-shell {
    display: block;
}

.shop-header-horizontal .shop-sidebar {
    display: none;
}

.shop-header-horizontal .shop-sidebar-backdrop {
    display: none;
}

.shop-header-v2 {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid #e8e8e8;
    background: #fff;
}

.shop-header-horizontal-scroll .shop-header-v2 {
    position: relative;
    top: auto;
}

.shop-announcement {
    position: relative;
    display: flex;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 0 58px;
    background: #e5e5e5;
    color: #fff;
    font-size: 13px;
    overflow: hidden;
}

.shop-announcement::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--shop-announcement-progress, 0%);
    background:
        linear-gradient(110deg, transparent 0 35%, rgba(255, 255, 255, .32) 46%, transparent 58%),
        var(--shop-primary);
    background-size: 220px 100%, 100% 100%;
    background-position: -220px 0, 0 0;
    transition: width .34s ease;
}

.shop-announcement.is-progressing::before {
    animation: shopAnnouncementFill 1.8s linear infinite;
}

@keyframes shopAnnouncementFill {
    from {
        background-position: -220px 0, 0 0;
    }
    to {
        background-position: 220px 0, 0 0;
    }
}

.shop-announcement > a,
.shop-announcement > button {
    position: relative;
    z-index: 2;
    border: 0;
    background: transparent;
    color: var(--shop-primary);
    cursor: pointer;
    font: inherit;
    font-family: Montserrat, sans-serif;
    font-weight: 850;
    letter-spacing: 0;
    padding: 0;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    width: min(900px, 100%);
}

.shop-announcement > button::before {
    content: attr(data-shop-free-shipping-header-label);
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    overflow: hidden;
    clip-path: inset(0 calc(100% - var(--shop-announcement-progress, 0%)) 0 0);
    pointer-events: none;
}

.shop-announcement-socials {
    position: absolute;
    z-index: 2;
    right: 58px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 17px;
}

.shop-header-v2-main {
    position: relative;
    display: grid;
    grid-template-columns: minmax(220px, 250px) minmax(180px, 1fr) minmax(220px, 250px);
    min-height: 116px;
    align-items: center;
    gap: 18px;
    padding: 14px 58px 10px;
}

.shop-header-v2-search {
    width: 250px;
    min-height: 42px;
}

.shop-header-v2-search input {
    border: 0;
    border-radius: 0;
    background: #f1f1f1;
    padding-right: 30px;
    font-size: 14px;
}

.shop-header-v2-search input::-webkit-search-cancel-button {
    margin-right: 2px;
}

.shop-header-v2-search input:focus {
    box-shadow: none;
}

.shop-header-v2-search button {
    top: 0;
    right: 0;
    width: 44px;
    height: 42px;
    border-radius: 0;
    background: var(--shop-primary);
    color: #fff;
}

.shop-header-v2-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.shop-header-v2-logo img {
    width: min(220px, 100%);
    max-height: 82px;
    object-fit: contain;
}

.shop-header-v2-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    color: #303030;
}

.shop-header-v2-account,
.shop-header-v2-cart,
.shop-header-v2-icon,
.shop-header-v2-mobile-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    background: transparent;
    color: #303030;
    font: inherit;
    font-size: 15px;
    cursor: pointer;
}

.shop-header-v2-account i,
.shop-header-v2-cart i {
    font-size: 25px;
}

.shop-header-v2-cart {
    padding-right: 2px;
}

.shop-header-v2-nav {
    display: flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    gap: 26px;
    padding: 0 24px 10px;
    color: #303030;
    font-size: 14px;
}

.shop-header-v2 .spb-header-slot {
    min-width: 0;
}

.shop-header-v2-main > .shop-header-slot-search {
    justify-self: start;
}

.shop-header-v2-main > .shop-header-slot-brand {
    display: flex;
    justify-content: center;
    justify-self: center;
    width: 100%;
}

.shop-header-v2-actions > .shop-header-slot-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
    width: 100%;
}

.shop-header-v2-nav > .shop-header-slot-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 26px;
    min-width: 0;
}

.shop-header-v2-nav .spb-shop-menu-dynamic {
    display: contents;
}

.shop-header-v2-nav-item {
    position: relative;
}

.shop-header-v2-nav-item > a {
    display: inline-flex;
    min-height: 32px;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.shop-header-v2-nav-item > a i {
    font-size: 12px;
}

.shop-header-v2-nav-item.active > a,
.shop-header-v2-nav-item > a:hover {
    color: #105541;
}

.shop-header-v2-dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 65;
    display: none;
    min-width: 210px;
    transform: translateX(-50%);
    padding: 8px;
    border: 1px solid rgba(22, 47, 43, .12);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(17, 24, 39, .14);
}

.shop-header-v2-nav-item:hover .shop-header-v2-dropdown,
.shop-header-v2-nav-item:focus-within .shop-header-v2-dropdown {
    display: grid;
    gap: 2px;
}

.shop-header-v2-dropdown a,
.shop-header-v2-dropdown span {
    display: block;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
}

.shop-header-v2-dropdown span {
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-header-v2-dropdown a:hover,
.shop-header-v2-dropdown a.active {
    background: rgba(16, 85, 65, .08);
    color: #105541;
}

.shop-header-v2-dropdown hr {
    width: 100%;
    margin: 6px 0;
    border: 0;
    border-top: 1px solid #edf0f4;
}

.shop-header-v2-mobile-tools,
.shop-header-v2-mobile-cart,
.shop-header-v2-mobile-search {
    display: none;
}

.shop-main {
    padding: 30px 12px 42px;
}

.shop-main:has(.shop-home-banner) {
    padding-top: 0;
}

.shop-container,
.shop-content,
.shop-cart-page,
.shop-static-page {
    width: min(1120px, 100%);
    margin-right: auto;
    margin-left: auto;
}

.shop-product-container {
    width: min(1800px, 100%);
}

.shop-product-container:has(.shop-product.is-virtual) {
    width: min(1804px, calc(100vw - 96px));
}

.shop-content {
    display: grid;
    gap: 24px;
}

.shop-home-content {
    width: min(1804px, calc(100vw - 96px));
    max-width: none;
    gap: 48px;
}

.shop-home-banner {
    position: relative;
    width: 100vw;
    height: 450px;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
    background: #171717;
}

.shop-local-home .shop-home-banner {
    height: 360px;
}

.shop-home-banner-track,
.shop-home-banner-slide,
.shop-home-banner-overlay {
    position: absolute;
    inset: 0;
}

.shop-home-banner-slide {
    display: grid;
    place-items: center;
    opacity: 0;
    background-image: var(--shop-banner-image);
    background-position: var(--shop-banner-position, center center);
    background-size: cover;
    color: #fff;
    text-align: center;
    transition: opacity .45s ease;
    pointer-events: none;
}

.shop-home-banner-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

.shop-home-banner-overlay {
    background: rgba(0, 0, 0, .52);
}

.shop-home-banner-content {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    width: min(900px, calc(100% - 42px));
    gap: 14px;
    padding: 24px 0 62px;
}

.shop-home-banner-kicker {
    position: relative;
    margin: 0 0 2px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.2;
    text-transform: uppercase;
}

.shop-home-banner-kicker::after {
    content: "";
    display: block;
    width: 88px;
    height: 2px;
    margin: 8px auto 0;
    background: #dce97c;
}

.shop-home-banner h1,
.shop-home-banner h2 {
    margin: 0;
    max-width: 900px;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 32px;
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: 0;
    text-transform: uppercase;
}

.shop-home-trustbar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 48px;
    margin: 46px calc(50% - 50vw) 0;
    padding: 34px max(28px, calc((100vw - 1180px) / 2));
    border-top: 1px solid rgba(22, 47, 43, .08);
    border-bottom: 1px solid rgba(22, 47, 43, .08);
    background: #f7f7f5;
}

.shop-home-trustbar-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    min-width: 0;
    color: #303030;
}

.shop-home-trustbar-icon {
    display: inline-grid;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 2px solid rgba(16, 85, 64, .7);
    border-radius: 50%;
    color: var(--shop-primary);
}

.shop-home-trustbar-icon i {
    color: var(--shop-primary);
    font-size: 17px;
    line-height: 1;
}

.shop-home-trustbar strong {
    display: block;
    margin: 0 0 6px;
    color: #303030;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.18;
}

.shop-home-trustbar small {
    display: block;
    color: #626262;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.55;
}

.shop-home-banner-text {
    max-width: 900px;
    margin: 0;
    color: rgba(255, 255, 255, .96);
    font-size: 18px;
    line-height: 1.55;
}

.shop-home-banner-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 10px;
}

.shop-home-banner-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 28px;
    background: #dce97c;
    color: #105541;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.shop-home-banner-button.secondary {
    border: 1px solid rgba(255, 255, 255, .72);
    background: rgba(0, 0, 0, .2);
    color: #fff;
}

.shop-home-banner-free-shipping-badge {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    max-width: min(620px, 100%);
    padding: 0 28px;
    border: 1px solid rgba(220, 233, 124, .78);
    border-radius: 999px;
    background: rgba(16, 85, 65, .78);
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
    text-transform: uppercase;
}

.shop-home-banner-controls {
    position: absolute;
    left: 50%;
    bottom: 16px;
    z-index: 3;
    display: flex;
    width: min(650px, calc(100% - 42px));
    height: 28px;
    transform: translateX(-50%);
    align-items: center;
    gap: 6px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .22);
    padding: 0 8px;
}

.shop-home-banner-controls button {
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;
}

.shop-home-banner-controls button:not(.shop-home-banner-pause) {
    position: relative;
    flex: 1 1 0;
    height: 16px;
    min-width: 28px;
    padding: 0;
}

.shop-home-banner-controls button:not(.shop-home-banner-pause)::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 7px;
    height: 2px;
    background: rgba(255, 255, 255, .48);
}

.shop-home-banner-controls button span {
    position: absolute;
    left: 0;
    top: 7px;
    width: 0;
    height: 2px;
    background: #fff;
}

.shop-home-banner-pause {
    display: grid;
    flex: 0 0 26px;
    width: 26px;
    height: 24px;
    place-items: center;
    padding: 0;
    font-size: 18px;
}

@keyframes shop-banner-progress {
    from {
        width: 0;
    }
    to {
        width: 100%;
    }
}

.shop-offers {
    display: grid;
    grid-template-columns: repeat(3, minmax(240px, 1fr));
    gap: 18px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.shop-offer-card {
    min-height: 140px;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 112px;
    align-items: center;
    gap: 12px;
    overflow: hidden;
    border: 1px solid #e3e7ee;
    border-radius: 22px;
    padding: 18px;
}

.shop-offer-card h2,
.shop-wide-offer h2 {
    margin: 0 0 4px;
    font-family: Montserrat, sans-serif;
    font-size: 28px;
    line-height: 1;
    letter-spacing: 0;
}

.shop-offer-card p,
.shop-wide-offer p {
    margin: 0 0 16px;
    color: var(--shop-muted);
    font-size: 16px;
}

.shop-offer-card span {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    border: 1px dashed currentColor;
    border-radius: 17px;
    padding: 0 12px;
    font-size: 13px;
    font-weight: 700;
}

.shop-offer-card img {
    width: 112px;
    height: 112px;
    object-fit: contain;
}

.shop-offer-card.light {
    background: #fff;
}

.shop-offer-card.orange {
    background: var(--shop-primary);
    color: #fff;
}

.shop-offer-card.orange p,
.shop-offer-card.dark p {
    color: rgba(255, 255, 255, .9);
}

.shop-offer-card.dark {
    background: #2c2c2d;
    color: #fff;
}

.shop-category-strip {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    padding: 4px 0 0;
}

.shop-category-strip a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    white-space: nowrap;
    border: 1px solid rgba(var(--shop-primary-rgb), .45);
    border-radius: 19px;
    padding: 0 16px;
    color: var(--shop-primary);
    font-weight: 600;
}

.shop-category-strip a.active {
    border-color: var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
}

.shop-wide-offer {
    min-height: 118px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px minmax(120px, auto);
    align-items: center;
    gap: 18px;
    overflow: hidden;
    border: 1px solid #e3e7ee;
    border-radius: 22px;
    padding: 18px;
    background: #fff;
}

.shop-wide-offer img {
    width: 100px;
    height: 100px;
    object-fit: contain;
}

.shop-wide-price {
    text-align: right;
}

.shop-wide-price strong {
    display: block;
    font-family: Montserrat, sans-serif;
    font-size: 26px;
}

.shop-wide-price span {
    color: var(--shop-muted);
    font-size: 12px;
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 0;
}

.shop-simple-catalog {
    display: grid;
    gap: 18px;
}

.shop-simple-catalog-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}

.shop-simple-catalog-search {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 48px;
    border: 1px solid #d9dedb;
    background: #fff;
    padding: 0 16px;
}

.shop-simple-catalog-search i {
    color: var(--shop-muted);
    font-size: 18px;
}

.shop-simple-catalog-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--shop-text);
    font: inherit;
}

.shop-simple-catalog-count {
    color: var(--shop-muted);
    font-size: 14px;
}

.shop-simple-catalog-empty {
    margin: 0;
}

.shop-simple-catalog-products [data-shop-simple-card][hidden] {
    display: none !important;
}

.shop-simple-catalog .shop-heart {
    display: none;
}

.shop-home-content:has(.shop-home-floating-checkout) {
    padding-bottom: 96px;
}

.shop-home-floating-checkout {
    position: fixed;
    left: calc(var(--shop-sidebar-width, 280px) + 24px);
    right: 24px;
    bottom: 18px;
    z-index: 80;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 18px;
    border: 1px solid #d9dedb;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 16px 42px rgba(15, 23, 42, .16);
    padding: 14px 16px;
    backdrop-filter: blur(10px);
}

.shop-home-floating-total {
    display: grid;
    gap: 2px;
    justify-items: start;
}

.shop-home-floating-total span {
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.shop-home-floating-total strong {
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 20px;
}

.shop-home-floating-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    min-height: 46px;
    border: 1px solid var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.shop-home-floating-button:hover {
    color: #fff;
}

.shop-home-floating-button.is-disabled {
    border-color: #d1d5db;
    background: #d1d5db;
    color: #6b7280;
    pointer-events: none;
}

.shop-home-floating-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    min-height: 46px;
    border: 1px solid #d9dedb;
    background: #fff;
    color: var(--shop-primary);
    font-size: 22px;
    text-decoration: none;
}

.shop-home-floating-cart:hover {
    color: var(--shop-primary);
}

.shop-home-floating-cart .shop-cart-badge {
    top: 6px;
    right: 7px;
}

.shop-header-horizontal .shop-home-floating-checkout,
.shop-sidebar-collapsed .shop-home-floating-checkout {
    left: 24px;
}

.shop-local-home .shop-header-v2-main,
.shop-local-logo-only .shop-header-v2-main {
    grid-template-columns: 1fr;
    justify-items: center;
}

.shop-local-home .shop-header-v2-mobile-tools,
.shop-local-home .shop-header-v2-main > span,
.shop-local-home .shop-header-v2-actions,
.shop-local-home .shop-header-v2-mobile-cart,
.shop-local-logo-only .shop-header-v2-mobile-tools,
.shop-local-logo-only .shop-header-v2-main > span,
.shop-local-logo-only .shop-header-v2-actions,
.shop-local-logo-only .shop-header-v2-mobile-cart {
    display: none;
}

.shop-local-home .shop-header-v2-logo,
.shop-local-logo-only .shop-header-v2-logo {
    justify-self: center;
    justify-content: center;
}

.shop-local-checkout .shop-checkout-page {
    padding-bottom: 118px;
}

.shop-checkout-floating-payment {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.shop-checkout-floating-submit {
    cursor: pointer;
    font: inherit;
}

.shop-checkout-floating-submit:disabled {
    cursor: not-allowed;
}

.shop-checkout-floating-back {
    font-size: 24px;
}

.shop-checkout-floating-warning {
    position: fixed;
    left: 24px;
    right: 24px;
    bottom: 92px;
    z-index: 81;
    border: 1px solid #f2c94c;
    background: #fff4c2;
    color: #6f4e00;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
    padding: 10px 14px;
    font-size: 14px;
    font-weight: 900;
    text-align: center;
}

.shop-checkout-floating-warning[hidden] {
    display: none !important;
}

.shop-card {
    display: grid;
    grid-template-rows: minmax(230px, 1fr) auto;
    gap: 0;
    border: 1px solid #d9dedb;
    background: #fff;
}

.shop-card.is-disabled {
    opacity: .52;
}

.shop-card.is-disabled .shop-card-media {
    filter: grayscale(.8);
}

.shop-card.is-disabled:hover .shop-card-media {
    border-color: #e3e7ee;
    box-shadow: none;
}

.shop-card-media {
    position: relative;
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid #e4e9e6;
    border-radius: 0;
    background: #eef7f5;
    height: 300px;
}

.shop-card:hover .shop-card-media {
    border-color: #e4e9e6;
    box-shadow: none;
}

.shop-card-media a {
    display: block;
    height: 100%;
}

.shop-card-media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: block;
    object-fit: cover;
    object-position: center center;
    padding: 0;
}

.shop-badge {
    display: none;
}

.shop-heart,
.shop-add,
.shop-card-media-action {
    display: grid;
    place-items: center;
    border: 0;
    cursor: pointer;
}

.shop-heart {
    position: absolute;
    right: 8px;
    top: 8px;
    z-index: 2;
    width: 32px;
    height: 32px;
    border-radius: 16px;
    background: var(--shop-primary);
    color: #fff;
    font-size: 16px;
}

.shop-heart.is-active {
    background: #fff;
    color: var(--shop-primary);
    box-shadow: 0 8px 22px rgba(17, 24, 39, .16);
}

.shop-card-quick-view-button {
    position: absolute;
    right: 8px;
    top: 48px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 16px;
    background: #fff;
    color: var(--shop-primary);
    cursor: pointer;
    font-size: 16px;
    box-shadow: 0 8px 22px rgba(17, 24, 39, .12);
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .16s ease, transform .16s ease;
}

.shop-card-media:hover .shop-card-quick-view-button,
.shop-card:focus-within .shop-card-quick-view-button,
.shop-card-quick-view-button:focus-visible {
    opacity: 1;
    transform: translateY(0);
}

.shop-card-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 8px;
    padding: 16px 14px;
    min-height: 116px;
}

.shop-card-body p {
    margin: 0 0 2px;
    color: var(--shop-muted);
    font-size: 13px;
}

.shop-card-body .shop-card-summary {
    display: none;
}

.shop-card-info {
    min-width: 0;
}

.shop-card-body h3 {
    margin: 0;
    overflow: hidden;
    color: #303846;
    font-size: 15px;
    line-height: 1.25;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-card-body strong,
.shop-card-price {
    display: block;
    margin-top: 2px;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
}

.shop-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 38px;
    min-width: 0;
}

.shop-card-actions .shop-card-qty-wrap {
    display: none;
}

.shop-card-actions.is-in-cart .shop-add {
    display: none;
}

.shop-card-actions.is-in-cart .shop-card-qty-wrap {
    display: block;
}

.shop-card-actions .shop-add {
    flex: 0 0 auto;
}

.shop-card-actions .shop-product-qty {
    grid-template-columns: 30px 34px 30px;
    height: 30px;
}

.shop-card-actions .shop-product-qty button,
.shop-card-actions .shop-product-qty input {
    height: 30px;
}

.shop-card-actions .shop-product-qty input {
    font-size: 15px;
}

.shop-add {
    width: 38px;
    height: 38px;
    border: 1px solid var(--shop-primary);
    border-radius: 19px;
    background: #fff;
    color: var(--shop-primary);
    font-size: 18px;
}

.shop-card-stock {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #2f7d32;
    font-size: 13px;
}

.shop-card-stock::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}

.shop-card-stock.is-unavailable {
    color: #8a8f98;
}

.shop-card-stock.is-low {
    gap: 0;
    min-height: 26px;
    border-radius: 4px;
    padding: 0 9px;
    background: #b7791f;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-card-stock.is-low::before {
    display: none;
}

.shop-card-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin-top: 8px;
}

.shop-card-purchased {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--shop-primary);
    font-size: 13px;
}

.shop-card-purchased::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}

.shop-home-sections {
    display: grid;
    gap: 72px;
}

.shop-home-category-section {
    display: grid;
    gap: 16px;
}

.shop-home-category-section.has-feature {
    gap: 32px;
    align-items: start;
}

.shop-home-category-section > * {
    min-width: 0;
}

.shop-home-category-section.feature-direita {
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, .95fr);
}

.shop-home-category-section.feature-esquerda {
    grid-template-columns: minmax(280px, .95fr) minmax(0, 1.45fr);
}

.shop-home-category-section.feature-direita .shop-home-category-feature {
    order: 2;
    align-self: start;
}

.shop-home-category-section.feature-direita .shop-home-category-products {
    order: 1;
}

.shop-home-category-section.feature-esquerda .shop-home-category-feature {
    order: 1;
    align-self: start;
}

.shop-home-category-section.feature-esquerda .shop-home-category-products {
    order: 2;
}

.shop-home-category-feature {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 0;
    height: var(--shop-home-feature-height, auto);
    display: block;
    overflow: hidden;
    background: #161616;
    color: #fff;
}

.shop-home-category-feature video,
.shop-home-category-feature img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.shop-home-category-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .54);
}

.shop-home-category-copy {
    position: absolute;
    inset: 28px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.shop-home-category-copy strong {
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 28px;
    line-height: 1.12;
}

.shop-home-category-copy span {
    max-width: 300px;
    color: rgba(255, 255, 255, .92);
    font-size: 16px;
    line-height: 1.5;
}

.shop-home-category-copy em {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    margin-top: 14px;
    padding: 0 24px;
    background: var(--shop-primary);
    color: #fff;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.shop-home-category-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
}

.shop-home-category-header h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 28px;
    line-height: 1.15;
}

.shop-home-category-header p {
    margin: 6px 0 0;
    color: var(--shop-muted);
}

.shop-home-category-header a {
    color: var(--shop-primary);
    font-weight: 800;
}

.shop-home-category-title-card {
    display: flex;
    min-height: 100%;
    border: 1px solid #d9dedb;
    background: #fff;
    color: var(--shop-text);
}

.shop-home-category-title-card > div {
    display: flex;
    min-height: 230px;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    padding: 28px;
}

.shop-home-category-title-card h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 22px;
    line-height: 1.18;
}

.shop-home-category-title-card p {
    margin: 14px 0 0;
    color: var(--shop-muted);
    font-size: 15px;
    line-height: 1.45;
}

.shop-home-category-title-card a {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfd5d2;
    border-radius: 50%;
    color: var(--shop-text);
    background: #fff;
    font-size: 18px;
    text-decoration: none;
    transition: border-color .2s ease, color .2s ease, transform .2s ease;
}

.shop-home-category-title-card a:hover {
    border-color: var(--shop-primary);
    color: var(--shop-primary);
    transform: translateX(2px);
}

.shop-home-subcategory-tabs {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 34px;
    width: max-content;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 12px 14px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.shop-home-subcategory-tabs::-webkit-scrollbar {
    display: none;
}

.shop-home-subcategory-tabs button {
    appearance: none;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--shop-muted);
    font: inherit;
    font-size: 17px;
    line-height: 1.2;
    padding: 0 0 10px;
    white-space: nowrap;
    cursor: pointer;
}

.shop-home-subcategory-tabs button.is-active {
    border-bottom-color: var(--shop-text);
    color: var(--shop-text);
}

.shop-home-category-products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    min-width: 0;
}

.shop-home-category-section.has-feature .shop-home-category-products {
    align-content: start;
    align-items: start;
}

.shop-home-category-section.has-feature .shop-card {
    align-self: start;
    grid-template-rows: auto auto;
    min-width: 0;
}

.shop-home-category-section.has-feature .shop-card-media {
    height: 240px;
}

.shop-home-category-carousel {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}

.shop-home-category-carousel .shop-card {
    flex: 0 0 20%;
    min-width: 280px;
    scroll-snap-align: start;
}

.shop-home-category-carousel .shop-home-category-title-card {
    flex: 0 0 20%;
    min-width: 280px;
    scroll-snap-align: start;
}

.shop-home-carousel-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 16px 0 0;
}

.shop-home-carousel-pagination button {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 1px solid #9ca3af;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
}

.shop-home-carousel-pagination button.is-active {
    border-color: #2b2f33;
    background: #2b2f33;
}

.shop-card.is-subcategory-hidden {
    display: none;
}

.shop-category-hero {
    position: relative;
    width: 100vw;
    min-height: 350px;
    margin-left: calc(50% - 50vw);
    display: grid;
    align-items: end;
    overflow: hidden;
    background: linear-gradient(135deg, var(--shop-primary), #1f2937);
    background-position: center;
    background-size: cover;
    color: #fff;
}

.shop-category-hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .42);
}

.shop-category-hero-inner {
    position: relative;
    z-index: 1;
    width: min(1804px, calc(100vw - 112px));
    margin: 0 auto;
    padding: 0 0 44px;
}

.shop-category-breadcrumb {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 22px;
    color: rgba(255, 255, 255, .82);
    font-size: 14px;
}

.shop-category-breadcrumb a {
    color: inherit;
}

.shop-category-breadcrumb a::after {
    content: ">";
    margin-left: 9px;
}

.shop-category-hero h1 {
    margin: 0;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 38px;
    line-height: 1.1;
}

.shop-category-page {
    display: grid;
    gap: 32px;
}

.shop-search-results-page {
    display: grid;
    gap: 34px;
}

.shop-search-results-header {
    display: grid;
    gap: 14px;
    border-bottom: 1px solid rgba(22, 47, 43, .12);
    padding-bottom: 24px;
}

.shop-search-results-header p,
.shop-search-results-header span {
    margin: 0;
    color: var(--shop-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.shop-search-results-header h1 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 38px;
    line-height: 1.12;
}

.shop-search-section {
    display: grid;
    gap: 18px;
}

.shop-search-section > header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
}

.shop-search-section h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    line-height: 1.15;
}

.shop-search-section > header span,
.shop-search-empty {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
}

.shop-search-category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
}

.shop-search-category-card {
    position: relative;
    display: grid;
    gap: 8px;
    min-height: 132px;
    align-content: start;
    border: 1px solid rgba(22, 47, 43, .12);
    border-radius: 8px;
    background: #fff;
    color: var(--shop-text);
    padding: 18px 48px 18px 18px;
    text-decoration: none;
    transition: border-color .18s ease, transform .18s ease;
}

.shop-search-category-card:hover {
    border-color: rgba(var(--shop-primary-rgb), .55);
    transform: translateY(-2px);
}

.shop-search-category-card span {
    color: var(--shop-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.shop-search-category-card strong {
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.2;
}

.shop-search-category-card em {
    color: var(--shop-muted);
    font-size: 13px;
    font-style: normal;
}

.shop-search-category-card .bi {
    position: absolute;
    right: 18px;
    bottom: 18px;
    color: var(--shop-primary);
    font-size: 20px;
}

.shop-category-description {
    max-width: 760px;
    color: var(--shop-text);
    font-size: 16px;
    line-height: 1.65;
}

.shop-category-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: var(--shop-muted);
}

.shop-category-toolbar-left,
.shop-category-toolbar-right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.shop-category-filter-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 10px;
    border: 1px solid #c8cfcb;
    border-radius: 0;
    background: #fff;
    color: var(--shop-text);
    padding: 0 24px;
    font-weight: 600;
}

.shop-category-view-icons {
    display: inline-flex;
    gap: 8px;
    color: var(--shop-text);
}

.shop-category-view-icons button {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--shop-muted);
    font-size: 20px;
    cursor: pointer;
}

.shop-category-view-icons button.is-active {
    border-bottom-color: var(--shop-text);
    color: var(--shop-text);
}

.shop-category-sort {
    position: relative;
}

.shop-category-sort > button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: var(--shop-text);
    font: inherit;
    cursor: pointer;
}

.shop-category-sort > button.is-open .bi {
    transform: rotate(180deg);
}

.shop-category-sort-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 20;
    width: 270px;
    border: 1px solid #e5e7eb;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
    padding: 12px;
}

.shop-category-sort-menu label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 38px;
    color: var(--shop-text);
    cursor: pointer;
}

.shop-category-sort-menu input {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--shop-text);
}

.shop-category-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.shop-category-layout.is-without-filters {
    grid-template-columns: minmax(0, 1fr);
}

.shop-category-filters {
    display: grid;
    gap: 0;
}

.shop-category-filter-group {
    display: grid;
    gap: 14px;
    border-top: 1px solid #dfe4e1;
    padding: 22px 0;
}

.shop-category-filter-group header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: var(--shop-text);
}

.shop-category-filter-group label {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--shop-text);
    line-height: 1.35;
}

.shop-category-filter-group input {
    width: 16px;
    height: 16px;
    margin: 0;
}

.shop-category-products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.shop-category-products.is-list {
    display: grid;
    grid-template-columns: 1fr;
}

.shop-category-products.is-list .shop-card {
    grid-template-columns: 220px minmax(0, 1fr);
    grid-template-rows: auto;
    min-height: 220px;
}

.shop-category-products.is-list .shop-card-media {
    height: auto;
    border-right: 1px solid #e4e9e6;
    border-bottom: 0;
}

.shop-category-products.is-list .shop-card-media img {
    min-height: 0;
}

.shop-category-products.is-list .shop-card-body {
    min-height: 0;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 24px 20px;
}

.shop-category-products.is-list .shop-card-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px;
}

.shop-category-products.is-list .shop-card-body p,
.shop-category-products.is-list .shop-card-body h3 {
    grid-column: 1;
}

.shop-category-products.is-list .shop-card-body .shop-card-summary {
    display: -webkit-box;
    max-width: 640px;
    margin-top: 4px;
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.shop-category-products.is-list .shop-card-actions {
    display: inline-grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-content: end;
    gap: 12px;
    white-space: nowrap;
}

.shop-category-products.is-list .shop-card-price {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    margin: 0;
    margin-left: 28px;
    white-space: nowrap;
}

.shop-category-products.is-list .shop-card-actions .shop-add {
    display: none;
    grid-column: 2;
}

.shop-category-products.is-list .shop-card-actions .shop-card-qty-wrap {
    display: block;
    grid-column: 2;
}

.shop-category-products.is-list .shop-card-actions.is-in-cart .shop-add {
    display: none;
}

.shop-category-products.is-list .shop-card-actions.is-in-cart {
    grid-template-columns: auto;
    justify-items: end;
    gap: 8px;
}

.shop-category-products.is-list .shop-card-actions.is-in-cart .shop-card-qty-wrap {
    grid-column: 1;
    grid-row: 2;
    display: block;
}

.shop-category-products.is-list .shop-card-meta {
    justify-self: start;
    grid-column: 1;
    grid-row: auto;
    margin-top: 8px;
}

.shop-order-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .5);
    color: #fff;
}

.shop-order-overlay[hidden] {
    display: none;
}

.shop-order-overlay > div {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-size: 18px;
}

.shop-order-spinner {
    width: 34px;
    height: 34px;
    border: 3px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    border-radius: 999px;
    animation: shop-spin .8s linear infinite;
}

@keyframes shop-spin {
    to {
        transform: rotate(360deg);
    }
}

.shop-add.is-in-cart {
    background: var(--shop-primary);
    color: #fff;
}

.shop-add:disabled,
.shop-button:disabled,
.shop-add.is-unavailable,
.shop-button.is-unavailable {
    opacity: .45;
    cursor: not-allowed;
    filter: grayscale(1);
}

.shop-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 6px;
    background: var(--shop-primary);
    color: #fff;
    font-weight: 750;
    cursor: pointer;
}

.shop-button.secondary {
    background: var(--shop-secondary);
    color: #211806;
}

.shop-product {
    --shop-product-image-size: min(720px, calc(100vh - 160px));
    display: grid;
    grid-template-columns: minmax(0, calc(var(--shop-product-image-size) + 102px)) minmax(420px, 1fr);
    gap: 40px;
    align-items: start;
}

.shop-product:has(.shop-product-gallery.is-single) {
    grid-template-columns: minmax(0, var(--shop-product-image-size)) minmax(420px, 1fr);
}

.shop-product.is-virtual {
    grid-template-columns: minmax(0, 1fr);
}

.shop-product-left {
    display: grid;
    gap: 18px;
    min-width: 0;
}

.shop-product-media {
    max-width: 100%;
}

.shop-product-gallery {
    display: grid;
    grid-template-columns: 88px minmax(0, var(--shop-product-image-size));
    gap: 14px;
    align-items: start;
    justify-content: start;
}

.shop-product-gallery.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.shop-product-gallery-thumbs {
    display: grid;
    gap: 10px;
    max-height: var(--shop-product-image-size);
    overflow: auto;
    padding-right: 2px;
    scrollbar-width: thin;
}

.shop-product-gallery-thumb {
    display: block;
    width: 86px;
    height: 106px;
    padding: 0;
    border: 1px solid #dde3df;
    border-radius: 6px;
    background: #f4f6f3;
    cursor: pointer;
    overflow: hidden;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.shop-product-gallery-thumb:hover,
.shop-product-gallery-thumb.is-active {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 2px rgba(var(--shop-primary-rgb), .14);
}

.shop-product-gallery-thumb:hover {
    transform: translateY(-1px);
}

.shop-product-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shop-product-main-image {
    min-width: 0;
    width: var(--shop-product-image-size);
    max-width: 100%;
}

.shop-product-main-image img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    object-fit: contain;
    background: #eef0ed;
}

.shop-product-info {
    position: sticky;
    top: 24px;
    display: grid;
    gap: 24px;
    align-content: start;
}

.shop-product.is-virtual .shop-product-info {
    position: static;
}

.shop-panel {
    border: 1px solid rgba(22, 47, 43, .1);
    border-radius: 22px;
    background: #fff;
    padding: 20px;
}

.shop-product-overview-card,
.shop-product-overview-column,
.shop-product-builder-card {
    display: contents;
}

.shop-product.is-virtual .shop-product-main-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
    gap: 28px;
    align-items: start;
    padding: 0;
    border: 0;
    background: transparent;
}

.shop-product.is-virtual .shop-product-overview-column {
    position: sticky;
    order: 2;
    top: 24px;
    display: grid;
    gap: 16px;
    align-content: start;
}

.shop-product.is-virtual .shop-product-overview-card {
    display: grid;
    gap: 16px;
    padding: 24px;
    border: 1px solid rgba(22, 47, 43, .1);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(22, 47, 43, .08);
}

.shop-product.is-virtual .shop-product-builder-card {
    order: 1;
    display: grid;
    gap: 14px;
    min-width: 0;
}

.shop-product-builder-intro {
    display: grid;
    gap: 10px;
    padding: 22px 24px;
    border: 1px solid rgba(22, 47, 43, .1);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(22, 47, 43, .06);
}

.shop-product-builder-intro span {
    color: #0f5b43;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.shop-product-builder-intro-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 24px;
}

.shop-product-builder-intro-head h2 {
    margin: 0;
    color: #123f32;
    font-family: Montserrat, sans-serif;
    font-size: 30px;
    line-height: 1.12;
}

.shop-product-builder-intro-head strong {
    flex: 0 0 auto;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    font-weight: 850;
    line-height: 1.12;
    text-align: right;
}

.shop-product-builder-intro p {
    margin: 0;
    max-width: 780px;
    color: #3f4947;
    font-size: 16px;
    line-height: 1.55;
}

.shop-product-header {
    display: grid;
    gap: 8px;
    margin-bottom: 18px;
}

.shop-product-header h1 {
    margin: 0;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 28px;
    line-height: 1.18;
    letter-spacing: 0;
}

.shop-product-header p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 12px;
    text-transform: uppercase;
}

.shop-product-header strong {
    display: block;
    margin-top: 12px;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 26px;
    line-height: 1.1;
}

.shop-product-availability {
    display: grid;
    gap: 9px;
    margin: 4px 0 18px;
}

.shop-product-availability-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: #303030;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-product-availability-head small {
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 700;
    text-align: right;
}

.shop-product-availability-track {
    overflow: hidden;
    height: 8px;
    border-radius: 999px;
    background: #edf0ea;
}

.shop-product-availability-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--shop-primary);
}

.shop-product-availability.is-unavailable .shop-product-availability-track span {
    background: #9aa1a0;
}

.shop-product-summary {
    margin: 0 0 20px;
    padding-top: 2px;
    color: #3f4947;
}

.shop-product.is-virtual .shop-product-summary,
.shop-product.is-virtual .shop-product-availability {
    margin-bottom: 0;
}

.shop-product-summary p {
    margin: 0;
    max-width: 760px;
    font-size: 15px;
    line-height: 1.62;
}

.shop-product-description-card h2 {
    margin: 0 0 12px;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.25;
}

.shop-product-description-card p {
    margin: 0;
    color: #44504e;
    font-size: 15px;
    line-height: 1.62;
}

.shop-product-description-inline {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.shop-product-description-inline h2 {
    font-size: 16px;
}

.shop-product-description-inline p {
    font-size: 14px;
}

.shop-product-box-includes {
    display: grid;
    gap: 10px;
    padding-top: 4px;
}

.shop-product-box-includes h2 {
    margin: 0;
    color: #123f32;
    font-size: 16px;
    font-weight: 850;
    line-height: 1.2;
}

.shop-product-box-includes ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-product-box-includes li {
    position: relative;
    padding-left: 18px;
    color: #3f4947;
    font-size: 14px;
    line-height: 1.35;
}

.shop-product-box-includes li::before {
    content: "";
    position: absolute;
    top: .55em;
    left: 2px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0f5b43;
}

.shop-product-shipping-card h2 {
    margin: 0 0 14px;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.25;
}

.shop-product-shipping-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 8px;
    margin-bottom: 12px;
}

.shop-product-shipping-form input,
.shop-product-shipping-form button {
    min-height: 38px;
    border: 1px solid #dce1e8;
    border-radius: 6px;
    background: #fff;
    color: var(--shop-text);
    font: inherit;
}

.shop-product-shipping-form input {
    padding: 0 12px;
}

.shop-product-shipping-form button {
    background: var(--shop-primary);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

.shop-product-shipping-form button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.shop-product-shipping-result {
    display: grid;
    gap: 8px;
}

.shop-product-shipping-table {
    display: grid;
    border-top: 1px solid #dce1e8;
}

.shop-product-shipping-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(78px, .55fr) minmax(88px, .65fr);
    gap: 10px;
    align-items: center;
    border-bottom: 1px solid #dce1e8;
    padding: 10px 0;
    color: #303846;
    font-size: 13px;
}

.shop-product-shipping-row.is-head {
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-product-shipping-row strong,
.shop-product-shipping-row small {
    display: block;
}

.shop-product-shipping-row small {
    margin-top: 2px;
    color: var(--shop-muted);
    font-size: 12px;
}

.shop-product-purchase {
    display: grid;
    gap: 10px;
    margin-top: 18px;
}

.shop-product.is-virtual .shop-product-purchase {
    margin-top: 4px;
}

.shop-product-purchase > label {
    color: #303030;
    font-size: 15px;
}

.shop-product-actions {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.shop-product-actions:not(.is-in-cart) {
    grid-template-columns: minmax(0, 1fr);
}

.shop-product-actions:not(.is-in-cart) .shop-product-qty-wrap {
    display: none;
}

.shop-product-qty {
    display: grid;
    grid-template-columns: 32px 46px 32px;
    align-items: center;
    gap: 6px;
    width: max-content;
    height: 32px;
    background: transparent;
}

.shop-product-qty button,
.shop-product-qty input {
    width: 100%;
    height: 32px;
    border: 0;
    font: inherit;
    font-weight: 800;
    text-align: center;
}

.shop-product-qty button {
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: var(--shop-primary);
    color: #fff;
    cursor: pointer;
    font-size: 15px;
}

.shop-product-qty input {
    background: #fff;
    color: var(--shop-text);
    font-size: 16px;
}

.shop-product-qty input::-webkit-inner-spin-button,
.shop-product-qty input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.shop-product-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 45px;
    border: 0;
    border-radius: 0;
    background: var(--shop-primary);
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-weight: 800;
    letter-spacing: 0;
    cursor: pointer;
}

.shop-product-add:disabled {
    opacity: .45;
    cursor: not-allowed;
    filter: grayscale(1);
}

.shop-product-add.is-virtual-pending {
    background: #b6b6b6;
    color: #fff;
    cursor: pointer;
}

.shop-product-add-label-desktop {
    display: none;
}

.shop-product-add-label-mobile {
    display: inline;
}

@media (min-width: 1081px) {
    .shop-product-add-label-desktop {
        display: inline;
    }

    .shop-product-add-label-mobile {
        display: none;
    }
}

.shop-panel h1,
.shop-panel h2 {
    margin: 0 0 12px;
    color: var(--shop-primary);
    letter-spacing: 0;
}

.shop-product-description {
    max-width: 100%;
}

.shop-product-description h6,
.shop-product-description .mb-3 {
    margin: 0 0 14px;
}

.shop-product-description p {
    max-width: 760px;
    margin: 0 0 18px;
    line-height: 1.55;
}

.shop-product-description dl.row {
    display: grid;
    grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
    gap: 10px 20px;
    margin: 0 0 24px;
}

.shop-product-description dt,
.shop-product-description dd {
    margin: 0;
}

.shop-product-description dt {
    font-weight: 800;
}

.shop-product-description a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 6px;
    background: var(--shop-primary);
    color: #fff;
    font-weight: 750;
    text-decoration: none;
}

.shop-product-accordions {
    padding-top: 0;
    padding-bottom: 0;
}

.shop-product-accordion {
    border-bottom: 1px solid #dfe5dd;
}

.shop-product-accordion:last-child {
    border-bottom: 0;
}

.shop-product-accordion summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 58px;
    padding: 18px 0;
    color: #303030;
    cursor: pointer;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0;
    list-style: none;
    text-transform: uppercase;
}

.shop-product-accordion summary::-webkit-details-marker {
    display: none;
}

.shop-product-accordion summary i {
    color: var(--shop-primary);
    transition: transform .18s ease;
}

.shop-product-accordion[open] summary i {
    transform: rotate(180deg);
}

.shop-product-accordion-body {
    padding: 0 0 18px;
}

.shop-product-accordion-body p {
    margin: 0;
    color: #44504e;
    font-size: 15px;
    line-height: 1.58;
}

.shop-product-accordion-body a {
    color: var(--shop-primary);
    font-weight: 750;
    overflow-wrap: anywhere;
}

.shop-related-products {
    margin-top: 42px;
}

.shop-cross-sell {
    margin-top: 42px;
}

.shop-product-info .shop-cross-sell {
    margin-top: 0;
}

.shop-cross-sell-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.shop-cross-sell-heading h2 {
    margin: 0;
    color: var(--shop-primary);
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0;
}

.shop-cross-sell-heading span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    background: #193f35;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 12px;
    font-weight: 800;
}

.shop-cross-sell-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 24px;
    align-items: stretch;
}

.shop-cross-sell-items {
    display: flex;
    align-items: stretch;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.shop-cross-sell-item {
    display: grid;
    grid-template-columns: 92px minmax(140px, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 250px;
    border: 1px solid #edf1ec;
    background: #fbfcfb;
    padding: 10px;
}

.shop-cross-sell-item img {
    width: 92px;
    height: 92px;
    object-fit: cover;
    background: #f2f5f0;
}

.shop-cross-sell-item div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.shop-cross-sell-item strong {
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 13px;
    line-height: 1.25;
}

.shop-cross-sell-item span {
    color: var(--shop-primary);
    font-weight: 850;
}

.shop-cross-sell-item small {
    color: var(--shop-muted);
    font-size: 12px;
}

.shop-cross-sell-plus {
    align-self: center;
    color: var(--shop-primary);
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    font-weight: 900;
}

.shop-cross-sell-summary {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    border-left: 1px solid #e3e9e1;
    padding-left: 24px;
}

.shop-cross-sell-summary > span,
.shop-cross-sell-summary small {
    color: var(--shop-muted);
    font-size: 13px;
}

.shop-cross-sell-summary del {
    color: #8b9692;
    font-size: 14px;
}

.shop-cross-sell-summary strong {
    color: #193f35;
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    line-height: 1.1;
}

.shop-cross-sell-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    margin-top: 8px;
    border: 0;
    background: var(--shop-primary);
    color: #fff;
    cursor: pointer;
    font-family: Montserrat, sans-serif;
    font-weight: 850;
}

.shop-cross-sell-add:disabled {
    opacity: .55;
    cursor: wait;
}

.shop-summary-discount strong {
    color: #0d7a4f;
}

.shop-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.shop-section-heading h2 {
    margin: 0;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: 0;
}

.shop-muted {
    color: var(--shop-muted);
}

.shop-footer {
    position: relative;
    margin: 34px 0 0;
    padding: 30px 28px 22px;
    background: #171717;
    color: #f7f7f7;
}

.shop-footer.is-flush {
    margin-top: 0;
}

.shop-footer-desktop {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 56px;
}

.shop-footer-col {
    display: grid;
    align-content: start;
    gap: 11px;
}

.shop-footer h2 {
    margin: 0 0 6px;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 16px;
    letter-spacing: 0;
}

.shop-footer a,
.shop-footer p {
    margin: 0;
    color: #f1f1f1;
    font-size: 14px;
    line-height: 1.35;
}

.shop-footer strong {
    color: #fff;
    font-weight: 800;
}

.shop-footer-contact {
    gap: 10px;
}

.shop-footer-extra {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    gap: 56px;
    margin-top: 26px;
}

.shop-footer-hours {
    display: grid;
    align-content: start;
    gap: 8px;
}

.shop-footer-aviso p {
    margin: 0 0 4px;
}

.shop-footer-aviso p:last-child {
    margin-bottom: 0;
}

.shop-footer-follow {
    padding-top: 0;
}

.shop-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    font-weight: 800;
}

.shop-socials a,
.shop-socials span {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 50%;
    color: #fff;
    font-size: 15px;
}

.shop-footer-mobile {
    display: none;
}

.shop-footer-bottom {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    border-top: 1px solid rgba(255, 255, 255, .12);
    margin-top: 28px;
    padding-top: 18px;
    color: #c9c9c9;
    font-size: 13px;
}

.shop-whatsapp {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 32px;
    background: #55d66b;
    color: #fff;
    font-size: 28px;
}

.shop-payments {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.shop-payments span {
    display: inline-grid;
    min-width: 38px;
    min-height: 20px;
    place-items: center;
    border-radius: 3px;
    background: #fff;
    color: #1b2d58;
    font-size: 9px;
    font-weight: 800;
}

.shop-static-page {
    display: grid;
    justify-items: center;
    padding: 24px 12px;
}

.shop-static-inner {
    width: 100%;
    border: 1px solid #e3e7ee;
    border-radius: 22px;
    background: #fff;
    padding: 34px;
}

.shop-static-inner h1 {
    margin: 0 0 24px;
    color: var(--shop-primary);
    font-family: Montserrat, sans-serif;
    letter-spacing: 0;
}

.shop-static-content {
    color: #333b46;
    font-size: 16px;
    line-height: 1.45;
}

.shop-static-content p {
    margin: 0 0 14px;
}

.shop-static-content p:empty {
    display: none;
}

.shop-static-content p:last-child,
.shop-static-content ul:last-child,
.shop-static-content ol:last-child {
    margin-bottom: 0;
}

.shop-static-content h2,
.shop-static-content h3,
.shop-static-content h4 {
    margin: 18px 0 10px;
    color: #2d3540;
    line-height: 1.25;
}

.shop-static-content ul,
.shop-static-content ol {
    margin: 0 0 14px 1.25em;
    padding: 0;
}

.shop-static-content li {
    margin: 0 0 .35em;
}

.shop-cart-page {
    display: grid;
    gap: 22px;
}

.shop-cart-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.shop-cart-page-header h1 {
    margin: 0 0 4px;
    color: var(--shop-primary);
    font-family: Montserrat, sans-serif;
    font-size: 32px;
    letter-spacing: 0;
}

.shop-cart-page-header p {
    margin: 0;
}

.shop-cart-continue {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    border: 1px solid #e3e7ee;
    border-radius: 6px;
    padding: 0 12px;
    color: #303641;
    font-weight: 750;
}

.shop-local-cart-countdown {
    align-items: center;
    background: rgba(var(--shop-primary-rgb), .1);
    border: 1px solid rgba(var(--shop-primary-rgb), .22);
    border-radius: 8px;
    color: #1f2937;
    display: flex;
    font-size: 13px;
    font-weight: 700;
    gap: 6px;
    justify-content: center;
    margin: 0 0 14px;
    padding: 10px 12px;
}

.shop-local-cart-countdown strong {
    color: var(--shop-primary);
    font-variant-numeric: tabular-nums;
}

.shop-local-cart-countdown-page {
    justify-content: flex-start;
    margin-bottom: 18px;
}

.shop-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    gap: 24px;
    align-items: start;
}

.shop-cart-list,
.shop-cart-col-4 {
    display: grid;
    gap: 14px;
}

.shop-cart-row {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr) minmax(112px, auto);
    gap: 16px;
    align-items: start;
    border: 1px solid #e3e7ee;
    border-radius: 8px;
    background: #fff;
    padding: 12px;
    transition: opacity .16s ease;
}

.shop-cart-row.is-updating {
    opacity: .58;
    pointer-events: none;
}

.shop-cart-row.is-virtual {
    gap: 14px;
    padding: 10px 12px;
}

.shop-cart-row-media {
    overflow: hidden;
    border-radius: 8px;
    background: #eef0ed;
}

.shop-cart-row-media img {
    width: 104px;
    height: 104px;
    display: block;
    object-fit: cover;
}

.shop-cart-row.is-virtual .shop-cart-row-media img {
    width: 88px;
    height: 88px;
}

.shop-cart-row-info {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.shop-cart-row.is-virtual .shop-cart-row-info {
    gap: 8px;
}

.shop-cart-row-info h2 {
    margin: 0;
    color: #303846;
    font-family: Montserrat, sans-serif;
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: 0;
}

.shop-cart-row-composition {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    gap: 2px 12px;
    margin: -4px 0 0;
    padding: 0;
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
    list-style: none;
}

.shop-cart-row-composition li {
    position: relative;
    min-width: 0;
    overflow: hidden;
    padding-left: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-cart-row-composition li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .58em;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--shop-muted);
}

.shop-cart-qty {
    display: grid;
    grid-template-columns: 34px 42px 34px;
    width: 110px;
    height: 38px;
    overflow: hidden;
    border: 1px solid #dfe4ec;
    border-radius: 6px;
    background: #fff;
}

.shop-cart-qty button {
    display: grid;
    place-items: center;
    border: 0;
    background: transparent;
    color: #303641;
    cursor: pointer;
}

.shop-cart-qty button:hover {
    background: rgba(var(--shop-primary-rgb), .08);
    color: var(--shop-primary);
}

.shop-cart-qty input {
    width: 100%;
    border: 0;
    border-left: 1px solid #edf0f4;
    border-right: 1px solid #edf0f4;
    text-align: center;
    color: #303641;
    font-weight: 800;
    outline: none;
}

.shop-cart-qty input::-webkit-inner-spin-button,
.shop-cart-qty input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.shop-cart-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

.shop-cart-virtual-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
}

.shop-cart-duplicate {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--shop-primary);
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.shop-cart-duplicate:hover {
    color: #084936;
}

.shop-cart-row-prices {
    display: grid;
    justify-items: end;
    gap: 4px;
}

.shop-cart-row-prices del,
.shop-cart-item-pricebox del {
    color: #8b9692;
    font-size: 12px;
    font-weight: 750;
}

.shop-cart-row-total {
    color: #0d5f49;
    font-family: Montserrat, sans-serif;
    font-size: 17px;
    text-align: right;
    white-space: nowrap;
}

.shop-cart-row-prices small {
    color: var(--shop-muted);
    font-weight: 800;
    white-space: nowrap;
}

.shop-summary-card {
    display: grid;
    gap: 14px;
    border: 1px solid #e3e7ee;
    border-radius: 8px;
    background: #fff;
    padding: 18px;
}

.shop-summary-card h2 {
    margin: 0;
    color: #303846;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    letter-spacing: 0;
}

.shop-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-top: 1px solid #edf0f4;
    padding-top: 14px;
}

.shop-summary-line span {
    color: var(--shop-muted);
}

.shop-summary-line strong {
    font-family: Montserrat, sans-serif;
    font-size: 20px;
}

.shop-summary-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 6px;
    background: var(--shop-primary);
    color: #fff;
    font-weight: 850;
}

.shop-cart-drawer-page {
    display: grid;
    grid-template-rows: auto auto minmax(260px, 1fr) auto;
    width: min(560px, 100%);
    min-height: calc(100vh - 42px);
    margin-left: auto;
    border: 1px solid #d8d8d8;
    background: #f7f7f7;
}

.shop-cart-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 72px;
    border-bottom: 1px solid #d8d8d8;
    background: #fff;
    padding: 0 15px;
}

.shop-cart-drawer-header h1 {
    margin: 0;
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0;
}

.shop-cart-drawer-header a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    color: #2f2f2f;
    font-size: 20px;
}

.shop-cart-free-shipping {
    display: grid;
    gap: 10px;
    border-bottom: 1px solid #d8d8d8;
    background: #fff;
    padding: 14px 12px 12px;
}

.shop-cart-free-shipping-content {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    width: min(424px, 100%);
    margin: 0 auto;
}

.shop-cart-free-shipping-content > .bi {
    color: #3f3f3f;
    font-size: 17px;
}

.shop-cart-free-shipping-content p {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: #303030;
    font-size: 14px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-cart-free-shipping-content p strong {
    font-weight: 800;
}

.shop-cart-free-shipping-form {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 54px;
    gap: 8px;
}

.shop-cart-free-shipping-form[hidden] {
    display: none;
}

.shop-cart-free-shipping-form input,
.shop-cart-free-shipping-form button {
    min-height: 40px;
    border: 1px solid #c9c9c9;
    border-radius: 0;
    background: #fff;
}

.shop-cart-free-shipping-form input {
    min-width: 0;
    padding: 0 12px;
    outline: none;
}

.shop-cart-free-shipping-form button {
    background: var(--shop-primary);
    color: #fff;
    font-weight: 850;
    cursor: pointer;
}

.shop-cart-free-shipping-bar {
    height: 4px;
    width: min(524px, 100%);
    margin: 0 auto;
    background: #e2e2e2;
    overflow: hidden;
}

.shop-cart-free-shipping-bar span {
    display: block;
    height: 100%;
    width: 0;
    background: var(--shop-primary);
    transition: width .2s ease;
}

.shop-cart-free-shipping.is-complete .shop-cart-free-shipping-bar span {
    width: 100%;
}

.shop-cart-change-cep {
    justify-self: end;
    border: 0;
    background: transparent;
    color: var(--shop-primary);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    padding: 0;
    text-decoration: underline;
}

.shop-cart-change-cep[hidden] {
    display: none;
}

.shop-cart-drawer-items {
    display: grid;
    align-content: start;
    background: #f7f7f7;
}

.shop-cart-drawer-page .shop-cart-row {
    position: relative;
    grid-template-columns: 90px minmax(0, 1fr) auto;
    gap: 24px;
    min-height: 166px;
    border: 0;
    border-bottom: 1px solid #d8d8d8;
    border-radius: 0;
    background: #fff;
    padding: 30px 15px 18px;
}

.shop-cart-drawer-page .shop-cart-row-media {
    border-radius: 0;
    background: #eef8f6;
}

.shop-cart-drawer-page .shop-cart-row-media img {
    width: 90px;
    height: 113px;
    object-fit: cover;
}

.shop-cart-drawer-page .shop-cart-row-info {
    gap: 7px;
}

.shop-cart-drawer-page .shop-cart-row-info h2 {
    margin-bottom: 2px;
    color: #303030;
    font-family: Roboto, sans-serif;
    font-size: 16px;
    font-weight: 400;
}

.shop-cart-drawer-page .shop-cart-row-info strong {
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 15px;
    font-weight: 850;
}

.shop-cart-drawer-page .shop-cart-row-info small {
    color: #888;
    font-size: 14px;
}

.shop-cart-drawer-page .shop-cart-qty {
    grid-template-columns: 36px 38px 36px;
    width: 110px;
    height: 36px;
    margin-top: 14px;
    border-color: #c6c6c6;
    border-radius: 0;
}

.shop-cart-drawer-page .shop-cart-qty button {
    color: #545454;
    font-size: 17px;
}

.shop-cart-drawer-page .shop-cart-qty input {
    border: 0;
    color: #555;
    font-family: Roboto, sans-serif;
    font-size: 16px;
    font-weight: 400;
}

.shop-cart-row-remove {
    align-self: end;
    border: 0;
    background: transparent;
    color: #777;
    padding: 0 0 10px;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.shop-cart-row-actions .shop-cart-row-remove {
    align-self: auto;
    min-height: 26px;
    border: 1px solid #d7dde6;
    border-radius: 999px;
    padding: 0 10px;
    background: #fff;
    color: #6f7785;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
}

.shop-cart-row-actions .shop-cart-duplicate {
    min-height: 26px;
    border: 1px solid rgba(var(--shop-primary-rgb), .35);
    border-radius: 999px;
    padding: 0 10px;
    background: rgba(var(--shop-primary-rgb), .08);
    color: var(--shop-primary);
    text-decoration: none;
}

.shop-cart-row-actions .shop-cart-duplicate:hover {
    border-color: var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
}

.shop-cart-row-actions .shop-cart-row-remove:hover {
    border-color: #c4cbd6;
    background: #f6f8fa;
    color: #303846;
}

.shop-cart-row-remove:hover {
    color: #303030;
}

.shop-cart-drawer-footer {
    display: grid;
    gap: 8px;
    border-top: 1px solid #d8d8d8;
    background: #fff;
    padding: 22px 15px 16px;
}

.shop-cart-drawer-footer .shop-summary-line {
    border: 0;
    padding: 0;
}

.shop-cart-drawer-footer .shop-summary-line span {
    color: #333;
    font-size: 18px;
}

.shop-cart-drawer-footer .shop-summary-line strong {
    color: #303030;
    font-family: Montserrat, sans-serif;
    font-size: 19px;
    font-weight: 850;
}

.shop-cart-drawer-footer p {
    position: relative;
    margin: 0 0 10px;
    padding-left: 15px;
    color: #888;
    font-size: 13px;
}

.shop-cart-drawer-footer p::before {
    content: "";
    position: absolute;
    left: 1px;
    top: .35em;
    width: 9px;
    height: 9px;
    border: 1px solid #888;
    border-radius: 50%;
}

.shop-cart-drawer-footer .shop-summary-checkout {
    min-height: 45px;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: 0;
}

.shop-summary-card label {
    color: #303641;
    font-weight: 800;
}

.shop-shipping-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.shop-shipping-form input {
    min-width: 0;
    min-height: 42px;
    border: 1px solid #dfe4ec;
    border-radius: 6px;
    padding: 0 12px;
    outline: none;
}

.shop-shipping-form input:focus {
    border-color: rgba(var(--shop-primary-rgb), .55);
    box-shadow: 0 0 0 4px rgba(var(--shop-primary-rgb), .1);
}

.shop-shipping-form button {
    min-height: 42px;
    border: 0;
    border-radius: 6px;
    background: var(--shop-secondary);
    color: #fff;
    padding: 0 14px;
    font-weight: 800;
    cursor: pointer;
}

.shop-shipping-form button:disabled {
    opacity: .65;
    cursor: wait;
}

.shop-shipping-options {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.shop-shipping-message {
    border: 1px solid #dfe4ec;
    border-radius: 6px;
    color: #606977;
    font-size: 13px;
    padding: 10px 12px;
}

.shop-shipping-message.is-loading {
    align-items: center;
    display: flex;
    gap: 8px;
}

.shop-inline-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(13, 70, 127, .18);
    border-top-color: var(--shop-primary);
    border-radius: 50%;
    animation: shop-spin .75s linear infinite;
    flex: 0 0 auto;
}

.shop-shipping-message.is-error {
    border-color: rgba(190, 18, 60, .25);
    color: #be123c;
    background: rgba(190, 18, 60, .05);
}

.shop-shipping-option-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    border: 1px solid #dfe4ec;
    border-radius: 6px;
    cursor: pointer;
    padding: 11px 12px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.shop-shipping-option-card:hover,
.shop-shipping-option-card:has(input:checked) {
    border-color: rgba(var(--shop-primary-rgb), .55);
    box-shadow: 0 10px 22px rgba(31, 41, 55, .08);
}

.shop-shipping-option-card:has(input:checked) {
    background: rgba(var(--shop-primary-rgb), .06);
}

.shop-shipping-option-card input {
    accent-color: var(--shop-primary);
}

.shop-shipping-option-card span {
    min-width: 0;
}

.shop-shipping-option-card strong,
.shop-shipping-option-card small {
    display: block;
}

.shop-shipping-option-card strong {
    color: #303641;
    font-size: 14px;
    line-height: 1.2;
}

.shop-shipping-option-card small {
    color: #7b8492;
    font-size: 12px;
    margin-top: 2px;
}

.shop-shipping-option-card b {
    color: #303641;
    font-size: 14px;
    white-space: nowrap;
}

.shop-shipping-progress {
    position: fixed;
    inset: 0;
    z-index: 220;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
    padding: 24px;
}

.shop-shipping-progress.is-open {
    display: flex;
}

.shop-shipping-progress-content {
    display: grid;
    justify-items: center;
    gap: 18px;
    color: #fff;
    text-align: center;
}

.shop-shipping-progress-spinner {
    width: 42px;
    height: 42px;
    border: 4px solid rgba(255, 255, 255, .28);
    border-top-color: #fff;
    border-radius: 50%;
    animation: shopShippingSpin .8s linear infinite;
}

.shop-shipping-progress-content p {
    margin: 0;
    font-family: Montserrat, sans-serif;
    font-weight: 850;
    letter-spacing: 0;
}

@keyframes shopShippingSpin {
    to {
        transform: rotate(360deg);
    }
}

.shop-cart-page-empty {
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 46px 20px;
    text-align: center;
}

.shop-cart-page-empty .bi {
    color: var(--shop-primary);
    font-size: 42px;
}

.shop-cart-page-empty h2,
.shop-cart-page-empty p {
    margin: 0;
}

.shop-cart-confirm {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 18px;
}

.shop-cart-confirm.is-open {
    display: flex;
}

.shop-cart-confirm-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(18, 24, 34, .44);
}

.shop-cart-confirm-dialog {
    position: relative;
    z-index: 1;
    width: min(420px, 100%);
    border-radius: 8px;
    background: #fff;
    padding: 22px;
    box-shadow: 0 20px 60px rgba(27, 34, 48, .22);
}

.shop-cart-confirm-dialog h2 {
    margin: 0 0 8px;
    color: #303846;
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-cart-confirm-dialog p {
    margin: 0;
    color: var(--shop-muted);
    line-height: 1.4;
}

.shop-cart-confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
}

.shop-cart-confirm-actions button {
    min-height: 40px;
    border: 0;
    border-radius: 6px;
    padding: 0 14px;
    font-weight: 800;
    cursor: pointer;
}

.shop-cart-confirm-cancel {
    background: #eef1f5;
    color: #303641;
}

.shop-cart-confirm-remove {
    background: #c73333;
    color: #fff;
}

.shop-bottom-nav {
    position: fixed;
    left: 50%;
    bottom: 20px;
    z-index: 20;
    display: none;
    transform: translateX(-50%);
    min-width: 228px;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid rgba(227, 231, 238, .78);
    border-radius: 28px;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 16px 40px rgba(27, 34, 48, .18);
    backdrop-filter: blur(16px);
}

.shop-bottom-nav a {
    position: relative;
    display: inline-grid;
    align-items: center;
    justify-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 86px;
    min-height: 42px;
    border-radius: 21px;
    color: var(--shop-muted);
    font-weight: 700;
}

.shop-bottom-nav a .bi {
    font-size: 18px;
    line-height: 1;
}

.shop-bottom-nav a span {
    font-size: 11px;
    line-height: 1;
}

.shop-bottom-nav a.active {
    color: var(--shop-secondary);
}

.shop-reserve-overlay {
    position: fixed;
    inset: 0;
    z-index: 110;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
}

.shop-reserve-overlay.is-visible {
    display: flex;
}

.shop-search-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .7);
    color: #fff;
}

.shop-search-loading-overlay.is-visible {
    display: flex;
}

.shop-search-loading-box {
    display: grid;
    justify-items: center;
    gap: 16px;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    font-weight: 700;
}

.shop-reserve-box {
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 220px;
    border-radius: 8px;
    background: #fff;
    padding: 24px;
    color: var(--shop-text);
}

.shop-spinner {
    width: 34px;
    height: 34px;
    border: 3px solid rgba(var(--shop-primary-rgb), .2);
    border-top-color: var(--shop-primary);
    border-radius: 50%;
    animation: shop-spin .75s linear infinite;
}

@keyframes shop-spin {
    to {
        transform: rotate(360deg);
    }
}

.shop-toast-stack {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 130;
    display: grid;
    gap: 10px;
    width: min(360px, calc(100vw - 36px));
}

.shop-toast {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    align-items: center;
    gap: 10px;
    border-radius: 8px;
    box-shadow: 0 16px 40px rgba(27, 34, 48, .16);
    padding: 13px 10px 13px 14px;
    background: #1f8f54;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .18s ease, transform .18s ease;
}

.shop-toast button {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 0;
    border-radius: 14px;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    cursor: pointer;
}

.shop-toast button:hover {
    background: rgba(255, 255, 255, .24);
}

.shop-toast.is-error {
    background: #c73333;
}

.shop-toast.is-leaving {
    opacity: 0;
    transform: translateY(-6px);
}

.shop-cart-backdrop {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: none;
    background: rgba(0, 0, 0, .35);
}

.shop-cart-backdrop.is-visible {
    display: block;
}

.shop-cart-offcanvas {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    width: min(420px, 100vw);
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100svh;
    max-height: 100dvh;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    background: #fff;
    box-shadow: -18px 0 48px rgba(27, 34, 48, .18);
    transform: translateX(100%);
    transition: transform .24s ease;
}

.shop-cart-offcanvas.is-open {
    transform: translateX(0);
}

.shop-cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #edf0f4;
    padding: 18px 20px;
}

.shop-cart-header h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-cart-header button {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    border-radius: 18px;
    background: #f3f5f8;
    color: #303641;
    cursor: pointer;
}

.shop-cart-body {
    overflow-y: auto;
    padding: 18px 20px 24px;
}

.shop-account-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 110;
    display: none;
    background: rgba(0, 0, 0, .36);
}

.shop-free-shipping-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 110;
    display: none;
    background: rgba(0, 0, 0, .36);
}

.shop-free-shipping-modal-backdrop.is-open {
    display: block;
}

.shop-free-shipping-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    pointer-events: none;
}

.shop-free-shipping-modal.is-open {
    display: flex;
}

.shop-free-shipping-modal-box {
    width: min(420px, 100%);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(17, 24, 39, .24);
    pointer-events: auto;
}

.shop-free-shipping-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #edf0f4;
    padding: 18px 20px;
}

.shop-free-shipping-modal-header h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-free-shipping-modal-header button {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    border-radius: 18px;
    background: #f3f5f8;
    color: #303641;
    cursor: pointer;
}

.shop-free-shipping-modal-form {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.shop-free-shipping-modal-form label {
    display: grid;
    gap: 7px;
    color: #303641;
    font-size: 13px;
    font-weight: 700;
}

.shop-free-shipping-modal-input-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
}

.shop-free-shipping-modal-form input {
    min-height: 44px;
    border: 1px solid #d7dce3;
    border-radius: 6px 0 0 6px;
    padding: 0 12px;
    color: #202631;
    font-size: 15px;
    outline: none;
}

.shop-free-shipping-modal-form input:focus {
    border-color: var(--shop-primary);
    box-shadow: 0 0 0 3px rgba(var(--shop-primary-rgb), .12);
}

.shop-free-shipping-modal-input-group button {
    min-height: 44px;
    border: 0;
    border-radius: 0 6px 6px 0;
    background: var(--shop-primary);
    padding: 0 16px;
    color: #fff;
    cursor: pointer;
    font-family: Montserrat, sans-serif;
    font-weight: 850;
}

.shop-free-shipping-modal-input-group button:disabled {
    cursor: wait;
    opacity: .72;
}

.shop-free-shipping-modal-result {
    display: none;
    margin: 0;
    border: 1px solid rgba(48, 54, 65, .12);
    border-radius: 8px;
    background: #f7f8fb;
    padding: 12px 14px;
    color: #303641;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.45;
}

.shop-free-shipping-modal-result.is-visible {
    display: block;
}

.shop-free-shipping-modal-result.is-error {
    border-color: rgba(168, 50, 50, .22);
    background: #fff4f4;
    color: #a83232;
}

.shop-free-shipping-modal-result.is-success {
    border-color: rgba(var(--shop-primary-rgb), .28);
    background: rgba(var(--shop-primary-rgb), .1);
    color: var(--shop-primary);
}

.shop-free-shipping-modal-result-close {
    min-height: 42px;
    border: 1px solid rgba(48, 54, 65, .14);
    border-radius: 6px;
    background: #fff;
    color: #303641;
    cursor: pointer;
    font-family: Montserrat, sans-serif;
    font-weight: 800;
}

.shop-free-shipping-modal-result-close[hidden] {
    display: none;
}

.shop-quick-view-backdrop {
    position: fixed;
    inset: 0;
    z-index: 130;
    display: none;
    background: rgba(0, 0, 0, .72);
}

.shop-quick-view-backdrop.is-open {
    display: block;
}

.shop-quick-view-modal {
    position: fixed;
    inset: 0;
    z-index: 140;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 12px;
    pointer-events: none;
}

.shop-quick-view-modal.is-open {
    display: flex;
}

.shop-quick-view-box {
    position: relative;
    width: min(900px, calc(100vw - 24px));
    max-height: min(92vh, 720px);
    overflow: auto;
    background: #fff;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .34);
    pointer-events: auto;
}

.shop-quick-view-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 2;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    background: transparent;
    color: #303641;
    cursor: pointer;
    font-size: 18px;
}

.shop-quick-view-loading,
.shop-quick-view-error {
    display: grid;
    min-height: 220px;
    place-items: center;
    color: #5e6878;
    font-weight: 700;
}

.shop-quick-view {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
    padding: 28px;
}

.shop-quick-view-media {
    position: relative;
    display: grid;
    min-height: 400px;
    place-items: center;
    background: #f2f3f5;
}

.shop-quick-view-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 4px;
    padding: 0 10px;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.shop-quick-view-badge.is-available {
    background: #2d7f2a;
}

.shop-quick-view-badge.is-low {
    background: #b7791f;
}

.shop-quick-view-badge.is-unavailable {
    background: #9b1c1c;
}

.shop-quick-view-image-button {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
}

.shop-quick-view-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.shop-quick-view-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 170;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background: rgba(0, 0, 0, .86);
}

.shop-quick-view-image-viewer.is-open {
    display: flex;
}

.shop-quick-view-image-viewer img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: min(960px, 100%);
    max-height: min(760px, 100%);
    object-fit: contain;
    object-position: center center;
}

.shop-quick-view-image-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 1;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: #18202f;
    cursor: pointer;
    font-size: 18px;
}

.shop-quick-view-info {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 8px 0 0;
}

.shop-quick-view-info h2 {
    max-width: calc(100% - 42px);
    margin: 0 0 5px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 24px;
    line-height: 1.16;
    letter-spacing: 0;
}

.shop-quick-view-sku {
    margin: 0 0 22px;
    color: #848c98;
    font-size: 12px;
    letter-spacing: 0;
    text-transform: uppercase;
}

.shop-quick-view-price {
    display: block;
    margin-bottom: 18px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 19px;
    letter-spacing: 0;
}

.shop-quick-view-details {
    width: fit-content;
    margin: -18px 0 28px;
    color: var(--shop-primary);
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-quick-view-divider {
    height: 1px;
    margin-bottom: 24px;
    background: #e5e7eb;
}

.shop-quick-view-description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    margin: 0 0 32px;
    color: #303641;
    font-size: 15px;
    line-height: 1.58;
    text-overflow: ellipsis;
}

.shop-quick-view-attrs {
    display: grid;
    gap: 10px;
    margin: 0 0 32px;
}

.shop-quick-view-attrs > div {
    display: grid;
    grid-template-columns: minmax(96px, 0.42fr) minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    padding-bottom: 10px;
    border-bottom: 1px solid #eef0f3;
}

.shop-quick-view-attrs dt,
.shop-quick-view-attrs dd {
    margin: 0;
    min-width: 0;
}

.shop-quick-view-attrs dt {
    color: #6b7280;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.shop-quick-view-attrs dd {
    color: #303641;
    font-size: 15px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.shop-quick-view-actions {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
    margin-top: auto;
}

.shop-quick-view-actions .shop-product-qty {
    display: grid;
    grid-template-columns: 34px 1fr 34px;
    min-height: 45px;
    border: 1px solid #d7dce3;
    background: #fff;
}

.shop-quick-view-actions .shop-product-qty button,
.shop-quick-view-actions .shop-product-qty input {
    width: 100%;
    border: 0;
    background: transparent;
    color: #303641;
    text-align: center;
    font-size: 16px;
}

.shop-quick-view-actions .shop-product-qty button {
    cursor: pointer;
}

.shop-quick-view-actions .shop-product-qty input {
    appearance: textfield;
}

.shop-quick-view-actions .shop-product-qty input::-webkit-inner-spin-button,
.shop-quick-view-actions .shop-product-qty input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.shop-quick-view-add {
    min-height: 45px;
    border: 0;
    background: #0f6a46;
    color: #fff;
    cursor: pointer;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 850;
    letter-spacing: 0;
}

.shop-quick-view-add:disabled,
.shop-quick-view-add.is-disabled {
    cursor: not-allowed;
    opacity: .72;
}

body.shop-quick-view-open {
    overflow: hidden;
}

.shop-account-modal-backdrop.is-open {
    display: block;
}

.shop-account-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    pointer-events: none;
}

.shop-account-modal.is-open {
    display: flex;
}

.shop-account-modal-box {
    width: min(420px, 100%);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(17, 24, 39, .24);
    pointer-events: auto;
}

.shop-account-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #edf0f4;
    padding: 18px 20px;
}

.shop-account-modal-header h2 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-account-modal-header button {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    border-radius: 18px;
    background: #f3f5f8;
    color: #303641;
    cursor: pointer;
}

.shop-account-form {
    display: grid;
    gap: 14px;
    padding: 20px;
}

.shop-account-form label {
    display: grid;
    gap: 7px;
    color: #303641;
    font-weight: 700;
}

.shop-account-form input {
    width: 100%;
    height: 44px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    padding: 0 12px;
    color: var(--shop-text);
    font: inherit;
}

.shop-account-form input:disabled,
.shop-account-form button:disabled {
    cursor: wait;
    opacity: .72;
}

.shop-account-alert {
    display: none;
    border: 1px solid rgba(185, 28, 28, .22);
    border-radius: 8px;
    background: #fff1f2;
    color: #9f1239;
    padding: 10px 12px;
    font-size: 14px;
    font-weight: 700;
}

.shop-account-alert.is-visible {
    display: block;
}

.shop-account-alert.is-info {
    border-color: rgba(var(--shop-primary-rgb), .22);
    background: rgba(var(--shop-primary-rgb), .08);
    color: var(--shop-primary);
}

.shop-account-alert-link {
    border: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font: inherit;
    font-weight: 800;
    text-decoration: underline;
    cursor: pointer;
}

.shop-inline-spinner {
    width: 15px;
    height: 15px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: shop-spin .7s linear infinite;
}

.shop-account-login-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.shop-account-link-button {
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--shop-primary);
    font: inherit;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
}

.shop-account-link-button:last-child {
    text-align: right;
}

.shop-account-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.shop-account-form[data-shop-auth-mode="login"] [data-shop-auth-code-wrap],
.shop-account-form[data-shop-auth-mode="login"] [data-shop-auth-reset-wrap],
.shop-account-form[data-shop-auth-mode="login"] [data-shop-recovery-back],
.shop-account-form[data-shop-auth-mode="recovery_request"] [data-shop-auth-password-wrap],
.shop-account-form[data-shop-auth-mode="recovery_request"] [data-shop-auth-code-wrap],
.shop-account-form[data-shop-auth-mode="recovery_request"] [data-shop-auth-reset-wrap],
.shop-account-form[data-shop-auth-mode="recovery_request"] .shop-account-login-links,
.shop-account-form[data-shop-auth-mode="recovery_request"] [data-shop-recovery-back],
.shop-account-form[data-shop-auth-mode="recovery_code"] [data-shop-auth-password-wrap],
.shop-account-form[data-shop-auth-mode="recovery_code"] [data-shop-auth-email-wrap],
.shop-account-form[data-shop-auth-mode="recovery_code"] [data-shop-auth-reset-wrap],
.shop-account-form[data-shop-auth-mode="recovery_code"] .shop-account-login-links,
.shop-account-form[data-shop-auth-mode="recovery_reset"] [data-shop-auth-email-wrap],
.shop-account-form[data-shop-auth-mode="recovery_reset"] [data-shop-auth-password-wrap],
.shop-account-form[data-shop-auth-mode="recovery_reset"] [data-shop-auth-code-wrap],
.shop-account-form[data-shop-auth-mode="recovery_reset"] .shop-account-login-links,
.shop-account-form[data-shop-auth-mode="recovery_reset"] [data-shop-recovery-back] {
    display: none;
}

.shop-account-form[data-shop-auth-mode="recovery_code"] .shop-account-actions {
    grid-template-columns: 1fr 1fr;
}

.shop-account-code,
.shop-account-reset {
    display: grid;
    gap: 10px;
}

.shop-account-code > span {
    color: #303641;
    font-weight: 700;
}

.shop-account-code-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
}

.shop-account-code-grid input {
    padding: 0;
    text-align: center;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    font-weight: 800;
}

.shop-password-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    overflow: hidden;
}

.shop-password-field input {
    border: 0;
    border-radius: 0;
}

.shop-password-field button {
    display: grid;
    place-items: center;
    border: 0;
    background: #f7f8fa;
    color: #303641;
    cursor: pointer;
}

.shop-account-dashboard,
.shop-account-dashboard-login {
    display: grid;
    gap: 24px;
    padding: 28px 0 48px;
}

.shop-account-dashboard-login {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    border: 1px solid #edf0f4;
    border-radius: 8px;
    background: #fff;
    padding: 28px;
    box-shadow: 0 18px 52px rgba(29, 35, 48, .08);
}

.shop-account-dashboard-login h1,
.shop-account-dashboard-head h1 {
    margin: 4px 0 8px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: clamp(24px, 3vw, 34px);
    letter-spacing: 0;
}

.shop-account-dashboard-login p,
.shop-account-dashboard-head p,
.shop-dashboard-card-head p {
    margin: 0;
    color: var(--shop-muted);
}

.shop-dashboard-kicker {
    color: var(--shop-primary);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.shop-account-dashboard-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
}

.shop-dashboard-primary-link,
.shop-dashboard-small-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border-radius: 8px;
    background: var(--shop-primary);
    color: #fff;
    padding: 0 16px;
    font-weight: 800;
    text-decoration: none;
}

.shop-dashboard-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.shop-dashboard-stat {
    position: relative;
    display: grid;
    gap: 6px;
    min-height: 104px;
    border: 1px solid #edf0f4;
    border-radius: 8px;
    background: #fff;
    padding: 22px 78px 22px 22px;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 18px 52px rgba(29, 35, 48, .08);
}

.shop-dashboard-stat span {
    color: #8a8f98;
    font-size: 14px;
}

.shop-dashboard-stat strong {
    color: #3a3737;
    font-family: Montserrat, sans-serif;
    font-size: 30px;
    line-height: 1;
    letter-spacing: 0;
}

.shop-dashboard-stat i {
    position: absolute;
    top: 24px;
    right: 22px;
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 16px;
    background: rgba(var(--shop-primary-rgb), .12);
    color: var(--shop-primary);
    font-size: 24px;
}

.shop-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
    gap: 24px;
    align-items: start;
}

.shop-dashboard-side {
    display: grid;
    gap: 24px;
}

.shop-dashboard-card {
    border: 1px solid #edf0f4;
    border-radius: 8px;
    background: #fff;
    padding: 24px;
    box-shadow: 0 18px 52px rgba(29, 35, 48, .08);
}

.shop-dashboard-card-head {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 26px;
}

.shop-dashboard-card h2,
.shop-dashboard-card-head h2 {
    margin: 0 0 6px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-dashboard-table-wrap {
    overflow-x: auto;
}

.shop-dashboard-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 660px;
}

.shop-dashboard-table th {
    background: rgba(var(--shop-primary-rgb), .08);
    color: #191b20;
    padding: 14px 16px;
    font-size: 12px;
    text-align: left;
    text-transform: uppercase;
}

.shop-dashboard-table td {
    border-bottom: 1px solid #e3e7ee;
    padding: 14px 16px;
    color: #1f2430;
}

.shop-dashboard-table td a {
    display: grid;
    gap: 4px;
    color: inherit;
    text-decoration: none;
}

.shop-dashboard-table td small {
    color: #8a8f98;
}

.shop-favorites-page .shop-dashboard-card {
    overflow: hidden;
}

.shop-favorites-table tbody tr {
    cursor: pointer;
}

.shop-favorites-table tbody tr:hover td,
.shop-favorites-table tbody tr:focus td {
    background: rgba(var(--shop-primary-rgb), .05);
}

.shop-favorites-action-col {
    width: 52px;
    text-align: right;
}

.shop-favorite-remove {
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    background: #fff;
    color: #9f1239;
    cursor: pointer;
}

.shop-favorite-remove:hover,
.shop-favorite-remove:focus {
    border-color: #fecdd3;
    background: #fff1f2;
    outline: none;
}

.shop-favorite-remove:disabled {
    cursor: wait;
    opacity: .65;
}

.shop-dashboard-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 28px;
    border-radius: 999px;
    background: #f5eef2;
    color: var(--shop-primary);
    padding: 0 12px;
    font-size: 12px;
    font-weight: 800;
}

.shop-dashboard-status.is-success {
    background: #e9f5ee;
    color: #067a3f;
}

.shop-dashboard-status.is-info {
    background: rgba(var(--shop-primary-rgb), .1);
    color: var(--shop-primary);
}

.shop-dashboard-status.is-danger {
    background: #fff1f2;
    color: #be123c;
}

.shop-dashboard-empty {
    border: 1px dashed #d5dbe5;
    border-radius: 8px;
    padding: 18px;
    color: var(--shop-muted);
    text-align: center;
}

.shop-dashboard-data {
    display: grid;
    gap: 8px;
    margin-top: 18px;
    color: var(--shop-muted);
}

.shop-dashboard-data strong {
    color: #3a3737;
    font-family: Montserrat, sans-serif;
    font-size: 20px;
    letter-spacing: 0;
}

.shop-dashboard-favorites .shop-dashboard-card-head {
    margin-bottom: 18px;
}

.shop-dashboard-favorite-list {
    display: grid;
    gap: 14px;
}

.shop-dashboard-favorite-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.shop-dashboard-favorite-item img {
    width: 58px;
    height: 58px;
    border: 1px solid #edf0f4;
    border-radius: 8px;
    background: #f7f8fa;
    object-fit: cover;
}

.shop-dashboard-favorite-item span {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.shop-dashboard-favorite-item strong {
    overflow: hidden;
    color: var(--shop-text);
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-dashboard-favorite-item small {
    color: var(--shop-muted);
    font-size: 13px;
}

.shop-dashboard-actions {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

.shop-dashboard-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    color: var(--shop-text);
    font-weight: 800;
    text-decoration: none;
}

.shop-dashboard-actions a:first-child {
    border-color: var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
}

.shop-edit-account {
    gap: 18px;
}

.shop-edit-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.shop-edit-tabs button {
    min-height: 42px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    background: #fff;
    color: var(--shop-text);
    padding: 0 16px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.shop-edit-tabs button.is-active {
    border-color: var(--shop-primary);
    background: var(--shop-primary);
    color: #fff;
}

.shop-edit-panel {
    display: none;
}

.shop-edit-panel.is-active {
    display: block;
}

.shop-edit-form {
    display: grid;
    gap: 20px;
}

.shop-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.shop-edit-grid label {
    display: grid;
    gap: 7px;
    color: #303641;
    font-weight: 800;
}

.shop-edit-grid input,
.shop-edit-grid select {
    width: 100%;
    height: 44px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    background: #fff;
    padding: 0 12px;
    color: var(--shop-text);
    font: inherit;
}

.shop-edit-grid input:focus,
.shop-edit-grid select:focus {
    border-color: var(--shop-primary);
    outline: 3px solid rgba(var(--shop-primary-rgb), 0.12);
}

.shop-edit-grid input:disabled,
.shop-edit-grid select:disabled,
.shop-edit-form button:disabled {
    cursor: wait;
    opacity: .72;
}

.shop-edit-field-wide {
    grid-column: 1 / -1;
}

.shop-edit-grid.is-address {
    grid-template-columns: repeat(12, minmax(0, 1fr));
}

.shop-edit-col-12 {
    grid-column: span 12;
}

.shop-edit-col-8 {
    grid-column: span 8;
}

.shop-edit-col-6 {
    grid-column: span 6;
}

.shop-edit-col-4 {
    grid-column: span 4;
}

.shop-edit-divider {
    width: 100%;
    border: 0;
    border-top: 1px solid #edf0f4;
    margin: 2px 0;
}

.shop-edit-section-title {
    display: grid;
    gap: 4px;
}

.shop-edit-section-title.is-inline {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 16px;
}

.shop-edit-section-title h3 {
    margin: 0;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.25;
    letter-spacing: 0;
}

.shop-edit-section-title p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
}

.shop-edit-actions {
    display: flex;
    justify-content: flex-end;
}

.shop-edit-copy {
    min-height: 38px;
    border: 1px solid #dce1e8;
    border-radius: 8px;
    background: #fff;
    color: var(--shop-text);
    padding: 0 12px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.shop-cep-loading {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
}

.shop-cep-loading.is-visible {
    display: flex;
}

.shop-cep-loading > div {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border-radius: 8px;
    background: #111;
    color: #fff;
    padding: 16px 18px;
    box-shadow: 0 18px 52px rgba(0, 0, 0, 0.3);
}

.shop-orders-page {
    display: grid;
    gap: 18px;
}

.shop-orders-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(32, 37, 48, 0.08);
    padding: 24px;
}

.shop-orders-head h1 {
    margin: 4px 0 6px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 28px;
    line-height: 1.15;
    letter-spacing: 0;
}

.shop-orders-head p {
    margin: 0;
    color: var(--shop-muted);
}

.shop-order-card,
.shop-order-info-card {
    overflow: hidden;
    border: 1px solid #e4e8ee;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(32, 37, 48, 0.06);
}

.shop-order-cover {
    height: 138px;
    background: var(--shop-primary);
}

.shop-order-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.86;
}

.shop-order-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
}

.shop-order-store {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.shop-order-avatar {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(var(--shop-primary-rgb), 0.1);
    color: var(--shop-primary);
    font-size: 19px;
}

.shop-order-store strong,
.shop-order-header-total strong,
.shop-order-item-price {
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    letter-spacing: 0;
}

.shop-order-store span span,
.shop-order-item small,
.shop-order-info-card p {
    color: var(--shop-muted);
}

.shop-order-store strong {
    display: block;
    overflow: hidden;
    font-size: 16px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-order-store span span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
}

.shop-order-header-total {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    text-align: right;
}

.shop-order-header-total strong {
    font-size: 18px;
}

.shop-order-items {
    display: grid;
    gap: 14px;
    border-top: 1px solid #edf0f4;
    padding: 18px;
}

.shop-order-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
}

.shop-order-item-info {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.shop-order-item-info img {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    object-fit: cover;
    background: #eef0ed;
}

.shop-order-item-info strong {
    display: block;
    overflow: hidden;
    color: var(--shop-text);
    font-size: 14px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-order-item small {
    display: block;
    margin-top: 4px;
    font-size: 12px;
}

.shop-order-item-price {
    font-size: 16px;
    white-space: nowrap;
}

.shop-order-totals {
    display: grid;
    gap: 12px;
    border-top: 1px solid #edf0f4;
    padding: 16px 18px;
}

.shop-order-totals div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: var(--shop-text);
    font-size: 14px;
}

.shop-order-totals strong {
    font-family: Montserrat, sans-serif;
    letter-spacing: 0;
    white-space: nowrap;
}

.shop-order-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 0 18px 18px;
}

.shop-order-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    border-radius: 17px;
    padding: 0 14px;
    color: #fff;
    font-weight: 800;
    font-size: 13px;
    text-decoration: none;
}

.shop-order-action.is-primary {
    background: #00a84f;
}

.shop-order-action.is-secondary {
    background: #f6a11a;
}

.shop-order-action i {
    margin-right: 6px;
}

.shop-order-info-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
}

.shop-order-info-card {
    padding: 18px;
}

.shop-order-info-card h2 {
    margin: 0 0 14px;
    color: var(--shop-text);
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 0;
}

.shop-order-info-card p {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.55;
}

.shop-order-chip {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border-radius: 11px;
    background: rgba(var(--shop-primary-rgb), 0.08);
    color: var(--shop-primary);
    padding: 0 9px;
    font-weight: 800;
    font-size: 11px;
}

.shop-order-chip.is-success {
    background: #e7f5ec;
    color: #07843f;
}

.shop-order-chip.is-danger {
    background: #fdebea;
    color: #c93232;
}

.shop-order-chip.is-info {
    background: #eef4ff;
    color: var(--shop-primary);
}

@media (max-width: 1180px) {
    .shop-dashboard-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .shop-account-dashboard-head,
    .shop-dashboard-card-head,
    .shop-account-dashboard-login {
        grid-template-columns: 1fr;
        display: grid;
        align-items: start;
    }

    .shop-dashboard-summary {
        grid-template-columns: 1fr;
    }

    .shop-account-dashboard-head .shop-dashboard-primary-link,
    .shop-dashboard-summary {
        display: none;
    }

    .shop-dashboard-stat {
        min-height: 92px;
    }

    .shop-edit-grid,
    .shop-edit-grid.is-address,
    .shop-edit-section-title.is-inline {
        grid-template-columns: 1fr;
    }

    .shop-edit-col-12,
    .shop-edit-col-8,
    .shop-edit-col-6,
    .shop-edit-col-4 {
        grid-column: 1 / -1;
    }

    .shop-edit-actions {
        justify-content: stretch;
    }

    .shop-edit-actions .shop-button,
    .shop-edit-copy {
        width: 100%;
    }

    .shop-orders-head,
    .shop-order-header,
    .shop-order-actions {
        display: grid;
        justify-items: stretch;
    }

    .shop-order-header-total {
        justify-items: start;
        text-align: left;
    }

    .shop-order-info-grid {
        grid-template-columns: 1fr;
    }

    .shop-order-cover {
        height: 108px;
    }

    .shop-order-item {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .shop-order-item-price {
        padding-left: 58px;
    }
}

.shop-cart-empty {
    border: 1px dashed #d5dbe5;
    border-radius: 8px;
    padding: 18px;
    color: var(--shop-muted);
    text-align: center;
}

.shop-cart-items {
    display: grid;
    gap: 14px;
}

.shop-cart-item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}

.shop-cart-item a {
    color: inherit;
    text-decoration: none;
}

.shop-cart-item img {
    width: 72px;
    height: 72px;
    border-radius: 8px;
    object-fit: cover;
    background: #eef0ed;
}

.shop-cart-item h3 {
    margin: 0 0 4px;
    overflow: hidden;
    color: #303846;
    font-size: 15px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-cart-item p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 13px;
}

.shop-cart-item-total {
    color: #0d5f49;
    font-family: Montserrat, sans-serif;
    font-size: 18px;
    line-height: 1.15;
    letter-spacing: 0;
    white-space: nowrap;
}

.shop-cart-item-pricebox {
    display: grid;
    justify-items: end;
    gap: 3px;
}

.shop-cart-item-titlebox {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.shop-cart-item-titlebox small {
    color: #0d7a4f;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.1;
    text-align: left;
}

.shop-cart-item-titlebox .shop-cart-item-composition {
    color: var(--shop-muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.25;
}

.shop-cart-item-qty {
    display: grid;
    grid-template-columns: 30px 44px 30px;
    align-items: center;
    gap: 6px;
    width: max-content;
    margin-top: 10px;
}

.shop-cart-item-qty button,
.shop-cart-item-qty input {
    width: 100%;
    height: 30px;
    border: 0;
    font: inherit;
    font-weight: 800;
    text-align: center;
}

.shop-cart-item-qty button {
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: var(--shop-primary);
    color: #fff;
    cursor: pointer;
}

.shop-cart-item-qty input {
    background: #fff;
    color: var(--shop-text);
}

.shop-cart-item .shop-cart-duplicate {
    width: max-content;
}

.shop-cart-summary {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #edf0f4;
    margin-top: 18px;
    padding-top: 16px;
    font-size: 16px;
}

.shop-cart-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    border-radius: 6px;
    margin-top: 16px;
    background: var(--shop-primary);
    color: #fff;
    font-weight: 800;
}

.shop-cart-offcanvas {
    width: min(420px, 100vw);
    grid-template-rows: auto minmax(0, 1fr);
    box-shadow: -18px 0 48px rgba(27, 34, 48, .18);
}

.shop-cart-offcanvas .shop-cart-header {
    min-height: 73px;
    border-bottom-color: #e5e7eb;
    padding: 0 20px;
}

.shop-cart-offcanvas .shop-cart-header h2 {
    color: #202631;
    font-size: 22px;
    font-weight: 850;
}

.shop-cart-offcanvas .shop-cart-header button {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #f4f6f8;
    color: #667085;
}

.shop-cart-offcanvas .shop-cart-body {
    display: grid;
    grid-template-rows: minmax(0, 1fr);
    min-height: 0;
    overflow: hidden;
    padding: 0;
}

.shop-cart-offcanvas-inner {
    position: relative;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    background: #f7f7f7;
}

.shop-cart-shipping-loading {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .5);
    padding: 24px;
}

.shop-cart-shipping-loading.is-open {
    display: flex;
}

.shop-cart-shipping-loading-content {
    display: grid;
    justify-items: center;
    gap: 16px;
    color: #fff;
    text-align: center;
}

.shop-cart-shipping-loading-spinner {
    width: 38px;
    height: 38px;
    border: 4px solid rgba(255, 255, 255, .28);
    border-top-color: #fff;
    border-radius: 50%;
    animation: shopShippingSpin .8s linear infinite;
}

.shop-cart-shipping-loading-content p {
    margin: 0;
    color: #fff;
    font-family: Montserrat, sans-serif;
    font-size: 16px;
    font-weight: 850;
}

.shop-cart-offcanvas .shop-cart-free-shipping {
    position: relative;
    z-index: 2;
    grid-row: 2;
    border-bottom: 1px solid #e1e4e8;
    align-content: start;
    gap: 8px;
    min-height: 0;
    padding: 12px 20px 10px;
}

.shop-cart-offcanvas .shop-local-cart-countdown {
    position: relative;
    z-index: 2;
    grid-row: 1;
    margin: 0;
    border-radius: 0;
    background: rgba(var(--shop-primary-rgb), .1);
}

.shop-cart-offcanvas .shop-cart-free-shipping-content {
    width: 100%;
    min-height: 24px;
}

.shop-cart-offcanvas .shop-cart-free-shipping-bar {
    width: 100%;
    margin: 0;
}

.shop-cart-offcanvas .shop-shipping-options[hidden],
.shop-cart-offcanvas .shop-shipping-options:empty {
    display: none !important;
    margin: 0;
}

.shop-cart-offcanvas .shop-cart-items {
    grid-row: 3;
    align-content: start;
    align-self: stretch;
    gap: 0;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.shop-cart-offcanvas .shop-cart-item {
    position: relative;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
    min-height: 94px;
    align-items: start;
    border-bottom: 1px solid #edf0f4;
    background: #fff;
    padding: 18px 20px 16px;
}

.shop-cart-offcanvas .shop-cart-item img {
    width: 72px;
    height: 72px;
    border-radius: 6px;
}

.shop-cart-offcanvas .shop-cart-item-info {
    min-width: 0;
    padding-right: 0;
}

.shop-cart-offcanvas .shop-cart-item-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 92px;
    align-items: start;
    gap: 10px;
    margin-bottom: 8px;
    min-width: 0;
}

.shop-cart-offcanvas .shop-cart-item h3 {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: #202631;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-cart-offcanvas .shop-cart-item-head strong {
    display: block;
    min-width: 0;
    color: #202631;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
}

.shop-cart-offcanvas .shop-cart-item p {
    color: #7a828e;
    font-size: 13px;
}

.shop-cart-offcanvas .shop-cart-item-qty {
    grid-template-columns: 30px 34px 30px;
    gap: 8px;
    margin-top: 0;
}

.shop-cart-offcanvas .shop-cart-item-qty button,
.shop-cart-offcanvas .shop-cart-item-qty input {
    height: 30px;
}

.shop-cart-offcanvas .shop-cart-item-qty button {
    border-radius: 50%;
    background: var(--shop-primary);
    color: #fff;
}

.shop-cart-offcanvas .shop-cart-item-qty input {
    color: #202631;
    font-size: 16px;
}

.shop-cart-offcanvas .shop-cart-row-remove {
    position: absolute;
    right: 20px;
    bottom: 22px;
    color: #777;
    font-size: 13px;
}

.shop-cart-offcanvas .shop-cart-summary {
    position: relative;
    z-index: 3;
    grid-row: 4;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 10px;
    border-top: 1px solid #e1e4e8;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
    padding: 16px 20px calc(20px + env(safe-area-inset-bottom));
}

.shop-cart-offcanvas .shop-cart-summary > * {
    justify-self: stretch;
    width: 100%;
    max-width: none;
}

.shop-cart-offcanvas .shop-cart-summary .shop-summary-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 0;
    padding: 0;
    width: 100%;
    gap: 16px;
}

.shop-cart-offcanvas .shop-cart-summary .shop-summary-line span {
    color: #202631;
    font-size: 16px;
}

.shop-cart-offcanvas .shop-cart-summary .shop-summary-line strong {
    display: block;
    margin-left: auto;
    color: #202631;
    font-family: Montserrat, sans-serif;
    font-size: 16px;
    font-weight: 850;
    text-align: right;
    white-space: nowrap;
}

.shop-cart-offcanvas .shop-cart-summary p {
    position: relative;
    margin: 0 0 8px;
    padding-left: 15px;
    width: 100%;
    box-sizing: border-box;
    color: #7a828e;
    font-size: 13px;
}

.shop-cart-offcanvas .shop-cart-summary p::before {
    content: "";
    position: absolute;
    left: 1px;
    top: .36em;
    width: 9px;
    height: 9px;
    border: 1px solid #7a828e;
    border-radius: 50%;
}

.shop-cart-offcanvas .shop-cart-checkout {
    display: flex;
    margin-top: 0;
    margin-right: 0;
    margin-left: 0;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    border-radius: 6px;
    text-transform: uppercase;
    font-family: Montserrat, sans-serif;
    font-weight: 850;
}

.shop-cart-offcanvas .shop-cart-payment {
    background: #303030;
    color: #fff;
}

.shop-cart-offcanvas .shop-cart-payment:hover {
    background: #1f1f1f;
    color: #fff;
}

@media (max-width: 1080px) {
    .shop-product {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .shop-product:has(.shop-product-gallery.is-single) {
        grid-template-columns: minmax(0, 1fr);
    }

    .shop-product-gallery {
        grid-template-columns: 88px minmax(0, 1fr);
    }

    .shop-product-main-image {
        width: 100%;
    }

    .shop-product-info {
        position: static;
    }

    .shop-product-left,
    .shop-product-info {
        display: contents;
    }

    .shop-product-main-card {
        order: 1;
    }

    .shop-product-media {
        order: 2;
    }

    .shop-product-shipping-card {
        order: 3;
    }

    .shop-cross-sell {
        order: 4;
        margin-top: 0;
    }

    .shop-product-description-card {
        order: 5;
    }

    .shop-product-accordions {
        order: 6;
    }

    .shop-shell {
        grid-template-columns: 1fr;
    }

    .shop-header-horizontal .shop-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        z-index: 80;
        display: block;
        width: min(300px, 86vw);
        transform: translateX(-100%);
        transition: transform .22s ease;
        box-shadow: 18px 0 48px rgba(27, 34, 48, .22);
    }

    .shop-header-horizontal.shop-sidebar-open .shop-sidebar {
        transform: translateX(0);
    }

    .shop-header-horizontal .shop-sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: none;
        background: rgba(15, 20, 28, .42);
    }

    .shop-header-horizontal.shop-sidebar-open .shop-sidebar-backdrop {
        display: block;
    }

    .shop-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        z-index: 80;
        display: block;
        width: min(300px, 86vw);
        transform: translateX(-100%);
        transition: transform .22s ease;
        box-shadow: 18px 0 48px rgba(27, 34, 48, .22);
    }

    .shop-sidebar-open .shop-sidebar {
        transform: translateX(0);
    }

    .shop-sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 70;
        display: none;
        background: rgba(15, 20, 28, .42);
    }

    .shop-sidebar-open .shop-sidebar-backdrop {
        display: block;
    }

    .shop-sidebar-collapsed .shop-shell {
        grid-template-columns: 1fr;
    }

    .shop-sidebar-collapsed .shop-logo img {
        display: block;
        width: min(138px, 100%);
    }

    .shop-sidebar-collapsed .shop-side-section,
    .shop-sidebar-collapsed .shop-side-title,
    .shop-sidebar-collapsed .shop-side-item span,
    .shop-sidebar-collapsed .shop-side-chevron {
        display: block;
    }

    .shop-sidebar-collapsed .shop-side-item.is-divider {
        display: block;
    }

    .shop-sidebar-collapsed .shop-side-subnav {
        display: grid;
    }

    .shop-sidebar-collapsed .shop-side-item > a,
    .shop-sidebar-collapsed .shop-side-group-toggle {
        justify-content: flex-start;
        padding: 0 18px;
    }

    .shop-offers {
        grid-template-columns: repeat(3, 280px);
    }

    .shop-grid {
        grid-template-columns: repeat(3, minmax(170px, 1fr));
    }

    .shop-cart-layout {
        grid-template-columns: 1fr;
    }

    .shop-cart-col-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .shop-product-media {
        order: 2;
    }

    .shop-product-gallery {
        grid-template-columns: minmax(0, 1fr);
    }

    .shop-product-main-image {
        order: 1;
    }

    .shop-product-gallery-thumbs {
        order: 2;
        display: flex;
        gap: 9px;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 2px 2px 4px;
    }

    .shop-product-gallery-thumb {
        flex: 0 0 74px;
        width: 74px;
        height: 88px;
    }

    .shop-product-shipping-card {
        order: 3;
    }

    .shop-product-description-card {
        order: 4;
    }

    .shop-product-accordions {
        order: 5;
    }

    .shop-announcement {
        min-height: 36px;
        justify-content: center;
        padding: 0 14px;
        text-align: center;
        font-size: 12px;
    }

    .shop-announcement-socials,
    .shop-header-v2-search,
    .shop-header-v2-main > .shop-header-slot-search,
    .shop-header-v2-actions,
    .shop-header-v2-nav {
        display: none;
    }

    .shop-header-v2-main {
        grid-template-columns: 82px minmax(0, 1fr) 82px;
        min-height: 70px;
        gap: 8px;
        padding: 8px 14px;
    }

    .shop-header-v2-mobile-tools {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 15px;
        grid-column: 1;
        grid-row: 1;
    }

    .shop-header-v2-main > .shop-header-slot-brand {
        grid-column: 2;
        grid-row: 1;
    }

    .shop-header-v2-icon,
    .shop-header-v2-mobile-cart {
        width: 26px;
        height: 34px;
        padding: 0;
        font-size: 25px;
    }

    .shop-header-v2-mobile-tools .shop-header-v2-icon:nth-child(2) {
        font-size: 22px;
    }

    .shop-header-v2-logo img {
        width: min(118px, 100%);
        max-height: 52px;
    }

    .shop-header-v2-mobile-cart {
        display: inline-flex;
        justify-self: end;
        font-size: 24px;
        grid-column: 3;
        grid-row: 1;
    }

    .shop-header-v2-mobile-search {
        grid-template-columns: minmax(0, 1fr) 46px;
        padding: 0 14px 12px;
        background: #fff;
    }

    .shop-header-v2-mobile-search.is-open {
        display: grid;
    }

    .shop-header-v2-mobile-search input {
        min-height: 42px;
        border: 1px solid #e4e7ed;
        border-right: 0;
        border-radius: 0;
        padding: 0 12px;
        font: inherit;
        outline: none;
    }

    .shop-header-v2-mobile-search button {
        border: 0;
        background: var(--shop-primary);
        color: #fff;
        font-size: 18px;
    }

    .shop-topbar {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 12px;
    }

    .shop-top-actions {
        display: none;
    }

    .shop-main {
        padding-top: 18px;
    }

    .shop-home-banner {
        height: 350px;
    }

    .shop-home-banner-slide {
        background-image: var(--shop-banner-mobile-image, var(--shop-banner-image));
        background-position: var(--shop-banner-mobile-position, var(--shop-banner-position, center center));
    }

    .shop-local-home .shop-home-banner {
        height: 280px;
    }

    .shop-home-banner-content {
        width: min(440px, calc(100% - 28px));
        gap: 12px;
        padding-bottom: 54px;
    }

    .shop-home-banner-kicker {
        font-size: 12px;
    }

    .shop-home-banner-kicker::after {
        width: 72px;
        margin-top: 7px;
    }

    .shop-home-banner h1,
    .shop-home-banner h2 {
        font-size: 28px;
        line-height: 1.1;
    }

    .shop-home-trustbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
        margin-top: 32px;
        padding: 24px 18px;
    }

    .shop-home-trustbar-item {
        gap: 12px;
    }

    .shop-home-trustbar-icon {
        width: 30px;
        height: 30px;
    }

    .shop-home-trustbar strong {
        font-size: 15px;
    }

    .shop-home-trustbar small {
        font-size: 12px;
        line-height: 1.45;
    }

    .shop-home-banner-text {
        font-size: 18px;
        line-height: 1.45;
    }

    .shop-home-banner-button {
        min-height: 44px;
        padding: 0 22px;
        font-size: 13px;
    }

    .shop-home-banner-free-shipping-badge {
        min-height: 44px;
        padding: 0 18px;
        font-size: 13px;
    }

    .shop-home-banner-controls {
        bottom: 0;
        width: min(280px, calc(100% - 90px));
        height: 28px;
        border-radius: 4px 4px 0 0;
    }

    .shop-offers {
        grid-template-columns: repeat(3, 252px);
    }

    .shop-wide-offer {
        grid-template-columns: 1fr auto;
    }

    .shop-wide-offer img {
        display: none;
    }

    .shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .shop-product {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .shop-product-header h1 {
        font-size: 24px;
    }

    .shop-product-main-image img {
        height: auto;
        min-height: 0;
        aspect-ratio: 1 / 1;
    }

    .shop-product-actions {
        grid-template-columns: 116px minmax(0, 1fr);
    }

    .shop-quick-view-modal {
        align-items: center;
        padding: max(18px, env(safe-area-inset-top)) 14px max(22px, env(safe-area-inset-bottom));
    }

    .shop-quick-view-box {
        width: calc(100vw - 28px);
        max-height: calc(100vh - 56px);
        max-height: calc(100svh - 56px);
        max-height: calc(100dvh - 56px);
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .shop-quick-view {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 16px;
    }

    .shop-quick-view-media {
        min-height: 0;
        height: 180px;
        max-height: 28vh;
        max-height: 28svh;
        overflow: hidden;
    }

    .shop-quick-view-media img {
        object-fit: contain;
        object-position: center center;
    }

    .shop-quick-view-image-viewer {
        padding: max(22px, env(safe-area-inset-top)) 14px max(22px, env(safe-area-inset-bottom));
    }

    .shop-quick-view-image-close {
        top: max(14px, env(safe-area-inset-top));
        right: 14px;
    }

    .shop-quick-view-info {
        padding: 0;
    }

    .shop-quick-view-info h2 {
        font-size: 20px;
    }

    .shop-quick-view-actions {
        grid-template-columns: 102px minmax(0, 1fr);
        position: sticky;
        bottom: 0;
        margin: 0 -16px -16px;
        border-top: 1px solid #edf0f4;
        background: #fff;
        padding: 12px 16px calc(16px + env(safe-area-inset-bottom));
    }

    .shop-product-description dl.row {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .shop-product-description dd {
        margin-bottom: 10px;
    }

    .shop-card-media img {
        height: 150px;
    }

    .shop-cart-page-header {
        align-items: flex-start;
        flex-direction: column;
        text-align: center;
    }

    .shop-cart-page-header h1 {
        font-size: 26px;
    }

    .shop-cart-page-header > div,
    .shop-cart-continue {
        width: 100%;
    }

    .shop-cart-continue {
        justify-content: center;
    }

    .shop-cart-continue .bi {
        display: none;
    }

    .shop-cart-col-4 {
        grid-template-columns: 1fr;
    }

    .shop-cart-row {
        grid-template-columns: 82px minmax(0, 1fr) auto;
        gap: 12px;
        align-items: start;
    }

    .shop-cart-row-media img {
        width: 82px;
        height: 82px;
    }

    .shop-cart-row.is-virtual .shop-cart-row-media img {
        width: 74px;
        height: 74px;
    }

    .shop-cart-row-info {
        grid-column: 2;
        gap: 12px;
    }

    .shop-cart-row-info h2 {
        font-size: 15px;
    }

    .shop-cart-row-composition {
        grid-template-columns: 1fr;
    }

    .shop-cart-qty {
        width: 98px;
        grid-template-columns: 30px 38px 30px;
    }

    .shop-cart-row-prices {
        grid-column: 3;
        grid-row: 1;
        align-self: start;
        justify-items: end;
    }

    .shop-cart-row-total {
        font-size: 15px;
        text-align: right;
    }

    .shop-shipping-form {
        grid-template-columns: 1fr;
    }

    .shop-cart-drawer-page {
        width: 100%;
        min-height: calc(100vh - 20px);
        margin: 0;
    }

    .shop-cart-drawer-header {
        min-height: 66px;
    }

    .shop-cart-free-shipping-content {
        width: 100%;
    }

    .shop-cart-drawer-page .shop-cart-row {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 16px;
        min-height: 154px;
        padding: 24px 14px 18px;
    }

    .shop-cart-drawer-page .shop-cart-row-media img {
        width: 82px;
        height: 104px;
    }

    .shop-cart-drawer-page .shop-cart-row-info {
        grid-column: 2;
    }

    .shop-cart-row-remove {
        grid-column: 2;
        justify-self: end;
        padding: 0;
    }

    .shop-cart-drawer-footer {
        padding-bottom: 86px;
    }

    .shop-footer {
        margin-top: 22px;
        padding: 24px 16px 92px;
    }

    .shop-footer.is-flush {
        margin-top: 0;
    }

    .shop-footer-desktop {
        display: none;
    }

    .shop-footer-extra {
        display: none;
    }

    .shop-footer-mobile {
        display: grid;
    }

    .shop-footer-mobile details {
        border-top: 1px solid rgba(255, 255, 255, .24);
        padding: 14px 0;
    }

    .shop-footer-mobile details:last-of-type {
        border-bottom: 1px solid rgba(255, 255, 255, .24);
    }

    .shop-footer-mobile summary {
        display: flex;
        align-items: center;
        gap: 12px;
        justify-content: space-between;
        cursor: pointer;
        color: #fff;
        font-family: Montserrat, sans-serif;
        font-weight: 800;
        list-style: none;
    }

    .shop-footer-mobile summary .bi {
        transition: transform .18s ease;
    }

    .shop-footer-mobile details[open] summary .bi {
        transform: rotate(180deg);
    }

    .shop-footer-mobile a {
        display: block;
        padding-top: 14px;
    }

    .shop-footer-mobile-contact {
        display: grid;
        gap: 12px;
        padding-top: 16px;
    }

    .shop-footer-bottom {
        grid-template-columns: auto 1fr;
        margin-top: 20px;
        padding-top: 28px;
    }

    .shop-payments {
        display: none;
    }

    .shop-whatsapp {
        width: 64px;
        height: 64px;
    }

    .shop-bottom-nav {
        display: flex;
    }
}

@media (max-width: 1180px) {
    .shop-product-container:has(.shop-product.is-virtual) {
        width: min(100%, calc(100vw - 40px));
    }

    .shop-home-content {
        width: min(100%, calc(100vw - 40px));
        gap: 32px;
    }

    .shop-home-category-section.has-feature {
        gap: 24px;
    }

    .shop-home-category-section.feature-direita {
        grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr);
    }

    .shop-home-category-section.feature-esquerda {
        grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
    }

    .shop-home-category-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-home-category-carousel .shop-card {
        flex-basis: 33.333%;
    }

    .shop-home-category-carousel .shop-home-category-title-card {
        flex-basis: 33.333%;
    }

    .shop-category-hero-inner {
        width: min(100%, calc(100vw - 40px));
    }

    .shop-category-layout {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 20px;
    }

    .shop-category-products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .shop-product-container:has(.shop-product.is-virtual) {
        width: min(100%, calc(100vw - 24px));
    }

    .shop-product-quantity-options {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-home-content {
        width: min(100%, calc(100vw - 24px));
        gap: 24px;
    }

    .shop-home-simple-header .shop-header-v2-main {
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 58px;
        padding: 8px 12px;
    }

    .shop-home-simple-header .shop-header-v2-mobile-tools {
        display: none;
    }

    .shop-home-simple-header .shop-header-v2-main > span {
        display: none;
    }

    .shop-home-simple-header .shop-header-v2-logo {
        justify-self: start;
        justify-content: flex-start;
    }

    .shop-local-home .shop-header-v2-logo,
    .shop-local-logo-only .shop-header-v2-logo {
        justify-self: center;
        justify-content: center;
    }

    .shop-home-simple-header .shop-header-v2-logo img {
        width: min(116px, 42vw);
        max-height: 42px;
    }

    .shop-home-simple-header .shop-header-v2-mobile-cart {
        display: none;
    }

    .shop-home-simple-header .shop-home-floating-checkout {
        left: 0;
        right: 0;
        bottom: 0;
        width: auto;
        box-sizing: border-box;
        grid-template-columns: minmax(0, 1fr) auto auto;
        gap: 0;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 0;
        margin: 0;
        padding: 0;
    }

    .shop-home-simple-header .shop-checkout-floating-warning {
        left: 0;
        right: 0;
        bottom: calc(64px + env(safe-area-inset-bottom));
        border-right: 0;
        border-left: 0;
        box-shadow: 0 -8px 18px rgba(15, 23, 42, .08);
    }

    .shop-home-floating-total {
        min-height: calc(64px + env(safe-area-inset-bottom));
        align-content: center;
        padding: 12px 10px calc(12px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    }

    .shop-home-floating-total strong {
        font-size: 17px;
    }

    .shop-home-floating-button {
        align-self: stretch;
        min-width: 132px;
        min-height: calc(64px + env(safe-area-inset-bottom));
        margin: 0;
        padding: 0 max(16px, env(safe-area-inset-right)) env(safe-area-inset-bottom) 16px;
    }

    .shop-home-floating-cart {
        align-self: stretch;
        width: 62px;
        min-height: calc(64px + env(safe-area-inset-bottom));
        border-top: 0;
        border-bottom: 0;
        padding-bottom: env(safe-area-inset-bottom);
    }

    .shop-simple-catalog-toolbar {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
    }

    .shop-simple-catalog-toolbar .shop-category-view-icons {
        justify-self: end;
        white-space: nowrap;
    }

    .shop-home-category-section.has-feature {
        grid-template-columns: 1fr;
    }

    .shop-home-category-section.feature-direita,
    .shop-home-category-section.feature-esquerda {
        grid-template-columns: 1fr;
    }

    .shop-home-category-section.feature-direita .shop-home-category-feature,
    .shop-home-category-section.feature-esquerda .shop-home-category-feature {
        order: 1;
    }

    .shop-home-category-section.feature-direita .shop-home-category-products,
    .shop-home-category-section.feature-esquerda .shop-home-category-products {
        order: 2;
    }

    .shop-home-category-feature {
        height: auto;
        min-height: 0;
        padding: 28px;
    }

    .shop-home-category-feature video,
    .shop-home-category-feature img {
        position: absolute;
        inset: 0;
    }

    .shop-home-category-copy {
        position: relative;
        inset: auto;
    }

    .shop-home-subcategory-tabs {
        gap: 24px;
        width: max-content;
        max-width: 100%;
        margin: 0 auto;
        padding: 0 8px 12px;
    }

    .shop-home-subcategory-tabs button {
        font-size: 15px;
    }

    .shop-home-category-products,
    .shop-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
    }

    .shop-home-category-title-card > div {
        min-height: 190px;
        padding: 22px;
    }

    .shop-home-category-title-card h2 {
        font-size: 20px;
    }

    .shop-category-hero {
        min-height: 240px;
    }

    .shop-category-hero-inner {
        width: min(100%, calc(100vw - 24px));
        padding-bottom: 28px;
    }

    .shop-category-breadcrumb {
        margin-bottom: 12px;
        font-size: 12px;
    }

    .shop-category-hero h1 {
        font-size: 30px;
    }

    .shop-category-page {
        gap: 22px;
    }

    .shop-category-description {
        font-size: 15px;
        line-height: 1.55;
    }

    .shop-category-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-category-filter-button {
        display: none;
    }

    .shop-category-toolbar-right {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .shop-category-layout {
        display: block;
    }

    .shop-category-filters {
        display: none;
    }

    .shop-category-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-category-products:not(.is-list) .shop-card-media {
        height: 180px;
    }

    .shop-category-products:not(.is-list) .shop-card-media img {
        height: 100%;
        min-height: 0;
        object-fit: cover;
        object-position: center center;
    }

    .shop-category-products.is-list .shop-card {
        grid-template-columns: 112px minmax(0, 1fr);
        min-height: 0;
    }

    .shop-category-products.is-list .shop-card-media {
        position: relative;
        width: 112px;
        height: 100%;
        aspect-ratio: auto;
        min-height: 0;
        overflow: hidden;
    }

    .shop-category-products.is-list .shop-card-media a {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
    }

    .shop-category-products.is-list .shop-card-media img {
        position: absolute;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        min-height: 0;
        max-width: none;
        object-fit: cover;
        object-position: center center;
    }

    .shop-category-products.is-list .shop-card-body {
        padding: 12px;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: start;
        gap: 8px 12px;
    }

    .shop-category-products.is-list .shop-card-info {
        display: contents;
    }

    .shop-category-products.is-list .shop-card-body p:not(.shop-card-summary) {
        grid-column: 1;
        grid-row: 1;
        padding-right: 10px;
    }

    .shop-category-products.is-list .shop-card-body h3 {
        grid-column: 1;
        grid-row: 2;
        padding-right: 10px;
    }

    .shop-category-products.is-list .shop-card-actions {
        display: contents;
    }

    .shop-category-products.is-list .shop-card-price {
        grid-column: 1;
        grid-row: 3;
        justify-self: start;
        margin: 2px 0 0;
    }

    .shop-category-products.is-list .shop-card-actions .shop-add {
        display: none;
    }

    .shop-category-products.is-list .shop-card-actions .shop-card-qty-wrap {
        display: block;
        grid-column: 2;
        grid-row: 1 / span 2;
        align-self: start;
        justify-self: end;
    }

    .shop-category-products.is-list .shop-card-actions.is-in-cart {
        display: contents;
    }

    .shop-category-products.is-list .shop-card-actions.is-in-cart .shop-card-qty-wrap {
        grid-column: 2;
        grid-row: 1 / span 2;
    }

    .shop-category-products.is-list .shop-card-body .shop-card-summary {
        grid-column: 1 / -1;
        grid-row: 4;
        margin-top: 6px;
        -webkit-line-clamp: 2;
    }

    .shop-category-products.is-list .shop-card-meta {
        justify-self: start;
        grid-column: 1 / -1;
        grid-row: 5;
        margin-left: 0;
        margin-top: 4px;
    }

    .shop-category-sort-menu {
        right: auto;
        left: 0;
        width: min(270px, calc(100vw - 24px));
    }

    .shop-home-category-carousel {
        display: flex;
        flex-wrap: nowrap;
        grid-template-columns: none;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

    .shop-home-category-carousel .shop-card {
        flex: 0 0 78%;
        width: 78%;
        min-width: 240px;
        max-width: none;
        scroll-snap-align: start;
    }

    .shop-home-category-carousel .shop-home-category-title-card {
        flex: 0 0 78%;
        width: 78%;
        min-width: 240px;
        max-width: none;
    }

    .shop-card-media {
        aspect-ratio: 1 / 1;
    }

    .shop-grid:not(.is-list):not(.shop-home-category-carousel) > .shop-card {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
        grid-template-rows: auto auto;
    }

    .shop-grid:not(.is-list):not(.shop-home-category-carousel) > .shop-card .shop-card-media {
        width: 100%;
        max-width: 100%;
        height: clamp(150px, 42vw, 190px);
        aspect-ratio: auto;
        overflow: hidden;
    }

    .shop-grid:not(.is-list):not(.shop-home-category-carousel) > .shop-card .shop-card-media a {
        position: static;
        display: block;
        width: 100%;
        height: 100%;
    }

    .shop-grid:not(.is-list):not(.shop-home-category-carousel) > .shop-card .shop-card-media img {
        position: static;
        width: 100%;
        max-width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: cover;
        object-position: center center;
    }

    .shop-card-media img {
        height: 100%;
        min-height: 0;
        object-fit: cover;
        object-position: center center;
        transform: none;
    }

    .shop-card-body {
        grid-template-columns: minmax(0, 1fr);
        padding: 12px;
        min-height: 112px;
    }

    .shop-card-actions {
        min-height: 38px;
        align-items: center;
    }

    .shop-add {
        width: 34px;
        height: 34px;
    }

    .shop-cross-sell-panel {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .shop-cross-sell-heading {
        align-items: flex-start;
        gap: 12px;
    }

    .shop-cross-sell-heading h2 {
        font-size: 20px;
    }

    .shop-cross-sell-heading span {
        flex: 0 0 auto;
        min-height: 28px;
        font-size: 11px;
        text-align: center;
    }

    .shop-cross-sell-items {
        display: grid;
        gap: 10px;
        overflow: visible;
        padding-bottom: 0;
    }

    .shop-cross-sell-plus {
        display: none;
    }

    .shop-cross-sell-summary {
        border-left: 0;
        border-top: 1px solid #e3e9e1;
        padding: 16px 0 0;
    }

    .shop-cross-sell-item {
        grid-template-columns: 78px minmax(130px, 1fr);
        width: 100%;
        min-width: 0;
    }

    .shop-cross-sell-item img {
        width: 78px;
        height: 78px;
    }

    .shop-cross-sell-add {
        width: 100%;
    }
}
.shop-product-quantity-block {
    margin: 18px 0 0;
}

.shop-product-quantity-block h2 {
    margin: 0 0 10px;
    color: #123f32;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.shop-product-quantity-options {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.shop-product-quantity-options label {
    position: relative;
    display: block;
    margin: 0;
    cursor: pointer;
}

.shop-product-quantity-options input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.shop-product-quantity-options span {
    display: grid;
    gap: 3px;
    min-height: 64px;
    padding: 10px 12px;
    border: 1px solid #dce5df;
    border-radius: 8px;
    background: #fff;
    color: #183f33;
}

.shop-product-quantity-options strong {
    font-size: 14px;
    line-height: 1.1;
}

.shop-product-quantity-options small {
    color: #667085;
    font-size: 11px;
    line-height: 1.25;
}

.shop-product-quantity-options input:checked + span {
    border-color: #0f5b43;
    background: #eef8f3;
    box-shadow: inset 0 0 0 1px #0f5b43;
}

.shop-product-quantity-options label.is-disabled {
    cursor: not-allowed;
}

.shop-product-quantity-options label.is-disabled span {
    opacity: .5;
    background: #f4f5f5;
}

.shop-product-virtual-config {
    display: grid;
    gap: 14px;
    margin: 18px 0 0;
}

.shop-product.is-virtual .shop-product-virtual-config {
    margin: 0;
}

.shop-product-virtual-includes,
.shop-product-virtual-group {
    display: grid;
    gap: 10px;
}

.shop-product-virtual-group {
    border-radius: 12px;
}

.shop-product-virtual-group.is-highlighted {
    animation: shopVirtualGroupHighlight 1.8s ease;
}

@keyframes shopVirtualGroupHighlight {
    0%,
    68% {
        background: rgba(255, 214, 102, .28);
        box-shadow: 0 0 0 8px rgba(255, 214, 102, .22);
        outline: 2px solid rgba(15, 91, 67, .28);
    }

    100% {
        background: transparent;
        box-shadow: 0 0 0 0 rgba(255, 214, 102, 0);
        outline: 2px solid rgba(15, 91, 67, 0);
    }
}

.shop-product-virtual-includes h2,
.shop-product-virtual-group h2 {
    margin: 0;
    color: #123f32;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
}

.shop-product-virtual-include-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.shop-product-virtual-include-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    min-height: 68px;
    padding: 8px;
    border: 1px solid #dce5df;
    border-radius: 8px;
    background: #fff;
}

.shop-product-virtual-include-card img,
.shop-product-virtual-option-card img {
    width: 52px;
    height: 52px;
    border-radius: 7px;
    object-fit: cover;
    background: #f3f5f4;
}

.shop-product-virtual-include-card span {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.shop-product-virtual-include-card strong {
    overflow: hidden;
    color: #183f33;
    font-size: 13px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-product-virtual-include-card small {
    color: #667085;
    font-size: 11px;
}

.shop-product-virtual-fixed-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #eef8f3;
    color: #0f5b43;
    font-size: 14px;
    font-weight: 800;
}

.shop-product-virtual-group-head {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
}

.shop-product-virtual-group-head small {
    color: #667085;
    font-size: 12px;
}

.shop-product-virtual-group-description {
    margin: -4px 0 0;
    color: #4b5d57;
    font-size: 13px;
    line-height: 1.45;
}

.shop-product-virtual-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.shop-product-virtual-option-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-height: 68px;
    padding: 9px 10px;
    border: 1px solid #dce5df;
    border-radius: 8px;
    background: #fff;
}

.shop-product-virtual-option-card.is-selected {
    border-color: #0f5b43;
    background: #eef8f3;
}

.shop-product-virtual-option-card.is-disabled:not(.is-selected) {
    opacity: .55;
}

.shop-product-virtual-option-card.is-unavailable {
    border-color: #e2e5e8;
    background: #f3f4f5;
    color: #7a828c;
    cursor: not-allowed;
    opacity: .72;
}

.shop-product-virtual-option-card.is-unavailable img {
    filter: grayscale(1);
    opacity: .6;
}

.shop-product-virtual-option-card.is-unavailable strong,
.shop-product-virtual-option-card.is-unavailable small {
    color: #7a828c;
}

.shop-product-virtual-options span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.shop-product-virtual-options strong {
    overflow: hidden;
    color: #183f33;
    font-size: 13px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-product-virtual-options small {
    color: #667085;
    font-size: 11px;
}

.shop-product-virtual-stepper {
    display: inline-grid;
    grid-auto-flow: column;
    gap: 6px;
    align-items: center;
}

.shop-product-virtual-stepper button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #0f5b43;
    color: #fff;
    font-weight: 800;
}

.shop-product-virtual-stepper button[hidden] {
    display: none !important;
}

.shop-product-virtual-stepper [data-shop-virtual-minus] {
    border: 1px solid #303030;
    background: #dff1e8;
    color: #0f5b43;
    box-shadow: inset 0 0 0 1px rgba(15, 91, 67, .12);
}

.shop-product-virtual-stepper button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.shop-product-virtual-stepper b {
    min-width: 18px;
    color: #183f33;
    font-size: 14px;
    text-align: center;
}

.shop-product-virtual-instruction {
    position: fixed;
    z-index: 80;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 12px 18px;
    border: 1px solid #303030;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
    background: #303030;
    color: #fff;
    box-shadow: 0 -8px 24px rgba(0, 0, 0, .18);
    cursor: pointer;
    font-size: 15px;
    font-weight: 800;
    text-align: center;
}

.shop-product-virtual-instruction span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.shop-product-virtual-instruction:focus-visible {
    outline: 3px solid rgba(15, 91, 67, .26);
    outline-offset: 3px;
}

.shop-product-virtual-instruction.is-complete {
    background: #0f5b43;
    color: #fff;
}

@media (min-width: 1081px) {
    .shop-product.is-virtual .shop-product-overview-card .shop-product-header {
        display: none;
        margin-bottom: 0;
    }

    .shop-product.is-virtual .shop-product-overview-card .shop-product-summary,
    .shop-product.is-virtual .shop-product-overview-card .shop-product-description-inline {
        display: none;
    }

    body.shop-product-virtual-scrolled .shop-product.is-virtual .shop-product-overview-card .shop-product-header {
        display: grid;
    }

    .shop-product.is-virtual .shop-product-overview-card .shop-product-header p {
        display: none;
    }

    .shop-product.is-virtual .shop-product-overview-card .shop-product-header h1 {
        font-size: 24px;
    }

    .shop-product.is-virtual .shop-product-overview-card .shop-product-header strong {
        margin-top: 4px;
        font-size: 24px;
    }
}

@media (max-width: 1080px) {
    .shop-product.is-virtual .shop-product-main-card {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }

    .shop-product.is-virtual .shop-product-overview-column {
        order: 1;
        position: static;
    }

    .shop-product.is-virtual .shop-product-builder-card {
        order: 2;
    }

    .shop-product-builder-intro {
        display: none;
    }
}

@media (max-width: 640px) {
    body:has(.shop-product.is-virtual) .shop-bottom-nav {
        display: none;
    }

    .shop-product.is-virtual {
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
    }

    .shop-product-virtual-instruction {
        min-height: calc(54px + env(safe-area-inset-bottom));
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
        font-size: 14px;
    }

    .shop-product-virtual-options,
    .shop-product-virtual-include-grid {
        grid-template-columns: 1fr;
    }

    .shop-product-virtual-option-card {
        grid-template-columns: 46px minmax(0, 1fr) auto;
    }
}
