/* Shop — lightweight UI tweaks */

:root {
    --shop-brand: #119FAE;
    --shop-brand-dark: #0d8591;
    --shop-radius: 12px;
}

/* ── Header account toggle ── */
.shop-account-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.5rem;
    padding: 0.4rem 0.9rem 0.4rem 0.55rem;
    border: 1.5px solid rgba(17, 159, 174, 0.35);
    border-radius: 999px;
    background: linear-gradient(180deg, #fff 0%, #f3fbfd 100%);
    color: var(--shop-brand-dark) !important;
    text-decoration: none !important;
    box-shadow: 0 2px 10px rgba(17, 159, 174, 0.12);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
    -webkit-tap-highlight-color: transparent;
}

.shop-account-toggle:hover,
.shop-account-toggle:focus-visible {
    border-color: var(--shop-brand);
    background: #fff;
    box-shadow: 0 6px 18px rgba(17, 159, 174, 0.2);
    transform: translateY(-1px);
    color: var(--shop-brand-dark) !important;
}

.shop-account-toggle__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 50%;
    background: rgba(17, 159, 174, 0.12);
    color: var(--shop-brand);
    flex: 0 0 auto;
}

.shop-account-toggle__label {
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1;
    white-space: nowrap;
}

/* ── Account switcher (profile) ── */
.shop-account-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    max-width: 100%;
    padding: 0.55rem 0.7rem 0.55rem 0.55rem;
    border: 1px solid rgba(17, 159, 174, 0.22);
    border-radius: 999px;
    background: linear-gradient(180deg, #f4fbfd 0%, #fff 100%);
    color: #16383d !important;
    box-shadow: 0 4px 14px rgba(17, 159, 174, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    cursor: pointer;
    text-align: right;
}

.shop-account-chip:hover,
.shop-account-chip:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(17, 159, 174, 0.45);
    box-shadow: 0 8px 20px rgba(17, 159, 174, 0.14);
}

.shop-account-chip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: rgba(17, 159, 174, 0.14);
    color: var(--shop-brand);
    flex: 0 0 auto;
}

.shop-account-chip__copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.1rem;
    align-items: flex-start;
}

.shop-account-chip__copy strong {
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1.15;
}

.shop-account-chip__copy small {
    max-width: 14rem;
    overflow: hidden;
    color: #6a7f83;
    font-size: 0.7rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-account-chip__action {
    flex: 0 0 auto;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #0f8f9d 0%, #14b8a6 100%);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 900;
}

.shop-account-modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 1rem;
}

@media (min-width: 576px) {
    .shop-account-modal {
        align-items: center;
    }
}

.shop-account-modal__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(12, 36, 40, 0.48);
    backdrop-filter: blur(3px);
    cursor: pointer;
}

.shop-account-modal__panel {
    position: relative;
    z-index: 1;
    width: min(28rem, 100%);
    max-height: min(80vh, 36rem);
    overflow: auto;
    padding: 1.2rem 1.15rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 1.25rem 1.25rem 1rem 1rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(17, 159, 174, 0.12), transparent 42%),
        linear-gradient(180deg, #fff 0%, #f7fbfc 100%);
    box-shadow: 0 24px 60px rgba(12, 36, 40, 0.28);
    animation: shop-account-modal-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@media (min-width: 576px) {
    .shop-account-modal__panel {
        border-radius: 1.25rem;
    }
}

@keyframes shop-account-modal-in {
    from {
        opacity: 0;
        transform: translateY(18px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.shop-account-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.shop-account-modal__head h3 {
    margin: 0.15rem 0 0.3rem;
    color: #16383d;
    font-size: 1.1rem;
    font-weight: 900;
}

.shop-account-modal__head p {
    margin: 0;
    color: #6a7f83;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.55;
}

.shop-account-modal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border: 0;
    border-radius: 50%;
    background: rgba(22, 56, 61, 0.06);
    color: #3d5559;
    flex: 0 0 auto;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.shop-account-modal__close:hover,
.shop-account-modal__close:focus-visible {
    background: rgba(22, 56, 61, 0.12);
    color: #16383d;
}

.shop-account-switcher__list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.shop-account-switcher__item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    width: 100%;
    padding: 0.9rem 1rem;
    border: 1px solid #e4eef0;
    border-radius: 14px;
    background: #fff;
    color: #16383d !important;
    text-align: right;
    text-decoration: none !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
}

button.shop-account-switcher__item {
    cursor: pointer;
}

button.shop-account-switcher__item:hover,
button.shop-account-switcher__item:focus-visible {
    border-color: rgba(17, 159, 174, 0.45);
    background: #f7fcfd;
    box-shadow: 0 8px 20px rgba(17, 159, 174, 0.1);
    transform: translateY(-1px);
}

.shop-account-switcher__item.is-current {
    border-color: rgba(17, 159, 174, 0.4);
    background: linear-gradient(180deg, #f3fbfd 0%, #fff 100%);
    box-shadow: 0 4px 14px rgba(17, 159, 174, 0.08);
}

.shop-account-switcher__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: rgba(17, 159, 174, 0.12);
    color: var(--shop-brand);
    flex: 0 0 auto;
}

.shop-account-switcher__copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.15rem;
}

.shop-account-switcher__copy strong {
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.2;
}

.shop-account-switcher__copy small,
.shop-account-switcher__copy em {
    color: #6a7f83;
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 700;
}

.shop-account-switcher__badge {
    flex: 0 0 auto;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: rgba(17, 159, 174, 0.14);
    color: var(--shop-brand-dark);
    font-size: 0.72rem;
    font-weight: 900;
}

.shop-account-switcher__chev {
    color: #9bb0b4;
    font-size: 1.25rem;
    font-weight: 900;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .shop-account-toggle {
        padding: 0.35rem 0.7rem 0.35rem 0.4rem;
        gap: 0.4rem;
        min-height: 2.25rem;
    }

    .shop-account-toggle__icon {
        width: 1.65rem;
        height: 1.65rem;
    }

    .shop-account-toggle__label {
        font-size: 0.78rem;
    }
}

/* ── Profile quick-action cards ── */
.profile-quick-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.5rem;
    min-height: 7.5rem;
    padding: 1.25rem 1.5rem !important;
    border-radius: var(--shop-radius) !important;
    text-decoration: none !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.profile-quick-link:hover,
.profile-quick-link:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    text-decoration: none !important;
}

.profile-quick-link:active {
    transform: translateY(0);
}

.profile-quick-link__title {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
}

.profile-quick-link .svg-icon {
    margin-bottom: 0.25rem;
}

.profile-card {
    border-radius: var(--shop-radius);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}

.profile-card .card-header.bg-info {
    background: linear-gradient(135deg, var(--shop-brand) 0%, var(--shop-brand-dark) 100%) !important;
}

.profile-quick-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.profile-settings-card,
.profile-user-card {
    border-radius: var(--shop-radius);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* ── Home: package cards (same layout, subtle icon) ── */
.shop-package-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(17, 159, 174, 0.08);
}

/* ── Home: cart bar (original teal bar, responsive) ── */
.shop-cart-bar-lite {
    background-color: #119faed1;
    color: #fff;
}

.shop-cart-bar-lite .btn-outline-light {
    border: 1px solid rgba(255, 255, 255, 0.85) !important;
    color: #fff !important;
}

.shop-cart-bar-lite .btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}

/* ── Home: contact phones ── */
.shop-contact-bar {
    gap: 0.5rem 1rem;
    padding: 0.75rem 1rem;
    background: #f8fafb;
    border-radius: var(--shop-radius);
}

.shop-contact-bar__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #5e6278;
}

.shop-contact-bar__phone {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--shop-brand-dark);
    text-decoration: none;
    padding: 0.35rem 0.75rem;
    border-radius: 8px;
    background: rgba(17, 159, 174, 0.08);
    transition: background 0.15s ease;
}

.shop-contact-bar__phone:hover {
    background: rgba(17, 159, 174, 0.16);
    color: var(--shop-brand-dark);
}

/* ── Header: cart button ── */
.shop-header-cart {
    --cart-a: #0f8f9d;
    --cart-b: #14b8a6;
    position: relative;
    display: inline-flex !important;
    align-items: center;
    gap: 0.55rem;
    min-height: 2.5rem;
    padding: 0.4rem 0.9rem 0.4rem 0.55rem !important;
    border: 1.5px solid rgba(15, 143, 157, 0.28);
    border-radius: 999px;
    background: linear-gradient(135deg, var(--cart-a) 0%, var(--cart-b) 100%);
    color: #fff !important;
    font-weight: 800;
    font-size: 0.88rem;
    letter-spacing: -0.01em;
    white-space: nowrap;
    box-shadow:
        0 6px 18px rgba(15, 143, 157, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.14) inset;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease, border-color 0.18s ease;
    -webkit-tap-highlight-color: transparent;
}

.shop-header-cart:hover,
.shop-header-cart:focus-visible {
    transform: translateY(-1px);
    filter: saturate(1.06) brightness(1.03);
    box-shadow:
        0 10px 24px rgba(15, 143, 157, 0.36),
        0 0 0 1px rgba(255, 255, 255, 0.18) inset;
    color: #fff !important;
}

.shop-header-cart:active {
    transform: translateY(0);
}

.shop-header-cart__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
    line-height: 0;
    flex: 0 0 auto;
}

.shop-header-cart__label {
    line-height: 1;
}

.shop-header-cart__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: #fff;
    color: #0b6f7a;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(11, 111, 122, 0.18);
}

@media (max-width: 575.98px) {
    .shop-header-cart {
        padding: 0.35rem 0.7rem 0.35rem 0.4rem !important;
        gap: 0.4rem;
        min-height: 2.25rem;
        font-size: 0.78rem;
    }

    .shop-header-cart__icon {
        width: 1.65rem;
        height: 1.65rem;
    }
}

/* ── Support float (Bale / WhatsApp / Call) ── */
.shop-support-float {
    --support-a: #ff4d2e;
    --support-b: #ff7a18;
    --support-ink: #3a180f;
    position: fixed;
    bottom: 22px;
    right: 22px;
    z-index: 1050;
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 0.75rem;
    -webkit-tap-highlight-color: transparent;
}

.shop-support-float__toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    list-style: none;
    padding: 0.7rem 1.05rem 0.7rem 0.85rem;
    border: 0;
    border-radius: 999px;
    background:
        linear-gradient(135deg, var(--support-a) 0%, var(--support-b) 58%, #ffb347 140%);
    color: #fff !important;
    box-shadow:
        0 10px 28px rgba(255, 77, 46, 0.42),
        0 0 0 1px rgba(255, 255, 255, 0.18) inset;
    font-weight: 900;
    font-size: 0.92rem;
    cursor: pointer;
    transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
    user-select: none;
    isolation: isolate;
}

.shop-support-float__toggle::-webkit-details-marker {
    display: none;
}

.shop-support-float__toggle::marker {
    content: "";
    display: none;
}

.shop-support-float__pulse {
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    border: 2px solid rgba(255, 122, 24, 0.55);
    animation: shop-support-ring 2.2s ease-out infinite;
    pointer-events: none;
    z-index: -1;
}

.shop-support-float__toggle:hover {
    transform: translateY(-2px) scale(1.03);
    filter: saturate(1.08);
    box-shadow:
        0 14px 34px rgba(255, 77, 46, 0.5),
        0 0 0 1px rgba(255, 255, 255, 0.22) inset;
}

.shop-support-float__icon,
.shop-support-float__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.shop-support-float__icon {
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}

.shop-support-float__copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.05rem;
    line-height: 1.15;
}

.shop-support-float__text {
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: -0.01em;
}

.shop-support-float__close {
    display: none;
    flex: 0 0 2.15rem;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}

.shop-support-float[open] .shop-support-float__toggle {
    background: linear-gradient(135deg, #1f2430 0%, #353b4a 100%);
    box-shadow: 0 10px 28px rgba(20, 24, 34, 0.35);
}

.shop-support-float[open] .shop-support-float__pulse {
    display: none;
}

.shop-support-float[open] .shop-support-float__icon,
.shop-support-float[open] .shop-support-float__copy {
    display: none;
}

.shop-support-float[open] .shop-support-float__close {
    display: inline-flex;
}

.shop-support-float[open] .shop-support-float__toggle {
    padding: 0.55rem;
}

.shop-support-float__menu {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    width: min(17.5rem, calc(100vw - 2.5rem));
    padding: 0.7rem;
    border: 1px solid rgba(255, 122, 24, 0.18);
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(255, 122, 24, 0.12), transparent 42%),
        linear-gradient(180deg, #fff 0%, #fff8f3 100%);
    box-shadow:
        0 18px 44px rgba(58, 24, 15, 0.18),
        0 2px 0 rgba(255, 255, 255, 0.7) inset;
    animation: shop-support-pop 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
    transform-origin: bottom right;
}

.shop-support-float__menu-head {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.35rem 0.45rem 0.55rem;
}

.shop-support-float__menu-head strong {
    color: var(--support-ink);
    font-size: 0.9rem;
    font-weight: 900;
}

.shop-support-float__menu-head small {
    color: #8a6a5d;
    font-size: 0.7rem;
    font-weight: 700;
}

.shop-support-float__item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.82);
    color: var(--support-ink) !important;
    text-decoration: none !important;
    transition: background 0.18s ease, transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
    animation: shop-support-item 0.34s cubic-bezier(0.22, 1, 0.36, 1) both;
    animation-delay: calc(var(--i, 0) * 55ms);
}

.shop-support-float__item:hover {
    background: #fff;
    border-color: rgba(255, 122, 24, 0.22);
    transform: translateX(-3px);
    box-shadow: 0 8px 18px rgba(58, 24, 15, 0.08);
}

.shop-support-float__item-icon {
    display: inline-flex;
    flex: 0 0 2.45rem;
    width: 2.45rem;
    height: 2.45rem;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    color: #fff;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
}

.shop-support-float__item-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.12rem;
}

.shop-support-float__item strong {
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.2;
}

.shop-support-float__item small {
    color: #8a6a5d;
    font-size: 0.7rem;
    font-weight: 700;
}

.shop-support-float__chev {
    color: #c4a497;
    font-size: 1.1rem;
    font-weight: 900;
    line-height: 1;
}

.shop-support-float__item--bale .shop-support-float__item-icon {
    background: linear-gradient(145deg, #19b7c9, #0e8fa3);
}

.shop-support-float__item--whatsapp .shop-support-float__item-icon {
    background: linear-gradient(145deg, #34e07a, #1ebe57);
}

.shop-support-float__item--call .shop-support-float__item-icon {
    background: linear-gradient(145deg, #5b8cff, #3a63ea);
}

.shop-support-float__item--bale:hover {
    border-color: rgba(14, 143, 163, 0.28);
}

.shop-support-float__item--whatsapp:hover {
    border-color: rgba(30, 190, 87, 0.28);
}

.shop-support-float__item--call:hover {
    border-color: rgba(58, 99, 234, 0.28);
}

@keyframes shop-support-pop {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.94);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes shop-support-item {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes shop-support-ring {
    0% {
        transform: scale(1);
        opacity: 0.7;
    }
    70% {
        transform: scale(1.18);
        opacity: 0;
    }
    100% {
        transform: scale(1.18);
        opacity: 0;
    }
}

#kt_content_container {
    padding-bottom: 70px;
}

#kt_wrapper {
    min-height: 100vh;
}

/* Keep header dropdowns above page content and fully interactive. */
#kt_header {
    z-index: 1100;
    overflow: visible;
}

#kt_header > .container-xxl,
#kt_header .header-menu-container,
#kt_header .header-menu,
#kt_header [data-kt-menu="true"] {
    overflow: visible;
}

#kt_header .menu-sub-dropdown,
#kt_header .menu-sub-lg-dropdown {
    z-index: 1200 !important;
    pointer-events: auto;
}

#kt_header .menu-sub-dropdown .menu-link,
#kt_header .menu-sub-lg-dropdown .menu-link {
    position: relative;
    z-index: 1;
    pointer-events: auto;
}

/* Sticky header: keep desktop menu visible on scroll */
@media (min-width: 992px) {
    .header-fixed[data-kt-sticky-header=on] .header {
        height: auto !important;
        min-height: 72px;
        background: #fff;
    }

    .header-fixed[data-kt-sticky-header=on] .header .header-menu-container {
        display: flex !important;
        align-items: center;
        width: auto;
        flex: 1 1 auto;
        height: auto !important;
    }

    .header-fixed[data-kt-sticky-header=on] .header > .container-xxl {
        min-height: 72px;
        gap: 0.75rem;
    }

    .header-fixed[data-kt-sticky-header=on] .header .separator {
        display: none !important;
    }
}

/* ── Mobile header & menu ── */
@media (max-width: 991.98px) {
    #kt_header {
        height: auto !important;
        min-height: 64px;
        padding: 0.5rem 0;
    }

    #kt_header > .container-xxl {
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .header-menu-container {
        height: auto !important;
    }

    /* drawer starts below fixed header so first item (فروشگاه) stays visible */
    [data-kt-drawer-name="header-menu"].drawer {
        top: 65px;
        height: calc(100% - 65px);
    }

    [data-kt-drawer-name="header-menu"] .menu {
        margin-top: 0 !important;
    }

    /* drawer menu: bigger tap targets */
    [data-kt-drawer-name="header-menu"] .menu-link {
        min-height: 44px;
        font-size: 1rem;
    }

    [data-kt-drawer-name="header-menu"] .menu-sub .menu-link {
        padding-right: 1.5rem !important;
    }
}

/* ── Mobile general ── */
@media (max-width: 767.98px) {
    #kt_toolbar {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }

    #kt_toolbar .page-title h1 {
        font-size: 1.25rem !important;
    }

    #kt_content_container.container-xxl,
    .container-xxl {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .content.flex-row-fluid {
        padding-top: 0.5rem;
    }

    .mt-8 {
        margin-top: 1.5rem !important;
    }

    /* Profile */
    .profile-page-layout > [class*="col-"] {
        margin-bottom: 1rem;
    }

    .profile-quick-link {
        min-height: 6.5rem;
        padding: 1rem 1.15rem !important;
    }

    .profile-quick-link__title {
        font-size: 0.925rem;
    }

    .profile-quick-link .svg-icon svg {
        width: 2rem !important;
        height: 2rem !important;
    }

    .profile-user-card .symbol.symbol-100px {
        width: 72px !important;
        height: 72px !important;
    }

    .profile-user-card .symbol.symbol-lg-160px img {
        width: 72px !important;
    }

    .profile-user-card .fs-2 {
        font-size: 1.25rem !important;
    }

    .table-responsive {
        -webkit-overflow-scrolling: touch;
    }

    /* Cart bar: stack on mobile */
    .shop-cart-actions {
        flex-direction: column;
        align-items: stretch !important;
    }

    .shop-cart-actions .btn-outline-light {
        width: 100%;
        margin: 0 !important;
    }

    .shop-cart-checkout-btn {
        width: 100% !important;
        float: none !important;
        display: block;
        text-align: center;
    }

    /* Header cart: keep label + badge readable on small screens */
    .shop-header-cart {
        padding: 0.35rem 0.65rem 0.35rem 0.35rem !important;
    }

    /* Contact bar */
    .shop-contact-bar {
        flex-direction: column;
        text-align: center;
    }

    .shop-contact-bar__phone {
        width: 100%;
        text-align: center;
    }

    /* Support float: compact */
    .shop-support-float {
        bottom: 16px;
        right: 16px;
    }

    .shop-support-float__toggle {
        padding: 0.6rem 0.9rem 0.6rem 0.7rem;
        font-size: 0.84rem;
        gap: 0.55rem;
    }

    .shop-support-float__icon {
        width: 1.95rem;
        height: 1.95rem;
        flex-basis: 1.95rem;
    }

    .shop-support-float__icon svg {
        width: 18px;
        height: 18px;
    }

    .shop-support-float__menu {
        width: min(16.5rem, calc(100vw - 2rem));
    }

    .auth-page-wrapper {
        padding: 1.5rem 1rem !important;
    }
}

@media (min-width: 768px) {
    .shop-cart-checkout-btn {
        float: left;
    }
}

@media (max-width: 575.98px) {
    .profile-quick-grid {
        gap: 0.5rem;
    }

    .profile-quick-link {
        min-height: 5.75rem;
        padding: 0.875rem 1rem !important;
    }

    .shop-support-float__copy {
        display: none;
    }

    .shop-support-float:not([open]) .shop-support-float__toggle {
        width: 58px;
        height: 58px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }

    .shop-support-float:not([open]) .shop-support-float__icon {
        width: 100%;
        height: 100%;
        flex-basis: auto;
        background: transparent;
        box-shadow: none;
    }

    .shop-support-float[open] .shop-support-float__toggle {
        width: 46px;
        height: 46px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }
}

/* ── Checkout payment UI ── */
.shop-checkout {
    position: sticky;
    top: 5.5rem;
    z-index: 1;
}

.shop-checkout__panel {
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    border-radius: 16px;
    box-shadow: 0 10px 36px rgba(17, 159, 174, 0.08);
    overflow: hidden;
}

.shop-checkout__header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.1rem 1.25rem;
    background: linear-gradient(135deg, rgba(17, 159, 174, 0.1) 0%, rgba(17, 159, 174, 0.03) 100%);
    border-bottom: 1px solid rgba(17, 159, 174, 0.1);
}

.shop-checkout__header-icon {
    width: 36px;
    height: auto;
}

.shop-checkout__title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 800;
    color: #181c32;
}

.shop-checkout__subtitle {
    margin: 0.15rem 0 0;
    font-size: 0.8rem;
    color: #7e8299;
}

.shop-checkout__body {
    padding: 1.15rem 1.25rem 1.35rem;
}

.shop-checkout-summary {
    background: #f4fbfc;
    border: 1px solid rgba(17, 159, 174, 0.12);
    border-radius: 12px;
    padding: 0.95rem 1rem;
    margin-bottom: 1rem;
}

.shop-checkout-summary__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.55rem;
    font-size: 0.9rem;
    color: #5e6278;
}

.shop-checkout-summary__row strong {
    color: var(--shop-brand-dark);
    font-weight: 700;
}

.shop-checkout-summary__row--discount strong {
    color: #f1416c;
}

.shop-checkout-summary__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 0.65rem;
    padding-top: 0.75rem;
    border-top: 1px dashed rgba(17, 159, 174, 0.25);
}

.shop-checkout-summary__total span {
    font-weight: 700;
    color: #181c32;
}

.shop-checkout-summary__total strong {
    font-size: 1.15rem;
    color: var(--shop-brand-dark);
}

.shop-checkout-block {
    margin-bottom: 1.15rem;
}

.shop-checkout-block__title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: #181c32;
}

.shop-checkout-block__hint {
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
    color: #a1a5b7;
}

.shop-checkout-coupon {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.5rem;
}

.shop-checkout-coupon__input {
    min-height: 44px;
    border-radius: 10px !important;
}

.shop-checkout-coupon__btn {
    min-height: 44px;
    min-width: 88px;
    border-radius: 10px !important;
    background: var(--shop-brand) !important;
    border-color: var(--shop-brand) !important;
    color: #fff !important;
    font-weight: 700;
}

.shop-checkout-address {
    min-height: 96px;
    border-radius: 10px !important;
}

.shop-checkout-alert {
    margin-top: 0.65rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 600;
}

.shop-checkout-alert--success {
    background: rgba(80, 205, 137, 0.12);
    color: #0f7a45;
}

.shop-checkout-alert--error {
    background: rgba(241, 65, 108, 0.1);
    color: #c4194a;
}

.shop-pay-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}

.shop-pay-option {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0;
    padding: 0.9rem 0.8rem;
    border: 1.5px solid rgba(17, 159, 174, 0.18);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, transform 0.18s ease;
    -webkit-tap-highlight-color: transparent;
}

.shop-pay-option:hover {
    border-color: rgba(17, 159, 174, 0.45);
    box-shadow: 0 6px 18px rgba(17, 159, 174, 0.08);
}

.shop-pay-option.is-active {
    border-color: var(--shop-brand);
    background: rgba(17, 159, 174, 0.06);
    box-shadow: 0 8px 22px rgba(17, 159, 174, 0.12);
}

.shop-pay-option__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.shop-pay-option__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(17, 159, 174, 0.1);
    color: var(--shop-brand-dark);
    flex-shrink: 0;
}

.shop-pay-option.is-active .shop-pay-option__icon {
    background: var(--shop-brand);
    color: #fff;
}

.shop-pay-option__text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    flex: 1;
}

.shop-pay-option__name {
    font-size: 0.9rem;
    font-weight: 800;
    color: #181c32;
    line-height: 1.35;
}

.shop-pay-option__desc {
    font-size: 0.72rem;
    color: #7e8299;
    line-height: 1.4;
}

.shop-pay-option__check {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid #c4c8d4;
    flex-shrink: 0;
    margin-top: 0.15rem;
    position: relative;
}

.shop-pay-option.is-active .shop-pay-option__check {
    border-color: var(--shop-brand);
    background: var(--shop-brand);
}

.shop-pay-option.is-active .shop-pay-option__check::after {
    content: '';
    position: absolute;
    top: 3px;
    right: 5px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.shop-pay-option--snapp {
    grid-column: 1 / -1;
}

.shop-pay-option--snapp .shop-pay-option__icon--snapp {
    width: 40px;
    min-width: 40px;
    height: 40px;
    padding: 0;
    background: transparent;
    border: none;
    overflow: hidden;
    border-radius: 10px;
}

.shop-pay-option--snapp .shop-pay-option__icon--snapp img {
    display: block;
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.shop-pay-option--snapp.is-active {
    border-color: #0B5FFF;
    background: #f0f5ff;
}

.shop-installment-picker {
    margin-top: 0.9rem;
    padding: 0.95rem;
    border-radius: 12px;
    background: rgba(255, 199, 0, 0.08);
    border: 1px solid rgba(255, 168, 0, 0.22);
}

.shop-installment-picker__label {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: #5e6278;
}

.shop-installment-picker__options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.shop-installment-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    min-height: 68px;
    margin: 0;
    padding: 0.55rem 0.35rem;
    border-radius: 10px;
    border: 1.5px solid rgba(0, 0, 0, 0.08);
    background: #fff;
    cursor: pointer;
    transition: all 0.16s ease;
}

.shop-installment-chip__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.shop-installment-chip__num {
    font-size: 1.25rem;
    font-weight: 800;
    color: #181c32;
    line-height: 1;
}

.shop-installment-chip__text {
    font-size: 0.72rem;
    color: #7e8299;
    font-weight: 600;
}

.shop-installment-chip.is-active {
    border-color: #f6a800;
    background: #fff8e8;
    box-shadow: 0 4px 14px rgba(246, 168, 0, 0.18);
}

.shop-installment-chip.is-active .shop-installment-chip__num {
    color: #b77800;
}

.shop-schedule {
    margin-top: 1rem;
}

.shop-schedule__title {
    margin: 0 0 0.65rem;
    font-size: 0.9rem;
    font-weight: 800;
    color: #181c32;
}

.shop-schedule__list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.shop-schedule__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.8rem 0.9rem;
    border-radius: 10px;
    background: #f8fafb;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.shop-schedule__meta {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.shop-schedule__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: rgba(17, 159, 174, 0.12);
    color: var(--shop-brand-dark);
    font-size: 0.8rem;
    font-weight: 800;
    flex-shrink: 0;
}

.shop-schedule__name {
    font-size: 0.88rem;
    font-weight: 700;
    color: #181c32;
}

.shop-schedule__date {
    font-size: 0.75rem;
    color: #a1a5b7;
}

.shop-date {
    direction: ltr;
    unicode-bidi: isolate;
}

.shop-schedule__price {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--shop-brand-dark);
    white-space: nowrap;
}

.shop-schedule__price small {
    font-size: 0.7rem;
    font-weight: 600;
    color: #7e8299;
    margin-right: 0.2rem;
}

@media (max-width: 767.98px) {
    .shop-checkout {
        position: static;
        top: auto;
    }

    .shop-checkout__body {
        padding: 1rem;
    }

    .shop-pay-grid {
        grid-template-columns: 1fr;
    }

    .shop-pay-option {
        min-height: 64px;
        padding: 0.85rem 0.9rem;
    }

    .shop-checkout-coupon {
        grid-template-columns: 1fr;
    }

    .shop-checkout-coupon__btn {
        width: 100%;
    }

    .shop-schedule__item {
        flex-direction: column;
        align-items: flex-start;
    }

    .shop-schedule__price {
        padding-right: 2.35rem;
    }
}

@media (min-width: 992px) {
    .shop-pay-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Checkout pay action bar ── */
.shop-pay-bar {
    position: sticky;
    bottom: 0.75rem;
    z-index: 20;
    margin-top: 1.5rem;
}

.shop-pay-bar__alert {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.shop-pay-bar__alert--error {
    background: #fff5f8;
    border: 1px solid rgba(241, 65, 108, 0.25);
    color: #b4184a;
}

.shop-pay-bar__alert-content {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.88rem;
}

.shop-pay-bar__alert-content strong {
    font-size: 0.92rem;
}

.shop-pay-bar__alert-close {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.25rem;
}

.shop-pay-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 16px;
    background: linear-gradient(135deg, #119FAE 0%, #0d8591 100%);
    box-shadow: 0 12px 36px rgba(17, 159, 174, 0.28);
    color: #fff;
}

.shop-pay-bar__label {
    font-size: 0.8rem;
    opacity: 0.9;
    margin-bottom: 0.2rem;
}

.shop-pay-bar__amount {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
}

.shop-pay-bar__amount small {
    font-size: 0.8rem;
    font-weight: 600;
    opacity: 0.9;
    margin-right: 0.2rem;
}

.shop-pay-bar__method {
    margin-top: 0.35rem;
    font-size: 0.78rem;
    opacity: 0.9;
}

.shop-pay-bar__actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
}

.shop-pay-bar__btn-secondary {
    background: transparent !important;
    border: 1.5px solid rgba(255, 255, 255, 0.7) !important;
    color: #fff !important;
    font-weight: 700;
    min-height: 46px;
    border-radius: 10px !important;
    padding: 0.55rem 1rem !important;
}

.shop-pay-bar__btn-secondary:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}

.shop-pay-bar__btn-primary {
    background: #fff !important;
    border: none !important;
    color: var(--shop-brand-dark) !important;
    font-weight: 800;
    min-height: 46px;
    border-radius: 10px !important;
    padding: 0.55rem 1.15rem !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.shop-pay-bar__btn-primary:hover {
    filter: brightness(0.98);
    color: var(--shop-brand-dark) !important;
}

.shop-pay-bar__btn-primary:disabled {
    opacity: 0.75;
}

@media (max-width: 767.98px) {
    .shop-pay-bar {
        bottom: 0.5rem;
    }

    .shop-pay-bar__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 0.85rem;
        padding: 1rem;
    }

    .shop-pay-bar__actions {
        flex-direction: column;
    }

    .shop-pay-bar__btn-secondary,
    .shop-pay-bar__btn-primary {
        width: 100%;
        justify-content: center;
    }
}

/* ── FAQ page ── */
.shop-faq-page {
    --faq-green: #119FAE;
    --faq-green-dark: #0a7a86;
    --faq-green-light: #e8f7f9;
    --faq-green-soft: rgba(17, 159, 174, 0.1);
}

.shop-faq-hero {
    padding: 2.5rem 2rem;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--faq-green) 0%, var(--faq-green-dark) 100%);
    color: #fff;
    box-shadow: 0 12px 36px rgba(17, 159, 174, 0.25);
}

.shop-faq-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.shop-faq-hero__title {
    font-size: 1.75rem;
    font-weight: 800;
    color: #fff;
    margin: 0;
}

.shop-faq-hero__subtitle {
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.88);
    max-width: 36rem;
    margin-inline: auto;
    line-height: 1.7;
}

.shop-faq-section {
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(17, 159, 174, 0.14);
    box-shadow: 0 6px 24px rgba(17, 159, 174, 0.07);
    overflow: hidden;
}

.shop-faq-section__header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.15rem 1.35rem;
    background: linear-gradient(90deg, var(--faq-green-light) 0%, #fff 100%);
    border-bottom: 2px solid rgba(17, 159, 174, 0.15);
}

.shop-faq-section__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--faq-green);
    color: #fff;
    font-size: 0.95rem;
    font-weight: 800;
    flex-shrink: 0;
}

.shop-faq-section__title {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--faq-green-dark);
}

.shop-faq-section__body {
    padding: 1rem 1.25rem 1.25rem;
}

.shop-faq-accordion .shop-faq-item {
    border: none;
    background: transparent;
    margin-bottom: 0.65rem;
}

.shop-faq-accordion .shop-faq-item:last-child {
    margin-bottom: 0;
}

.shop-faq-accordion .accordion-button {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1.1rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
    background: var(--faq-green-soft);
    border: 1px solid rgba(17, 159, 174, 0.12);
    border-radius: 12px !important;
    box-shadow: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.shop-faq-accordion .accordion-button:hover {
    background: rgba(17, 159, 174, 0.16);
    border-color: rgba(17, 159, 174, 0.28);
    color: var(--faq-green-dark);
}

.shop-faq-accordion .accordion-button:not(.collapsed) {
    background: var(--faq-green);
    border-color: var(--faq-green);
    color: #fff;
    box-shadow: 0 6px 18px rgba(17, 159, 174, 0.22);
}

.shop-faq-accordion .accordion-button::after {
    filter: none;
    opacity: 0.65;
}

.shop-faq-accordion .accordion-button:not(.collapsed)::after {
    filter: brightness(0) invert(1);
    opacity: 1;
}

.shop-faq-item__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--faq-green);
    flex-shrink: 0;
    transition: background 0.18s ease;
}

.shop-faq-accordion .accordion-button:not(.collapsed) .shop-faq-item__dot {
    background: #fff;
}

.shop-faq-item__answer {
    padding: 1rem 1.1rem 0.25rem 2rem;
    font-size: 0.92rem;
    line-height: 1.85;
    color: #5e6278;
    border-right: 3px solid rgba(17, 159, 174, 0.35);
    margin-top: 0.5rem;
    margin-right: 0.5rem;
}

.shop-faq-contact {
    gap: 0.5rem 1rem;
    padding: 1rem 1.25rem;
    background: var(--faq-green-light);
    border: 1px solid rgba(17, 159, 174, 0.18);
    border-radius: var(--shop-radius);
}

.shop-faq-contact__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--faq-green-dark);
}

.shop-faq-contact__phone {
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    padding: 0.4rem 0.85rem;
    border-radius: 8px;
    background: var(--faq-green);
    transition: background 0.15s ease, transform 0.15s ease;
}

.shop-faq-contact__phone:hover {
    background: var(--faq-green-dark);
    color: #fff;
    transform: translateY(-1px);
}

@media (max-width: 767.98px) {
    .shop-faq-hero {
        padding: 1.75rem 1.25rem;
    }

    .shop-faq-hero__title {
        font-size: 1.4rem;
    }

    .shop-faq-section__header {
        padding: 1rem;
    }

    .shop-faq-section__body {
        padding: 0.85rem;
    }

    .shop-faq-contact {
        flex-direction: column;
        text-align: center;
    }

    .shop-faq-contact__phone {
        width: 100%;
        text-align: center;
    }
}

/* ── Product pages ── */
.shop-product-page {
    --product-brand: #119FAE;
    --product-brand-dark: #0a7a86;
    --product-brand-light: #e8f7f9;
}

.shop-product-hero {
    padding: 2.5rem 2rem;
    border-radius: 20px;
    color: #fff;
    box-shadow: 0 14px 40px color-mix(in srgb, var(--product-brand) 28%, transparent);
    background: linear-gradient(135deg, var(--product-brand) 0%, var(--product-brand-dark) 100%);
}

.shop-product-hero--dynamic {
    background: linear-gradient(
        135deg,
        var(--product-brand) 0%,
        var(--product-brand-secondary) 52%,
        var(--product-brand-dark) 100%
    );
}

.shop-product-hero--ancestry {
    background:
        radial-gradient(circle at 88% 18%, rgba(255, 236, 179, 0.18), transparent 42%),
        repeating-linear-gradient(-24deg, transparent 0, transparent 12px, rgba(255, 255, 255, 0.05) 12px, rgba(255, 255, 255, 0.05) 13px),
        linear-gradient(135deg, #6f4e37 0%, #8b6914 52%, #4a3424 100%);
    box-shadow: 0 14px 40px rgba(111, 78, 55, 0.28);
}

.shop-product-hero--psychology {
    background: linear-gradient(135deg, #d582b9 0%, #c45fa3 100%);
    box-shadow: 0 14px 40px rgba(213, 130, 185, 0.28);
}

.shop-product-hero--health {
    background: linear-gradient(135deg, #00a0ac 0%, #007f89 100%);
    box-shadow: 0 14px 40px rgba(0, 160, 172, 0.28);
}

.shop-product-hero--beauty {
    background: linear-gradient(135deg, #c9a227 0%, #a8841a 100%);
    box-shadow: 0 14px 40px rgba(201, 162, 39, 0.28);
}

.shop-product-hero--screening {
    background: linear-gradient(135deg, #3b7dd8 0%, #2a5fad 100%);
    box-shadow: 0 14px 40px rgba(59, 125, 216, 0.28);
}

.shop-product-hero--legacy {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 500px;
    overflow: hidden;
    padding: clamp(2.4rem, 6vw, 5.5rem);
    border-radius: 0;
    background-position: center;
    background-size: cover;
    box-shadow: none;
    width: 100%;
    margin-inline: 0;
}

.shop-product-page,
.shop-product-page #kt_content {
    width: 100%;
    min-width: 0;
    overflow-x: clip;
}

.shop-product-page__inner {
    width: min(100% - 32px, 1120px);
    margin-inline: auto;
}

.shop-product-hero--legacy::before {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(3, 48, 51, .12), rgba(3, 48, 51, .78) 72%, rgba(3, 48, 51, .9));
    content: '';
}

.shop-product-hero--legacy > .row {
    position: relative;
    z-index: 1;
    width: 100%;
}

.shop-product-hero--legacy .shop-product-hero__title {
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.shop-product-hero--legacy .shop-product-hero__lead,
.shop-product-hero--legacy .shop-product-hero__lead-text {
    font-size: 1.05rem;
    line-height: 2;
}

.shop-product-hero__badge {
    display: inline-block;
    padding: 0.35rem 0.75rem;
    margin-bottom: 0.85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.shop-product-hero__title {
    font-size: 2rem;
    font-weight: 800;
    color: #fff;
    margin-bottom: 1rem;
}

.shop-product-hero__lead,
.shop-product-hero__lead-text {
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, 0.92);
    margin-bottom: 0;
}

.shop-product-hero__lead p:last-child {
    margin-bottom: 0;
}

.shop-product-hero__buy {
    background: #fff !important;
    color: var(--product-brand-dark) !important;
    border: none !important;
    border-radius: 999px;
    padding-inline: 1.6rem;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

.shop-product-hero__buy:hover {
    background: #f7fcfd !important;
    color: var(--product-brand-dark) !important;
}

.shop-product-hero__visual {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
}

.shop-product-hero__image {
    max-width: 100%;
    max-height: 280px;
    border-radius: 16px;
    object-fit: cover;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.shop-product-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
}

.shop-product-icon--sm {
    width: 72px;
    height: 72px;
}

.shop-product-section-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #181c32;
}

.shop-product-highlights {
    border: 1px solid rgba(17, 159, 174, 0.14);
    border-radius: 16px;
}

.shop-product-highlights__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.85rem;
}

.shop-product-highlights__list li {
    position: relative;
    padding-right: 1.5rem;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #5e6278;
}

.shop-product-highlights__list li::before {
    content: '';
    position: absolute;
    right: 0;
    top: 0.55rem;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--product-brand);
}

.shop-product-related {
    border: 1px solid color-mix(in srgb, var(--related-accent, var(--product-brand)) 18%, transparent);
    border-radius: 16px;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    border-top: 3px solid var(--related-accent, var(--product-brand));
}

.shop-product-related:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px color-mix(in srgb, var(--related-accent, var(--product-brand)) 16%, transparent) !important;
}

.shop-product-related__thumb {
    flex-shrink: 0;
}

.shop-product-related__thumb img {
    width: 72px;
    height: 72px;
    border-radius: 12px;
    object-fit: cover;
}

.shop-product-related__thumb .shop-product-icon {
    background: color-mix(in srgb, var(--related-accent, var(--product-brand)) 16%, #fff);
    color: var(--related-accent, var(--product-brand));
}

.shop-product-related__badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    margin-bottom: 0.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--related-accent, var(--product-brand)) 14%, #fff);
    color: color-mix(in srgb, var(--related-accent, var(--product-brand)) 75%, #000);
    font-size: 0.72rem;
    font-weight: 700;
}

.shop-product-related__title {
    font-size: 1rem;
    font-weight: 800;
    color: #181c32;
    margin-bottom: 0.5rem;
}

.shop-product-related__desc {
    font-size: 0.88rem;
    line-height: 1.75;
    color: #5e6278;
    margin-bottom: 0;
}

.shop-product-related__desc p:last-child {
    margin-bottom: 0;
}

.shop-product-cta {
    padding: 2rem 1.5rem;
    border-radius: 16px;
    background: var(--product-brand-light);
    border: 1px solid color-mix(in srgb, var(--product-brand) 18%, transparent);
}

.shop-product-cta__buy {
    background: linear-gradient(135deg, var(--product-brand) 0%, var(--product-brand-dark) 100%) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 999px;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--product-brand) 28%, transparent);
}

.shop-product-cta__buy:hover {
    filter: brightness(1.05);
    color: #fff !important;
}

@media (max-width: 767.98px) {
    .shop-product-hero {
        padding: 1.75rem 1.25rem;
    }

    .shop-product-hero__title {
        font-size: 1.5rem;
    }

    .shop-product-hero__visual {
        min-height: 96px;
    }

    .shop-product-icon {
        width: 88px;
        height: 88px;
    }

    .shop-product-icon svg {
        width: 44px;
        height: 44px;
    }

    .shop-product-icon--sm {
        width: 48px;
        height: 48px;
    }

    .shop-product-icon--sm svg {
        width: 26px;
        height: 26px;
    }

    .shop-product-related__thumb img {
        width: 48px;
        height: 48px;
    }

    .shop-product-related .card-body {
        padding: 1rem !important;
    }

    .shop-product-related .d-flex.gap-4 {
        gap: 0.75rem !important;
    }
}

/* ── Home page ── */
.shop-home-hero {
    padding: 1.5rem 1.5rem;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(17, 159, 174, 0.08) 0%, rgba(17, 159, 174, 0.02) 100%);
    border: 1px solid rgba(17, 159, 174, 0.12);
}

.shop-home-hero__title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #181c32;
    margin-bottom: 0.5rem;
}

.shop-home-hero__subtitle {
    max-width: 36rem;
    margin: 0 auto 1rem;
    font-size: 0.92rem;
    line-height: 1.7;
    color: #5e6278;
}

.shop-home-hero__features {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 0.75rem;
}

.shop-home-hero__feature {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.15);
    color: var(--shop-brand-dark);
    font-size: 0.78rem;
    font-weight: 700;
}

.shop-home-hero__feature svg {
    color: var(--shop-brand);
    flex-shrink: 0;
}

.shop-home-section-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #181c32;
}

.shop-home-section-subtitle {
    font-size: 0.92rem;
    color: #7e8299;
}

.shop-home-section-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--shop-brand-dark);
    text-decoration: none;
    transition: color 0.15s ease;
}

.shop-home-section-link:hover {
    color: var(--shop-brand);
}

.shop-home-package {
    border: 1px solid rgba(17, 159, 174, 0.12);
    border-radius: 16px;
    box-shadow: 0 8px 28px rgba(17, 159, 174, 0.07);
    overflow: visible;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.shop-home-package:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(17, 159, 174, 0.12);
}

.shop-home-package__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 2rem 1.5rem 1.75rem;
    height: 100%;
}

.shop-home-package__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: rgba(17, 159, 174, 0.1);
    color: var(--shop-brand);
}

.shop-home-package__name {
    font-size: 1.05rem;
    font-weight: 800;
    color: #181c32;
    margin-bottom: 0.65rem;
    line-height: 1.5;
}

.shop-home-package__price {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--shop-brand-dark);
    margin-bottom: 1.25rem;
}

.shop-home-package__price small {
    font-size: 0.8rem;
    font-weight: 600;
    color: #7e8299;
}

.shop-home-package__actions {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    width: auto;
    max-width: 15rem;
    margin-top: auto;
}

.shop-home-package__modal-body {
    word-break: break-word;
    line-height: 1.8;
    color: #5e6278;
}

.shop-home-trust__card {
    height: 100%;
    padding: 1.5rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.shop-home-trust__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 1rem;
    border-radius: 12px;
}

.shop-home-trust__icon--teal {
    background: rgba(17, 159, 174, 0.12);
    color: var(--shop-brand-dark);
}

.shop-home-trust__icon--green {
    background: rgba(33, 170, 88, 0.12);
    color: #168347;
}

.shop-home-trust__icon--blue {
    background: rgba(59, 130, 246, 0.12);
    color: #2563eb;
}

.shop-home-trust__title {
    font-size: 1rem;
    font-weight: 800;
    color: #181c32;
    margin-bottom: 0.5rem;
}

.shop-home-trust__text {
    font-size: 0.88rem;
    line-height: 1.75;
    color: #7e8299;
    margin-bottom: 0;
}

@media (max-width: 767.98px) {
    .shop-home-hero {
        padding: 1.25rem 1rem;
    }

    .shop-home-hero__title {
        font-size: 1.25rem;
    }

    .shop-home-section-link {
        width: 100%;
        justify-content: center;
    }
}

/* ── Site footer ── */
.shop-site-footer {
    margin-top: auto;
    background: #0f2d32;
    color: rgba(255, 255, 255, 0.82);
}

.shop-site-footer__main {
    padding: 3rem 0 2.5rem;
}

.shop-site-footer__logo {
    height: 32px;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

.shop-site-footer__about {
    font-size: 0.92rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, 0.72);
    max-width: 22rem;
    margin-bottom: 0;
}

.shop-site-footer__title {
    font-size: 0.95rem;
    font-weight: 800;
    color: #fff;
    margin-bottom: 1rem;
}

.shop-site-footer__links,
.shop-site-footer__contact {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shop-site-footer__links li + li,
.shop-site-footer__contact li + li {
    margin-top: 0.55rem;
}

.shop-site-footer__links a,
.shop-site-footer__contact a {
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
    font-size: 0.88rem;
    transition: color 0.15s ease;
}

.shop-site-footer__links a:hover,
.shop-site-footer__contact a:hover {
    color: #fff;
}

.shop-site-footer__contact li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.shop-site-footer__contact-icon {
    display: inline-flex;
    color: var(--shop-brand);
    flex-shrink: 0;
}

.shop-site-footer__whatsapp {
    background: #25D366 !important;
    border-color: #25D366 !important;
    color: #fff !important;
    font-weight: 700;
}

.shop-site-footer__whatsapp:hover {
    filter: brightness(1.05);
    color: #fff !important;
}

.shop-site-footer__enamad {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
}

.shop-site-footer__enamad img {
    display: block;
    width: 110px;
    height: auto;
    border-radius: 8px;
    background: #fff;
    padding: 0.35rem;
}

.shop-site-footer__bottom {
    padding: 1rem 0 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.shop-site-footer__copyright {
    font-size: 0.82rem;
    color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 767.98px) {
    .shop-site-footer__main {
        padding: 2rem 0 1.5rem;
    }

    .shop-site-footer__bottom {
        text-align: center;
    }

    .shop-site-footer__enamad {
        justify-content: center;
        width: 100%;
    }
}

/* ── About us page ── */
.shop-about-page {
    --about-brand: #119FAE;
    --about-brand-dark: #0a7a86;
    --about-soft: #e8f7f9;
}

.shop-about-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--about-brand-dark);
}

.shop-about-kicker::before {
    content: "";
    width: 1.5rem;
    height: 2px;
    border-radius: 999px;
    background: var(--about-brand);
}

.shop-about-hero {
    padding: 1.75rem;
    border-radius: 20px;
    background:
        radial-gradient(circle at 12% 20%, rgba(17, 159, 174, 0.16), transparent 42%),
        linear-gradient(145deg, #f7fcfd 0%, #eef8fa 55%, #ffffff 100%);
    border: 1px solid rgba(17, 159, 174, 0.14);
}

.shop-about-hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 1.75rem;
    align-items: center;
}

.shop-about-hero__title {
    font-size: clamp(1.6rem, 2.4vw, 2.15rem);
    font-weight: 800;
    color: #181c32;
    line-height: 1.35;
}

.shop-about-hero__text,
.shop-about-body-text,
.shop-about-section__subtitle {
    font-size: 0.95rem;
    line-height: 1.9;
    color: #5e6278;
}

.shop-about-media {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    background: #0f2f35;
    box-shadow: 0 16px 40px rgba(10, 122, 134, 0.18);
    aspect-ratio: 16 / 10;
}

.shop-about-media--hero {
    aspect-ratio: 16 / 11;
}

.shop-about-media--genopanel {
    aspect-ratio: 1080 / 583;
    background: #eef8f8;
}

.shop-about-media__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.shop-about-media__video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #0f2f35;
}

.shop-about-section__title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #181c32;
}

.shop-about-section--panel {
    padding: 1.75rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 10px 30px rgba(17, 159, 174, 0.06);
}

.shop-about-cert {
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 8px 24px rgba(17, 159, 174, 0.06);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.shop-about-cert:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 34px rgba(17, 159, 174, 0.12);
}

.shop-about-cert__image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    padding: 1.25rem;
    background: linear-gradient(180deg, var(--about-soft) 0%, #fff 100%);
}

.shop-about-cert__image img {
    width: 100%;
    max-width: 210px;
    height: auto;
    object-fit: contain;
}

.shop-about-cert__body {
    padding: 0 1.25rem 1.4rem;
}

.shop-about-cert__title {
    font-size: 1.02rem;
    font-weight: 800;
    color: #181c32;
    margin-bottom: 0.65rem;
}

.shop-about-cert__text {
    font-size: 0.88rem;
    line-height: 1.8;
    color: #7e8299;
}

.shop-about-split {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 1.75rem;
    align-items: center;
}

.shop-about-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

.shop-about-list li {
    position: relative;
    padding: 0.45rem 1.4rem 0.45rem 0;
    font-size: 0.92rem;
    line-height: 1.7;
    color: #3f4254;
}

.shop-about-list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 0.95rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--about-brand);
}

.shop-about-value {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 3.4rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: var(--about-soft);
    border: 1px solid rgba(17, 159, 174, 0.12);
    color: #181c32;
    font-size: 0.92rem;
    font-weight: 700;
}

.shop-about-value__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--about-brand);
    flex-shrink: 0;
}

.shop-about-join {
    padding: 2.5rem 1.5rem;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--about-brand) 0%, var(--about-brand-dark) 100%);
    color: #fff;
    box-shadow: 0 16px 40px rgba(10, 122, 134, 0.22);
}

.shop-about-join__title {
    font-size: 1.45rem;
    font-weight: 800;
    color: #fff;
}

.shop-about-join__lead {
    font-size: 1.05rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.95);
}

.shop-about-join__text {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.86);
}

.shop-about-join__text a {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-about-join__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 10rem;
    padding: 0.8rem 1.5rem;
    border-radius: 999px;
    background: #fff;
    color: var(--about-brand-dark);
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.shop-about-join__btn:hover {
    color: var(--about-brand-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.shop-about-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.75rem 1.35rem;
    border-radius: 999px;
    background: var(--about-brand);
    color: #fff;
    font-size: 0.92rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.shop-about-hero__btn:hover {
    color: #fff;
    background: var(--about-brand-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(10, 122, 134, 0.25);
}

@media (max-width: 991.98px) {
    .shop-about-hero__grid,
    .shop-about-split {
        grid-template-columns: 1fr;
    }

    .shop-about-media--hero,
    .shop-about-media {
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 767.98px) {
    .shop-about-hero,
    .shop-about-section--panel {
        padding: 1.25rem;
    }

    .shop-about-cert__image {
        min-height: 200px;
    }

    .shop-about-join {
        padding: 2rem 1.15rem;
    }
}

/* ── Partners page ── */
.shop-partners-page {
    --about-brand: #119FAE;
    --about-brand-dark: #0a7a86;
    --about-soft: #e8f7f9;
}

.shop-partners-hero {
    padding: 2rem 1.75rem;
    border-radius: 20px;
    background:
        radial-gradient(circle at 88% 18%, rgba(17, 159, 174, 0.14), transparent 40%),
        linear-gradient(145deg, #f7fcfd 0%, #eef8fa 55%, #ffffff 100%);
    border: 1px solid rgba(17, 159, 174, 0.14);
}

.shop-partners-hero__title {
    font-size: clamp(1.55rem, 2.3vw, 2.05rem);
    font-weight: 800;
    color: #181c32;
    line-height: 1.35;
}

.shop-partners-hero__text {
    max-width: 48rem;
    font-size: 0.95rem;
    line-height: 1.9;
    color: #5e6278;
}

.shop-partners-contacts {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.shop-partners-contact {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 1.1rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.18);
    color: var(--about-brand-dark);
    font-size: 0.92rem;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.shop-partners-contact:hover {
    color: var(--about-brand-dark);
    border-color: rgba(17, 159, 174, 0.35);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(17, 159, 174, 0.12);
}

.shop-partners-contact__icon {
    display: inline-flex;
    color: var(--about-brand);
}

.shop-partner-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.25rem 1rem 1.35rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 8px 24px rgba(17, 159, 174, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.shop-partner-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(17, 159, 174, 0.12);
}

.shop-partner-card__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 1;
    margin-bottom: 0.9rem;
    padding: 0.85rem;
    border-radius: 14px;
    background: var(--about-soft);
}

.shop-partner-card__logo img {
    width: 100%;
    height: 100%;
    max-width: 140px;
    object-fit: contain;
}

.shop-partner-card__name {
    margin: 0;
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.55;
    color: #181c32;
}

@media (max-width: 767.98px) {
    .shop-partners-hero {
        padding: 1.4rem 1.15rem;
    }

    .shop-partners-contact {
        width: 100%;
        justify-content: center;
    }
}

/* ── Services page ── */
.shop-services-page {
    --about-brand: #119FAE;
    --about-brand-dark: #0a7a86;
    --about-soft: #e8f7f9;
}

.shop-services-hero {
    padding: 2.25rem 1.5rem;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--about-brand) 0%, var(--about-brand-dark) 100%);
    color: #fff;
}

.shop-services-hero .shop-about-kicker {
    color: rgba(255, 255, 255, 0.9);
}

.shop-services-hero .shop-about-kicker::before {
    background: rgba(255, 255, 255, 0.75);
}

.shop-services-hero__title {
    font-size: clamp(1.55rem, 2.4vw, 2.1rem);
    font-weight: 800;
    color: #fff;
}

.shop-services-hero__subtitle {
    max-width: 40rem;
    margin: 0 auto;
    font-size: 0.98rem;
    line-height: 1.85;
    color: rgba(255, 255, 255, 0.88);
}

.shop-service-block {
    padding: 1.75rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 10px 30px rgba(17, 159, 174, 0.05);
}

.shop-service-block--alt {
    background: linear-gradient(180deg, #f7fcfd 0%, #fff 100%);
}

.shop-service-block__grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 1.75rem;
    align-items: center;
}

.shop-service-block__grid--text-only {
    grid-template-columns: 1fr;
}

.shop-service-block__grid--wide {
    grid-template-columns: 1fr;
}

.shop-service-block__grid--wide .shop-service-block__copy {
    order: 2;
}

.shop-service-block__grid--wide .shop-service-block__media {
    order: 1;
}

.shop-service-block--alt .shop-service-block__grid:not(.shop-service-block__grid--text-only) {
    direction: rtl;
}

.shop-service-block--alt .shop-service-block__copy {
    order: 2;
}

.shop-service-block--alt .shop-service-block__media {
    order: 1;
}

.shop-service-block__title {
    margin-bottom: 1rem;
    font-size: 1.35rem;
    font-weight: 800;
    color: #181c32;
}

.shop-service-block__category {
    margin: 0 0 0.45rem;
    color: var(--about-brand-dark);
    font-size: 0.86rem;
    font-weight: 800;
}

.shop-service-block__subtitle {
    margin: -0.45rem 0 1rem;
    color: #7e8299;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.75;
}

.shop-service-block__about-title {
    margin: 1.15rem 0 0.65rem;
    color: #181c32;
    font-size: 1rem;
    font-weight: 800;
}

.shop-service-block__text {
    margin-bottom: 0.85rem;
    font-size: 0.94rem;
    line-height: 1.9;
    color: #5e6278;
}

.shop-service-block__text:last-child {
    margin-bottom: 0;
}

.shop-service-block__media {
    position: relative;
    overflow: hidden;
    border-radius: 18px;
    background:
        radial-gradient(ellipse 70% 60% at 80% 20%, rgba(17, 159, 174, 0.18), transparent 55%),
        linear-gradient(160deg, #e8f7f9 0%, #d5eef2 100%);
    aspect-ratio: 5 / 4;
    box-shadow: 0 16px 36px rgba(10, 122, 134, 0.14);
}

.shop-service-block__media::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
    pointer-events: none;
}

.shop-service-block__media--wide {
    aspect-ratio: 6966 / 3921;
}

.shop-service-block__media--portrait {
    width: min(100%, 300px);
    justify-self: center;
    aspect-ratio: 4 / 5;
}

.shop-service-block__media--wide img {
    object-fit: contain;
}

.shop-service-block__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.shop-service-block:hover .shop-service-block__media img {
    transform: scale(1.03);
}

.shop-services-cta {
    padding: 2.4rem 1.5rem;
    border-radius: 20px;
    background:
        radial-gradient(circle at 15% 20%, rgba(17, 159, 174, 0.14), transparent 40%),
        linear-gradient(145deg, #f7fcfd 0%, #eef8fa 55%, #ffffff 100%);
    border: 1px solid rgba(17, 159, 174, 0.14);
}

.shop-services-cta__title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #181c32;
}

.shop-services-cta__text {
    font-size: 0.95rem;
    color: #5e6278;
}

.shop-services-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 9.5rem;
    padding: 0.75rem 1.35rem;
    border-radius: 999px;
    font-size: 0.92rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.shop-services-cta__btn--primary {
    background: var(--about-brand);
    color: #fff;
}

.shop-services-cta__btn--primary:hover {
    background: var(--about-brand-dark);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(10, 122, 134, 0.22);
}

.shop-services-cta__btn--ghost {
    background: #fff;
    color: var(--about-brand-dark);
    border: 1px solid rgba(17, 159, 174, 0.25);
}

.shop-services-cta__btn--ghost:hover {
    color: var(--about-brand-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(17, 159, 174, 0.1);
}

@media (max-width: 991.98px) {
    .shop-service-block__grid,
    .shop-service-block--alt .shop-service-block__grid:not(.shop-service-block__grid--text-only) {
        grid-template-columns: 1fr;
        direction: rtl;
    }

    .shop-service-block--alt .shop-service-block__copy,
    .shop-service-block--alt .shop-service-block__media {
        order: initial;
    }
}

@media (max-width: 767.98px) {
    .shop-services-hero,
    .shop-service-block,
    .shop-services-cta {
        padding: 1.35rem 1.15rem;
    }

    .shop-service-block__media--portrait {
        width: min(100%, 240px);
    }
}

/* ── B2B page ── */
.shop-b2b-page {
    --about-brand: #119FAE;
    --about-brand-dark: #0a7a86;
    --about-soft: #e8f7f9;
}

.shop-b2b-hero {
    padding: 2rem 1.75rem;
    border-radius: 20px;
    background:
        radial-gradient(circle at 85% 15%, rgba(17, 159, 174, 0.16), transparent 42%),
        linear-gradient(145deg, #f7fcfd 0%, #eef8fa 55%, #ffffff 100%);
    border: 1px solid rgba(17, 159, 174, 0.14);
}

.shop-b2b-hero__title {
    font-size: clamp(1.55rem, 2.4vw, 2.1rem);
    font-weight: 800;
    color: #181c32;
    line-height: 1.35;
}

.shop-b2b-hero__text {
    max-width: 48rem;
    font-size: 0.95rem;
    line-height: 1.9;
    color: #5e6278;
}

.shop-b2b-check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-height: 100%;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: var(--about-soft);
    border: 1px solid rgba(17, 159, 174, 0.12);
}

.shop-b2b-check__num {
    flex-shrink: 0;
    min-width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #fff;
    color: var(--about-brand-dark);
    font-size: 0.78rem;
    font-weight: 800;
    border: 1px solid rgba(17, 159, 174, 0.18);
}

.shop-b2b-check__text {
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.7;
    color: #3f4254;
}

.shop-b2b-value-card {
    padding: 1.4rem 1.25rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 8px 24px rgba(17, 159, 174, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.shop-b2b-value-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(17, 159, 174, 0.12);
}

.shop-b2b-value-card__title {
    margin-bottom: 0.7rem;
    font-size: 1rem;
    font-weight: 800;
    color: #181c32;
    line-height: 1.55;
}

.shop-b2b-value-card__text {
    font-size: 0.88rem;
    line-height: 1.8;
    color: #7e8299;
}

.shop-b2b-partners-collage {
    max-width: 36rem;
    margin-inline: auto;
    overflow: hidden;
    border-radius: 16px;
    background: #f3f6f8;
    border: 1px solid rgba(17, 159, 174, 0.12);
    box-shadow: 0 12px 32px rgba(17, 159, 174, 0.08);
}

.shop-b2b-partners-collage img {
    display: block;
    width: 100%;
    height: auto;
}

.shop-b2b-cta {
    padding: 2.4rem 1.5rem;
    border-radius: 20px;
    background: linear-gradient(135deg, var(--about-brand) 0%, var(--about-brand-dark) 100%);
    color: #fff;
    box-shadow: 0 16px 40px rgba(10, 122, 134, 0.22);
}

.shop-b2b-cta__title {
    font-size: 1.4rem;
    font-weight: 800;
    color: #fff;
}

.shop-b2b-cta__text {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.88);
}

.shop-b2b-cta .shop-services-cta__btn--primary {
    background: #fff;
    color: var(--about-brand-dark);
}

.shop-b2b-cta .shop-services-cta__btn--primary:hover {
    background: #fff;
    color: var(--about-brand-dark);
}

.shop-b2b-cta .shop-services-cta__btn--ghost {
    background: transparent;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.45);
}

.shop-b2b-cta .shop-services-cta__btn--ghost:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

@media (max-width: 767.98px) {
    .shop-b2b-hero,
    .shop-b2b-cta {
        padding: 1.4rem 1.15rem;
    }
}

/* ═══════════════════════════════════════════
   Landing + Shop redesign (LifeandMe)
   ═══════════════════════════════════════════ */

/* Landing fonts are loaded via layouts/partials/shop-fonts.blade.php (versioned, 2 weights only). */

:root {
    --lm-ink: #0c2428;
    --lm-ink-soft: #3d5559;
    --lm-teal: #119fae;
    --lm-teal-deep: #0a6f7a;
    --lm-teal-dark: #063940;
    --lm-mist: #e8f6f8;
    --lm-sand: #f3f7f8;
    --lm-surface: #ffffff;
    --lm-radius: 1.25rem;
}

/* Reveal motion */
.lm-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--i, 0) * 70ms);
}

.lm-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Shared buttons */
.lm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.6rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.2;
    text-decoration: none !important;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.lm-btn:hover {
    transform: translateY(-2px);
}

.lm-btn--primary {
    background: linear-gradient(135deg, var(--lm-teal) 0%, var(--lm-teal-deep) 100%);
    color: #fff !important;
    box-shadow: 0 10px 28px rgba(17, 159, 174, 0.35);
}

.lm-btn--primary:hover {
    color: #fff !important;
    box-shadow: 0 14px 36px rgba(17, 159, 174, 0.45);
}

.lm-btn--ghost {
    background: transparent;
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.45);
}

.lm-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff !important;
}

.lm-shop .lm-btn--ghost,
.lm-package .lm-btn--ghost {
    color: var(--lm-teal-deep) !important;
    border-color: rgba(17, 159, 174, 0.35);
    background: #fff;
}

.lm-shop .lm-btn--ghost:hover,
.lm-package .lm-btn--ghost:hover {
    background: var(--lm-mist);
    color: var(--lm-teal-deep) !important;
}

.lm-btn--lg {
    padding: 1rem 2rem;
    font-size: 1.02rem;
}

.lm-text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.5rem;
    font-weight: 700;
    color: var(--lm-teal-deep);
    text-decoration: none;
}

.lm-text-link:hover {
    color: var(--lm-teal);
}

/* Section chrome */
.lm-section {
    padding: 4.5rem 0;
}

.lm-section__title {
    font-family: DiodrumArabic, inherit;
    font-size: clamp(1.55rem, 2.6vw, 2.1rem);
    font-weight: 700;
    color: var(--lm-ink);
    margin-bottom: 0.75rem;
    line-height: 1.35;
}

.lm-section__subtitle {
    font-size: 1.02rem;
    color: var(--lm-ink-soft);
    max-width: 34rem;
    margin: 0;
    line-height: 1.75;
}

.lm-section__header {
    margin-bottom: 2.75rem;
}

/* ── Landing hero ── */
.lm-landing {
    margin-top: -1px;
}

.lm-hero {
    position: relative;
    min-height: calc(100vh - 80px);
    min-height: calc(100dvh - 80px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(155deg, #052f35 0%, #0a6f7a 48%, #119fae 100%);
    color: #fff;
}

.lm-hero__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(8px);
    will-change: transform, opacity;
}

.lm-hero__glow--a {
    top: -18%;
    left: 35%;
    width: min(72vw, 720px);
    height: min(72vw, 720px);
    background: radial-gradient(circle, rgba(126, 220, 230, 0.55) 0%, rgba(17, 159, 174, 0.28) 42%, transparent 70%);
    animation: lm-glow-a 9s ease-in-out infinite;
}

.lm-hero__glow--b {
    right: -12%;
    bottom: -20%;
    width: min(60vw, 560px);
    height: min(60vw, 560px);
    background: radial-gradient(circle, rgba(255, 255, 255, 0.28) 0%, rgba(126, 220, 230, 0.22) 38%, transparent 68%);
    animation: lm-glow-b 11s ease-in-out infinite;
}

.lm-hero__glow--c {
    left: -10%;
    bottom: 8%;
    width: min(46vw, 420px);
    height: min(46vw, 420px);
    background: radial-gradient(circle, rgba(17, 159, 174, 0.45) 0%, rgba(6, 57, 64, 0.2) 48%, transparent 72%);
    animation: lm-glow-c 13s ease-in-out infinite;
}

.lm-hero__inner {
    position: relative;
    z-index: 2;
    padding: 3.5rem 1.25rem 5.5rem;
    width: 100%;
}

.lm-hero__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 2.5rem 3rem;
    align-items: center;
}

.lm-hero__content {
    max-width: 40rem;
    animation: lm-hero-in 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.lm-hero__brand {
    font-family: DiodrumArabic, inherit;
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 0 1rem;
    line-height: 1;
    text-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}

.lm-hero__title {
    font-family: DiodrumArabic, inherit;
    font-size: clamp(1.35rem, 2.8vw, 1.85rem);
    font-weight: 600;
    line-height: 1.55;
    margin: 0 0 1.25rem;
    color: #fff;
}

.lm-hero__title span {
    display: block;
    font-weight: 500;
    opacity: 0.92;
    margin-top: 0.25rem;
}

.lm-hero__lead {
    font-size: clamp(0.98rem, 1.6vw, 1.12rem);
    line-height: 1.9;
    opacity: 0.9;
    margin: 0 0 2rem;
    max-width: 34rem;
}

.lm-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.lm-hero__media {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: lm-hero-in 1.15s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.lm-hero__media-frame {
    position: relative;
    width: min(100%, 300px);
    aspect-ratio: 3 / 4;
    border-radius: 1.75rem;
    overflow: hidden;
    box-shadow:
        0 28px 60px rgba(0, 0, 0, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
}

.lm-hero__media-frame::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(6, 57, 64, 0.22) 100%);
    pointer-events: none;
}

.lm-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 28%;
}

.lm-hero__wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    color: var(--lm-surface);
    line-height: 0;
    z-index: 3;
}

.lm-hero__wave svg {
    display: block;
    width: 100%;
    height: 56px;
}

@keyframes lm-glow-a {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.85;
    }
    35% {
        transform: translate(-12%, 10%) scale(1.18);
        opacity: 1;
    }
    70% {
        transform: translate(8%, -8%) scale(0.92);
        opacity: 0.7;
    }
}

@keyframes lm-glow-b {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.75;
    }
    40% {
        transform: translate(-14%, -12%) scale(1.22);
        opacity: 1;
    }
    75% {
        transform: translate(10%, 8%) scale(0.9);
        opacity: 0.65;
    }
}

@keyframes lm-glow-c {
    0%, 100% {
        transform: translate(0, 0) scale(1);
        opacity: 0.7;
    }
    50% {
        transform: translate(16%, -14%) scale(1.28);
        opacity: 1;
    }
}

@keyframes lm-hero-in {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* About */
.lm-about {
    background: var(--lm-surface);
}

.lm-about__grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 3rem;
    align-items: center;
}

.lm-about__copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: var(--lm-ink-soft);
    margin-bottom: 1rem;
}

.lm-about__visual {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    padding: 2.5rem;
    border-radius: var(--lm-radius);
    background:
        radial-gradient(circle at 30% 30%, rgba(17, 159, 174, 0.18), transparent 55%),
        linear-gradient(160deg, #f0fafb 0%, #dff3f6 100%);
}

.lm-dna {
    position: relative;
    width: 72px;
    height: 180px;
}

.lm-dna span {
    position: absolute;
    left: 50%;
    width: 14px;
    height: 14px;
    margin-left: -7px;
    border-radius: 50%;
    background: var(--lm-teal);
    box-shadow: 0 0 0 8px rgba(17, 159, 174, 0.12);
    animation: lm-dna-pulse 2.4s ease-in-out infinite;
}

.lm-dna span:nth-child(1) { top: 0; animation-delay: 0s; }
.lm-dna span:nth-child(2) { top: 36px; left: calc(50% - 22px); animation-delay: 0.15s; background: var(--lm-teal-deep); }
.lm-dna span:nth-child(3) { top: 72px; animation-delay: 0.3s; }
.lm-dna span:nth-child(4) { top: 108px; left: calc(50% + 22px); animation-delay: 0.45s; background: var(--lm-teal-deep); }
.lm-dna span:nth-child(5) { top: 144px; animation-delay: 0.6s; }

@keyframes lm-dna-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.15); opacity: 0.85; }
}

.lm-about__stat {
    margin: 1.75rem 0 0;
    text-align: center;
    color: var(--lm-ink-soft);
    font-size: 0.92rem;
    line-height: 1.6;
}

.lm-about__stat strong {
    display: block;
    font-family: DiodrumArabic, inherit;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--lm-teal-deep);
    margin-bottom: 0.25rem;
}

/* Journey */
.lm-journey {
    background: var(--lm-sand);
}

.lm-journey__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 1.75rem;
    counter-reset: none;
}

.lm-journey__item {
    position: relative;
    padding: 0 0 0 0.25rem;
}

.lm-journey__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: var(--lm-teal);
    color: #fff;
    font-weight: 800;
    font-size: 0.95rem;
    box-shadow: 0 8px 20px rgba(17, 159, 174, 0.28);
}

.lm-journey__item h3 {
    font-size: 1.08rem;
    font-weight: 800;
    color: var(--lm-ink);
    margin: 0 0 0.55rem;
}

.lm-journey__item p {
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.8;
    color: var(--lm-ink-soft);
}

/* Domains */
.lm-domains {
    background: linear-gradient(180deg, #f5fafb 0%, #ffffff 100%);
}

.lm-domains__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.lm-domain {
    --domain-accent: var(--lm-teal);
    --domain-accent-soft: rgba(17, 159, 174, 0.12);
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-height: 15.5rem;
    padding: 1.35rem 1.2rem 1.25rem;
    border-radius: 1.35rem;
    text-decoration: none !important;
    background: #fff;
    border: 1px solid rgba(6, 57, 64, 0.08);
    box-shadow: 0 10px 28px rgba(6, 57, 64, 0.05);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
    position: relative;
    overflow: hidden;
}

.lm-domain::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: var(--domain-accent);
    opacity: 0.9;
}

.lm-domain:hover {
    transform: translateY(-5px);
    border-color: color-mix(in srgb, var(--domain-accent) 35%, transparent);
    box-shadow: 0 18px 42px rgba(6, 57, 64, 0.1);
}

.lm-domain__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.lm-domain__icon {
    color: var(--domain-accent);
}

.lm-domain__icon .shop-product-icon {
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 1rem;
    background: var(--domain-accent-soft);
    color: var(--domain-accent);
}

.lm-domain__icon .shop-product-icon svg {
    width: 1.55rem;
    height: 1.55rem;
}

.lm-domain__num {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: color-mix(in srgb, var(--domain-accent) 70%, #7e8299);
    opacity: 0.85;
}

.lm-domain__body {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    flex: 1;
}

.lm-domain__title {
    font-size: 1.08rem;
    font-weight: 800;
    color: var(--lm-ink);
    line-height: 1.45;
}

.lm-domain__desc {
    font-size: 0.86rem;
    line-height: 1.7;
    color: var(--lm-ink-soft);
}

.lm-domain__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    font-size: 0.86rem;
    font-weight: 800;
    color: var(--domain-accent);
}

.lm-domain__cta svg {
    transition: transform 0.2s ease;
}

.lm-domain:hover .lm-domain__cta svg {
    transform: translateX(-3px);
}

.lm-domain--ancestry {
    --domain-accent: #6f4e37;
    --domain-accent-soft: rgba(111, 78, 55, 0.16);
    background-color: #f7f0e6;
    background-image:
        radial-gradient(ellipse 90% 70% at 100% -10%, rgba(139, 105, 20, 0.14), transparent 55%),
        radial-gradient(circle at 12% 78%, rgba(111, 78, 55, 0.07) 0 1.25px, transparent 1.6px),
        radial-gradient(circle at 78% 42%, rgba(111, 78, 55, 0.06) 0 1px, transparent 1.4px),
        repeating-linear-gradient(
            -22deg,
            transparent 0,
            transparent 10px,
            rgba(111, 78, 55, 0.045) 10px,
            rgba(111, 78, 55, 0.045) 11px
        ),
        linear-gradient(165deg, #faf4eb 0%, #efe2d0 100%);
    border-color: rgba(111, 78, 55, 0.2);
}

.lm-domain--ancestry::after {
    content: '';
    position: absolute;
    inset: auto -8% -18% auto;
    width: 7.5rem;
    height: 7.5rem;
    pointer-events: none;
    opacity: 0.18;
    background:
        radial-gradient(circle, transparent 38%, rgba(111, 78, 55, 0.55) 39%, rgba(111, 78, 55, 0.55) 41%, transparent 42%),
        conic-gradient(from 20deg, transparent 0 70deg, rgba(111, 78, 55, 0.45) 70deg 72deg, transparent 72deg 160deg, rgba(111, 78, 55, 0.35) 160deg 162deg, transparent 162deg);
    border-radius: 50%;
    transform: rotate(-12deg);
}

.lm-domain--psychology {
    --domain-accent: #d582b9;
    --domain-accent-soft: rgba(213, 130, 185, 0.16);
}

.lm-domain--health {
    --domain-accent: #00a0ac;
    --domain-accent-soft: rgba(0, 160, 172, 0.14);
}

.lm-domain--beauty {
    --domain-accent: #c9a227;
    --domain-accent-soft: rgba(201, 162, 39, 0.16);
}

.lm-domain--screening {
    --domain-accent: #3b7dd8;
    --domain-accent-soft: rgba(59, 125, 216, 0.14);
}

.lm-domain--disease {
    --domain-accent: #7c3aed;
    --domain-accent-soft: rgba(124, 58, 237, 0.14);
    background: linear-gradient(155deg, #ffffff 30%, #f5f0ff 100%);
    border-color: rgba(124, 58, 237, 0.16);
}

/* CTA panel */
.lm-cta {
    padding-top: 1rem;
    padding-bottom: 5rem;
    background: var(--lm-surface);
}

.lm-cta__panel {
    position: relative;
    overflow: hidden;
    padding: 3rem 2rem;
    border-radius: calc(var(--lm-radius) + 0.25rem);
    text-align: center;
    color: #fff;
    background:
        radial-gradient(ellipse 70% 80% at 100% 0%, rgba(255, 255, 255, 0.16), transparent 50%),
        linear-gradient(135deg, #063940 0%, #0a6f7a 50%, #119fae 100%);
}

.lm-cta__title {
    font-family: DiodrumArabic, inherit;
    font-size: clamp(1.4rem, 2.5vw, 1.85rem);
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: #fff;
}

.lm-cta__text {
    max-width: 32rem;
    margin: 0 auto 1.75rem;
    font-size: 1.02rem;
    line-height: 1.8;
    opacity: 0.92;
}

.lm-cta__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.lm-cta .lm-btn--ghost {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.5);
}

/* ── Shop page ── */
.lm-shop-hero {
    padding: 3rem 0 2.5rem;
    background:
        radial-gradient(ellipse 60% 80% at 0% 0%, rgba(17, 159, 174, 0.12), transparent 55%),
        linear-gradient(180deg, #eef8fa 0%, #fff 100%);
}

.lm-shop-hero__inner {
    max-width: 40rem;
}

.lm-shop-hero__eyebrow {
    display: inline-block;
    margin-bottom: 0.75rem;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--lm-teal-deep);
}

.lm-shop-hero__title {
    font-family: DiodrumArabic, inherit;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 700;
    color: var(--lm-ink);
    margin: 0 0 0.85rem;
    line-height: 1.3;
}

.lm-shop-hero__lead {
    font-size: 1.05rem;
    line-height: 1.85;
    color: var(--lm-ink-soft);
    margin: 0 0 1.25rem;
}

.lm-shop-hero__perks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.lm-shop-hero__perks li {
    position: relative;
    padding-right: 1.1rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--lm-teal-deep);
}

.lm-shop-hero__perks li::before {
    content: '';
    position: absolute;
    right: 0;
    top: 0.45rem;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--lm-teal);
}

.lm-shop-packages {
    padding: 1rem 0 4rem;
    background: #fff;
}

.lm-shop-packages__header {
    margin-bottom: 2rem;
}

.lm-shop-packages__list {
    margin-bottom: 2rem;
}

.lm-shop-trust {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 3.5rem;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(6, 57, 64, 0.08);
}

.lm-shop-trust__item h3 {
    font-size: 1.02rem;
    font-weight: 800;
    color: var(--lm-ink);
    margin: 0 0 0.45rem;
}

.lm-shop-trust__item p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.75;
    color: var(--lm-ink-soft);
}

/* Package cards */
.shop-cart-drawer{background:#f5f8f9}.shop-cart-drawer__panel{display:flex;flex-direction:column;width:100%;height:100%;background:#f5f8f9}.shop-cart-drawer__header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:1.25rem 1.35rem;background:#fff;border-bottom:1px solid rgba(6,57,64,.08)}.shop-cart-drawer__header h2{margin:0 0 .25rem;color:#063940;font-size:1.25rem;font-weight:800}.shop-cart-drawer__header p{margin:0;color:#7e8299;font-size:.8rem}.shop-cart-drawer__close{display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;border:0;border-radius:50%;background:#eef3f4;color:#063940;font-size:1.7rem;line-height:1}.shop-cart-drawer__body{min-height:0;flex:1;padding:1rem}.shop-cart-drawer__scroll{height:100%;padding:.15rem}.shop-cart-drawer__add-kit{display:flex;align-items:center;width:100%;gap:.85rem;padding:.9rem 1rem;margin-bottom:1rem;border:1px dashed rgba(17,159,174,.55);border-radius:.9rem;background:rgba(17,159,174,.07);color:#086f79;text-align:right}.shop-cart-drawer__add-kit:hover{background:rgba(17,159,174,.12)}.shop-cart-drawer__add-icon{display:grid;place-items:center;width:2.4rem;height:2.4rem;flex-shrink:0;border-radius:50%;background:#119fae;color:#fff;font-size:1.5rem}.shop-cart-drawer__add-kit strong,.shop-cart-drawer__add-kit small{display:block}.shop-cart-drawer__add-kit strong{font-size:.88rem}.shop-cart-drawer__add-kit small{margin-top:.2rem;color:#638087;font-size:.72rem}.shop-cart-drawer__kits{display:flex;flex-direction:column;gap:.8rem}.shop-cart-kit{overflow:hidden;border:1px solid rgba(6,57,64,.09);border-radius:1rem;background:#fff;box-shadow:0 5px 18px rgba(6,57,64,.045)}.shop-cart-kit__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem .95rem;border-bottom:1px solid #eef2f3}.shop-cart-kit__number{display:flex;align-items:center;gap:.65rem}.shop-cart-kit__number>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.65rem;background:#063940;color:#fff;font-weight:800}.shop-cart-kit__number strong,.shop-cart-kit__number small{display:block}.shop-cart-kit__number strong{color:#063940;font-size:.88rem}.shop-cart-kit__number small{color:#8a9199;font-size:.7rem}.shop-cart-kit__remove,.shop-cart-package__remove{border:0;background:#fff0f1;color:#d74452}.shop-cart-kit__remove{padding:.42rem .65rem;border-radius:.6rem;font-size:.75rem;font-weight:700}.shop-cart-kit__body{padding:.75rem}.shop-cart-package{display:flex;align-items:center;gap:.7rem;padding:.7rem;border-radius:.75rem;background:#f6fafb}.shop-cart-package__icon{display:grid;place-items:center;width:2.4rem;height:2.4rem;flex-shrink:0;border-radius:.7rem;background:rgba(17,159,174,.12);color:#086f79;font-size:1.35rem}.shop-cart-package__content{min-width:0;flex:1}.shop-cart-package__content strong,.shop-cart-package__content small{display:block}.shop-cart-package__content strong{overflow:hidden;color:#063940;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.shop-cart-package__content small{color:#8a9199;font-size:.7rem}.shop-cart-package__remove{display:grid;place-items:center;width:2rem;height:2rem;flex-shrink:0;border-radius:50%;font-size:1.1rem}.shop-cart-drawer__footer{flex-shrink:0;padding:1rem 1.15rem 1.15rem;background:#fff;border-top:1px solid rgba(6,57,64,.09);box-shadow:0 -8px 25px rgba(6,57,64,.05)}.shop-cart-drawer__summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.8rem;color:#6d777d;font-size:.78rem}.shop-cart-drawer__summary strong{color:#063940;font-size:1.05rem}.shop-cart-drawer__checkout{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.85rem 1rem;border-radius:.8rem;background:linear-gradient(135deg,#119fae,#063940);color:#fff!important;font-size:.9rem;font-weight:800}.shop-cart-drawer__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:22rem;padding:2rem 1rem;text-align:center}.shop-cart-drawer__empty-icon{display:grid;place-items:center;width:4.5rem;height:4.5rem;margin-bottom:1rem;border-radius:50%;background:rgba(17,159,174,.1);color:#119fae;font-size:2.3rem}.shop-cart-drawer__empty h3{color:#063940;font-size:1rem;font-weight:800}.shop-cart-drawer__empty p{max-width:16rem;color:#7e8299;font-size:.8rem;line-height:1.7}

.lm-package-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}

.lm-package-grid--single {
    grid-template-columns: 1fr;
    max-width: 920px;
    margin-inline: auto;
}

.lm-package {
    position: relative;
    display: flex;
    flex-direction: column;
    border-radius: calc(var(--lm-radius) + 0.15rem);
    background: #fff;
    border: 1px solid rgba(17, 159, 174, 0.14);
    box-shadow: 0 12px 40px rgba(6, 57, 64, 0.06);
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.lm-package:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 50px rgba(6, 57, 64, 0.1);
}

.lm-package--featured {
    border-color: rgba(17, 159, 174, 0.45);
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(145deg, #119fae, #063940) border-box;
    border: 2px solid transparent;
}

.lm-package--solo {
    background:
        radial-gradient(ellipse 70% 80% at 100% 0%, rgba(17, 159, 174, 0.08), transparent 55%),
        #fff;
    box-shadow: 0 18px 50px rgba(6, 57, 64, 0.09);
}

.lm-package--solo:hover {
    transform: translateY(-3px);
}

.lm-package__badge {
    position: absolute;
    top: 1.1rem;
    left: 1.1rem;
    z-index: 2;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--lm-teal), var(--lm-teal-deep));
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
}

.lm-package__main {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 2rem 1.75rem 1.75rem;
}

.lm-package__main--solo {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 2rem 2.5rem;
    align-items: stretch;
    padding: 2.5rem 2.25rem 2.25rem;
}

.lm-package__intro {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.lm-package__header {
    margin-bottom: 1.5rem;
}

.lm-package--solo .lm-package__header {
    margin-bottom: 1.75rem;
    padding-top: 0.35rem;
}

.lm-package__name {
    font-family: DiodrumArabic, inherit;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--lm-ink);
    margin: 0 0 0.85rem;
    line-height: 1.4;
    padding-left: 5.5rem;
}

.lm-package--solo .lm-package__name {
    font-size: clamp(1.45rem, 2.4vw, 1.85rem);
    padding-left: 0;
    padding-top: 1.6rem;
    margin-bottom: 1rem;
}

.lm-package:not(.lm-package--featured) .lm-package__name {
    padding-left: 0;
}

.lm-package__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 0.35rem;
}

.lm-package__amount {
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--lm-teal-deep);
    letter-spacing: -0.02em;
}

.lm-package--solo .lm-package__amount {
    font-size: clamp(1.7rem, 3vw, 2.1rem);
}

.lm-package__currency {
    font-size: 0.9rem;
    font-weight: 600;
    color: #7e8299;
}

.lm-package__price-note {
    margin: 0;
    font-size: 0.82rem;
    color: #8a9199;
}

.lm-package--solo .lm-package__price-note {
    font-size: 0.9rem;
    line-height: 1.7;
    max-width: 22rem;
}

.lm-package__includes {
    flex: 1;
    margin-bottom: 1.5rem;
    padding: 1.15rem 1.1rem;
    border-radius: 1rem;
    background: var(--lm-sand);
}

.lm-package__includes--solo {
    margin-bottom: 0;
    padding: 1.35rem 1.35rem 1.25rem;
    border: 1px solid rgba(17, 159, 174, 0.12);
    background: linear-gradient(180deg, #f4fbfc 0%, #eef7f8 100%);
}

.lm-package__includes-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--lm-ink-soft);
    margin: 0 0 0.85rem;
}

.lm-package__includes-count {
    flex-shrink: 0;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(17, 159, 174, 0.12);
    color: var(--lm-teal-deep);
    font-size: 0.72rem;
    font-weight: 800;
}

.lm-package__includes-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.lm-package__includes-list--solo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.85rem;
}

.lm-package__includes-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--lm-ink);
    line-height: 1.5;
}

.lm-package__includes-list--solo li {
    padding: 0.65rem 0.7rem;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(17, 159, 174, 0.08);
}

.lm-package__includes-list svg {
    flex-shrink: 0;
    margin-top: 0.15rem;
    color: var(--lm-teal);
}

.lm-package__actions {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-top: auto;
}

.lm-package__actions--solo {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: auto;
}

.lm-package__actions--solo .lm-btn {
    min-width: 11rem;
}

.lm-package-modal__body {
    word-break: break-word;
    line-height: 1.85;
    color: #5e6278;
}

/* Responsive */
@media (max-width: 1199.98px) {
    .lm-domains__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .lm-hero__layout {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }

    .lm-hero__content {
        max-width: none;
        order: 1;
    }

    .lm-hero__lead {
        margin-inline: auto;
    }

    .lm-hero__actions {
        justify-content: center;
    }

    .lm-hero__media {
        order: 0;
    }

    .lm-hero__media-frame {
        width: min(100%, 240px);
    }

    .lm-about__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .lm-journey__list {
        grid-template-columns: repeat(2, 1fr);
    }

    .lm-package-grid {
        grid-template-columns: 1fr;
        max-width: 32rem;
        margin-inline: auto;
    }

    .lm-package-grid--single {
        max-width: 100%;
    }

    .lm-package__main--solo {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding: 2rem 1.5rem 1.75rem;
    }

    .lm-package__includes-list--solo {
        grid-template-columns: 1fr;
    }

    .lm-package__actions--solo {
        flex-direction: column;
    }

    .lm-package__actions--solo .lm-btn {
        width: 100%;
        min-width: 0;
    }

    .lm-shop-trust {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
}

@media (max-width: 767.98px) {
    .lm-hero {
        min-height: auto;
    }

    .lm-hero__inner {
        padding: 1.75rem 1rem 4rem;
    }

    .lm-hero__layout {
        gap: 1.5rem;
    }

    .lm-hero__brand {
        font-size: clamp(2rem, 11vw, 2.75rem);
        margin-bottom: 0.75rem;
    }

    .lm-hero__title {
        font-size: 1.2rem;
        margin-bottom: 0.85rem;
    }

    .lm-hero__lead {
        font-size: 0.95rem;
        line-height: 1.8;
        margin-bottom: 1.35rem;
    }

    .lm-hero__media-frame {
        width: min(78vw, 220px);
        border-radius: 1.35rem;
        box-shadow:
            0 18px 40px rgba(0, 0, 0, 0.28),
            0 0 0 1px rgba(255, 255, 255, 0.16);
    }

    .lm-hero__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .lm-hero__actions .lm-btn {
        width: 100%;
        min-height: 3rem;
    }

    .lm-hero__wave svg {
        height: 40px;
    }

    .lm-section {
        padding: 3.25rem 0;
    }

    .lm-journey__list,
    .lm-domains__grid {
        grid-template-columns: 1fr;
    }

    .lm-domain {
        min-height: 0;
    }

    .lm-cta__panel {
        padding: 2.25rem 1.25rem;
    }

    .lm-cta__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .lm-package__name {
        padding-left: 0;
        padding-top: 1.75rem;
    }

    .lm-package__badge {
        left: auto;
        right: 1.1rem;
    }

    .lm-shop-hero {
        padding: 2rem 0 1.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lm-reveal,
    .lm-hero__content,
    .lm-hero__glow,
    .lm-dna span,
    .lm-package,
    .lm-domain,
    .lm-btn {
        animation: none !important;
        transition: none !important;
    }

    .lm-reveal {
        opacity: 1;
        transform: none;
    }
}

/* ── 404 error page ── */
.lm-error-page {
    position: relative;
    overflow: hidden;
    min-height: calc(100vh - 220px);
    display: flex;
    align-items: center;
    padding: 3.5rem 0 4.5rem;
    background: linear-gradient(160deg, #f4fbfc 0%, #e7f4f6 48%, #ffffff 100%);
}

.lm-error-page__glow {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    filter: blur(10px);
}

.lm-error-page__glow--a {
    top: -10%;
    left: 55%;
    width: min(55vw, 480px);
    height: min(55vw, 480px);
    background: radial-gradient(circle, rgba(17, 159, 174, 0.28) 0%, transparent 68%);
    animation: lm-glow-a 10s ease-in-out infinite;
}

.lm-error-page__glow--b {
    right: auto;
    left: -8%;
    bottom: -18%;
    width: min(48vw, 420px);
    height: min(48vw, 420px);
    background: radial-gradient(circle, rgba(10, 111, 122, 0.18) 0%, transparent 70%);
    animation: lm-glow-c 12s ease-in-out infinite;
}

.lm-error-page__card {
    position: relative;
    z-index: 1;
    max-width: 40rem;
    margin: 0 auto;
    text-align: center;
    padding: 2.75rem 2rem;
    border-radius: 1.75rem;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(17, 159, 174, 0.14);
    box-shadow: 0 18px 48px rgba(6, 57, 64, 0.08);
    backdrop-filter: blur(8px);
}

.lm-error-page__code {
    margin: 0 0 0.85rem;
    font-family: DiodrumArabic, inherit;
    font-size: clamp(4.5rem, 12vw, 6.5rem);
    font-weight: 700;
    line-height: 1;
    background: linear-gradient(135deg, #119fae 0%, #063940 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.lm-error-page__title {
    margin: 0 0 0.85rem;
    font-family: DiodrumArabic, inherit;
    font-size: clamp(1.35rem, 2.5vw, 1.85rem);
    font-weight: 700;
    color: var(--lm-ink, #0c2428);
    line-height: 1.45;
}

.lm-error-page__text {
    margin: 0 auto 1.75rem;
    max-width: 30rem;
    font-size: 1rem;
    line-height: 1.85;
    color: var(--lm-ink-soft, #3d5559);
}

.lm-error-page__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.lm-error-page__ghost {
    color: var(--lm-teal-deep, #0a6f7a) !important;
    border-color: rgba(17, 159, 174, 0.35) !important;
    background: #fff !important;
}

.lm-error-page__ghost:hover {
    background: var(--lm-mist, #e8f6f8) !important;
    color: var(--lm-teal-deep, #0a6f7a) !important;
}

@media (max-width: 767.98px) {
    .lm-error-page {
        min-height: auto;
        padding: 2.5rem 0 3.5rem;
    }

    .lm-error-page__card {
        padding: 2rem 1.25rem;
    }

    .lm-error-page__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .lm-error-page__actions .lm-btn {
        width: 100%;
    }
}
.shop-terms-consent {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    width: 100%;
    margin: 0 0 .15rem;
    color: #fff;
    font-size: .86rem;
    line-height: 1.7;
    cursor: pointer;
}

.shop-terms-consent__checkbox {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .2rem;
    flex: 0 0 auto;
    accent-color: #12a594;
    cursor: pointer;
}

.shop-terms-consent__label { cursor: pointer; }

.shop-terms-consent__link {
    display: inline;
    padding: 0;
    border: 0;
    background: transparent;
    color: #087f73;
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.shop-terms-box { scroll-margin-top: 7rem; padding: .85rem 1rem !important; border: 1.5px solid #d8e7e5; border-radius: .9rem; background: linear-gradient(135deg, #f2fbf9, #fff); transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; cursor: pointer; }
.shop-terms-box:hover { border-color: #89c9c1; box-shadow: 0 6px 18px rgba(8, 127, 115, .09); }
.shop-terms-box:focus-visible { outline: 3px solid rgba(17, 159, 174, .2); outline-offset: 2px; }
.shop-terms-box__content { display: flex; align-items: flex-start; gap: .75rem; }
.shop-terms-box__content .shop-terms-consent__checkbox { width: 1.35rem; height: 1.35rem; margin-top: .25rem; cursor: pointer; }
.shop-terms-box__content .shop-terms-consent__label { display: block; margin-bottom: 0; color: #193f3b; font-size: .9rem; font-weight: 800; }
.shop-terms-box__content p { margin: 0 0 .25rem; color: #667085; font-size: .82rem; }
.shop-terms-box .shop-terms-consent__link { font-size: .78rem; text-decoration-style: dotted; }
.shop-checkout { z-index: auto; }
.shop-terms-box.is-invalid { border-color: #e5484d; background: #fff8f8; box-shadow: 0 0 0 4px rgba(229, 72, 77, .1); }
.shop-terms-box__error { display: flex; align-items: center; gap: .4rem; margin-top: .8rem; padding-top: .75rem; border-top: 1px solid rgba(229, 72, 77, .2); color: #c62f35; font-size: .84rem; font-weight: 700; }
.shop-terms-box.is-shaking { animation: shop-terms-shake .45s ease; }

@keyframes shop-terms-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.shop-terms-modal .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 1.25rem;
    box-shadow: 0 1.5rem 4rem rgba(16, 24, 40, .22);
}

.shop-terms-modal { z-index: 1250; }

.shop-terms-modal .modal-header {
    align-items: flex-start;
    padding: 1.25rem 1.4rem;
    border-bottom: 1px solid #edf1f5;
    background: linear-gradient(135deg, #effcf9, #f8fbff);
}

.shop-terms-modal__subtitle { margin: .35rem 0 0; color: #667085; font-size: .84rem; }
.shop-terms-modal__body { color: #475467; font-size: .93rem; line-height: 2; text-align: justify; word-break: keep-all; overflow-wrap: normal; hyphens: none; }
.shop-terms-modal__body p,
.shop-terms-modal__body li,
.shop-terms-modal__body h6 { word-break: keep-all; overflow-wrap: normal; white-space: normal; hyphens: none; }
.shop-terms-modal__body section { margin-top: 1.15rem; padding: 1rem; border: 1px solid #e8eef2; border-radius: .85rem; background: #fbfdfd; }
.shop-terms-modal__body h6 { margin-bottom: .35rem; color: #163c3a; font-weight: 800; }
.shop-terms-modal__body p:last-child,
.shop-terms-modal__body section p:last-child { margin-bottom: 0; }
.shop-terms-modal__body ul { margin-bottom: .75rem; }
.shop-terms-modal__closing { margin-top: 1.15rem; padding: 1rem; border-radius: .85rem; background: #f0faf8; color: #245c56; }
.shop-terms-modal__accept { background: #087f73; color: #fff; }
.shop-terms-modal__accept:hover { background: #06685f; color: #fff; }

@media (min-width: 768px) {
    .shop-terms-modal .modal-dialog { max-width: 840px; }
}

@media (max-width: 767.98px) {
    .shop-terms-consent { width: 100%; max-width: none; }
}

/* ── Shop profile: connected orders, payments and kits ── */
.shop-profile-panel {
    --profile-brand: #119fae;
    --profile-brand-dark: #087681;
    --profile-ink: #163438;
    --profile-muted: #75868a;
    --profile-border: #e4eef0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.shop-profile-panel__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .95rem 1.1rem;
    border: 1px solid rgba(17, 159, 174, .12);
    border-radius: 1rem;
    background:
        radial-gradient(circle at 8% 0%, rgba(17, 159, 174, .14), transparent 36%),
        linear-gradient(145deg, #fff, #f8fcfc);
    box-shadow: 0 .55rem 1.8rem rgba(12, 55, 61, .06);
}

.shop-profile-panel__eyebrow {
    display: block;
    margin-bottom: .35rem;
    color: var(--profile-brand);
    font-size: .78rem;
    font-weight: 800;
}

.shop-profile-panel__head h3 {
    margin: 0 0 .2rem;
    color: var(--profile-ink);
    font-size: 1.12rem;
    font-weight: 900;
}

.shop-profile-panel__head p {
    max-width: 36rem;
    margin: 0;
    color: var(--profile-muted);
    font-size: .8rem;
    line-height: 1.6;
}

.shop-profile-count {
    flex: 0 0 auto;
    padding: .52rem .85rem;
    border-radius: 999px;
    background: #e6f7f8;
    color: var(--profile-brand-dark);
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.shop-profile-stack {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.shop-profile-card-link {
    display: block;
    color: inherit !important;
    text-decoration: none !important;
    cursor: pointer;
}

.shop-profile-card-hit {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.shop-payment-order--clickable .shop-payment-row__action {
    position: relative;
    z-index: 2;
}

.shop-payment-order--clickable:hover {
    transform: translateY(-2px);
    border-color: rgba(17, 159, 174, .3);
    box-shadow: 0 .75rem 2rem rgba(18, 52, 56, .09);
}

.shop-order-card,
.shop-payment-order,
.shop-profile-kit-card {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--profile-border);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 .45rem 1.5rem rgba(18, 52, 56, .055);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.shop-order-card {
    border-right: 4px solid #119fae;
}

.shop-payment-order {
    border-right: 4px solid #7b62c4;
}

.shop-order-card.is-settled,
.shop-payment-order.is-settled,
.shop-reorder-card.is-settled {
    border-color: rgba(47, 158, 108, .28);
    border-right-color: #2f9e6c;
    background: linear-gradient(180deg, #f4fbf7 0%, #fff 34%);
}

.shop-order-card.is-due,
.shop-payment-order.is-due,
.shop-reorder-card.is-due {
    border-color: rgba(224, 162, 26, .32);
    border-right-color: #e0a21a;
    background: linear-gradient(180deg, #fffaf0 0%, #fff 34%);
}

.shop-order-card.is-cancelled,
.shop-reorder-card.is-cancelled {
    border-color: rgba(212, 93, 93, .28);
    border-right-color: #d45d5d;
    background: linear-gradient(180deg, #fff6f6 0%, #fff 34%);
}

.shop-order-card:hover,
.shop-payment-order:hover,
.shop-profile-kit-card:hover {
    transform: translateY(-2px);
    border-color: rgba(17, 159, 174, .3);
    box-shadow: 0 .75rem 2rem rgba(18, 52, 56, .09);
}

.shop-order-card__head,
.shop-payment-order__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    padding: .85rem 1rem;
}

.shop-order-card__head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
}

.shop-order-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .15rem;
    margin-top: .28rem;
    color: #6b7f83;
    font-size: .74rem;
}

.shop-order-meta span:not(:last-child)::after {
    margin: 0 .4rem;
    color: #c5d0d2;
    content: "·";
}

.shop-order-identity {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: .8rem;
}

.shop-order-identity__icon {
    display: inline-flex;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    border-radius: .9rem;
    background: linear-gradient(145deg, #e6f7f8, #d7f0f2);
    color: var(--profile-brand-dark);
    font-size: 1.05rem;
}

.shop-order-identity__icon--payment {
    background: linear-gradient(145deg, #f0ebff, #e5dcff);
    color: #7352b9;
}

.shop-order-identity__title {
    color: var(--profile-ink);
    font-size: .94rem;
    font-weight: 900;
}

.shop-order-identity__code {
    max-width: 21rem;
    margin-top: .2rem;
    overflow: hidden;
    color: #95a2a5;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-order-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    padding: .95rem 1.25rem 1rem;
}

.shop-order-fact {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .35rem;
    padding: .78rem .85rem;
    border: 0;
    border-radius: .9rem;
    background: #f4f8f9;
}

.shop-order-fact--date {
    background: #f1f4f7;
}

.shop-order-fact--date span i { color: #6b7d86; }

.shop-order-fact--amount {
    background: #eaf7f8;
}

.shop-order-fact--amount span i,
.shop-order-fact--amount strong {
    color: #087681;
}

.shop-order-fact--payments {
    background: #f3eefc;
}

.shop-order-fact--payments span i { color: #7352b9; }

.shop-order-fact--kits {
    background: #eef5ff;
}

.shop-order-fact--kits span i { color: #3d6ea8; }

.shop-order-fact span,
.shop-payment-row__date span,
.shop-profile-kit-card__info span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--profile-muted);
    font-size: .74rem;
}

.shop-order-fact span i {
    font-size: .68rem;
}

.shop-order-fact strong {
    color: var(--profile-ink);
    font-size: .88rem;
    font-weight: 900;
}

.shop-order-fact small,
.shop-payment-row__stage small {
    font-size: .68rem;
    font-weight: 700;
}

.shop-order-relations {
    margin: 0 1rem .85rem;
    padding: .55rem .65rem;
    border: 1px solid #e5f0f1;
    border-radius: .8rem;
    background: #f9fcfc;
}

.shop-order-relations__title,
.shop-payment-order__kits-label {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    margin-bottom: .7rem;
    color: #3b6065;
    font-size: .78rem;
    font-weight: 900;
}

.shop-order-relations__title i,
.shop-payment-order__kits-label i {
    color: var(--profile-brand);
}

.shop-kit-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.shop-kit-chip {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: .45rem;
    min-width: min(100%, 12rem);
    padding: .4rem .55rem;
    border: 1px solid #dfebed;
    border-radius: .65rem;
    background: #fff;
}

.shop-kit-chip__barcode {
    color: var(--profile-ink);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .78rem;
    font-weight: 900;
}

.shop-kit-chip__person {
    overflow: hidden;
    color: #5f7478;
    font-size: .75rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-kit-chip__status {
    padding: .25rem .45rem;
    border-radius: 999px;
    background: #edf8f8;
    color: var(--profile-brand-dark);
    font-size: .65rem;
    font-weight: 800;
    white-space: nowrap;
}

.shop-order-card__footer {
    display: flex;
    justify-content: flex-end;
    padding: .85rem 1.25rem;
    border-top: 1px solid #edf3f4;
    background: #fcfdfd;
}

.shop-profile-action,
.shop-profile-order-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--profile-brand-dark);
    font-size: .78rem;
    font-weight: 900;
    text-decoration: none !important;
}

.shop-profile-action:hover,
.shop-profile-order-link:hover {
    color: var(--profile-brand);
}

.shop-payment-order__kits {
    padding: .8rem 1.25rem;
    border-bottom: 1px solid #edf3f4;
    background: #fafcfd;
}

.shop-payment-order__kits-label {
    margin-bottom: .55rem;
}

.shop-kit-chip-list--compact {
    gap: .45rem;
}

.shop-kit-chip--compact {
    display: inline-flex;
    min-width: 0;
    padding: .45rem .62rem;
}

.shop-kit-chip--compact > span {
    color: var(--profile-ink);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .72rem;
    font-weight: 900;
}

.shop-kit-chip--compact small {
    padding-right: .55rem;
    border-right: 1px solid #e6edef;
    color: #6d7f83;
    font-size: .68rem;
}

.shop-payment-list {
    display: flex;
    flex-direction: column;
}

.shop-payment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    margin: .4rem .55rem;
    padding: .65rem .8rem;
    border: 1px solid #e8eef0;
    border-right: 4px solid #d5dee1;
    border-radius: .75rem;
    background: #fff;
}

.shop-payment-row:last-child {
    margin-bottom: .6rem;
}

.shop-payment-row.is-paid {
    border-color: #d7eee0;
    border-right-color: #3da86c;
    background: #f4fbf6;
}

.shop-payment-row.is-next {
    border-color: rgba(17, 159, 174, .28);
    border-right-color: #119fae;
    background: #eefafb;
    box-shadow: 0 .35rem 1rem rgba(17, 159, 174, .1);
}

.shop-payment-row.is-overdue {
    border-color: #f3d5cc;
    border-right-color: #d45d3e;
    background: #fff5f2;
}

.shop-payment-row.is-unpaid:not(.is-next):not(.is-overdue) {
    border-color: #e6eaec;
    border-right-color: #b7c3c6;
    background: #f7f8f9;
}

.shop-payment-row__stage,
.shop-payment-row__date {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.shop-payment-row__stage > span {
    color: #78619f;
    font-size: .72rem;
    font-weight: 800;
}

.shop-payment-row__stage small {
    color: #6b7f83;
    font-size: .68rem;
    font-weight: 700;
}

.shop-payment-row__stage strong,
.shop-payment-row__date strong {
    color: var(--profile-ink);
    font-size: .84rem;
    font-weight: 900;
}

.shop-profile-pay-button {
    display: inline-flex;
    min-width: 4.6rem;
    min-height: 2rem;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: .6rem;
    background: linear-gradient(135deg, var(--profile-brand), var(--profile-brand-dark));
    color: #fff;
    font-size: .74rem;
    font-weight: 900;
    box-shadow: 0 .35rem .9rem rgba(17, 159, 174, .22);
}

.shop-profile-pay-button span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.shop-profile-pay-button:disabled {
    cursor: wait;
    opacity: .7;
}

.shop-payment-row__done {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: #399067;
    font-size: .72rem;
    font-weight: 900;
}

.shop-payment-row__done i {
    display: inline-flex;
    width: 1.35rem;
    height: 1.35rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e7f6ee;
    font-size: .6rem;
}

.shop-kit-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.shop-profile-kit-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 1.15rem;
}

.shop-profile-kit-card__head {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid #edf3f4;
}

.shop-profile-kit-card__icon {
    display: inline-flex;
    flex: 0 0 2.8rem;
    width: 2.8rem;
    height: 2.8rem;
    align-items: center;
    justify-content: center;
    border-radius: .9rem;
    background: linear-gradient(145deg, #e6f7f8, #d7f0f2);
    color: var(--profile-brand-dark);
    font-size: 1.05rem;
}

.shop-profile-kit-card__head > div {
    min-width: 0;
}

.shop-profile-kit-card__head span:not(.shop-profile-kit-card__icon) {
    display: block;
    margin-bottom: .18rem;
    color: var(--profile-muted);
    font-size: .7rem;
}

.shop-profile-kit-card__head strong {
    display: block;
    overflow: hidden;
    color: var(--profile-ink);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-profile-kit-card__info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
    padding: .9rem 0;
}

.shop-profile-kit-card__info > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .3rem;
    padding: .7rem;
    border-radius: .75rem;
    background: #f8fbfb;
}

.shop-profile-kit-card__info span {
    display: flex;
    align-items: center;
    gap: .35rem;
}

.shop-profile-kit-card__info span i {
    color: var(--profile-brand);
}

.shop-profile-kit-card__info strong {
    overflow: hidden;
    color: var(--profile-ink);
    font-size: .78rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-profile-kit-card__orders {
    flex: 1;
    padding: .85rem;
    border: 1px solid #e5f0f1;
    border-radius: .8rem;
    background: #fbfdfd;
}

.shop-profile-kit-card__orders-title {
    display: block;
    margin-bottom: .55rem;
    color: #60777b;
    font-size: .7rem;
    font-weight: 900;
}

.shop-kit-order-links {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.shop-kit-order-links a {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .6rem;
    border-radius: .65rem;
    background: #eaf7f8;
    color: var(--profile-brand-dark);
    font-size: .72rem;
    font-weight: 900;
    text-decoration: none !important;
}

.shop-kit-order-links a small {
    padding-right: .4rem;
    border-right: 1px solid rgba(8, 118, 129, .16);
    font-size: .62rem;
    font-weight: 700;
}

.shop-profile-kit-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding-top: .85rem;
}

.shop-kit-service-link {
    padding: .5rem .7rem;
    border: 1px solid rgba(17, 159, 174, .24);
    border-radius: .65rem;
    background: #f3fbfb;
    color: var(--profile-brand-dark);
    font-size: .72rem;
    font-weight: 900;
    text-decoration: none !important;
}

.shop-kit-service-link--warning {
    border-color: rgba(236, 160, 32, .25);
    background: #fff9eb;
    color: #a46908;
}

.shop-profile-empty {
    padding: 3rem 1.25rem;
    border: 1px dashed #cfdfe1;
    border-radius: 1.1rem;
    background: #fbfdfd;
    text-align: center;
}

.shop-profile-empty--wide {
    grid-column: 1 / -1;
}

.shop-profile-empty > span {
    display: inline-flex;
    width: 3.5rem;
    height: 3.5rem;
    align-items: center;
    justify-content: center;
    margin-bottom: .8rem;
    border-radius: 50%;
    background: #eaf7f8;
    color: var(--profile-brand);
    font-size: 1.2rem;
}

.shop-profile-empty h4 {
    margin: 0 0 .35rem;
    color: var(--profile-ink);
    font-size: 1rem;
    font-weight: 900;
}

.shop-profile-empty p,
.shop-profile-empty-inline {
    margin: 0;
    color: var(--profile-muted);
    font-size: .76rem;
    line-height: 1.7;
}

@media (max-width: 991.98px) {
    .shop-order-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .shop-kit-card-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .shop-profile-panel__head {
        align-items: stretch;
        flex-direction: column;
    }

    .shop-order-card__head,
    .shop-payment-order__head,
    .shop-reorder-card__head {
        align-items: flex-start;
        flex-direction: row;
        gap: .55rem;
        padding: .75rem .85rem .55rem;
    }

    .shop-profile-count {
        align-self: flex-start;
    }

    .shop-order-card__head .badge,
    .shop-reorder-card__head .badge,
    .shop-payment-order__head .badge {
        flex: 0 0 auto;
        max-width: 42%;
        white-space: normal;
        text-align: center;
        line-height: 1.35;
    }

    .shop-order-relations {
        margin: 0 .75rem .7rem;
    }

    .shop-kit-chip {
        width: auto;
        max-width: 100%;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .shop-kit-chip__person {
        grid-column: auto;
        grid-row: auto;
        white-space: normal;
    }

    .shop-payment-row {
        margin: .35rem .45rem;
        padding: .55rem .65rem;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .shop-profile-pay-button {
        min-width: 4.2rem;
        min-height: 2.1rem;
        padding: 0 .7rem;
    }

    .shop-profile-kit-card__info {
        grid-template-columns: 1fr;
    }
}

.shop-order-identity__buyer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
    margin-top: .38rem;
    color: #6b7f83;
    font-size: .7rem;
}

.shop-order-identity__buyer i {
    color: var(--profile-brand);
}

.shop-order-identity__buyer strong {
    color: #385a5f;
    font-weight: 900;
}

.shop-payment-row__payer {
    display: flex;
    align-items: center;
    gap: .3rem;
    margin-top: .12rem;
    color: #6b7f83;
    font-size: .67rem !important;
    font-weight: 700;
}

.shop-payment-row__payer i {
    color: #8b70ba;
}

/* Filament color names used as Metronic badge classes (badge-gray is missing upstream) */
.badge.badge-gray {
    color: #3f4254;
    background-color: #e4e6ef;
}

.shop-order-detail {
    max-width: 52rem;
    margin: 0 auto 2.5rem;
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.shop-order-detail__back {
    align-self: flex-start;
    color: #087681 !important;
    font-size: .8rem;
    font-weight: 800;
    text-decoration: none !important;
}

.shop-order-detail__notice {
    padding: .9rem 1.05rem;
    border: 1px solid rgba(17, 159, 174, .2);
    border-radius: .9rem;
    background: #eefafb;
    color: #0d5f68;
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.8;
}

.shop-order-detail__notice p {
    margin: 0 0 .35rem;
}

.shop-order-detail__notice p:last-child {
    margin-bottom: 0;
}

.shop-order-detail__hero,
.shop-order-detail__card {
    border: 1px solid #e4eef0;
    border-radius: 1.1rem;
    background: #fff;
    box-shadow: 0 .4rem 1.4rem rgba(18, 52, 56, .05);
}

.shop-order-detail__hero {
    padding: 1.1rem 1.2rem 1.15rem;
    background:
        radial-gradient(circle at 8% 0%, rgba(17, 159, 174, .12), transparent 40%),
        #fff;
}

.shop-order-detail__hero-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}

.shop-order-detail__kicker {
    display: block;
    margin-bottom: .3rem;
    color: #119fae;
    font-size: .72rem;
    font-weight: 800;
}

.shop-order-detail__hero h2 {
    margin: 0;
    color: #163438;
    font-size: 1.2rem;
    font-weight: 900;
}

.shop-order-detail__facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
}

.shop-order-detail__facts > div {
    min-width: 0;
    padding: .7rem .75rem;
    border-radius: .8rem;
    background: #f5f9fa;
}

.shop-order-detail__facts span {
    display: block;
    margin-bottom: .2rem;
    color: #75868a;
    font-size: .7rem;
    font-weight: 700;
}

.shop-order-detail__facts strong {
    display: block;
    overflow: hidden;
    color: #163438;
    font-size: .86rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shop-order-detail__facts small {
    font-size: .68rem;
    font-weight: 700;
}

.shop-order-detail__card {
    padding: 1rem 1.1rem 1.05rem;
}

.shop-order-detail__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .85rem;
}

.shop-order-detail__card-head h3 {
    margin: 0;
    color: #163438;
    font-size: .95rem;
    font-weight: 900;
}

.shop-order-detail__card-head span {
    color: #6b7f83;
    font-size: .74rem;
    font-weight: 800;
}

.shop-order-kit-list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-order-kit-list li {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .65rem .75rem;
    border: 1px solid #e7eef0;
    border-radius: .8rem;
    background: #fbfdfd;
}

.shop-order-kit-list__n {
    display: inline-flex;
    flex: 0 0 1.7rem;
    width: 1.7rem;
    height: 1.7rem;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    background: #e6f7f8;
    color: #087681;
    font-size: .72rem;
    font-weight: 900;
}

.shop-order-kit-list li > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.shop-order-kit-list strong {
    color: #163438;
    font-size: .86rem;
    font-weight: 900;
}

.shop-order-kit-list small {
    color: #6b7f83;
    font-size: .74rem;
}

.shop-order-kit-list__empty {
    border-style: dashed !important;
    color: #75868a;
    font-size: .8rem;
}

.shop-profile-panel--embedded {
    gap: .7rem;
}

.shop-profile-panel--embedded .shop-payment-order {
    box-shadow: none;
}

@media (max-width: 767.98px) {
    .shop-order-detail__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-order-detail__hero-main {
        align-items: center;
    }

    .shop-order-detail__hero h2 {
        font-size: 1.05rem;
    }
}

.shop-payment-row__view-only {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .58rem;
    border-radius: .6rem;
    background: #f1f4f5;
    color: #718287;
    font-size: .68rem;
    font-weight: 900;
    white-space: nowrap;
}

.shop-payment-row__view-only i {
    color: #82959a;
}

.shop-payment-row__closed {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .58rem;
    border-radius: .6rem;
    background: #f4f6f7;
    color: #7a8a8e;
    font-size: .68rem;
    font-weight: 900;
    white-space: nowrap;
}

.shop-payment-row__closed i {
    color: #93a1a5;
}

.shop-payment-tabs {
    display: inline-flex;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .3rem;
    border: 1px solid #e4eef0;
    border-radius: 999px;
    background: #f7fbfc;
}

.shop-payment-tabs__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.2rem;
    padding: .4rem 1rem;
    border-radius: 999px;
    color: #5f7478 !important;
    font-size: .78rem;
    font-weight: 900;
    text-decoration: none !important;
}

.shop-payment-tabs__item.is-active {
    background: linear-gradient(135deg, var(--profile-brand, #119fae), var(--profile-brand-dark, #087681));
    color: #fff !important;
    box-shadow: 0 .35rem .9rem rgba(17, 159, 174, .22);
}

.shop-payment-tabs__item--pending.is-active {
    background: linear-gradient(135deg, #e0a21a, #c98412);
    box-shadow: 0 .35rem .9rem rgba(201, 132, 18, .24);
}

.shop-payment-tabs__item--success.is-active {
    background: linear-gradient(135deg, #3da86c, #2a8a58);
    box-shadow: 0 .35rem .9rem rgba(47, 158, 108, .24);
}

.shop-payment-order__head-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
}

.shop-payment-progress {
    padding: .55rem 1rem .75rem;
    background: #fafcfd;
}

.shop-payment-progress__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .45rem;
    margin-bottom: .55rem;
    color: #5f7478;
    font-size: .74rem;
    font-weight: 800;
}

.shop-payment-progress__meta strong {
    color: #284c51;
    font-weight: 900;
}

.shop-payment-progress__bar {
    position: relative;
    overflow: hidden;
    height: .5rem;
    border-radius: 999px;
    background: #e7eef0;
}

.shop-payment-progress__bar > span {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: var(--progress, 0%);
    max-width: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #119fae, #087681);
}

.shop-payment-progress.is-due {
    background: #fffaf0;
}

.shop-payment-progress.is-complete {
    background: #f4fbf6;
}

.shop-payment-progress.is-due .shop-payment-progress__meta strong {
    color: #a46908;
}

.shop-payment-progress.is-complete .shop-payment-progress__meta strong {
    color: #2a8a58;
}

.shop-payment-progress.is-due .shop-payment-progress__bar > span {
    background: linear-gradient(90deg, #e0a21a, #c98412);
}

.shop-payment-progress.is-complete .shop-payment-progress__bar > span {
    background: linear-gradient(90deg, #3da86c, #2a8a58);
}

.shop-payment-progress--in-order {
    margin: 0 1rem .75rem;
    padding: 0.55rem .75rem;
    border: 1px solid #edf3f4;
    border-radius: 10px;
    background: #f7fbfc;
}

.shop-payment-progress--in-order.is-due {
    border-color: #f3e2b4;
    background: #fffaf0;
}

.shop-payment-progress--in-order.is-complete {
    border-color: #d7eee0;
    background: #f4fbf6;
}

.shop-payment-row__overdue {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-top: .15rem;
    color: #c45b3e;
    font-size: .66rem !important;
    font-weight: 900;
}

.shop-payment-row__locked {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .58rem;
    border-radius: .6rem;
    background: #f4f6f7;
    color: #7a8a8e;
    font-size: .68rem;
    font-weight: 900;
    white-space: nowrap;
}

.shop-payment-row__locked i {
    color: #93a1a5;
}

@media (max-width: 767.98px) {
    .shop-payment-tabs {
        width: 100%;
    }

    .shop-payment-tabs__item {
        flex: 1 1 0;
    }

    .shop-payment-order__head-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

/* ── Reorder cards: compact barcode-to-product view ── */
.shop-reorder-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(17, 159, 174, .22);
    border-radius: 1.2rem;
    background:
        radial-gradient(circle at 100% 0%, rgba(17, 159, 174, .1), transparent 42%),
        linear-gradient(180deg, #f7fcfd 0%, #fff 38%);
    box-shadow: 0 .45rem 1.5rem rgba(18, 52, 56, .055);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.shop-reorder-card:hover {
    transform: translateY(-2px);
    border-color: rgba(17, 159, 174, .42);
    box-shadow: 0 .75rem 2rem rgba(18, 52, 56, .09);
}

.shop-reorder-card.is-settled {
    border-color: rgba(47, 158, 108, .32);
    background:
        radial-gradient(circle at 100% 0%, rgba(47, 158, 108, .12), transparent 42%),
        linear-gradient(180deg, #f4fbf7 0%, #fff 38%);
}

.shop-reorder-card.is-settled .shop-reorder-card__accent {
    background: linear-gradient(90deg, #2a8a58, #3da86c 55%, #8ed7b0);
}

.shop-reorder-card.is-due {
    border-color: rgba(224, 162, 26, .36);
    background:
        radial-gradient(circle at 100% 0%, rgba(224, 162, 26, .14), transparent 42%),
        linear-gradient(180deg, #fffaf0 0%, #fff 38%);
}

.shop-reorder-card.is-due .shop-reorder-card__accent {
    background: linear-gradient(90deg, #c98412, #e0a21a 55%, #f3d27a);
}

.shop-reorder-card.is-cancelled {
    border-color: rgba(212, 93, 93, .32);
    background:
        radial-gradient(circle at 100% 0%, rgba(212, 93, 93, .12), transparent 42%),
        linear-gradient(180deg, #fff6f6 0%, #fff 38%);
}

.shop-reorder-card.is-cancelled .shop-reorder-card__accent {
    background: linear-gradient(90deg, #b94a4a, #d45d5d 55%, #f0a3a3);
}

.shop-reorder-card__accent {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #087681, #119fae 55%, #7ad4de);
}

.shop-reorder-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    padding: .85rem 1rem .7rem;
}

.shop-order-identity__icon--reorder {
    background: linear-gradient(145deg, #dff5f7, #c5ebef);
    color: #087681;
    box-shadow: inset 0 0 0 1px rgba(17, 159, 174, .18);
}

.shop-reorder-card__tag {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .35rem;
    padding: .22rem .5rem;
    border-radius: 999px;
    background: rgba(17, 159, 174, .1);
    color: #087681;
    font-size: .64rem;
    font-weight: 900;
}

.shop-reorder-card__tag i {
    font-size: .58rem;
}

.shop-reorder-card__facts {
    padding-bottom: .35rem;
}

.shop-reorder-card__items {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin: 0 1rem .85rem;
    padding: .55rem .6rem;
    border: 1px solid #dceef0;
    border-radius: .8rem;
    background: rgba(255, 255, 255, .82);
}

.shop-reorder-card__items-title {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    margin-bottom: .15rem;
    color: #3b6065;
    font-size: .78rem;
    font-weight: 900;
}

.shop-reorder-card__items-title i {
    color: var(--profile-brand, #119fae);
}

.shop-reorder-line {
    display: grid;
    grid-template-columns: minmax(8rem, .7fr) minmax(0, 1.5fr);
    gap: .65rem;
    padding: .5rem .6rem;
    border: 1px solid #e5eef0;
    border-radius: .65rem;
    background: #fff;
}

.shop-reorder-line__kit,
.shop-reorder-line__products {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .4rem;
}

.shop-reorder-line__kit {
    flex-direction: row;
    align-items: center;
    gap: .55rem;
    padding-left: .65rem;
    border-left: 1px dashed #dce7ea;
}

.shop-reorder-line__index {
    display: inline-flex;
    flex: 0 0 1.55rem;
    width: 1.55rem;
    height: 1.55rem;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    background: #edf8f9;
    color: #087681;
    font-size: .68rem;
    font-weight: 900;
}

.shop-reorder-line small {
    color: #88949a;
    font-size: .65rem;
    font-weight: 800;
}

.shop-reorder-line__kit strong {
    display: block;
    color: #3c4950;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .8rem;
    font-weight: 900;
}

.shop-reorder-line__products > div {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.shop-reorder-line__products span {
    display: inline-flex;
    padding: .34rem .55rem;
    border: 1px solid rgba(17, 159, 174, .16);
    border-radius: .55rem;
    background: linear-gradient(180deg, #f2fbfc, #e8f6f8);
    color: var(--profile-brand-dark, #087681);
    font-size: .68rem;
    font-weight: 800;
}

.shop-reorder-line__products .shop-reorder-product--empty {
    border-color: #e6eaec;
    background: #f1f3f5;
    color: #899398;
}

.shop-reorder-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1.25rem;
    border-top: 1px solid #e7f2f3;
    background: rgba(252, 253, 253, .92);
}

.shop-reorder-card__hint {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: #6d8186;
    font-size: .7rem;
    font-weight: 700;
}

.shop-reorder-card__hint i {
    color: var(--profile-brand, #119fae);
}

.shop-reorder-card__title > span,
.shop-reorder-detail__head > span {
    display: inline-flex;
    flex: 0 0 2.35rem;
    width: 2.35rem;
    height: 2.35rem;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background: linear-gradient(145deg, #e6f7f8, #d7f0f2);
    color: var(--profile-brand-dark, #087681);
    font-size: .9rem;
}

.shop-reorder-card__title small,
.shop-reorder-detail__head small {
    display: block;
    margin-bottom: .12rem;
    color: var(--profile-brand, #119fae);
    font-size: .66rem;
    font-weight: 800;
}

.shop-reorder-detail {
    margin-bottom: 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid #e3e6ed;
    border-radius: 1rem;
    background: #fafbfc;
}

.shop-reorder-detail__head {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: .85rem;
}

.shop-reorder-detail__head h5 {
    margin: 0;
    color: #303b43;
    font-size: .92rem;
    font-weight: 900;
}

.shop-reorder-detail__items {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

@media (max-width: 575.98px) {
    .shop-reorder-card__items {
        margin-right: .85rem;
        margin-left: .85rem;
    }

    .shop-reorder-line {
        grid-template-columns: 1fr;
    }

    .shop-reorder-line__kit {
        padding: 0 0 .65rem;
        border-bottom: 1px dashed #dce7ea;
        border-left: 0;
    }
}
.shop-contact-page {
    padding-top: 70px;
    padding-bottom: 90px;
}

.shop-contact-form {
    position: relative;
    scroll-margin-top: 130px;
    overflow: hidden;
    max-width: 920px;
    margin-inline: auto;
    padding: clamp(28px, 5vw, 55px);
    border: 1px solid #dcebe8;
    border-radius: 26px;
    background: linear-gradient(145deg, #f4fbf9, #fff);
    box-shadow: 0 18px 45px rgba(24, 81, 78, .09);
}

.shop-contact-form__intro {
    margin-bottom: 28px;
    text-align: center;
}

.shop-contact-form__intro > span {
    color: #119fae;
    font-weight: 800;
}

.shop-contact-form__intro h2 {
    margin: 8px 0 10px;
    color: #173c3c;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 900;
}

.shop-contact-form__intro p {
    margin: 0;
    color: #687b7b;
    line-height: 1.9;
}

.shop-contact-form__success {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    padding: 14px 18px;
    border: 1px solid #a9dfd0;
    border-radius: 12px;
    color: #146c54;
    background: #e8f8f2;
    font-weight: 700;
    line-height: 1.8;
    outline: none;
}

.shop-contact-form__success span {
    display: inline-grid;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #1d9b72;
}

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

.shop-contact-form__wide {
    grid-column: 1 / -1;
}

.shop-contact-form label {
    display: block;
    margin-bottom: 8px;
    color: #254c4c;
    font-weight: 800;
}

.shop-contact-form label strong {
    color: #d92d20;
}

.shop-contact-form label small {
    color: #879898;
    font-weight: 500;
}

.shop-contact-form input,
.shop-contact-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #d6e3e1;
    border-radius: 11px;
    color: #173c3c;
    background: #fff;
}

.shop-contact-form input:focus,
.shop-contact-form textarea:focus {
    border-color: #119fae;
    outline: 3px solid rgba(17, 159, 174, .12);
}

.shop-contact-form textarea {
    resize: vertical;
}

.shop-contact-form button {
    margin-top: 22px;
    padding: 12px 28px;
    border: 0;
    border-radius: 11px;
    color: #fff;
    background: #119fae;
    font-weight: 900;
}

.shop-contact-form__error {
    margin: 6px 0 0;
    color: #b42318;
    font-size: .84rem;
}

.shop-contact-form__honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}

@media (max-width: 640px) {
    .shop-contact-page {
        padding-top: 35px;
        padding-bottom: 55px;
    }

    .shop-contact-form__grid {
        grid-template-columns: 1fr;
    }

    .shop-contact-form__wide {
        grid-column: auto;
    }

    .shop-contact-form button {
        width: 100%;
    }
}
.shop-product-benefits,
.shop-product-content-section,
.shop-product-components,
.shop-product-services {
    scroll-margin-top: 110px;
}

.shop-product-benefits__grid,
.shop-product-components__grid,
.shop-product-services__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.shop-product-benefit {
    display: flex;
    align-items: center;
    gap: 13px;
    min-height: 76px;
    padding: 17px 20px;
    border: 1px solid color-mix(in srgb, var(--product-brand) 22%, #e5eceb);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(28, 67, 65, .06);
}

.shop-product-benefit span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    color: #fff;
    background: var(--product-brand);
    font-weight: 900;
}

.shop-product-benefit p {
    margin: 0;
    color: #294d4d;
    font-weight: 700;
}

.shop-product-content-section {
    display: grid;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.6fr);
    gap: clamp(28px, 5vw, 65px);
    padding: clamp(28px, 5vw, 55px);
    border-radius: 25px;
    background: linear-gradient(135deg, var(--product-brand-light), #fff 66%);
}

.shop-product-content-section__heading > span {
    color: var(--product-brand-dark);
    font-weight: 800;
}

.shop-product-content-section__heading h2 {
    margin: 8px 0 0;
    color: #173c3c;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 900;
    line-height: 1.6;
}

.shop-product-content-section__text p {
    margin: 0 0 15px;
    color: #536e6e;
    font-size: 1rem;
    line-height: 2.15;
}

.shop-product-content-section__text p:last-child {
    margin-bottom: 0;
}

.shop-product-components,
.shop-product-services {
    padding: clamp(28px, 5vw, 50px);
    border: 1px solid #e1ecea;
    border-radius: 25px;
    background: #fff;
}

.shop-product-components__grid,
.shop-product-services__grid {
    margin-top: 28px;
}

.shop-product-component-card,
.shop-product-services article {
    padding: 24px;
    border-radius: 17px;
    background: #f7fbfa;
}

.shop-product-component-card h3,
.shop-product-services strong {
    display: block;
    margin-bottom: 14px;
    color: var(--product-brand-dark);
    font-size: 1.08rem;
    font-weight: 900;
}

.shop-product-component-card ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.shop-product-component-card li {
    position: relative;
    padding-right: 19px;
    color: #536e6e;
}

.shop-product-component-card li::before {
    position: absolute;
    top: .7em;
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--product-brand);
    content: '';
}

.shop-product-services__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.shop-product-services article {
    border-top: 4px solid var(--product-brand);
}

.shop-product-services article p {
    margin: 0;
    color: #607878;
    line-height: 1.95;
}

.shop-product-services article img {
    display: block;
    width: 130px;
    height: 130px;
    margin: -6px auto 18px;
    object-fit: contain;
}

.shop-product-sample {
    display: grid;
    grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
    align-items: center;
    gap: clamp(25px, 5vw, 60px);
    overflow: hidden;
    min-height: 430px;
    padding: clamp(28px, 5vw, 55px);
    border-radius: 25px;
    color: #fff;
    background: linear-gradient(135deg, var(--product-brand-dark), var(--product-brand));
}

.shop-product-sample__content > span {
    font-weight: 800;
    opacity: .8;
}

.shop-product-sample__content h2 {
    margin: 8px 0 14px;
    color: #fff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    font-weight: 900;
}

.shop-product-sample__content p {
    color: rgba(255, 255, 255, .88);
    line-height: 2;
}

.shop-product-sample__gallery {
    position: relative;
    min-height: 310px;
}

.shop-product-sample__gallery img {
    position: absolute;
    width: min(72%, 430px);
    height: auto;
    filter: drop-shadow(0 18px 22px rgba(0, 0, 0, .2));
}

.shop-product-sample__gallery img:nth-child(1) {
    top: 0;
    right: 0;
    z-index: 3;
}

.shop-product-sample__gallery img:nth-child(2) {
    top: 38px;
    left: 4%;
    z-index: 2;
}

.shop-product-sample__gallery img:nth-child(3) {
    right: 18%;
    bottom: -45px;
    z-index: 1;
}

.shop-product-story {
    display: grid;
    gap: 28px;
}

.shop-product-story__item {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: clamp(28px, 6vw, 75px);
    min-height: 410px;
    padding: clamp(24px, 5vw, 48px);
    border-radius: 24px;
    background: #f8f4ec;
}

.shop-product-story__item:nth-child(even) .shop-product-story__image {
    order: 2;
}

.shop-product-story__image {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 340px;
}

.shop-product-story__image img {
    width: 100%;
    height: 100%;
    border-radius: 18px;
    object-fit: contain;
}

.shop-product-story__item span {
    color: #8b6914;
    font-weight: 800;
}

.shop-product-story__item h2 {
    margin: 8px 0 15px;
    color: #3f3325;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 900;
}

.shop-product-story__item p {
    margin: 0;
    color: #6f6252;
    line-height: 2.1;
}

@media (max-width: 767px) {
    .shop-product-benefits__grid,
    .shop-product-components__grid,
    .shop-product-services__grid,
    .shop-product-content-section {
        grid-template-columns: 1fr;
    }

    .shop-product-hero--legacy {
        min-height: 540px;
        padding: 2rem 1.4rem;
        background-position: center;
    }

    .shop-product-hero--legacy::before {
        background: rgba(3, 48, 51, .75);
    }

    .shop-product-story__item {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .shop-product-story__item:nth-child(even) .shop-product-story__image {
        order: 0;
    }

    .shop-product-story__image {
        height: 270px;
    }

    .shop-product-page__inner {
        width: min(100% - 22px, 1120px);
    }

    .shop-product-sample {
        grid-template-columns: 1fr;
    }

    .shop-product-sample__gallery {
        min-height: 260px;
    }
}

/* Full ancestry-report content imported from the legacy public website. */
.ancestry-source-section,.ancestry-feature,.ancestry-report-sample,.ancestry-consultation{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.55fr);gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(28px,5vw,56px);border-radius:25px;background:#fff;border:1px solid #eadfcb}.ancestry-source-section{align-items:start;background:linear-gradient(135deg,#f8f1e5,#fff 68%)}.ancestry-source-heading span,.ancestry-feature span,.ancestry-report-sample span,.ancestry-consultation span{color:var(--product-brand-dark);font-weight:900}.ancestry-source-heading h2,.ancestry-feature h2,.ancestry-report-sample h2,.ancestry-consultation h2{margin:8px 0 16px;color:#3f3325;font-size:clamp(1.5rem,3vw,2.15rem);font-weight:900;line-height:1.55}.ancestry-source-copy p,.ancestry-feature p,.ancestry-report-sample p,.ancestry-consultation p{color:#655d52;line-height:2.15}.ancestry-source-copy ul{display:grid;gap:12px;margin:22px 0 0;padding:0;list-style:none}.ancestry-source-copy li{position:relative;padding:13px 48px 13px 16px;border-radius:12px;background:#fff;color:#504536;font-weight:800;box-shadow:0 8px 24px rgba(75,58,34,.07)}.ancestry-source-copy li:before{position:absolute;right:14px;top:13px;display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--product-brand);color:#fff;content:'✓'}.ancestry-media{overflow:hidden;padding:clamp(25px,4vw,44px);border-radius:25px;background:linear-gradient(135deg,#3f3325,#8b6914);box-shadow:0 18px 42px rgba(63,51,37,.18)}.ancestry-source-heading--light{text-align:center}.ancestry-source-heading--light span,.ancestry-source-heading--light h2{color:#fff}.ancestry-media video,.ancestry-consultation video{display:block;width:100%;max-height:620px;margin-top:24px;border-radius:18px;background:#111}.ancestry-feature{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);background:#fbf8f2}.ancestry-feature>img{width:100%;height:360px;border-radius:19px;object-fit:contain}.ancestry-feature--reverse>img{order:2}.ancestry-journey{padding:clamp(28px,5vw,52px);border-radius:25px;background:#f5eee2}.ancestry-journey__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}.ancestry-journey article{overflow:hidden;border-radius:19px;background:#fff;box-shadow:0 10px 28px rgba(75,58,34,.08)}.ancestry-journey article img{display:block;width:100%;height:310px;object-fit:contain;background:#f8f4ec}.ancestry-journey article p{margin:0;padding:22px;color:#655d52;line-height:2}.ancestry-report-sample{color:#fff;background:linear-gradient(135deg,var(--product-brand-dark),var(--product-brand));border:0}.ancestry-report-sample span,.ancestry-report-sample h2,.ancestry-report-sample p{color:#fff}.ancestry-report-sample>img{width:100%;border-radius:18px;filter:drop-shadow(0 18px 20px rgba(0,0,0,.2))}.ancestry-consultation{grid-template-columns:minmax(280px,1fr) minmax(0,1fr);background:#f8fbfa;border-color:#dcebe8}.ancestry-consultation__media video{margin:0}.ancestry-consultation strong{color:#267668}.ancestry-source-section,.ancestry-media,.ancestry-feature,.ancestry-journey,.ancestry-report-sample,.ancestry-consultation{scroll-margin-top:110px}@media(max-width:767px){.ancestry-source-section,.ancestry-feature,.ancestry-report-sample,.ancestry-consultation{grid-template-columns:1fr}.ancestry-feature--reverse>img{order:0}.ancestry-feature>img{height:280px}.ancestry-journey__grid{grid-template-columns:1fr}.ancestry-journey article img{height:270px}}
