﻿/* Prevent horizontal overflow and right-swipe blank space on mobile. */
html,
body {
    overflow-x: hidden;
}

/* ── All-Categories page ──────────────────────────────────────────────── */

/* 5-column grid utility (Bootstrap doesn't ship 20% columns) */
@media (min-width: 992px) {
    .col-lg-2half {
        flex: 0 0 auto;
        width: 20%;
    }
}

/* Page header + search bar row */
.all-cat-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 24px;
}

.all-cat-search-wrap {
    position: relative;
    flex: 0 0 260px;
}
.all-cat-search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
    font-size: 15px;
    pointer-events: none;
}
.all-cat-search {
    width: 100%;
    padding: 8px 12px 8px 32px;
    border: 1px solid #dde1e7;
    border-radius: 6px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    background: #fff;
}
.all-cat-search:focus {
    border-color: var(--color-primary, #1f4e79);
    box-shadow: 0 0 0 3px rgba(31, 78, 121, 0.12);
}

/* Category card */
.cat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    text-decoration: none;
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 10px;
    padding: 16px 10px 12px;
    height: 100%;
    color: #1a2535;
    transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
}
.cat-card:hover,
.cat-card:focus-visible {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.10);
    transform: translateY(-3px);
    border-color: var(--color-primary, #1f4e79);
    color: var(--color-primary, #1f4e79);
}

.cat-card__img-wrap {
    width: 80px;
    height: 80px;
    background: #f4f6f9;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-bottom: 10px;
    flex-shrink: 0;
    transition: background 0.22s ease;
}
.cat-card:hover .cat-card__img-wrap {
    background: #e8f0fb;
}
.cat-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cat-card__body {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.cat-card__name {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    word-break: break-word;
    color: inherit;
    display: block;
}

.cat-card__meta {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    justify-content: center;
}
.cat-badge {
    font-size: 10px;
    font-weight: 500;
    padding: 2px 7px;
    border-radius: 20px;
    line-height: 1.5;
}
.cat-badge--sub {
    background: rgba(31, 78, 121, 0.08);
    color: var(--color-primary, #1f4e79);
}
.cat-badge--item {
    background: rgba(46, 204, 113, 0.10);
    color: #1a8a4a;
}

/* Responsive tweak: tighten padding on small screens */
@media (max-width: 575px) {
    .cat-card {
        padding: 12px 8px 10px;
    }
    .cat-card__img-wrap {
        width: 60px;
        height: 60px;
    }
    .all-cat-search-wrap {
        flex: 1 1 100%;
    }
}
/* ── /All-Categories page ─────────────────────────────────────────────── */

/* Remove li::marker bullets from social icon lists and repeat--item lists */
.social-icons,
.social-icons li,
.repeat--item ul,
.repeat--item ul li {
    list-style: none !important;
    padding-left: 0;
    margin-left: 0;
}

@supports (overflow: clip) {
    html,
    body {
        overflow-x: clip;
    }
}

@media (max-width: 767px) {
    html,
    body {
        overscroll-behavior-x: none;
    }

    .whatsapp-float {
        right: 12px !important;
        max-width: calc(100vw - 12px) !important;
    }

    .whatsapp-float__label {
        display: none !important;
    }
}

/* ── Font-display: swap override for FontAwesome Pro CDN ────────────────
 * The kit-pro.fontawesome.com stylesheet doesn't set font-display.
 * Re-declaring the @font-face with font-display:swap ensures text
 * remains visible while the icon font loads, preventing CLS.
 * The src descriptors don't need to match exactly — the display
 * hint is applied to the already-registered font family name.
 * ─────────────────────────────────────────────────────────────────────── */
@font-face { font-family: "Font Awesome 5 Pro";  font-display: swap; src: local("Font Awesome 5 Pro"); }
@font-face { font-family: "Font Awesome 5 Free"; font-display: swap; src: local("Font Awesome 5 Free"); }
@font-face { font-family: "Font Awesome 5 Brands"; font-display: swap; src: local("Font Awesome 5 Brands"); }

/* brand-item-name <p> replaces <h2> inside carousels — matches main.css .brand__item h2 styling */
.brand__item p.brand-item-name {
    margin: 6px 0 0 0;
    padding: 0;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.3;
    color: #333;
    width: 100%;
    text-align: center;
    word-break: break-word;
}
.brand__item p.brand-item-name span {
    display: block;
    text-align: center;
}

/* ── Brands Showcase redesign ──────────────────────────────────────────────
   Replaces the plain circle + name layout with frosted glass cards,
   shimmer-on-hover, and 5-colour cycling glow shadows.
   ────────────────────────────────────────────────────────────────────────── */
.brands-showcase {
    position: relative;
}

.brands-showcase::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 12% 60%, rgba(26, 99, 207, 0.07), transparent 50%),
        radial-gradient(ellipse at 88% 40%, rgba(95, 168, 211, 0.08), transparent 50%),
        rgba(225, 237, 255, 0.2);
    border-top: 1px solid rgba(31, 101, 214, 0.1);
    border-bottom: 1px solid rgba(31, 101, 214, 0.1);
    pointer-events: none;
    z-index: 0;
}

.brands-showcase .container { position: relative; z-index: 1; }

/* Header */
.brands-showcase__header {
    align-items: flex-end !important;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 8px;
}

.brands-showcase__title-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.brands-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--color-primary);
    background: rgba(31, 101, 214, 0.07);
    border: 1px solid rgba(31, 101, 214, 0.18);
    padding: 3px 12px;
    border-radius: 100px;
    width: fit-content;
}

.brands-eyebrow::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-primary);
    animation: eyebrowPulse 2s ease-in-out infinite;
}

@keyframes eyebrowPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.4; transform: scale(0.7); }
}

/* Override .section__header border for brands section */
.brands-showcase .section__header {
    border-bottom-color: rgba(31, 101, 214, 0.15) !important;
}

/* Brand card — the <a> tag is the card */
.brands-carousel .owl-item a.brand-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 10px 16px;
    border-radius: 18px;
    background: rgba(241, 247, 255, 0.48);
    border: 1px solid rgba(31, 101, 214, 0.13);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    transition: transform 0.26s cubic-bezier(0.34, 1.56, 0.64, 1),
                box-shadow 0.26s ease,
                border-color 0.26s ease;
}

/* Shimmer sweep */
.brands-carousel .owl-item a.brand-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -80%;
    width: 55%;
    height: 100%;
    background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,0.5) 50%, transparent 65%);
    transform: skewX(-15deg);
    transition: left 0.55s ease;
    pointer-events: none;
}

.brands-carousel .owl-item a.brand-card:hover::after {
    left: 130%;
}

/* Cycling glow colours per nth-child (5 colours) */
.brands-carousel .owl-item:nth-child(5n+1) a.brand-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 38px rgba(26, 99, 207, 0.2), 0 4px 12px rgba(26, 99, 207, 0.1);
    border-color: rgba(26, 99, 207, 0.38);
}
.brands-carousel .owl-item:nth-child(5n+2) a.brand-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 38px rgba(15, 173, 110, 0.2), 0 4px 12px rgba(15, 173, 110, 0.1);
    border-color: rgba(15, 173, 110, 0.38);
}
.brands-carousel .owl-item:nth-child(5n+3) a.brand-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 38px rgba(245, 166, 35, 0.22), 0 4px 12px rgba(245, 166, 35, 0.1);
    border-color: rgba(245, 166, 35, 0.4);
}
.brands-carousel .owl-item:nth-child(5n+4) a.brand-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 38px rgba(220, 53, 69, 0.2), 0 4px 12px rgba(220, 53, 69, 0.1);
    border-color: rgba(220, 53, 69, 0.38);
}
.brands-carousel .owl-item:nth-child(5n+5) a.brand-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 38px rgba(155, 89, 182, 0.2), 0 4px 12px rgba(155, 89, 182, 0.1);
    border-color: rgba(155, 89, 182, 0.38);
}

/* Logo bubble */
.brand-card__logo {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.88);
    border: 1.5px solid rgba(31, 101, 214, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 8px;
    margin-bottom: 10px;
    transition: border-color 0.26s ease, box-shadow 0.26s ease;
}

.brand-card:hover .brand-card__logo {
    box-shadow: 0 4px 14px rgba(31, 101, 214, 0.14);
}

.brand-card__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.brand-card__name {
    font-size: 11px;
    font-weight: 600;
    color: #1a2d4a;
    text-align: center;
    letter-spacing: 0.01em;
    line-height: 1.3;
    display: block;
}

/* Tighten owl item padding for this carousel */
.brands-carousel.owl-carousel .owl-item {
    padding: 4px 5px;
}

/* Suppress old image-wrapper styles inside brands-carousel */
.brands-carousel .owl-item .image-wrapper {
    all: unset;
    display: contents;
}

/* Mobile: compact card so it reads as a square tile, not a tall slim column */
@media (max-width: 575px) {
    .brands-carousel .owl-item a.brand-card {
        padding: 10px 6px 8px;
        border-radius: 12px;
    }
    .brand-card__logo {
        width: 48px;
        height: 48px;
        padding: 5px;
        margin-bottom: 6px;
    }
    .brand-card__name {
        font-size: 9px;
    }
}

/* ── Mobile menu ─────────────────────────────────────────────────────── */
.mobile-menu {
    position: fixed !important;
    top: 0 !important;
    left: -100% !important;
    width: 85vw !important;
    max-width: 320px !important;
    height: 100vh !important;
    background: #ffffff !important;
    z-index: 10001 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    transition: left 0.35s ease !important;
    box-shadow: 2px 0 20px rgba(0,0,0,0.18) !important;
    visibility: hidden !important;
    display: flex !important;
    flex-direction: column !important;
}
.mobile-menu.active {
    left: 0 !important;
    visibility: visible !important;
}

#mobileMenuBackdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 10000;
    cursor: pointer;
}
#mobileMenuBackdrop.active {
    display: block;
}

 .base-color {
     color: hsl(var(--main)) !important;
 }
 .copyInput {
     display: inline-block;
     line-height: 50px;
     position: absolute;
     top: 0;
     right: 0;
     width: 40px;
     text-align: center;
     font-size: 14px;
     cursor: pointer;
     -webkit-transition: all .3s;
     -o-transition: all .3s;
     transition: all .3s;
 }

 .copied::after {
     position: absolute;
     top: 50%;
     transform: translateY(-50%);
     right: 12%;
     width: 100px;
     display: block;
     content: "COPIED";
     font-size: 12px;
     padding: 5px 5px;
     color: #fff;
     background-color: #FF7000;
     border-radius: 3px;
     opacity: 0;
     will-change: opacity, transform;
     animation: showcopied 1.5s ease;
     -webkit-transform: translateY(-50%);
     -moz-transform: translateY(-50%);
     -ms-transform: translateY(-50%);
     -o-transform: translateY(-50%);
}

 @keyframes showcopied {
    0% {
        opacity: 0;
        transform: translateX(100%) translateY(-50%);
        -webkit-transform: translateX(100%) translateY(-50%);
        -moz-transform: translateX(100%) translateY(-50%);
        -ms-transform: translateX(100%) translateY(-50%);
        -o-transform: translateX(100%) translateY(-50%);
    }

    50% {
        opacity: 0.7;
        transform: translateX(40%) translateY(-50%);
        -webkit-transform: translateX(40%) translateY(-50%);
        -moz-transform: translateX(40%) translateY(-50%);
        -ms-transform: translateX(40%) translateY(-50%);
        -o-transform: translateX(40%) translateY(-50%);
    }

    70% {
        opacity: 1;
        transform: translateX(0) translateY(-50%);
        -webkit-transform: translateX(0) translateY(-50%);
        -moz-transform: translateX(0) translateY(-50%);
        -ms-transform: translateX(0) translateY(-50%);
        -o-transform: translateX(0) translateY(-50%);
    }

    100% {
        opacity: 0;
    }
 }

.input-group-text.copytext{
    border: 0;
}

.cookies-card {
    width: 520px;
    padding: 30px;
    color: #1E2337;
    position: fixed;
    bottom: 15px;
    left: 15px;
    z-index: 999999;
    transition: all .5s;
    background: #d1d1d1;
    border-radius: 5px;
 }

 .cookies-card.hide {
    bottom: -500px !important;
 }

 .radius--10px {
    border-radius: 10px;
 }

 .cookies-card__icon {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background-color: #6e6f70;
    color: #fff;
    font-size: 32px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
 }

 .cookies-card__content {
    margin-bottom: 0;
 }

 .cookies-btn {
    color: #363636;
    text-decoration: none;
    padding: 10px 35px;
    margin: 3px 5px;
    display: inline-block;
    border-radius: 999px;
 }

 .cookies-btn:hover {
    color: #363636;
 }


 @media (max-width: 767px) {
     .cookies-card {
        width: 100%;
        left: 0;
        bottom: 0;
        font-size: 14px;
        padding: 15px;
     }
 }

.hover-input-popup {
    position: relative;
}

 .input-popup {
     display: none;
 }

 .hover-input-popup .input-popup {
     display: block;
     position: absolute;
     bottom: 130%;
     left: 50%;
     width: 280px;
     background-color: #1a1a1a;
     color: #fff;
     padding: 20px;
     border-radius: 5px;
     -webkit-border-radius: 5px;
     -moz-border-radius: 5px;
     -ms-border-radius: 5px;
     -o-border-radius: 5px;
     -webkit-transform: translateX(-50%);
     -ms-transform: translateX(-50%);
     transform: translateX(-50%);
     -webkit-transition: all 0.3s;
     -o-transition: all 0.3s;
     transition: all 0.3s;
 }

 .input-popup::after {
     position: absolute;
     content: '';
     bottom: -19px;
     left: 50%;
     margin-left: -5px;
     border-width: 10px 10px 10px 10px;
     border-style: solid;
     border-color: transparent transparent #1a1a1a transparent;
     -webkit-transform: rotate(180deg);
     -ms-transform: rotate(180deg);
     transform: rotate(180deg);
 }

 .input-popup p {
     padding-left: 20px;
     position: relative;
 }

 .input-popup p::before {
     position: absolute;
     content: '';
     font-family: 'Line Awesome Free';
     font-weight: 900;
     left: 0;
     top: 4px;
     line-height: 1;
     font-size: 18px;
 }

 .input-popup p.error {
     text-decoration: line-through;
 }

 .input-popup p.error::before {
     content: "\f057";
     color: #ea5455;
 }

 .input-popup p.success::before {
     content: "\f058";
     color: #28c76f;
 }



 .show-filter {
     display: none;
 }

 @media(max-width:767px) {
     .responsive-filter-card {
         display: none;
         transition: none;
     }

     .show-filter {
         display: block;
     }
 }

/* ========= Responsive Hero Slider Fix ========= */
/* Override the !important height set globally so mobile gets proper sizing */
@media (max-width: 767px) {
    .hero-area .hero-slider .single-slider {
        height: 220px !important;
    }
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
    .hero-area .hero-slider .single-slider {
        height: 300px !important;
    }
}

/* Hero slide <img> fills the fixed-height container (replaces background-image)
 * — discoverable by preload scanner → directly improves LCP */
.hero-slide-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ============================================
 * CLS FIX #1 — Hero slider height reservation
 * Prevents N stacked .single-slider divs (pre-JS init)
 * from inflating section height and shifting page down.
 * overflow:hidden clips off-screen pre-init slides.
 * ============================================ */
.hero-area .slider-head .hero-slider {
    overflow: hidden;
    height: 410px; /* desktop — matches main.css .single-slider height */
    position: relative;
}
@media (min-width: 768px) and (max-width: 991px) {
    .hero-area .slider-head .hero-slider { height: 300px; }
}
@media (max-width: 767px) {
    .hero-area .slider-head .hero-slider { height: 220px; }
}

/* CLS FIX #2 — Isolate hero-area layout changes from rest of page.
 * Internal reflows (slider init, slide positioning) won't push
 * elements below the hero section around. */
.hero-area {
    contain: layout;
    background-color: transparent;
}

/* CLS FIX #3 — Reserve 1:1 space for category/brand carousel images
 * so the owl carousel grid doesn't reflow when images load.
 * NOTE: overflow:hidden is intentionally NOT set here — it clips .brand__item:hover scale. */
.owl-carousel .image-wrapper {
    aspect-ratio: 1 / 1;
}

/* ===== PRODUCT SUMMARY & DESCRIPTION: restore list styles stripped by global ul li rule ===== */
.summary ul, .summary ol,
.txt ul, .txt ol {
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}
.summary ul li, .txt ul li {
    list-style: disc !important;
    padding: 3px 0;
}
.summary ol li, .txt ol li {
    list-style: decimal !important;
    padding: 3px 0;
}

/* ===== PRODUCT DESCRIPTION: restore list styles stripped by global ul li rule ===== */
.description-wrapper .description__body ul,
.description-wrapper .description__body ol {
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}
.description-wrapper .description__body ul li {
    list-style: disc !important;
    padding: 3px 0;
}
.description-wrapper .description__body ol li {
    list-style: decimal !important;
    padding: 3px 0;
}
.description-wrapper .description__body ul ul li,
.description-wrapper .description__body ul ul {
    list-style: circle !important;
}
/* Also fix inside quick-view modal */
#productmodalView ul li {
    list-style: disc !important;
    padding: 3px 0;
}
#productmodalView ul,
#productmodalView ol {
    padding-left: 1.5rem;
    margin-bottom: 1rem;
}
#productmodalView ol li {
    list-style: decimal !important;
    padding: 3px 0;
}
/* Override: social icons inside modal must never show bullets.
   #productmodalView .social-icons li (specificity 111) beats
   #productmodalView ul li (specificity 102) above. */
#productmodalView .social-icons,
#productmodalView .social-icons li {
    list-style: none !important;
    padding-left: 0;
    margin-left: 0;
    padding-top: 0;
    padding-bottom: 0;
}

/* ===== HEADER / FOOTER / NAV ===== */

/* Nav menu links — desktop */
.menu-area .menu li a {
    color: #1f4e79 !important;
}
.menu-area .menu li a:hover,
.menu-area .menu li a.active:hover {
    color: #ffffff !important;
    background-color: #1f4e79 !important;
}

/* ── Our Services dropdown ── */
.svc-nav-item {
    position: relative;
}
.svc-nav-link {
    white-space: nowrap;
}
.svc-nav-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 230px;
    background: #fff;
    border: 1px solid #e4e9f0;
    border-top: 3px solid var(--color-primary);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
    z-index: 9999;
    list-style: none;
    padding: 6px 0;
    margin: 0;
}
.svc-nav-item:hover > .svc-nav-dropdown,
.svc-nav-item:focus-within > .svc-nav-dropdown {
    display: block;
}
.svc-nav-dropdown li a {
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 9px 18px !important;
    font-size: 0.875rem !important;
    color: #333 !important;
    background: transparent !important;
    text-decoration: none;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.svc-nav-dropdown li a:hover {
    background: var(--color-primary) !important;
    color: #fff !important;
}
.svc-nav-dropdown li a i {
    width: 18px;
    text-align: center;
    font-size: 1rem;
    opacity: 0.75;
}
.svc-nav-dropdown__all {
    border-top: 1px solid #e8edf3;
    margin-top: 4px;
}
.svc-nav-dropdown__all a {
    font-weight: 700 !important;
    color: var(--color-primary) !important;
}
.svc-nav-dropdown__all a:hover {
    color: #fff !important;
}

/* Nav menu links — mobile */
@media (max-width: 991px) {
    .menu-area .menu li a {
        color: #1f4e79 !important;
    }
}

/* Footer text */
.footer__widget ul li a,
.footer__widget ul li a:visited,
.footer__widget p,
.footer-bottom {
    color: #c8d8e8 !important;
    font-weight: 400 !important;  /* prevent browser :visited bold */
}
.footer__widget ul li a:hover {
    color: #ffffff !important;
}

/* Footer category title — clear hierarchy over sub-links */
.footer__widget .title {
    font-weight: 600 !important;
    padding-bottom: 8px !important;
    border-bottom: 1px solid rgba(255,255,255,0.15) !important;
    margin-bottom: 14px !important;
}

/* "View all →" row at bottom of each footer column */
.footer__widget ul li.view-all-link {
    margin-top: 6px;
}
.footer__widget ul li.view-all-link a,
.footer__widget ul li.view-all-link a:visited {
    color: #4FC4F7 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}
.footer__widget ul li.view-all-link a:hover {
    color: #ffffff !important;
}

/* Nav bottom border + shadow */
.header-bottom {
    border-bottom: 2px solid #c9d5e0;
    box-shadow: 0 2px 12px rgba(31, 78, 121, 0.10);
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}
@media (max-width: 767px) {
    .header-bottom {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    /* Push page content up so bottom nav doesn't overlap it */
    body {
        padding-bottom: 62px;
    }
}

/* ===== MOBILE BOTTOM NAV ===== */
.mobile-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 62px;
    background: #ffffff;
    border-top: 1px solid #c9d5e0;
    box-shadow: 0 -2px 10px rgba(31, 78, 121, 0.10);
    display: flex;
    align-items: stretch;
    z-index: 1055;
    transform: translateY(0);
    transition: transform 0.3s ease;
}
.mobile-bottom-nav.hide-nav {
    transform: translateY(100%);
}
.mobile-bottom-nav__item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: #888;
    font-size: 11px;
    text-decoration: none;
    position: relative;
    transition: color 0.2s;
    border: none;
    background: transparent;
    padding: 0;
    cursor: pointer;
    outline: none;
}
.mobile-bottom-nav__item i {
    font-size: 20px;
    line-height: 1;
}
.mobile-bottom-nav__item span {
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
}
.mobile-bottom-nav__item.active,
.mobile-bottom-nav__item:active {
    color: #1f4e79;
}
.mobile-bottom-nav__item:hover {
    color: #1f4e79;
    text-decoration: none;
}
.mobile-bottom-nav__badge {
    position: absolute;
    top: 6px;
    right: calc(50% - 18px);
    min-width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #1f4e79;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
}

/* Compact logo */
.header-wrapper .logo {
    width: 200px !important;
}
.header-wrapper .logo a {
    height: 40px !important;
}
@media (max-width: 767px) {
    .header-wrapper .logo {
        width: 150px !important;
    }
    .header-wrapper .logo a {
        height: 44px !important;
    }
}

/* ===== SPECIFICATION TABLE - Amazon style ===== */
.description-wrapper .description__body#specBody {
    padding: 0 !important;
    overflow: hidden;
}
#specBody {
    padding: 0 !important;
    overflow: hidden;
}
#specBody table {
    width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin-bottom: 0;
    font-size: 14px;
    table-layout: auto !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
/* Strip TinyMCE inline column widths and heights */
#specBody table th,
#specBody table td {
    width: auto !important;
    height: auto !important;
    border: none !important;
}
/* Hide thead if present */
#specBody table thead {
    display: none !important;
}
/* Row separator */
#specBody table tbody tr {
    border-bottom: 1px solid #e7e7e7 !important;
    height: auto !important;
}
#specBody table tbody tr:last-child {
    border-bottom: none !important;
}
/* Cells */
#specBody table tbody td {
    padding: 11px 14px;
    color: #0F1111;
    vertical-align: middle;
    background: none !important;
}
/* Left column — bold label */
#specBody table tbody td:first-child {
    font-weight: 700;
    width: 38%;
    color: #0F1111;
}
/* Right column — normal value */
#specBody table tbody td:last-child {
    font-weight: 400;
    color: #0F1111;
}
@media (max-width: 575px) {
    #specBody table {
        font-size: 13px;
    }
    #specBody table tbody td {
        padding: 9px 10px;
    }
    #specBody table tbody td:first-child {
        width: 42%;
    }
}

/* ===== SPEC TABLE: show more / show less ===== */
.spec-table-collapsed tbody tr:nth-child(n+6) {
    display: none;
}
.spec-table-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    margin-left: 14px;
    margin-bottom: 8px;
    background: none;
    border: none;
    color: #0066c0;
    font-size: 14px;
    cursor: pointer;
    padding: 4px 0;
    text-decoration: none;
}
.spec-table-toggle:hover {
    color: #c45500;
    text-decoration: underline;
}


/* ===== Service feature tiles — glassmorphism redesign ===== */
.tos-links-section {
    position: relative;
}

.tos-links .service-tile {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 20px;
    height: 100%;
    border-radius: 16px;
    cursor: default;
    background: rgba(235, 243, 255, 0.45);
    border: 1px solid rgba(31, 101, 214, 0.14);
    box-shadow: 0 4px 20px rgba(14, 54, 108, 0.07), 0 1px 4px rgba(14, 54, 108, 0.04);
    border-top: 3px solid transparent;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    color: #0f2f4d;
    flex-wrap: nowrap;
}

.tos-links .service-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(14, 54, 108, 0.13), 0 2px 8px rgba(14, 54, 108, 0.06);
}

/* Accent colour per card via nth-child */
.tos-links .col-lg-3:nth-child(1) .service-tile { border-top-color: #1a63cf; }
.tos-links .col-lg-3:nth-child(2) .service-tile { border-top-color: #0fad6e; }
.tos-links .col-lg-3:nth-child(3) .service-tile { border-top-color: #f5a623; }
.tos-links .col-lg-3:nth-child(4) .service-tile { border-top-color: #9b59b6; }

.tos-links .service-tile .icon {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

/* Icon bubble colour per card */
.tos-links .col-lg-3:nth-child(1) .service-tile .icon { background: rgba(26, 99, 207, 0.1); color: #1a63cf; }
.tos-links .col-lg-3:nth-child(2) .service-tile .icon { background: rgba(15, 173, 110, 0.1); color: #0fad6e; }
.tos-links .col-lg-3:nth-child(3) .service-tile .icon { background: rgba(245, 166, 35, 0.1);  color: #f5a623; }
.tos-links .col-lg-3:nth-child(4) .service-tile .icon { background: rgba(155, 89, 182, 0.1);  color: #9b59b6; }

.tos-links .service-tile .icon img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.tos-links .service-tile .content {
    flex: 1;
    min-width: 0;
}

.tos-links .service-tile .subtitle {
    display: block;
    font-family: "Josefin Sans", sans-serif;
    font-weight: 700;
    font-size: 14px;
    line-height: 1.3;
    color: #0f2f4d;
    margin-bottom: 3px;
}

.tos-links .service-tile .content p {
    margin-bottom: 0;
    font-size: 12px;
    color: #5a6a7a;
    line-height: 1.4;
}

@media (max-width: 1199px) and (min-width: 992px) {
    .tos-links .service-tile {
        padding: 18px 14px;
        gap: 12px;
    }
    .tos-links .service-tile .icon {
        width: 44px;
        height: 44px;
    }
}

@media (max-width: 575px) {
    .tos-links .service-tile {
        padding: 16px 14px;
    }
}


/* ===== SEO FIX: product card quickView/wishlist buttons replace <a href="javascript:void(0)"> ===== */
.product__item .product-right-btn button {
    transform: scale(.3);
    opacity: 0;
    visibility: hidden;
    transition: all ease-in .3s;
    width: 40px;
    height: 40px;
    line-height: 40px;
    display: block;
    text-align: center;
    background: #fff;
    color: #0b254a;
    border-radius: 50%;
    border: 1px solid #e3e4ff;
    font-size: 18px;
    padding: 0;
    cursor: pointer;
}
.product__item .product-right-btn button:nth-child(1) {
    transition-delay: .1s;
}
.product__item .product-right-btn button:nth-child(2) {
    transition-delay: .2s !important;
    margin-top: 5px;
}
.product__item:hover .product-right-btn button {
    transform: scale(1);
    opacity: 1;
    visibility: visible;
}
.product__item .product-right-btn button:hover {
    background: #5fa8d3;
    color: #fff !important;
    border-color: #5fa8d3;
}
.product__item .product-right-btn button.active {
    background: #5fa8d3;
    color: #fff;
    border-color: #5fa8d3;
}

/* ── Product Specification Table (Enhanced) ────────────────────────────────
   Card-style spec table: shadow, column divider, hover highlight, responsive.
   This block is LAST in the file so its !important rules win over block above.
──────────────────────────────────────────────────────────────────────────── */

/* Wrapper: card border + shadow + rounded corners */
#specBody {
    overflow: hidden !important;
    border-radius: 10px !important;
    border: 1px solid #dde3f0 !important;
    box-shadow: 0 3px 14px rgba(11,37,74,.09) !important;
    margin: 8px 0 24px !important;
    display: inline-block !important;
    width: 100% !important;
    max-width: 900px !important;
}

/* Table fills wrapper */
#specBody table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    font-size: 14px !important;
    margin: 0 !important;
    border: none !important;
    table-layout: fixed !important;
}

/* All cells */
#specBody table th,
#specBody table td {
    text-align: left !important;
    vertical-align: middle !important;
    padding: 11px 18px !important;
    border: none !important;
    border-bottom: 1px solid #e8edf8 !important;
    line-height: 1.55 !important;
    white-space: normal !important;
}

/* Optional thead (shown if TinyMCE adds one) */
#specBody table thead {
    display: table-header-group !important;
}
#specBody table thead th {
    background: #1f4e79 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
    border-bottom: none !important;
}

/* Alternating row colours */
#specBody table tbody tr:nth-child(odd) td {
    background: #f5f7fe !important;
}
#specBody table tbody tr:nth-child(even) td {
    background: #ffffff !important;
}

/* No border on last row */
#specBody table tbody tr:last-child td {
    border-bottom: none !important;
}

/* Row hover */
#specBody table tbody tr:hover td {
    background: #e6f0f8 !important;
    transition: background .14s ease !important;
}
#specBody table tbody tr:hover td:first-child {
    color: #1f4e79 !important;
}

/* Left column — spec label */
#specBody table tbody td:first-child {
    font-weight: 700 !important;
    color: #0f2f4d !important;
    width: 36% !important;
    border-right: 2px solid #d0dce8 !important;
}

/* Right column — spec value */
#specBody table tbody td:last-child {
    color: #374151 !important;
    width: 64% !important;
}

/* ── Responsive ── */
@media (max-width: 575px) {
    #specBody {
        border-radius: 6px !important;
    }
    #specBody table {
        font-size: 13px !important;
        table-layout: auto !important;
    }
    #specBody table tbody td {
        padding: 9px 11px !important;
    }
    #specBody table tbody td:first-child {
        width: 40% !important;
    }
    #specBody table tbody td:last-child {
        width: 60% !important;
    }
}

/* ===== Theme tone-down palette (2026-03) ===== */
:root {
    --theme-primary: #1f4e79;
    --theme-accent: #5fa8d3;
    --theme-surface: #f4f7fb;
    --theme-heading: #0f2f4d;
}

/* Footer — keep background image, override only the colour tint */
footer,
.footer-top,
.footer-bottom {
    background: url('./img/footer-bg.png') #1f4e79 center center !important;
}

/* Reduce gap between brand strip and category columns */
.footer-top {
    padding-top: 28px !important;
}

/* Copyright strip — one shade deeper than footer */
.bg--dark {
    background-color: #163a5f !important;
}

/* Footer scrollTop line accent */
footer .scrollTop::before {
    background: var(--theme-accent) !important;
}

body {
    background: var(--theme-surface) !important;
}

h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover,
.text--base,
.base-color,
.contact-info__icon,
.dashboard-sidebar-toggler,
.change-language span,
.loader-bg h3,
.policy-page a:hover {
    color: var(--theme-accent) !important;
}

body *::-webkit-scrollbar,
body *::-webkit-scrollbar-button,
body *::-webkit-scrollbar-thumb,
.scrollToTop,
.post__date,
.video-icon,
.owl-dots .owl-dot.active span,
.tns-controls button:hover,
.tns-controls button:focus,
.product__item .product-right-btn a:hover,
.product__item .product-right-btn a.active,
.cart-plus-minus .qtybutton.active,
.feature-card:hover,
.page-item.active .page-link,
.pagination .page-item a.active,
.pagination .page-item a:hover,
.pagination .page-item span.active,
.pagination .page-item span:hover {
    background: var(--theme-accent) !important;
    border-color: var(--theme-accent) !important;
}

/* Header search: full-width merged control with filter inside on the right */
.search-form--header {
    flex: 1 1 640px;
    max-width: none !important;
    margin-right: 14px;
}

/* Keep header action icons visible on white header background */
.header-bottom .cart--btn {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #1f4e79 !important;
    transition: transform 0.22s ease, color 0.22s ease;
}

/* Text buttons (Login/Register): keep pill geometry */
.header-bottom .cart--btn.d-lg-flex {
    width: auto !important;
    min-width: 35px;
    padding: 0 10px;
}

/* Icon-only buttons (Wishlist/Cart): keep circular geometry */
.header-bottom .cart--btn:not(.d-lg-flex) {
    width: 35px;
    height: 35px;
    padding: 0;
}

.header-bottom .cart--btn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 30%, rgba(95, 168, 211, 0.22), rgba(31, 78, 121, 0.14));
    border: 1px solid rgba(31, 78, 121, 0.18);
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.22s ease, transform 0.22s ease;
    pointer-events: none;
    z-index: -1;
}

.header-bottom .cart--btn:hover,
.header-bottom .cart--btn:focus-visible {
    color: #163a5f !important;
    transform: translateY(-2px);
}

.header-bottom .cart--btn:hover::before,
.header-bottom .cart--btn:focus-visible::before {
    opacity: 1;
    transform: scale(1);
}

.header-bottom .cart--btn i {
    transition: transform 0.22s ease;
}

.header-bottom .cart--btn:hover i,
.header-bottom .cart--btn:focus-visible i {
    transform: scale(1.08);
}

.header-bottom .cart--btn .qty {
    background: #1f4e79 !important;
    color: #ffffff !important;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.header-bottom .cart--btn:hover .qty,
.header-bottom .cart--btn:focus-visible .qty {
    transform: scale(1.07);
    box-shadow: 0 3px 10px rgba(31, 78, 121, 0.28);
}

.search--group--header {
    display: flex;
    align-items: stretch;
    width: 100%;
    border: 1px solid #c9d5e0;
    border-radius: 28px;
    overflow: hidden;
    background: #ffffff;
       position: relative;
}

.search--group--header::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(28, 85, 139, 0.95), rgba(95, 168, 211, 0.9));
    transform: scaleX(0);
    transform-origin: center;
    opacity: 0;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s ease;
    box-shadow: 0 1px 6px rgba(95, 168, 211, 0.14);
    pointer-events: none;
}

/* ── Character Stagger Animation ───────────────────────────────────────────── */
@keyframes char-fade-in {
    0% {
        opacity: 0;
        transform: translateY(5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes char-type-pulse {
    0% {
        background-color: rgba(95, 168, 211, 0.08);
        box-shadow: inset 0 0 8px rgba(95, 168, 211, 0.2);
    }
    40% {
        background-color: rgba(95, 168, 211, 0.12);
        box-shadow: inset 0 0 12px rgba(95, 168, 211, 0.3);
    }
    100% {
        background-color: transparent;
        box-shadow: inset 0 0 0 1px rgba(95, 168, 211, 0.08);
    }
}

@keyframes underline-draw {
    from {
        transform: scaleX(0);
        transform-origin: left;
    }
    to {
        transform: scaleX(1);
        transform-origin: left;
    }
}

.search--group--header .form-control {
    border: none !important;
    background: transparent !important;
    color: #333 !important;
    border-radius: 0 !important;
    flex: 1 1 auto;
    min-width: 0;
    transition: all 0.3s ease !important;
}

.search--group--header:focus-within::after {
    transform: scaleX(1);
    opacity: 1;
}

/* Apply stagger animation to each character */
.search-char {
    display: inline-block;
    animation: char-fade-in 0.15s ease-out forwards;
}

.search--group--header .form-control::placeholder {
    color: #9aabbc !important;
    transition: color 0.3s ease !important;
    opacity: 1;
}

.search--group--header .form-control:focus::placeholder {
    color: #b8c5d1 !important;
}

.search--group--header .search-category-select {
    width: 175px;
    border: none !important;
    border-radius: 0 !important;
    background-color: #ffffff !important;
    color: #3d5165 !important;
    font-size: 13px;
    padding: 0.375rem 1.9rem 0.375rem 0.75rem;
    flex: 0 0 175px;
    transition: all 0.3s ease !important;
}

.search--group--header .search-category-select:hover {
    background-color: #f8f9fb !important;
    color: #1a3a52 !important;
}

.search--group--header .form-control:focus,
.search--group--header .search-category-select:focus {
    box-shadow: none !important;
    outline: none !important;
    background-color: #f8fbfd !important;
}

.search--group--header .cmn--btn {
    background: var(--theme-primary) !important;
    border: none !important;
    border-radius: 0 !important;
    color: #fff !important;
    padding-left: 22px;
    padding-right: 22px;
    flex: 0 0 auto;
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

.search--group--header .cmn--btn:hover {
    background: #163a5f !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(22, 58, 95, 0.25) !important;
}

.search--group--header .cmn--btn:active {
    transform: translateY(0);
}

.search--group--header:focus-within {
    border-color: var(--theme-accent);
    box-shadow: 0 0 0 2px rgba(95, 168, 211, 0.12), inset 0 0 0 1px rgba(95, 168, 211, 0.08);
}

/* ── Animated Placeholder Text (Typing Effect) ──────────────────────────── */
@keyframes typing {
    0%, 5% {
        content: '';
    }
    10% { content: 'P'; }
    20% { content: 'Pr'; }
    30% { content: 'Pro'; }
    40% { content: 'Prod'; }
    50% { content: 'Produ'; }
    60% { content: 'Produc'; }
    70% { content: 'Product'; }
    80% { content: 'Products'; }
    90%, 100% { content: 'Products'; }
}

@keyframes typing-cycle-1 {
    0%, 5% { content: ''; }
    8% { content: 'L'; }
    16% { content: 'La'; }
    24% { content: 'Lap'; }
    32% { content: 'Lapt'; }
    40% { content: 'Lapto'; }
    48% { content: 'Laptop'; }
    56% { content: 'Laptops'; }
    66%, 100% { content: 'Laptops'; }
}

@keyframes typing-cycle-2 {
    0%, 5% { content: ''; }
    8% { content: 'C'; }
    16% { content: 'Ca'; }
    24% { content: 'Cam'; }
    32% { content: 'Came'; }
    40% { content: 'Camer'; }
    48% { content: 'Camera'; }
    56% { content: 'Cameras'; }
    66%, 100% { content: 'Cameras'; }
}

@keyframes typing-cycle-3 {
    0%, 5% { content: ''; }
    8% { content: 'H'; }
    16% { content: 'He'; }
    24% { content: 'Hea'; }
    32% { content: 'Head'; }
    40% { content: 'Headp'; }
    48% { content: 'Headph'; }
    56% { content: 'Headpho'; }
    64% { content: 'Headphon'; }
    72% { content: 'Headphone'; }
    80% { content: 'Headphones'; }
    90%, 100% { content: 'Headphones'; }
}

@keyframes cursor-blink {
    0%, 49% { opacity: 1; }
    50%, 100% { opacity: 0; }
}

.search--group--header .form-control::placeholder {
    color: #9aabbc !important;
    transition: color 0.3s ease !important;
    opacity: 1;
    font-style: italic;
}

.search-animated-placeholder::before {
    content: 'Products';
    display: inline;
    color: #9aabbc;
    font-style: italic;
    font-weight: 400;
    animation: typing 12s infinite;
}

.search-animated-placeholder::after {
    content: '';
    display: inline;
    width: 2px;
    height: 1em;
    background-color: #9aabbc;
    margin-left: 2px;
    animation: cursor-blink 1s infinite;
}

/* ── Search Icon Animation ─────────────────────────────────────────────────── */
@keyframes icon-pulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.9;
    }
}

@keyframes icon-rotate-search {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.search--group--header .cmn--btn i,
.search-icon-animated {
    transition: all 0.3s ease !important;
}

.search--group--header .cmn--btn:hover i {
    animation: icon-pulse 0.6s ease-in-out;
}

.search--group--header .cmn--btn:active i {
    animation: icon-rotate-search 0.5s ease-out;
}

/* Icon inside search input (for visual enhancement) */
.search-icon-wrapper {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #9aabbc;
    pointer-events: none;
    font-size: 14px;
    transition: all 0.3s ease;
    opacity: 0.6;
}

.search--group--header:focus-within .search-icon-wrapper {
    opacity: 1;
    color: var(--theme-primary);
    animation: icon-pulse 0.6s ease-in-out forwards;
}

/* Hover effect on category select - arrow animation */
.search--group--header .search-category-select {
    position: relative;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%233d5165' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px;
    padding-right: 2.5rem !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
}

.search--group--header .search-category-select:hover::after,
.search--group--header .search-category-select:focus::after {
    animation: icon-pulse 0.4s ease-in-out;
}

/* ── Responsive Media Queries ─────────────────────────────────────────────── */
@media (max-width: 1199px) {
    .search-form--header {
        flex-basis: 520px;
        margin-right: 10px;
    }

    .search--group--header .search-category-select {
        width: 150px;
        flex-basis: 150px;
    }
}

@media (max-width: 575px) {
    .search--group--header .search-category-select {
        width: 115px;
        flex-basis: 115px;
        font-size: 12px;
        padding-left: 0.55rem;
        padding-right: 1.5rem;
    }
}

/* ── Homepage live motion system ─────────────────────────────────────────── */
.home-livefx .home-reveal {
    opacity: 0;
    transform: translate3d(0, 26px, 0);
    transition: opacity 0.72s ease, transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

.home-livefx .home-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.home-livefx .hero-area .hero-slide-img {
    animation: homeHeroCinematic 14s ease-in-out infinite alternate;
    transform-origin: center center;
}

@keyframes homeHeroCinematic {
    0% {
        transform: scale(1);
        filter: saturate(1);
    }
    100% {
        transform: scale(1.04);
        filter: saturate(1.04);
    }
}

.home-livefx .product__item {
    transition: transform 0.34s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.34s ease;
    transform: translate3d(0, 0, 0);
}

.home-livefx .product__item:hover {
    transform: translate3d(0, -8px, 0);
    box-shadow: 0 16px 34px rgba(15, 47, 77, 0.16);
}

.home-livefx .product__item .product__item-img img,
.home-livefx .product__item .product-card-image {
    transition: transform 0.48s cubic-bezier(0.22, 1, 0.36, 1);
}

.home-livefx .product__item:hover .product__item-img img,
.home-livefx .product__item:hover .product-card-image {
    transform: scale(1.045);
}

/* ── Homepage promo banners (PC Builder + Blog) ───────────────────────── */
.home-promo-band {
    margin: 18px 0 10px;
}

@keyframes promoImageDrift {
    0% {
        background-position: 50% 50%;
    }
    100% {
        background-position: 58% 42%;
    }
}

@keyframes promoGlowPulse {
    0%,
    100% {
        opacity: 0.58;
        transform: scale(1);
    }
    50% {
        opacity: 0.88;
        transform: scale(1.06);
    }
}

@keyframes promoIconFloat {
    0%,
    100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-5px);
    }
}

.home-promo-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(31, 78, 121, 0.22);
    padding: 26px 28px;
    min-height: 174px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 12px 28px rgba(15, 47, 77, 0.14);
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
    animation: promoImageDrift 15s ease-in-out infinite alternate;
}

.home-promo-card::before,
.home-promo-card::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.home-promo-card::before {
    inset: 0;
    background: linear-gradient(112deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 50%);
    z-index: 0;
}

.home-promo-card::after {
    width: 240px;
    height: 240px;
    right: -62px;
    top: -108px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.46) 0%, rgba(255, 255, 255, 0) 70%);
    mix-blend-mode: screen;
    z-index: 1;
    animation: promoGlowPulse 5.2s ease-in-out infinite;
}

.home-promo-card:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 18px 34px rgba(15, 47, 77, 0.22);
}

.home-promo-card--pcbuilder {
    background-image:
        linear-gradient(122deg, rgba(9, 26, 47, 0.88) 0%, rgba(16, 52, 86, 0.7) 48%, rgba(38, 110, 162, 0.64) 100%),
        url('../../../images/frontend/banner/69a6b9fda04f41772534269.webp');
    background-size: auto, cover;
    background-repeat: no-repeat;
    color: #ffffff;
}

.home-promo-card--blog {
    background-image:
        linear-gradient(122deg, rgba(241, 248, 255, 0.95) 0%, rgba(229, 241, 252, 0.9) 45%, rgba(202, 226, 249, 0.82) 100%),
        url('../../../images/frontend/blog/69c0dda5504831774247333.webp');
    background-size: auto, cover;
    background-repeat: no-repeat;
    color: #10395d;
}

.home-promo-card__content {
    position: relative;
    z-index: 2;
    max-width: 820px;
}

.home-promo-card__tag {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 5px 11px;
    margin-bottom: 10px;
    backdrop-filter: blur(2px);
}

.home-promo-card--pcbuilder .home-promo-card__tag {
    background: rgba(255, 255, 255, 0.2);
    color: #ffffff;
}

.home-promo-card--blog .home-promo-card__tag {
    background: rgba(16, 57, 93, 0.14);
    color: #17476f;
}

.home-promo-card__title {
    margin: 0 0 8px;
    font-size: clamp(22px, 3vw, 34px);
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.home-promo-card--pcbuilder .home-promo-card__title {
    color: #ffffff !important;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.34);
}

.home-promo-card--blog .home-promo-card__title {
    color: #123a60 !important;
}

.home-promo-card__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.58;
    max-width: 680px;
}

.home-promo-card--pcbuilder .home-promo-card__text {
    color: rgba(255, 255, 255, 0.9);
}

.home-promo-card--blog .home-promo-card__text {
    color: rgba(16, 57, 93, 0.82);
}

.home-promo-card__cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 14px;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 11px 16px;
    overflow: hidden;
    border: 1px solid transparent;
    transition: transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
}

.home-promo-card__cta::before {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-110%);
    transition: transform 0.36s ease;
    background: linear-gradient(95deg, transparent 0%, rgba(255, 255, 255, 0.32) 46%, transparent 100%);
}

.home-promo-card--pcbuilder .home-promo-card__cta {
    background: linear-gradient(120deg, #ffffff 0%, #eaf5ff 100%);
    color: #0f3456;
    box-shadow: 0 8px 16px rgba(8, 27, 44, 0.25);
}

.home-promo-card--blog .home-promo-card__cta {
    background: linear-gradient(120deg, #1f4e79 0%, #2d6a9f 100%);
    color: #ffffff;
    box-shadow: 0 8px 16px rgba(31, 78, 121, 0.25);
}

.home-promo-card__cta i {
    transition: transform 0.24s ease;
}

.home-promo-card:hover .home-promo-card__cta {
    transform: translateY(-1px);
}

.home-promo-card:hover .home-promo-card__cta::before {
    transform: translateX(110%);
}

.home-promo-card:hover .home-promo-card__cta i {
    transform: translateX(4px);
}

.home-promo-card__media {
    position: relative;
    z-index: 2;
    width: 78px;
    height: 78px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 36px;
    animation: promoIconFloat 3.4s ease-in-out infinite;
}

.home-promo-card--pcbuilder .home-promo-card__media {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.12));
    color: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.24);
}

.home-promo-card--blog .home-promo-card__media {
    background: linear-gradient(145deg, rgba(17, 68, 109, 0.2), rgba(17, 68, 109, 0.1));
    color: #17476f;
    box-shadow: inset 0 0 0 1px rgba(17, 68, 109, 0.18);
}

@media (max-width: 767px) {
    .home-promo-band {
        margin: 14px 0 8px;
    }

    .home-promo-card {
        padding: 16px 16px;
        min-height: 148px;
        gap: 12px;
    }

    .home-promo-card__title {
        font-size: 20px;
    }

    .home-promo-card__text {
        font-size: 13px;
    }

    .home-promo-card__cta {
        margin-top: 10px;
        padding: 9px 13px;
        font-size: 12px;
    }

    .home-promo-card__media {
        width: 56px;
        height: 56px;
        border-radius: 14px;
        font-size: 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-livefx .home-reveal,
    .home-livefx .hero-area .hero-slide-img,
    .home-livefx .product__item,
    .home-livefx .product__item .product__item-img img,
    .home-livefx .product__item .product-card-image,
    .home-promo-card,
    .home-promo-card::after,
    .home-promo-card__media {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

/* Other form controls + section header borders */
.section__header,
.cmn--btn:not(button):hover,
.loader::after,
.input-group:focus-within .input-group-text,
.form--control:focus {
    border-color: var(--theme-primary) !important;
}

/* Headings — dark on light backgrounds */
.section__header .title,
h1, h2, h3, h4, h5, h6,
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: var(--theme-heading) !important;
}

/* Headings / links inside footer — keep them light on dark navy background */
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
footer h1 a, footer h2 a, footer h3 a, footer h4 a, footer h5 a, footer h6 a,
.footer__widget .title,
.footer__bottom__widget .title {
    color: #ffffff !important;
}

/* Footer body links */
.footer__widget ul li a {
    color: #c8d8e8 !important;
}
.footer__widget ul li a:hover {
    color: #ffffff !important;
}

.product__item-img a {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product__item-img .product-card-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ── Banner hover zoom effect ─────────────────────────────────────────── */
.banner-box {
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.banner-box:hover {
    transform: scale(1.03);
}

.banner-box img {
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.banner-box:hover img {
    transform: scale(1.015);
}

/* ── Product details: Related/Top shelf header restyle ─────────────────── */
.product-shelf-title {
    margin-bottom: 14px !important;
    padding: 9px 12px !important;
    border-radius: 9px !important;
    border: 1px solid #d4e0ec !important;
    background: linear-gradient(180deg, #ffffff 0%, #eff5fb 100%) !important;
    color: #173f66 !important;
    font-size: 24px;
    font-weight: 650;
    line-height: 1.2;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 4px 10px rgba(31, 78, 121, 0.07);
}

.product-shelf-title + .row {
    margin-top: 8px;
}

.product-shelf-carousel {
    margin-top: 8px;
}

.product-shelf-carousel .owl-stage-outer {
    padding-top: 8px;
}

.product-shelf-carousel__item {
    padding: 0 1px;
}

.product-shelf-carousel .product__item {
    height: 100%;
}

.product-shelf-carousel .owl-item {
    display: flex;
}

.product-shelf-title::before {
    content: '';
    width: 4px;
    height: 18px;
    border-radius: 999px;
    background: linear-gradient(180deg, #1f4e79 0%, #5fa8d3 100%);
    box-shadow: 0 1px 5px rgba(31, 78, 121, 0.18);
}

@media (max-width: 767px) {
    .product-shelf-title {
        padding: 8px 10px !important;
        border-radius: 8px !important;
        font-size: 20px;
    }

    .product-shelf-title + .row {
        margin-top: 6px;
    }

    .product-shelf-carousel {
        margin-top: 6px;
    }

    .product-shelf-carousel .owl-stage-outer {
        padding-top: 6px;
    }

    .product-shelf-carousel .owl-item {
        padding: 0 !important;
    }

    .product-shelf-carousel .product__item-cont {
        padding: 8px 8px 9px;
    }

    .product-shelf-carousel .product__item {
        max-width: none;
        margin: 0;
    }

    .product-shelf-carousel .product__item .title a {
        font-size: 15px;
        line-height: 1.22;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .product-shelf-carousel .product__item .info {
        font-size: 12px;
    }

    .product-shelf-carousel .product__item .d-flex.justify-content-between {
        flex-direction: row;
        align-items: center !important;
        gap: 6px;
        flex-wrap: wrap;
    }

    .product-shelf-carousel .product__item .price {
        font-size: 12px;
        line-height: 1.25;
        white-space: normal;
        word-break: break-word;
    }

    .product-shelf-carousel .product__item .price del {
        font-size: 11px;
    }

    .product-shelf-title::before {
        height: 16px;
    }
}

/* ======================================================================
 * PC BUILDER  —  Full page styles
 * Palette: primary #1f4e79 | accent #5fa8d3 | surface #f4f7fb
 * ====================================================================== */

/* ── Navbar link ─────────────────────────────────────────────────────── */
.pcb-nav-link {
    color: #1f4e79 !important;
    font-weight: 700 !important;
    border: 2px solid #1f4e79;
    border-radius: 999px;
    padding: 4px 14px !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background .2s, color .2s;
    white-space: nowrap;
}
.pcb-nav-link:hover {
    background: #1f4e79 !important;
    color: #fff !important;
}
.mobile-menu__link--pcbuilder {
    color: #1f4e79 !important;
    font-weight: 700 !important;
}
.mobile-menu__link--pcbuilder i {
    color: #5fa8d3 !important;
}

/* ── Page header ─────────────────────────────────────────────────────── */
.pcb-page-header {
    background: linear-gradient(135deg, #0f2f4d 0%, #1f4e79 60%, #2d6a9f 100%);
    padding: 14px 0 12px;
    margin-bottom: 0;
}
.pcb-page-title {
    color: #ffffff !important;
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 2px;
}
.pcb-page-title i { color: #5fa8d3 !important; }
.pcb-page-header .breadcrumb-item a { color: #a8cde8 !important; }
.pcb-page-header .breadcrumb-item.active { color: #e0ecf5 !important; }
.pcb-page-header .breadcrumb-item + .breadcrumb-item::before { color: #6a9cbf; }
.pcb-badge {
    background: rgba(255,255,255,.18);
    color: #fff;
    border: 1px solid rgba(255,255,255,.35);
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
}

/* ── Main section ────────────────────────────────────────────────────── */
.pcb-section {
    background: #f4f7fb;
    padding: 36px 0 60px;
}

/* ── Slots wrapper ───────────────────────────────────────────────────── */
.pcb-slots-wrapper {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #dde3f0;
    box-shadow: 0 2px 12px rgba(31,78,121,.07);
    overflow: hidden;
}
.pcb-slots-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 18px 22px;
    background: #f0f4fa;
    border-bottom: 1px solid #dde3f0;
    flex-wrap: wrap;
}
.pcb-slots-header h5 { color: #0f2f4d !important; font-weight: 700; }

/* ── Single slot card ────────────────────────────────────────────────── */
.pcb-slot-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 22px;
    border-bottom: 1px solid #e8edf8;
    transition: background .15s;
    flex-wrap: wrap;
}
.pcb-slot-card:last-child { border-bottom: none; }
.pcb-slot-card:hover { background: #f8fafd; }
.pcb-slot-card--selected { background: #f0f7ff; }

/* Slot icon */
.pcb-slot-left {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 220px;
    min-width: 0;
}
.pcb-slot-icon {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    background: #eef3fa;
    border: 2px solid #d0dce8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #6a9cbf;
    flex-shrink: 0;
    transition: background .2s, border-color .2s, color .2s;
}
.pcb-slot-icon--filled {
    background: #1f4e79;
    border-color: #1f4e79;
    color: #fff;
}
.pcb-slot-meta { min-width: 0; }
.pcb-slot-label {
    display: block;
    font-weight: 700;
    color: #0f2f4d;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcb-required-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background: #fdecea;
    color: #c0392b;
    border-radius: 4px;
    padding: 1px 6px;
    margin-top: 3px;
}
.pcb-optional-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background: #e8f4ed;
    color: #1a7a45;
    border-radius: 4px;
    padding: 1px 6px;
    margin-top: 3px;
}

/* Slot right side */
.pcb-slot-right {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
}
.pcb-empty-state {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.pcb-empty-text {
    color: #9aabbc;
    font-size: 13px;
}

/* Selected product inside slot */
.pcb-selected-product {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
    flex-wrap: wrap;
}
.pcb-product-thumb {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    max-height: 56px !important;
    object-fit: contain !important;
    border-radius: 8px;
    border: 1px solid #e0e8f0;
    background: #f8fafd;
    flex-shrink: 0 !important;
    display: block !important;
}
.pcb-product-info {
    flex: 1;
    min-width: 0;
}
.pcb-product-name {
    display: block;
    font-weight: 600;
    color: #0f2f4d;
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-decoration: none !important;
}
.pcb-product-name:hover { color: #1f4e79 !important; }
.pcb-product-price {
    display: block;
    color: #5fa8d3;
    font-weight: 700;
    font-size: 14px;
    margin-top: 2px;
}

/* Slot action buttons */
.pcb-slot-actions { display: flex; gap: 6px; flex-shrink: 0; }
.pcb-btn-change {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid #5fa8d3;
    background: transparent;
    color: #5fa8d3;
    font-size: 15px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background .2s, color .2s;
    padding: 0;
}
.pcb-btn-change:hover { background: #5fa8d3; color: #fff; }
.pcb-btn-remove {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid #e0472b;
    background: transparent;
    color: #e0472b;
    font-size: 15px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    transition: background .2s, color .2s;
    padding: 0;
}
.pcb-btn-remove:hover { background: #e0472b; color: #fff; }

/* ── Guide note ──────────────────────────────────────────────────────── */
.pcb-guide-note {
    margin-top: 16px;
    padding: 12px 18px;
    background: #fff8e1;
    border-left: 4px solid #f59e0b;
    border-radius: 0 8px 8px 0;
    color: #7c5c0b;
    font-size: 13px;
    line-height: 1.5;
}

/* ── Summary sidebar card ────────────────────────────────────────────── */
.pcb-summary-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #dde3f0;
    box-shadow: 0 2px 16px rgba(31,78,121,.09);
    overflow: hidden;
}
.pcb-summary-header {
    padding: 16px 20px;
    background: linear-gradient(90deg, #1f4e79, #2d6a9f);
    color: #fff;
}
.pcb-summary-header h5 { color: #fff !important; font-weight: 700; }
.pcb-summary-body { padding: 16px 20px; }
.pcb-summary-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.pcb-summary-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid #f0f4fa;
    font-size: 13px;
}
.pcb-summary-item:last-child { border-bottom: none; }
.pcb-summary-slot-name {
    color: #4a6582;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pcb-summary-slot-name i { color: #5fa8d3; }
.pcb-summary-slot-val { flex-shrink: 0; }
.pcb-summary-price { color: #0f2f4d; font-weight: 700; }
.pcb-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.pcb-total-label {
    font-weight: 700;
    color: #0f2f4d;
    font-size: 15px;
}
.pcb-total-price {
    font-weight: 800;
    color: #1f4e79;
    font-size: 20px;
}

/* ── Modal ───────────────────────────────────────────────────────────── */
.pcb-modal-header {
    background: linear-gradient(90deg, #1f4e79, #2d6a9f);
    color: #fff !important;
    border-bottom: none;
}
.pcb-modal-header h5 { color: #fff !important; }
.pcb-modal-close {
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 28px;
    line-height: 1;
    padding: 0 4px;
    cursor: pointer;
    opacity: 0.85;
    font-weight: 400;
    margin-left: auto;
}
.pcb-modal-close:hover {
    opacity: 1;
    color: #ffffff;
}
.pcb-picker-search {
    padding: 16px 20px;
    background: #f4f7fb;
    border-bottom: 1px solid #dde3f0;
}
.pcb-picker-body {
    padding: 20px;
    min-height: 240px;
}

/* Product card grid in picker modal */
.pcb-products-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}
.pcb-product-card {
    background: #fff;
    border-radius: 10px;
    border: 1px solid #e0e8f0;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
}
.pcb-product-card:hover {
    box-shadow: 0 6px 20px rgba(31,78,121,.13);
    transform: translateY(-2px);
}
.pcb-product-card__img {
    width: 100%;
    height: 140px;
    background: #f8fafd;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-bottom: 1px solid #e8edf8;
    padding: 10px;
    flex-shrink: 0;
}
.pcb-product-card__img img {
    max-width: 100% !important;
    max-height: 120px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block;
}
.pcb-product-card__body {
    padding: 12px;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.pcb-product-card__name {
    font-size: 13px;
    font-weight: 600;
    color: #0f2f4d;
    margin: 0;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pcb-product-card__price {
    font-size: 15px;
    font-weight: 800;
    color: #1f4e79;
}
.pcb-stock-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px;
    text-transform: uppercase;
}
.pcb-stock-badge--in  { background: #e8f4ed; color: #1a7a45; }
.pcb-stock-badge--out { background: #fdecea; color: #c0392b; }

/* ── Toast notification ──────────────────────────────────────────────── */
.pcb-toast {
    position: fixed;
    bottom: 80px;
    right: 20px;
    z-index: 9999;
    min-width: 280px;
    box-shadow: 0 4px 18px rgba(0,0,0,.15);
}

/* ── Multi-select slot (Accessories) ─────────────────────────────────── */
.pcb-slot-right--multi {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 8px;
    padding: 6px 0;
}
.pcb-multi-list {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pcb-multi-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f0f7ff;
    border: 1px solid #d0e4f5;
    border-radius: 8px;
    padding: 7px 10px;
    width: 100%;
    animation: pcbFadeIn .25s ease;
}
@keyframes pcbFadeIn {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.pcb-multi-item .pcb-product-info {
    flex: 1;
    min-width: 0;
}
.pcb-multi-item .pcb-btn-remove {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    font-size: 13px;
}
/* "Add Accessory" button inside multi slot */
.pcb-slot-right--multi .cmn--btn {
    font-size: 13px;
    padding: 6px 14px !important;
}

/* ── Responsive adjustments ──────────────────────────────────────────── */
@media (max-width: 767px) {
    .pcb-page-header   { padding: 10px 0 8px; }
    .pcb-page-title    { font-size: 1.25rem; }
    .pcb-slot-card     { padding: 12px 14px; flex-wrap: wrap; gap: 10px; }
    .pcb-slot-left     { flex: 0 0 100%; }
    .pcb-slot-right    { width: 100%; justify-content: flex-start; }
    .pcb-empty-state   { width: 100%; }
    .pcb-products-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .pcb-product-card  { width: 100%; max-width: 100%; }
    .pcb-product-card__img { width: 100%; height: 110px; }
    .pcb-picker-body   { padding: 14px; }
}
@media (max-width: 575px) {
    .pcb-products-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .pcb-product-card__img { width: 100%; height: 100px; }
    .pcb-product-card__name { font-size: 12px; }
}

/* ── All Categories dropdown hover — desktop ─────────────────────────────── */
@media (min-width: 992px) {
    .header-menu .category-link-area .category-link li > a:hover {
        background-color: #aa375d !important;
        color: #ffffff !important;
        height: auto !important;
    }
}

/* ===== CATEGORY & BRAND DESCRIPTIONS ===== */
/* Above-the-fold: Short description (1-2 sentences) */
.category-short-description {
    background: #f0f7fe;
    border-left: 4px solid var(--theme-accent);
    border-radius: 0 8px 8px 0;
    padding: 14px 18px;
    margin-bottom: 24px;
}
.category-short-description p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #4a6582;
}

/* Below-the-fold: Long description (detailed SEO content) */
.category-long-description {
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid #dde3f0;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(31, 78, 121, 0.08);
}
.category-long-description h2 {
    color: var(--theme-heading) !important;
    font-size: 1.35rem !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--theme-surface);
}
.category-desc-content {
    color: #4a6582;
    font-size: 14px;
}
.category-desc-content p {
    margin-bottom: 12px;
    line-height: 1.7;
}
.category-desc-content ul,
.category-desc-content ol {
    padding-left: 1.5rem;
    margin-bottom: 16px;
}
.category-desc-content li {
    margin-bottom: 8px;
    line-height: 1.6;
}
.category-desc-content strong {
    color: var(--theme-heading);
    font-weight: 600;
}

/* Responsive adjustments */
@media (max-width: 767px) {
    .category-short-description {
        padding: 12px 14px;
        margin-bottom: 18px;
    }
    .category-short-description p {
        font-size: 13px;
    }
    .category-long-description {
        padding: 16px;
    }
    .category-long-description h2 {
        font-size: 1.15rem !important;
        margin-bottom: 12px !important;
    }
    .category-desc-content {
        font-size: 13px;
    }
}

/* ══════════════════════════════════════════════════════════════════════
   WHATSAPP FLOATING CHAT BUTTON
   ══════════════════════════════════════════════════════════════════════ */
.whatsapp-btn {
    position: fixed;
    bottom: 30px;
    right: 20px;
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #25d366, #20ba5d);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 28px;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    z-index: 9000;
    border: none;
    text-decoration: none;
    cursor: pointer;
}

.whatsapp-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.5);
    bottom: 35px;
}

.whatsapp-btn:active {
    transform: scale(0.95);
}

@media (max-width: 575px) {
    .whatsapp-btn {
        width: 50px;
        height: 50px;
        font-size: 24px;
        bottom: 20px;
        right: 15px;
    }
    
    .whatsapp-btn:hover {
        bottom: 25px;
    }
}

/* ── Site-wide page background gradient ────────────────────────────────────
   Matches the repair-status page visual: soft blue fade + corner colour blobs
   + two animated blurred orbs. Pages that define their own bg will override.
   ────────────────────────────────────────────────────────────────────────── */
#main-content {
    background:
        radial-gradient(circle at 8% 10%, rgba(31, 101, 214, 0.11), transparent 24%),
        radial-gradient(circle at 90% 14%, rgba(244, 95, 124, 0.13), transparent 26%),
        linear-gradient(180deg, #f5f9ff 0%, #edf2fa 100%);
    position: relative;
    isolation: isolate;
}

#main-content::before,
#main-content::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: -1;
    filter: blur(8px);
    opacity: .45;
}

#main-content::before {
    width: 340px;
    height: 340px;
    left: -90px;
    top: 160px;
    background: radial-gradient(circle, rgba(40, 120, 255, .22), rgba(40, 120, 255, .02));
    animation: siteOrbA 18s ease-in-out infinite;
}

#main-content::after {
    width: 300px;
    height: 300px;
    right: -80px;
    top: 240px;
    background: radial-gradient(circle, rgba(244, 95, 124, .18), rgba(244, 95, 124, .02));
    animation: siteOrbB 22s ease-in-out infinite;
}

@keyframes siteOrbA {
    0%, 100% { transform: translate(0, 0); }
    50%       { transform: translate(38px, -26px); }
}

@keyframes siteOrbB {
    0%, 100% { transform: translate(0, 0); }
    50%       { transform: translate(-42px, 30px); }
}

/* ── Mobile distributed banner strips ─────────────────────────────────────
   Shown only on mobile (d-md-none). Constrained height so they read as
   compact editorial breaks between product sections, not full-page images.
   ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
    .mobile-banner-half {
        max-height: 95px;
        object-fit: cover;
        object-position: center;
    }
}

/* ── CSS-only mobile promo strips (no image — no crop issues) ──────────────
   Two variants: repair (navy-blue) and delivery (forest-green).
   ────────────────────────────────────────────────────────────────────────── */
.mobile-promo-strip {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 14px;
    text-decoration: none;
    color: #ffffff;
    min-height: 72px;
    position: relative;
    overflow: hidden;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

/* Shimmer sweep — auto-loops every 3.5s */
.mobile-promo-strip::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,0.28) 50%, transparent 70%);
    transform: skewX(-18deg);
    animation: promoStripShimmer 3.5s ease-in-out infinite;
    pointer-events: none;
}

@keyframes promoStripShimmer {
    0%   { left: -75%; }
    55%  { left: 130%; }
    100% { left: 130%; }
}

.mobile-promo-strip::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(108deg, rgba(255,255,255,0.13) 0%, transparent 55%);
    pointer-events: none;
}
.mobile-promo-strip:active {
    transform: scale(0.98);
}

/* Repair variant */
.mobile-promo-strip--repair {
    background: linear-gradient(108deg, #0c2340 0%, #15527d 55%, #1e7db8 100%);
    box-shadow: 0 6px 18px rgba(12, 35, 64, 0.32);
}

/* Genuine Products variant */
.mobile-promo-strip--genuine {
    background: linear-gradient(108deg, #5c3200 0%, #a05c00 55%, #c97e00 100%);
    box-shadow: 0 6px 18px rgba(92, 50, 0, 0.35);
}

/* Icon pulse */
.mobile-promo-strip__icon {
    font-size: 30px;
    opacity: 0.92;
    flex-shrink: 0;
    line-height: 1;
    animation: promoIconPulse 2.8s ease-in-out infinite;
}

@keyframes promoIconPulse {
    0%, 100% { transform: scale(1);    opacity: 0.92; }
    50%       { transform: scale(1.18); opacity: 1;    }
}

.mobile-promo-strip__body {
    flex: 1;
    line-height: 1.3;
}
.mobile-promo-strip__body strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #ffffff !important;
}
.mobile-promo-strip__body span {
    display: block;
    font-size: 11px;
    color: rgba(255,255,255,0.82) !important;
    margin-top: 2px;
}

.mobile-promo-strip__cta {
    font-size: 12px;
    font-weight: 700;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.32);
    border-radius: 999px;
    padding: 5px 12px;
    white-space: nowrap;
    flex-shrink: 0;
    color: #ffffff !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* Arrow bounce inside CTA */
.mobile-promo-strip__cta i {
    animation: promoArrowBounce 1.6s ease-in-out infinite;
}

@keyframes promoArrowBounce {
    0%, 100% { transform: translateX(0);   }
    50%       { transform: translateX(3px); }
}


/* ═══════════════════════════════════════════════════════════════
   Homepage UI/UX improvements — v2
   ═══════════════════════════════════════════════════════════════ */

/* ── 1. Promo card body text: hidden on small phones ─────────── */
@media (max-width: 575px) {
    .home-promo-card__text {
        display: none;
    }
}

/* ── 2. "Add to Cart" always visible on touch/mobile screens ─── */
/*      On desktop hover reveals the button; on touch it never    */
/*      triggers so we make it always visible for mobile UX.      */

/* ── Product card bottom section alignment (mobile col-6 cards) ─────────────
   Layout: [In Stock ............ ★★★★☆]
           [Rs18,450  Rs22,500̶        ]
   ─────────────────────────────────────────────────────────────────────────── */
@media (max-width: 575px) {
    .product__item-cont {
        padding: 10px 10px 12px;
    }
    .product__item-cont .title {
        font-size: 12px;
        margin-bottom: 3px;
    }
    /* Stock + ratings row */
    .product__stock-rating-row {
        gap: 4px;
    }
    .product__stock-rating-row .info {
        font-size: 11px;
        white-space: nowrap;
    }
    .product__stock-rating-row .ratings {
        font-size: 10px;
        flex-shrink: 0;
    }
    /* Price row */
    .product__item-cont .price {
        font-size: 13px;
        font-weight: 700;
        line-height: 1.3;
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 4px;
    }
    .product__item-cont .price del {
        font-size: 11px;
        font-weight: 400;
        opacity: 0.75;
    }
}

/* ── Mobile product card interactions ──────────────────────────────────────── */

/* Cart button: ghost transparent icon, always visible on touch devices */
@media (hover: none) {
    .product__item .hover-cont-wrapper {
        position: absolute;
        opacity: 1;
        visibility: visible;
        bottom: 6px;
        right: 6px;
        left: auto;
        width: auto;
        background: transparent;
        border-top: none;
        padding: 0;
    }
    .product__item .hover-cont-area {
        max-width: none;
        margin: 0;
    }
    /* Ghost transparent icon-only cart button */
    .product__item .hover-cont-area .add-to-cart {
        width: auto;
        height: auto;
        min-width: 0;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        border-radius: 0;
        padding: 2px 4px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        line-height: 1;
        color: inherit !important;
        text-shadow: none !important;
        filter: drop-shadow(0 1px 1px rgba(11, 37, 74, 0.28)) drop-shadow(0 0 3px rgba(79, 196, 247, 0.52));
    }
    .product__item .hover-cont-area .add-to-cart:hover,
    .product__item .hover-cont-area .add-to-cart:active {
        background: transparent !important;
        border: none !important;
        color: inherit !important;
        filter: drop-shadow(0 1px 2px rgba(11, 37, 74, 0.36)) drop-shadow(0 0 5px rgba(79, 196, 247, 0.78));
    }
    .product__item .hover-cont-area .add-to-cart .cart-btn-text {
        display: none;
    }
    .product__item .hover-cont-area .add-to-cart i {
        margin: 0;
    }
}

/* Wishlist & quick-view: pop up when product card gets .active (via JS tap) */
.product__item.active .product-right-btn a {
    transform: scale(1) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* ── 3. Section header colour accent bars ────────────────────── */
/*      Thin left-border accent gives each section a visual cue.  */
.today-deal-section .section__header .title,
.hot-deal-section .section__header .title,
.new-arrivals-section .section__header .title,
.best-selling-section .section__header .title {
    position: relative;
    padding-left: 14px;
}

.today-deal-section .section__header .title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    border-radius: 2px;
    background: linear-gradient(180deg, #c0392b 0%, #ff6b6b 100%);
}

.hot-deal-section .section__header .title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    border-radius: 2px;
    background: linear-gradient(180deg, #e65c00 0%, #f9a825 100%);
}

.new-arrivals-section .section__header .title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    border-radius: 2px;
    background: linear-gradient(180deg, #0a7640 0%, #34d399 100%);
}

.best-selling-section .section__header .title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    border-radius: 2px;
    background: linear-gradient(180deg, #7c3aed 0%, #a78bfa 100%);
}

/* ── 4. Hero "Shop Now" — larger tap target on mobile ────────── */
@media (max-width: 767px) {
    .hero-area .button-bottom-right .btn {
        padding: 8px 18px !important;
        font-size: 13px !important;
        border-radius: 6px;
    }
}

/* ── 5. Scroll-to-top: clear the 62px mobile bottom nav ─────── */
@media (max-width: 991px) {
    .scrollToTop {
        bottom: 74px;
        right: 14px;
    }
}

/* ── 6. Today's Deal urgency progress bar ───────────────────── */
.deal-progress-wrap {
    width: 100%;
    height: 3px;
    background: rgba(0, 0, 0, 0.07);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 16px;
}

.deal-progress-bar {
    height: 100%;
    border-radius: 2px;
    background: linear-gradient(90deg, #c0392b 0%, #ff6b6b 60%, #ffb347 100%);
    transition: width 1s linear;
    width: 100%;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PRODUCT CARD POLISH
   1. Rounded card + shadow      5. Price in brand colour
   2. Image area background      6. Out-of-Stock dimming
   3. Discount badge pill        7. Cart tap scale feedback
   4. Title 2-line clamp
   ═══════════════════════════════════════════════════════════════════════════ */

/* 1 ── Rounded card + subtle shadow + soft border ─────────────────────── */
.product__item {
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: visible;
}
/* Image area: overflow visible so badge at top:-10px isn't clipped */
.product__item-img {
    overflow: visible;
    border-radius: 10px 10px 0 0;
}
/* Clip image zoom on the <a> tag instead — badge is a sibling so it stays visible */
.product__item-img > a {
    display: block;
    overflow: hidden;
    border-radius: 10px 10px 0 0;
}

/* 2 ── White image area background (consistent with card) ──────────────── */
.product__item-img {
    background: #ffffff;
}

/* 3 ── Discount badge: overflow corner style matching original (no position override) */
.product__item-img .badge--discount {
    background: #e53935;
    border: none;
    color: #fff !important;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 4px;
    line-height: 1.3;
    letter-spacing: 0.2px;
    min-width: 0;
}
.product__item-img .badge--discount i {
    font-size: 9px;
    margin-right: 1px;
    vertical-align: middle;
}

/* 4 ── Title: 2-line clamp + separator line below ──────────────────────── */
.product__item-cont .title {
    padding-bottom: 7px;
    margin-bottom: 6px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}
.product__item-cont .title a {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

/* 5 ── Price in brand colour ───────────────────────────────────────────── */
.product__item-cont .price {
    color: var(--base-color, #4fc4f7);
}
.product__item-cont .price del {
    color: #999;
}

/* 6 ── Out-of-Stock: dim image + disable cart ──────────────────────────── */
.product__item:has(.info.text--danger) .product__item-img img,
.product__item:has(.info.text--danger) .product-card-image {
    opacity: 0.45;
    filter: grayscale(40%);
}
.product__item:has(.info.text--danger) .add-to-cart {
    pointer-events: none;
    opacity: 0.3;
    cursor: not-allowed;
}

/* 7 ── Cart tap scale feedback (touch devices only) ────────────────────── */
@media (hover: none) {
    .product__item .hover-cont-area .add-to-cart {
        transition: transform 0.1s ease, filter 0.1s ease;
    }
    .product__item .hover-cont-area .add-to-cart:active {
        transform: scale(0.80) !important;
        filter: drop-shadow(0 1px 2px rgba(11, 37, 74, 0.36)) drop-shadow(0 0 6px rgba(79, 196, 247, 0.82)) !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FOOTER REDESIGN — S3 TECH
   Easing tokens, brand strip, animated links, newsletter, contact bubbles,
   social buttons, copyright bar. All GPU-accelerated (transform + opacity).
═══════════════════════════════════════════════════════════════════════════ */

/* ── Easing tokens ───────────────────────────────────────────────────── */
:root {
    --ft-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ft-ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}

/* ── Keyframes ───────────────────────────────────────────────────────── */
@keyframes ft-fade-up {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes ft-brand-in {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes ft-glow-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(79, 196, 247, 0); }
    50%      { box-shadow: 0 0 14px 3px rgba(79, 196, 247, 0.25); }
}

/* ── Brand Strip ─────────────────────────────────────────────────────── */
.footer-brand-strip {
    border-bottom: 1px solid rgba(79, 196, 247, 0.22);
    padding: 22px 0 18px;
}
.footer-brand-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    animation: ft-brand-in 0.55s var(--ft-ease-out) both;
}
.footer-brand-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none !important;
    filter: brightness(1.1);
    transition: filter 0.2s var(--ft-ease-out), transform 0.2s var(--ft-ease-out);
}
.footer-brand-logo:hover {
    filter: brightness(1.35);
    transform: scale(1.03);
}
.footer-brand-name {
    font-family: "Josefin Sans", sans-serif;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.12em;
}
.footer-brand-tagline {
    margin: 0;
    font-size: 12px;
    color: rgba(79, 196, 247, 0.8);
    letter-spacing: 0.04em;
}

/* ── Column Widget Titles — accent border, better hierarchy ─────────── */
.footer__widget .title {
    position: relative;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #fff !important;
    padding-bottom: 10px !important;
    margin-bottom: 16px !important;
    border-bottom: none !important;
}
.footer__widget .title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 28px;
    height: 2px;
    background: #4FC4F7;
    border-radius: 2px;
    transition: width 0.3s var(--ft-ease-out);
}
.footer__widget:hover .title::after {
    width: 48px;
}

/* ── Animated link rows ──────────────────────────────────────────────── */
.footer__widget ul li {
    overflow: hidden;
}
.footer__widget ul li a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px !important;
    color: rgba(200, 216, 232, 0.82) !important;
    transition: color 0.18s var(--ft-ease-out), transform 0.18s var(--ft-ease-out) !important;
    will-change: transform;
}
.footer__widget ul li a::before {
    content: '→' !important;
    display: inline-block !important;
    font-size: 11px !important;
    background: none !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    color: #4FC4F7 !important;
    transform: translateX(-4px);
    opacity: 0;
    transition: opacity 0.18s var(--ft-ease-out), transform 0.18s var(--ft-ease-out) !important;
}
.footer__widget ul li a:hover {
    color: #ffffff !important;
    transform: translateX(6px) !important;
}
.footer__widget ul li a:hover::before {
    opacity: 1 !important;
    transform: translateX(0) !important;
}

/* ── "View all →" link ──────────────────────────────────────────────── */
.footer__widget ul li.view-all-link {
    margin-top: 8px !important;
}
.footer__widget ul li.view-all-link a,
.footer__widget ul li.view-all-link a:visited {
    color: #4FC4F7 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
}
.footer__widget ul li.view-all-link a:hover {
    color: #fff !important;
}

/* ── Divider between footer-top and footer-bottom ───────────────────── */
.footer-bottom {
    border-top: 1px solid rgba(79, 196, 247, 0.15) !important;
    position: relative;
}
.footer-bottom::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #4FC4F7, transparent);
    border-radius: 2px;
}

/* ── Bottom widget titles ────────────────────────────────────────────── */
.footer__bottom__widget .title {
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #fff !important;
    padding-bottom: 10px !important;
    margin-bottom: 16px !important;
    position: relative;
}
.footer__bottom__widget .title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 28px;
    height: 2px;
    background: #4FC4F7;
    border-radius: 2px;
}

/* ── Newsletter form — glowing focus, pill button ────────────────────── */
.footer__bottom__widget p {
    font-size: 13px !important;
    color: rgba(200, 216, 232, 0.75) !important;
    line-height: 1.6 !important;
}
.newletter-form .form-control {
    height: 46px !important;
    background: rgba(255, 255, 255, 0.07) !important;
    color: #fff !important;
    border: 1px solid rgba(79, 196, 247, 0.25) !important;
    border-right: none !important;
    border-radius: 8px 0 0 8px !important;
    box-shadow: none !important;
    font-size: 13px !important;
    transition: border-color 0.2s var(--ft-ease-out), background 0.2s var(--ft-ease-out) !important;
}
.newletter-form .form-control:focus {
    background: rgba(255, 255, 255, 0.11) !important;
    border-color: rgba(79, 196, 247, 0.65) !important;
    box-shadow: 0 0 0 3px rgba(79, 196, 247, 0.12) !important;
    outline: none !important;
}
.newletter-form .form-control::placeholder {
    color: rgba(200, 216, 232, 0.45) !important;
}
.newletter-form .cmn--btn.subscribe-btn {
    width: 48px !important;
    padding: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    transition: transform 0.15s var(--ft-ease-out), filter 0.15s var(--ft-ease-out) !important;
}
.newletter-form .cmn--btn.subscribe-btn:hover {
    transform: scale(1.06) !important;
    filter: brightness(1.15) !important;
}
.newletter-form .cmn--btn.subscribe-btn:active {
    transform: scale(0.96) !important;
}

/* ── Contact list with icon bubbles ─────────────────────────────────── */
.footer-contact-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 18px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}
.footer-contact-list li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    color: rgba(200, 216, 232, 0.82) !important;
    font-size: 13.5px !important;
    line-height: 1.5 !important;
}
.footer-contact-list li a {
    color: rgba(200, 216, 232, 0.82) !important;
    text-decoration: none !important;
    transition: color 0.18s var(--ft-ease-out) !important;
}
.footer-contact-list li a:hover {
    color: #fff !important;
}
.footer-contact-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 6px !important;
    background: rgba(79, 196, 247, 0.12) !important;
    border: 1px solid rgba(79, 196, 247, 0.2) !important;
    color: #4FC4F7 !important;
    font-size: 13px !important;
    transition: background 0.18s var(--ft-ease-out), transform 0.18s var(--ft-ease-out) !important;
}
.footer-contact-list li:hover .footer-contact-icon {
    background: rgba(79, 196, 247, 0.22) !important;
    transform: scale(1.1) !important;
}

/* ── Social icons — framed buttons with fill animation ──────────────── */
.footer-social-icons.social-icons {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    justify-content: flex-start !important;
}
.footer-social-icons.social-icons li a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.07) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    color: rgba(200, 216, 232, 0.75) !important;
    font-size: 15px !important;
    text-decoration: none !important;
    transition: background 0.2s var(--ft-ease-out),
                color 0.2s var(--ft-ease-out),
                transform 0.18s var(--ft-ease-out),
                border-color 0.2s var(--ft-ease-out) !important;
    will-change: transform;
}
.footer-social-icons.social-icons li a:hover {
    background: #4FC4F7 !important;
    border-color: #4FC4F7 !important;
    color: #0d1f35 !important;
    transform: translateY(-3px) scale(1.08) !important;
}
.footer-social-icons.social-icons li a:active {
    transform: scale(0.95) !important;
}

/* ── Copyright bar ───────────────────────────────────────────────────── */
.copyright-area {
    border-top: 1px solid rgba(255, 255, 255, 0.07) !important;
    padding: 16px 0 !important;
    font-size: 12.5px !important;
    color: rgba(200, 216, 232, 0.55) !important;
}
.copyright-area .copyright a,
.copyright-area .policy-page a {
    color: rgba(200, 216, 232, 0.55) !important;
    text-decoration: none !important;
    transition: color 0.18s var(--ft-ease-out) !important;
}
.copyright-area .copyright a:hover,
.copyright-area .policy-page a:hover {
    color: #fff !important;
}
.copyright-area .policy-page a + a {
    margin-left: 4px !important;
}

/* ── Scroll-reveal animation for footer widgets ──────────────────────── */
footer .footer__widget,
footer .footer__bottom__widget {
    animation: ft-fade-up 0.55s var(--ft-ease-out) both;
}
footer .footer__widget:nth-child(1) { animation-delay: 0ms; }
footer .footer__widget:nth-child(2) { animation-delay: 50ms; }
footer .footer__widget:nth-child(3) { animation-delay: 100ms; }
footer .footer__widget:nth-child(4) { animation-delay: 150ms; }
footer .footer__widget:nth-child(5) { animation-delay: 200ms; }
footer .footer__widget:nth-child(6) { animation-delay: 250ms; }
footer .footer__widget:nth-child(7) { animation-delay: 300ms; }
footer .footer__widget:nth-child(8) { animation-delay: 350ms; }
footer .footer__bottom__widget:nth-child(1) { animation-delay: 80ms; }
footer .footer__bottom__widget:nth-child(2) { animation-delay: 180ms; }

/* ── Newsletter glow pulse on page load ─────────────────────────────── */
.newletter-form .form-control:focus-within {
    animation: ft-glow-pulse 2s ease infinite;
}

/* ── Reduced motion: kill all footer animations ──────────────────────── */
@media (prefers-reduced-motion: reduce) {
    footer .footer__widget,
    footer .footer__bottom__widget,
    .footer-brand-inner,
    .footer__widget ul li a,
    .footer-contact-icon,
    .footer-social-icons.social-icons li a,
    .newletter-form .form-control,
    .newletter-form .cmn--btn.subscribe-btn {
        animation: none !important;
        transition: none !important;
    }
    .footer__widget ul li a:hover { transform: none !important; }
}

/* ── Mobile: tighten tos-links-section & footer spacing ─────────────── */
@media (max-width: 767px) {
    /* Service tiles section above footer — halve the vertical padding */
    .tos-links-section {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
    }
    /* Footer brand strip — compact on small screens */
    .footer-brand-strip {
        padding: 14px 0 12px !important;
    }
    /* Reduce top/bottom section padding inside footer */
    .footer-top,
    .footer-bottom {
        padding: 20px 0 !important;
    }
    /* Tighter widget bottom margin on mobile */
    .footer__widget {
        margin-bottom: 20px !important;
    }
    /* Copyright bar compact */
    .copyright-area {
        padding: 12px 0 !important;
        flex-direction: column !important;
        gap: 6px !important;
        text-align: center !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   SCROLL-REVEAL ANIMATIONS — Footer & Service Tiles
   Elements start hidden; JS adds .is-visible when they enter viewport.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Base hidden states ────────────────────────────────────────────── */
[data-animate="fade-up"] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s var(--ft-ease-out), transform 0.55s var(--ft-ease-out);
}
[data-animate="fade-left"] {
    opacity: 0;
    transform: translateX(-28px);
    transition: opacity 0.5s var(--ft-ease-out), transform 0.5s var(--ft-ease-out);
}
[data-animate="fade-right"] {
    opacity: 0;
    transform: translateX(28px);
    transition: opacity 0.5s var(--ft-ease-out), transform 0.5s var(--ft-ease-out);
}
[data-animate="scale-pop"] {
    opacity: 0;
    transform: scale(0.78);
    transition: opacity 0.4s var(--ft-ease-out), transform 0.4s var(--ft-ease-out);
}
[data-animate="fade-in"] {
    opacity: 0;
    transition: opacity 0.6s ease;
}

/* ── Visible (triggered) state ─────────────────────────────────────── */
[data-animate].is-visible {
    opacity: 1;
    transform: none;
}

/* ── Stagger delays via data-delay attribute ───────────────────────── */
[data-delay="50"]  { transition-delay: 50ms;  }
[data-delay="100"] { transition-delay: 100ms; }
[data-delay="150"] { transition-delay: 150ms; }
[data-delay="200"] { transition-delay: 200ms; }
[data-delay="250"] { transition-delay: 250ms; }
[data-delay="300"] { transition-delay: 300ms; }
[data-delay="350"] { transition-delay: 350ms; }
[data-delay="400"] { transition-delay: 400ms; }
[data-delay="450"] { transition-delay: 450ms; }
[data-delay="500"] { transition-delay: 500ms; }

/* ── Reduced motion: skip all scroll-reveal transitions ────────────── */
@media (prefers-reduced-motion: reduce) {
    [data-animate] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   MOBILE NAV — PC Builder highlighted button
   ═══════════════════════════════════════════════════════════════════════ */

@keyframes pcb-ring-pulse {
    0%   { box-shadow: 0 0 0 0   rgba(79, 196, 247, 0.55); }
    60%  { box-shadow: 0 0 0 7px rgba(79, 196, 247, 0); }
    100% { box-shadow: 0 0 0 0   rgba(79, 196, 247, 0); }
}

@keyframes pcb-icon-bounce {
    0%, 100% { transform: translateY(0) scale(1);    }
    40%      { transform: translateY(-4px) scale(1.15); }
    70%      { transform: translateY(1px) scale(0.95); }
}

/* Wrapper that acts as the glowing pill around the icon */
.mobile-bottom-nav__item--pcbuilder .pcb-icon-wrap {
    width: 36px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1f4e79 0%, #2e6da4 100%);
    border-radius: 10px;
    animation: pcb-ring-pulse 2.2s ease-out infinite;
    transition: background 0.2s, transform 0.15s;
}

.mobile-bottom-nav__item--pcbuilder .pcb-icon-wrap i {
    font-size: 18px;
    color: #4FC4F7;
    animation: pcb-icon-bounce 2.2s ease-in-out infinite;
    line-height: 1;
    display: block;
}

/* Override the default icon font-size for this item */
.mobile-bottom-nav__item--pcbuilder i {
    font-size: 18px !important;
}

/* Active & hover state */
.mobile-bottom-nav__item--pcbuilder {
    color: #4FC4F7 !important;
}
.mobile-bottom-nav__item--pcbuilder:hover .pcb-icon-wrap,
.mobile-bottom-nav__item--pcbuilder.active .pcb-icon-wrap {
    background: linear-gradient(135deg, #2e6da4 0%, #4FC4F7 100%);
    transform: scale(1.1);
}
.mobile-bottom-nav__item--pcbuilder span:last-child {
    font-weight: 700;
    color: #4FC4F7;
    font-size: 10px;
    letter-spacing: 0.02em;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    .mobile-bottom-nav__item--pcbuilder .pcb-icon-wrap,
    .mobile-bottom-nav__item--pcbuilder .pcb-icon-wrap i {
        animation: none !important;
    }
}

/* ── Description / Specifications / Reviews tab header ─────────────── */
.description-wrapper .description__header {
    background: #fff !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    border-bottom: 2px solid #e3e4ff !important;
}

.description-wrapper .description__header .nav--tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0 8px;
}

.description-wrapper .description__header .nav--tabs li {
    list-style: none;
}

.description-wrapper .description__header .nav--tabs li a {
    display: block;
    padding: 12px 18px !important;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #666 !important;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: color 0.2s, border-color 0.2s;
}

.description-wrapper .description__header .nav--tabs li a.active {
    color: #4FC4F7 !important;
    font-weight: 800;
    border-bottom-color: #4FC4F7;
}

.description-wrapper .description__header .nav--tabs li a:hover:not(.active) {
    color: #0b254a !important;
    border-bottom-color: #ccc;
}

@media (max-width: 575px) {
    .description-wrapper .description__header .nav--tabs {
        padding: 0 4px;
    }
    .description-wrapper .description__header .nav--tabs li a {
        padding: 10px 12px !important;
        font-size: 12px;
    }
}

