/* TEDI_LEGACY_IRANSANS_V2 */
@font-face {
    font-family: "IRANSans";
    src:
        url("../fonts/IRANSansWeb_Medium.woff")
        format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

:root {
    --tedi-purple: #b22f8b;
    --tedi-purple-dark: #95236f;
    --tedi-green: #59b958;
    --tedi-text: #333;
    --tedi-muted: #777;
    --tedi-border: #e5e5e5;
    --tedi-bg: #f7f7f7;
    --tedi-footer: #222;
}

* {
    box-sizing: border-box;
}

html {
    direction: rtl;
}

body {
    margin: 0;
    font-family:
        "IRANSans",
        Tahoma,
        Arial,
        sans-serif;
    color: var(--tedi-text);
    background: #fff;
}

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

.tedi-header {
    background: #fff;
    border-top: 2px solid #eee;
    box-shadow:
        0 3px 12px rgba(0,0,0,.10);
    position: sticky;
    top: 0;
    z-index: 100;
}

.tedi-header-inner {
    min-height: 115px;
    padding: 10px 24px;
    display: grid;
    grid-template-columns:
        minmax(130px, 180px)
        1fr
        minmax(120px, 180px)
        auto;
    align-items: center;
    gap: 28px;
}

.tedi-logo {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: .9;
}

.tedi-logo-main {
    font-size: 54px;
    font-family:
        Georgia,
        serif;
    font-style: italic;
    color: #111;
}

.tedi-logo-sub {
    margin-top: 9px;
    font-size: 11px;
}

.tedi-nav {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 30px;
    font-size: 17px;
    font-weight: 700;
}

.tedi-nav a:hover {
    color: var(--tedi-purple);
}

.tedi-buying {
    text-align: center;
    display: flex;
    flex-direction: column;
    font-size: 15px;
}

.tedi-buying strong {
    color: var(--tedi-purple);
    font-size: 17px;
}

.tedi-actions {
    direction: ltr;
    display: flex;
    align-items: center;
    gap: 15px;
}

.tedi-action {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    border: 1px solid #ddd;
    background: #f5f5f5;
    font-size: 28px;
}

.tedi-action.cart span {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 25px;
    height: 25px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--tedi-purple);
    color: #fff;
    font-size: 12px;
}

.category-hero {
    background: #f7f7f7;
    padding: 55px 20px 45px;
}

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

.category-box {
    min-height: 84px;
    padding: 20px 28px;
    background: var(--tedi-purple);
    color: #fff;
    border-radius: 7px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    font-size: 27px;
    font-weight: 700;
    transition:
        transform .15s ease,
        background .15s ease;
}

.category-box:hover {
    transform: translateY(-2px);
    background: var(--tedi-purple-dark);
}

.category-icon {
    font-size: 27px;
}

.products-section,
.catalog-page {
    padding: 35px 32px 55px;
}

.section-title {
    border-bottom: 1px solid #eee;
    margin-bottom: 35px;
    text-align: right;
}

.section-title h2,
.catalog-heading h1 {
    display: inline-block;
    padding: 0 0 14px;
    border-bottom: 3px solid var(--tedi-purple);
    color: var(--tedi-purple);
    font-size: 25px;
}

.product-grid {
    direction: rtl;
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 28px;
}

.product-card {
    border: 1px solid #ddd;
    border-radius: 13px;
    overflow: hidden;
    background: #fff;
    min-width: 0;
}

.product-image-wrap {
    display: block;
    background: #fff;
    aspect-ratio: 4 / 4.35;
    overflow: hidden;
}

.product-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.product-placeholder {
    width: 100%;
    height: 100%;
    min-height: 320px;
    display: grid;
    place-items: center;
    padding: 30px;
    text-align: center;
    background:
        linear-gradient(
            145deg,
            #fafafa,
            #eeeeee
        );
    color: #999;
    font-size: 21px;
}

.product-card-body {
    text-align: center;
    padding: 20px 18px 24px;
}

.product-card h3 {
    font-size: 19px;
    margin: 0 0 30px;
}

.product-price strong {
    display: block;
    color: #111;
    font-size: 22px;
}

.product-price small {
    font-size: 16px;
}

.product-sale-row {
    direction: rtl;
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.discount-badge {
    background: #ef3d47;
    color: #fff;
    border-radius: 18px;
    padding: 6px 10px;
    font-size: 14px;
    font-weight: 700;
}

.product-sale-row del {
    color: #999;
    font-size: 14px;
}

.variant-colors {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin-top: 18px;
}

.color-dot {
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 2px solid #ddd;
    background:
        linear-gradient(
            135deg,
            #111 0 50%,
            var(--tedi-purple) 50% 100%
        );
}

.more-products {
    margin-top: 32px;
    min-height: 58px;
    background: var(--tedi-green);
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.catalog-filters {
    margin: 20px 0 35px;
    display: grid;
    grid-template-columns:
        minmax(240px, 2fr)
        minmax(180px, 1fr)
        minmax(160px, 1fr)
        120px;
    gap: 12px;
}

.catalog-filters input,
.catalog-filters select,
.catalog-filters button {
    min-height: 48px;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 0 14px;
    background: #fff;
    font: inherit;
}

.catalog-filters button {
    border: 0;
    color: #fff;
    font-weight: 700;
    background: var(--tedi-purple);
    cursor: pointer;
}

.pagination {
    margin-top: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.pagination a {
    padding: 10px 18px;
    color: #fff;
    background: var(--tedi-purple);
    border-radius: 5px;
}

.empty-products {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--tedi-muted);
}

.product-detail {
    max-width: 1200px;
    margin: 0 auto;
    padding: 60px 30px;
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);
    gap: 50px;
}

.product-detail-image img {
    width: 100%;
    max-height: 650px;
    object-fit: contain;
}

.product-detail-placeholder {
    min-height: 550px;
}

.product-detail-info h1 {
    font-size: 30px;
}

.product-code {
    color: #777;
}

.product-detail-price {
    margin: 30px 0;
}

.product-detail-price strong {
    display: block;
    font-size: 27px;
}

.product-detail-price del {
    display: block;
    margin-top: 10px;
    color: #999;
}

.detail-colors {
    margin-top: 30px;
}

.color-name {
    display: inline-block;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 18px;
    padding: 7px 13px;
    margin: 5px;
}

.add-cart-button {
    width: 100%;
    min-height: 55px;
    margin-top: 35px;
    border: 0;
    border-radius: 5px;
    background: var(--tedi-purple);
    color: #fff;
    font-size: 19px;
    font-weight: 700;
}

.tedi-footer {
    margin-top: 70px;
    background: var(--tedi-footer);
    color: #ddd;
}

.tedi-footer-inner {
    min-height: 360px;
    padding: 55px 50px;
    display: flex;
    justify-content: space-between;
    gap: 60px;
}

.tedi-footer h3 {
    color: #fff;
    font-size: 23px;
}

.contact {
    max-width: 650px;
}

.contact p {
    line-height: 2;
    color: #999;
}

.trust-placeholder {
    margin-top: 30px;
    width: 150px;
    height: 150px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: #fff;
    color: #777;
}

.tedi-footer-bottom {
    padding: 18px;
    text-align: center;
    background: #181818;
    color: #777;
}

@media (max-width: 1000px) {

    .tedi-header-inner {
        grid-template-columns: 120px 1fr auto;
    }

    .tedi-buying {
        display: none;
    }

    .product-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

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

}

@media (max-width: 760px) {

    .tedi-header-inner {
        min-height: auto;
        grid-template-columns:
            85px 1fr auto;
        gap: 10px;
        padding: 8px 12px;
    }

    .tedi-logo-main {
        font-size: 34px;
    }

    .tedi-nav {
        display: none;
    }

    .tedi-actions {
        gap: 6px;
    }

    .tedi-action {
        width: 39px;
        height: 39px;
        font-size: 21px;
    }

    .category-hero {
        padding: 20px 12px;
    }

    .category-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .category-box {
        min-height: 60px;
        padding: 10px;
        font-size: 17px;
    }

    .products-section,
    .catalog-page {
        padding: 20px 12px 35px;
    }

    .product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .product-placeholder {
        min-height: 190px;
        padding: 12px;
        font-size: 14px;
    }

    .product-card-body {
        padding: 12px 8px 16px;
    }

    .product-card h3 {
        min-height: 38px;
        margin-bottom: 14px;
        font-size: 14px;
    }

    .product-price strong {
        font-size: 15px;
    }

    .product-sale-row {
        flex-wrap: wrap;
    }

    .catalog-filters {
        grid-template-columns: 1fr;
    }

    .product-detail {
        grid-template-columns: 1fr;
        padding: 25px 15px;
    }

    .tedi-footer-inner {
        flex-direction: column;
        padding: 35px 20px;
    }

}


/* TEDI original logo */

.tedi-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.tedi-logo-image {
    display: block;
    width: 145px;
    height: auto;
    max-height: 105px;
    object-fit: contain;
}

@media (max-width: 760px) {
    .tedi-logo-image {
        width: 78px;
        max-height: 60px;
    }
}


/* =========================================================
   Cart MVP
   ========================================================= */

.site-messages {
    width: min(1180px, calc(100% - 32px));
    margin: 18px auto;
}

.site-message {
    padding: 12px 16px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
}

.site-message.success {
    border-color: #88c999;
}

.site-message.error {
    border-color: #d99595;
}

.product-cart-form {
    display: grid;
    gap: 10px;
    margin-top: 22px;
}

.variant-select,
.quantity-input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    padding: 8px 10px;
    font: inherit;
}

.quantity-input {
    max-width: 110px;
}

.variant-select-label,
.quantity-label {
    font-weight: 700;
}

.cart-page {
    width: min(1180px, calc(100% - 32px));
    margin: 28px auto 60px;
}

.cart-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}

.cart-lines {
    display: grid;
    gap: 14px;
}

.cart-line {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr) auto auto;
    gap: 18px;
    align-items: center;
    padding: 14px;
    border: 1px solid #eee;
    border-radius: 14px;
    background: #fff;
}

.cart-line-image {
    display: block;
    width: 110px;
    height: 130px;
    overflow: hidden;
    border-radius: 10px;
    background: #f5f5f5;
}

.cart-line-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.cart-line-info h2 {
    margin: 0 0 8px;
    font-size: 1rem;
}

.cart-line-info p,
.cart-line-variant {
    margin: 5px 0;
}

.cart-line-variant {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.cart-line-price,
.cart-line-total {
    font-weight: 700;
}

.cart-line-controls {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cart-line-controls form {
    display: flex;
    align-items: end;
    gap: 8px;
}

.cart-line-controls input[name="quantity"] {
    width: 78px;
    min-height: 38px;
}

.cart-line-controls button {
    min-height: 38px;
    border: 0;
    border-radius: 8px;
    padding: 7px 12px;
    cursor: pointer;
}

.cart-remove-button {
    background: #f6eeee;
}

.cart-summary {
    margin-top: 22px;
    margin-right: auto;
    width: min(100%, 380px);
    padding: 18px;
    border: 1px solid #eee;
    border-radius: 14px;
    background: #fff;
}

.cart-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
}

.checkout-button {
    width: 100%;
    margin-top: 14px;
    min-height: 48px;
    border: 0;
    border-radius: 10px;
}

.empty-cart {
    text-align: center;
    padding: 60px 20px;
}

@media (max-width: 760px) {

    .cart-line {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .cart-line-image {
        width: 82px;
        height: 100px;
    }

    .cart-line-controls,
    .cart-line-total {
        grid-column: 1 / -1;
    }

    .cart-line-controls form {
        justify-content: space-between;
    }
}

/* TEDI account / OTP */

.account-shell {
    max-width: 760px;
    margin: 48px auto 72px;
    padding: 0 16px;
}

.account-card {
    background: #fff;
    border: 1px solid #ece7ef;
    border-radius: 20px;
    padding: 28px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
}

.account-card h1 {
    margin: 0 0 12px;
    font-size: 28px;
}

.account-help {
    margin: 0 0 24px;
    color: #6d6570;
    line-height: 1.9;
}

.account-form {
    display: grid;
    gap: 10px;
}

.account-form label {
    font-weight: 700;
}

.account-form input {
    width: 100%;
    min-height: 48px;
    border: 1px solid #d9d2dc;
    border-radius: 12px;
    padding: 10px 14px;
    font: inherit;
    box-sizing: border-box;
}

.account-primary-button {
    min-height: 48px;
    margin-top: 8px;
    border: 0;
    border-radius: 12px;
    background: #8e3a96;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.account-field-error {
    color: #a01818;
    font-size: 14px;
}

.account-secondary-link {
    display: inline-block;
    margin-top: 20px;
}

.account-card-wide {
    max-width: 720px;
}

.account-heading-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.account-logout-button {
    border: 1px solid #d8cbdc;
    background: #fff;
    border-radius: 10px;
    padding: 9px 16px;
    font: inherit;
    cursor: pointer;
}

.account-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
}

.account-info-grid > div {
    background: #faf8fb;
    border-radius: 12px;
    padding: 16px;
}

.account-info-grid span {
    display: block;
    margin-bottom: 8px;
    color: #756c78;
    font-size: 13px;
}

.account-address-placeholder {
    margin-top: 20px;
    padding: 18px;
    border: 1px dashed #d9cedc;
    border-radius: 12px;
    color: #746c77;
}

@media (max-width: 640px) {
    .account-shell {
        margin-top: 24px;
    }

    .account-card {
        padding: 20px;
    }

    .account-heading-row {
        flex-direction: column;
    }

    .account-info-grid {
        grid-template-columns: 1fr;
    }
}


/* TEDI customer addresses */

.account-primary-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 8px 16px;
    border-radius: 10px;
    background: #8e3a96;
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.address-list {
    display: grid;
    gap: 14px;
    margin-top: 24px;
}

.address-card {
    border: 1px solid #e8e1eb;
    border-radius: 14px;
    padding: 18px;
}

.address-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.address-default-badge {
    display: inline-block;
    margin-right: 8px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #f2e7f4;
    color: #7d2f86;
    font-size: 12px;
}

.address-content {
    color: #4f4852;
    line-height: 1.9;
}

.address-content p {
    margin: 4px 0;
}

.address-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eee8f0;
}

.address-actions form {
    margin: 0;
}

.address-actions a,
.address-actions button {
    border: 0;
    background: transparent;
    color: #7d2f86;
    font: inherit;
    cursor: pointer;
    text-decoration: none;
    padding: 0;
}

.address-delete-link {
    color: #a01818 !important;
}

.account-empty-state {
    margin-top: 24px;
    padding: 24px;
    border: 1px dashed #d9cedc;
    border-radius: 12px;
    text-align: center;
    color: #756c78;
}

.account-form-field {
    display: grid;
    gap: 7px;
}

.account-form textarea {
    width: 100%;
    border: 1px solid #d9d2dc;
    border-radius: 12px;
    padding: 12px 14px;
    font: inherit;
    box-sizing: border-box;
    resize: vertical;
}

.required-star {
    color: #a01818;
}

.account-danger-button {
    min-height: 44px;
    padding: 8px 18px;
    border: 0;
    border-radius: 10px;
    background: #a01818;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.address-delete-preview {
    margin: 20px 0;
    padding: 16px;
    background: #faf8fb;
    border-radius: 12px;
}

@media (max-width: 640px) {
    .address-actions {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* TEDI checkout */

.checkout-shell {
    max-width: 920px;
    margin: 36px auto 72px;
    padding: 0 16px;
}

.checkout-main {
    background: #fff;
    border: 1px solid #ece7ef;
    border-radius: 20px;
    padding: 26px;
}

.checkout-main h1 {
    margin-top: 0;
}

.checkout-section {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #eee8f0;
}

.checkout-address-options ul {
    display: grid;
    gap: 10px;
    padding: 0;
    list-style: none;
}

.checkout-address-options label {
    display: block;
    padding: 14px;
    border: 1px solid #e2dae5;
    border-radius: 12px;
    cursor: pointer;
}

.checkout-line {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid #f0ebf2;
}

.checkout-line-meta {
    margin-top: 5px;
    color: #756c78;
    font-size: 13px;
}

.checkout-total {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 22px;
    padding: 18px;
    border-radius: 12px;
    background: #faf8fb;
    font-size: 18px;
}

.checkout-notice {
    margin-top: 18px;
    padding: 14px;
    border-radius: 10px;
    background: #f8f4f9;
    color: #625a65;
    line-height: 1.8;
}

.checkout-submit {
    width: 100%;
    min-height: 50px;
    margin-top: 18px;
    border: 0;
    border-radius: 12px;
    background: #8e3a96;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.order-success-box {
    text-align: center;
    padding: 20px;
}

.checkout-button {
    text-decoration: none;
}

@media (max-width: 640px) {
    .checkout-shell {
        margin-top: 20px;
    }

    .checkout-main {
        padding: 18px;
    }

    .checkout-line {
        flex-direction: column;
    }
}


/* TEDI_STOREFRONT_TYPOGRAPHY_V2
   Legacy-aligned desktop typography.
   Source: TEDI Legacy Custom.css / IRANSansWeb_Medium.
*/
@media (min-width: 769px) {
    .tedi-nav {
        font-weight: 400;
    }

    .category-box {
        font-size: 22px;
        font-weight: 400;
    }

    .category-icon {
        font-size: 17px;
    }

    .section-title h2,
    .catalog-heading h1 {
        font-size: 18px;
        font-weight: 500;
    }

    .product-card h3 {
        font-size: 16px;
        font-weight: 400;
    }

    .product-price strong {
        font-size: 19px;
        font-weight: 400;
    }

    .product-price small {
        font-size: 14px;
        font-weight: 400;
    }
}


/* ==========================================================
   TEDI_PRODUCT_DETAIL_LEGACY_UI_V1

   Legacy storefront alignment:
   - Category labels aligned right.
   - Desktop product detail approximates legacy 4/5/3 layout.
   - Product image scale reduced to legacy range.
   - Product metadata uses compact bordered rows.
   - Variant selection business logic remains unchanged.
   ========================================================== */

.category-box {
    justify-content: flex-start;
    text-align: right;
    padding-inline: 10%;
}


/* ----------------------------------------------------------
   PRODUCT DETAIL - DESKTOP
   ---------------------------------------------------------- */

.product-detail {
    direction: rtl;
    width: min(
        1550px,
        calc(100% - 48px)
    );
    max-width: none;
    margin: 0 auto;
    padding: 28px 0 50px;

    display: grid;
    grid-template-columns:
        minmax(250px, 4fr)
        minmax(360px, 5fr)
        minmax(240px, 3fr);

    gap: 18px;
    align-items: start;
}


/* IMAGE */

.product-detail-image {
    min-height: 360px;
    padding: 10px;

    display: grid;
    place-items: center;

    background: #fff;
    border: 1px solid #ddd;
    border-radius: 10px;
}

.product-detail-image img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 320px;
    object-fit: contain;
    margin: 0 auto;
}

.product-detail-placeholder {
    min-height: 320px;
}


/* CENTER INFORMATION */

.product-detail-info {
    min-width: 0;
    padding: 0 4px;
    color: #555;
}

.product-detail-info h1 {
    margin:
        0
        0
        10px;

    padding:
        0
        4px
        14px;

    border-bottom:
        1px solid #eee;

    color: #444;

    font-size: 20px;
    font-weight: 400;

    line-height: 1.8;
    text-align: right;
}

.product-detail-row {
    display: grid;

    grid-template-columns:
        88px
        minmax(0, 1fr);

    gap: 8px;

    min-height: 54px;

    padding:
        8px
        4px;

    align-items: center;

    border-bottom:
        1px solid #f2eef1;

    font-size: 14px;
}

.detail-label {
    color: #444;
    text-align: right;
}

.detail-value {
    min-width: 0;

    color: #555;

    text-align: right;
    line-height: 1.9;
}

.product-detail-summary {
    overflow-wrap: anywhere;
}


/* COLORS / SIZES */

.detail-option-list {
    display: flex;
    flex-wrap: wrap;

    align-items: center;

    gap: 7px;
}

.color-name,
.size-name {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 7px;

    min-height: 34px;

    padding:
        5px
        11px;

    margin: 0;

    border:
        1px solid #d8d8d8;

    border-radius: 18px;

    background: #fff;

    color: #555;

    font-size: 13px;
    font-weight: 400;

    line-height: 1.4;
}

.color-name::before {
    content: "";

    width: 16px;
    height: 16px;

    flex:
        0
        0
        16px;

    border:
        1px solid #bbb;

    border-radius: 50%;

    background: #ddd;
}


/* Common TEDI color names.
   Unknown color names keep the neutral fallback dot. */

.color-name[data-color="سفید"]::before {
    background: #fff;
}

.color-name[data-color="مشکی"]::before {
    background: #000;
}

.color-name[data-color="صورتی"]::before {
    background: #d87591;
}

.color-name[data-color="آبی"]::before,
.color-name[data-color="ابی"]::before {
    background: #1f4fa3;
}

.color-name[data-color="سرمه‌ای"]::before,
.color-name[data-color="سرمه ای"]::before {
    background: #1c2e50;
}

.color-name[data-color="قرمز"]::before {
    background: #d62828;
}

.color-name[data-color="سبز"]::before {
    background: #397d3a;
}

.color-name[data-color="طوسی"]::before,
.color-name[data-color="خاکستری"]::before {
    background: #999;
}

.color-name[data-color="کرم"]::before {
    background: #ead7b7;
}

.color-name[data-color="زرد"]::before {
    background: #f2c94c;
}

.color-name[data-color="نارنجی"]::before {
    background: #f57c00;
}

.color-name[data-color="بنفش"]::before {
    background: #7e4a9b;
}

.color-name[data-color="قهوه‌ای"]::before,
.color-name[data-color="قهوه ای"]::before {
    background: #6d4c41;
}

.size-name {
    border-color: #9ea5b8;
    padding-inline: 15px;
}


/* PURCHASE BOX */

.product-purchase-panel {
    padding:
        18px
        16px;

    background: #fff;

    border:
        1px solid #ddd;

    border-radius: 10px;

    align-self: start;
}

.product-detail-price {
    margin:
        0
        0
        16px;

    padding-bottom: 14px;

    text-align: center;

    border-bottom:
        1px solid #eee;

    color: #222;

    font-size: 18px;
}

.product-price-label {
    margin-left: 4px;
}

.product-detail-price strong {
    display: inline;

    font-size: 18px;
    font-weight: 400;
}

.product-detail-price del {
    display: block;

    margin-top: 6px;

    color: #888;

    font-size: 13px;
}

.product-cart-form {
    margin-top: 0;
    gap: 8px;
}

.variant-select-label,
.quantity-label {
    font-size: 13px;
    font-weight: 400;
}

.variant-select {
    min-height: 42px;

    padding:
        7px
        9px;

    border-radius: 5px;

    font-size: 13px;
}

.quantity-input {
    min-height: 40px;
    max-width: 90px;

    border-radius: 5px;

    font-size: 14px;
}

.add-cart-button {
    min-height: 48px;

    margin-top: 8px;

    font-size: 16px;
    font-weight: 400;
}


/* ----------------------------------------------------------
   PRODUCT DETAIL - TABLET / MOBILE
   ---------------------------------------------------------- */

@media (max-width: 900px) {

    .product-detail {
        width:
            min(
                760px,
                calc(100% - 24px)
            );

        grid-template-columns:
            minmax(0, 1fr);

        gap: 18px;

        padding:
            20px
            0
            35px;
    }

    .product-detail-image {
        min-height: 300px;
    }

    .product-detail-image img {
        max-height: 340px;
    }

    .product-detail-info h1 {
        font-size: 19px;
    }

    .product-purchase-panel {
        width: 100%;
    }

}


@media (max-width: 520px) {

    .product-detail {
        width:
            calc(100% - 18px);

        gap: 14px;

        padding-top: 12px;
    }

    .product-detail-image {
        min-height: 260px;
        padding: 7px;
    }

    .product-detail-image img {
        max-height: 300px;
    }

    .product-detail-row {
        grid-template-columns:
            72px
            minmax(0, 1fr);

        font-size: 13px;
    }

    .color-name,
    .size-name {
        min-height: 32px;

        padding:
            4px
            9px;

        font-size: 12px;
    }

}


/* ==========================================================
   TEDI_VARIANT_SELECTOR_AND_GALLERY_V2
   ========================================================== */


/* Native select is the safe no-JS fallback. */

.product-cart-form.is-enhanced
.variant-select-label,

.product-cart-form.is-enhanced
.variant-select {
    display: none;
}


/* Interactive variant pills */

.variant-color-choice,
.variant-size-choice {
    appearance: none;
    cursor: pointer;
    font-family: inherit;

    transition:
        border-color .12s ease,
        box-shadow .12s ease,
        background-color .12s ease;
}

.variant-color-choice:hover,
.variant-size-choice:hover {
    border-color: #999;
}

.variant-color-choice.is-selected,
.variant-size-choice.is-selected {
    border-color: #9ea5b8;

    box-shadow:
        0
        0
        0
        1px
        #9ea5b8;
}

.variant-color-choice:focus-visible,
.variant-size-choice:focus-visible {
    outline:
        2px solid
        var(--tedi-purple);

    outline-offset: 2px;
}


/* Product unavailable state */

.product-unavailable {
    padding: 12px;

    border-radius: 5px;

    background: #f5f5f5;

    color: #b42318;

    text-align: center;

    font-size: 15px;
}


/* ----------------------------------------------------------
   LEGACY-LIKE PRODUCT GALLERY
   ---------------------------------------------------------- */

.product-detail-gallery {
    min-width: 0;
}

.product-detail-thumbnails {
    direction: rtl;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 8px;

    max-width: 100%;

    margin-top: 10px;

    padding:
        2px
        0
        4px;

    overflow-x: auto;

    scrollbar-width: thin;
}

.product-gallery-thumb {
    appearance: none;

    width: 90px;
    height: 74px;

    flex:
        0
        0
        90px;

    padding: 4px;

    background: #fff;

    border:
        1px solid #ddd;

    border-radius: 5px;

    cursor: pointer;

    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}

.product-gallery-thumb:hover {
    border-color: #aaa;
}

.product-gallery-thumb.is-active {
    border-color: #ee8600;

    box-shadow:
        0
        0
        0
        1px
        #ee8600;
}

.product-gallery-thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;
}


@media (max-width: 520px) {

    .product-detail-thumbnails {
        justify-content: flex-start;
    }

    .product-gallery-thumb {
        width: 74px;
        height: 62px;

        flex-basis: 74px;
    }

}


/* ==========================================================
   TEDI_PRODUCT_LIGHTBOX_V1
   Legacy-style fullscreen product image viewer.
   ========================================================== */


/* Main image affordance */

.product-main-image-zoom {
    cursor: zoom-in;
}

.product-main-image-zoom:focus-visible {
    outline:
        2px solid
        var(--tedi-purple);

    outline-offset: 4px;
}


/* Prevent page scrolling while viewer is open */

body.product-lightbox-open {
    overflow: hidden;
}


/* Modal backdrop */

.product-lightbox {
    position: fixed;

    inset: 0;

    z-index: 10000;

    display: grid;

    grid-template-columns:
        minmax(58px, 1fr)
        minmax(0, 8fr)
        minmax(58px, 1fr);

    align-items: center;

    gap: 12px;

    padding:
        28px
        20px;

    background:
        rgba(
            0,
            0,
            0,
            .82
        );
}

.product-lightbox[hidden] {
    display: none;
}


/* Enlarged image */

.product-lightbox-stage {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: center;

    min-width: 0;
    min-height: 0;

    height:
        calc(
            100vh
            - 56px
        );
}

.product-lightbox-image {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;
    max-height: 100%;

    object-fit: contain;

    background: #fff;

    box-shadow:
        0
        6px
        30px
        rgba(
            0,
            0,
            0,
            .28
        );
}


/* Previous / next */

.product-lightbox-nav,
.product-lightbox-close {
    appearance: none;

    border: 0;

    font-family: inherit;

    cursor: pointer;

    color: #fff;

    background:
        rgba(
            255,
            255,
            255,
            .14
        );

    transition:
        background-color
        .15s ease;
}

.product-lightbox-nav:hover,
.product-lightbox-close:hover {
    background:
        rgba(
            255,
            255,
            255,
            .25
        );
}

.product-lightbox-nav {
    width: 54px;
    height: 54px;

    justify-self: center;

    border-radius: 50%;

    font-size: 42px;
    font-weight: 300;

    line-height: 1;
}

.product-lightbox-prev {
    grid-column: 1;
}

.product-lightbox-stage {
    grid-column: 2;
}

.product-lightbox-next {
    grid-column: 3;
}


/* Close button */

.product-lightbox-close {
    position: absolute;

    top: 18px;
    right: 20px;

    z-index: 2;

    width: 46px;
    height: 46px;

    border-radius: 50%;

    font-size: 32px;
    line-height: 1;
}


/* Counter */

.product-lightbox-counter {
    position: absolute;

    bottom: 10px;
    left: 50%;

    transform:
        translateX(-50%);

    min-width: 68px;

    padding:
        5px
        10px;

    border-radius: 16px;

    background:
        rgba(
            0,
            0,
            0,
            .6
        );

    color: #fff;

    font-family: inherit;

    font-size: 13px;

    text-align: center;
}


/* ----------------------------------------------------------
   Keep checkout controls on the same IRANSans typography
   as the rest of the TEDI storefront.
   ---------------------------------------------------------- */

.product-purchase-panel button,
.product-purchase-panel input,
.product-purchase-panel select,
.product-purchase-panel option {
    font-family: inherit;
}

.product-purchase-panel
.add-cart-button {
    font-family:
        "IRANSans",
        Tahoma,
        Arial,
        sans-serif;

    font-weight: 400;
}


/* Mobile lightbox */

@media (max-width: 640px) {

    .product-lightbox {
        grid-template-columns:
            48px
            minmax(0, 1fr)
            48px;

        gap: 4px;

        padding:
            18px
            4px;
    }

    .product-lightbox-stage {
        height:
            calc(
                100vh
                - 36px
            );
    }

    .product-lightbox-nav {
        width: 42px;
        height: 42px;

        font-size: 34px;
    }

    .product-lightbox-close {
        top: 9px;
        right: 9px;

        width: 42px;
        height: 42px;

        font-size: 29px;
    }

}


/* ==========================================================
   TEDI_LEGACY_PURCHASE_HEADER_V1
   ========================================================== */


/* ----------------------------------------------------------
   Header icons
   ---------------------------------------------------------- */

.tedi-actions {
    position: relative;
    direction: ltr;
}

.tedi-actions .tedi-action {
    border: 0;
    background: transparent;
    color: #333;
    border-radius: 0;
}

.tedi-actions .tedi-action svg {
    width: 31px;
    height: 31px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.15;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tedi-cart-action,
.tedi-search-action {
    width: 52px;
    height: 52px;
}

.tedi-user-guest,
.tedi-account-summary {
    width: 52px;
    height: 52px;
    border-radius: 50% !important;
    background: #f2f2f2 !important;
    color: #68737d !important;
}

.tedi-cart-action {
    position: relative;
}

.tedi-cart-action .tedi-cart-badge {
    position: absolute;
    top: -2px;
    right: -1px;
    min-width: 24px;
    height: 24px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: var(--tedi-purple);
    color: #fff;
    font-size: 11px;
    line-height: 1;
}


/* ----------------------------------------------------------
   Logged-in account dropdown
   ---------------------------------------------------------- */

.tedi-account-menu {
    position: relative;
    direction: rtl;
}

.tedi-account-menu > summary {
    list-style: none;
    cursor: pointer;
}

.tedi-account-menu > summary::-webkit-details-marker {
    display: none;
}

.tedi-account-menu[open]
.tedi-account-summary {
    background: #a8efb2 !important;
    color: #65737e !important;
}

.tedi-login-check {
    position: absolute;
    right: 5px;
    bottom: 6px;
    font-size: 13px;
    font-weight: 700;
    color: #54a86b;
}

.tedi-account-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    z-index: 300;
    width: 230px;
    padding: 10px 0;
    border: 1px solid #d8d8d8;
    border-radius: 6px;
    background: #fff;
    box-shadow:
        0 12px 26px
        rgba(0, 0, 0, .18);
    text-align: right;
    direction: rtl;
}

.tedi-account-dropdown::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 18px;
    width: 14px;
    height: 14px;
    background: #fff;
    border-top: 1px solid #d8d8d8;
    border-left: 1px solid #d8d8d8;
    transform: rotate(45deg);
}

.tedi-account-dropdown a,
.tedi-account-dropdown button {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 9px 20px;
    border: 0;
    background: #fff;
    color: #666;
    font-family: inherit;
    font-size: 15px;
    cursor: pointer;
    box-sizing: border-box;
}

.tedi-account-dropdown a:hover,
.tedi-account-dropdown button:hover {
    background: #f7f7f7;
    color: var(--tedi-purple);
}

.tedi-account-dropdown form {
    margin: 0;
}


/* ----------------------------------------------------------
   Login / OTP icon
   ---------------------------------------------------------- */

.account-auth-icon {
    width: 62px;
    height: 62px;
    margin: 0 auto 16px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f0f0f0;
    color: #6f7b84;
}

.account-auth-icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* ----------------------------------------------------------
   Legacy add-to-cart success dialog
   ---------------------------------------------------------- */

body.legacy-cart-modal-open {
    overflow: hidden;
}

.legacy-cart-success-modal {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 135px 20px 30px;
    background:
        rgba(0, 0, 0, .53);
}

.legacy-cart-success-modal[hidden] {
    display: none;
}

.legacy-cart-success-box {
    width: min(800px, calc(100vw - 40px));
    border: 1px solid #bbb;
    border-radius: 7px;
    overflow: hidden;
    background: #fff;
    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, .28);
}

.legacy-cart-success-head {
    min-height: 67px;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 20px;
    border-bottom: 1px solid #ddd;
}

.legacy-cart-success-head strong {
    flex: 1;
    text-align: right;
    font-size: 16px;
    font-weight: 500;
}

.legacy-cart-success-close {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: #bbb;
    font-family: inherit;
    font-size: 31px;
    line-height: 1;
    cursor: pointer;
}

.legacy-cart-success-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 14px;
    padding: 22px 20px;
    direction: rtl;
}

.legacy-cart-success-actions a {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 18px;
    border-radius: 4px;
    font-family: inherit;
    font-size: 15px;
    box-sizing: border-box;
}

.legacy-cart-pay {
    background: var(--tedi-purple);
    color: #fff;
}

.legacy-cart-continue {
    border: 1px solid #bbb;
    background: #f5f5f5;
    color: #333;
}


/* ----------------------------------------------------------
   Mobile
   ---------------------------------------------------------- */

@media (max-width: 640px) {

    .tedi-account-dropdown {
        width: 205px;
    }

    .legacy-cart-success-modal {
        padding:
            95px
            12px
            20px;
    }

    .legacy-cart-success-head {
        padding:
            13px
            15px;
    }

    .legacy-cart-success-actions {
        padding:
            16px
            15px;
    }

    .legacy-cart-success-actions a {
        width: 100%;
    }

}


/* ==========================================================
   TEDI_CART_UI_POLISH_V1
   Visual-only cart refinement.
   ========================================================== */


/* ----------------------------------------------------------
   Cart page heading / continue shopping
   ---------------------------------------------------------- */

.cart-page-header {
    align-items: center;
    margin-bottom: 28px;
}

.cart-page-header h1 {
    margin: 0;
    font-size: 25px;
    font-weight: 500;
}

.cart-continue-link {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 18px;
    border: 1px solid #cfcfcf;
    border-radius: 7px;
    background: #fff;
    color: #444;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    transition:
        border-color .15s ease,
        background-color .15s ease,
        color .15s ease;
}

.cart-continue-link:hover {
    border-color: var(--tedi-purple);
    color: var(--tedi-purple);
    background: #fcf8fc;
}


/* ----------------------------------------------------------
   Cart line
   ---------------------------------------------------------- */

.cart-line {
    border-color: #dedede;
    border-radius: 10px;
    padding: 16px 18px;
}

.cart-line-info h2 {
    margin-bottom: 9px;
    font-size: 16px;
    font-weight: 500;
}

.cart-line-info p,
.cart-line-variant {
    font-size: 14px;
    line-height: 1.8;
}

.cart-line-price,
.cart-line-total {
    font-size: 15px;
    font-weight: 500;
}


/* ----------------------------------------------------------
   Quantity control
   ---------------------------------------------------------- */

.cart-line-controls {
    gap: 10px;
}

.cart-line-controls form {
    align-items: flex-end;
    gap: 8px;
}

.cart-line-controls label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
}

.cart-line-controls input[name="quantity"] {
    width: 72px;
    min-height: 40px;
    padding: 6px 8px;
    border: 1px solid #aeb0b3;
    border-radius: 5px;
    background: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    text-align: center;
    box-sizing: border-box;
}

.cart-line-controls
input[name="quantity"]:focus {
    border-color: var(--tedi-purple);
    outline: 2px solid rgba(178, 47, 139, .12);
    outline-offset: 1px;
}


/* ----------------------------------------------------------
   Common action button baseline
   ---------------------------------------------------------- */

.cart-line-controls button {
    min-height: 40px;
    padding: 7px 15px;
    border-radius: 5px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.5;
    cursor: pointer;
    transition:
        background-color .15s ease,
        border-color .15s ease,
        color .15s ease;
}


/* Update */

.cart-update-button {
    border: 1px solid #bfc2c5 !important;
    background: #f3f3f3 !important;
    color: #333;
}

.cart-update-button:hover {
    border-color: #999 !important;
    background: #e8e8e8 !important;
}


/* Remove */

.cart-remove-button {
    border: 1px solid #e3c8c8 !important;
    background: #f9eeee;
    color: #8f3c3c;
}

.cart-remove-button:hover {
    border-color: #cfaaaa !important;
    background: #f4dddd;
    color: #792d2d;
}


/* ----------------------------------------------------------
   Summary
   ---------------------------------------------------------- */

.cart-summary {
    margin-top: 26px;
    width: min(100%, 390px);
    padding: 20px 22px;
    border: 1px solid #d9d9d9;
    border-radius: 9px;
    background: #fff;
}

.cart-summary > div {
    min-height: 39px;
    align-items: center;
    padding: 8px 0;
    font-size: 15px;
}

.cart-summary > div + div {
    border-top: 1px solid #eeeeee;
}

.cart-summary span {
    font-weight: 400;
}

.cart-summary strong {
    font-weight: 500;
}


/* ----------------------------------------------------------
   Checkout / Continue purchase
   ---------------------------------------------------------- */

.checkout-button {
    width: 100%;
    min-height: 50px;
    margin-top: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border: 1px solid var(--tedi-purple);
    border-radius: 5px;
    background: var(--tedi-purple);
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    box-sizing: border-box;
    transition:
        opacity .15s ease,
        transform .1s ease;
}

.checkout-button:hover {
    opacity: .92;
}

.checkout-button:active {
    transform: translateY(1px);
}


/* ----------------------------------------------------------
   Keyboard focus
   ---------------------------------------------------------- */

.cart-continue-link:focus-visible,
.cart-update-button:focus-visible,
.cart-remove-button:focus-visible,
.checkout-button:focus-visible {
    outline: 2px solid var(--tedi-purple);
    outline-offset: 2px;
}


/* ----------------------------------------------------------
   Mobile
   ---------------------------------------------------------- */

@media (max-width: 760px) {

    .cart-page {
        width: min(100% - 20px, 1180px);
        margin-top: 20px;
    }

    .cart-page-header {
        margin-bottom: 18px;
    }

    .cart-page-header h1 {
        font-size: 21px;
    }

    .cart-continue-link {
        min-height: 39px;
        padding: 7px 13px;
        font-size: 13px;
    }

    .cart-line {
        padding: 12px;
        gap: 12px;
    }

    .cart-line-controls {
        padding-top: 8px;
        border-top: 1px solid #eeeeee;
    }

    .cart-line-controls form {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .cart-update-button,
    .cart-remove-button {
        min-width: 82px;
    }

    .cart-summary {
        width: 100%;
        margin-top: 18px;
        padding: 16px;
    }

    .checkout-button {
        min-height: 48px;
        font-size: 14px;
    }

}


/* ==========================================================
   TEDI_STOREFRONT_NAVIGATION_V1
   Legacy-style Products mega menu.
   ========================================================== */


.tedi-nav {
    position: relative;
}


/* Products trigger */

.tedi-products-menu {
    position: relative;
}

.tedi-products-menu > summary {
    min-height: 42px;

    display: flex;
    align-items: center;

    gap: 10px;

    list-style: none;

    cursor: pointer;
    user-select: none;

    font-family: inherit;
    font-weight: inherit;
}

.tedi-products-menu > summary::-webkit-details-marker {
    display: none;
}

.tedi-products-menu > summary::marker {
    content: "";
}


/* Chevron */

.tedi-products-chevron {
    width: 8px;
    height: 8px;

    border-left:
        1.5px solid currentColor;

    border-bottom:
        1.5px solid currentColor;

    transform:
        rotate(-45deg)
        translateY(-2px);

    transition:
        transform .15s ease;
}

.tedi-products-menu[open]
.tedi-products-chevron {
    transform:
        rotate(135deg)
        translateY(-2px);
}


/* Mega panel */

.tedi-products-mega {
    position: absolute;

    top: calc(100% + 16px);

    right: -55px;

    z-index: 550;

    width:
        min(
            880px,
            calc(100vw - 48px)
        );

    min-height: 185px;

    display: none;

    grid-template-columns:
        repeat(
            4,
            minmax(145px, 1fr)
        );

    align-content: start;

    gap:
        30px
        28px;

    padding:
        25px
        26px;

    border:
        1px solid #ededed;

    background:
        #fff;

    box-shadow:
        0 5px 17px
        rgba(0, 0, 0, .15);

    direction: rtl;
}


/*
 * Keep pointer connection between trigger
 * and the dropdown.
 */

.tedi-products-mega::before {
    content: "";

    position: absolute;

    top: -20px;
    right: 0;

    width: 100%;
    height: 22px;
}


/* Desktop Legacy-like hover */

.tedi-products-menu:hover
.tedi-products-mega,

.tedi-products-menu:focus-within
.tedi-products-mega,

.tedi-products-menu[open]
.tedi-products-mega {
    display: grid;
}


/* Category entries */

.tedi-products-mega > a {
    min-height: 55px;

    display: flex;

    align-items: flex-start;
    justify-content: flex-start;

    padding:
        3px
        10px
        17px;

    border-bottom:
        1px solid #e7e7e7;

    color:
        #111;

    font-family:
        inherit;

    font-size:
        17px;

    font-weight:
        500;

    line-height:
        1.8;

    text-align:
        right;

    box-sizing:
        border-box;
}

.tedi-products-mega > a:hover {
    color:
        var(--tedi-purple);

    border-bottom-color:
        var(--tedi-purple);
}


/* ----------------------------------------------------------
   Continue-shopping button inside success modal
   ---------------------------------------------------------- */

.legacy-cart-success-actions
button.legacy-cart-continue {
    appearance: none;

    min-height: 48px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding:
        9px
        18px;

    border:
        1px solid #bbb;

    border-radius:
        4px;

    background:
        #f5f5f5;

    color:
        #333;

    font-family:
        inherit;

    font-size:
        15px;

    font-weight:
        400;

    line-height:
        1.5;

    cursor:
        pointer;
}

.legacy-cart-success-actions
button.legacy-cart-continue:hover {
    border-color:
        #999;

    background:
        #ededed;
}


/* Mobile */

@media (max-width: 900px) {

    .tedi-products-menu {
        position: static;
    }

    .tedi-products-mega {
        right: 12px;
        left: 12px;

        width: auto;

        min-height: 0;

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap:
            14px
            18px;

        padding:
            19px;
    }

    .tedi-products-mega > a {
        min-height: 46px;

        padding:
            3px
            7px
            11px;

        font-size:
            15px;
    }

}


@media (max-width: 520px) {

    .tedi-products-mega {
        grid-template-columns:
            1fr;
    }

    .legacy-cart-success-actions
    button.legacy-cart-continue {
        width: 100%;
    }

}


/* ==========================================================
   TEDI_LEGACY_PRODUCT_DESCRIPTION_V1
   Preserve readable Legacy feature/description line layout.
   ========================================================== */

.product-feature-text {
    display: inline-block;

    max-width: 100%;

    font-family: inherit;

    font-size: inherit;
    font-weight: 400;

    line-height: 2.05;

    text-align: right;

    white-space: normal;

    overflow-wrap: break-word;
}


/*
 * Legacy descriptions can contain many feature lines.
 * Keep the row aligned to the first line instead of
 * vertically centering a large text block.
 */

.product-meta-row:has(.product-feature-text) {
    align-items: flex-start;
}


/*
 * Browsers without :has() still receive the corrected
 * line breaks; this rule is only an alignment enhancement.
 */

@media (max-width: 900px) {

    .product-feature-text {
        line-height: 2;
    }

}

/* =========================================================
   TEDI_NEWS_V1
   Public News archive + detail.
   Header/sidebar dimensions intentionally untouched.
   ========================================================= */

.news-shell {
    width: min(1180px, calc(100% - 32px));
    margin: 32px auto 56px;
}

.news-page-header {
    margin-bottom: 24px;
}

.news-page-header h1 {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 700;
}

.news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.news-card {
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.09);
    border-radius: 12px;
    background: #fff;
}

.news-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #f4f4f4;
}

.news-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-card__body {
    padding: 16px;
}

.news-card__date,
.news-detail__date {
    margin-bottom: 9px;
    font-size: 0.82rem;
    opacity: 0.66;
}

.news-card h2 {
    margin: 0;
    font-size: 1rem;
    line-height: 1.8;
}

.news-card h2 a {
    color: inherit;
    text-decoration: none;
}

.news-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-top: 34px;
}

.news-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
}

.news-empty {
    grid-column: 1 / -1;
    padding: 44px 20px;
    text-align: center;
}

.news-detail {
    width: min(920px, calc(100% - 32px));
    margin: 34px auto 60px;
}

.news-detail__header {
    margin-bottom: 26px;
}

.news-detail__header h1 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    line-height: 1.75;
}

.news-detail__summary {
    margin-top: 16px;
    font-size: 1rem;
    line-height: 2;
    opacity: 0.8;
}

.news-detail__hero {
    margin: 0 0 28px;
}

.news-detail__hero img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
}

.news-detail__body {
    font-size: 1rem;
    line-height: 2.15;
    overflow-wrap: anywhere;
}

.news-detail__body img {
    max-width: 100%;
    height: auto !important;
}

.news-detail__body table {
    max-width: 100%;
}

.news-detail__gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 32px;
}

.news-detail__gallery figure {
    margin: 0;
}

.news-detail__gallery img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

.news-detail__gallery figcaption {
    margin-top: 7px;
    font-size: 0.82rem;
    opacity: 0.7;
}

.news-detail__meta {
    margin-top: 32px;
    padding-top: 18px;
    border-top: 1px solid rgba(0, 0, 0, 0.09);
    font-size: 0.87rem;
    line-height: 2;
    opacity: 0.72;
}

@media (max-width: 900px) {

    .news-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {

    .news-shell,
    .news-detail {
        width: min(100% - 24px, 920px);
        margin-top: 22px;
    }

    .news-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .news-detail__gallery {
        grid-template-columns: 1fr;
    }

    .news-pagination {
        gap: 10px;
    }
}


/* =========================================================
   TEDI_STOREFRONT_LAYOUT_POLISH_V1

   - Narrow centered homepage category cards
   - Proper centered News archive cards
   - Responsive without changing header dimensions
   ========================================================= */


/* ---------------------------------------------------------
   HOME CATEGORY CARDS
   --------------------------------------------------------- */

.category-hero {
    padding:
        44px
        20px
        38px;
}

.category-grid {
    width: min(
        100%,
        1040px
    );

    margin:
        0
        auto;

    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(
                190px,
                240px
            )
        );

    justify-content: center;

    gap:
        18px
        24px;
}

.category-box {
    width: 100%;

    min-height: 72px;

    padding:
        14px
        18px;

    font-size: 22px;

    border-radius: 7px;
}

.category-icon {
    font-size: 22px;
}


/* ---------------------------------------------------------
   NEWS ARCHIVE
   --------------------------------------------------------- */

.news-shell {
    width: min(
        1080px,
        calc(100% - 32px)
    );

    margin:
        34px
        auto
        60px;
}

.news-page-header {
    margin-bottom: 26px;
}

.news-page-header h1 {
    margin: 0;

    padding-bottom: 13px;

    border-bottom:
        2px solid
        var(--tedi-purple);

    font-size: 24px;

    line-height: 1.6;
}

.news-grid {
    direction: rtl;

    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 24px;
}

.news-card {
    min-width: 0;

    overflow: hidden;

    border:
        1px solid
        #e7e7e7;

    border-radius: 11px;

    background: #fff;

    box-shadow:
        0 2px 8px
        rgba(0, 0, 0, .06);

    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.news-card:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 7px 20px
        rgba(0, 0, 0, .10);
}

.news-card__image {
    display: block;

    width: 100%;

    aspect-ratio:
        16 / 10;

    overflow: hidden;

    background: #f5f5f5;
}

.news-card__image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.news-card__body {
    padding:
        14px
        16px
        17px;
}

.news-card__date {
    margin-bottom: 7px;

    color: #888;

    font-size: 12px;
}

.news-card h2 {
    margin: 0;

    font-size: 17px;

    font-weight: 600;

    line-height: 1.9;
}

.news-card h2 a {
    display: block;

    color: #333;
}


/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 1100px) {

    .category-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(
                    190px,
                    235px
                )
            );
    }

}


@media (max-width: 820px) {

    .category-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(
                    150px,
                    230px
                )
            );

        gap: 14px;
    }

    .news-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 18px;
    }

}


@media (max-width: 560px) {

    .category-hero {
        padding:
            24px
            12px;
    }

    .category-grid {
        width: 100%;

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 10px;
    }

    .category-box {
        min-height: 58px;

        padding:
            10px
            8px;

        gap: 7px;

        font-size: 16px;
    }

    .category-icon {
        font-size: 16px;
    }

    .news-shell {
        width:
            calc(100% - 24px);

        margin-top: 22px;
    }

    .news-grid {
        grid-template-columns:
            1fr;

        gap: 16px;
    }

    .news-card h2 {
        font-size: 16px;
    }

}


/* =========================================================
   TEDI_LEGACY_CATEGORY_GEOMETRY_V2

   Matches the Legacy homepage structure:
   desktop = 4 equal columns
   mobile  = 2 equal columns

   Legacy cateBx:
   - full column width
   - right aligned
   - 15px / 10% padding
   - 5px radius
   - subtle shadow
   ========================================================= */


.category-hero {
    width: 100%;

    padding:
        24px
        12px
        18px;
}


.category-grid {
    width: 100%;

    max-width: none;

    margin: 0;

    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    column-gap: 24px;

    row-gap: 0;
}


.category-box {
    width: 100%;

    min-width: 0;

    min-height: 0;

    height: auto;

    box-sizing: border-box;

    margin-bottom: 15px;

    padding:
        15px
        10%;

    background: #a63489;

    border-radius: 5px;

    box-shadow:
        0 4px 8px 0
        rgb(0 0 0 / 20%);

    color: #fff;

    font-size: 22px;

    font-weight: 700;

    line-height: 1.45;

    text-align: right;

    justify-content: flex-start;

    align-items: center;

    gap: 7px;
}


.category-box:hover {
    background: #a63489;

    transform: none;

    box-shadow:
        0 10px 20px 0
        rgb(0 0 0 / 35%);
}


.category-icon {
    flex: 0 0 auto;

    font-size: 17px;

    line-height: 1;
}


/*
   Legacy Bootstrap used:
   col-sm-6 / col-xs-6
   so mobile remains two columns.
*/
@media (max-width: 767px) {

    .category-hero {
        padding:
            18px
            10px
            12px;
    }

    .category-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        column-gap: 12px;
    }

    .category-box {
        margin-bottom: 12px;

        padding:
            12px
            9%;

        font-size: 17px;
    }

    .category-icon {
        font-size: 15px;
    }

}


/* ==========================================================
   TEDI_ASYNC_CART_UX_V2
   Non-blocking add-to-cart feedback.
   ========================================================== */

.add-cart-button:disabled {
    opacity: .68;
    cursor: wait;
}

.tedi-cart-toast {
    position: fixed;
    top: 88px;
    left: 50%;
    z-index: 9200;

    width: max-content;
    max-width: calc(100vw - 32px);

    padding: 12px 20px;

    border: 1px solid
        rgba(0, 0, 0, .10);
    border-right: 4px solid
        var(--tedi-purple);
    border-radius: 8px;

    background: #fff;
    color: #262626;

    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, .16);

    font-family: inherit;
    font-size: 14px;
    line-height: 1.7;
    text-align: center;

    opacity: 0;
    transform:
        translate(-50%, -14px);

    pointer-events: none;

    transition:
        opacity .18s ease,
        transform .18s ease;
}

.tedi-cart-toast.is-visible {
    opacity: 1;
    transform:
        translate(-50%, 0);
}

.tedi-cart-toast.is-error {
    border-right-color: #b42318;
}

.tedi-cart-action.is-cart-updated {
    animation:
        tedi-cart-added-pulse
        .48s ease;
}

@keyframes tedi-cart-added-pulse {
    0% {
        transform: scale(1);
    }

    45% {
        transform: scale(1.18);
    }

    100% {
        transform: scale(1);
    }
}

@media (max-width: 640px) {
    .tedi-cart-toast {
        top: 74px;
        width: calc(100vw - 28px);
        max-width: 460px;
        padding:
            11px
            14px;
    }
}

/* ==========================================================
   TEDI_ASYNC_CART_TOAST_GREEN_V1_1
   Larger positive add-to-cart feedback.
   ========================================================== */

.tedi-cart-toast {
    min-width: 320px;

    padding:
        16px
        26px;

    border:
        1px solid
        #86efac;

    border-right:
        5px solid
        #16a34a;

    border-radius:
        10px;

    background:
        #f0fdf4;

    color:
        #166534;

    box-shadow:
        0 10px 30px
        rgba(22, 101, 52, .20);

    font-size:
        17px;

    font-weight:
        700;

    line-height:
        1.8;
}

.tedi-cart-toast.is-error {
    border-color:
        #fda29b;

    border-right-color:
        #b42318;

    background:
        #fef3f2;

    color:
        #7a271a;

    box-shadow:
        0 10px 30px
        rgba(180, 35, 24, .16);
}

@media (max-width: 640px) {

    .tedi-cart-toast {
        top:
            74px;

        width:
            calc(100vw - 24px);

        min-width:
            0;

        max-width:
            520px;

        padding:
            15px
            18px;

        font-size:
            16px;
    }

}


/* ==========================================================
   TEDI_QUICK_ADD_V1
   Lazy product-card add-to-cart chooser.
   ========================================================== */

.product-quick-add-button {
    width: 100%;
    min-height: 43px;
    margin-top: 16px;

    border:
        1px solid
        var(--tedi-purple);

    border-radius: 7px;

    background: #fff;

    color:
        var(--tedi-purple);

    font-family: inherit;
    font-size: 14px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background .15s ease,
        color .15s ease,
        opacity .15s ease;
}

.product-quick-add-button:hover {
    background:
        var(--tedi-purple);

    color: #fff;
}

.product-quick-add-button:disabled {
    opacity: .60;
    cursor: wait;
}

body.tedi-quick-add-open {
    overflow: hidden;
}

.tedi-quick-add-sheet {
    position: fixed;
    inset: 0;
    z-index: 9100;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;
}

.tedi-quick-add-sheet[hidden] {
    display: none;
}

.tedi-quick-add-backdrop {
    position: absolute;
    inset: 0;

    border: 0;

    background:
        rgba(0, 0, 0, .46);

    cursor: default;
}

.tedi-quick-add-panel {
    position: relative;
    z-index: 1;

    direction: rtl;

    width:
        min(
            520px,
            calc(100vw - 32px)
        );

    max-height:
        min(
            680px,
            calc(100vh - 40px)
        );

    overflow-y: auto;

    padding: 20px;

    border-radius: 14px;

    background: #fff;

    box-shadow:
        0 18px 50px
        rgba(0, 0, 0, .24);
}

.tedi-quick-add-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 16px;

    margin-bottom: 18px;
}

.tedi-quick-add-title {
    margin: 0;

    color: #222;

    font-size: 18px;
    font-weight: 700;
    line-height: 1.7;
}

.tedi-quick-add-close {
    flex: 0 0 auto;

    width: 38px;
    height: 38px;

    border:
        1px solid
        #ddd;

    border-radius: 50%;

    background: #fafafa;

    color: #555;

    font-family: inherit;
    font-size: 24px;
    line-height: 1;

    cursor: pointer;
}

.tedi-quick-add-group {
    margin-top: 17px;
}

.tedi-quick-add-group[hidden] {
    display: none;
}

.tedi-quick-add-label {
    display: block;

    margin-bottom: 9px;

    color: #555;

    font-size: 13px;
    font-weight: 700;
}

.tedi-quick-add-options {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}

.tedi-quick-add-option {
    min-width: 46px;
    min-height: 39px;

    padding:
        7px
        13px;

    border:
        1px solid
        #d7d7d7;

    border-radius: 7px;

    background: #fff;

    color: #333;

    font-family: inherit;
    font-size: 13px;

    cursor: pointer;
}

.tedi-quick-add-option.is-selected {
    border-color:
        var(--tedi-purple);

    background:
        var(--tedi-purple);

    color: #fff;
}

.tedi-quick-add-price {
    margin-top: 20px;

    padding-top: 15px;

    border-top:
        1px solid
        #eee;

    color: #222;

    font-size: 16px;
    font-weight: 700;

    text-align: center;
}

.tedi-quick-add-confirm {
    width: 100%;
    min-height: 50px;

    margin-top: 18px;

    border: 0;

    border-radius: 8px;

    background:
        var(--tedi-purple);

    color: #fff;

    font-family: inherit;
    font-size: 16px;
    font-weight: 700;

    cursor: pointer;
}

.tedi-quick-add-confirm:disabled {
    opacity: .62;
    cursor: wait;
}

@media (max-width: 760px) {

    .product-quick-add-button {
        min-height: 40px;

        margin-top: 12px;

        font-size: 13px;
    }

}

@media (max-width: 640px) {

    .tedi-quick-add-sheet {
        align-items: flex-end;
        padding: 0;
    }

    .tedi-quick-add-panel {
        width: 100%;

        max-height:
            min(
                78vh,
                680px
            );

        padding:
            18px
            16px
            calc(
                18px
                + env(
                    safe-area-inset-bottom
                )
            );

        border-radius:
            18px
            18px
            0
            0;
    }

    .tedi-quick-add-title {
        font-size: 16px;
    }

    .tedi-quick-add-option {
        min-height: 42px;
        font-size: 14px;
    }

}


/* ==========================================================
   TEDI_PRODUCT_CARD_POLISH_V1
   Larger catalog photography + real Variant color swatches.
   ========================================================== */

.product-image {
    object-position:
        center center;

    transform:
        scale(1.12);

    transform-origin:
        center center;

    transition:
        transform .18s ease;
}

@media (hover: hover) {

    .product-image-wrap:hover
    .product-image {
        transform:
            scale(1.15);
    }

}

.variant-colors {
    min-height:
        20px;

    align-items:
        center;
}

.color-dot {
    width:
        18px;

    height:
        18px;

    flex:
        0 0 18px;

    border:
        1px solid
        rgba(0, 0, 0, .28);

    background:
        var(
            --product-swatch,
            #f2f2f2
        );

    box-shadow:
        inset
        0
        0
        0
        1px
        rgba(255, 255, 255, .60);
}

.color-dot.is-unknown {
    background:
        repeating-linear-gradient(
            135deg,
            #f5f5f5 0,
            #f5f5f5 4px,
            #d8d8d8 4px,
            #d8d8d8 8px
        );
}

@media (max-width: 760px) {

    .product-image {
        transform:
            scale(1.16);
    }

    .variant-colors {
        margin-top:
            13px;

        gap:
            6px;
    }

    .color-dot {
        width:
            19px;

        height:
            19px;

        flex-basis:
            19px;
    }

}


/* ==========================================================
   TEDI_INFINITE_PRODUCT_FEED_V1
   ========================================================== */

.product-feed-controls {
    min-height: 74px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 0 4px;
}

.product-feed-sentinel {
    width: 100%;
    height: 1px;
}

.product-feed-status {
    min-height: 24px;
    color: #777;
    font-size: 14px;
    text-align: center;
}

.product-feed-more {
    appearance: none;
    min-height: 44px;
    padding: 0 22px;
    border: 0;
    border-radius: 8px;
    background: var(--tedi-purple);
    color: #fff;
    font-family: inherit;
    font-size: 15px;
    cursor: pointer;
}

.product-feed-more[hidden] {
    display: none;
}

.product-feed-more:disabled {
    opacity: .55;
    cursor: wait;
}

.product-feed-unavailable {
    margin: 16px 0 4px;
    padding: 9px 10px;
    border-radius: 8px;
    background: #f3f3f3;
    color: #a32626;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
}

.product-card.is-unavailable .product-image {
    opacity: .9;
}

@media (max-width: 760px) {

    .product-feed-controls {
        min-height: 64px;
        padding-top: 12px;
    }

    .product-feed-status {
        font-size: 13px;
    }

    .product-feed-unavailable {
        margin-top: 12px;
        font-size: 13px;
    }
}


/* ==========================================================
   TEDI_FLOATING_CART_V1

   Reuses existing cart badge + pulse behavior.
   No additional API and no additional JavaScript.
   ========================================================== */

.tedi-floating-cart.tedi-cart-action {
    position: fixed;
    left: 22px;
    bottom: 22px;
    z-index: 90;

    width: auto;
    min-width: 142px;
    height: 56px;

    padding: 0 15px 0 12px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    border:
        1px solid
        rgba(0, 0, 0, .08);

    border-radius: 999px;

    background: #fff;
    color: #333;

    box-shadow:
        0 7px 24px
        rgba(0, 0, 0, .16);

    direction: rtl;
    white-space: nowrap;

    transition:
        box-shadow .18s ease,
        background-color .18s ease;
}


.tedi-floating-cart.tedi-cart-action:hover {
    background: #fafafa;

    box-shadow:
        0 9px 28px
        rgba(0, 0, 0, .20);
}


.tedi-floating-cart.tedi-cart-action svg {
    flex: 0 0 auto;

    width: 27px;
    height: 27px;

    fill: none;
    stroke: currentColor;
    stroke-width: 2.15;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.tedi-floating-cart-label {
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
}


.tedi-floating-cart.tedi-cart-action
.tedi-cart-badge {
    position: static;

    flex: 0 0 auto;

    min-width: 25px;
    height: 25px;

    padding: 0 6px;

    display: grid;
    place-items: center;

    border-radius: 20px;

    background:
        var(--tedi-purple);

    color: #fff;

    font-size: 11px;
    line-height: 1;
}


@media (max-width: 760px) {

    .tedi-floating-cart.tedi-cart-action {
        left: 14px;
        bottom: 16px;

        width: 54px;
        min-width: 54px;
        height: 54px;

        padding: 0;
        gap: 0;

        border-radius: 50%;
    }


    .tedi-floating-cart-label {
        display: none;
    }


    .tedi-floating-cart.tedi-cart-action svg {
        width: 27px;
        height: 27px;
    }


    .tedi-floating-cart.tedi-cart-action
    .tedi-cart-badge {
        position: absolute;

        top: -5px;
        right: -5px;

        min-width: 23px;
        height: 23px;

        padding: 0 5px;

        font-size: 10px;
    }

}


/* ==========================================================
   TEDI_MOBILE_BOTTOM_NAV_V1
   Mobile-only fixed navigation.
   ========================================================== */

.tedi-mobile-bottom-nav {
    display: none;
}


@media (max-width: 760px) {

    body {
        padding-bottom: 78px;
    }


    .tedi-mobile-bottom-nav {
        position: fixed;

        right: 0;
        bottom: 0;
        left: 0;

        z-index: 110;

        height:
            calc(
                68px
                + env(safe-area-inset-bottom)
            );

        padding:
            6px
            6px
            env(safe-area-inset-bottom);

        display: grid;

        grid-template-columns:
            repeat(
                4,
                minmax(0, 1fr)
            );

        align-items: stretch;

        background:
            rgba(
                255,
                255,
                255,
                .98
            );

        border-top:
            1px solid #e6e6e6;

        box-shadow:
            0 -4px 18px
            rgba(0, 0, 0, .08);

        direction: rtl;
    }


    .tedi-mobile-nav-item {
        position: relative;

        min-width: 0;

        padding:
            4px
            2px;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 3px;

        border-radius: 9px;

        color: #777;

        text-align: center;
        line-height: 1.1;
    }


    .tedi-mobile-nav-item svg {
        width: 23px;
        height: 23px;

        display: block;

        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }


    .tedi-mobile-nav-item > span {
        max-width: 100%;

        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;

        font-size: 10px;
        font-weight: 600;
    }


    .tedi-mobile-nav-item > small {
        position: absolute;

        top: 1px;
        left: 50%;

        transform:
            translateX(-50%);

        padding:
            1px
            4px;

        border-radius: 8px;

        background: #f1f1f1;
        color: #999;

        font-size: 7px;
        line-height: 1.2;

        white-space: nowrap;
    }


    .tedi-mobile-nav-item.is-active {
        color:
            var(--tedi-purple);

        background:
            rgba(
                113,
                77,
                145,
                .08
            );
    }


    .tedi-mobile-nav-item.is-disabled {
        cursor: default;

        opacity: .52;

        user-select: none;
    }


    /*
     * Lift Floating Cart above the fixed
     * Mobile Bottom Navigation.
     */
    .tedi-floating-cart.tedi-cart-action {
        bottom:
            calc(
                82px
                + env(safe-area-inset-bottom)
            );

        z-index: 105;
    }

}


/* ==========================================================
   TEDI_PRODUCT_LIST_INFINITE_V1
   Category / filtered list progressive infinite scroll.
   Server-side pagination remains the source of truth.
   ========================================================== */

.product-list-feed-sentinel {
    width: 100%;
    min-height: 2px;
}


.product-list-feed-status {
    min-height: 24px;

    margin:
        18px
        auto
        8px;

    padding:
        0
        16px;

    text-align: center;

    color: #777;

    font-size: 13px;
}


.product-list-feed-status:empty {
    display: none;
}


/* ==========================================================
   TEDI_CUSTOMER_DASHBOARD_V1
   ========================================================== */

.account-dashboard-shell {
    max-width: 1080px;
}

.customer-dashboard-head,
.customer-page-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.customer-dashboard-head h1,
.customer-page-heading h1 {
    margin: 5px 0;
    font-size: 28px;
}

.customer-dashboard-head p,
.customer-page-heading p {
    margin: 0;
    color: #756c78;
}

.customer-dashboard-eyebrow {
    color: #7d2f86;
    font-size: 13px;
    font-weight: 700;
}

.customer-dashboard-stats {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.customer-dashboard-stat {
    min-height: 112px;
    padding: 16px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border: 1px solid #eae4ec;
    border-radius: 16px;

    background: #fff;
    color: #302a31;

    text-decoration: none;
}

.customer-dashboard-stat > span {
    margin-bottom: 7px;

    color: #756c78;
    font-size: 12px;
}

.customer-dashboard-stat > strong {
    font-size: 21px;
}

.customer-dashboard-stat > small {
    margin-top: 5px;

    color: #887f8a;
    font-size: 11px;
}

.customer-dashboard-stat.is-link:hover {
    border-color: #cdb9d1;
}

.customer-dashboard-date {
    font-size: 17px !important;
}

.customer-dashboard-actions {
    margin-top: 16px;

    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.customer-dashboard-action {
    padding: 17px;

    display: flex;
    flex-direction: column;
    gap: 5px;

    border-radius: 15px;

    background: #f8f3f9;

    color: #302a31;
    text-decoration: none;
}

.customer-dashboard-action strong {
    color: #7d2f86;
}

.customer-dashboard-action span {
    color: #746c77;
    font-size: 12px;
    line-height: 1.8;
}

.customer-recent-orders,
.customer-order-items-section,
.customer-delivery-card {
    margin-top: 27px;
}

.customer-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;

    margin-bottom: 13px;
}

.customer-section-heading h2,
.customer-delivery-card h2 {
    margin: 0 0 5px;
    font-size: 20px;
}

.customer-section-heading p {
    margin: 0;
    color: #7b737d;
    font-size: 12px;
}

.customer-section-heading a,
.customer-back-link {
    color: #7d2f86;
    text-decoration: none;
    font-weight: 700;
}

.customer-order-list {
    display: grid;
    gap: 12px;
}

.customer-order-card {
    padding: 16px;

    display: grid;
    grid-template-columns:
        minmax(0, 1fr) auto;
    gap: 12px 18px;

    border: 1px solid #e9e3eb;
    border-radius: 15px;

    background: #fff;
    color: #302a31;

    text-decoration: none;
}

.customer-order-card:hover {
    border-color: #cab6ce;
}

.customer-order-card-main {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.customer-order-card-main span {
    color: #817983;
    font-size: 12px;
}

.customer-order-card-meta {
    display: flex;
    align-items: center;
    gap: 12px;

    white-space: nowrap;
}

.customer-order-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 29px;
    padding: 4px 10px;

    border-radius: 999px;

    font-size: 11px;
    font-weight: 700;
}

.customer-order-status.is-success {
    background: #e9f8ee;
    color: #24723e;
}

.customer-order-status.is-info {
    background: #e9f2fb;
    color: #2e648e;
}

.customer-order-status.is-warning {
    background: #fff3d8;
    color: #8a650d;
}

.customer-order-status.is-danger {
    background: #fde8e8;
    color: #a02a2a;
}

.customer-order-status.is-neutral {
    background: #f0eef1;
    color: #625c64;
}

.customer-order-status-large {
    min-height: 36px;
    padding: 6px 14px;
}

.customer-order-tracking,
.customer-order-card-bottom {
    grid-column: 1 / -1;

    padding-top: 11px;

    border-top: 1px solid #f0ebf1;

    color: #6d6570;
    font-size: 12px;
}

.customer-order-card-bottom {
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

.customer-order-open {
    color: #7d2f86;
}

.customer-orders-pagination {
    margin-top: 22px;

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.customer-orders-pagination a {
    color: #7d2f86;
    font-weight: 700;
    text-decoration: none;
}

.customer-order-summary-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.customer-order-summary-grid > div {
    padding: 15px;

    border: 1px solid #ebe5ed;
    border-radius: 14px;

    background: #fff;
}

.customer-order-summary-grid span {
    display: block;

    margin-bottom: 7px;

    color: #756c78;
    font-size: 12px;
}

.customer-order-summary-grid strong {
    font-size: 14px;
}

.customer-order-summary-grid .is-total {
    background: #f8f3f9;
}

.customer-order-summary-grid .is-total strong {
    color: #7d2f86;
}

.customer-tracking-panel {
    margin-top: 15px;
    padding: 16px;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;

    border: 1px dashed #d9cedc;
    border-radius: 14px;

    background: #fbfafb;
}

.customer-tracking-panel.has-code {
    border-style: solid;
    border-color: #b8ddc2;
    background: #f2fbf5;
}

.customer-tracking-panel span {
    display: block;
    margin-bottom: 5px;

    color: #746c77;
    font-size: 12px;
}

.customer-order-items {
    display: grid;
    gap: 10px;
}

.customer-order-item {
    padding: 15px;

    display: grid;
    grid-template-columns:
        42px
        minmax(0, 1fr)
        auto
        minmax(140px, auto);

    align-items: center;
    gap: 14px;

    border: 1px solid #eae4ec;
    border-radius: 14px;

    background: #fff;
}

.customer-order-item-index {
    width: 40px;
    height: 40px;

    display: grid;
    place-items: center;

    border-radius: 11px;

    background: #f3ebf5;
    color: #7d2f86;

    font-weight: 700;
}

.customer-order-item-info {
    min-width: 0;
}

.customer-order-item-info > strong {
    display: block;
    margin-bottom: 7px;
}

.customer-order-item-options {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 14px;

    color: #777078;
    font-size: 11px;
}

.customer-order-item-quantity,
.customer-order-item-price {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.customer-order-item-quantity span,
.customer-order-item-price span {
    color: #7b737d;
    font-size: 11px;
}

.customer-order-item-price small {
    color: #817983;
    font-size: 10px;
}

.customer-delivery-card {
    padding: 18px;

    border: 1px solid #e9e3eb;
    border-radius: 15px;

    background: #faf8fb;
}

.customer-delivery-card p {
    margin: 6px 0;

    color: #645d66;
    line-height: 1.8;
}

@media (max-width: 760px) {

    .customer-dashboard-stats {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .customer-dashboard-actions {
        grid-template-columns: 1fr;
    }

    .customer-order-card {
        grid-template-columns: 1fr;
    }

    .customer-order-card-meta {
        justify-content: space-between;
    }

    .customer-order-summary-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .customer-order-item {
        grid-template-columns:
            42px minmax(0, 1fr);
        align-items: start;
    }

    .customer-order-item-quantity,
    .customer-order-item-price {
        grid-column: 2;

        flex-direction: row;
        align-items: baseline;
        gap: 7px;
    }

    .customer-tracking-panel {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 480px) {

    .customer-dashboard-head,
    .customer-page-heading {
        flex-direction: column;
    }

    .customer-dashboard-stat {
        min-height: 100px;
        padding: 13px;
    }

    .customer-dashboard-stat > strong {
        font-size: 18px;
    }

    .customer-order-card-bottom {
        flex-direction: column;
    }
}


/* ==========================================================
   TEDI_STOREFRONT_COMPACT_POLISH_V1

   - More compact desktop header
   - Mobile header scrolls normally (not sticky)
   - Mobile bottom navigation remains fixed
   - Home product feed starts closer to categories
   - Product-card geometry intentionally untouched
   ========================================================== */


/*
 * Home:
 * generic "محصولات" heading has been removed,
 * therefore reduce the old section-heading whitespace.
 */
.home-product-feed.products-section {
    padding-top: 16px;
}


/*
 * Contextual product-list heading.
 */
.catalog-heading h1 {
    margin:
        0;
}


/*
 * Full desktop header.
 */
@media (min-width: 1001px) {

    .tedi-header-inner {
        min-height: 82px;

        padding:
            5px
            24px;

        grid-template-columns:
            minmax(105px, 140px)
            1fr
            minmax(100px, 145px)
            auto;

        gap: 20px;
    }


    .tedi-logo-image {
        width: 108px;
        max-height: 72px;
    }


    .tedi-nav {
        gap: 24px;
        font-size: 15px;
    }


    .tedi-buying {
        font-size: 13px;
    }


    .tedi-buying strong {
        font-size: 15px;
    }


    .tedi-actions {
        gap: 10px;
    }


    .tedi-action {
        width: 42px;
        height: 42px;
    }

}


/*
 * Tablet / narrow desktop.
 * Existing layout hides the buying indicator here,
 * therefore retain the three-column grid.
 */
@media (
    min-width: 761px
)
and (
    max-width: 1000px
) {

    .tedi-header-inner {
        min-height: 76px;

        padding:
            5px
            18px;

        grid-template-columns:
            100px
            1fr
            auto;

        gap: 14px;
    }


    .tedi-logo-image {
        width: 94px;
        max-height: 66px;
    }


    .tedi-nav {
        gap: 18px;
        font-size: 14px;
    }


    .tedi-actions {
        gap: 8px;
    }


    .tedi-action {
        width: 40px;
        height: 40px;
    }

}


/*
 * Mobile:
 * header must NOT remain pinned while scrolling.
 * Bottom navigation stays fixed independently.
 */
@media (max-width: 760px) {

    .tedi-header {
        position: static;
        top: auto;
    }


    .tedi-header-inner {
        min-height: 60px;

        padding:
            5px
            10px;
    }


    .tedi-logo-image {
        width: 68px;
        max-height: 50px;
    }


    .tedi-action {
        width: 37px;
        height: 37px;
    }


    .home-product-feed.products-section {
        padding-top: 10px;
    }

}


/* ==========================================================
   TEDI_CATEGORY_COMPACT_SORT_V1

   Legacy-inspired category/list toolbar:
   - newest
   - price low to high
   - price high to low

   The old large search/category/stock form is removed
   from the customer-facing product list.
   ========================================================== */

.catalog-page {
    padding-top: 24px;
}


.catalog-heading {
    margin-bottom: 8px;
}


.catalog-heading h1 {
    padding-bottom: 8px;
}


.catalog-sort-bar {
    min-height: 42px;

    margin:
        0
        0
        14px;

    padding:
        5px
        0
        10px;

    display: flex;
    align-items: center;
    justify-content: flex-start;

    gap: 8px;

    border-bottom:
        1px solid
        #ececec;

    overflow-x: auto;

    scrollbar-width: none;
}


.catalog-sort-bar::-webkit-scrollbar {
    display: none;
}


.catalog-sort-link {
    flex: 0 0 auto;

    min-height: 32px;

    padding:
        6px
        14px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    background:
        #f0f0f0;

    color:
        #666;

    font-size: 12px;
    font-weight: 600;

    line-height: 1.2;

    white-space: nowrap;

    transition:
        background-color .15s ease,
        color .15s ease;
}


.catalog-sort-link:hover {
    background:
        #e8e8e8;

    color:
        #333;
}


.catalog-sort-link.is-active {
    background:
        var(--tedi-purple);

    color:
        #fff;
}


@media (max-width: 760px) {

    .catalog-page {
        padding-top:
            14px;
    }


    .catalog-heading {
        margin-bottom:
            5px;
    }


    .catalog-heading h1 {
        padding-bottom:
            6px;

        font-size:
            19px;
    }


    .catalog-sort-bar {
        min-height:
            38px;

        margin-bottom:
            10px;

        padding:
            3px
            0
            8px;

        gap:
            5px;
    }


    .catalog-sort-link {
        min-height:
            30px;

        padding:
            5px
            10px;

        font-size:
            11px;
    }

}


/* ==========================================================
   TEDI_MOBILE_CHAT_NAV_V1
   Replaces the former Order Tracking bottom-nav slot.
   ========================================================== */

@media (max-width: 760px) {

    button.tedi-mobile-nav-item {
        appearance: none;
        -webkit-appearance: none;

        width: 100%;

        border: 0;

        background: transparent;

        font: inherit;

        cursor: pointer;
    }


    button.tedi-mobile-nav-item:not(:disabled):hover,
    button.tedi-mobile-nav-item:not(:disabled):active {
        color:
            var(--tedi-purple);

        background:
            rgba(
                113,
                77,
                145,
                .08
            );
    }


    button.tedi-mobile-nav-item:disabled {
        cursor: default;
    }


    .tedi-mobile-nav-item.is-chat-open {
        color:
            var(--tedi-purple);

        background:
            rgba(
                113,
                77,
                145,
                .08
            );
    }
}


/* ==========================================================
   TEDI_STOREFRONT_UX_V2A
   ========================================================== */

.tedi-search-menu {
    position: relative;
    direction: rtl;
}

.tedi-search-menu > summary {
    list-style: none;
    cursor: pointer;
}

.tedi-search-menu > summary::-webkit-details-marker {
    display: none;
}

.tedi-search-popover {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 9600;

    width: min(390px, calc(100vw - 24px));

    display: flex;
    gap: 7px;

    padding: 10px;

    border: 1px solid #dedede;
    border-radius: 10px;

    background: #fff;

    box-shadow:
        0 10px 35px
        rgba(0, 0, 0, .13);
}

.tedi-search-popover input {
    min-width: 0;
    flex: 1;

    min-height: 42px;

    padding: 7px 11px;

    border: 1px solid #d7d7d7;
    border-radius: 7px;

    font: inherit;
}

.tedi-search-popover button {
    min-height: 42px;

    padding: 0 15px;

    border: 0;
    border-radius: 7px;

    background: var(--tedi-purple);
    color: #fff;

    font: inherit;
    font-weight: 700;

    cursor: pointer;
}


/* Product cards after color swatch removal */

.product-card-body {
    padding:
        12px
        12px
        14px;
}

.product-card h3 {
    margin-bottom: 8px;
}

.product-quick-add-button {
    margin-top: 10px;
}


/* Mobile sale navigation */

.tedi-mobile-nav-sale-symbol {
    display: block;

    font-size: 23px;
    line-height: 1;
    font-weight: 700;
}


/* Mobile category buttons */

@media (max-width: 760px) {

    .category-hero {
        padding:
            12px
            8px;
    }

    .category-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );

        gap: 6px;
    }

    .category-box {
        min-height: 46px;

        padding:
            6px
            4px;

        font-size: 13px;
        line-height: 1.35;

        text-align: center;
    }

    .category-icon {
        font-size: 14px;
    }

    .tedi-search-popover {
        position: fixed;

        top: 64px;
        right: 12px;
        left: 12px;

        width: auto;
    }

}


/* ==========================================================
   TEDI_STOREFRONT_UX_V2B
   Back-safe chooser / clean infinite scroll /
   aligned cards / async cart stepper
   ========================================================== */


/* Product cards keep the action button aligned. */

.product-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.product-card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.product-quick-add-button {
    margin-top: auto;
}


/*
 * Server pagination remains available when JS is absent.
 * Once Infinite Scroll has initialized, it stays visual-only
 * through the feed and the previous/next controls disappear.
 */

.tedi-product-list-js
[data-product-list-pagination="1"] {
    display: none !important;
}


/* Cart async feedback */

.cart-async-status {
    position: fixed;

    top:
        calc(
            16px
            + env(safe-area-inset-top)
        );

    left: 50%;

    z-index: 1300;

    width:
        min(
            calc(100% - 28px),
            460px
        );

    padding:
        12px
        16px;

    border-radius: 10px;

    background: #26382c;
    color: #fff;

    box-shadow:
        0
        8px
        28px
        rgba(0, 0, 0, .22);

    text-align: center;

    font-size: 14px;
    line-height: 1.8;

    pointer-events: none;

    opacity: 0;

    transform:
        translate(
            -50%,
            -14px
        );

    visibility: hidden;

    transition:
        opacity .18s ease,
        transform .18s ease,
        visibility .18s ease;
}

.cart-async-status.is-visible {
    opacity: 1;

    transform:
        translate(
            -50%,
            0
        );

    visibility: visible;
}

.cart-async-status.is-error {
    background: #a01818;
    color: #fff;
}

.cart-async-status:empty {
    visibility: hidden;
}


/* Progressive quantity stepper */

.cart-quantity-stepper {
    display: flex;
    align-items: center;
    gap: 5px;
    direction: ltr;
}

.cart-quantity-step {
    display: none;
}

.cart-page.is-enhanced
.cart-quantity-step {
    display: inline-grid;
    place-items: center;

    width: 38px;
    min-width: 38px;
    height: 38px;
    min-height: 38px;

    padding: 0;

    border: 1px solid #ddd;
    border-radius: 8px;

    background: #f8f8f8;
    color: #333;

    font-size: 21px;
    line-height: 1;
    font-weight: 600;

    cursor: pointer;
}

.cart-page.is-enhanced
.cart-quantity-step:disabled {
    cursor: default;
    opacity: .38;
}

.cart-page.is-enhanced
.cart-quantity-stepper
input[name="quantity"] {
    width: 52px;
    min-height: 38px;

    padding: 4px;

    text-align: center;
}

.cart-page.is-enhanced
.cart-update-button {
    display: none;
}

.cart-line.is-cart-line-busy {
    opacity: .72;
}

@media (max-width: 760px) {

    .cart-page.is-enhanced
    .cart-line-controls form {
        justify-content: flex-start;
    }

}

/* TEDI_PUBLIC_LIVE_SEARCH_REPAIR_V1 */

@media (min-width: 769px) {
    .tedi-search-menu > .tedi-search-popover {
        left: 0;
        right: auto;
    }
}

.tedi-search-menu > .tedi-search-popover {
    box-sizing: border-box;
    max-width: calc(100vw - 24px);
    flex-wrap: wrap;
    align-items: stretch;
}

.tedi-live-results {
    box-sizing: border-box;
    flex: 0 0 100%;
    width: 100%;
    max-height: min(380px, 55vh);
    overflow-y: auto;
    overscroll-behavior: contain;
    border-top: 1px solid #e8e0e8;
    padding-top: 7px;
    direction: rtl;
}

.tedi-live-results[hidden] {
    display: none !important;
}

.tedi-live-result {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 9px;
    border-radius: 9px;
    text-decoration: none !important;
    color: #263744;
    border-bottom: 1px solid #f0edf0;
}

.tedi-live-result:hover,
.tedi-live-result:focus-visible {
    background: #f9eef8;
    outline-color: #a82d8b;
}

.tedi-live-result__title {
    font-size: 14px;
    line-height: 1.65;
    font-weight: 700;
}

.tedi-live-result__meta {
    font-size: 12px;
    color: #687783;
}

.tedi-live-result__price {
    color: #8e217b;
    font-weight: 700;
}

.tedi-live-result-message {
    padding: 13px 9px;
    font-size: 13px;
    color: #61717c;
}

@media (max-width: 768px) {
    .tedi-search-menu > .tedi-search-popover {
        position: fixed;
        top: 64px;
        right: 12px;
        left: 12px;
        width: auto;
        max-width: none;
    }

    .tedi-live-results {
        max-height: min(330px, 48vh);
    }

    .tedi-live-result {
        min-height: 48px;
    }
}

/* ==========================================================
   TEDI_HEADER_ACCOUNT_GREEN_V1
   Authenticated header account indicator only.
   Guest account styling remains unchanged.
   ========================================================== */

.tedi-account-menu[data-auth-state="authenticated"]
> .tedi-account-summary,
.tedi-account-menu[data-auth-state="authenticated"][open]
> .tedi-account-summary {
    background: #159447 !important;
    color: #ffffff !important;
}

.tedi-account-menu[data-auth-state="authenticated"]
> .tedi-account-summary svg {
    color: #ffffff !important;
    stroke: #ffffff !important;
}

.tedi-account-menu[data-auth-state="authenticated"]
> .tedi-account-summary svg circle,
.tedi-account-menu[data-auth-state="authenticated"]
> .tedi-account-summary svg path {
    stroke: #ffffff !important;
    fill: none !important;
}
