/* ==========================================================================
   NOVA — Furniture & Home Decor theme for TWSAA
   Loaded after app.min.css. Overrides only; no markup changes required.

   Notes:
   - Accent colour stays merchant-controlled via --color-primary /
     --text-btn (set per channel in the master layout).
   - Uses logical properties (inline-start/end) so LTR and RTL both work.
   - Letter-spacing / uppercase are applied to LTR only (they break Arabic).
   - Master's inline <style> and swiper CSS load after this file, so a few
     rules use a `body` prefix or !important to win the cascade.
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&display=swap");

:root {
    --nova-bg: #f7f4ef;
    --nova-surface: #ffffff;
    --nova-sand: #efe8de;
    --nova-sand-deep: #e6dccd;
    --nova-line: #e7dfd3;
    --nova-ink: #2b2521;
    --nova-ink-soft: #4a423c;
    --nova-muted: #8a7f75;
    --nova-sale: #a4552f;

    --nova-radius-lg: 20px;
    --nova-radius: 14px;
    --nova-radius-sm: 10px;
    --nova-pill: 999px;

    --nova-shadow-sm: 0 2px 10px -4px rgba(43, 37, 33, 0.12);
    --nova-shadow: 0 22px 44px -28px rgba(43, 37, 33, 0.35);
    --nova-ease: cubic-bezier(0.22, 0.61, 0.36, 1);

    /* Latin glyphs get the serif; Arabic falls back to the merchant font */
    --nova-font-heading: "Playfair Display", var(--font-main), Georgia, serif;
}

/* ==========================================================================
   1. Base
   ========================================================================== */

html body {
    background-color: var(--nova-bg) !important;
    color: var(--nova-ink);
}

::selection {
    background: var(--nova-sand-deep);
    color: var(--nova-ink);
}

.main-container-wrapper {
    background: transparent;
}

a,
button,
.btn,
.s-button-btn {
    transition: color 0.25s var(--nova-ease), background-color 0.25s var(--nova-ease),
        border-color 0.25s var(--nova-ease), box-shadow 0.25s var(--nova-ease),
        opacity 0.25s var(--nova-ease), transform 0.25s var(--nova-ease);
}

:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* ==========================================================================
   2. Buttons
   ========================================================================== */

.btn,
.s-button-btn {
    border-radius: var(--nova-pill);
    font-weight: 600;
    letter-spacing: 0;
}

html[dir="ltr"] .s-button-btn,
html[dir="ltr"] .btn-primary {
    letter-spacing: 0.02em;
}

.btn-primary,
.s-button-primary {
    box-shadow: var(--nova-shadow-sm);
}

.btn-primary:hover,
.s-button-primary:not(.s-button-disabled):hover {
    background-color: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
    opacity: 1;
}

.s-button-disabled {
    cursor: not-allowed;
}

/* ==========================================================================
   3. Header  (markup: layouts/header/index.blade.php)
      Row 1  .nova-topbar     — espresso utility strip: contact + language
      Row 2  .nova-mainbar    — logo · wide search · account / wishlist / cart
      Row 3  .nav-header      — centred category menu
   ========================================================================== */

.nova-header {
    position: relative;
    z-index: 30;
}

/* ---------- Row 1: top bar ---------- */

.nova-topbar {
    background: var(--nova-ink);
    color: #e9e1d6;
    font-size: 0.78rem;
}

.nova-topbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 38px;
}

.nova-topbar__contact {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    min-width: 0;
}

.nova-topbar__link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #e9e1d6;
    white-space: nowrap;
}

.nova-topbar__link i {
    font-size: 0.85rem;
    opacity: 0.75;
}

.nova-topbar__link:hover {
    color: #fff;
}

.nova-topbar__actions {
    display: flex;
    align-items: center;
    margin-inline-start: auto;
}

.nova-topbar__lang {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 26px;
    padding: 0 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--nova-pill);
    background: transparent;
    color: #e9e1d6;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

.nova-topbar__lang:hover {
    border-color: rgba(255, 255, 255, 0.6);
    color: #fff;
}

.nova-topbar__lang i {
    font-size: 0.85rem;
    opacity: 0.8;
}

.nova-topbar__lang .flag {
    background: none;
    width: auto;
    height: auto;
    box-shadow: none;
}

.nova-topbar__sep {
    width: 1px;
    height: 12px;
    background: rgba(255, 255, 255, 0.25);
}

.nova-topbar__lang .symbol,
.nova-topbar__lang .symbol * {
    color: inherit;
}

/* ---------- Row 2: main bar ---------- */

.nova-header .main-nav-container {
    box-shadow: none;
    border-bottom: 1px solid var(--nova-line);
}

.nova-header #mainnav .inner {
    background-color: var(--nova-surface);
}

.nova-mainbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem;
    min-height: 88px;
}

.nova-mainbar__start {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.nova-header .navbar-brand {
    display: flex;
    align-items: center;
    padding: 0;
}

.nova-header .navbar-brand img {
    max-height: 54px;
    max-width: 190px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.nova-header .navbar-brand h2 {
    font-family: var(--nova-font-heading);
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--nova-ink);
    white-space: nowrap;
}

/* search */
.nova-mainbar__search {
    display: none;
    justify-content: center;
}

.nova-mainbar__search .s-search-container {
    width: 100%;
    max-width: 620px;
}

.nova-mainbar__search .s-search-input-wrapper {
    display: flex;
    align-items: center;
}

.nova-header .nova-mainbar__search .s-search-input {
    width: 100%;
    height: 50px;
    padding-inline: 3rem 3.75rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background-color: var(--nova-bg);
    color: var(--nova-ink);
    font-size: 0.9rem;
}

.nova-header .nova-mainbar__search .s-search-input::placeholder {
    color: var(--nova-muted);
}

.nova-header .nova-mainbar__search .s-search-input:focus {
    border-color: var(--nova-sand-deep);
    background-color: var(--nova-surface);
    outline: none;
    box-shadow: 0 0 0 4px var(--nova-sand);
}

.nova-mainbar__search .s-search-icon {
    position: absolute;
    top: 50%;
    inset-inline-start: 1.15rem;
    transform: translateY(-50%);
    display: flex;
    color: var(--nova-muted);
    font-size: 1.05rem;
    pointer-events: none;
}

.nova-header .nova-mainbar__search .camera-btn {
    position: absolute;
    top: 50%;
    inset-inline-end: 6px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    color: var(--nova-ink);
}

.nova-header .nova-mainbar__search .camera-btn:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

.nova-header .s-search-results .results {
    margin-top: 0.5rem;
    border-radius: var(--nova-radius);
    border: 1px solid var(--nova-line);
    box-shadow: var(--nova-shadow);
    overflow: hidden;
}

/* actions */
.nova-mainbar__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
}

.nova-header .nova-icon-btn,
.nova-header .top-links-icon {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--nova-ink);
    cursor: pointer;
}

.nova-header .nova-icon-btn i,
.nova-header .top-links-icon i {
    color: var(--nova-ink);
    font-size: 1.25rem;
    line-height: 1;
}

.nova-header .nova-icon-btn:hover,
.nova-header .nova-action:hover .top-links-icon {
    background-color: var(--nova-sand);
    opacity: 1;
}

.nova-header .nova-wishlist-btn {
    display: none;
}

/* account (icon + two-line label) */
.nova-header .nova-action,
.nova-header .nova-action .s-user-menu-trigger-slot {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.nova-header .nova-action {
    position: relative;
    padding: 0;
}

.nova-header button.nova-action--login {
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    border: 0;
}

.nova-action__text {
    display: none;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.2;
    text-align: start;
    padding-inline-end: 0.5rem;
}

.nova-action__text small {
    font-size: 0.72rem;
    color: var(--nova-muted);
}

.nova-action__text b {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--nova-ink);
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* cart pill */
.nova-header .nova-cart {
    margin-inline-start: 0.35rem;
}

.nova-header .nova-cart .s-cart-summary-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 4px;
    border-radius: var(--nova-pill);
    background: var(--nova-ink);
    color: #fff;
}

.nova-header .nova-cart .s-cart-summary-wrapper:hover {
    background: #000;
}

.nova-header .nova-cart .nova-icon-btn {
    width: 2.5rem;
    height: 2.5rem;
    background: rgba(255, 255, 255, 0.12);
}

.nova-header .nova-cart .nova-icon-btn i {
    color: #fff;
    font-size: 1.1rem;
}

.nova-header .nova-cart .s-cart-summary-wrapper:hover .nova-icon-btn {
    background: rgba(255, 255, 255, 0.2);
}

.nova-header .nova-cart .s-cart-summary-count {
    top: -2px !important;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.3rem;
    border-radius: var(--nova-pill);
    background: var(--color-primary);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.2rem;
    box-shadow: 0 0 0 2px var(--nova-surface);
}

.nova-header .nova-cart .s-cart-summary-content {
    display: none;
    flex-direction: column;
    line-height: 1.15;
    padding-inline-end: 0.9rem;
}

.nova-cart__label {
    font-size: 0.7rem;
    color: rgba(255, 255, 255, 0.65);
}

.nova-header .nova-cart .s-cart-summary-total,
.nova-header .nova-cart .s-cart-summary-total * {
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
}

/* wallet */
.nova-header .nova-wallet .s-cart-summary-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.nova-header .nova-wallet .s-wallet-summary-count {
    top: -2px !important;
    height: 1.2rem;
    min-width: 1.2rem;
    padding: 0 0.35rem;
    gap: 2px;
    border-radius: var(--nova-pill);
    background: var(--nova-sand);
    color: var(--nova-ink);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 0 0 2px var(--nova-surface);
}

.nova-header .nova-wallet .s-wallet-summary-count * {
    color: inherit;
    font-size: inherit;
    padding: 0 !important;
}

/* customer dropdown */
.nova-header .s-user-menu-dropdown {
    border-radius: var(--nova-radius);
    border: 1px solid var(--nova-line);
    box-shadow: var(--nova-shadow);
    overflow: hidden;
}

.nova-header .s-user-menu-dropdown-item a:hover {
    background-color: var(--nova-sand);
}

/* ---------- Row 3: category menu ---------- */

.nova-header .inner.nav-header {
    background-color: var(--nova-surface);
    border-bottom: 1px solid var(--nova-line);
}

@media (min-width: 1024px) {
    .nova-header .inner.nav-header > .container {
        justify-content: center;
        border-top-width: 0;
        min-height: 52px;
        align-items: center;
    }

    /* long menus wrap into tight rows instead of tall ones */
    .nova-header .inner.nav-header .main-menu {
        flex-wrap: wrap;
        row-gap: 0;
    }

    /* mobile-only header controls */
    .nova-header .mburger,
    .nova-header .search-btn {
        display: none;
    }

    .nova-header .inner.nav-header .main-menu {
        margin: 0;
        padding-top: 0;
        align-items: center;
        justify-content: center;
    }

    .nova-header .main-menu > li.root-level > a {
        padding: 0.95rem 0.8rem;
        font-weight: 500;
    }

    .nova-header .main-menu > li.root-level > a span {
        font-size: 0.9rem;
        color: var(--nova-ink);
        background-image: linear-gradient(var(--color-primary), var(--color-primary));
        background-repeat: no-repeat;
        background-size: 0 2px;
        background-position: 0 100%;
        padding-bottom: 4px;
        transition: background-size 0.3s var(--nova-ease);
    }

    html[dir="rtl"] .nova-header .main-menu > li.root-level > a span {
        background-position: 100% 100%;
    }

    html[dir="ltr"] .nova-header .main-menu > li.root-level > a span {
        font-size: 0.78rem;
        letter-spacing: 0.1em;
        text-transform: uppercase;
    }

    .nova-header .main-menu > li.root-level:hover > a span,
    .nova-header .main-menu > li.root-level > a.active span {
        background-size: 100% 2px;
    }

    /* dropdowns */
    .nova-header .main-menu .sub-menu {
        background: var(--nova-surface);
        border: 1px solid var(--nova-line);
        border-radius: var(--nova-radius);
        box-shadow: var(--nova-shadow);
        padding: 0.5rem;
        backdrop-filter: none;
    }

    .nova-header .main-menu .sub-menu li > a {
        border-radius: var(--nova-radius-sm);
        padding: 0.6rem 0.85rem;
    }

    .nova-header .main-menu .sub-menu li > a span {
        font-size: 0.85rem;
        color: var(--nova-ink-soft);
        text-transform: none;
        letter-spacing: 0;
    }

    .nova-header .main-menu .sub-menu li > a:hover {
        background-color: var(--nova-sand);
    }
}

/* ---------- Header breakpoints ---------- */

@media (min-width: 768px) {
    .nova-header .nova-wishlist-btn {
        display: inline-flex;
    }
}

@media (min-width: 1024px) {
    .nova-mainbar__search {
        display: flex;
    }
}

@media (min-width: 1280px) {
    .nova-action__text,
    .nova-header .nova-cart .s-cart-summary-content {
        display: flex;
    }

    .nova-header .nova-cart .s-cart-summary-wrapper {
        padding-inline-end: 0;
    }
}

@media (max-width: 1023px) {
    .nova-mainbar {
        grid-template-columns: 1fr auto;
        gap: 0.75rem;
        min-height: 66px;
    }

    .nova-header .navbar-brand img {
        max-height: 42px;
        max-width: 140px;
    }

    .nova-header .navbar-brand h2 {
        font-size: 1.25rem;
    }

    .nova-mainbar__actions {
        gap: 0.1rem;
    }

    .nova-header .nova-icon-btn,
    .nova-header .top-links-icon {
        width: 2.5rem;
        height: 2.5rem;
    }
}

@media (max-width: 767px) {
    .nova-topbar__contact {
        gap: 0.9rem;
    }

    /* icons only on phones, except the phone number */
    .nova-topbar__link span {
        display: none;
    }

    .nova-topbar__link:first-child span {
        display: inline;
    }

    .nova-header .nova-cart .s-cart-summary-wrapper {
        padding: 3px;
    }

    .nova-header .nova-cart .nova-icon-btn {
        width: 2.3rem;
        height: 2.3rem;
    }
}

/* ---------- Mobile search modal ---------- */

.s-search-modal .s-search-input {
    height: 46px !important;
    border-radius: var(--nova-pill);
    background: var(--nova-bg);
    border: 1px solid var(--nova-line);
    padding-inline: 2.75rem 1rem;
}

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

#mobile-menu.mm-spn.mm-spn--light {
    background: var(--nova-surface);
    color: var(--nova-ink);
}

#mobile-menu .main-menu > li > a,
#mobile-menu .main-menu > li > a span,
#mobile-menu .main-menu h5 {
    color: var(--nova-ink);
    font-weight: 600;
}

#mobile-menu .main-menu > li {
    border-bottom: 1px solid var(--nova-line);
}

#mobile-menu .close-mobile-menu {
    border-radius: 50%;
    background: var(--nova-sand);
    color: var(--nova-ink);
}

/* ==========================================================================
   4. Section scaffolding & titles
   ========================================================================== */

.s-block {
    margin-top: 2.5rem;
}

@media (min-width: 768px) {
    .s-block {
        margin-top: 4.5rem;
    }
}

.s-block__title,
.s-slider-block__title {
    align-items: flex-end;
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .s-block__title,
    .s-slider-block__title {
        margin-bottom: 2.25rem;
    }
}

.s-block__title h2,
.s-slider-block__title h2,
.product-group-heading {
    font-family: var(--nova-font-heading);
    font-size: clamp(1.45rem, 1.1rem + 1.2vw, 2.15rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--nova-ink);
}

.s-block__title h2::before,
.s-slider-block__title h2::before {
    content: "";
    display: block;
    width: 36px;
    height: 2px;
    margin-bottom: 0.85rem;
    background: var(--color-primary);
    border-radius: 2px;
}

.s-block__title p {
    margin-top: 0.4rem;
    font-size: 0.925rem;
    color: var(--nova-muted);
}

/* "view all" link */
.s-slider-block__display-all {
    color: var(--nova-ink);
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.2rem 0;
    border-bottom: 1px solid currentColor;
    border-radius: 0;
}

.s-slider-block__display-all::after {
    display: none !important;
}

.s-slider-block__display-all:hover {
    color: var(--color-primary);
}

/* slider arrows */
body .s-slider-nav-arrow,
body .s-slider-v-centered .s-slider-block__title-nav button {
    width: 2.75rem;
    height: 2.75rem;
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    box-shadow: none;
}

body .s-slider-nav-arrow:not(:disabled):hover,
body .s-slider-v-centered .s-slider-block__title-nav button:not(:disabled):hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
}

body twsaa-slider .s-slider-block__title-nav button .s-slider-button-icon svg {
    fill: var(--nova-ink) !important;
    opacity: 1;
}

body twsaa-slider .s-slider-block__title-nav button:not(:disabled):hover .s-slider-button-icon svg {
    fill: #fff !important;
}

/* pagination bullets */
body .swiper .swiper-pagination-bullet {
    background: var(--nova-sand-deep);
    opacity: 1;
}

body .swiper .swiper-pagination-bullet-active {
    background: var(--nova-ink);
}

/* ==========================================================================
   5. Product card
   ========================================================================== */

.product-entry {
    background: var(--nova-surface);
    border-radius: var(--nova-radius);
    transition: transform 0.35s var(--nova-ease), box-shadow 0.35s var(--nova-ease);
}

.product-entry:hover {
    transform: translateY(-4px);
    box-shadow: var(--nova-shadow);
}

/* image area */
.product-entry > a > .relative > .overflow-hidden {
    background-color: #fff;
    border-radius: var(--nova-radius) var(--nova-radius) 0 0;
}

.product-entry > a > .relative img {
    width: 100%;
    transition: transform 0.6s var(--nova-ease);
}

.product-entry:hover > a > .relative img {
    transform: scale(1.05);
}

/* badges */
.product-entry .sticker {
    position: absolute;
    top: 0.75rem;
    inset-inline-start: 0.75rem;
    z-index: 3;
    padding: 0.3rem 0.7rem;
    border-radius: var(--nova-pill);
    background: var(--nova-surface);
    color: var(--nova-ink);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: var(--nova-shadow-sm);
}

html[dir="ltr"] .product-entry .sticker {
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

html[dir] .product-entry .promo-title {
    top: 0.75rem;
    left: auto;
    right: auto;
    inset-inline-end: 0.75rem;
    inset-inline-start: auto;
    max-width: 100%;
    padding: 0.3rem 0.7rem;
    border-radius: var(--nova-pill);
    background: var(--nova-sale);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    opacity: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* content */
.product-entry .donating-wrap {
    padding: 1rem 1rem 1.1rem;
    gap: 0.25rem;
}

.product-entry .title-wrapper {
    text-align: start;
}

.product-entry .product-entry__title a {
    margin-top: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--nova-ink);
}

.product-entry .product-entry__title a:hover {
    color: var(--color-primary);
}

.product-entry .s-product-card-content-subtitle {
    margin-top: 0.15rem;
    margin-bottom: 0.25rem;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--nova-muted);
    opacity: 1;
}

.product-entry .s-product-card-content-subtitle:empty {
    display: none;
}

/* price */
.product-entry .price-wrapper,
.product-entry .price-wrapper .on-sale {
    justify-content: flex-start;
}

.product-entry .price-wrapper {
    margin-bottom: 0.85rem;
}

.product-entry .price-wrapper .on-sale .price {
    width: auto;
    text-align: start;
}

.product-entry .price-wrapper .on-sale .price,
.product-entry .price-wrapper .on-sale .special-price {
    font-size: 1rem;
    font-weight: 700;
    color: var(--nova-ink);
}

.product-entry .price-wrapper .on-sale .regular-price + .special-price,
.product-entry .price-wrapper .on-sale .special-price {
    color: var(--nova-sale);
}

.product-entry .price-wrapper .on-sale .regular-price {
    font-size: 0.8rem;
    color: var(--nova-muted);
}

/* add to cart */
.product-entry .product-footer {
    justify-content: stretch;
}

.product-entry .addToCart.s-button-btn {
    height: 2.6rem;
    padding: 0 1rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: transparent;
    color: var(--nova-ink);
    font-size: 0.825rem;
}

.product-entry .addToCart.s-button-btn p,
.product-entry .addToCart.s-button-btn i {
    color: inherit;
}

.product-entry .addToCart.s-button-primary-outline:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--text-btn);
    opacity: 1;
}

.product-entry .addToCart.s-button-disabled {
    background: var(--nova-bg);
    color: var(--nova-muted);
}

/* grids */
.products-container.grid {
    gap: 0.875rem;
}

@media (min-width: 768px) {
    .products-container.grid {
        gap: 1.5rem;
    }
}

.product-grid-4 {
    gap: 1.5rem;
}

/* ==========================================================================
   6. Home sections
   ========================================================================== */

/* ---------- Banners (fixed / wide) ---------- */

.s-block--fixed-banner .banner {
    display: block;
    border-radius: var(--nova-radius-lg);
    overflow: hidden;
}

.s-block--fixed-banner .banner img,
.banner--fixed img {
    border-radius: var(--nova-radius-lg);
    transition: transform 0.8s var(--nova-ease);
}

.s-block--fixed-banner .banner:hover img {
    transform: scale(1.02);
}

.s-block--youtube-url iframe,
.s-block--video-url video,
.s-block--youtube iframe {
    border-radius: var(--nova-radius-lg);
    width: 100%;
}

/* ---------- Categories (round & square tiles) ---------- */

/* gutter between slides: padding (not margin) so Swiper's width maths stays intact */
.s-block--banners .banner-square.swiper-slide {
    padding-inline: 0.4rem;
}

@media (min-width: 768px) {
    .s-block--banners .banner-square.swiper-slide {
        padding-inline: 0.65rem;
    }
}

.s-block--banners .banner-square .box-img {
    background-color: var(--nova-sand);
    transition: box-shadow 0.35s var(--nova-ease);
}

.s-block--banners .banner-square .box-img:not(.rounded-full) {
    border-radius: var(--nova-radius-lg);
    aspect-ratio: 1 / 1;
}

.s-block--banners .banner-square .box-img img {
    mix-blend-mode: multiply;
    transition: transform 0.6s var(--nova-ease);
}

.s-block--banners .banner-square:hover .box-img {
    box-shadow: var(--nova-shadow);
}

.s-block--banners .banner-square h3 {
    margin-top: 0.85rem;
    font-size: 0.925rem;
    font-weight: 600;
    color: var(--nova-ink);
}

/* ---------- Brands (logo wall) ---------- */

.s-block--banners .banner-square.max--3 .box-img {
    aspect-ratio: 3 / 2;
    padding: 1.25rem;
    background-color: var(--nova-surface);
    border: 1px solid var(--nova-line);
}

.s-block--banners .banner-square.max--3 .box-img img {
    height: 100%;
    object-fit: contain;
    mix-blend-mode: normal;
    filter: grayscale(1);
    opacity: 0.7;
    transition: filter 0.35s var(--nova-ease), opacity 0.35s var(--nova-ease);
}

.s-block--banners .banner-square.max--3:hover .box-img img {
    filter: none;
    opacity: 1;
    transform: none;
}

/* ---------- Store features ---------- */

.s-block--features__item {
    height: 100%;
    padding: 2.25rem 1.5rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
    background-color: var(--nova-surface);
}

.s-block--features__item:hover {
    box-shadow: var(--nova-shadow);
}

.s-block--features__item .feature-icon {
    width: 4.25rem;
    height: 4.25rem;
    margin-bottom: 1.1rem;
    background-color: var(--nova-sand);
}

.s-block--features__item .feature-icon i {
    color: var(--nova-ink);
    font-size: 1.6rem;
}

.s-block--features__item h2 {
    font-family: var(--nova-font-heading);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--nova-ink);
}

.s-block--features__item p {
    color: var(--nova-muted);
    font-size: 0.9rem;
}

/* ---------- Reviews ---------- */

.myReviewSwiper .swiper-slide > .flex {
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
}

.myReviewSwiper .testimonial__avatar {
    box-shadow: 0 0 0 5px var(--nova-bg);
}

.myReviewSwiper .testimonial__icon {
    color: var(--color-primary);
    opacity: 0.25;
}

/* ---------- FAQ ---------- */

.s-block .accordion-item {
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius);
    margin-bottom: 0.75rem;
    overflow: hidden;
}

.s-block .accordion-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.35rem;
    text-align: start;
    font-size: 1rem;
    font-weight: 600;
    color: var(--nova-ink);
    background: transparent;
}

.s-block .accordion-icon {
    font-size: 0.7rem;
    color: var(--nova-muted);
}

.s-block .accordion-content p {
    color: var(--nova-ink-soft);
    line-height: 1.75;
}

/* ---------- Image tiles (list of items) ---------- */

.banner-entry,
.banner-entry-list {
    border-radius: var(--nova-radius-lg);
    overflow: hidden;
}

@media (min-width: 768px) {
    .banner-entry {
        height: 260px;
    }
}

.banner-entry h3 {
    font-family: var(--nova-font-heading);
    font-size: 1.35rem;
    font-weight: 600;
}

.banner-entry .lazy__bg {
    transition: transform 0.8s var(--nova-ease);
}

.banner-entry:hover .lazy__bg {
    transform: scale(1.04);
}

/* ---------- Blogs ---------- */

.s-block--banners > section.bg-white {
    background: transparent;
    border-top: 0;
}

.s-block--banners > section.bg-white h3 {
    font-family: var(--nova-font-heading);
    font-weight: 600;
    color: var(--nova-ink);
}

.s-block--banners > section.bg-white .swiper-slide .rounded-lg {
    border-radius: var(--nova-radius-lg);
    border-color: var(--nova-line);
    background: var(--nova-surface);
}

/* ==========================================================================
   7. Category / listing page
   ========================================================================== */

.breadcrumbs {
    font-size: 0.8rem;
    color: var(--nova-muted);
}

.breadcrumbs a:hover {
    color: var(--color-primary);
}

.breadcrumb-subtitle .subTitle-detail {
    padding-block: 1.5rem 0.5rem;
}

.breadcrumb-subtitle .flex-subTitle img {
    width: 72px;
    height: 72px;
    min-width: 72px;
    padding: 6px;
    border-radius: var(--nova-radius);
    background: var(--nova-sand);
}

.bread-title {
    font-family: var(--nova-font-heading);
    font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem);
    font-weight: 600;
    color: var(--nova-ink);
}

.bread-text {
    margin-inline: 0;
    margin-top: 0.25rem;
    font-size: 0.95rem;
    color: var(--nova-muted);
}

/* child-category chips (category.blade.php pushes !important rules) */
body .categorySwiper .child-item .child-cat-img,
body .categorySwiper .child-item .placeholder {
    background: var(--nova-sand) !important;
    border: 1px solid var(--nova-line) !important;
    box-shadow: none !important;
}

body .categorySwiper .child-item:hover .child-cat-img {
    border-color: var(--color-primary) !important;
    transform: translateY(-3px);
}

body .categorySwiper .child-item h3 {
    color: var(--nova-ink) !important;
    font-weight: 600 !important;
}

.breadcrumb-subtitle .category-prev,
.breadcrumb-subtitle .category-next {
    border: 1px solid var(--nova-line);
    box-shadow: var(--nova-shadow-sm);
}

/* sorter */
.prod-filter select.form-input,
#product-filter {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background-color: var(--nova-surface);
    color: var(--nova-ink);
    padding-block: 0.45rem;
    padding-inline-start: 1rem;
}

#total_products {
    color: var(--nova-muted);
    font-size: 0.85rem;
}

/* filters */
body .s-filters-widget-container {
    background-color: var(--nova-surface) !important;
    color: var(--nova-ink) !important;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius);
    padding: 1.1rem 1.1rem 0.6rem;
    margin-bottom: 1rem;
}

.s-filters-widget-title {
    justify-content: space-between;
    color: var(--nova-ink);
    font-size: 0.95rem;
}

.s-filters-widget-search-input {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-sm);
    background: var(--nova-bg);
}

.s-filters-label {
    color: var(--nova-ink-soft);
    font-size: 0.875rem;
}

.s-filters-radio {
    accent-color: var(--color-primary);
}

#clear-filters-btn {
    height: 2.75rem;
}

/* grid search / legacy listing header */
.nav-header.bg-gray-100 {
    background-color: var(--nova-sand);
    border-radius: var(--nova-radius-lg);
}

/* empty state */
.product-list.empty {
    padding: 4rem 1.5rem;
    text-align: center;
    background: var(--nova-surface);
    border: 1px dashed var(--nova-sand-deep);
    border-radius: var(--nova-radius-lg);
    grid-column: 1 / -1;
}

.product-list.empty h2 {
    font-family: var(--nova-font-heading);
    font-size: 1.5rem;
    color: var(--nova-ink);
    margin-bottom: 0.5rem;
}

.product-list.empty p {
    color: var(--nova-muted);
}

/* loading */
.s-products-list-loading-wrapper {
    padding-block: 2rem;
}

/* pagination (legacy) */
.pagination .page-item {
    min-width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--nova-line);
    background: var(--nova-surface);
    color: var(--nova-ink);
}

.pagination .page-item.active {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

/* ==========================================================================
   8. Product detail page  (markup: products/view.blade.php, view/gallery.blade.php)
   ========================================================================== */

/* ---------- Breadcrumb ---------- */

.product-detail {
    padding-bottom: 2rem;
}

.breadcrumbs {
    font-size: 0.8rem;
    color: var(--nova-muted);
}

.breadcrumbs a {
    color: var(--nova-muted);
}

.breadcrumbs a:hover {
    color: var(--nova-ink);
}

/* ---------- Two-column layout ---------- */

@media (min-width: 768px) {
    .product-detail > .md\:container > .flex {
        align-items: flex-start;
    }

    .product-detail .sidebar {
        width: 50% !important;
        margin-inline-end: 0;
        padding-bottom: 2rem;
        overflow: visible;
    }

    .product-detail .main-content {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        padding-inline-start: 2.5rem;
    }
}

@media (min-width: 1024px) {
    .product-detail .sidebar {
        width: 54% !important;
        top: 1.5rem;
    }

    .product-detail .main-content {
        padding-inline-start: 4rem;
    }
}

/* ---------- Gallery ---------- */

.product-detail .product-gallery-slider {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.product-detail .product-hero-image {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    background: #fff;
    border: 1px solid var(--nova-line);
    border-radius: 24px;
    overflow: hidden;
}

.product-detail .product-hero-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.8s var(--nova-ease);
}

@media (hover: hover) {
    .product-detail .product-hero-image:hover img {
        transform: scale(1.04);
    }
}

.product-detail .product-hero-image .discountPercentage {
    position: absolute;
    bottom: 1rem;
    inset-inline-start: 1rem;
    padding: 0.3rem 0.8rem;
    border-radius: var(--nova-pill);
    background: var(--nova-sale);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
}

.product-detail .product-hero-image .discountPercentage:empty {
    display: none;
}

/* promotion badge */
html[dir] .product-detail .promotion-title {
    top: 1.1rem;
    left: auto;
    right: auto;
    inset-inline-start: 1.1rem;
    padding: 0.35rem 0.9rem;
    border-radius: var(--nova-pill);
    background-color: var(--nova-sale) !important;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 1;
    box-shadow: var(--nova-shadow-sm);
}

/* wishlist / share */
.product-detail .wish-share {
    opacity: 1;
}

@media (min-width: 768px) {
    html[dir] .product-detail .wish-share {
        top: 1.1rem;
        inset-inline-end: 1.1rem;
    }
}

.product-detail .wish-share .s-button-icon {
    width: 2.75rem;
    height: 2.75rem;
    background: var(--nova-surface);
    border-color: transparent !important;
    color: var(--nova-ink);
    box-shadow: var(--nova-shadow-sm);
}

.product-detail .wish-share .s-button-icon:hover {
    transform: scale(1.06);
}

.product-detail .wish-share .btn--wishlist.is-added,
.product-detail .wish-share .btn--wishlist.is-added i {
    color: var(--nova-sale);
}

/* thumbnails — the strip is rendered but hidden in the markup; show it,
   flanked by the existing prev/next controls */
.product-detail .thumb-slider-container {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.product-detail .thumb-slider.hidden {
    display: block;
}

.product-detail .thumb-slider {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.product-detail .thumb-slider::-webkit-scrollbar {
    display: none;
}

.product-detail .thumb-slider .swiper-wrapper {
    display: flex;
    gap: 0.6rem;
    transform: none !important;
}

.product-detail .thumb-frame {
    flex: 0 0 72px;
    width: 72px !important;
    height: 72px;
    border: 1px solid var(--nova-line);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    opacity: 0.65;
    transition: opacity 0.25s var(--nova-ease), border-color 0.25s var(--nova-ease);
}

.product-detail .thumb-frame img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-detail .thumb-frame:hover {
    opacity: 1;
}

.product-detail .thumb-frame.active {
    opacity: 1;
    border-color: var(--nova-ink);
    box-shadow: inset 0 0 0 1px var(--nova-ink);
}

body .product-detail .thumb-slider-container .swiper-button-prev,
body .product-detail .thumb-slider-container .swiper-button-next {
    position: static;
    flex: none;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0;
    border: 1px solid var(--nova-line);
    border-radius: 50%;
    background: var(--nova-surface);
    color: var(--nova-ink);
    transition: background-color 0.25s var(--nova-ease), color 0.25s var(--nova-ease);
}

body .product-detail .thumb-slider-container .swiper-button-prev {
    order: 1;
}

body .product-detail .thumb-slider-container .swiper-button-next {
    order: 3;
}

body .product-detail .thumb-slider-container .swiper-button-prev:hover,
body .product-detail .thumb-slider-container .swiper-button-next:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

body .product-detail .thumb-slider-container .swiper-button-prev::after,
body .product-detail .thumb-slider-container .swiper-button-next::after {
    font-size: 0.8rem;
    font-weight: 700;
}

/* arrow glyphs point the reading direction in RTL */
html[dir="rtl"] .product-detail .thumb-slider-container .swiper-button-prev::after {
    content: "next";
}

html[dir="rtl"] .product-detail .thumb-slider-container .swiper-button-next::after {
    content: "prev";
}

/* ---------- Info column ---------- */

/* brand */
.product-detail .main-content > .flex.border {
    gap: 0.9rem;
    width: fit-content;
    max-width: 100%;
    margin-bottom: 1.5rem;
    padding: 0.5rem 1.1rem 0.5rem 0.5rem;
    border: 1px solid var(--nova-line) !important;
    border-radius: var(--nova-pill);
    background: var(--nova-surface);
}

html[dir="rtl"] .product-detail .main-content > .flex.border {
    padding: 0.5rem 0.5rem 0.5rem 1.1rem;
}

.product-detail .product-brand {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--nova-sand);
    overflow: hidden;
}

.product-detail .product-brand .brand-logo {
    border-radius: 50%;
}

.product-detail .main-content > .flex.border h4 {
    font-size: 0.7rem;
    font-weight: 700;
    color: #3f7d4e;
}

html[dir="ltr"] .product-detail .main-content > .flex.border h4 {
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.product-detail .main-content > .flex.border p,
.product-detail .main-content > .flex.border p a {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--nova-ink);
    text-decoration: none;
}

/* title */
.product-detail .main-content h1 {
    font-family: var(--nova-font-heading);
    font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.6rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--nova-ink);
    padding-inline-end: 0;
}

.product-detail .main-content .product-entry__sub-title {
    margin-top: 0.5rem;
    font-size: 1rem;
    color: var(--nova-muted);
}

.product-detail .main-content .product-entry__sub-title.text-red-400 {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 0.75rem;
    padding: 0.25rem 0.75rem;
    border-radius: var(--nova-pill);
    background: #f8e9e4;
    color: var(--nova-sale);
    font-size: 0.8rem;
    font-weight: 600;
}

/* rating */
.product-detail .main-content > a.tab-trigger {
    margin-top: 0.85rem;
    background: transparent;
    padding: 0;
}

.product-detail .main-content .s-rating-stars-reviews {
    color: var(--nova-muted);
    font-size: 0.85rem;
    margin-inline-start: 0.35rem;
}

/* tags */
.product-detail .main-content > .mb-3 {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 1rem;
}

.product-detail .main-content > .mb-3 > a {
    margin: 0;
    padding: 0.25rem 0.75rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: var(--nova-surface);
    color: var(--nova-ink-soft);
    font-size: 0.75rem;
    text-decoration: none;
}

.product-detail .main-content > .mb-3 > a:hover {
    border-color: var(--nova-ink);
    color: var(--nova-ink);
}

/* description */
.product-detail .short__description {
    margin-top: 1.25rem;
}

.product-detail .short__description,
.product-detail .short__description p {
    font-size: 0.95rem;
    line-height: 1.85;
    color: var(--nova-ink-soft);
}

.product-detail .short__description .more-details {
    color: var(--nova-ink);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* price */
.product-detail .main-content > .price {
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--nova-line);
}

.product-detail .productDetails {
    flex-wrap: wrap;
    gap: 0.75rem;
}

.product-detail .productDetails .price,
.product-detail .productDetails .special-price {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--nova-ink);
}

.product-detail .productDetails .regular-price + .special-price {
    color: var(--nova-sale);
}

.product-detail .productDetails .regular-price {
    font-size: 1.1rem;
    color: var(--nova-muted);
}

/* sku / barcode / sold — clean key/value rows */
.product-detail .details {
    margin-top: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.product-detail .details:first-of-type {
    margin-top: 1.25rem;
}

.product-detail .details__wrapper {
    min-height: 0;
    padding-block: 0.7rem;
    border-bottom: 1px dashed var(--nova-line);
}

.product-detail .details__title,
.product-detail .details__title span {
    color: var(--nova-muted);
    font-size: 0.85rem;
}

.product-detail .details__title i {
    color: var(--nova-muted);
}

.product-detail .details__action span {
    color: var(--nova-ink);
    font-size: 0.85rem;
    font-weight: 600;
}

/* installment widgets */
.product-detail tamara-widget,
.product-detail #TabbyPromo {
    display: block;
    margin-top: 1.25rem;
}

/* ---------- Purchase card ---------- */

.product-detail .sticky-product-bar {
    margin-top: 1.75rem;
    padding: 1.25rem;
    border: 1px solid var(--nova-line);
    border-radius: 22px;
    background: var(--nova-surface);
    box-shadow: var(--nova-shadow);
}

.product-detail .product-bar-mob {
    gap: 0.75rem;
}

.product-detail .s-quantity-input-container {
    height: 3.25rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: var(--nova-bg);
    overflow: hidden;
}

.product-detail .s-quantity-input-button {
    width: 2.9rem;
}

.product-detail .s-quantity-input-button:hover {
    background: var(--nova-sand);
}

.product-detail .s-quantity-input-input {
    color: var(--nova-ink);
    font-size: 1rem;
}

.product-detail .cartButtons .s-button-btn,
.product-detail .cartButtons .btn {
    min-height: 3.25rem;
    flex: 1 1 0;
    border-radius: var(--nova-pill);
    font-size: 0.95rem;
    font-weight: 700;
}

/* add to cart: solid brand colour */
.product-detail .cartButtons .s-button-solid.s-button-primary {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--text-btn);
}

.product-detail .cartButtons .s-button-solid.s-button-primary:not(.s-button-disabled):hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

/* buy now: quiet ink outline */
.product-detail .cartButtons .s-quick-buy-button {
    background: transparent;
    border: 1px solid var(--nova-ink);
    color: var(--nova-ink);
}

.product-detail .cartButtons .s-quick-buy-button *,
.product-detail .cartButtons .s-quick-buy-button:hover * {
    color: inherit;
}

.product-detail .cartButtons .s-quick-buy-button:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

/* notes / file upload */
.product-detail .product-note-or-upload-file-wrapper {
    margin-top: 1.5rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
    background: var(--nova-surface);
}

.product-detail .product-note-or-upload-file-wrapper .btn-tab {
    padding: 0.5rem 1rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: var(--nova-bg);
    color: var(--nova-ink);
    font-size: 0.8rem;
}

.product-detail .product-note-or-upload-file-wrapper textarea {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-sm);
}

/* ---------- Options (configurable) ---------- */

.s-product-options-option-container {
    margin-bottom: 1.25rem;
}

.s-product-options-option-label,
.s-product-options-option-label b {
    color: var(--nova-ink);
    font-size: 0.9rem;
    font-weight: 700;
}

.s-product-options-option-content select.control {
    width: 100%;
    min-height: 3rem;
    padding-inline: 1rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius);
    background-color: var(--nova-surface);
    color: var(--nova-ink);
}

.s-product-options-thumbnails-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.s-product-options-thumbnails-wrapper .swatch > span,
.s-product-options-thumbnails-wrapper .swatch > img {
    border-radius: var(--nova-radius-sm);
    border: 1px solid var(--nova-line);
    transition: border-color 0.2s var(--nova-ease), box-shadow 0.2s var(--nova-ease);
}

.s-product-options-thumbnails-wrapper .swatch input:checked + span,
.s-product-options-thumbnails-wrapper .swatch input:checked + img {
    border-color: var(--nova-ink);
    box-shadow: 0 0 0 2px var(--nova-surface), 0 0 0 3px var(--nova-ink);
}

/* ---------- Tabs ---------- */

.product-detail .s-product-tabs {
    margin-top: 2.5rem;
}

.s-product-tabs .tabs {
    gap: 0.5rem;
    border-bottom: 1px solid var(--nova-line);
}

.s-product-tabs .tabs .tab-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: -1px;
    padding: 0.9rem 0.25rem;
    margin-inline-end: 1.25rem;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--nova-muted);
    font-size: 0.95rem;
    font-weight: 600;
}

.s-product-tabs .tabs .tab-trigger:hover {
    color: var(--nova-ink);
}

.s-product-tabs .tabs .tab-trigger.is-active,
.s-product-tabs .tabs .tab-trigger.active {
    background: transparent;
    border-color: transparent;
    border-bottom-color: var(--nova-ink);
    color: var(--nova-ink);
}

.s-product-tabs .tabs-wrapper {
    margin-top: 1.25rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
    background: var(--nova-surface);
}

.s-product-tabs .tab-pane.p-5,
.s-product-tabs #product-tabs-options {
    padding: 1.5rem;
}

.tabs-wrapper .product-entry {
    background: var(--nova-surface);
}

/* ---------- Reviews ---------- */

.product-detail #nav-comments h2 {
    font-family: var(--nova-font-heading);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--nova-ink);
}

.s-comments-sort-input {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    padding-inline: 1rem;
}

.product-detail #loadReview .comment .rounded-xl {
    background: var(--nova-bg);
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius);
    box-shadow: none;
    padding: 0.85rem 1rem;
}

.product-detail #load-more.s-infinite-scroll-btn {
    background: transparent;
    border: 1px solid var(--nova-ink);
    color: var(--nova-ink);
}

.product-detail #load-more.s-infinite-scroll-btn:hover {
    background: var(--nova-ink);
    color: #fff;
}

/* ---------- Related / up-sells ---------- */

.product-detail .attached-products-wrapper,
.product-detail > twsaa-slider {
    margin-top: 4rem;
}

.attached-products-wrapper .title {
    font-family: var(--nova-font-heading);
    font-size: clamp(1.45rem, 1.1rem + 1.2vw, 2.15rem);
    font-weight: 600;
    color: var(--nova-ink);
    margin-bottom: 1.75rem;
}

.attached-products-wrapper .title .border-bottom {
    display: block;
    width: 36px;
    height: 2px;
    margin-top: 0.75rem;
    background: var(--color-primary);
    border: 0;
}

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

@media (max-width: 767px) {
    .product-detail .sidebar {
        padding-inline: 1rem;
    }

    .product-detail .product-hero-image {
        border-radius: 18px;
    }

    .product-detail .thumb-frame {
        flex-basis: 60px;
        width: 60px !important;
        height: 60px;
    }

    .product-detail .main-content h1 {
        font-size: 1.6rem;
    }

    .product-detail .productDetails .price,
    .product-detail .productDetails .special-price {
        font-size: 1.6rem;
    }

    .product-detail .sticky-product-bar {
        padding: 0.9rem;
        border-radius: 18px;
    }
}

/* ==========================================================================
   8b. Cart page  (markup: checkout/cart/index.blade.php — wrapper .nova-cart-page)
       Checkout itself uses no-nav-master, which does not load nova.css.
   ========================================================================== */

/* page title band */
.main-container-wrapper .nav-header.bg-gray-100 h1 {
    font-family: var(--nova-font-heading);
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
    font-weight: 600;
    color: var(--nova-ink);
}

.nova-cart-page {
    margin-top: 2rem;
}

/* all cards on the page: offer bar, items, loyalty, coupon, summary */
.nova-cart-page .shadow-default,
.nova-cart-page .cart-item {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
    background: var(--nova-surface);
    box-shadow: none;
}

@media (min-width: 480px) {
    .nova-cart-page .shadow-default,
    .nova-cart-page .cart-item {
        padding: 1.5rem;
    }
}

/* ---------- Free-shipping / conditional offer bar ---------- */

.nova-cart-page twsaa-conditional-offer .s-conditional-offer-title {
    color: var(--nova-ink);
    font-weight: 600;
}

.nova-cart-page .s-conditional-offer-progress-line-inactive {
    background: var(--nova-sand);
}

.nova-cart-page .s-conditional-offer-progress-line-active {
    background: var(--color-primary);
}

/* ---------- Cart items ---------- */

.nova-cart-page .cart-item {
    margin-bottom: 1rem;
    transition: box-shadow 0.3s var(--nova-ease);
}

.nova-cart-page .cart-item:hover {
    box-shadow: var(--nova-shadow);
}

.nova-cart-page .cart-item > div > .flex {
    gap: 1rem;
}

.nova-cart-page .cart-item img.lazy {
    width: 6.5rem;
    height: 6.5rem;
    padding: 0.35rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius);
    background: #fff;
    object-fit: contain;
}

.nova-cart-page .cart-item h4 a {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.45;
    color: var(--nova-ink);
}

.nova-cart-page .cart-item h4 a:hover {
    color: var(--color-primary);
}

.nova-cart-page .cart-item .item-options {
    font-size: 0.8rem;
    color: var(--nova-muted);
}

.nova-cart-page .cart-item .item-price {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--nova-ink);
}

.nova-cart-page .cart-item .item-price.text-red-400 {
    color: var(--nova-sale);
}

.nova-cart-page .cart-item .item-regular-price {
    color: var(--nova-muted);
}

/* offer applied on an item */
.nova-cart-page .s-cart-item-offers-box {
    margin-top: 0.5rem;
    padding: 0.4rem 0.75rem;
    border-radius: var(--nova-radius-sm);
    background: #f8ede7;
}

.nova-cart-page .s-cart-item-offers-title,
.nova-cart-page .s-cart-item-offers-icon i {
    color: var(--nova-sale);
    font-size: 0.8rem;
}

/* quantity row */
.nova-cart-page .cart-item .center-between > b {
    color: var(--nova-muted);
    font-weight: 600;
}

.nova-cart-page .s-quantity-input-container {
    height: 2.75rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: var(--nova-bg);
    overflow: hidden;
}

.nova-cart-page .s-quantity-input-button:hover {
    background: var(--nova-sand);
}

/* item footer: total + actions */
.nova-cart-page .cart-item .border-t {
    border-top-color: var(--nova-line);
    padding-top: 1rem;
}

.nova-cart-page .cart-item .border-t .text-primary,
.nova-cart-page .cart-item .border-t .text-primary span {
    color: var(--nova-muted);
}

.nova-cart-page .cart-item .item-total {
    margin-inline-start: 0.25rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--nova-ink);
}

.nova-cart-page .cart-item .btn--wishlist,
.nova-cart-page .cart-item .btn--delete {
    display: inline-flex;
    align-items: center;
    height: 2.25rem;
    padding: 0 0.9rem !important;
    border-radius: var(--nova-pill);
    font-size: 0.78rem;
}

.nova-cart-page .cart-item .btn--wishlist .s-button-text,
.nova-cart-page .cart-item .btn--delete .s-button-text {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.nova-cart-page .cart-item .btn--wishlist {
    border: 1px solid var(--nova-line) !important;
    background: var(--nova-surface);
    color: var(--nova-ink);
}

.nova-cart-page .cart-item .btn--wishlist:hover {
    border-color: var(--nova-ink) !important;
}

.nova-cart-page .cart-item .btn--delete {
    border: 1px solid #efd9cf;
    background: #fbf1ec;
    color: var(--nova-sale);
}

.nova-cart-page .cart-item .btn--delete *,
.nova-cart-page .cart-item .btn--wishlist * {
    color: inherit;
}

.nova-cart-page .cart-item .btn--delete:hover {
    background: var(--nova-sale);
    border-color: var(--nova-sale);
    color: #fff;
}

/* item custom fields */
.nova-cart-page .cart-item .s-form-control,
.nova-cart-page .cart-item .form-control {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-sm);
}

/* ---------- Sidebar ---------- */

@media (min-width: 1024px) {
    .nova-cart-page .lg\:w-96 {
        width: 25rem;
        top: 1.5rem;
    }
}

.nova-cart-page .lg\:w-96 > .shadow-default {
    margin-bottom: 1rem;
}

/* coupon */
.nova-cart-page .coupon label {
    color: var(--nova-ink);
    font-weight: 600;
}

.nova-cart-page .coupon .form-input {
    width: 100%;
    height: 3rem;
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-pill);
    background: var(--nova-bg);
    padding-inline-start: 1.1rem;
}

.nova-cart-page .coupon .form-input:focus {
    border-color: var(--nova-ink-soft);
    box-shadow: 0 0 0 4px var(--nova-sand);
    outline: none;
}

.nova-cart-page .coupon .btn--coupon {
    border-radius: var(--nova-pill);
}

/* order summary */
.nova-cart-page .lg\:w-96 h4 {
    font-family: var(--nova-font-heading);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--nova-ink);
}

.nova-cart-page .lg\:w-96 .flex.justify-between.text-sm {
    margin-bottom: 0.85rem;
    color: var(--nova-ink-soft);
}

.nova-cart-page .lg\:w-96 .d-price {
    color: var(--nova-ink);
    font-weight: 600;
}

.nova-cart-page #total-discount .d-price {
    color: var(--nova-sale);
}

.nova-cart-page .lg\:w-96 .flex.justify-between.text-lg {
    align-items: center;
    margin-top: 1.1rem;
    margin-bottom: 1.25rem;
    padding-top: 1.1rem;
    border-top: 1px solid var(--nova-line);
}

.nova-cart-page .lg\:w-96 .flex.justify-between.text-lg h5 {
    font-weight: 700;
    color: var(--nova-ink);
}

.nova-cart-page .lg\:w-96 .flex.justify-between.text-lg b {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--nova-ink);
}

/* checkout / login-first buttons */
.nova-cart-page .cart-submit-wrap .btn-primary,
.nova-cart-page .cart-submit-wrap .s-button-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 3.25rem;
    border-radius: var(--nova-pill);
    font-size: 0.95rem;
    font-weight: 700;
}

.nova-cart-page .cart-submit-wrap .btn-primary:hover,
.nova-cart-page .cart-submit-wrap .s-button-btn:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

.nova-cart-page .cart-submit-wrap #completeProfile,
.nova-cart-page .cart-submit-wrap > div[style] {
    border-radius: var(--nova-radius) !important;
}

/* ---------- Empty cart ---------- */

.main-container-wrapper > .container > .title + .cart-content {
    max-width: 520px;
    margin: 0 auto 3rem;
    padding: 1rem 2rem 3rem;
    text-align: center;
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    border-top: 0;
    border-radius: 0 0 var(--nova-radius-lg) var(--nova-radius-lg);
}

.main-container-wrapper > .container > .title:has(+ .cart-content) {
    max-width: 520px;
    margin: 3rem auto 0;
    padding: 3rem 2rem 0.5rem;
    text-align: center;
    background: var(--nova-surface);
    border: 1px solid var(--nova-line);
    border-bottom: 0;
    border-radius: var(--nova-radius-lg) var(--nova-radius-lg) 0 0;
    font-family: var(--nova-font-heading);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--nova-ink);
}

.main-container-wrapper > .container > .title:has(+ .cart-content)::before {
    content: "";
    display: block;
    width: 64px;
    height: 64px;
    margin: 0 auto 1.25rem;
    border-radius: 50%;
    background: var(--nova-sand)
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232b2521' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l-1 13H7L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E")
        center / 28px no-repeat;
}

.main-container-wrapper > .container > .title + .cart-content p {
    color: var(--nova-muted);
}

.main-container-wrapper > .container > .title + .cart-content .btn-primary {
    margin-top: 1.25rem;
    min-height: 3rem;
    padding-inline: 2rem;
    border-radius: var(--nova-pill);
}

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

@media (max-width: 767px) {
    .nova-cart-page .cart-item img.lazy {
        width: 5.25rem;
        height: 5.25rem;
    }

    .nova-cart-page .cart-item .btn--wishlist .fix-align {
        display: none;
    }
}

/* ==========================================================================
   9. Modals, account & forms
   ========================================================================== */

.s-modal-body {
    border-radius: var(--nova-radius-lg);
}

.s-login-modal-header-icon {
    background: var(--nova-sand);
    color: var(--nova-ink);
}

.s-modal-title {
    font-family: var(--nova-font-heading);
    font-weight: 600;
    color: var(--nova-ink);
}

.s-login-modal-wrapper .control,
.s-tel-input-control {
    border-color: var(--nova-line);
    border-radius: var(--nova-radius-sm);
}

.s-login-modal-wrapper .control:focus,
.s-tel-input-control:focus {
    border-color: var(--nova-ink-soft);
    box-shadow: 0 0 0 4px var(--nova-sand);
    outline: none;
}

nav[aria-label="Sidebar"].sidebar {
    border: 1px solid var(--nova-line);
    border-radius: var(--nova-radius-lg);
    box-shadow: none;
}

.s-user-menu-inline .s-user-menu-dropdown-item a {
    border-radius: var(--nova-radius-sm);
}

.s-user-menu-inline .s-user-menu-dropdown-item.active a,
.s-user-menu-inline .s-user-menu-dropdown-item a:hover {
    background: var(--nova-sand);
}

/* ==========================================================================
   10. Footer
   ========================================================================== */

.store-footer {
    margin-top: 4rem;
    color: var(--nova-ink);
}

@media (min-width: 640px) {
    .store-footer {
        margin-top: 6rem;
    }
}

.store-footer .store-footer__inner {
    background-color: var(--nova-sand);
    border-top: 1px solid var(--nova-sand-deep);
}

.store-footer .footer-container {
    border-bottom-color: var(--nova-sand-deep);
    padding-block: 3rem;
}

.store-footer h3,
.store-footer h3.title {
    font-family: var(--nova-font-heading);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--nova-ink);
}

.store-footer p {
    color: var(--nova-ink-soft);
}

.store-footer .store-links-items a,
.store-footer .footer-list a {
    color: var(--nova-ink-soft);
    font-size: 0.9rem;
    line-height: 2.1;
}

.store-footer .contact-links a {
    min-width: 3.25rem;
    min-height: 3.25rem;
    background: var(--nova-surface);
    border: 1px solid var(--nova-sand-deep);
    border-radius: var(--nova-radius);
    color: var(--nova-ink);
}

.store-footer .contact-links a:hover {
    border-color: var(--nova-ink);
}

.store-footer .footer-social .social-icon {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--nova-sand-deep);
    border-radius: 50%;
    background: var(--nova-surface);
    color: var(--nova-ink);
}

.store-footer .footer-social .social-icon:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
}

.store-footer .footer-social .social-icon:hover i,
.store-footer .footer-social .social-icon:hover svg {
    color: #fff;
    fill: #fff;
}

.store-footer .to-top a {
    color: var(--nova-ink-soft);
    font-size: 0.85rem;
}

.store-footer .footer-bottom {
    font-size: 0.8rem;
}

.store-footer .footer-bottom .copyrights p {
    color: var(--nova-muted);
}

.store-footer .pay-mada {
    border: 1px solid var(--nova-sand-deep);
    border-radius: 6px;
}

.store-footer .vat-num p {
    color: var(--nova-muted);
}

/* ==========================================================================
   11. Responsive
   ========================================================================== */

@media (max-width: 767px) {
    .s-block__title h2::before,
    .s-slider-block__title h2::before {
        width: 28px;
        margin-bottom: 0.6rem;
    }

    .product-entry .donating-wrap {
        padding: 0.75rem 0.75rem 0.85rem;
    }

    .product-entry .product-entry__title a {
        font-size: 0.85rem;
    }

    .product-entry .price-wrapper .on-sale .price,
    .product-entry .price-wrapper .on-sale .special-price {
        font-size: 0.9rem;
    }

    .product-entry .addToCart.s-button-btn {
        height: 2.35rem;
        font-size: 0.75rem;
        padding: 0 0.5rem;
    }

    .product-entry .sticker,
    html[dir] .product-entry .promo-title {
        top: 0.5rem;
        font-size: 0.625rem;
        padding: 0.25rem 0.55rem;
    }

    .product-entry .sticker {
        inset-inline-start: 0.5rem;
    }

    html[dir] .product-entry .promo-title {
        inset-inline-end: 0.5rem;
    }

    .s-block--fixed-banner .banner,
    .s-block--fixed-banner .banner img,
    .banner--fixed img {
        border-radius: var(--nova-radius);
    }

    .s-block--features__item {
        padding: 1.75rem 1rem;
    }

    .store-footer .footer-container {
        padding-block: 2.25rem;
    }

}

/* hover-lift only on devices that actually hover */
@media (hover: none) {
    .product-entry:hover {
        transform: none;
        box-shadow: none;
    }

    .product-entry:hover > a > .relative img {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .product-entry,
    .product-entry img,
    .banner img,
    .lazy__bg,
    .box-img img {
        transition: none !important;
    }

    .product-entry:hover,
    .product-entry:hover > a > .relative img,
    .s-block--fixed-banner .banner:hover img,
    .banner-entry:hover .lazy__bg {
        transform: none;
    }
}


/* ==========================================================================
   PRELOADER — a pendant lamp swings over the store logo and lights it up
   (markup + script: layouts/master.blade.php, right after <body>)
   ========================================================================== */
.nova-preloader {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(120% 90% at 50% 30%, #fbf8f3 0%, var(--nova-bg) 55%, var(--nova-sand) 100%);
    transition: opacity 0.8s var(--nova-ease), visibility 0.8s;
}

.nova-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.nova-preloader__stage {
    position: relative;
    width: 220px;
    height: 250px;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.8s var(--nova-ease);
}

.nova-preloader.is-hidden .nova-preloader__stage {
    transform: translateY(-14px) scale(1.04);
}

/* the lamp hangs from the top edge and swings from its cord */
.nova-preloader__lamp {
    position: relative;
    width: 96px;
    height: 120px;
    transform-origin: 50% 0;
    animation: nova-swing 2.6s ease-in-out infinite;
}

@keyframes nova-swing {
    0%, 100% { transform: rotate(7deg); }
    50% { transform: rotate(-7deg); }
}

.nova-preloader__cord {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.5px;
    height: 58px;
    margin-left: -0.75px;
    background: var(--nova-ink);
    opacity: 0.75;
}

.nova-preloader__shade {
    position: absolute;
    top: 52px;
    left: 0;
    width: 96px;
    height: 56px;
}

.nova-preloader__shade path {
    fill: var(--nova-ink);
}

.nova-preloader__shade .nova-preloader__rim {
    fill: none;
    stroke: var(--nova-sale);
    stroke-width: 3;
    stroke-linecap: round;
}

.nova-preloader__bulb {
    position: absolute;
    top: 99px;
    left: 50%;
    width: 16px;
    height: 16px;
    margin-left: -8px;
    border-radius: 50%;
    background: #ffd99a;
    box-shadow: 0 0 18px 6px rgba(255, 196, 110, 0.65);
    animation: nova-glow 2.6s ease-in-out infinite;
}

/* warm cone of light falling on the logo */
.nova-preloader__light {
    position: absolute;
    top: 104px;
    left: 50%;
    width: 200px;
    height: 150px;
    margin-left: -100px;
    background: radial-gradient(60% 100% at 50% 0%, rgba(255, 205, 130, 0.42), transparent 70%);
    clip-path: polygon(38% 0, 62% 0, 100% 100%, 0 100%);
    animation: nova-glow 2.6s ease-in-out infinite;
    pointer-events: none;
}

@keyframes nova-glow {
    0%, 100% { opacity: 0.75; }
    50% { opacity: 1; }
}

.nova-preloader__mark {
    position: relative;
    z-index: 1;
    margin-top: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    transition: transform 0.6s var(--nova-ease), filter 0.6s;
}

.nova-preloader__logo {
    max-width: 150px;
    max-height: 64px;
    object-fit: contain;
}

.nova-preloader__name {
    font-family: var(--nova-font-heading);
    font-size: 24px;
    font-weight: 600;
    color: var(--nova-ink);
}

.nova-preloader__floor {
    width: 120px;
    height: 10px;
    margin-top: 16px;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(43, 37, 33, 0.18), transparent);
    animation: nova-floor 2.6s ease-in-out infinite;
}

@keyframes nova-floor {
    0%, 100% { transform: translateX(8px) scaleX(0.9); }
    50% { transform: translateX(-8px) scaleX(0.9); }
}

/* page loaded: the lamp settles and the light switches fully on */
.nova-preloader.is-lit .nova-preloader__lamp,
.nova-preloader.is-lit .nova-preloader__floor {
    animation-play-state: paused;
}

.nova-preloader.is-lit .nova-preloader__light,
.nova-preloader.is-lit .nova-preloader__bulb {
    animation: none;
    opacity: 1;
}

.nova-preloader.is-lit .nova-preloader__mark {
    transform: scale(1.05);
    filter: drop-shadow(0 6px 18px rgba(255, 190, 100, 0.45));
}

/* ==========================================================================
   PAGE ANIMATIONS — sections fade up, cards / tiles rise in turn
   (html.nova-js and the reveal classes are set by nova.js)
   ========================================================================== */
.nova-js [data-nova-reveal] {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.9s var(--nova-ease), transform 0.9s var(--nova-ease);
}

.nova-js [data-nova-reveal].is-in {
    opacity: 1;
    transform: none;
}

/* hero banner, product page and cart fade without moving */
/* the footer fades without moving too: a transform on it would make it the frame of the
   certificate windows inside it (position: fixed), which then opened down the page */
.nova-js .s-block--fixed-banner[data-nova-reveal],
.nova-js section.product-detail[data-nova-reveal],
.nova-js .nova-cart-page[data-nova-reveal],
.nova-js .store-footer[data-nova-reveal] {
    transform: none;
}

.nova-js [data-nova-reveal] .product-entry,
.nova-js [data-nova-reveal] .banner-square,
.nova-js [data-nova-reveal] .s-block--features__item {
    opacity: 0;
    translate: 0 22px;
    transition: opacity 0.8s var(--nova-ease), translate 0.8s var(--nova-ease), transform 0.35s var(--nova-ease), box-shadow 0.35s var(--nova-ease);
    transition-delay: var(--nova-delay, 0ms), var(--nova-delay, 0ms), 0ms, 0ms;
}

.nova-js [data-nova-reveal].is-in .product-entry,
.nova-js [data-nova-reveal].is-in .banner-square,
.nova-js [data-nova-reveal].is-in .s-block--features__item {
    opacity: 1;
    translate: none;
}

/* angle's own entrance classes would double the animation */
.nova-js .angel_anime.animate__animated {
    animation: none !important;
}

/* category tiles: image eases in on hover */
.s-block--banners .banner-square:hover .box-img img {
    transform: scale(1.06);
}

/* brands conveyor: constant speed between tiles */
.nova-brands-swiper.is-conveyor .swiper-wrapper {
    transition-timing-function: linear !important;
}

/* ==========================================================================
   CART DRAWER (markup: layouts/cart-drawer.blade.php, behaviour: nova.js)
   ========================================================================== */
html.nova-drawer-open,
html.nova-drawer-open body {
    overflow: hidden;
}

.nova-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 50px;
    padding: 0 28px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.35s, color 0.35s, border-color 0.35s, transform 0.35s var(--nova-ease), box-shadow 0.35s;
}

.nova-btn svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 0.35s var(--nova-ease);
}

.nova-btn:hover svg {
    transform: translateX(4px);
}

[dir="rtl"] .nova-btn:hover svg {
    transform: translateX(-4px);
}

.nova-btn--solid {
    background: var(--nova-ink);
    color: #fff;
    border: 1px solid var(--nova-ink);
}

.nova-btn--solid:hover {
    background: var(--nova-sale);
    border-color: var(--nova-sale);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -14px rgba(43, 37, 33, 0.6);
}

.nova-btn--outline {
    background: transparent;
    color: var(--nova-ink);
    border: 1px solid var(--nova-ink);
}

.nova-btn--outline:hover {
    background: var(--nova-ink);
    border-color: var(--nova-ink);
    color: #fff;
}

/* ==========================================================================
   10. Cart drawer
   ========================================================================== */
.nova-drawer {
    position: fixed;
    inset: 0;
    z-index: 10000;
    visibility: hidden;
    pointer-events: none;
}

.nova-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
}

.nova-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(43, 37, 33, 0.42);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity 0.45s var(--nova-ease);
}

.nova-drawer.is-open .nova-drawer__overlay {
    opacity: 1;
}

.nova-drawer__panel {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: min(440px, 100%);
    display: flex;
    flex-direction: column;
    background: var(--nova-bg);
    box-shadow: -24px 0 60px -30px rgba(43, 37, 33, 0.5);
    transform: translateX(100%);
    transition: transform 0.6s var(--nova-ease);
    outline: none;
}

[dir="rtl"] .nova-drawer__panel {
    right: auto;
    left: 0;
    box-shadow: 24px 0 60px -30px rgba(43, 37, 33, 0.5);
    transform: translateX(-100%);
}

.nova-drawer.is-open .nova-drawer__panel {
    transform: none;
}

.nova-drawer__content {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.nova-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 22px 24px 18px;
    border-bottom: 1px solid var(--nova-line);
}

.nova-drawer__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-family: var(--nova-font-heading);
    font-size: 22px;
    font-weight: 600;
    color: var(--nova-ink);
}

.nova-drawer__count {
    min-width: 26px;
    height: 26px;
    padding: 0 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--nova-sale);
    color: #fff;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
}

.nova-drawer__close {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid rgba(43, 37, 33, 0.18);
    background: var(--nova-surface);
    color: var(--nova-ink);
    cursor: pointer;
    transition: transform 0.4s var(--nova-ease), background 0.3s, color 0.3s;
}

.nova-drawer__close svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
}

.nova-drawer__close:hover {
    transform: rotate(90deg);
    background: var(--nova-ink);
    color: #fff;
}

.nova-drawer__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px 24px;
}

.nova-drawer__item {
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 16px;
    padding: 18px 0;
    border-bottom: 1px solid var(--nova-line);
    transition: opacity 0.35s, transform 0.35s var(--nova-ease);
}

.nova-drawer.is-open .nova-drawer__item {
    animation: nova-rise 0.6s var(--nova-ease) both;
    animation-delay: calc(var(--i, 0) * 60ms + 160ms);
}

.nova-drawer__item.is-removing {
    opacity: 0.35;
    transform: translateX(14px);
}

@keyframes nova-rise {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: none; }
}

.nova-drawer__thumb {
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: var(--nova-radius-sm);
    background: #fff;
    border: 1px solid var(--nova-line);
    overflow: hidden;
}

.nova-drawer__thumb img {
    width: 100%;
    height: 100%;
    padding: 8%;
    object-fit: contain;
}

.nova-drawer__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
}

.nova-drawer__brand {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--nova-sale);
}

.nova-drawer__name {
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.5;
    color: var(--nova-ink);
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nova-drawer__name:hover {
    color: var(--nova-sale);
}

.nova-drawer__price {
    font-size: 15px;
    font-weight: 700;
    color: var(--nova-ink);
}

.nova-drawer__row-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    margin-top: 8px;
}

.nova-qty {
    display: inline-flex;
    align-items: center;
    height: 36px;
    border-radius: 999px;
    border: 1px solid rgba(43, 37, 33, 0.18);
    background: var(--nova-surface);
}

.nova-qty__btn {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: transparent;
    color: var(--nova-ink);
    cursor: pointer;
    transition: background 0.25s;
}

.nova-qty__btn:hover {
    background: var(--nova-sand);
}

.nova-qty__btn svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
}

.nova-qty__value {
    min-width: 28px;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
}

.nova-drawer__qty-text {
    font-size: 13px;
    color: var(--nova-muted);
}

.nova-drawer__remove {
    font-size: 12.5px;
    color: var(--nova-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.25s;
}

.nova-drawer__remove:hover {
    color: #9a3b2e;
}

.nova-drawer__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 70px 10px;
    text-align: center;
}

.nova-drawer__empty-icon {
    width: 86px;
    height: 86px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--nova-sand);
    color: var(--nova-sale);
    margin-bottom: 8px;
}

.nova-drawer__empty-icon svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linejoin: round;
}

.nova-drawer__empty-title {
    margin: 0;
    font-family: var(--nova-font-heading);
    font-size: 21px;
    font-weight: 600;
}

.nova-drawer__empty-sub {
    margin: 0 0 12px;
    font-size: 14px;
    color: var(--nova-muted);
}

.nova-drawer__foot {
    padding: 18px 24px 22px;
    border-top: 1px solid var(--nova-line);
    background: var(--nova-surface);
}

.nova-drawer__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.nova-drawer__total span {
    font-family: var(--nova-font-heading);
    font-size: 17px;
    font-weight: 600;
    color: var(--nova-ink);
}

.nova-drawer__total b {
    font-size: 20px;
    font-weight: 700;
    color: var(--nova-ink);
}

.nova-drawer__total b * {
    color: inherit !important;
}

.nova-drawer__checkout {
    width: 100%;
}

.nova-drawer__view {
    display: block;
    width: 100%;
    margin-top: 12px;
    padding: 4px;
    border: 0;
    background: none;
    cursor: pointer;
    text-align: center;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--nova-ink);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.nova-drawer__view:hover {
    color: var(--nova-sale);
}

/* thin gold bar while the server re-renders the drawer */
.nova-drawer__loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.2s;
}

.nova-drawer__loading span {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40%;
    background: var(--nova-sale);
    animation: nova-loading 1s ease-in-out infinite;
}

.nova-drawer.is-loading .nova-drawer__loading {
    opacity: 1;
}

.nova-drawer.is-loading .nova-drawer__content {
    pointer-events: none;
}

@keyframes nova-loading {
    from { left: -40%; }
    to { left: 100%; }
}

@media (max-width: 480px) {
    .nova-drawer__head,
    .nova-drawer__foot {
        padding-inline: 18px;
    }

    .nova-drawer__body {
        padding-inline: 18px;
    }

    .nova-drawer__item {
        grid-template-columns: 74px 1fr;
        gap: 12px;
    }
}


/* ==========================================================================
   BACK TO TOP — right side, above the chat bubble (social icons sit left)
   ========================================================================== */
.nova-top {
    position: fixed;
    bottom: 104px;
    right: 26px;
    z-index: 140;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--nova-ink);
    color: #fff;
    box-shadow: 0 14px 30px -16px rgba(43, 37, 33, 0.7);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px);
    transition: opacity 0.45s var(--nova-ease), transform 0.45s var(--nova-ease), visibility 0.45s, background 0.3s;
}

.nova-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.nova-top:hover {
    background: var(--nova-sale);
}

.nova-top svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 767px) {
    .nova-top {
        bottom: 96px;
        right: 23px;
        width: 44px;
        height: 44px;
    }
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    .nova-preloader__lamp,
    .nova-preloader__bulb,
    .nova-preloader__light,
    .nova-preloader__floor {
        animation: none !important;
    }

    .nova-js [data-nova-reveal],
    .nova-js [data-nova-reveal] .product-entry,
    .nova-js [data-nova-reveal] .banner-square,
    .nova-js [data-nova-reveal] .s-block--features__item {
        opacity: 1 !important;
        transform: none !important;
        translate: none !important;
        transition: none !important;
    }

    .nova-drawer__panel,
    .nova-drawer.is-open .nova-drawer__item {
        transition: none !important;
        animation: none !important;
    }
}

/* ==========================================================================
   Certificate windows (footer: VAT, commercial register, freelance, SBC): fit the screen,
   the close button stays pinned at the top while the certificate scrolls
   ========================================================================== */
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-wrapper {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 16px;
}
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-spacer { display: none !important; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-body {
    position: relative;
    width: min(640px, 100%) !important;
    max-width: 100% !important;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 0 auto !important;
    padding: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    border-radius: 18px;
    background: #fff;
}
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-header {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 !important;
    padding: 14px 16px !important;
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--nova-line, #ececec);
}
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-close {
    position: static !important;
    order: 2;
    margin-inline-start: auto;
    flex: none;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid !important;
    place-items: center;
    padding: 0 !important;
    background: var(--nova-ink, #222) !important;
    color: #fff !important;
    transform: none !important;
    transition: transform .3s ease;
}
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-close * { color: inherit !important; font-size: 13px; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-close:hover { transform: rotate(90deg) !important; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-header-inner { margin: 0 !important; min-width: 0; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-header-inner > slot-fb { display: none; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-title { margin: 0 !important; font-size: 16px !important; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-sub-title { margin: 0 !important; font-size: 12.5px; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-body > .flex { padding: 12px; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-body img { width: 100%; height: auto; border-radius: 10px; }
/* title and close button share one row */
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-header { flex-wrap: nowrap !important; flex-direction: row !important; justify-content: space-between; }
:is(#taxCertificateModal, #CrCertificateModal, #FcCertificateModal, #sbcCertificateModal) .s-modal-header-inner { flex: 1 1 auto; width: auto !important; order: 1; text-align: start; }
