/**
 * CareEarth storefront — polished UI, motion (respects prefers-reduced-motion).
 * Loaded after Aimeos theme CSS.
 */

:root {
    --ce-shop-accent: #0d9488;
    --ce-shop-accent-hover: #0f766e;
    --ce-shop-accent-soft: rgba(13, 148, 136, 0.12);
    --ce-shop-surface: #ffffff;
    --ce-shop-page-bg: #eefcf4;
    --ce-shop-page-bg-bottom: #eefcf4;
    --ce-home-block-bg: #eefcf4;
    --ce-shop-page-shell: none;
    --ce-shop-shadow: 0 4px 6px -1px rgba(15, 23, 42, 0.06), 0 10px 24px -8px rgba(15, 23, 42, 0.08);
    --ce-shop-shadow-hover: 0 12px 28px -6px rgba(15, 23, 42, 0.12), 0 8px 16px -8px rgba(13, 148, 136, 0.15);
    --ce-shop-radius: 14px;
    --ce-shop-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --ce-shop-dur: 0.4s;
    --ce-pill-radius: 16px;
    --ce-ui-dark: #1a1a1a;
    --ce-ui-dark-hover: #2d2d2d;
    --ce-nav-mega-bg: linear-gradient(
        168deg,
        rgba(30, 41, 59, 0.96) 0%,
        rgba(15, 23, 42, 0.99) 48%,
        rgba(13, 148, 136, 0.14) 100%
    );
    --ce-nav-mega-border: rgba(94, 234, 212, 0.22);
    --ce-nav-mega-shadow: 0 28px 56px -14px rgba(2, 6, 23, 0.62), 0 0 0 1px rgba(255, 255, 255, 0.07) inset,
        0 1px 0 rgba(45, 212, 191, 0.12) inset;
    --ce-nav-cat-card-bg: linear-gradient(155deg, rgba(255, 255, 255, 0.09) 0%, rgba(255, 255, 255, 0.03) 55%, rgba(15, 23, 42, 0.15) 100%);
    --ce-nav-cat-card-border: rgba(148, 163, 184, 0.16);
    --ce-nav-cat-card-hover: linear-gradient(155deg, rgba(45, 212, 191, 0.18) 0%, rgba(13, 148, 136, 0.1) 45%, rgba(15, 23, 42, 0.08) 100%);
}

@keyframes ce-shop-card-in {
    from {
        opacity: 0;
        transform: translateY(14px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ce-shop-fade-up {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes ce-nav-mega-panel-in {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes ce-nav-cat-item-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes ce-nav-auth-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Page canvas — soft mint background (#ECFDF5) */
body {
    background-color: var(--ce-shop-page-bg) !important;
    background-image: none !important;
}

body {
    overflow-x: hidden;
}

body .content {
    background-color: var(--ce-shop-page-bg) !important;
    background-image: none !important;
    max-width: 100%;
    overflow-x: clip;
}

/* Specified Commercial Transactions page — keep the mint shell around the centered layout */
body.page-careearth-tokushou,
body.page-careearth-tokushou .content {
    background-color: var(--ce-shop-page-bg) !important;
    background-image: none !important;
}

/*
 * Standalone catalog listing (category / search / tree) — not home merchandising rails
 * (those sections carry .ce-home-cat-block). Uses :has() so home mint shell stays intact.
 */
body:has(main .aimeos.catalog-list:not(.ce-home-cat-block)) {
    background-color: var(--ce-shop-page-bg-bottom) !important;
    background-image: none !important;
}

body:has(main .aimeos.catalog-list:not(.ce-home-cat-block)) .content {
    background-color: var(--ce-shop-page-bg-bottom) !important;
    background-image: none !important;
}

/* CMS legal/policy pages — replace the legacy gray outer canvas with CareEarth mint */
.aimeos.cms-page {
    --ce-policy-band: #eefcf4;
    --ce-policy-page: transparent;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #f7fffb 100%);
    border-color: rgba(13, 148, 136, 0.14);
    box-shadow: 0 20px 44px -28px rgba(15, 118, 110, 0.22);
    clip-path: none;
}

/* Aimeos theme assumes a fixed navbar and adds large top margin; our header is sticky (in document flow). */
body > .content,
body .main-section {
    margin-top: 0 !important;
}

/* Full-width product rails (home category rows + catalog listing — not CMS pages)
 * Note: layout is div.content > main > … (not main > .content), so scope with main only. */
main .aimeos.catalog-home .container-xxl,
main .ce-home-cat-block__container.container-xxl {
    max-width: 100% !important;
    width: 100%;
}

main .ce-home-cat-block__container.container-xxl {
    padding-inline: clamp(0.5rem, 2.2vw, 1.35rem);
}

/* Home: space below hero slider before bestseller / next blocks */
main .aimeos.catalog-home.ce-home-slider-wrap {
    margin-bottom: clamp(1.25rem, 3.5vw, 2.5rem);
}

/* Home: bestseller row spacing below hero slider */
main .ce-home-bestsellers-wrap {
    margin-top: clamp(1rem, 2.5vw, 2rem);
}

/* Home: "best selling" promo — full content width like catalog list (no narrow inset) */
main .ce-home-bestsellers-wrap--promo {
    box-sizing: border-box;
    width: 100%;
    max-width: min(1260px, calc(100% - clamp(1rem, 3.2vw, 2.75rem)));
    margin-inline: auto;
    margin-top: clamp(2rem, 5vw, 3.75rem);
    padding-inline: 0;
}

/* Home: "best selling" promo band (wood header + cream 2×2 cards) */
.ce-home-bestsellers--promo {
    font-family: system-ui, -apple-system, 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Noto Sans JP', Meiryo, sans-serif;
    margin-inline: 0;
    padding: 0;
    border-radius: 14px;
    background: transparent;
    box-shadow: 0 10px 40px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.ce-home-bestsellers__banner {
    position: relative;
    overflow: hidden;
    padding: 0;
    margin: 0;
    text-align: center;
    color: #fff;
    background: #2a1d12;
    border-bottom: 3px solid rgba(62, 39, 18, 0.35);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.ce-home-bestsellers__banner-photo {
    display: block;
    width: 100%;
    height: auto;
}

.ce-home-bestsellers__sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ce-home-bestsellers__panel {
    background: #efe8c8;
    padding: clamp(0.8rem, 2vw, 1.15rem);
    border-bottom: 1px solid rgba(120, 90, 52, 0.18);
}

.ce-home-bestsellers__container.container-xxl {
    padding-inline: 0;
}

.ce-home-bestsellers__panel-head {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.7rem;
}

.ce-home-bestsellers__more {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: #14532d;
    text-decoration: none;
    padding: 0.35rem 0.5rem;
    border-radius: 8px;
    transition: color 0.2s ease, background 0.2s ease;
}

.ce-home-bestsellers__more:hover {
    color: #0f3d21;
    background: rgba(20, 83, 45, 0.08);
}

.ce-home-bestsellers__more-arrow {
    font-size: 1rem;
    line-height: 1;
}

.ce-home-bestsellers__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.7rem, 1.8vw, 1rem);
    width: 100%;
}

.ce-home-bestsellers__item {
    display: grid;
    grid-template-columns: minmax(0, 48%) minmax(0, 52%);
    min-height: clamp(180px, 20vw, 230px);
    background: linear-gradient(180deg, #dcc5ad 0%, #d0b294 100%);
    border: 4px solid #f6efd6;
    box-shadow: 0 10px 24px rgba(72, 51, 28, 0.08);
    overflow: hidden;
}

.ce-home-bestsellers__media {
    position: relative;
    display: block;
    min-height: 100%;
    background: #ece7df;
    text-decoration: none;
}

.ce-home-bestsellers__media img,
.ce-home-bestsellers__media-placeholder {
    display: block;
    width: 100%;
    height: 100%;
}

.ce-home-bestsellers__media img {
    object-fit: cover;
    object-position: center;
}

.ce-home-bestsellers__media-placeholder {
    background: linear-gradient(135deg, #f3eee6 0%, #e1d6c8 100%);
}

.ce-home-bestsellers__body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    padding: clamp(0.72rem, 1.9vw, 0.95rem) clamp(0.78rem, 1.8vw, 0.95rem) clamp(0.65rem, 1.6vw, 0.82rem);
    background:
        linear-gradient(115deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 58%),
        linear-gradient(180deg, rgba(255, 250, 242, 0.1) 0%, rgba(162, 120, 83, 0.08) 100%);
}

.ce-home-bestsellers__copy {
    color: inherit;
    text-decoration: none;
}

.ce-home-bestsellers__item-title {
    margin: 0 0 0.45rem;
    font-size: clamp(3.4rem, 6.2vw, 4.9rem);
    font-weight: 900 !important;
    line-height: 0.92;
    color: #ffffff !important;
    letter-spacing: -0.03em;
    text-shadow: 0 1px 2px rgba(101, 70, 39, 0.24);
}

.ce-home-bestsellers .ce-home-bestsellers__copy,
.ce-home-bestsellers .ce-home-bestsellers__copy:visited,
.ce-home-bestsellers .ce-home-bestsellers__copy:hover,
.ce-home-bestsellers .ce-home-bestsellers__copy:focus {
    color: inherit;
    text-decoration: none;
}

.ce-home-bestsellers .ce-home-bestsellers__copy .ce-home-bestsellers__item-title,
.ce-home-bestsellers .ce-home-bestsellers__copy:visited .ce-home-bestsellers__item-title,
.ce-home-bestsellers .ce-home-bestsellers__copy:hover .ce-home-bestsellers__item-title,
.ce-home-bestsellers .ce-home-bestsellers__copy:focus .ce-home-bestsellers__item-title {
    color: #ffffff !important;
    font-weight: 900 !important;
}

.ce-home-bestsellers__item-desc {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.48;
    color: #2f241a;
    display: -webkit-box;
    line-clamp: 4;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ce-home-bestsellers__item-foot {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.ce-home-bestsellers__price {
    font-size: clamp(1.45rem, 2.7vw, 2.2rem);
    font-weight: 800;
    line-height: 1;
    color: #fffef8;
    text-shadow: 0 1px 0 rgba(87, 58, 26, 0.2);
    text-align: right;
}

.ce-home-bestsellers__detail-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-width: clamp(7.75rem, 28vw, 9.5rem);
    padding: 0.38rem 0.95rem;
    border: 2px solid #98c95d;
    background: #fffef8;
    color: #627031;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

.ce-home-bestsellers__detail-btn:hover {
    color: #526123;
}

@media (max-width: 767.98px) {
    .ce-home-bestsellers__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .ce-home-bestsellers__item {
        grid-template-columns: 1fr;
    }

    .ce-home-bestsellers__media {
        min-height: 220px;
    }

    .ce-home-bestsellers__detail-btn {
        min-width: 0;
        width: 100%;
    }
}

.aimeos.catalog-list .container-xxl {
    max-width: 100% !important;
    width: 100%;
    padding-inline: clamp(0.5rem, 2.2vw, 1.35rem);
}

main {
    animation: ce-shop-fade-up 0.55s var(--ce-shop-ease) both;
}

@media (prefers-reduced-motion: reduce) {
    main {
        animation: none;
    }
}

/* Top navigation — clean white header */
.navbar.navbar-top.careearth-navbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    width: 100%;
    max-width: 100%;
    min-height: clamp(4.75rem, 11vw, 5.75rem);
    padding-block: clamp(0.7rem, 1.8vw, 1rem);
    padding-inline: max(1rem, env(safe-area-inset-left, 0px))
        max(1rem, env(safe-area-inset-right, 0px));
    column-gap: clamp(0.5rem, 1.2vw, 0.85rem);
    row-gap: 0.45rem;
    align-items: center;
    background-color: #ffffff !important;
    background-image: none !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
    transition: box-shadow var(--ce-shop-dur) var(--ce-shop-ease), transform var(--ce-shop-dur) var(--ce-shop-ease);
}

.navbar.navbar-top.careearth-navbar > .navbar-brand {
    grid-area: ce-brand;
    margin-inline-end: 0;
}

.navbar.navbar-top.careearth-navbar > .basket-mini {
    grid-area: ce-basket;
    margin-inline-start: 0;
    justify-self: end;
}

.navbar.navbar-top.careearth-navbar > .navbar-toggler {
    grid-area: ce-toggler;
    margin-inline-start: 0.35rem;
    justify-self: end;
}

.navbar.navbar-top.careearth-navbar > .careearth-navbar-collapse {
    grid-area: ce-menu;
}

@media (max-width: 991.98px) {
    .navbar.navbar-top.careearth-navbar {
        display: grid !important;
        flex-wrap: unset !important;
        grid-template-columns: minmax(0, 1fr) auto auto;
        grid-template-areas:
            'ce-brand ce-basket ce-toggler'
            'ce-menu ce-menu ce-menu';
        align-items: center;
    }

    .navbar.navbar-top.careearth-navbar > .navbar-brand {
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
    }

    .navbar.navbar-top.careearth-navbar > .navbar-brand img,
    .navbar.navbar-top.careearth-navbar > .navbar-brand img.careearth-navbar-logo {
        display: block;
        max-width: 100%;
    }

    .navbar.navbar-top.careearth-navbar > .basket-mini,
    .navbar.navbar-top.careearth-navbar > .navbar-toggler {
        position: static;
        flex: 0 0 auto;
    }
}

@media (min-width: 992px) {
    .navbar.navbar-top.careearth-navbar {
        display: flex;
        flex-wrap: nowrap;
    }

    .navbar.navbar-top.careearth-navbar > .basket-mini {
        order: 4;
        margin-inline-start: clamp(0.4rem, 0.9vw, 0.7rem);
    }

    .navbar.navbar-top.careearth-navbar > .navbar-toggler {
        display: none !important;
    }

    .navbar.navbar-top.careearth-navbar > .careearth-navbar-collapse {
        order: 2;
        flex-basis: auto;
        flex-grow: 1;
        display: flex !important;
        align-items: center;
        gap: clamp(0.35rem, 0.8vw, 0.6rem);
    }
}

.navbar.navbar-top .careearth-navbar-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(0.5rem, 1vw, 0.75rem);
    margin-inline-start: auto;
}

/* Mobile / tablet: compact subnav always visible in header row 2 */
@media (max-width: 991.98px) {
    .navbar.navbar-top.careearth-navbar > .navbar-toggler,
    .navbar.navbar-top.careearth-navbar.navbar-expand-lg .navbar-toggler {
        display: none !important;
    }

    .navbar.navbar-top.careearth-navbar > .careearth-navbar-collapse,
    .navbar.navbar-top.careearth-navbar.navbar-expand-lg .navbar-collapse,
    .navbar.navbar-top.careearth-navbar.navbar-expand-lg .navbar-collapse:not(.show),
    .navbar.navbar-top.careearth-navbar.navbar-expand-lg .navbar-collapse.show {
        display: grid !important;
        grid-template-columns: minmax(0, auto) minmax(0, 1fr);
        grid-template-areas: 'ce-nav-cats ce-nav-tools';
        align-items: center;
        gap: 0.45rem 0.65rem;
        width: 100%;
        min-width: 0;
        padding-block: 0.5rem 0.65rem;
        border-top: 1px solid rgba(15, 23, 42, 0.06);
        margin-top: 0.1rem;
    }

    .navbar.navbar-top .careearth-navbar-collapse > .catalog-filter,
    .navbar.navbar-top .careearth-navbar-collapse > .section.catalog-filter-tree,
    .navbar.navbar-top .careearth-navbar-collapse .catalog-filter-tree {
        grid-area: ce-nav-cats;
        min-width: 0;
    }

    .navbar.navbar-top .careearth-navbar-tools {
        grid-area: ce-nav-tools;
        width: auto;
        min-width: 0;
        margin-inline-start: 0;
        padding-top: 0;
        justify-content: flex-end;
        justify-self: stretch;
        flex-wrap: nowrap;
        gap: 0.4rem 0.5rem;
    }

    .navbar.navbar-top .careearth-navbar-auth {
        width: auto;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        gap: 0.4rem;
        margin-inline-start: 0;
    }

    .navbar.navbar-top .catalog-filter-search .input-group > .form-control {
        display: none;
    }

    .navbar.navbar-top .catalog-filter-search .input-group .btn-search {
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
    }
}

@media (max-width: 575.98px) {
    .navbar.navbar-top.careearth-navbar > .careearth-navbar-collapse,
    .navbar.navbar-top.careearth-navbar.navbar-expand-lg .navbar-collapse {
        grid-template-columns: 1fr;
        grid-template-areas:
            'ce-nav-cats'
            'ce-nav-tools';
        gap: 0.4rem;
    }

    .navbar.navbar-top .careearth-navbar-tools {
        justify-content: space-between;
        flex-wrap: wrap;
    }
}

/* Logo — original asset (white matte blends into header) */
.navbar.navbar-top .navbar-brand.careearth-navbar-brand {
    background: transparent !important;
    border: 0;
    box-shadow: none;
    padding-block: 0;
    padding-inline: 0;
    margin-inline-end: 0.5rem;
}

.navbar.navbar-top .navbar-brand.careearth-navbar-brand img,
.navbar.navbar-top .navbar-brand img.careearth-navbar-logo {
    height: auto;
    max-height: clamp(4.5rem, 10vw, 5.5rem);
    width: auto;
    max-width: min(56vw, 340px);
    object-fit: contain;
    vertical-align: middle;
    transition: transform 0.35s var(--ce-shop-ease), filter 0.35s ease;
    filter: none;
}

.navbar.navbar-top .navbar-brand:not(.careearth-navbar-brand) img {
    height: auto;
    max-height: clamp(4.5rem, 10vw, 5.5rem);
    width: auto;
    transition: transform 0.35s var(--ce-shop-ease), filter 0.35s ease;
    filter: none;
}

/* Basket icons — black (bootstrap-icons ::before + links in navbar / catalog) */
.navbar.navbar-top .basket a::before,
.navbar.navbar-top .basket-mini a::before,
.navbar.navbar-top [class*='basket'] > a::before,
.navbar.navbar-top [class*='mini-basket'] a::before,
.navbar.navbar-top [class*='basket'] .btn::before,
.aimeos .basket a::before,
.aimeos .basket-mini a::before,
.aimeos [class*='mini-basket'] a::before,
.aimeos [class*='basket-standard'] a::before,
.aimeos .addbasket .btn::before,
.aimeos .addbasket .btn-primary::before,
.aimeos .addbasket button.btn::before,
.aimeos .product .addbasket .btn::before {
    color: #000000 !important;
}

.navbar.navbar-top .basket svg,
.navbar.navbar-top .basket-mini svg,
.navbar.navbar-top [class*='basket'] svg,
.aimeos .basket svg,
.aimeos .basket-mini svg,
.aimeos .addbasket .btn svg {
    color: #000000 !important;
    fill: currentColor !important;
}

/* Mini basket in header — black cart glyph (::after on .menu) + black quantity pill (see basket-mini.css) */
.navbar.navbar-top .basket-mini .menu {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    height: 3.25rem;
    padding: 0 !important;
    border-radius: 999px;
    color: #0f172a !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.97) 54%, rgba(236, 253, 245, 0.96) 100%);
    border: 1px solid rgba(148, 163, 184, 0.26);
    box-shadow:
        0 12px 24px -18px rgba(15, 23, 42, 0.3),
        0 0 0 1px rgba(255, 255, 255, 0.88) inset;
    transition:
        transform 0.24s var(--ce-shop-ease),
        box-shadow 0.24s ease,
        border-color 0.24s ease,
        background 0.24s ease;
}

.navbar.navbar-top .basket-mini .menu::after,
.navbar.navbar-top .basket-mini .menu:after {
    color: #000000 !important;
    font-size: 1.42rem !important;
}

.navbar.navbar-top .basket-mini-main .quantity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.32rem;
    top: -0.1rem;
    right: -0.1rem;
    background: linear-gradient(135deg, #0f172a 0%, #111827 100%) !important;
    color: #ffffff !important;
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 6px 16px -10px rgba(15, 23, 42, 0.85);
}

.navbar.navbar-top .basket-mini-main.highlight {
    background-color: rgba(15, 23, 42, 0.06) !important;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08) !important;
}

.navbar.navbar-top .basket-mini .menu:hover {
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(240, 253, 250, 0.98) 55%, rgba(204, 251, 241, 0.96) 100%);
    border-color: rgba(13, 148, 136, 0.36);
    box-shadow:
        0 18px 30px -20px rgba(13, 148, 136, 0.34),
        0 0 0 1px rgba(45, 212, 191, 0.14) inset;
    transform: translateY(-1px);
}

/* White header: dark icons & links (theme used light-on-dark variables) */
.navbar.navbar-top .navbar-light .navbar-nav .nav-link,
.navbar.navbar-top .navbar-default .navbar-nav .nav-link,
.navbar.navbar-top .navbar-default-transition .navbar-nav .nav-link {
    color: #0f172a !important;
}

.navbar.navbar-top .navbar-light .navbar-nav .nav-link:hover,
.navbar.navbar-top .navbar-default .navbar-nav .nav-link:hover,
.navbar.navbar-top .navbar-default-transition .navbar-nav .nav-link:hover {
    color: var(--ce-shop-accent) !important;
}

.navbar.navbar-top .catalog-filter-search .input-group .btn-search {
    color: #0f172a !important;
}

.navbar.navbar-top > .locale-select,
.navbar.navbar-top .careearth-navbar-tools > .locale-select,
.navbar.navbar-top > .catalog-filter-search,
.navbar.navbar-top .careearth-navbar-tools > .catalog-filter-search,
.navbar.navbar-top > ul.navbar-nav,
.navbar.navbar-top .careearth-navbar-tools > ul.navbar-nav,
.navbar.navbar-top > .basket-mini {
    flex: 0 0 auto;
    align-self: center;
}

.navbar.navbar-top > .locale-select,
.navbar.navbar-top .careearth-navbar-tools > .locale-select {
    margin-inline-start: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    display: none !important;
}

.navbar.navbar-top > .catalog-filter-search,
.navbar.navbar-top .careearth-navbar-tools > .catalog-filter-search,
.navbar.navbar-top > ul.navbar-nav,
.navbar.navbar-top .careearth-navbar-tools > ul.navbar-nav,
.navbar.navbar-top > .basket-mini {
    margin-inline-start: 0;
}

.navbar.navbar-top .catalog-filter-search .input-group {
    align-items: center;
    gap: 0.4rem;
}

.navbar.navbar-top .catalog-filter-search .input-group .btn-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    min-width: 3.25rem;
    height: 3.25rem;
    padding: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.97) 54%, rgba(239, 246, 255, 0.96) 100%);
    border: 1px solid rgba(148, 163, 184, 0.24) !important;
    box-shadow:
        0 12px 24px -18px rgba(15, 23, 42, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.88) inset;
    transition:
        transform 0.24s var(--ce-shop-ease),
        box-shadow 0.24s ease,
        border-color 0.24s ease,
        background 0.24s ease,
        color 0.24s ease;
}

.navbar.navbar-top .catalog-filter-search .input-group .btn-search:hover {
    color: #0f766e !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(240, 253, 250, 0.97) 48%, rgba(224, 242, 254, 0.98) 100%);
    border-color: rgba(14, 165, 233, 0.3) !important;
    box-shadow:
        0 18px 30px -20px rgba(14, 165, 233, 0.28),
        0 0 0 1px rgba(45, 212, 191, 0.12) inset;
    transform: translateY(-1px);
}

.navbar.navbar-top .catalog-filter-search .input-group .btn-search::after {
    font-size: 1.32rem;
}

.navbar.navbar-top .locale-select ul.select-menu {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
}

.navbar.navbar-top .locale-select li.select-dropdown {
    position: relative;
    display: block;
}

.navbar.navbar-top .locale-select li.select-dropdown > a {
    display: inline-flex;
    align-items: center;
    position: relative;
    min-height: 2.65rem;
    padding: 0.52rem 1.05rem 0.52rem 1.55rem;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 1;
    color: #0f172a !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.98) 55%, rgba(240, 253, 250, 0.96) 100%);
    border: 1px solid rgba(148, 163, 184, 0.24);
    box-shadow:
        0 10px 24px -18px rgba(15, 23, 42, 0.2),
        0 0 0 1px rgba(255, 255, 255, 0.88) inset;
    transition:
        transform 0.22s var(--ce-shop-ease),
        box-shadow 0.22s ease,
        border-color 0.22s ease,
        background 0.22s ease,
        color 0.22s ease;
}

.navbar.navbar-top .locale-select li.select-dropdown > a:before {
    content: '';
    position: absolute;
    left: 0.65rem;
    top: 50%;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #38bdf8 0%, #14b8a6 100%);
    transform: translateY(-50%);
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.11);
}

.navbar.navbar-top .locale-select li.select-dropdown > a:hover {
    color: #0f766e !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(236, 253, 245, 0.98) 52%, rgba(224, 242, 254, 0.98) 100%);
    border-color: rgba(13, 148, 136, 0.32);
    box-shadow:
        0 16px 28px -20px rgba(13, 148, 136, 0.28),
        0 0 0 1px rgba(45, 212, 191, 0.12) inset;
    transform: translateY(-1px);
}

.navbar.navbar-top .navbar-toggler {
    border-color: rgba(15, 23, 42, 0.18);
    padding: 0.55rem 0.65rem;
    font-size: 1.15rem;
}

.navbar.navbar-top .navbar-toggler:focus {
    box-shadow: 0 0 0 0.2rem rgba(13, 148, 136, 0.25);
}

.navbar.navbar-top .locale-select ul.select-menu a,
.navbar.navbar-top .locale-select ul.select-menu a:link,
.navbar.navbar-top .locale-select ul.select-menu a:visited {
    color: #0f172a !important;
}

.navbar.navbar-top .locale-select ul.select-menu .select-current > a,
.navbar.navbar-top .locale-select ul.select-menu .select-current > a:link:hover,
.navbar.navbar-top .locale-select ul.select-menu .select-current > a:visited:hover {
    color: #0f766e !important;
    border-color: rgba(13, 148, 136, 0.34);
    background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(236, 253, 245, 0.98) 52%, rgba(204, 251, 241, 0.98) 100%);
    box-shadow:
        0 16px 28px -22px rgba(13, 148, 136, 0.24),
        0 0 0 1px rgba(45, 212, 191, 0.12) inset;
}

.navbar.navbar-top .locale-select ul.select-menu a:hover {
    color: var(--ce-shop-accent) !important;
}

.navbar.navbar-top .locale-select ul.select-menu li.select-dropdown:hover > ul {
    border-color: rgba(148, 163, 184, 0.35);
}

.navbar.navbar-top .locale-select ul.select-menu ul {
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 100%;
    padding: 0.4rem;
    border-radius: 1rem;
    border-color: rgba(148, 163, 184, 0.24);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.98) 100%);
    box-shadow:
        0 18px 38px -20px rgba(15, 23, 42, 0.24),
        0 0 0 1px rgba(255, 255, 255, 0.85) inset;
}

.navbar.navbar-top .locale-select ul.select-menu ul li {
    padding: 0;
    border-radius: 0.8rem;
    background: transparent;
}

.navbar.navbar-top .locale-select ul.select-menu ul li:hover {
    background-color: rgba(13, 148, 136, 0.08);
}

.navbar.navbar-top .locale-select ul.select-menu ul li a,
.navbar.navbar-top .locale-select ul.select-menu ul li a:link,
.navbar.navbar-top .locale-select ul.select-menu ul li a:visited {
    color: #0f172a !important;
    padding: 0.55rem 0.75rem 0.55rem 1.05rem;
    border-radius: 0.8rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.navbar.navbar-top .locale-select li.select-dropdown ul.select-dropdown li:hover a {
    color: var(--ce-shop-accent) !important;
}

.navbar.navbar-top .locale-select-language .select-dropdown,
.navbar.navbar-top .locale-select-currency .select-dropdown {
    pointer-events: auto;
}

@media (max-width: 575.98px) {
    .navbar.navbar-top .locale-select ul.select-menu {
        gap: 0.35rem;
    }

    .navbar.navbar-top .locale-select li.select-dropdown > a {
        min-height: 2.18rem;
        padding: 0.4rem 0.8rem 0.4rem 1.25rem;
        font-size: 0.76rem;
    }

    .navbar.navbar-top .locale-select li.select-dropdown > a:before {
        left: 0.56rem;
        width: 0.38rem;
        height: 0.38rem;
    }
}

.navbar.navbar-top .navbar-brand:hover img,
.navbar.navbar-top .navbar-brand:hover .careearth-navbar-logo {
    transform: scale(1.03);
}

.navbar.navbar-top .nav-link {
    transition: color 0.2s ease, transform 0.2s ease;
}

.navbar.navbar-top .nav-link:hover {
    transform: translateY(-1px);
}

.navbar.navbar-top .dropdown-menu {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    box-shadow: var(--ce-shop-shadow-hover);
    animation: ce-shop-fade-up 0.25s var(--ce-shop-ease) both;
}

@media (prefers-reduced-motion: reduce) {
    .navbar.navbar-top,
    .navbar.navbar-top .navbar-brand img,
    .navbar.navbar-top .navbar-brand img.careearth-navbar-logo,
    .navbar.navbar-top .nav-link,
    .navbar.navbar-top .dropdown-menu {
        animation: none;
        transition: none;
    }

    .navbar.navbar-top .navbar-brand:hover img,
    .navbar.navbar-top .navbar-brand:hover .careearth-navbar-logo {
        transform: none;
    }

    .navbar.navbar-top .nav-link:hover {
        transform: none;
    }

    .navbar.navbar-top .navbar-nav .nav-item.register > .nav-link,
    .navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link,
    .navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle {
        animation: none;
    }
}

/* Top navigation — phones & tablets */
@media (max-width: 991.98px) {
    .navbar.navbar-top.careearth-navbar {
        min-height: 4.25rem;
        padding-block: 0.55rem;
    }

    .navbar.navbar-top .navbar-brand {
        min-width: 0;
        flex: 1 1 auto;
        max-width: calc(100% - 8.5rem);
    }

    .navbar.navbar-top .navbar-brand img,
    .navbar.navbar-top .navbar-brand img.careearth-navbar-logo {
        max-height: 4rem;
        max-width: min(260px, 62vw);
    }

    .navbar.navbar-top .basket-mini .menu {
        width: 3rem;
        min-width: 3rem;
        height: 3rem;
    }
}

@media (max-width: 767.98px) {
    .navbar.navbar-top .navbar-brand img,
    .navbar.navbar-top .navbar-brand img.careearth-navbar-logo {
        max-height: 3.5rem;
        max-width: min(220px, 66vw);
    }

    .navbar.navbar-top .navbar-nav .nav-item.register > .nav-link,
    .navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link {
        min-width: 0;
        flex: 1 1 auto;
        padding: 0.56rem 1rem !important;
        font-size: 0.81rem;
        min-height: 2.58rem;
    }

    .navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle {
        padding: 0.42rem 0.8rem !important;
        font-size: 0.78rem;
        min-height: 2.2rem;
    }

    .navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle {
        padding: 0.35rem 0.75rem;
        font-size: 0.82rem;
        gap: 0.35rem;
    }
}

@media (max-width: 575.98px) {
    .navbar.navbar-top.careearth-navbar {
        min-height: 3.85rem;
    }

    .navbar.navbar-top .navbar-brand img,
    .navbar.navbar-top .navbar-brand img.careearth-navbar-logo {
        max-height: 3.15rem;
        max-width: min(200px, 72vw);
    }

    .navbar.navbar-top .navbar-nav .nav-item.register > .nav-link,
    .navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link {
        min-width: 0;
        padding: 0.54rem 0.85rem !important;
        font-size: 0.79rem;
        min-height: 2.48rem;
        letter-spacing: 0.02em;
    }
}

/* Auth: text buttons (theme hides labels + uses bootstrap-icons ::before) */
.navbar.navbar-top .navbar-nav .nav-item.register > .nav-link > .name,
.navbar.navbar-top .navbar-nav .nav-item.login > .nav-link > .name {
    display: inline !important;
}

.navbar.navbar-top .navbar-nav .nav-item.register > .nav-link::before,
.navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link::before {
    content: none !important;
    display: none !important;
}

.navbar.navbar-top .navbar-nav .nav-item.register > .nav-link,
.navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 6.5rem;
    min-height: 3rem;
    padding: 0.72rem 1.4rem !important;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-decoration: none;
    border: 1px solid transparent;
    white-space: nowrap;
    overflow: hidden;
    box-shadow: 0 10px 24px -18px rgba(15, 23, 42, 0.32);
    transition:
        transform 0.28s var(--ce-shop-ease),
        box-shadow 0.28s ease,
        background 0.28s ease,
        border-color 0.28s ease,
        color 0.28s ease,
        filter 0.28s ease;
}

.navbar.navbar-top .navbar-nav .nav-item.register > .nav-link::after,
.navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link::after {
    content: '';
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0) 58%);
    pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
    .navbar.navbar-top .navbar-nav .nav-item.register > .nav-link,
    .navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link {
        animation: ce-nav-auth-in 0.5s var(--ce-shop-ease) backwards;
    }

    .navbar.navbar-top .navbar-nav .nav-item.register > .nav-link {
        animation-delay: 0.06s;
    }

    .navbar.navbar-top .navbar-nav .nav-item.login:not(.profile) > .nav-link {
        animation-delay: 0.14s;
    }
}

.navbar.navbar-top .navbar-nav .register > .nav-link {
    color: #fff !important;
    background: linear-gradient(135deg, #0f766e 0%, #0d9488 46%, #0284c7 100%);
    border-color: rgba(56, 189, 248, 0.24);
    box-shadow:
        0 16px 30px -18px rgba(13, 148, 136, 0.55),
        0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

.navbar.navbar-top .navbar-nav .register > .nav-link:hover {
    color: #fff !important;
    filter: brightness(1.05) saturate(1.04);
    border-color: rgba(56, 189, 248, 0.28);
    box-shadow:
        0 22px 36px -18px rgba(8, 145, 178, 0.46),
        0 0 0 1px rgba(255, 255, 255, 0.16) inset;
    transform: translateY(-2px);
}

.navbar.navbar-top .navbar-nav .login:not(.profile) > .nav-link {
    color: #fff !important;
    background: linear-gradient(135deg, #0f766e 0%, #0d9488 46%, #0284c7 100%);
    border-color: rgba(56, 189, 248, 0.24);
    box-shadow:
        0 16px 30px -18px rgba(13, 148, 136, 0.55),
        0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

.navbar.navbar-top .navbar-nav .login:not(.profile) > .nav-link:hover {
    filter: brightness(1.05) saturate(1.04);
    box-shadow:
        0 22px 36px -18px rgba(8, 145, 178, 0.46),
        0 0 0 1px rgba(255, 255, 255, 0.16) inset;
    transform: translateY(-2px);
}

.navbar.navbar-top .navbar-nav .register > .nav-link:focus-visible,
.navbar.navbar-top .navbar-nav .login:not(.profile) > .nav-link:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.85);
    outline-offset: 3px;
}

/* Logged-in account — match pill style, show label */
.navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle > .name {
    display: inline !important;
}

.navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle::before {
    content: none !important;
    display: none !important;
}

.navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-height: 2.85rem;
    padding: 0.58rem 1.15rem !important;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #0f172a !important;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.45);
    box-shadow: 0 2px 12px rgba(15, 23, 42, 0.08);
    transition:
        transform 0.28s var(--ce-shop-ease),
        background 0.28s ease,
        border-color 0.28s ease,
        box-shadow 0.28s ease;
}

.navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle:hover {
    background: #f1f5f9;
    border-color: rgba(13, 148, 136, 0.4);
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: no-preference) {
    .navbar.navbar-top .navbar-nav .nav-item.login.profile > .nav-link.dropdown-toggle {
        animation: ce-nav-auth-in 0.5s var(--ce-shop-ease) 0.18s backwards;
    }
}

.navbar.navbar-top > ul.navbar-nav,
.navbar.navbar-top .careearth-navbar-tools > ul.navbar-nav,
.navbar.navbar-top .careearth-navbar-auth {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

@media (min-width: 992px) {
    .navbar.navbar-top .catalog-filter-tree {
        margin-inline-start: 0.5rem;
    }
}

@media (min-width: 992px) {
    .navbar.navbar-top.careearth-navbar {
        min-height: 0 !important;
        flex-wrap: nowrap;
    }

    .navbar.navbar-top.careearth-navbar .catalog-filter-tree {
        margin-inline-start: 0.65rem !important;
    }
}

/* Catalog chrome: breadcrumbs, toolbar */
.catalog-list-head,
.catalog-list-footer {
    transition: color 0.2s ease;
}

.catalog-list-type a.type-item {
    border-radius: 10px;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s var(--ce-shop-ease);
}

.catalog-list-type a.type-item:hover {
    transform: translateY(-2px);
    background: var(--ce-shop-accent-soft);
}

@media (prefers-reduced-motion: reduce) {
    .catalog-list-type a.type-item:hover {
        transform: none;
    }
}

/* Product cards (grid + list ce-pro-card) */
.aimeos .catalog-list-items .product.ce-pro-card {
    position: relative;
    border-radius: var(--ce-shop-radius);
    background: var(--ce-shop-surface);
    border: 1px solid rgba(148, 163, 184, 0.22);
    box-shadow: var(--ce-shop-shadow);
    overflow: hidden;
    transition: transform var(--ce-shop-dur) var(--ce-shop-ease), box-shadow var(--ce-shop-dur) var(--ce-shop-ease),
        border-color 0.3s ease;
    animation: ce-shop-card-in 0.52s var(--ce-shop-ease) backwards;
    animation-delay: calc(var(--ce-n, 0) * 38ms);
}

.aimeos .catalog-list-items .product.ce-pro-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(135deg, rgba(13, 148, 136, 0.06) 0%, transparent 55%);
    transition: opacity 0.35s ease;
}

.aimeos .catalog-list-items .product.ce-pro-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--ce-shop-shadow-hover);
    border-color: rgba(13, 148, 136, 0.35);
}

.aimeos .catalog-list-items .product.ce-pro-card:hover::after {
    opacity: 1;
}

.aimeos .catalog-list-items .product.ce-pro-card .media-list {
    border-radius: calc(var(--ce-shop-radius) - 4px) calc(var(--ce-shop-radius) - 4px) 0 0;
}

.aimeos .catalog-list-items .product.ce-pro-card .media-item img,
.aimeos .catalog-list-items .product.ce-pro-card .lazy-image {
    transition: transform 0.55s var(--ce-shop-ease);
    will-change: transform;
}

.aimeos .catalog-list-items .product.ce-pro-card:hover .media-item img,
.aimeos .catalog-list-items .product.ce-pro-card:hover .lazy-image {
    transform: scale(1.06);
}

.aimeos .catalog-list-items .product.ce-pro-card .supplier.ce-brand-supplier {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.aimeos .catalog-list-items .product.ce-pro-card .ce-brand-flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.45rem;
    height: 1.45rem;
    border-radius: 999px;
    background: rgba(248, 250, 252, 0.95);
    box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.32);
    font-size: 0.95rem;
    line-height: 1;
    flex: 0 0 auto;
}

.aimeos .catalog-list-items .product.ce-pro-card .ce-brand-supplier__label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Primary basket CTA — white button, black border, larger basket glyph */
.aimeos .catalog-list-items .addbasket .btn-primary,
.aimeos .addbasket .btn-primary {
    border-radius: var(--ce-pill-radius, 16px);
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #0f172a !important;
    background: #ffffff !important;
    background-image: none !important;
    border: 1px solid #000000 !important;
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08);
    transition:
        transform 0.22s var(--ce-shop-ease),
        box-shadow 0.22s ease,
        background-color 0.22s ease,
        border-color 0.22s ease;
}

.aimeos .catalog-list-items .addbasket .btn-primary::before,
.aimeos .addbasket .btn-primary::before {
    font-family: bootstrap-icons !important;
    font-size: 1.55rem !important;
    line-height: 1 !important;
    vertical-align: middle;
    display: inline-block;
}

/* Theme catalog-lists.css hover paints warning — override so border stays black */
.aimeos .catalog-list-items .addbasket .btn-primary:hover,
.aimeos .addbasket .btn-primary:hover {
    filter: none;
    color: #0f172a !important;
    background: #f8fafc !important;
    border-color: #000000 !important;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
    transform: translateY(-1px);
}

.aimeos .catalog-list-items .addbasket .btn-primary:hover::before,
.aimeos .addbasket .btn-primary:hover::before {
    color: #000000 !important;
}

.aimeos .catalog-list-items .addbasket .btn-primary:active,
.aimeos .addbasket .btn-primary:active {
    transform: translateY(0);
    background: #f1f5f9 !important;
    border-color: #000000 !important;
}

@media (prefers-reduced-motion: reduce) {
    .aimeos .catalog-list-items .product.ce-pro-card {
        animation: none;
        transition: box-shadow 0.2s ease, border-color 0.2s ease;
    }

    .aimeos .catalog-list-items .product.ce-pro-card:hover {
        transform: none;
    }

    .aimeos .catalog-list-items .product.ce-pro-card .media-item img,
    .aimeos .catalog-list-items .product.ce-pro-card .lazy-image {
        transition: none;
    }

    .aimeos .catalog-list-items .product.ce-pro-card:hover .media-item img,
    .aimeos .catalog-list-items .product.ce-pro-card:hover .lazy-image {
        transform: none;
    }

    .aimeos .catalog-list-items .addbasket .btn-primary:hover {
        transform: none;
    }
}

/* Default Aimeos grid (no ce-pro-card): same card shell */
.aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card) {
    border-radius: var(--ce-shop-radius);
    background: var(--ce-shop-surface);
    border: 1px solid rgba(148, 163, 184, 0.22);
    box-shadow: var(--ce-shop-shadow);
    transition: transform var(--ce-shop-dur) var(--ce-shop-ease), box-shadow var(--ce-shop-dur) var(--ce-shop-ease);
}

.aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card):hover {
    transform: translateY(-4px);
    box-shadow: var(--ce-shop-shadow-hover);
}

.aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card) .media-item img {
    transition: transform 0.55s var(--ce-shop-ease);
}

.aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card):hover .media-item img {
    transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
    .aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card):hover {
        transform: none;
    }

    .aimeos:not(.cms-page) .catalog-list-items.product-list:not(.list):not(.swiffy-slider) .product.row:not(.ce-pro-card):hover .media-item img {
        transform: none;
    }
}

/* Filter / search panels */
.aimeos .catalog-filter .section,
.aimeos #catalog-filter .section {
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    box-shadow: var(--ce-shop-shadow);
    transition: box-shadow 0.3s ease, transform 0.3s var(--ce-shop-ease);
}

.aimeos .catalog-filter .section:hover {
    box-shadow: var(--ce-shop-shadow-hover);
}

@media (prefers-reduced-motion: reduce) {
    .aimeos .catalog-filter .section:hover {
        transform: none;
    }
}

/* Home slider: one fixed frame for every slide (category PNGs, icons, stage media) */
.aimeos.catalog-home.ce-home-slider-wrap .home-stage {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
}

@media (min-width: 576px) {
    .aimeos.catalog-home.ce-home-slider-wrap .home-stage {
        aspect-ratio: 2 / 1;
    }
}

@media (min-width: 992px) {
    .aimeos.catalog-home.ce-home-slider-wrap .home-stage {
        aspect-ratio: 21 / 9;
    }
}

.aimeos.catalog-home.ce-home-slider-wrap .home-stage .stage-item {
    position: absolute;
    inset: 0;
    display: block;
    height: 100%;
    margin: 0;
}

.aimeos.catalog-home.ce-home-slider-wrap .home-stage .stage-item.row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
}

.aimeos.catalog-home.ce-home-slider-wrap .home-stage .stage-image,
.aimeos.catalog-home.ce-home-slider-wrap .home-stage .stage-image.ce-home-hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Gradient / empty slides: fill same frame (overrides theme min-height: 600px) */
.aimeos.catalog-home.ce-home-slider-wrap .home-stage .ce-home-slide-fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    max-height: none;
}

/* Home category accordion */
.ce-home-category-blocks {
    display: grid;
    gap: clamp(1rem, 2.4vw, 1.5rem);
    padding: clamp(0.45rem, 1.6vw, 0.9rem);
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(238, 252, 244, 0.96) 0%, rgba(255, 255, 255, 0.84) 100%);
}

.ce-home-cat-block__container {
    padding-block: clamp(1rem, 2vw, 1.35rem);
    padding-inline: clamp(0.95rem, 2.2vw, 1.35rem);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(238, 252, 244, 0.98) 0%, rgba(255, 255, 255, 0.98) 100%);
    border: 1px solid rgba(13, 148, 136, 0.12);
    box-shadow: 0 14px 32px -22px rgba(15, 23, 42, 0.18);
}

.no-js .ce-home-cat-block__toggle {
    display: none;
}

.no-js .ce-home-cat-block__content.collapse {
    display: block !important;
}

.ce-home-cat-block__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1rem;
    margin-bottom: 0.9rem;
}

.ce-home-cat-block__headline {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.ce-home-cat-block__actions {
    display: flex;
    align-items: center;
    justify-self: end;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ce-home-cat-block__title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.ce-home-cat-block__title-text {
    display: block;
}

.ce-home-cat-block__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    min-height: 2.9rem;
    padding: 0.72rem 1.2rem;
    border-radius: 999px;
    border: 1px solid rgba(13, 148, 136, 0.26);
    background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
    color: #ffffff !important;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 14px 28px -18px rgba(13, 148, 136, 0.8);
    transition:
        transform 0.22s var(--ce-shop-ease),
        box-shadow 0.22s ease,
        filter 0.22s ease,
        border-color 0.22s ease;
}

.ce-home-cat-block--products .ce-home-cat-block__more,
.ce-home-cat-block--products .ce-home-cat-block__more:visited {
    border-bottom: none;
    background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
    color: #ffffff !important;
}

.ce-home-cat-block--products .ce-home-cat-block__more-label,
.ce-home-cat-block--products .ce-home-cat-block__more-icon {
    display: inline-flex;
    align-items: center;
    color: #ffffff !important;
    opacity: 1;
}

.ce-home-cat-block--products .ce-home-cat-block__more-label {
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.2;
}

.ce-home-cat-block__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    flex: 0 0 auto;
    min-height: 2.9rem;
    padding: 0.72rem 1.15rem;
    border: 1px solid rgba(13, 148, 136, 0.28);
    border-radius: 999px;
    background: #ffffff;
    color: #0f766e;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 12px 24px -20px rgba(15, 23, 42, 0.45);
    transition:
        transform 0.22s var(--ce-shop-ease),
        background 0.22s ease,
        border-color 0.22s ease,
        color 0.22s ease,
        box-shadow 0.22s ease;
}

.ce-home-cat-block__toggle:hover,
.ce-home-cat-block__more:hover {
    transform: translateY(-1px);
}

.ce-home-cat-block__toggle:hover {
    background: rgba(240, 253, 250, 0.98);
    border-color: rgba(13, 148, 136, 0.48);
    box-shadow: 0 18px 30px -24px rgba(15, 23, 42, 0.5);
}

.ce-home-cat-block__more:hover {
    filter: brightness(1.05);
    border-color: rgba(13, 148, 136, 0.4);
    box-shadow: 0 20px 34px -20px rgba(13, 148, 136, 0.58);
}

.ce-home-cat-block--products .ce-home-cat-block__more:hover,
.ce-home-cat-block--products .ce-home-cat-block__more:focus-visible {
    background: linear-gradient(135deg, #0f9f92 0%, #1ac7b4 100%);
    color: #ffffff !important;
}

.ce-home-cat-block__toggle:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.65);
    outline-offset: 2px;
}

.ce-home-cat-block__more:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.85);
    outline-offset: 3px;
}

.ce-home-cat-block__toggle-label::before {
    content: 'カテゴリを閉じる';
}

.ce-home-cat-block__toggle.collapsed .ce-home-cat-block__toggle-label::before {
    content: 'カテゴリを開く';
}

.ce-home-cat-block__toggle-icon {
    width: 0.58rem;
    height: 0.58rem;
    margin-top: -0.12rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s var(--ce-shop-ease);
}

.ce-home-cat-block__toggle.collapsed .ce-home-cat-block__toggle-icon {
    transform: rotate(-45deg);
}

.ce-home-cat-block__more-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.95rem;
    line-height: 1;
}

.ce-home-cat-block__content {
    min-width: 0;
}

@media (max-width: 767.98px) {
    .ce-home-cat-block__head {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .ce-home-cat-block__headline {
        justify-content: flex-start;
    }

    .ce-home-cat-block__actions {
        justify-self: start;
        width: 100%;
    }

    .ce-home-cat-block__toggle,
    .ce-home-cat-block__more {
        flex: 1 1 12rem;
    }

    .ce-home-cat-block__more {
        justify-self: start;
    }
}

/* Home category grids */
.ce-home-cat-block__grid .product.ce-pro-card {
    border-radius: var(--ce-shop-radius);
}

/* 日用品レール: カタロググリッドとは別の「ピックアップ帯」デザイン */
.ce-home-cat-block--daily-rail {
    margin-bottom: 0.25rem;
}

.ce-home-cat-block--daily-rail .ce-home-cat-block__rail-lead {
    margin: -0.15rem 0 1rem;
    max-width: 52rem;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #475569;
}

.ce-home-cat-block--daily-rail .ce-daily-rail {
    position: relative;
    margin: 0;
    padding: clamp(0.85rem, 2vw, 1.15rem) clamp(2.5rem, 6vw, 3.25rem);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(240, 253, 250, 0.9) 0%, rgba(248, 250, 252, 0.95) 42%, rgba(255, 255, 255, 1) 100%);
    border: 1px solid rgba(45, 212, 191, 0.22);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), 0 12px 36px rgba(15, 23, 42, 0.06);
}

.ce-home-cat-block--daily-rail .ce-daily-rail__track.catalog-list-items.product-list {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: clamp(0.85rem, 2.2vw, 1.35rem);
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 0.5rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(13, 148, 136, 0.45) transparent;
    padding: 0.35rem 0.15rem 0.65rem;
    outline: none;
    mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
}

.ce-home-cat-block--daily-rail .ce-daily-rail__track > .product.ce-pro-card {
    flex: 0 0 min(40vw, 188px);
    width: min(40vw, 188px) !important;
    max-width: min(40vw, 188px);
    min-width: 0;
    scroll-snap-align: start;
    box-sizing: border-box;
    border-radius: 14px !important;
    border: 1px solid rgba(148, 163, 184, 0.28) !important;
    background: #fff;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
    transition: box-shadow 0.25s ease, transform 0.25s var(--ce-shop-ease), border-color 0.2s ease;
}

.ce-home-cat-block--daily-rail .ce-daily-rail__track > .product.ce-pro-card:hover {
    border-color: rgba(13, 148, 136, 0.35) !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.1);
    transform: translateY(-3px);
}

@media (min-width: 576px) {
    .ce-home-cat-block--daily-rail .ce-daily-rail__track > .product.ce-pro-card {
        flex: 0 0 clamp(150px, 20vw, 200px);
        width: clamp(150px, 20vw, 200px) !important;
        max-width: clamp(150px, 20vw, 200px);
    }
}

@media (min-width: 1200px) {
    .ce-home-cat-block--daily-rail .ce-daily-rail__track > .product.ce-pro-card {
        flex: 0 0 clamp(160px, 12vw, 208px);
        width: clamp(160px, 12vw, 208px) !important;
        max-width: clamp(160px, 12vw, 208px);
    }
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav {
    position: absolute;
    bottom: 0.55rem;
    z-index: 2;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 1px solid rgba(13, 148, 136, 0.35);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s var(--ce-shop-ease);
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav:hover {
    background: rgba(240, 253, 250, 0.95);
    border-color: rgba(13, 148, 136, 0.55);
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.65);
    outline-offset: 2px;
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav--prev {
    right: 3.35rem;
    left: auto;
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav--prev::after {
    content: '';
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin: 0 auto;
    border-left: 2px solid #0f766e;
    border-bottom: 2px solid #0f766e;
    transform: rotate(45deg) translateX(0.08rem);
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav--next {
    right: 0.55rem;
}

.ce-home-cat-block--daily-rail .ce-daily-rail__nav--next::after {
    content: '';
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin: 0 auto;
    border-right: 2px solid #0f766e;
    border-top: 2px solid #0f766e;
    transform: rotate(45deg) translateX(-0.08rem);
}

@media (prefers-reduced-motion: reduce) {
    .ce-home-cat-block--daily-rail .ce-daily-rail__track.catalog-list-items.product-list {
        scroll-behavior: auto;
    }

    .ce-home-cat-block--daily-rail .ce-daily-rail__track > .product.ce-pro-card:hover {
        transform: none;
    }

    .ce-home-cat-block--daily-rail .ce-daily-rail__nav:hover {
        transform: none;
    }
}

/* 冷凍食品: 写真カルーセル（参照＋ヒーロー＋ちび） */
.ce-frozen-photo-slider {
    position: relative;
    margin: 0 0 clamp(0.85rem, 2.2vw, 1.35rem);
    border-radius: clamp(14px, 2.4vw, 20px);
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow:
        0 16px 48px rgba(15, 23, 42, 0.12),
        0 0 0 1px rgba(255, 255, 255, 0.65) inset;
    background: linear-gradient(155deg, #ecfdf5 0%, #f0fdfa 38%, #f8fafc 100%);
}

.ce-frozen-photo-slider__viewport {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    aspect-ratio: 16 / 6;
    max-height: min(52vh, 420px);
    min-height: 180px;
}

.ce-frozen-photo-slider__viewport::-webkit-scrollbar {
    display: none;
}

.ce-frozen-photo-slider__slide {
    position: relative;
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    margin: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    box-sizing: border-box;
}

.ce-frozen-photo-slider__media-link {
    display: block;
    height: 100%;
    min-height: 0;
    background: #fff;
}

.ce-frozen-photo-slider__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.ce-frozen-photo-slider__img--chibi {
    object-fit: contain;
    object-position: center bottom;
    padding: clamp(0.5rem, 2vw, 1.25rem);
    background: linear-gradient(180deg, #f0fdfa 0%, #ffffff 55%);
}

.ce-frozen-photo-slider__slide::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(15, 23, 42, 0) 35%,
        rgba(15, 23, 42, 0.45) 100%
    );
}

.ce-frozen-photo-slider__caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: clamp(0.75rem, 2.5vw, 1.35rem) clamp(1rem, 3vw, 1.75rem);
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.ce-frozen-photo-slider__slide--lite::after {
    opacity: 0.18;
}

.ce-frozen-photo-slider__slide--lite .ce-frozen-photo-slider__caption {
    color: #0f172a;
    text-shadow: none;
}

.ce-frozen-photo-slider__caption--soft {
    isolation: isolate;
}

.ce-frozen-photo-slider__caption--soft::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0));
    pointer-events: none;
}

.ce-frozen-photo-slider__badge {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(13, 148, 136, 0.92);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

.ce-frozen-photo-slider__caption--soft .ce-frozen-photo-slider__badge {
    background: rgba(15, 118, 110, 0.12);
    color: #0f766e;
    border-color: rgba(13, 148, 136, 0.25);
}

.ce-frozen-photo-slider__title {
    font-size: clamp(0.95rem, 2.1vw, 1.15rem);
    font-weight: 700;
    flex: 1 1 auto;
    min-width: 0;
}

.ce-frozen-photo-slider__cta {
    flex-shrink: 0;
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.38rem 0.9rem;
    border-radius: 999px;
    background: #fff;
    color: #0f766e !important;
    text-decoration: none !important;
    border: 1px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    transition:
        transform 0.2s var(--ce-shop-ease, ease),
        box-shadow 0.2s ease;
}

.ce-frozen-photo-slider__cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.2);
}

.ce-frozen-photo-slider__chrome {
    pointer-events: none;
}

.ce-frozen-photo-slider__chrome button {
    pointer-events: auto;
}

.ce-frozen-photo-slider__arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 2.5rem;
    height: 2.5rem;
    margin-top: -1.25rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 2px 14px rgba(15, 23, 42, 0.12);
    transition:
        background 0.2s ease,
        transform 0.2s var(--ce-shop-ease, ease);
}

.ce-frozen-photo-slider__arrow:hover {
    background: #fff;
    transform: scale(1.04);
}

.ce-frozen-photo-slider__arrow--prev {
    left: clamp(0.35rem, 1.5vw, 0.75rem);
}

.ce-frozen-photo-slider__arrow--prev::after {
    content: '';
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin: 0 auto;
    border-left: 2px solid #0f766e;
    border-bottom: 2px solid #0f766e;
    transform: rotate(45deg) translateX(0.1rem);
}

.ce-frozen-photo-slider__arrow--next {
    right: clamp(0.35rem, 1.5vw, 0.75rem);
}

.ce-frozen-photo-slider__arrow--next::after {
    content: '';
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin: 0 auto;
    border-right: 2px solid #0f766e;
    border-top: 2px solid #0f766e;
    transform: rotate(45deg) translateX(-0.1rem);
}

.ce-frozen-photo-slider__dots {
    position: absolute;
    left: 50%;
    bottom: clamp(0.5rem, 2vw, 0.85rem);
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    gap: 0.45rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(6px);
}

.ce-frozen-photo-slider__dot {
    width: 0.45rem;
    height: 0.45rem;
    padding: 0;
    border: none;
    border-radius: 999px;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.45);
    transition:
        transform 0.2s ease,
        background 0.2s ease,
        width 0.25s ease;
}

.ce-frozen-photo-slider__dot[aria-current='true'] {
    background: #fff;
    width: 1.35rem;
}

@media (prefers-reduced-motion: reduce) {
    .ce-frozen-photo-slider__viewport {
        scroll-behavior: auto;
    }

    .ce-frozen-photo-slider__cta:hover,
    .ce-frozen-photo-slider__arrow:hover {
        transform: none;
    }
}

@media (max-width: 575.98px) {
    .ce-frozen-photo-slider__viewport {
        aspect-ratio: 4 / 3;
        max-height: none;
    }

    .ce-frozen-photo-slider__caption {
        flex-direction: column;
        align-items: flex-start;
    }
}

.ce-home-cat-block--frozen-rail .ce-home-cat-block__grid--cards .product.ce-pro-card {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.ce-home-cat-block--frozen-rail .ce-home-cat-block__grid--cards .product.ce-pro-card .media-item {
    background: #fafafa;
}

/* 野菜・果物: 写真カルーセル（グリッド参照＋ヒーロー＋ちび） */
.ce-produce-photo-slider.ce-frozen-photo-slider {
    background: linear-gradient(155deg, #f7fee7 0%, #ecfccb 36%, #f8fafc 100%);
    border-color: rgba(22, 101, 52, 0.12);
    box-shadow:
        0 16px 44px rgba(22, 101, 52, 0.14),
        0 0 0 1px rgba(255, 255, 255, 0.7) inset;
}

.ce-produce-photo-slider .ce-frozen-photo-slider__badge {
    background: rgba(22, 163, 74, 0.92);
}

.ce-produce-photo-slider .ce-frozen-photo-slider__caption--soft .ce-frozen-photo-slider__badge {
    background: rgba(22, 163, 74, 0.14);
    color: #166534;
    border-color: rgba(22, 163, 74, 0.28);
}

.ce-produce-photo-slider .ce-frozen-photo-slider__cta {
    color: #15803d !important;
}

.ce-produce-photo-slider .ce-frozen-photo-slider__arrow--prev::after {
    border-left-color: #15803d;
    border-bottom-color: #15803d;
}

.ce-produce-photo-slider .ce-frozen-photo-slider__arrow--next::after {
    border-right-color: #15803d;
    border-top-color: #15803d;
}

.ce-home-cat-block--produce-rail .ce-home-cat-block__grid--cards .product.ce-pro-card {
    background: #fff;
    border: 1px solid rgba(22, 101, 52, 0.1);
}

.ce-home-cat-block--produce-rail .ce-home-cat-block__grid--cards .product.ce-pro-card .media-item {
    background: linear-gradient(180deg, #f7fee7 0%, #fafafa 100%);
}

.ce-home-cat-block--produce-rail .ce-daily-rail__nav {
    border-color: rgba(22, 163, 74, 0.22);
}

.ce-home-cat-block--produce-rail .ce-daily-rail__nav:hover {
    background: rgba(240, 253, 244, 0.98);
}

.ce-home-cat-block--produce-rail .ce-daily-rail__nav--prev::after {
    border-left-color: #15803d;
    border-bottom-color: #15803d;
}

.ce-home-cat-block--produce-rail .ce-daily-rail__nav--next::after {
    border-right-color: #15803d;
    border-top-color: #15803d;
}

/*
 * Wider product cards — theme uses CSS grid with up to 6 columns @768px (home + catalog-list).
 * Override to fewer columns so each card track is wider; grid items fill their cell.
 */
.aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.85rem, 2.2vw, 1.5rem);
}

@media (max-width: 479.98px) {
    .aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track),
    .aimeos:not(.cms-page) .catalog-list-items.ce-pro-grid:not(.swiffy-slider) {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media (min-width: 576px) {
    .aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) .product,
.aimeos:not(.cms-page).catalog-list .catalog-list-items.product-list:not(.swiffy-slider):not(.list):not(.ce-daily-rail__track) .product.row {
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* .ce-pro-grid (dense theme grid): cap at 4 columns on large screens instead of 8 */
.aimeos:not(.cms-page) .catalog-list-items.ce-pro-grid:not(.swiffy-slider) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.85rem, 2vw, 1.35rem);
}

@media (min-width: 576px) {
    .aimeos:not(.cms-page) .catalog-list-items.ce-pro-grid:not(.swiffy-slider) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .aimeos:not(.cms-page) .catalog-list-items.ce-pro-grid:not(.swiffy-slider) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1400px) {
    .aimeos:not(.cms-page) .catalog-list-items.ce-pro-grid:not(.swiffy-slider) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Pin / wishlist secondary button polish */
.aimeos .catalog-list-items .addbasket .btn-pin {
    border-radius: 10px;
    transition: transform 0.2s var(--ce-shop-ease), border-color 0.2s ease, background-color 0.2s ease;
}

.aimeos .catalog-list-items .addbasket .btn-pin:hover {
    transform: scale(1.05);
}

@media (prefers-reduced-motion: reduce) {
    .aimeos .catalog-list-items .addbasket .btn-pin:hover {
        transform: none;
    }
}

/*
 * Product grids under .catalog-list (category/search + home rails / bestsellers / daily rail):
 * Chrome image box, white card frame, basket spacing. .cms-page excluded.
 */
.aimeos:not(.cms-page).catalog-list .catalog-list-items:not(.swiffy-slider) .product.ce-pro-card .media-list,
.aimeos:not(.cms-page).catalog-list .catalog-list-items:not(.swiffy-slider) .product.row.ce-pro-card .media-list {
    display: block;
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    padding: 0;
    background: linear-gradient(145deg, #eef2ef 0%, #e4ebe6 100%);
}

.aimeos:not(.cms-page).catalog-list .catalog-list-items:not(.swiffy-slider) .product.ce-pro-card,
.aimeos:not(.cms-page).catalog-list .catalog-list-items:not(.swiffy-slider) .product.row.ce-pro-card {
    border: solid 5px #ffffff;
}

.aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket {
    margin-left: 10px;
}

.aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket .btn-pin {
    border: none;
}

/* --------------------------------------------------------------------------
   Navbar category mega menu — professional card grid (CareEarth)
   -------------------------------------------------------------------------- */

/* Categories trigger */
.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.55rem 1.15rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #0f172a;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.45);
    border-radius: 999px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
    cursor: pointer;
    transition: background 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, transform 0.2s var(--ce-shop-ease);
}

.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle:hover {
    background: #f1f5f9;
    border-color: rgba(13, 148, 136, 0.4);
    box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.15);
}

.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle:focus-visible {
    outline: 2px solid rgba(45, 212, 191, 0.65);
    outline-offset: 2px;
}

.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle[aria-expanded='true'] {
    background: rgba(13, 148, 136, 0.12);
    border-color: rgba(13, 148, 136, 0.45);
}

.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle-chevron {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    margin-top: -0.2rem;
    opacity: 0.85;
    transition: transform 0.25s var(--ce-shop-ease);
}

.navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle[aria-expanded='true'] .careearth-nav-cat-toggle-chevron {
    transform: rotate(-135deg);
    margin-top: 0.1rem;
}

@media (min-width: 992px) {
    /* Mega panel shell — 992+ only: below that, theme catalog-filter.css uses off-canvas */
    /* Wrapper stays in-flow for toggle only; the real panel is .list-container.level-1 (position:absolute).
       Never use overflow:hidden here — parent height collapses so the dropdown would be fully clipped. */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 {
        position: relative;
        min-width: min(92vw, 580px);
        max-width: min(92vw, 740px);
        padding: 0;
        border-radius: 18px;
        border: 1px solid var(--ce-nav-mega-border);
        background: var(--ce-nav-mega-bg);
        backdrop-filter: blur(20px) saturate(1.15);
        -webkit-backdrop-filter: blur(20px) saturate(1.15);
        box-shadow: var(--ce-nav-mega-shadow);
        overflow: visible;
    }

    @media (prefers-reduced-motion: no-preference) {
        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 {
            animation: ce-nav-mega-panel-in 0.34s var(--ce-shop-ease) both;
        }
    }

    /* Top accent beam — ties panel to navbar teal theme */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0::before {
        content: '';
        position: absolute;
        top: 0;
        left: 8%;
        right: 8%;
        height: 3px;
        border-radius: 0 0 6px 6px;
        background: linear-gradient(
            90deg,
            transparent 0%,
            rgba(45, 212, 191, 0.35) 18%,
            rgba(56, 189, 248, 0.55) 50%,
            rgba(45, 212, 191, 0.35) 82%,
            transparent 100%
        );
        pointer-events: none;
        z-index: 1;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .row.header {
        position: relative;
        z-index: 0;
        padding: 0.55rem 1rem;
        margin: 0;
        align-items: center;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        background: linear-gradient(180deg, rgba(2, 6, 23, 0.42) 0%, rgba(15, 23, 42, 0.12) 100%);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .row.header .name {
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: rgba(203, 213, 225, 0.98);
        text-shadow: 0 1px 2px rgba(2, 6, 23, 0.45);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .row.header .close,
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .row.header .col-2:first-child {
        opacity: 0.85;
    }

    /*
     * Desktop mega: keep grid hidden until .careearth-cats-open (catalog-filter.js).
     * Duplicated here so stale public/vendor/catalog-filter.css on the server cannot leave the panel visible on load.
     */
    .navbar.navbar-top .catalog-filter-tree:not(.careearth-cats-open) .zeynep.list-container.level-0 > .row.header {
        display: none;
    }

    .navbar.navbar-top .catalog-filter-tree.careearth-cats-open .zeynep.list-container.level-0 > .row.header {
        display: flex;
    }

    /* Top-level category grid — compact so the panel fits common viewports */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.42rem 0.48rem;
        padding: 0.72rem 0.85rem 0.85rem;
        margin: 0;
        max-height: min(68vh, 360px);
        overflow-x: hidden;
        overflow-y: auto;
        scrollbar-gutter: stable;
        position: absolute;
        left: 50%;
        transform: translate(-50%, 0.35rem);
        width: min(44rem, calc(100vw - 2rem));
        z-index: 1040;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    }

    .navbar.navbar-top .catalog-filter-tree.careearth-cats-open .zeynep.list-container.level-0 > .list-container.level-1 {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translate(-50%, 0.55rem);
    }

    @media (prefers-reduced-motion: no-preference) {
        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item {
            animation: ce-nav-cat-item-in 0.38s var(--ce-shop-ease) both;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(1) {
            animation-delay: 0.02s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(2) {
            animation-delay: 0.05s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(3) {
            animation-delay: 0.08s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(4) {
            animation-delay: 0.11s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(5) {
            animation-delay: 0.14s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(6) {
            animation-delay: 0.17s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(7) {
            animation-delay: 0.2s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(8) {
            animation-delay: 0.23s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(9) {
            animation-delay: 0.26s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(10) {
            animation-delay: 0.29s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(11) {
            animation-delay: 0.32s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(12) {
            animation-delay: 0.35s;
        }

        .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item:nth-child(n + 13) {
            animation-delay: 0.38s;
        }
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1::-webkit-scrollbar {
        width: 6px;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1::-webkit-scrollbar-thumb {
        background: rgba(148, 163, 184, 0.35);
        border-radius: 999px;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item {
        margin: 0;
        padding: 0;
        border: none;
        background: transparent;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .item-links.row {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        margin: 0;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .item-links.row > .col-10 {
        flex: 1 1 auto;
        max-width: none;
        width: auto;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .item-links.row > .col-2:not(.next) {
        display: none;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name {
        position: relative;
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 0.42rem;
        padding: 0.42rem 0.55rem 0.42rem 0.62rem;
        border-radius: 12px;
        background: var(--ce-nav-cat-card-bg);
        border: 1px solid var(--ce-nav-cat-card-border);
        color: rgba(248, 250, 252, 0.98);
        font-weight: 600;
        font-size: 0.72rem;
        line-height: 1.28;
        letter-spacing: 0.02em;
        text-decoration: none;
        box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset, 0 4px 14px rgba(2, 6, 23, 0.12);
        overflow: hidden;
        transition: transform 0.24s var(--ce-shop-ease), box-shadow 0.24s ease, border-color 0.24s ease, background 0.24s ease;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name > * {
        position: relative;
        z-index: 1;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name::before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient(120deg, transparent 40%, rgba(255, 255, 255, 0.09) 50%, transparent 60%);
        opacity: 0;
        transform: translateX(-35%);
        transition: opacity 0.35s ease, transform 0.5s var(--ce-shop-ease);
        pointer-events: none;
        z-index: 0;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name::after {
        content: '';
        position: absolute;
        left: 0;
        top: 12%;
        bottom: 12%;
        width: 3px;
        border-radius: 0 3px 3px 0;
        background: linear-gradient(180deg, rgba(45, 212, 191, 0.15) 0%, rgba(56, 189, 248, 0.85) 50%, rgba(13, 148, 136, 0.5) 100%);
        opacity: 0;
        transform: scaleY(0.6);
        transition: opacity 0.22s ease, transform 0.28s var(--ce-shop-ease);
        pointer-events: none;
        z-index: 2;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover {
        background: var(--ce-nav-cat-card-hover);
        border-color: rgba(45, 212, 191, 0.48);
        box-shadow: 0 12px 28px -10px rgba(13, 148, 136, 0.42), 0 0 0 1px rgba(45, 212, 191, 0.14) inset;
        transform: translateY(-3px);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover::before {
        opacity: 1;
        transform: translateX(30%);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover::after {
        opacity: 1;
        transform: scaleY(1);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:focus-visible {
        outline: 2px solid rgba(45, 212, 191, 0.7);
        outline-offset: 2px;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name.active {
        border-color: rgba(45, 212, 191, 0.58);
        background: linear-gradient(152deg, rgba(13, 148, 136, 0.28) 0%, rgba(15, 118, 110, 0.14) 100%);
        box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.15) inset;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name.active::after {
        opacity: 0.85;
        transform: scaleY(1);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-name {
        flex: 1 1 auto;
        min-width: 0;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-count {
        flex-shrink: 0;
        font-size: 0.55rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        padding: 0.08rem 0.3rem;
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.65);
        border: 1px solid rgba(148, 163, 184, 0.25);
        color: rgba(226, 232, 240, 0.95);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .media-list {
        flex-shrink: 0;
        display: flex;
        align-items: center;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .media-item img {
        width: 22px;
        height: 22px;
        object-fit: contain;
        border-radius: 8px;
        filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.38));
        transition: transform 0.28s var(--ce-shop-ease);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover .media-item img {
        transform: scale(1.08);
    }

    /* Aimeos DB icons — compact colorful ring (dynamic categories with icon media) */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .media-list > .media-item:not(.ce-nav-cat-chibi-wrap):not(.ce-nav-cat-letter-icon) {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 1.65rem;
        height: 1.65rem;
        padding: 2px;
        border-radius: 8px;
        background: linear-gradient(
            145deg,
            rgba(56, 189, 248, 0.2) 0%,
            rgba(167, 139, 250, 0.18) 50%,
            rgba(45, 212, 191, 0.22) 100%
        );
        border: 1px solid rgba(255, 255, 255, 0.12);
        box-shadow: 0 1px 6px rgba(2, 6, 23, 0.3);
    }

    /* Dynamic DB label — gradient initial when no image / chibi match */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .ce-nav-cat-letter-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 1.6rem;
        height: 1.6rem;
        border-radius: 8px;
        font-size: 0.62rem;
        font-weight: 800;
        line-height: 1;
        letter-spacing: 0;
        color: rgba(255, 255, 255, 0.98);
        text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
        background: linear-gradient(
            145deg,
            hsl(var(--ce-fallback-h, 168), 72%, 48%) 0%,
            hsl(var(--ce-fallback-h2, 210), 68%, 40%) 100%
        );
        border: 1px solid rgba(255, 255, 255, 0.18);
        box-shadow: 0 2px 8px rgba(2, 6, 23, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
    }

    /* CareEarth chibi fallback icons — colorful tile behind transparent PNG art */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .ce-nav-cat-chibi-wrap {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: 1.65rem;
        height: 1.65rem;
        padding: 2px;
        border-radius: 8px;
        background: linear-gradient(
            145deg,
            rgba(251, 191, 36, 0.22) 0%,
            rgba(244, 114, 182, 0.18) 35%,
            rgba(56, 189, 248, 0.2) 70%,
            rgba(45, 212, 191, 0.25) 100%
        );
        border: 1px solid rgba(255, 255, 255, 0.14);
        box-shadow: 0 2px 8px rgba(2, 6, 23, 0.35), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name .ce-nav-cat-chibi {
        width: 20px;
        height: 20px;
        object-fit: contain;
        display: block;
        filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.4));
        transition: transform 0.28s var(--ce-shop-ease);
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover .ce-nav-cat-chibi {
        transform: scale(1.08);
    }

    /* Submenu drill control: compact icon column */
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .item-links .col-2.next {
        flex: 0 0 1.65rem;
        max-width: 1.65rem;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 0.28rem;
        border-radius: 8px;
        border: 1px solid rgba(148, 163, 184, 0.2);
        background: rgba(255, 255, 255, 0.04);
        cursor: pointer;
        transition: background 0.2s ease, border-color 0.2s ease;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .item-links .col-2.next:hover {
        background: rgba(45, 212, 191, 0.12);
        border-color: rgba(45, 212, 191, 0.35);
    }
}

@media (min-width: 1100px) {
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        max-height: min(62vh, 300px);
    }
}

@media (min-width: 992px) and (prefers-reduced-motion: reduce) {
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 {
        animation: none;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item {
        animation: none;
    }

    .navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle,
    .navbar.navbar-top .catalog-filter-tree .careearth-nav-cat-toggle-chevron,
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name {
        transition: none;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover {
        transform: none;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name::before,
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name::after {
        transition: none;
    }

    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover .media-item img,
    .navbar.navbar-top .catalog-filter-tree .zeynep.list-container.level-0 > .list-container.level-1 > .cat-item .cat-link.name:hover .ce-nav-cat-chibi {
        transform: none;
    }
}

/* Aimeos flash messages (client/html/error partial): compact, single strip — avoids duplicate-looking bands */
.aimeos.ce-aimeos-alerts {
    background: transparent;
    margin-inline: auto;
    max-width: min(1120px, 100%);
    padding-block: 0.25rem 0.6rem;
}

.aimeos.ce-aimeos-alerts .error-list,
.aimeos.ce-aimeos-alerts .info-list {
    margin: 0;
    padding: 0.55rem 1rem;
    border-radius: 10px;
    list-style: none;
}

.aimeos.ce-aimeos-alerts .info-list {
    background: rgba(16, 185, 129, 0.11);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.26);
}

.aimeos.ce-aimeos-alerts .error-list {
    background: rgba(239, 68, 68, 0.08);
    color: #b91c1c;
    border: 1px solid rgba(239, 68, 68, 0.22);
}

.aimeos.ce-aimeos-alerts .info-list + .info-list,
.aimeos.ce-aimeos-alerts .error-list + .error-list {
    margin-top: 0.45rem;
}

body.page-index main > .container-fluid {
    padding-top: 0.35rem;
}

/* --------------------------------------------------------------------------
   Contact page (CMS /contact) — two-column layout, green submit
   -------------------------------------------------------------------------- */
.contact-pot {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ce-contact-page {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    max-width: min(1320px, 100%);
    margin-inline: auto;
    padding-block: 1.25rem 2.5rem;
    padding-inline: clamp(0.75rem, 2vw, 1.25rem);
}

.ce-contact-page-header {
    text-align: center;
    margin-bottom: 2rem;
}

.ce-contact-page-title {
    margin: 0;
    font-size: clamp(1.65rem, 4vw, 2.15rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #111827;
}

.ce-contact-layout {
    display: grid;
    gap: 1.75rem;
    align-items: start;
}

@media (min-width: 900px) {
    .ce-contact-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
        gap: 2rem;
    }
}

.ce-contact-info-box {
    background: #f3f4f6;
    border-radius: 14px;
    padding: 1.35rem 1.35rem 1.5rem;
    border: 1px solid rgba(17, 24, 39, 0.06);
}

.ce-contact-info-heading {
    margin: 0 0 1.15rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
}

.ce-contact-info-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.ce-contact-info-item {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
}

.ce-contact-info-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    background-color: #64748b;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.ce-contact-info-icon--pin {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E");
}

.ce-contact-info-icon--phone {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
}

.ce-contact-info-icon--mail {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
}

.ce-contact-info-icon--clock {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E");
}

.ce-contact-info-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.ce-contact-info-value {
    font-size: 0.95rem;
    line-height: 1.55;
    color: #111827;
}

.ce-contact-info-value--accent a {
    color: #ea580c;
    text-decoration: none;
    font-weight: 600;
}

.ce-contact-info-value--accent a:hover {
    text-decoration: underline;
}

.ce-contact-info-hours {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ce-contact-form-panel {
    background: #fff;
    border-radius: 14px;
    padding: 1.35rem 1.35rem 1.6rem;
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.ce-contact-form-heading {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: #111827;
}

.ce-contact-form-intro {
    margin: 0 0 1.35rem;
    font-size: 0.95rem;
    line-height: 1.65;
    color: #4b5563;
}

.ce-contact-form .ce-contact-field {
    margin-bottom: 1.1rem;
}

.ce-contact-form .ce-contact-field:last-of-type {
    margin-bottom: 0.25rem;
}

.ce-contact-label {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.4rem;
}

.ce-contact-req {
    color: #dc2626;
    font-weight: 700;
}

.ce-contact-input,
.ce-contact-textarea {
    width: 100%;
    box-sizing: border-box;
    font-size: 1rem;
    line-height: 1.45;
    padding: 0.65rem 0.85rem;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: #111827;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ce-contact-input:focus,
.ce-contact-textarea:focus {
    outline: none;
    border-color: #43a047;
    box-shadow: 0 0 0 3px rgba(67, 160, 71, 0.2);
}

.ce-contact-textarea {
    min-height: 9rem;
    resize: vertical;
}

.ce-contact-actions {
    margin-top: 1.5rem;
}

.ce-contact-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 9rem;
    padding: 0.75rem 1.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: #fff !important;
    background: #43a047 !important;
    border: none !important;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.1s ease;
    box-shadow: 0 2px 6px rgba(67, 160, 71, 0.35);
}

.ce-contact-submit:hover {
    background: #388e3c !important;
}

.ce-contact-submit:focus-visible {
    outline: 2px solid #2e7d32;
    outline-offset: 2px;
}

.ce-contact-submit:active {
    transform: translateY(1px);
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .form-list {
    margin: 0.75rem 0 0;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-row {
    margin: 0 0 1rem;
    padding: 0;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-row:last-child {
    margin-bottom: 0;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-label,
.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-value {
    float: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-label {
    margin-bottom: 0.45rem;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .form-item-label {
    display: block;
    font-weight: 600;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-value .form-control,
.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-value textarea,
.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-value select {
    width: 100%;
    max-width: 100%;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .ce-serviceattr-row--boolean .ce-serviceattr-value .form-control {
    width: auto;
}

.checkout-standard-delivery .ce-delivery-service-row__attrs .form-item-value {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.checkout-standard-summary .common-summary-detail .order .unitprice,
.checkout-standard-summary .common-summary-detail .order .price,
.checkout-standard-summary .common-summary-detail .delivery .unitprice,
.checkout-standard-summary .common-summary-detail .delivery .price,
.checkout-standard-summary .common-summary-detail .payment .unitprice,
.checkout-standard-summary .common-summary-detail .payment .price,
.checkout-standard-summary .common-summary-detail .subtotal .price,
.checkout-standard-summary .common-summary-detail .tax .price,
.checkout-standard-summary .common-summary-detail .tax .tax-breakdown,
.checkout-standard-summary .common-summary-detail .rebate .price,
.checkout-standard-summary .common-summary-detail .total .price,
.checkout-standard-summary .common-summary-detail .price-total .total-text {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Checkout summary: terms & policy links (利用規約 / プライバシー / キャンセル) */
.checkout-standard-summary-option {
    margin-top: 0.5rem;
    margin-bottom: 1.25rem;
}

.checkout-standard-summary-option-terms {
    float: none;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0.25rem;
}

.checkout-standard-summary-option-terms > h3 {
    margin: 0 0 0.65rem;
    padding: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #0f172a;
}

.checkout-standard-summary-option-terms .single {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.15rem 1.1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 14px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 10px 28px -14px rgba(15, 23, 42, 0.1);
}

.checkout-standard-summary-option-terms .single.error {
    border-color: rgba(220, 38, 38, 0.35);
    box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.12);
}

.checkout-standard-summary-option-terms input[type="checkbox"] {
    margin: 0.2rem 0 0;
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    accent-color: #0d9488;
    cursor: pointer;
}

.checkout-standard-summary-option-terms label[for="option-terms-accept"] {
    display: block;
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.65;
    font-weight: 500;
    color: #334155;
    cursor: pointer;
}

.aimeos .checkout-standard-summary-option-terms a:link:not(.btn),
.aimeos .checkout-standard-summary-option-terms a:visited:not(.btn),
.checkout-standard-summary-option-terms a:link:not(.btn),
.checkout-standard-summary-option-terms a:visited:not(.btn) {
    display: inline-block;
    margin: 0.2rem 0.15rem 0.2rem 0;
    padding: 0.3rem 0.85rem;
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.35;
    color: #0f766e !important;
    text-decoration: none !important;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(13, 148, 136, 0.14) 0%, rgba(13, 148, 136, 0.07) 100%);
    border: 1px solid rgba(13, 148, 136, 0.32);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.7);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.aimeos .checkout-standard-summary-option-terms a:link:not(.btn):hover,
.aimeos .checkout-standard-summary-option-terms a:visited:not(.btn):hover,
.checkout-standard-summary-option-terms a:link:not(.btn):hover,
.checkout-standard-summary-option-terms a:visited:not(.btn):hover {
    color: #0d9488 !important;
    background: linear-gradient(180deg, rgba(13, 148, 136, 0.22) 0%, rgba(13, 148, 136, 0.12) 100%);
    border-color: rgba(13, 148, 136, 0.5);
    box-shadow:
        0 4px 12px rgba(13, 148, 136, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.85);
    transform: translateY(-1px);
}

.aimeos .checkout-standard-summary-option-terms a:link:not(.btn):focus-visible,
.aimeos .checkout-standard-summary-option-terms a:visited:not(.btn):focus-visible,
.checkout-standard-summary-option-terms a:link:not(.btn):focus-visible,
.checkout-standard-summary-option-terms a:visited:not(.btn):focus-visible {
    outline: 2px solid #0d9488;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .checkout-standard-summary-option-terms a:not(.btn):hover {
        transform: none !important;
    }
}

/* Catalog detail: TikTok + Instagram share (client/html/catalog/social/list) */
.catalog-detail .catalog-social .social-button-instagram:before {
    content: "\f437";
}

.catalog-detail .catalog-social .social-button-tiktok:before {
    content: "\f6cc";
}

/* Checkout stepper: colorful emoji icons before step number (Aimeos li.step.{basket|address|...}) */
.checkout-standard .steps {
    counter-reset: step;
    padding-bottom: 2.25rem;
}

.checkout-standard .steps .step {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    vertical-align: top;
    width: auto !important;
    min-width: 18%;
    padding: 0.75rem 0.65rem 0.85rem;
    font-size: clamp(1.05rem, 2.4vw, 1.25rem);
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0.02em;
}

.checkout-standard .steps .step a {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* Aimeos theme hides these in the step bar; !important above would reveal them and skew the counter */
.checkout-standard .steps .step.order,
.checkout-standard .steps .step.process {
    display: none !important;
}

.checkout-standard .steps .step::before {
    counter-increment: step;
    font-size: clamp(1.45rem, 3.5vw, 1.85rem);
    line-height: 1;
    vertical-align: middle;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji", sans-serif;
    letter-spacing: 0;
    margin-inline-end: 0.2rem;
}

.checkout-standard .steps .step.basket::before {
    content: "🛒\00a0" counter(step) ". ";
}

.checkout-standard .steps .step.address::before {
    content: "🏠\00a0" counter(step) ". ";
}

.checkout-standard .steps .step.delivery::before {
    content: "🚚\00a0" counter(step) ". ";
}

.checkout-standard .steps .step.payment::before {
    content: "💳\00a0" counter(step) ". ";
}

.checkout-standard .steps .step.summary::before {
    content: "📋\00a0" counter(step) ". ";
}

/* --- Checkout standard: delivery step typography, nav buttons (stepper: theme default) --- */
.checkout-standard-delivery > h1 {
    font-size: clamp(1.35rem, 3.2vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: #0f172a;
    margin-bottom: 0.4rem;
}

.checkout-standard-delivery > .note:first-of-type {
    color: #64748b;
    font-size: 0.9375rem;
    line-height: 1.55;
    margin-bottom: 0.25rem;
}

/* Checkout: all step nav buttons — pill + monochrome (前 / 次 …) */
.checkout-standard-delivery .button-group,
.checkout-standard-payment .button-group,
.checkout-standard-summary .button-group,
.checkout-standard-process .button-group,
.checkout-standard-address .button-group {
    margin-top: 2.25rem;
    padding-top: 1.75rem;
    border-top: 1px solid rgba(15, 23, 42, 0.07);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
}

.checkout-standard-delivery .button-group .btn,
.checkout-standard-payment .button-group .btn,
.checkout-standard-summary .button-group .btn,
.checkout-standard-process .button-group .btn,
.checkout-standard-address .button-group .btn {
    min-width: 9rem;
    min-height: 3rem;
    padding: 0.72rem 1.5rem;
    border-radius: 16px;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.35;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        filter 0.2s ease;
}

.checkout-standard-delivery .button-group .btn-back,
.checkout-standard-payment .button-group .btn-back,
.checkout-standard-summary .button-group .btn-back,
.checkout-standard-address .button-group .btn-back,
.checkout-standard-process .button-group .btn-default {
    background: #fff !important;
    border: 1px solid rgba(15, 23, 42, 0.1) !important;
    color: #1e293b !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.checkout-standard-delivery .button-group .btn-back:hover,
.checkout-standard-payment .button-group .btn-back:hover,
.checkout-standard-summary .button-group .btn-back:hover,
.checkout-standard-address .button-group .btn-back:hover,
.checkout-standard-process .button-group .btn-default:hover {
    border-color: rgba(0, 0, 0, 0.22) !important;
    color: #0f172a !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}

.checkout-standard-delivery .button-group .btn-action,
.checkout-standard-payment .button-group .btn-action,
.checkout-standard-summary .button-group .btn-action,
.checkout-standard-process .button-group .btn-action,
.checkout-standard-process .button-group a.btn-primary.btn-action {
    background: var(--ce-ui-dark, #1a1a1a) !important;
    background-image: none !important;
    border: none !important;
    color: #fff !important;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.12),
        0 6px 16px rgba(0, 0, 0, 0.1);
}

.checkout-standard-delivery .button-group .btn-action:hover,
.checkout-standard-payment .button-group .btn-action:hover,
.checkout-standard-summary .button-group .btn-action:hover,
.checkout-standard-process .button-group .btn-action:hover,
.checkout-standard-process .button-group a.btn-primary.btn-action:hover {
    background: var(--ce-ui-dark-hover, #2d2d2d) !important;
    filter: none;
    transform: translateY(-2px);
    box-shadow:
        0 4px 8px rgba(0, 0, 0, 0.14),
        0 10px 22px rgba(0, 0, 0, 0.12);
}

@media (prefers-reduced-motion: reduce) {
    .checkout-standard-delivery .button-group .btn:hover,
    .checkout-standard-payment .button-group .btn:hover,
    .checkout-standard-summary .button-group .btn:hover,
    .checkout-standard-process .button-group .btn:hover,
    .checkout-standard-address .button-group .btn:hover {
        transform: none !important;
    }
}

.aimeos.basket-standard .basket-save .btn,
.basket-standard .basket-save .btn {
    border-radius: 12px;
}

/* Basket page: もどる / チェックアウト + coupon + bulk CTA — same pill + monochrome */
.aimeos.basket-standard .button-group,
.basket-standard .button-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 0 1.25rem;
}

.aimeos.basket-standard .button-group .btn,
.basket-standard .button-group .btn {
    min-width: 9rem;
    min-height: 3rem;
    padding: 0.72rem 1.35rem;
    border-radius: var(--ce-pill-radius, 16px);
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.35;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.aimeos.basket-standard .button-group .btn-default,
.basket-standard .button-group .btn-default {
    background: #fff !important;
    color: #1e293b !important;
    border: 1px solid rgba(0, 0, 0, 0.14) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.aimeos.basket-standard .button-group .btn-default:hover,
.basket-standard .button-group .btn-default:hover {
    border-color: rgba(0, 0, 0, 0.24) !important;
    color: #0f172a !important;
    transform: translateY(-1px);
}

.aimeos.basket-standard .button-group .btn-primary,
.basket-standard .button-group .btn-primary {
    background: var(--ce-ui-dark, #1a1a1a) !important;
    background-image: none !important;
    color: #fff !important;
    border: none !important;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.12),
        0 6px 16px rgba(0, 0, 0, 0.1);
}

.aimeos.basket-standard .button-group .btn-primary:hover,
.basket-standard .button-group .btn-primary:hover {
    background: var(--ce-ui-dark-hover, #2d2d2d) !important;
    filter: none;
    color: #fff !important;
    transform: translateY(-2px);
}

.aimeos.basket-standard .basket-standard-coupon .coupon-new .btn.btn-primary,
.aimeos.basket-standard .basket-standard-coupon .btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 6.5rem;
    min-height: 2.5rem;
    padding: 0.45rem 1rem !important;
    border-radius: var(--ce-pill-radius, 16px) !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    background: #f1f5f9 !important;
    color: #0f172a !important;
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    width: auto !important;
}

.aimeos.basket-standard .basket-standard-coupon .coupon-new .btn.btn-primary:hover,
.aimeos.basket-standard .basket-standard-coupon .btn-primary:hover {
    background: #e2e8f0 !important;
    border-color: rgba(0, 0, 0, 0.2) !important;
    color: #0f172a !important;
}

/* Bulk order: main submit + row icon buttons */
.aimeos.basket-bulk .button-group .btn.btn-primary,
.aimeos.basket-bulk .button-group .btn-action {
    min-width: 12rem;
    min-height: 3rem;
    padding: 0.75rem 1.5rem;
    border-radius: var(--ce-pill-radius, 16px);
    font-weight: 600;
    background: var(--ce-ui-dark, #1a1a1a) !important;
    background-image: none !important;
    color: #fff !important;
    border: none !important;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.12),
        0 6px 16px rgba(0, 0, 0, 0.1);
}

.aimeos.basket-bulk .button-group .btn.btn-primary:hover,
.aimeos.basket-bulk .button-group .btn-action:hover {
    background: var(--ce-ui-dark-hover, #2d2d2d) !important;
    filter: none;
}

.aimeos.basket-bulk .bulk-main a.minibutton {
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #fff !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.aimeos.basket-bulk .bulk-main a.minibutton:hover {
    border-color: rgba(0, 0, 0, 0.18);
    background: #f8fafc !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

/* Mini-basket drawer: checkout CTA */
.aimeos .basket-mini-product .btn.btn-primary,
.basket-mini .basket-mini-product .btn.btn-primary {
    border-radius: var(--ce-pill-radius, 16px) !important;
    padding: 0.7rem 1.25rem !important;
    font-weight: 600 !important;
    background: var(--ce-ui-dark, #1a1a1a) !important;
    color: #fff !important;
    border: none !important;
    box-shadow:
        0 2px 4px rgba(0, 0, 0, 0.15),
        0 6px 14px rgba(0, 0, 0, 0.12);
}

.aimeos .basket-mini-product .btn.btn-primary:hover,
.basket-mini .basket-mini-product .btn.btn-primary:hover {
    background: var(--ce-ui-dark-hover, #2d2d2d) !important;
    color: #fff !important;
    filter: none;
}

/* Home hero: 見てみる (Take a look) ghost CTA */
.aimeos.catalog-home .home-stage .stage-text .btn,
.catalog-home .home-stage .stage-text .btn {
    border-radius: var(--ce-pill-radius, 16px) !important;
    font-weight: 600 !important;
    padding: 0.55rem 1.25rem !important;
    width: auto !important;
    min-width: 10rem;
    max-width: 100%;
    border-width: 2px !important;
    backdrop-filter: blur(6px);
    background: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.aimeos.catalog-home .home-stage .stage-text .btn:hover,
.catalog-home .home-stage .stage-text .btn:hover {
    background: rgba(255, 255, 255, 0.22) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
    .aimeos.basket-standard .button-group .btn:hover,
    .aimeos.basket-bulk .button-group .btn:hover,
    .aimeos.catalog-home .home-stage .stage-text .btn:hover {
        transform: none !important;
    }
}

/* --------------------------------------------------------------------------
   Mobile / tablet responsive — header, home rails, product grids
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
    .aimeos.catalog-home {
        margin-top: 0 !important;
    }

    main .ce-home-bestsellers-wrap--promo {
        max-width: 100%;
        margin-inline: auto;
        padding-inline: clamp(0.65rem, 2.5vw, 1.15rem);
    }

    main .aimeos.catalog-home.ce-home-slider-wrap,
    main .ce-home-cat-block__container.container-xxl {
        width: 100%;
        max-width: 100%;
    }

    .ce-home-category-blocks {
        padding-inline: clamp(0.5rem, 2vw, 1rem);
        border-radius: 20px;
    }

    .ce-home-cat-block__container {
        padding-inline: clamp(0.65rem, 2vw, 1rem);
    }
}

@media (max-width: 575.98px) {
    .navbar.navbar-top.careearth-navbar {
        padding-inline: max(0.65rem, env(safe-area-inset-left, 0px))
            max(0.65rem, env(safe-area-inset-right, 0px));
    }

    .navbar.navbar-top.careearth-navbar > .basket-mini,
    .navbar.navbar-top.careearth-navbar > .navbar-toggler {
        align-self: center;
    }

    .ce-home-bestsellers__banner-photo {
        width: 100%;
        height: auto;
        display: block;
    }

    .ce-home-cat-block__grid--cards.catalog-list-items,
    .ce-home-cat-block__grid.catalog-list-items.product-list {
        grid-template-columns: 1fr !important;
        gap: 1rem;
    }

    .ce-home-cat-block__grid .product.row {
        width: 100% !important;
        max-width: none !important;
    }

    .aimeos:not(.cms-page).catalog-list .catalog-list-items .product .text-list .name,
    .aimeos:not(.cms-page).catalog-list .catalog-list-items .product .text-list .text-item {
        white-space: normal;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-height: 1.35;
        overflow: hidden;
    }

    .aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket {
        margin-left: 0;
        gap: 0.45rem;
    }

    .aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket .btn-primary,
    .aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket .btn-pin {
        min-height: 2.65rem;
        min-width: 2.65rem;
    }

    .aimeos:not(.cms-page).catalog-list .catalog-list-items .addbasket input[type='number'] {
        width: 3.25rem;
        min-height: 2.65rem;
        font-size: 1rem;
    }
}
