/* =========================================================
   NATURAL FAB — DESIGN SYSTEM
   Vintage Indian handloom heritage + modern e-commerce
   ========================================================= */

:root{
  /* Brand core */
  --color-primary:      #9B4429;
  --color-primary-dark: #7C3620;
  --color-bg:           #F8F1E7;
  --color-text:         #1e0f03;

  /* Derived, palette-consistent tones */
  --color-bg-alt:       #F1E5D3;   /* slightly deeper cream for section rhythm */
  --color-surface:      #FFFDF9;   /* near-white cream for cards on alt bg */
  --color-tint:         #E9D9C6;   /* soft terracotta-cream tint: badges, chips */
  --color-tint-dark:    #DCC3AA;
  --color-text-muted:   #6E6459;   /* softened text for supporting copy */
  --color-border:       rgba(41,37,34,0.14);
  --color-border-strong:rgba(41,37,34,0.24);
  --color-on-primary:   #F8F1E7;

  --font-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-sans:  'Jost', 'Segoe UI', Arial, sans-serif;

  --container-max: 1280px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --shadow-card: 0 1px 2px rgba(41,37,34,0.06);
  --shadow-lift: 0 10px 30px -12px rgba(41,37,34,0.28);

  --header-h: 78px;
  --announce-h: 40px;
}

/* =========================================================
   BASE
   ========================================================= */
*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  font-family: var(--font-sans);
  background: var(--color-bg);
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

.container{ max-width: var(--container-max); }

h1,h2,h3,h4{
  font-family: var(--font-serif);
  color: var(--color-text);
  font-weight: 500;
  letter-spacing: -0.01em;
  margin: 0;
}

p{ margin:0; }

a{ color: inherit; text-decoration:none; }

img{ max-width:100%; display:block; }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--color-primary); color:#fff;
  padding:.75rem 1.25rem; z-index:2000; border-radius:0 0 var(--radius-md) 0;
}
.skip-link:focus{ left:0; }

:focus-visible{
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.text-muted-sm{ color:var(--color-text-muted); font-size:.8rem; font-weight:400; }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: .92rem;
  letter-spacing:.02em;
  padding: .8rem 1.75rem;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.btn-primary-brand{
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-color: var(--color-primary);
}
.btn-primary-brand:hover,
.btn-primary-brand:focus-visible{
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: var(--color-on-primary);
}

.btn-outline-brand{
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn-outline-brand:hover,
.btn-outline-brand:focus-visible{
  background: var(--color-primary);
  color: var(--color-on-primary);
}

.btn-sm-block{ width:100%; padding:.6rem 1rem; font-size:.85rem; }

.btn-link-arrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family: var(--font-sans);
  font-weight:500;
  color: var(--color-primary);
  border-bottom: 1px solid var(--color-primary);
  padding-bottom: 2px;
  transition: gap .2s ease, color .2s ease;
}
.btn-link-arrow:hover{ gap:.8rem; color:var(--color-primary-dark); }

.icon-btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px;
  background:transparent; border:none;
  color: var(--color-text);
  font-size:1.15rem;
  border-radius:50%;
  transition: background-color .2s ease, color .2s ease;
}
.icon-btn:hover{ background: var(--color-tint); color:var(--color-primary); }

.icon-count{
  position:absolute; top:2px; right:2px;
  background: var(--color-primary); color:#fff;
  font-size:.62rem; font-weight:600; line-height:1;
  min-width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-sans);
}

/* =========================================================
   ANNOUNCEMENT BAR
   ========================================================= */
.announce-bar {
    background: #9b4429;
    color: var(--color-bg);
    height: var(--announce-h);
    display: flex;
    align-items: center;
    overflow: hidden;
}
.announce-track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-areas: "stack";
    text-align: center;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 400;
}
.announce-item {
    grid-area: stack;
    opacity: 0;
    transition: opacity 0.6s ease;
}
.announce-item.is-active {
    opacity: 1;
}


/* =========================================================
   ANNOUNCEMENT BAR — social + site links utility row
   ========================================================= */
.announce-bar-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: var(--announce-h);
}
.announce-bar-row .announce-track {
    flex: 1;
}

.announce-social {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    flex: 0 0 auto;
}
.announce-social a {
    color: var(--color-bg);
    font-size: 0.85rem;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}
.announce-social a:hover {
    opacity: 1;
}

.announce-links {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    flex: 0 0 auto;
}
.announce-links a {
    color: var(--color-bg);
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}
.announce-links a:hover {
    opacity: 1;
    text-decoration: underline;
}
/* ---------- Mobile menu social row ---------- */
.mobile-menu-social {
    display: flex;
    gap: 0.9rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
.mobile-menu-social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    transition:
        background-color 0.2s ease,
        color 0.2s ease,
        border-color 0.2s ease;
}
.mobile-menu-social a:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  position: sticky;
  top:0;
  z-index: 1040;
  transition: box-shadow .3s ease, height .3s ease;
      padding: 10px 0 0 0;
}
.site-header.is-stuck{
  box-shadow: 0 4px 16px rgba(41,37,34,0.08);
}

.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height: var(--header-h);
  gap:1rem;
}

.header-left, .header-right{
  display:flex; align-items:center; gap:.35rem;
  flex: 1 1 0;
}
.header-right{ justify-content:flex-end; }

.header-center{ flex:0 0 auto; }

.brand-logo{ display:inline-flex; align-items:center; }
.logo-placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.15rem;
  width:150px; height:52px;
  border: 1px dashed var(--color-border-strong);
  border-radius: var(--radius-sm);
  color: var(--color-text-muted);
  font-family: var(--font-serif);
  font-size:.7rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  background: var(--color-surface);
}
.logo-placeholder i{ font-size:1rem; }

.main-nav ul{
  list-style:none; display:flex; align-items:center; gap:2rem; margin:0; padding:0;
}
.main-nav a, .main-nav .nav-link-btn{
  font-size:.95rem;
  font-weight:500;
  letter-spacing:.01em;
  color: var(--color-text);
  padding: .5rem 0;
  background:none; border:none;
  display:inline-flex; align-items:center; gap:.35rem;
  position:relative;
}
.main-nav a::after, .main-nav .nav-link-btn::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:2px; background: var(--color-primary);
  transform: scaleX(0); transform-origin:left;
  transition: transform .25s ease;
}
.main-nav a:hover::after,
.main-nav a.active::after,
.main-nav li.has-mega:hover .nav-link-btn::after{
  transform: scaleX(1);
}
.main-nav a.active, .main-nav a:hover, .main-nav .nav-link-btn:hover, .main-nav .nav-link-btn.active{ color: var(--color-primary); }
.main-nav a.active::after, .main-nav .nav-link-btn.active::after{ transform: scaleX(1); }
.icon-btn.active{ color: var(--color-primary); background: var(--color-tint); }
.main-nav .nav-link-btn i{ font-size:.65rem; transition: transform .2s ease; }
.main-nav li.has-mega:hover .nav-link-btn i{ transform: rotate(180deg); }

.main-nav li{ position:relative; }
.has-mega{ }
.mega-menu{
  position:absolute; top:100%; left:50%; transform: translateX(-50%) translateY(6px);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-lift);
  padding: 1.25rem 1.5rem;
  min-width: 220px;
  opacity:0; visibility:hidden;
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index: 50;
}
.has-mega:hover .mega-menu, .has-mega:focus-within .mega-menu{
  opacity:1; visibility:visible; transform: translateX(-50%) translateY(0);
}
.mega-menu-inner{ display:flex; flex-direction:column; gap:.6rem; }
.mega-menu-inner a{ font-size:.9rem; color:var(--color-text); padding:.15rem 0; }
.mega-menu-inner a:hover{ color:var(--color-primary); }
.mega-col-title{
  font-family: var(--font-serif);
  font-weight:600; font-size:.95rem;
  border-bottom:1px solid var(--color-border);
  padding-bottom:.5rem; margin-bottom:.2rem;
}

/* =========================================================
   SEARCH OVERLAY
   ========================================================= */
.search-overlay{
  position: fixed; inset:0;
  background: rgba(41,37,34,0.6);
  backdrop-filter: blur(2px);
  z-index: 1080;
  opacity:0; visibility:hidden;
  transition: opacity .25s ease, visibility .25s ease;
  padding-top: 12vh;
}
.search-overlay.is-open{ opacity:1; visibility:visible; }
.search-overlay-form{
  background: var(--color-bg);
  display:flex; align-items:center; gap:1rem;
  padding: 1.1rem 1.5rem;
  border-radius: var(--radius-md);
  border:1px solid var(--color-border);
}
.search-overlay-form i{ font-size:1.2rem; color: var(--color-primary); }
.search-overlay-form input{
  flex:1; border:none; background:transparent; outline:none;
  font-family: var(--font-serif); font-size:1.4rem; color: var(--color-text);
}
.search-suggestions{
  background: var(--color-bg); border-radius:0 0 var(--radius-md) var(--radius-md);
  padding: 1rem 1.5rem 1.5rem; border:1px solid var(--color-border); border-top:none;
}
.search-suggestions-label{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--color-text-muted); margin-bottom:.75rem; }
.search-chip-row{ display:flex; flex-wrap:wrap; gap:.6rem; }
.search-chip{
  border:1px solid var(--color-border-strong); background:transparent; color:var(--color-text);
  padding:.4rem .9rem; border-radius:20px; font-size:.85rem;
}
.search-chip:hover{ background: var(--color-tint); border-color:var(--color-primary); }

/* =========================================================
   OFFCANVAS (mobile menu + cart drawer)
   ========================================================= */
.mobile-menu, .cart-drawer{
  background: var(--color-bg);
  color: var(--color-text);
  max-width: 340px;
}
.offcanvas-header{ border-bottom:1px solid var(--color-border); }
.offcanvas-title{ font-size:1.1rem; }

.mobile-nav-list{ list-style:none; margin:0; padding:0; }
.mobile-nav-list > li > a{
  display:block; padding: .9rem 0; font-size:1rem; border-bottom:1px solid var(--color-border);
}
.mobile-accordion-toggle{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; padding:.9rem 0; font-size:1rem; color:var(--color-text);
  border-bottom:1px solid var(--color-border); font-family: var(--font-sans);
}
.mobile-accordion-toggle[aria-expanded="true"] i::before{ content:"\f2ea"; } /* dash icon swap */
.mobile-accordion-panel{
  list-style:none; margin:0; padding:0 0 0 1rem; max-height:0; overflow:hidden; transition: max-height .3s ease;
}
.mobile-accordion.is-open .mobile-accordion-panel{ max-height:400px; }
.mobile-accordion-panel li a{ display:block; padding:.6rem 0; color:var(--color-text-muted); font-size:.92rem; }

.mobile-menu-footer{ margin-top:1.5rem; display:flex; flex-direction:column; gap:.9rem; }
.mobile-menu-footer a{ display:flex; gap:.6rem; align-items:center; font-size:.95rem; }

.mini-cart-list{ list-style:none; margin:0 0 1rem; padding:0; }
.mini-cart-item{
  display:flex; gap:.9rem; padding: 1rem 0; border-bottom:1px solid var(--color-border);
}
.mini-cart-thumb{
  width:64px; height:80px; flex:0 0 auto;
  background: var(--color-tint);
  display:flex; align-items:center; justify-content:center;
  color: var(--color-primary); font-size:1.2rem;
  border-radius: var(--radius-sm);
}
.mini-cart-info{ flex:1; }
.mini-cart-name{ font-size:.9rem; font-weight:500; margin-bottom:.2rem; }
.mini-cart-meta{ font-size:.8rem; color:var(--color-text-muted); }
.mini-cart-price{ font-size:.9rem; font-weight:600; white-space:nowrap; }
.mini-cart-summary{ border-top:1px solid var(--color-border); padding-top:1rem; }
.mini-cart-subtotal{ display:flex; justify-content:space-between; font-weight:600; margin-bottom:.4rem; }
.mini-cart-note{ font-size:.78rem; color:var(--color-text-muted); margin-bottom:1rem; }

/* =========================================================
   IMAGE PLACEHOLDERS
   ========================================================= */
.img-placeholder{
  position:relative;
  width:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  text-align:center;
  background-color: var(--color-tint);
  background-image:
    repeating-linear-gradient(45deg, rgba(41,37,34,0.05) 0, rgba(41,37,34,0.05) 1px, transparent 1px, transparent 14px),
    repeating-linear-gradient(-45deg, rgba(41,37,34,0.05) 0, rgba(41,37,34,0.05) 1px, transparent 1px, transparent 14px);
  border: 1px solid var(--color-border-strong);
  color: var(--color-primary);
  overflow:hidden;
}
.img-placeholder i{ font-size:1.6rem; opacity:.65; }
.img-placeholder span{
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  color: var(--color-text-muted); padding:0 1rem; font-family:var(--font-sans);
}
.ratio-hero{ aspect-ratio: 4 / 5; }
.ratio-category{ aspect-ratio: 3 / 4; }
.ratio-product{ aspect-ratio: 3 / 4; border:none; }
.ratio-story{ aspect-ratio: 4 / 3; }
.ratio-square{ aspect-ratio: 1 / 1; }
.ratio-apparel{ aspect-ratio: 3 / 4; margin-bottom:1.25rem; }
.social-tile{ border-radius:0; }
.social-tile i{ font-size:1.4rem; }



/* =========================================================
   SECTION SCAFFOLDING
   ========================================================= */
.section{ padding: 5.5rem 0; }
.section-alt{ background: var(--color-bg-alt); }

.section-heading-row{ margin-bottom: 2.75rem; max-width: 640px; }
.section-heading{ font-size: clamp(1.8rem, 2.6vw, 2.4rem); margin-bottom:.6rem; }
.section-subheading{ color: var(--color-text-muted); font-size:1.02rem; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color: var(--color-primary); font-weight:500; margin-bottom:1rem;
}
.eyebrow i{ font-size:.9rem; }


/* =========================================================
   FESTIVE HERO BANNER
   ========================================================= */
.festive-hero {
    position: relative;
    width: 100%;
    min-height: 520px;
    overflow: hidden;
    display: flex;
    align-items: center;
}
.festive-hero-bg {
    position: absolute;
    inset: 0;
    border: none;
    border-radius: 0;
}
.festive-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    animation: festiveKenBurns 18s ease-in-out infinite alternate;
}
@keyframes festiveKenBurns {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(1.08);
    }
}
.festive-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        100deg,
        rgba(41, 37, 34, 0.78) 0%,
        rgba(41, 37, 34, 0.4) 42%,
        rgba(41, 37, 34, 0.05) 68%,
        transparent 85%
    );
}

.festive-hero-text {
    position: relative;
    z-index: 2;
    color: var(--color-bg);
    padding: 3rem;
    max-width: 495px;
}
.festive-hero-title {
    font-family: var(--font-serif);
    text-transform: uppercase;
    color: var(--color-bg);
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.12;
    letter-spacing: 0.01em;
    margin-bottom: 1.75rem;
    overflow: hidden;
}
.festive-hero-title .split-word {
    display: inline-block;
    opacity: 0;
    transform: translateY(110%);
    animation: splitWordUp 0.8s cubic-bezier(0.19, 0.7, 0.28, 1) forwards;
}
.festive-hero-title .split-word[style*="--i:0"] {
    animation-delay: 0.2s;
}
.festive-hero-title .split-word[style*="--i:1"] {
    animation-delay: 0.4s;
}

.festive-hero-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--color-bg);
    font-size: 0.92rem;
    letter-spacing: 0.04em;
    border-bottom: 1px solid rgba(248, 241, 231, 0.6);
    padding-bottom: 3px;
    opacity: 0;
    animation: fadeUpIn 0.7s ease forwards;
    animation-delay: 0.75s;
    transition:
        gap 0.2s ease,
        border-color 0.2s ease;
}
.festive-hero-link:hover {
    gap: 0.9rem;
    border-color: var(--color-bg);
    color: var(--color-bg);
}

.festive-hero-panel {
    position: relative;
    z-index: 2;
    margin-left: auto;
    margin-right: 6vw;
    width: min(44%, 560px);
    background: rgba(248, 241, 231, 0.007);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    /* border: 1px solid rgba(248, 241, 231, 0.4); */
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: var(--shadow-lift);
}
.festive-panel-carousel {
    position: static;
}
.festive-panel-carousel .carousel-track {
    gap: 1rem;
    scroll-snap-type: x mandatory;
}
.festive-panel-card {
    width: calc(50% - 0.5rem);
    flex: 0 0 auto;
    scroll-snap-align: start;
}
.festive-panel-card .img-placeholder {
    aspect-ratio: 3 / 4;
    border: none;
    border-radius: 10px;
    overflow: hidden;
}
.festive-panel-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.festive-panel-nav {
    background: rgba(248, 241, 231, 0.85);
}
.festive-panel-nav.carousel-prev {
    left: -18px;
}
.festive-panel-nav.carousel-next {
    right: -18px;
}

@media (max-width: 991.98px) {
    .festive-hero {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
        padding: 2.5rem 0;
    }
    .festive-hero-text {
        max-width: none;
        text-align: center;
        margin: 0 auto;
        padding-bottom: 1.5rem;
    }
    .festive-hero-panel {
        width: 90%;
        margin: 0 auto;
    }
    .festive-panel-card {
        width: calc(60% - 0.5rem);
    }
}
@media (max-width: 575.98px) {
    .festive-hero-title {
        font-size: 1.7rem;
    }
    .festive-panel-card {
        width: calc(78% - 0.5rem);
    }
    .festive-panel-nav {
        display: none;
    }
}


/* =========================================================
   CATEGORY SHOWCASE
   ========================================================= */
.category-card{ 
    display:block; 
}
.category-card .img-placeholder{ 
    transition: transform .5s ease; 
}
.category-card:hover .img-placeholder{ 
    transform: scale(1.035); 
}
.category-card-body{ 
    padding-top:1.25rem; 
}
.category-card-body h3{ 
    font-size:1.3rem; margin-bottom:.4rem; 
}
.category-card-body p{ 
    color:var(--color-text-muted); 
    font-size:.92rem; 
    margin-bottom:.75rem; }
.card-explore{
  display:inline-flex; 
  align-items:center; 
  gap:.4rem; 
  font-size:.85rem; 
  font-weight:500;
  color: var(--color-primary);
  transition: gap .2s ease;
}
.category-card:hover .card-explore{ 
    gap:.7rem; 
}

/* =========================================================
   PRODUCT FILTER + GRID
   ========================================================= */
.product-filter-row{ 
    display:flex; 
    flex-wrap:wrap; 
    gap:.75rem; 
    margin-bottom:2.5rem; 
}
.filter-pill{
  border:1px solid var(--color-border-strong); 
  background:transparent; 
  color:var(--color-text);
  padding:.5rem 1.25rem; 
  border-radius:20px; 
  font-size:.88rem; 
  font-family:var(--font-sans);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.filter-pill.is-active, .filter-pill:hover{
  background: var(--color-primary); 
  color:#fff; border-color:var(--color-primary);
}

.product-card{ 
    height:100%; 
    display:flex; 
    flex-direction:column; 
}
.product-card-media{ 
    position:relative; 
}
.product-badge{
  position:absolute; top:.75rem; left:.75rem; z-index:3;
  background: var(--color-primary); color:#fff;
  font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; font-weight:600;
  padding:.3rem .6rem;
}
.product-badge-limited{ 
    position:relative; 
}
.wishlist-btn{
  position:absolute; 
  top:.6rem; 
  right:.6rem; 
  z-index:3;
  width:34px; 
  height:34px; 
  border-radius:50%;
  background: var(--color-surface); 
  border:1px solid var(--color-border);
  display:flex; 
  align-items:center; 
  justify-content:center;
  color: var(--color-text); 
  font-size:1rem;
  transition: color .2s ease, transform .2s ease;
}
.wishlist-btn:hover{ 
    color: var(--color-primary); 
}
.wishlist-btn.is-active{ 
    color: var(--color-primary); 
}
.wishlist-btn.is-active i::before{ 
    content:"\f415"; 
} /* filled heart */
.wishlist-btn.pulse{ 
    animation: heartPulse .35s ease; 
}
@keyframes heartPulse{ 0%{transform:scale(1);} 50%{transform:scale(1.3);} 100%{transform:scale(1);} }

.btn-quick-view {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 45px;
    background: rgb(155 68 41 / 73%);
    color: #fff;
    border: none;
    padding: 0.75rem;
    font-size: 0.82rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-family: var(--font-sans);
    transform: translateY(100%);
    transition: transform 0.25s ease;
}
.product-card-media:hover .btn-quick-view{ 
    transform: translateY(0); 
}

.product-card-body{ 
    padding-top:1rem; 
    flex:1; 
    display:flex; 
    flex-direction:column; 
}
.product-category{ 
    font-size:.76rem; 
    letter-spacing:.05em; 
    text-transform:uppercase; 
    color:var(--color-text-muted);
     margin-bottom:.35rem; 
}
.product-name{ 
    font-size:1rem; 
    font-weight:500; 
    margin-bottom:.5rem; 
}
.product-name a:hover{ 
    color: var(--color-primary); 
}
.product-price{ 
    margin-bottom:1rem; 
}
.price-current{ 
    font-weight:600; 
    color:var(--color-text);
     margin-right:.5rem; 
}
.price-original{ 
    font-size:.85rem; 
    color:var(--color-text-muted); 
    text-decoration:line-through; 
}
.product-card-body .btn{ 
    margin-top:auto; 
}



.product-card .img-placeholder img{
    object-fit: cover;
    height: 100%;
}


/* =========================================================
   BRAND STORY
   ========================================================= */
.story-copy{ 
    color: var(--color-text-muted); 
    margin-bottom:1.25rem; 
    max-width:52ch; 
}
.story-highlights{
  list-style:none; 
  margin:0 0 1.75rem; 
  padding:0;
  display:flex; 
  flex-wrap:wrap; 
  gap:1.75rem;
}
.story-highlights li{ 
    display:flex; 
    flex-direction:column; 
    gap:.2rem; 
}
.story-highlights strong{ 
    font-family:var(--font-serif); 
    font-size:1.05rem; 
}
.story-highlights span{ 
    font-size:.82rem; 
    color:var(--color-text-muted); 
}

/* =========================================================
   APPAREL CARDS
   ========================================================= */
.apparel-card{ 
    text-align:center; 
}
.apparel-card h3{ 
    font-size:1.2rem;
    margin-bottom:1rem; 
}

/* =========================================================
   WHY CHOOSE US
   ========================================================= */
.feature-item{ 
    text-align:center;
    padding: 0 .5rem; 
}
.feature-item i{
  font-size:1.9rem; 
  color: var(--color-primary); 
  margin-bottom:1rem; 
  display:inline-block;
}
.feature-item h3{ 
    font-size:1rem; 
    margin-bottom:.4rem; 
}
.feature-item p{ 
    font-size:.86rem; 
    color:var(--color-text-muted); 
}

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.testimonial{
  background: var(--color-surface);
  border:1px solid var(--color-border);
  padding: 2rem;
  height:100%;
  margin:0;
}
.testimonial-stars{ 
    color: var(--color-primary); 
    font-size:.85rem; 
    margin-bottom:1rem; 
    letter-spacing:.15rem; 
}
.testimonial p{
  font-family: var(--font-serif); 
  font-style:italic; 
  font-size:1.08rem; 
  line-height:1.55;
  margin-bottom:1.5rem; 
  color:var(--color-text);
}
.testimonial footer{ 
    font-size:.85rem; 
    font-weight:600; 
}
.testimonial footer span{ 
    display:block; 
    font-weight:400; 
    color:var(--color-text-muted); 
    font-size:.8rem; 
}

/* =========================================================
   SOCIAL GALLERY
   ========================================================= */
.social-tile{ 
    cursor:pointer; 
}
.social-tile:hover{ 
    background-color: var(--color-tint-dark); 
}

/* =========================================================
   NEWSLETTER
   ========================================================= */
.newsletter-band{ 
    background: var(--color-bg-alt); 
    padding: 4.5rem 0; 
    border-top:1px solid var(--color-border); 
    border-bottom:1px solid var(--color-border); 
}
.newsletter-inner{ 
    max-width:560px; 
    margin:0 auto; 
    text-align:center; 
}
.newsletter-inner h2{ 
    font-size:1.9rem; 
    margin-bottom:.6rem; 
}
.newsletter-inner > p{ 
    color:var(--color-text-muted); 
    margin-bottom:2rem; 
}
.newsletter-form{ 
    display:flex; 
    gap:.75rem; 
    flex-wrap:wrap; 
    justify-content:center; 
}
.newsletter-form input{
  flex:1; 
  min-width:220px;
  padding:.85rem 1.1rem; 
  border:1px solid var(--color-border-strong); 
  background:var(--color-surface);
  font-family:var(--font-sans); 
  font-size:.95rem; 
  border-radius:var(--radius-sm);
}
.newsletter-form input:focus{ 
    outline:2px solid var(--color-primary); 
    outline-offset:1px; 
}
.newsletter-fineprint{ margin-top:1rem; 
    font-size:.78rem; 
    color:var(--color-text-muted); 
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer {
    background: #6d2b17;
    color: var(--color-bg);
    padding: 2rem 0 1rem;
}
.footer-top{ 
    margin-bottom:2rem; 
}
.footer-logo{ 
    display:inline-block; 
    margin-bottom:1.25rem; 
}
.logo-placeholder-footer{
  background: transparent;
   /* border-color: rgba(248,241,231,0.3);  */
   color: rgba(248,241,231,0.65);
}
.footer-about{ 
    font-size:.88rem; 
    color: rgba(248,241,231,0.65); 
    max-width:32ch;
     margin-bottom:1.5rem; 
}
.footer-social{ 
    display:flex; 
    gap:.75rem; 
}
.footer-social a{
  width:36px; 
  height:36px; 
  border-radius:50%;
  border:1px solid rgba(248,241,231,0.3);
  display:flex; 
  align-items:center; 
  justify-content:center;
  transition: background-color .2s ease, border-color .2s ease;
}
.footer-social a:hover{ 
    background: var(--color-primary); 
    border-color:var(--color-primary); 
}

.footer-heading{
  font-family: var(--font-sans); 
  font-weight:600; 
  font-size:.85rem;
  letter-spacing:.08em; 
  text-transform:uppercase; 
  margin-bottom:1.25rem; color: var(--color-bg);
}
.footer-links{ 
    list-style:none; 
    margin:0; 
    padding:0; 
    display:flex; 
    flex-direction:column; 
    gap:.7rem; 
}
.footer-links a{ 
    font-size:.9rem; 
    color: rgba(248,241,231,0.72); 
}
.footer-links a:hover{ 
    color: var(--color-bg); 
    text-decoration:underline; 
}

.footer-divider{ 
    border-color: rgba(248,241,231,0.16); 
    margin: 1rem 0 1.75rem; 
}

.footer-bottom{
  display:flex; 
  flex-wrap:wrap; 
  gap:1.25rem; 
  align-items:center; 
  justify-content:space-between;
  font-size:.82rem; 
  color: rgba(248,241,231,0.65);
}
.footer-payments{ 
    display:flex; 
    flex-wrap:wrap; 
    gap:.6rem; 
}
.payment-chip{
  border:1px solid rgba(248,241,231,0.25); 
  padding:.3rem .7rem; 
  border-radius:20px; 
  font-size:.76rem;
  display:inline-flex; 
  align-items:center; 
  gap:.4rem;
}
.footer-secure{ 
    display:flex; 
    align-items:center; 
    gap:.4rem; 
}

/* =========================================================
   MOBILE BOTTOM NAV
   ========================================================= */
.mobile-bottom-nav{
  position: fixed; 
  bottom:0; 
  left:0; 
  right:0; 
  z-index:1030;
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  display:flex; 
  justify-content:space-around;
  align-items:center;
  padding:.5rem 0 .6rem;
}
.mobile-bottom-nav a, .mobile-bottom-nav button{
  background:none; 
  border:none;
  display:flex; 
  flex-direction:column; 
  align-items:center; 
  gap:.2rem;
  color: var(--color-text-muted); 
  font-size:.65rem; 
  font-family:var(--font-sans);
}
.mobile-bottom-nav i{ 
    font-size:1.2rem; 
}
.mobile-bottom-nav a.active{ 
    color: var(--color-primary);
}

@media (max-width: 991.98px){
  /* body{ padding-bottom: 66px; } */
}

/* =========================================================
   BACK TO TOP
   ========================================================= */
.back-to-top{
  position: fixed; 
  right:1.5rem; 
  bottom:5.5rem; 
  z-index:1030;
  width:46px; 
  height:46px; 
  border-radius:50%;
  background: var(--color-primary); 
  color:#fff; 
  border:none;
  display:flex; 
  align-items:center; 
  justify-content:center;
  box-shadow: var(--shadow-lift);
  opacity:0; 
  visibility:hidden; 
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.back-to-top.is-visible{ 
    opacity:1; 
    visibility:visible; 
    transform: translateY(0); 
}

@media (min-width: 992px){
    .back-to-top{ 
        bottom:2rem; 
    }
}

/* =========================================================
   TOAST
   ========================================================= */
.brand-toast{
  background: var(--color-text); 
  color: var(--color-bg);
  border:none; 
  min-width:260px;
}

/* =========================================================
   RESPONSIVE HEADER TWEAKS
   ========================================================= */
@media (max-width: 991.98px){
    .header-row{ 
        height:64px; 
    }
    .logo-placeholder{ 
        width:120px; height:44px; 
    }
}

/* =========================================================
   SCROLL-REVEAL SYSTEM
   ========================================================= */
[data-reveal]{
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .8s cubic-bezier(.19,.7,.28,1), transform .8s cubic-bezier(.19,.7,.28,1);
  will-change: opacity, transform;
}
[data-reveal="fade"]{ transform:none; }
[data-reveal="zoom"]{ transform: scale(.96); }
[data-reveal].is-revealed{ opacity:1; transform:none; }
[data-reveal-delay="1"]{ transition-delay:.1s; }
[data-reveal-delay="2"]{ transition-delay:.2s; }
[data-reveal-delay="3"]{ transition-delay:.32s; }
[data-reveal-delay="4"]{ transition-delay:.44s; }
[data-reveal-delay="5"]{ transition-delay:.56s; }

/* =========================================================
   HERO ENHANCEMENTS
   ========================================================= */
@keyframes fadeUpIn{
  from{ opacity:0; transform: translateY(26px); }
  to{ opacity:1; transform:none; }
}
.hero-anim{ opacity:0; animation: fadeUpIn .8s cubic-bezier(.19,.7,.28,1) forwards; }
.hero-anim-1{ animation-delay:.05s; }
.hero-anim-2{ animation-delay:.2s; }
.hero-anim-3{ animation-delay:.35s; }
.hero-anim-4{ animation-delay:.5s; }
.hero-anim-5{ animation-delay:.65s; }

.eyebrow-line{
  display:inline-block; width:34px; height:1px; background: var(--color-primary);
  margin-right:.6rem; vertical-align:middle;
  transform-origin:left; transform: scaleX(0);
  animation: growLine .7s .5s cubic-bezier(.19,.7,.28,1) forwards;
}
@keyframes growLine{ to{ transform: scaleX(1); } }

@keyframes floatY{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-9px); } }
.hero-badge-card{ animation: floatY 5s ease-in-out infinite; }

.hero-media{ overflow:hidden; }
.hero-media .img-placeholder{
  transition: transform 1.2s cubic-bezier(.19,.7,.28,1);
}
.hero-media:hover .img-placeholder{ transform: scale(1.035); }

/* =========================================================
   BUTTON SHINE SWEEP
   ========================================================= */
.btn-primary-brand{ position:relative; overflow:hidden; isolation:isolate; }
.btn-primary-brand::before{
  content:""; position:absolute; top:0; left:-60%; width:35%; height:100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,0.32), transparent);
  transform: skewX(-18deg);
  z-index:1; pointer-events:none;
}
.btn-primary-brand:hover::before{ animation: shineSweep .85s ease forwards; }
@keyframes shineSweep{ from{ left:-60%; } to{ left:130%; } }

/* =========================================================
   MARQUEE TICKER STRIP
   ========================================================= */
.marquee-strip{
  background: var(--color-primary);
  color: var(--color-on-primary);
  overflow: hidden;
  padding: .95rem 0;
}
.marquee-track{
  display:flex; width: max-content;
  animation: marqueeScroll 32s linear infinite;
}
.marquee-track:hover{ animation-play-state: paused; }
.marquee-group{ display:flex; align-items:center; flex-shrink:0; }
.marquee-item{
  display:inline-flex; align-items:center; gap:.9rem;
  font-family: var(--font-serif); font-style:italic; font-size:1.05rem;
  padding: 0 2rem; white-space:nowrap; letter-spacing:.02em;
}
.marquee-item i{ font-size:.5rem; opacity:.8; font-style:normal; }
@keyframes marqueeScroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

@media (prefers-reduced-motion: reduce){
  .marquee-track{ animation: none; }
}

/* =========================================================
   FRINGE / WEAVE DIVIDER (handloom edge motif)
   ========================================================= */
.fringe-divider{
  height: 14px;
  width: 100%;
  background-image: linear-gradient(135deg, var(--color-border-strong) 25%, transparent 25%),
                     linear-gradient(225deg, var(--color-border-strong) 25%, transparent 25%);
  background-size: 14px 14px;
  background-position: 0 0;
  background-repeat: repeat-x;
  background-color: transparent;
  opacity:.55;
}

/* =========================================================
   STATS / TRUST STRIP
   ========================================================= */
.stats-strip{
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 3rem 0;
}
.stat-item{ text-align:center; padding: 0 1rem; position:relative; }
.stat-number{
  font-family: var(--font-serif); font-size: clamp(2rem, 3.2vw, 2.75rem);
  color: var(--color-primary); line-height:1; margin-bottom:.5rem;
  display:flex; align-items:baseline; justify-content:center; gap:.15rem;
}
.stat-suffix{ font-size:1.4rem; }
.stat-label{ font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; color: var(--color-text-muted); }
.stat-item:not(:last-child)::after{
  content:""; position:absolute; right:0; top:10%; bottom:10%; width:1px; background: var(--color-border);
}
@media (max-width: 767.98px){
  .stat-item:nth-child(2)::after{ display:none; }
  .stat-item{ margin-bottom:1.5rem; }
}

/* =========================================================
   CATEGORY CARD — overlay hover upgrade
   ========================================================= */
.category-card{ position:relative; }
.category-card .cat-index{
  position:absolute; top:1rem; left:1rem; z-index:2;
  font-family: var(--font-serif); font-size:.82rem; color: var(--color-on-primary);
  background: rgba(41,37,34,0.55); backdrop-filter: blur(2px);
  padding: .3rem .7rem; letter-spacing:.05em;
}
.category-card .img-placeholder{ position:relative; }
.category-card .img-placeholder::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(41,37,34,0.35), transparent 55%);
  opacity:0; transition: opacity .4s ease;
}
.category-card:hover .img-placeholder::after{ opacity:1; }

/* =========================================================
   PRODUCT CARD — lift + add-to-cart feedback
   ========================================================= */
.product-card{ transition: transform .35s ease; }
.product-card-media{ box-shadow: var(--shadow-card); transition: box-shadow .35s ease; }
.product-card:hover{ transform: translateY(-6px); }
.product-card:hover .product-card-media{ box-shadow: var(--shadow-lift); }
.product-card-media .img-placeholder{ transition: transform .6s cubic-bezier(.19,.7,.28,1); }
.product-card:hover .img-placeholder{ transform: scale(1.045); }

.btn-add-cart.is-added{
  background: var(--color-text); border-color: var(--color-text); color:#fff;
}

/* =========================================================
   TESTIMONIAL CAROUSEL
   ========================================================= */
.testimonial-carousel .carousel-inner{ padding: .25rem; }
.testimonial-carousel .testimonial{ max-width: 720px; margin: 0 auto; text-align:center; }
.testimonial-carousel .testimonial-stars{ justify-content:center; display:flex; }
.testimonial-carousel-indicators{
  display:flex; justify-content:center; gap:.6rem; margin-top:1.75rem; list-style:none; padding:0;
}
.testimonial-carousel-indicators button{
  width:9px; height:9px; border-radius:50%; border:1px solid var(--color-primary);
  background:transparent; padding:0;
}
.testimonial-carousel-indicators button.active{ background: var(--color-primary); }

/* =========================================================
   MEGA MENU — teaser image column
   ========================================================= */
.mega-menu-grid{ display:flex; gap:2rem; }
.mega-menu-links{ display:flex; flex-direction:column; gap:.6rem; min-width:160px; }
.mega-menu-teaser{ width:150px; }
.mega-menu-teaser .img-placeholder{ aspect-ratio: 4/5; margin-bottom:.5rem; }
.mega-menu-teaser p{ font-size:.78rem; color: var(--color-text-muted); text-align:center; }

/* =========================================================
   SECTION LABEL ORNAMENT (heritage motif above headings)
   ========================================================= */
.section-ornament{
  display:flex; align-items:center; gap:.75rem; margin-bottom:.9rem;
  color: var(--color-primary); font-size:1.1rem;
}
.section-ornament::before, .section-ornament::after{
  content:""; height:1px; width:28px; background: var(--color-border-strong);
}

/* =========================================================
   TRUST BADGE STRIP (e-commerce confidence signals)
   ========================================================= */
.trust-strip {
    background: #9b4429;
    padding: 1.5rem 0;
}
.trust-item{
  display:flex; align-items:center; gap:.85rem;
  color: var(--color-bg);
}
.trust-item i{ font-size:1.4rem; color: var(--color-bg); flex:0 0 auto; opacity:.9; }
.trust-item span{ font-size:.88rem; font-weight:500; line-height:1.3; }
.trust-item small{ display:block; font-weight:400; font-size:.74rem; color: rgba(248,241,231,0.6); }

/* =========================================================
   STAR RATING COMPONENT
   ========================================================= */
.product-rating{ display:flex; align-items:center; gap:.4rem; margin-bottom:.55rem; }
.rating-stars{ position:relative; display:inline-block; font-size:.72rem; line-height:1; }
.stars-bg{ display:block; letter-spacing:2px; color: var(--color-border-strong); white-space:nowrap; }
.stars-fg{
  position:absolute; top:0; left:0; overflow:hidden; white-space:nowrap;
  display:block; letter-spacing:2px; color: var(--color-primary);
}
.rating-count{ font-size:.76rem; color: var(--color-text-muted); }

/* =========================================================
   SALE BADGE VARIANT
   ========================================================= */
.product-badge-sale{ background: var(--color-text); }

/* =========================================================
   FLASH SALE + COUNTDOWN
   ========================================================= */
.flash-sale-section{ padding: 4.5rem 0; background: var(--color-bg); }
.flash-sale-head{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
  margin-bottom: 2.5rem;
}
.countdown{ display:flex; align-items:center; gap:.6rem; }
.countdown-box{
  background: var(--color-text); color: var(--color-bg);
  min-width:58px; text-align:center; padding: .6rem .5rem; border-radius: var(--radius-sm);
}
.countdown-value{ display:block; font-family: var(--font-serif); font-size:1.4rem; line-height:1; }
.countdown-label{ display:block; font-size:.65rem; text-transform:uppercase; letter-spacing:.06em; color: rgba(248,241,231,0.65); margin-top:.2rem; }
.countdown-sep{ font-family: var(--font-serif); font-size:1.3rem; color: var(--color-text-muted); }

/* =========================================================
   HORIZONTAL PRODUCT CAROUSEL
   ========================================================= */
.product-carousel{ position:relative; }
.carousel-track{
  display:flex;
  gap:1.5rem; 
  overflow-x:auto; 
  scroll-snap-type:x mandatory;
  padding-bottom:.5rem; 
  scrollbar-width:none;
  /* justify-content: center; */
}
.carousel-track::-webkit-scrollbar{ display:none; }
.carousel-card{
  flex: 0 0 auto; width: 260px; scroll-snap-align:start;
}
@media (max-width: 575.98px){
  .carousel-card{ width: 200px; }
}
.carousel-nav{
  position:absolute; top:38%; z-index:5;
  width:42px; height:42px; border-radius:50%;
  background: var(--color-surface); border:1px solid var(--color-border-strong);
  display:flex; align-items:center; justify-content:center; color: var(--color-text);
  box-shadow: var(--shadow-card);
  transition: background-color .2s ease, color .2s ease;
}
.carousel-nav:hover{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }
.carousel-prev{ left:-8px; }
.carousel-next{ right:-8px; }
@media (max-width: 767.98px){
  .carousel-nav{ display:none; }
}

/* =========================================================
   PROMO TILES
   ========================================================= */
.promo-tile{ display:block; position:relative; overflow:hidden; }
.ratio-promo{ aspect-ratio: 4/5; border:none; }
.promo-tile .img-placeholder{ transition: transform .6s cubic-bezier(.19,.7,.28,1); }
.promo-tile:hover .img-placeholder{ transform: scale(1.05); }
.promo-tile-content{
  position:absolute; left:0; right:0; bottom:0;
  padding: 1.75rem 1.5rem;
  background: linear-gradient(to top, rgba(41,37,34,0.82), rgba(41,37,34,0.08) 70%, transparent);
  color: var(--color-bg);
}
.promo-tag{
  display:inline-block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  background: var(--color-primary); color:#fff; padding:.25rem .65rem; margin-bottom:.6rem;
}
.promo-tile-content h3{ color: var(--color-bg); font-size:1.4rem; margin-bottom:.75rem; }
.promo-tile-cta{
  display:inline-flex; align-items:center; gap:.5rem; font-size:.85rem; font-weight:500;
  color: var(--color-bg); border-bottom:1px solid rgba(248,241,231,0.6); padding-bottom:2px;
  transition: gap .2s ease;
}
.promo-tile:hover .promo-tile-cta{ gap:.8rem; }

/* =========================================================
   INLINE SECTION HEADING ROW (heading + view-all link)
   ========================================================= */
.section-heading-row-inline{
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  margin-bottom: 2.5rem; flex-wrap:wrap;
}

/* =========================================================
   INNER PAGES — shared scaffolding
   ========================================================= */

/* Page banner (replaces hero on inner pages) */
.page-banner{
  background: var(--color-bg-alt);
  border-bottom: 1px solid var(--color-border);
  padding: 2.75rem 0 2.25rem;
}
.page-banner h1{ font-size: clamp(1.8rem, 3vw, 2.5rem); margin-bottom:.5rem; }
.page-banner p{ color: var(--color-text-muted); max-width:60ch; }

/* Breadcrumbs */
.breadcrumb-nav{ margin-bottom: .9rem; }
.breadcrumb-nav ol{
  list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin:0; padding:0;
  font-size:.82rem; color: var(--color-text-muted);
}
.breadcrumb-nav a{ color: var(--color-text-muted); }
.breadcrumb-nav a:hover{ color: var(--color-primary); }
.breadcrumb-nav li:not(:last-child)::after{ content:"/"; margin-left:.4rem; color: var(--color-border-strong); }
.breadcrumb-nav li[aria-current]{ color: var(--color-text); font-weight:500; }

/* Generic section spacing for inner pages */
.page-section{ padding: 3.5rem 0; }

/* =========================================================
   SHOP / PRODUCT LISTING
   ========================================================= */
.shop-toolbar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem;
  margin-bottom: 2rem; padding-bottom:1.25rem; border-bottom:1px solid var(--color-border);
}
.shop-result-count{ font-size:.88rem; color: var(--color-text-muted); }
.shop-sort{ display:flex; align-items:center; gap:.6rem; font-size:.88rem; }
.shop-sort select{
  border:1px solid var(--color-border-strong); background: var(--color-surface);
  padding:.5rem .9rem; font-family: var(--font-sans); font-size:.88rem; border-radius: var(--radius-sm);
}
.filter-toggle-mobile{ display:none; }
@media (max-width: 991.98px){
  .filter-toggle-mobile{ display:inline-flex; }
}

.filter-sidebar{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 1.75rem;
}
.filter-group{ padding-bottom:1.5rem; margin-bottom:1.5rem; border-bottom:1px solid var(--color-border); }
.filter-group:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.filter-group h3{ font-size:.95rem; margin-bottom:1rem; font-family:var(--font-sans); font-weight:600; }
.filter-check{ display:flex; align-items:center; gap:.6rem; margin-bottom:.7rem; font-size:.9rem; }
.filter-check input{ accent-color: var(--color-primary); width:16px; height:16px; }
.filter-price-inputs{ display:flex; align-items:center; gap:.6rem; }
.filter-price-inputs input{
  width:100%; padding:.5rem .7rem; border:1px solid var(--color-border-strong); font-size:.85rem;
  border-radius: var(--radius-sm); font-family: var(--font-sans); background: var(--color-bg);
}
.filter-clear{ font-size:.82rem; color: var(--color-primary); text-decoration:underline; }

/* Stock / product meta badges reused on shop + PDP */
.stock-badge{ display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; font-weight:500; }
.stock-badge.in-stock{ color:#3F6B33; }
.stock-badge.low-stock{ color: var(--color-primary); }
.stock-badge.out-stock{ color: var(--color-text-muted); }
.stock-badge i{ font-size:.6rem; }

/* Pagination */
.pagination-brand{ display:flex; justify-content:center; gap:.5rem; list-style:none; margin: 3rem 0 0; padding:0; }
.pagination-brand a, .pagination-brand span{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border:1px solid var(--color-border-strong);
  font-size:.88rem; color: var(--color-text);
}
.pagination-brand .is-current{ background: var(--color-primary); color:#fff; border-color: var(--color-primary); }
.pagination-brand a:hover{ border-color: var(--color-primary); color: var(--color-primary); }

/* Empty state */
.empty-state{ text-align:center; padding: 4.5rem 1rem; }
.empty-state i{ font-size:2.75rem; color: var(--color-tint-dark); margin-bottom:1.25rem; display:inline-block; }
.empty-state h2{ font-size:1.4rem; margin-bottom:.6rem; }
.empty-state p{ color: var(--color-text-muted); margin-bottom:1.75rem; max-width:44ch; margin-left:auto; margin-right:auto; }

/* Loading / skeleton state */
.skeleton{
  background: linear-gradient(90deg, var(--color-tint) 25%, var(--color-tint-dark) 37%, var(--color-tint) 63%);
  background-size: 400% 100%;
  animation: skeletonShine 1.4s ease infinite;
}
@keyframes skeletonShine{ 0%{ background-position:100% 0; } 100%{ background-position:0 0; } }

/* =========================================================
   PRODUCT DETAIL PAGE
   ========================================================= */
.pdp-gallery-main{ margin-bottom: 1rem; }
.pdp-thumbs{ display:flex; gap:.75rem; }
.gallery-thumb{
  width:76px; height:96px; flex:0 0 auto; cursor:pointer;
  border: 2px solid transparent;
  transition: border-color .2s ease;
}
.gallery-thumb.is-active{ border-color: var(--color-primary); }
.gallery-thumb .img-placeholder{ width:100%; height:100%; }

.pdp-info .product-category{ margin-bottom:.5rem; }
.pdp-title{ font-size: clamp(1.5rem, 2.5vw, 2rem); margin-bottom:.6rem; }
.pdp-rating{ display:flex; align-items:center; gap:.6rem; margin-bottom:1.1rem; font-size:.88rem; color: var(--color-text-muted); }
.pdp-rating .testimonial-stars{ margin-bottom:0; }
.pdp-price{ display:flex; align-items:baseline; gap:.75rem; margin-bottom:1.25rem; }
.pdp-price .price-current{ font-size:1.5rem; }
.pdp-desc{ color: var(--color-text-muted); margin-bottom:1.5rem; max-width: 52ch; }

.pdp-option-group{ margin-bottom:1.5rem; }
.pdp-option-group h3{ font-size:.85rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-bottom:.75rem; font-family: var(--font-sans); }
.swatch-row{ display:flex; gap:.6rem; flex-wrap:wrap; }
.size-swatch{
  min-width:44px; height:44px; padding:0 .5rem;
  border:1px solid var(--color-border-strong); background: var(--color-surface);
  font-size:.85rem; color: var(--color-text);
  display:inline-flex; align-items:center; justify-content:center;
}
.size-swatch.is-selected, .size-swatch:hover{ border-color: var(--color-primary); color: var(--color-primary); }
.color-swatch{
  width:32px; height:32px; border-radius:50%; border:2px solid transparent;
  box-shadow: inset 0 0 0 1px var(--color-border-strong);
  cursor:pointer;
}
.color-swatch.is-selected{ border-color: var(--color-primary); }

.qty-stepper{ display:inline-flex; align-items:center; border:1px solid var(--color-border-strong); }
.qty-stepper button{
  width:40px; height:44px; background:none; border:none; font-size:1rem; color: var(--color-text);
}
.qty-stepper button:hover{ color: var(--color-primary); }
.qty-stepper input{
  width:48px; height:44px; text-align:center; border:none; border-left:1px solid var(--color-border-strong);
  border-right:1px solid var(--color-border-strong); font-family:var(--font-sans); font-size:.95rem;
  background: var(--color-surface);
}
.pdp-actions{ display:flex; align-items:center; gap:1rem; margin-bottom:1.75rem; flex-wrap:wrap; }
.pdp-actions .btn-primary-brand{ flex:1; min-width:200px; }

.pdp-meta-list{ list-style:none; margin:0 0 1.5rem; padding:0; font-size:.85rem; color: var(--color-text-muted); display:flex; flex-direction:column; gap:.5rem; }
.pdp-meta-list i{ color: var(--color-primary); width:18px; text-align:center; margin-right:.5rem; }

.pdp-tabs .nav-tabs{ border-bottom: 1px solid var(--color-border); gap:1.5rem; }
.pdp-tabs .nav-link{
  border:none; color: var(--color-text-muted); font-family: var(--font-sans); font-weight:500;
  padding: .8rem 0; background:none; border-bottom:2px solid transparent;
}
.pdp-tabs .nav-link.active{ color: var(--color-primary); border-color: var(--color-primary); }
.pdp-tabs .tab-content{ padding-top:2rem; color: var(--color-text-muted); }
.pdp-tabs .tab-content h3{ color: var(--color-text); font-size:1.05rem; margin-bottom:.75rem; }

.review-item{ padding: 1.5rem 0; border-bottom:1px solid var(--color-border); }
.review-item:first-child{ padding-top:0; }
.review-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.review-name{ font-weight:600; font-size:.92rem; }
.review-date{ font-size:.78rem; color: var(--color-text-muted); }

.rating-summary{ display:flex; gap:2.5rem; align-items:center; margin-bottom:2rem; flex-wrap:wrap; }
.rating-score{ text-align:center; }
.rating-score .score{ font-family: var(--font-serif); font-size:2.75rem; line-height:1; }
.rating-bars{ flex:1; min-width:220px; display:flex; flex-direction:column; gap:.4rem; }
.rating-bar-row{ display:flex; align-items:center; gap:.6rem; font-size:.78rem; color: var(--color-text-muted); }
.rating-bar-track{ flex:1; height:6px; background: var(--color-tint); border-radius:3px; overflow:hidden; }
.rating-bar-fill{ height:100%; background: var(--color-primary); }

/* =========================================================
   CART PAGE
   ========================================================= */
.cart-table{ width:100%; border-collapse:collapse; }
.cart-table thead th{
  text-align:left; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;
  color: var(--color-text-muted); font-weight:600; padding-bottom:1rem; border-bottom:1px solid var(--color-border);
}
.cart-row td{ padding: 1.5rem 0; border-bottom:1px solid var(--color-border); vertical-align:top; }
.cart-product{ display:flex; gap:1.1rem; }
.cart-thumb{ width:88px; height:110px; flex:0 0 auto; }
.cart-thumb .img-placeholder{ width:100%; height:100%; }
.cart-product-name{ font-weight:500; margin-bottom:.3rem; }
.cart-product-meta{ font-size:.82rem; color: var(--color-text-muted); margin-bottom:.5rem; }
.js-remove-row{ background:none; border:none; color: var(--color-text-muted); font-size:.82rem; display:inline-flex; align-items:center; gap:.35rem; }
.js-remove-row:hover{ color: var(--color-primary); }
.cart-price-cell{ font-weight:600; white-space:nowrap; }

.cart-summary-card{
  background: var(--color-surface); border:1px solid var(--color-border); padding: 1.75rem;
}
.cart-summary-card h2{ font-size:1.2rem; margin-bottom:1.25rem; }
.summary-row{ display:flex; justify-content:space-between; font-size:.92rem; margin-bottom:.85rem; color: var(--color-text-muted); }
.summary-row.summary-total{ color: var(--color-text); font-weight:600; font-size:1.1rem; border-top:1px solid var(--color-border); padding-top:1rem; margin-top:.5rem; }
.summary-row .discount-value{ color: var(--color-primary); }

.coupon-form{ display:flex; gap:.6rem; margin: 1.25rem 0 1.5rem; }
.coupon-form input{
  flex:1; padding:.7rem .9rem; border:1px solid var(--color-border-strong); font-family:var(--font-sans);
  font-size:.88rem; border-radius: var(--radius-sm); background: var(--color-bg);
}

/* =========================================================
   CHECKOUT
   ========================================================= */
.checkout-progress{
  list-style:none; display:flex; flex-wrap:wrap; gap:0; margin:0 0 2.5rem; padding:0;
  border:1px solid var(--color-border); background: var(--color-surface);
}
.checkout-progress li{
  flex:1; min-width:140px; text-align:center; padding: 1rem .5rem; font-size:.82rem; font-weight:500;
  color: var(--color-text-muted); border-right:1px solid var(--color-border); cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:.5rem;
}
.checkout-progress li:last-child{ border-right:none; }
.checkout-progress li span{
  width:22px; height:22px; border-radius:50%; border:1px solid var(--color-border-strong);
  display:inline-flex; align-items:center; justify-content:center; font-size:.72rem;
}
.checkout-progress li.is-active{ color: var(--color-primary); }
.checkout-progress li.is-active span{ background: var(--color-primary); border-color: var(--color-primary); color:#fff; }
.checkout-progress li.is-done{ color: var(--color-text); }
.checkout-progress li.is-done span{ background: var(--color-text); border-color: var(--color-text); color:#fff; }

.checkout-step{ display:none; }
.checkout-step.is-active{ display:block; }
.checkout-card{ background: var(--color-surface); border:1px solid var(--color-border); padding: 2rem; margin-bottom:1.5rem; }
.checkout-card h2{ font-size:1.15rem; margin-bottom:1.5rem; }

.form-field{ margin-bottom:1.25rem; }
.form-field label{ display:block; font-size:.82rem; font-weight:500; margin-bottom:.45rem; }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:.75rem .9rem; border:1px solid var(--color-border-strong);
  font-family: var(--font-sans); font-size:.92rem; background: var(--color-bg); border-radius: var(--radius-sm);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--color-primary); outline-offset:1px; border-color: var(--color-primary);
}
.form-field .hint{ font-size:.76rem; color: var(--color-text-muted); margin-top:.35rem; }

.radio-card{
  display:flex; align-items:flex-start; gap:.9rem;
  border:1px solid var(--color-border-strong); padding: 1rem 1.1rem; margin-bottom:.9rem; cursor:pointer;
}
.radio-card input{ margin-top:.2rem; accent-color: var(--color-primary); }
.radio-card strong{ display:block; font-size:.92rem; }
.radio-card span{ display:block; font-size:.8rem; color: var(--color-text-muted); }
.radio-card:has(input:checked){ border-color: var(--color-primary); background: var(--color-tint); }

.checkout-step-actions{ display:flex; justify-content:space-between; gap:1rem; margin-top:.5rem; }

.secure-note{ display:flex; align-items:center; gap:.5rem; font-size:.82rem; color: var(--color-text-muted); margin-top:1.25rem; }
.secure-note i{ color: var(--color-primary); }

.confirmation-hero{ text-align:center; padding: 3.5rem 1rem; }
.confirmation-hero i{ font-size:3.5rem; color: var(--color-primary); margin-bottom:1.5rem; display:inline-block; }
.confirmation-hero h1{ font-size:1.9rem; margin-bottom:.75rem; }
.confirmation-hero p{ color: var(--color-text-muted); max-width: 50ch; margin: 0 auto 2rem; }
.order-summary-box{
  border:1px solid var(--color-border); background: var(--color-surface); max-width:480px; margin:0 auto 2rem;
  padding:1.5rem; text-align:left;
}

/* =========================================================
   ACCOUNT / LOGIN / REGISTER
   ========================================================= */
.auth-wrapper{ max-width:460px; margin: 0 auto; }
.auth-tabs{ display:flex; border-bottom:1px solid var(--color-border); margin-bottom:2rem; }
.auth-tab{
  flex:1; background:none; border:none; padding: .9rem; font-family: var(--font-serif); font-size:1.05rem;
  color: var(--color-text-muted); border-bottom:2px solid transparent;
}
.auth-tab.is-active{ color: var(--color-primary); border-color: var(--color-primary); }
.auth-panel{ display:none; }
.auth-panel.is-active{ display:block; }
.form-check-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; font-size:.85rem; }
.form-check-row a{ color: var(--color-primary); }

.account-layout{ display:grid; grid-template-columns: 240px 1fr; gap: 2.5rem; }
@media (max-width: 767.98px){ .account-layout{ grid-template-columns: 1fr; } }
.account-sidebar{ background: var(--color-surface); border:1px solid var(--color-border); padding: 1.5rem; align-self:start; }
.account-sidebar-user{ display:flex; align-items:center; gap:.9rem; padding-bottom:1.25rem; margin-bottom:1.25rem; border-bottom:1px solid var(--color-border); }
.account-avatar{ width:48px; height:48px; border-radius:50%; background: var(--color-tint); display:flex; align-items:center; justify-content:center; color: var(--color-primary); font-size:1.3rem; }
.account-nav{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.2rem; }
.account-nav a{ display:flex; align-items:center; gap:.7rem; padding:.7rem .5rem; font-size:.9rem; border-radius: var(--radius-sm); }
.account-nav a.active, .account-nav a:hover{ background: var(--color-tint); color: var(--color-primary); }
.account-nav a i{ width:18px; text-align:center; }

.account-panel{ background: var(--color-surface); border:1px solid var(--color-border); padding: 1.75rem 2rem; margin-bottom:1.5rem; }
.account-panel h2{ font-size:1.15rem; margin-bottom:1.5rem; }

.order-table{ width:100%; border-collapse:collapse; font-size:.88rem; }
.order-table th{ text-align:left; padding-bottom:.9rem; border-bottom:1px solid var(--color-border); color: var(--color-text-muted); font-weight:600; font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; }
.order-table td{ padding: 1rem 0; border-bottom:1px solid var(--color-border); }
.status-chip{ display:inline-flex; align-items:center; gap:.4rem; padding:.25rem .7rem; border-radius:20px; font-size:.76rem; font-weight:500; }
.status-chip.delivered{ background:#E3EEDD; color:#3F6B33; }
.status-chip.shipped{ background: var(--color-tint); color: var(--color-primary); }
.status-chip.processing{ background:#EFE7DA; color:#6E6459; }

.address-card{ border:1px solid var(--color-border); padding: 1.25rem; margin-bottom:1rem; position:relative; }
.address-card.is-default::before{
  content:"Default"; position:absolute; top:1rem; right:1rem; font-size:.7rem; text-transform:uppercase;
  letter-spacing:.05em; color: var(--color-primary); font-weight:600;
}
.address-card p{ font-size:.88rem; color: var(--color-text-muted); margin-bottom:.2rem; }
.address-card strong{ display:block; margin-bottom:.4rem; }
.address-actions{ display:flex; gap:1rem; margin-top:.9rem; font-size:.82rem; }
.address-actions a{ color: var(--color-primary); }

/* =========================================================
   WISHLIST PAGE
   ========================================================= */
.wishlist-row{ transition: opacity .25s ease; }

/* =========================================================
   FAQ / CONTENT PAGES
   ========================================================= */
.content-prose{ max-width: 72ch; }
.content-prose h2{ font-size:1.3rem; margin: 2.25rem 0 .9rem; }
.content-prose h2:first-child{ margin-top:0; }
.content-prose p{ color: var(--color-text-muted); margin-bottom:1.1rem; }
.content-prose ul{ color: var(--color-text-muted); margin-bottom:1.1rem; padding-left:1.25rem; }
.content-prose li{ margin-bottom:.5rem; }

.faq-accordion .accordion-item{ background: var(--color-surface); border:1px solid var(--color-border); margin-bottom:.9rem; }
.faq-accordion .accordion-button{
  font-family: var(--font-serif); font-size:1.05rem; color: var(--color-text); background: var(--color-surface);
  box-shadow:none;
}
.faq-accordion .accordion-button:not(.collapsed){ color: var(--color-primary); background: var(--color-surface); }
.faq-accordion .accordion-button:focus{ box-shadow:none; outline:2px solid var(--color-primary); }
.faq-accordion .accordion-button::after{ filter: sepia(60%) saturate(400%) hue-rotate(320deg) brightness(0.8); }
.faq-accordion .accordion-body{ color: var(--color-text-muted); }

/* Contact page */
.contact-info-item{ display:flex; gap:1rem; margin-bottom:1.75rem; }
.contact-info-item i{ font-size:1.3rem; color: var(--color-primary); margin-top:.15rem; }
.contact-info-item h3{ font-size:.98rem; margin-bottom:.3rem; }
.contact-info-item p{ font-size:.88rem; color: var(--color-text-muted); }
.contact-map-placeholder{ aspect-ratio: 16/9; }

/* Team / values grid on About page */
.value-item{ text-align:center; padding: 0 .5rem; }
.value-item i{ font-size:1.8rem; color: var(--color-primary); margin-bottom:.9rem; display:inline-block; }
.value-item h3{ font-size:1rem; margin-bottom:.4rem; }
.value-item p{ font-size:.86rem; color: var(--color-text-muted); }

.timeline{ list-style:none; margin:0; padding:0; border-left:2px solid var(--color-border-strong); }
.timeline li{ padding: 0 0 2rem 1.75rem; position:relative; }
.timeline li::before{
  content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%;
  background: var(--color-primary);
}
.timeline .timeline-year{ font-family: var(--font-serif); font-size:1.1rem; color: var(--color-primary); margin-bottom:.3rem; }
.timeline p{ color: var(--color-text-muted); max-width:52ch; }


/* ======================= popular category =================== */

/* POPULAR CATEGORIES (trend sidebar + auto-sliding carousel) */
.trend-cat-heading {
    font-size: 1.3rem;
    margin-bottom: 1.5rem;
}
.trend-cat-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.trend-cat-item a {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.8rem 0;
    border-bottom: 1px solid var(--color-border);
}
.trend-cat-thumb {
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    border-radius: 50%;
    font-size: 0.95rem;
}
.trend-cat-thumb i {
    font-size: 1rem;
}
.trend-cat-name {
    flex: 1;
    font-size: 0.94rem;
    font-weight: 500;
    color: var(--color-text);
    transition: color 0.2s ease;
}
.trend-cat-count {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.76rem;
    color: var(--color-text-muted);
    transition:
        border-color 0.2s ease,
        color 0.2s ease;
}
.trend-cat-item a:hover .trend-cat-name {
    color: var(--color-primary);
}
.trend-cat-item a:hover .trend-cat-count {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.popular-cat-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 2.25rem;
}
.popular-cat-filters {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.popular-cat-filters button {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.2s ease;
}
.popular-cat-filters button.is-active,
.popular-cat-filters button:hover {
    color: var(--color-primary);
}

.all-categories-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    border: 1px solid var(--color-border-strong);
    border-radius: 24px;
    padding: 0.55rem 1.2rem;
    font-size: 0.82rem;
    color: var(--color-text);
    transition:
        border-color 0.2s ease,
        color 0.2s ease;
}
.all-categories-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.product-sku {
    font-size: 0.72rem;
    color: var(--color-text-muted);
    margin-top: 0.5rem;
}
.mini-swatch-row {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.7rem;
}
.mini-swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
}
.stock-badge {
    margin-top: 0.4rem;
    margin-bottom: 0;
}
.btn-add-cart[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}
.btn-add-cart[disabled]::before {
    display: none;
}


/* ======================= end ============================ */


/* =========================================================
   INNER PAGES — shared scaffolding
   ========================================================= */

/* Page banner (replaces hero on inner pages) */
.page-banner {
    background: var(--color-bg-alt);
    border-bottom: 1px solid var(--color-border);
    padding: 2.75rem 0 2.25rem;
}
.page-banner h1 {
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    margin-bottom: 0.5rem;
}
.page-banner p {
    color: var(--color-text-muted);
    max-width: 60ch;
}

/* Breadcrumbs */
.breadcrumb-nav {
    margin-bottom: 0.9rem;
}
.breadcrumb-nav ol {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}
.breadcrumb-nav a {
    color: var(--color-text-muted);
}
.breadcrumb-nav a:hover {
    color: var(--color-primary);
}
.breadcrumb-nav li:not(:last-child)::after {
    content: "/";
    margin-left: 0.4rem;
    color: var(--color-border-strong);
}
.breadcrumb-nav li[aria-current] {
    color: var(--color-text);
    font-weight: 500;
}

/* Generic section spacing for inner pages */
.page-section {
    padding: 3.5rem 0;
}

/* =========================================================
   SHOP / PRODUCT LISTING
   ========================================================= */
.shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.shop-result-count {
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.shop-sort {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.88rem;
}
.shop-sort select {
    border: 1px solid var(--color-border-strong);
    background: var(--color-surface);
    padding: 0.5rem 0.9rem;
    font-family: var(--font-sans);
    font-size: 0.88rem;
    border-radius: var(--radius-sm);
}
.filter-toggle-mobile {
    display: none;
}
@media (max-width: 991.98px) {
    .filter-toggle-mobile {
        display: inline-flex;
    }
}

.filter-sidebar {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 1.75rem;
}
.filter-group {
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
}
.filter-group:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.filter-group h3 {
    font-size: 0.95rem;
    margin-bottom: 1rem;
    font-family: var(--font-sans);
    font-weight: 600;
}
.filter-check {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.7rem;
    font-size: 0.9rem;
}
.filter-check input {
    accent-color: var(--color-primary);
    width: 16px;
    height: 16px;
}
.filter-price-inputs {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}
.filter-price-inputs input {
    width: 100%;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--color-border-strong);
    font-size: 0.85rem;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    background: var(--color-bg);
}
.filter-clear {
    font-size: 0.82rem;
    color: var(--color-primary);
    text-decoration: underline;
}

/* Stock / product meta badges reused on shop + PDP */
.stock-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 500;
}
.stock-badge.in-stock {
    color: #3f6b33;
}
.stock-badge.low-stock {
    color: var(--color-primary);
}
.stock-badge.out-stock {
    color: var(--color-text-muted);
}
.stock-badge i {
    font-size: 0.6rem;
}

/* Pagination */
.pagination-brand {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    list-style: none;
    margin: 3rem 0 0;
    padding: 0;
}
.pagination-brand a,
.pagination-brand span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border-strong);
    font-size: 0.88rem;
    color: var(--color-text);
}
.pagination-brand .is-current {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.pagination-brand a:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

/* Empty state */
.empty-state {
    text-align: center;
    padding: 4.5rem 1rem;
}
.empty-state i {
    font-size: 2.75rem;
    color: var(--color-tint-dark);
    margin-bottom: 1.25rem;
    display: inline-block;
}
.empty-state h2 {
    font-size: 1.4rem;
    margin-bottom: 0.6rem;
}
.empty-state p {
    color: var(--color-text-muted);
    margin-bottom: 1.75rem;
    max-width: 44ch;
    margin-left: auto;
    margin-right: auto;
}

/* Loading / skeleton state */
.skeleton {
    background: linear-gradient(90deg, var(--color-tint) 25%, var(--color-tint-dark) 37%, var(--color-tint) 63%);
    background-size: 400% 100%;
    animation: skeletonShine 1.4s ease infinite;
}
@keyframes skeletonShine {
    0% {
        background-position: 100% 0;
    }
    100% {
        background-position: 0 0;
    }
}

/* =========================================================
   PRODUCT DETAIL PAGE
   ========================================================= */
.pdp-gallery-main {
    margin-bottom: 1rem;
}
.pdp-thumbs {
    display: flex;
    gap: 0.75rem;
}
.gallery-thumb {
    width: 76px;
    height: 96px;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color 0.2s ease;
}
.gallery-thumb.is-active {
    border-color: var(--color-primary);
}
.gallery-thumb .img-placeholder {
    width: 100%;
    height: 100%;
}

.pdp-info .product-category {
    margin-bottom: 0.5rem;
}
.pdp-title {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin-bottom: 0.6rem;
}
.pdp-rating {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1.1rem;
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.pdp-rating .testimonial-stars {
    margin-bottom: 0;
}
.pdp-price {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}
.pdp-price .price-current {
    font-size: 1.5rem;
}
.pdp-desc {
    color: var(--color-text-muted);
    margin-bottom: 1.5rem;
    max-width: 52ch;
}

.pdp-option-group {
    margin-bottom: 1.5rem;
}
.pdp-option-group h3 {
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.75rem;
    font-family: var(--font-sans);
}
.swatch-row {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.size-swatch {
    min-width: 44px;
    height: 44px;
    padding: 0 0.5rem;
    border: 1px solid var(--color-border-strong);
    background: var(--color-surface);
    font-size: 0.85rem;
    color: var(--color-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.size-swatch.is-selected,
.size-swatch:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.color-swatch {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid transparent;
    box-shadow: inset 0 0 0 1px var(--color-border-strong);
    cursor: pointer;
}
.color-swatch.is-selected {
    border-color: var(--color-primary);
}

.qty-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--color-border-strong);
}
.qty-stepper button {
    width: 40px;
    height: 44px;
    background: none;
    border: none;
    font-size: 1rem;
    color: var(--color-text);
}
.qty-stepper button:hover {
    color: var(--color-primary);
}
.qty-stepper input {
    width: 48px;
    height: 44px;
    text-align: center;
    border: none;
    border-left: 1px solid var(--color-border-strong);
    border-right: 1px solid var(--color-border-strong);
    font-family: var(--font-sans);
    font-size: 0.95rem;
    background: var(--color-surface);
}
.pdp-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.75rem;
    flex-wrap: wrap;
}
.pdp-actions .btn-primary-brand {
    flex: 1;
    min-width: 200px;
}

.pdp-meta-list {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    font-size: 0.85rem;
    color: var(--color-text-muted);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.pdp-meta-list i {
    color: var(--color-primary);
    width: 18px;
    text-align: center;
    margin-right: 0.5rem;
}

.pdp-tabs .nav-tabs {
    border-bottom: 1px solid var(--color-border);
    gap: 1.5rem;
}
.pdp-tabs .nav-link {
    border: none;
    color: var(--color-text-muted);
    font-family: var(--font-sans);
    font-weight: 500;
    padding: 0.8rem;
    background: none;
    border-bottom: 2px solid transparent;
}
.pdp-tabs .nav-link.active {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.pdp-tabs .tab-content {
    padding-top: 2rem;
    color: var(--color-text-muted);
}
.pdp-tabs .tab-content h3 {
    color: var(--color-text);
    font-size: 1.05rem;
    margin-bottom: 0.75rem;
}

.review-item {
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--color-border);
}
.review-item:first-child {
    padding-top: 0;
}
.review-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.review-name {
    font-weight: 600;
    font-size: 0.92rem;
}
.review-date {
    font-size: 0.78rem;
    color: var(--color-text-muted);
}

.rating-summary {
    display: flex;
    gap: 2.5rem;
    align-items: center;
    margin-bottom: 2rem;
    flex-wrap: wrap;
}
.rating-score {
    text-align: center;
}
.rating-score .score {
    font-family: var(--font-serif);
    font-size: 2.75rem;
    line-height: 1;
}
.rating-bars {
    flex: 1;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.rating-bar-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.78rem;
    color: var(--color-text-muted);
}
.rating-bar-track {
    flex: 1;
    height: 6px;
    background: var(--color-tint);
    border-radius: 3px;
    overflow: hidden;
}
.rating-bar-fill {
    height: 100%;
    background: var(--color-primary);
}

/* =========================================================
   CART PAGE
   ========================================================= */
.cart-table {
    width: 100%;
    border-collapse: collapse;
}
.cart-table thead th {
    text-align: left;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    font-weight: 600;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-border);
}
.cart-row td {
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--color-border);
    vertical-align: top;
}
.cart-product {
    display: flex;
    gap: 1.1rem;
}
.cart-thumb {
    width: 88px;
    height: 110px;
    flex: 0 0 auto;
}
.cart-thumb .img-placeholder {
    width: 100%;
    height: 100%;
}
.cart-product-name {
    font-weight: 500;
    margin-bottom: 0.3rem;
}
.cart-product-meta {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin-bottom: 0.5rem;
}
.js-remove-row {
    background: none;
    border: none;
    color: var(--color-text-muted);
    font-size: 0.82rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.js-remove-row:hover {
    color: var(--color-primary);
}
.cart-price-cell {
    font-weight: 600;
    white-space: nowrap;
}

.cart-summary-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 1.75rem;
}
.cart-summary-card h2 {
    font-size: 1.2rem;
    margin-bottom: 1.25rem;
}
.summary-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.92rem;
    margin-bottom: 0.85rem;
    color: var(--color-text-muted);
}
.summary-row.summary-total {
    color: var(--color-text);
    font-weight: 600;
    font-size: 1.1rem;
    border-top: 1px solid var(--color-border);
    padding-top: 1rem;
    margin-top: 0.5rem;
}
.summary-row .discount-value {
    color: var(--color-primary);
}

.coupon-form {
    display: flex;
    gap: 0.6rem;
    margin: 1.25rem 0 1.5rem;
}
.coupon-form input {
    flex: 1;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--color-border-strong);
    font-family: var(--font-sans);
    font-size: 0.88rem;
    border-radius: var(--radius-sm);
    background: var(--color-bg);
}

/* =========================================================
   CHECKOUT
   ========================================================= */
.checkout-progress {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0 0 2.5rem;
    padding: 0;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
}
.checkout-progress li {
    flex: 1;
    min-width: 140px;
    text-align: center;
    padding: 1rem 0.5rem;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--color-text-muted);
    border-right: 1px solid var(--color-border);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.checkout-progress li:last-child {
    border-right: none;
}
.checkout-progress li span {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
}
.checkout-progress li.is-active {
    color: var(--color-primary);
}
.checkout-progress li.is-active span {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.checkout-progress li.is-done {
    color: var(--color-text);
}
.checkout-progress li.is-done span {
    background: var(--color-text);
    border-color: var(--color-text);
    color: #fff;
}

.checkout-step {
    display: none;
}
.checkout-step.is-active {
    display: block;
}
.checkout-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 2rem;
    margin-bottom: 1.5rem;
}
.checkout-card h2 {
    font-size: 1.15rem;
    margin-bottom: 1.5rem;
}

.form-field {
    margin-bottom: 1.25rem;
}
.form-field label {
    display: block;
    font-size: 0.82rem;
    font-weight: 500;
    margin-bottom: 0.45rem;
}
.form-field input,
.form-field select,
.form-field textarea {
    width: 100%;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--color-border-strong);
    font-family: var(--font-sans);
    font-size: 0.92rem;
    background: var(--color-bg);
    border-radius: var(--radius-sm);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 1px;
    border-color: var(--color-primary);
}
.form-field .hint {
    font-size: 0.76rem;
    color: var(--color-text-muted);
    margin-top: 0.35rem;
}

.radio-card {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    border: 1px solid var(--color-border-strong);
    padding: 1rem 1.1rem;
    margin-bottom: 0.9rem;
    cursor: pointer;
}
.radio-card input {
    margin-top: 0.2rem;
    accent-color: var(--color-primary);
}
.radio-card strong {
    display: block;
    font-size: 0.92rem;
}
.radio-card span {
    display: block;
    font-size: 0.8rem;
    color: var(--color-text-muted);
}
.radio-card:has(input:checked) {
    border-color: var(--color-primary);
    background: var(--color-tint);
}

.checkout-step-actions {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.5rem;
}

.secure-note {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin-top: 1.25rem;
}
.secure-note i {
    color: var(--color-primary);
}

.confirmation-hero {
    text-align: center;
    padding: 3.5rem 1rem;
}
.confirmation-hero i {
    font-size: 3.5rem;
    color: var(--color-primary);
    margin-bottom: 1.5rem;
    display: inline-block;
}
.confirmation-hero h1 {
    font-size: 1.9rem;
    margin-bottom: 0.75rem;
}
.confirmation-hero p {
    color: var(--color-text-muted);
    max-width: 50ch;
    margin: 0 auto 2rem;
}
.order-summary-box {
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    max-width: 480px;
    margin: 0 auto 2rem;
    padding: 1.5rem;
    text-align: left;
}

/* =========================================================
   ACCOUNT / LOGIN / REGISTER
   ========================================================= */
.auth-wrapper {
    max-width: 460px;
    margin: 0 auto;
}
.auth-tabs {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 2rem;
}
.auth-tab {
    flex: 1;
    background: none;
    border: none;
    padding: 0.9rem;
    font-family: var(--font-serif);
    font-size: 1.05rem;
    color: var(--color-text-muted);
    border-bottom: 2px solid transparent;
}
.auth-tab.is-active {
    color: var(--color-primary);
    border-color: var(--color-primary);
}
.auth-panel {
    display: none;
}
.auth-panel.is-active {
    display: block;
}
.form-check-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
}
.form-check-row a {
    color: var(--color-primary);
}

.account-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2.5rem;
}
@media (max-width: 767.98px) {
    .account-layout {
        grid-template-columns: 1fr;
    }
}
.account-sidebar {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 1.5rem;
    align-self: start;
}
.account-sidebar-user {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-bottom: 1.25rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
}
.account-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--color-tint);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    font-size: 1.3rem;
}
.account-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}
.account-nav a {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.7rem 0.5rem;
    font-size: 0.9rem;
    border-radius: var(--radius-sm);
}
.account-nav a.active,
.account-nav a:hover {
    background: var(--color-tint);
    color: var(--color-primary);
}
.account-nav a i {
    width: 18px;
    text-align: center;
}

.account-panel {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    padding: 1.75rem 2rem;
    margin-bottom: 1.5rem;
}
.account-panel h2 {
    font-size: 1.15rem;
    margin-bottom: 1.5rem;
}

.order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}
.order-table th {
    text-align: left;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-muted);
    font-weight: 600;
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.order-table td {
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
}
.status-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.25rem 0.7rem;
    border-radius: 20px;
    font-size: 0.76rem;
    font-weight: 500;
}
.status-chip.delivered {
    background: #e3eedd;
    color: #3f6b33;
}
.status-chip.shipped {
    background: var(--color-tint);
    color: var(--color-primary);
}
.status-chip.processing {
    background: #efe7da;
    color: #6e6459;
}

.address-card {
    border: 1px solid var(--color-border);
    padding: 1.25rem;
    margin-bottom: 1rem;
    position: relative;
}
.address-card.is-default::before {
    content: "Default";
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    font-weight: 600;
}
.address-card p {
    font-size: 0.88rem;
    color: var(--color-text-muted);
    margin-bottom: 0.2rem;
}
.address-card strong {
    display: block;
    margin-bottom: 0.4rem;
}
.address-actions {
    display: flex;
    gap: 1rem;
    margin-top: 0.9rem;
    font-size: 0.82rem;
}
.address-actions a {
    color: var(--color-primary);
}

/* =========================================================
   WISHLIST PAGE
   ========================================================= */
.wishlist-row {
    transition: opacity 0.25s ease;
}

/* =========================================================
   FAQ / CONTENT PAGES
   ========================================================= */
.content-prose {
    max-width: 72ch;
}
.content-prose h2 {
    font-size: 1.3rem;
    margin: 2.25rem 0 0.9rem;
}
.content-prose h2:first-child {
    margin-top: 0;
}
.content-prose p {
    color: var(--color-text-muted);
    margin-bottom: 1.1rem;
}
.content-prose ul {
    color: var(--color-text-muted);
    margin-bottom: 1.1rem;
    padding-left: 1.25rem;
}
.content-prose li {
    margin-bottom: 0.5rem;
}

.faq-accordion .accordion-item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    margin-bottom: 0.9rem;
}
.faq-accordion .accordion-button {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    color: var(--color-text);
    background: var(--color-surface);
    box-shadow: none;
}
.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--color-primary);
    background: var(--color-surface);
}
.faq-accordion .accordion-button:focus {
    box-shadow: none;
    outline: 2px solid var(--color-primary);
}
.faq-accordion .accordion-button::after {
    filter: sepia(60%) saturate(400%) hue-rotate(320deg) brightness(0.8);
}
.faq-accordion .accordion-body {
    color: var(--color-text-muted);
}

/* Contact page */
.contact-info-item {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.75rem;
}
.contact-info-item i {
    font-size: 1.3rem;
    color: var(--color-primary);
    margin-top: 0.15rem;
}
.contact-info-item h3 {
    font-size: 0.98rem;
    margin-bottom: 0.3rem;
}
.contact-info-item p {
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.contact-map-placeholder {
    aspect-ratio: 16/9;
}

/* Team / values grid on About page */
.value-item {
    text-align: center;
    padding: 0 0.5rem;
}
.value-item i {
    font-size: 1.8rem;
    color: var(--color-primary);
    margin-bottom: 0.9rem;
    display: inline-block;
}
.value-item h3 {
    font-size: 1rem;
    margin-bottom: 0.4rem;
}
.value-item p {
    font-size: 0.86rem;
    color: var(--color-text-muted);
}

.timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    border-left: 2px solid var(--color-border-strong);
}
.timeline li {
    padding: 0 0 2rem 1.75rem;
    position: relative;
}
.timeline li::before {
    content: "";
    position: absolute;
    left: -7px;
    top: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--color-primary);
}
.timeline .timeline-year {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    color: var(--color-primary);
    margin-bottom: 0.3rem;
}
.timeline p {
    color: var(--color-text-muted);
    max-width: 52ch;
}

/* =========================================================
   RESPONSIVE HEADER TWEAKS
   ========================================================= */
@media (max-width: 991.98px) {
    .header-row {
        height: 64px;
    }
    .logo-placeholder {
        width: 120px;
        height: 44px;
    }
}

/* =========================================================
   POPULAR CATEGORIES (trend sidebar + auto-sliding carousel)
   ========================================================= */
.trend-cat-heading {
    font-size: 1.3rem;
    margin-bottom: 1.5rem;
}
.trend-cat-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.trend-cat-item a {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.8rem 0;
    border-bottom: 1px solid var(--color-border);
}
.trend-cat-thumb {
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    border-radius: 50%;
    font-size: 0.95rem;
}
.trend-cat-thumb i {
    font-size: 1rem;
}
.trend-cat-name {
    flex: 1;
    font-size: 0.94rem;
    font-weight: 500;
    color: var(--color-text);
    transition: color 0.2s ease;
}
.trend-cat-count {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.76rem;
    color: var(--color-text-muted);
    transition:
        border-color 0.2s ease,
        color 0.2s ease;
}
.trend-cat-item a:hover .trend-cat-name {
    color: var(--color-primary);
}
.trend-cat-item a:hover .trend-cat-count {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.popular-cat-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 2.25rem;
}
.popular-cat-filters {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.popular-cat-filters button {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.2s ease;
}
.popular-cat-filters button.is-active,
.popular-cat-filters button:hover {
    color: var(--color-primary);
}

.all-categories-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    border: 1px solid var(--color-border-strong);
    border-radius: 24px;
    padding: 0.55rem 1.2rem;
    font-size: 0.82rem;
    color: var(--color-text);
    transition:
        border-color 0.2s ease,
        color 0.2s ease;
}
.all-categories-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.product-sku {
    font-size: 0.72rem;
    color: var(--color-text-muted);
    margin-top: 0.5rem;
}
.mini-swatch-row {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.7rem;
}
.mini-swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
}
.stock-badge {
    margin-top: 0.4rem;
    margin-bottom: 0;
}
.btn-add-cart[disabled] {
    opacity: 0.55;
    cursor: not-allowed;
}
.btn-add-cart[disabled]::before {
    display: none;
}

/* =========================================================
   WHATSAPP FLOATING BUBBLE
   ========================================================= */
.whatsapp-bubble {
    position: fixed;
    left: 1.5rem;
    bottom: 1.5rem;
    z-index: 1030;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #3fa746;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    box-shadow: var(--shadow-lift);
    transition: transform 0.2s ease;
}
.whatsapp-bubble:hover {
    transform: scale(1.06);
    color: #fff;
}
.whatsapp-tooltip {
    position: absolute;
    left: 62px;
    bottom: 8px;
    background: var(--color-surface);
    color: var(--color-text);
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 500;
    padding: 0.55rem 1rem;
    border-radius: 20px;
    white-space: nowrap;
    box-shadow: var(--shadow-card);
    opacity: 0;
    visibility: hidden;
    transform: translateX(-6px);
    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s ease;
}
.whatsapp-bubble:hover .whatsapp-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
@media (max-width: 991.98px) {
    .whatsapp-bubble {
        width: 46px;
        height: 46px;
        font-size: 1.3rem;
        bottom: 78px;
        left: 1rem;
    }
    .whatsapp-tooltip {
        display: none;
    }
}

/* =========================================================
   PDP — IMAGE ZOOM LENS
   ========================================================= */
.pdp-zoom-wrap {
    position: relative;
}
.pdp-zoom-source {
    position: relative;
    overflow: hidden;
    cursor: crosshair;
}
.pdp-zoom-source img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pdp-zoom-lens {
    width: 160px;
    height: 160px;
    border: 2px solid var(--color-primary);
    border-radius: 8px;
    background-color: var(--color-tint);
    box-shadow: var(--shadow-lift);
}
.pdp-zoom-hint {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    color: var(--color-text-muted);
    margin-top: 0.75rem;
}
.pdp-zoom-hint i {
    color: var(--color-primary);
}
@media (max-width: 991.98px) {
    .pdp-zoom-hint {
        display: none;
    }
}

/* =========================================================
   PDP — QUICK SPECS LIST
   ========================================================= */
.pdp-quick-specs {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.6rem 1.5rem;
    font-size: 0.85rem;
}
.pdp-quick-specs li strong {
    display: block;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-bottom: 0.15rem;
}
@media (max-width: 575.98px) {
    .pdp-quick-specs {
        grid-template-columns: 1fr 1fr;
    }
}

/* =========================================================
   PDP — SIZE + COLOR SELECTORS WITH MODAL TRIGGERS
   ========================================================= */
.pdp-option-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}
.pdp-option-head h3 {
    margin-bottom: 0;
}
.pdp-chart-link {
    font-size: 0.8rem;
    color: var(--color-primary);
    text-decoration: underline;
    background: none;
    border: none;
    padding: 0;
}
.pdp-selected-note {
    font-size: 0.8rem;
    color: var(--color-text-muted);
    margin-top: 0.6rem;
}
.pdp-selected-note strong {
    color: var(--color-text);
}

/* =========================================================
   SIZE CHART MODAL
   ========================================================= */
.size-chart-modal .modal-dialog {
    max-width: 780px;
}
.size-chart-modal .modal-content {
    border-radius: 0;
    border: none;
    background: var(--color-bg);
}
.size-chart-modal .modal-header {
    border-bottom: 1px solid var(--color-border);
}
.size-chart-modal .modal-title {
    font-size: 1.2rem;
}
.size-chart-tabs .nav-link {
    border: none;
    color: var(--color-text-muted);
    font-family: var(--font-sans);
    font-weight: 500;
    padding: 0.7rem 1rem;
    border-bottom: 2px solid transparent;
}
.size-chart-tabs .nav-link.active {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background: none;
}
.size-chart-table-wrap {
    overflow-x: auto;
}
.size-chart-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    min-width: 520px;
}
.size-chart-table th {
    background: var(--color-primary);
    color: #fff;
    padding: 0.6rem 0.7rem;
    text-align: center;
    font-weight: 600;
}
.size-chart-table td {
    padding: 0.55rem 0.7rem;
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}
.size-chart-table tbody tr:hover {
    background: var(--color-tint);
}
.size-choose-radio {
    accent-color: var(--color-primary);
    width: 16px;
    height: 16px;
}
.size-chart-custom-row td {
    background: var(--color-bg-alt);
}
.size-chart-custom-row input {
    width: 100%;
    max-width: 90px;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--color-border-strong);
    font-size: 0.82rem;
    border-radius: var(--radius-sm);
    background: var(--color-surface);
}
.size-chart-kids {
    text-align: center;
    padding: 1.5rem 0;
}
.size-chart-kids label {
    display: block;
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
    color: var(--color-text-muted);
}
.size-chart-kids select {
    padding: 0.6rem 1rem;
    border: 1px solid var(--color-border-strong);
    font-family: var(--font-sans);
    font-size: 0.92rem;
    background: var(--color-surface);
    min-width: 200px;
}

/* =========================================================
   CUSTOM EMBROIDERY COLOR MODAL
   ========================================================= */
.color-modal .modal-dialog {
    max-width: 760px;
}
.color-modal .modal-content {
    border-radius: 0;
    border: none;
    background: var(--color-bg);
}
.color-modal .modal-header {
    border-bottom: 1px solid var(--color-border);
}
.color-family {
    margin-bottom: 1.5rem;
}
.color-family-name {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted);
    margin-bottom: 0.6rem;
}
.color-family-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.thread-swatch {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid transparent;
    box-shadow: inset 0 0 0 1px rgba(41, 37, 34, 0.15);
    cursor: pointer;
    position: relative;
}
.thread-swatch.is-selected {
    border-color: var(--color-text);
    box-shadow:
        0 0 0 2px var(--color-bg),
        0 0 0 4px var(--color-primary);
}
.thread-swatch:hover::after {
    content: attr(data-code);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-text);
    color: var(--color-bg);
    font-size: 0.68rem;
    padding: 0.2rem 0.5rem;
    border-radius: 3px;
    white-space: nowrap;
    z-index: 5;
}
.color-modal-selected {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--color-border);
}
.color-modal-selected-swatch {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--color-border-strong);
    background: var(--color-tint);
}
.color-modal-selected-text {
    font-size: 0.88rem;
    color: var(--color-text-muted);
}
.color-modal-selected-text strong {
    color: var(--color-text);
}
/* ================ end ====================== */

/* =========================================================
   WISHLIST — Flipkart-style account sidebar + list layout
   ========================================================= */
.wishlist-account-layout {
    align-items: start;
}
.account-sidebar-divider {
    border-color: var(--color-border);
    margin: 1rem 0;
}
.account-logout {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.7rem 0.5rem;
    font-size: 0.9rem;
    color: var(--color-text-muted);
}
.account-logout:hover {
    color: var(--color-primary);
}

.wishlist-list-heading {
    font-size: 1.4rem;
    margin-bottom: 1.5rem;
}
.wishlist-list-heading span {
    color: var(--color-text-muted);
    font-family: var(--font-sans);
    font-size: 1rem;
    font-weight: 400;
}

.wishlist-list {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}
.wishlist-list-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
}
.wishlist-list-row:last-child {
    border-bottom: none;
}

.wishlist-list-thumb {
    width: 84px;
    height: 84px;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    overflow: hidden;
}
.wishlist-list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wishlist-list-info {
    flex: 1;
    min-width: 0;
}
.wishlist-list-info h3 {
    font-size: 0.95rem;
    font-weight: 500;
    margin-bottom: 0.35rem;
    font-family: var(--font-sans);
}
.wishlist-list-info h3 a:hover {
    color: var(--color-primary);
}
.wishlist-list-info .stock-badge {
    margin-bottom: 0.5rem;
}

.wishlist-list-price {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.wishlist-list-price .price-current {
    font-size: 1.05rem;
    font-weight: 600;
}
.wishlist-discount {
    font-size: 0.82rem;
    color: #3f6b33;
    font-weight: 500;
}

.wishlist-list-actions {
    display: flex;
    /* flex-direction: column; */
    align-items: flex-end;
    gap: 0.6rem;
    flex: 0 0 auto;
}
.wishlist-list-actions .btn {
    white-space: nowrap;
}
.wishlist-list-remove {
    background: none;
    border: none;
    color: var(--color-text-muted);
    font-size: 1.05rem;
    padding: 0.2rem;
}
.wishlist-list-remove:hover {
    color: var(--color-primary);
}

.wishlist-load-more {
    background: none;
    border: none;
    color: var(--color-primary);
    font-size: 0.9rem;
    font-weight: 500;
    text-decoration: underline;
}
.wishlist-load-more:hover {
    color: var(--color-primary-dark);
}

@media (max-width: 575.98px) {
    .wishlist-list-row {
        flex-wrap: wrap;
        padding: 1rem;
    }
    .wishlist-list-thumb {
        width: 64px;
        height: 64px;
    }
    .wishlist-list-actions {
        flex-direction: row;
        align-items: center;
        width: 100%;
        justify-content: space-between;
        margin-top: 0.5rem;
        padding-left: calc(64px + 1.25rem);
    }
}

/* =========================================================
   LOGIN / REGISTER PAGE
   ========================================================= */
.auth-section{ display:flex; align-items:center; min-height: 60vh; }
.auth-card{
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 2.5rem 2.25rem;
}
.auth-card .eyebrow{ display:flex; width:100%; margin-bottom: 1.75rem; }
.auth-switch-note{
  text-align:center; font-size:.85rem; color: var(--color-text-muted); margin-top:1.5rem;
}
.auth-switch-link{
  background:none; border:none; padding:0; color: var(--color-primary);
  text-decoration:underline; font-size:.85rem;
}
@media (max-width: 575.98px){
  .auth-card{ padding: 2rem 1.5rem; }


  
}


/* =========================================================
   MY ORDERS PAGE
   ========================================================= */
.orders-head {
    margin-bottom: 1.75rem;
}
.orders-heading {
    font-size: 1.4rem;
    margin-bottom: 1rem;
}
.order-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.order-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    margin-bottom: 1.5rem;
}
.order-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
}
.order-id {
    font-weight: 600;
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
}
.order-date {
    font-size: 0.8rem;
    color: var(--color-text-muted);
}

.order-card-items {
    padding: 0.25rem 1.5rem;
}
.order-item-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--color-border);
}
.order-item-row:last-child {
    border-bottom: none;
}
.order-item-thumb {
    width: 64px;
    height: 64px;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    overflow: hidden;
}
.order-item-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.order-item-info {
    flex: 1;
    min-width: 0;
}
.order-item-info h3 {
    font-size: 0.9rem;
    font-weight: 500;
    margin-bottom: 0.2rem;
    font-family: var(--font-sans);
}
.order-item-info h3 a:hover {
    color: var(--color-primary);
}
.order-item-price {
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
}

.order-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.5rem;
    border-top: 1px solid var(--color-border);
    flex-wrap: wrap;
}
.order-total {
    font-size: 0.92rem;
    color: var(--color-text-muted);
}
.order-total strong {
    color: var(--color-text);
}
.order-actions {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.order-cancel-btn {
    color: var(--color-text-muted);
    border-color: var(--color-border-strong);
}
.order-cancel-btn:hover {
    color: #fff;
    background: var(--color-text);
    border-color: var(--color-text);
}

.status-chip.cancelled {
    background: #f1dcda;
    color: #a13a2e;
}



/* =========================================================
   MY ORDERS PAGE (flat searchable list, Flipkart/Meesho style)
   ========================================================= */
.order-search-bar {
    display: flex;
    gap: 0;
    margin-bottom: 2rem;
}
.order-search-bar input {
    flex: 1;
    padding: 0.85rem 1.1rem;
    border: 1px solid var(--color-border-strong);
    border-right: none;
    background: var(--color-surface);
    font-family: var(--font-sans);
    font-size: 0.92rem;
}
.order-search-bar input:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}
.order-search-bar .btn {
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
}

.orders-head {
    margin-bottom: 1.75rem;
}
.orders-heading {
    font-size: 1.4rem;
    margin-bottom: 1rem;
}
.order-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.order-list {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}
.order-list-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    transition: background-color 0.15s ease;
}
.order-list-row:last-child {
    border-bottom: none;
}
.order-list-row:hover {
    background: var(--color-tint);
}
.order-list-row:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: -2px;
}

.order-list-thumb {
    width: 68px;
    height: 68px;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    overflow: hidden;
}
.order-list-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.order-list-info {
    flex: 1 1 260px;
    min-width: 0;
}
.order-list-info h3 {
    font-size: 0.92rem;
    font-weight: 500;
    margin-bottom: 0.3rem;
    font-family: var(--font-sans);
}
.order-list-info h3 span {
    font-weight: 400;
    color: var(--color-text-muted);
}

.order-list-price {
    font-size: 0.95rem;
    font-weight: 600;
    flex: 0 0 auto;
    min-width: 90px;
}

.order-list-status {
    flex: 0 0 auto;
    text-align: right;
    min-width: 220px;
}
.order-list-status-line {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    font-size: 0.88rem;
    font-weight: 600;
    margin-bottom: 0.2rem;
}
.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}
.status-dot.delivered {
    background: #3f6b33;
}
.status-dot.shipped {
    background: var(--color-primary);
}
.status-dot.processing {
    background: #b08a3e;
}
.status-dot.cancelled {
    background: #a13a2e;
}
.order-list-status-sub {
    font-size: 0.78rem;
    color: var(--color-text-muted);
    margin-bottom: 0.3rem;
}
.order-list-rate {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.82rem;
    color: var(--color-primary);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.order-list-rate:hover {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .order-search-bar {
        flex-direction: column;
    }
    .order-search-bar input {
        border-right: 1px solid var(--color-border-strong);
        border-bottom: none;
    }
    .order-list-row {
        flex-wrap: wrap;
    }
    .order-list-status {
        text-align: left;
        min-width: 0;
        width: 100%;
        padding-left: calc(68px + 1.25rem);
    }
    .order-list-status-line {
        justify-content: flex-start;
    }
}


/* ===== Manage Address page =============== */
.manage-address {
    max-width: 760px;
}
.manage-address-header {
    margin-bottom: 1rem;
}

.btn-add-address {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.9rem 1.1rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    color: #9b4429;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
    transition: border-color 0.2s ease;
}
.btn-add-address:hover {
    border-color: #9b4429;
}

.address-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.address-card {
    position: relative;
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-surface);;
}
.address-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 0.5rem;
}

.address-badge {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #9b4429;
    background: #e9d9c685;
    border-radius: 4px;
}

.address-menu {
    position: relative;
}
.address-menu-toggle {
    background: none;
    border: none;
    font-size: 1.1rem;
    color: #6b7280;
    cursor: pointer;
    padding: 0.2rem 0.4rem;
}

.address-menu-dropdown {
    display: none;
    position: absolute;
    right: 0;
    top: 1.8rem;
    min-width: 110px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    z-index: 5;
    overflow: hidden;
}
.address-menu.open .address-menu-dropdown {
    display: block;
}
.address-menu-dropdown a {
    display: block;
    padding: 0.55rem 0.9rem;
    font-size: 0.85rem;
    color: #9b4429;
    text-decoration: none;
}
.address-menu-dropdown a:hover {
    background: #f5f7ff;
}

.address-name {
    font-weight: 700;
    margin: 0 0 0.35rem;
}
.address-phone {
    font-weight: 400;
    color: #4b5563;
    margin-left: 0.5rem;
}
.address-text {
    margin: 0;
    color: #4b5563;
    font-size: 0.9rem;
    line-height: 1.5;
}

.address-form-panel {
    padding: 1.25rem;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 6px;
}
.address-form-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 1rem;
    color: #9b4429;
}

.btn-current-location {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1.1rem;
    margin-bottom: 1.25rem;
    background: #9b4429;
    border: none;
    border-radius: 6px;
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
}
.btn-current-location:hover {
    background: #a55c45;
}
.btn-current-location:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
.form-group {
    margin-bottom: 1rem;
}
.form-row .form-group {
    margin-bottom: 0;
}

.form-group label,
.form-label-block {
    display: block;
    font-size: 0.75rem;
    color: #6b7280;
    margin-bottom: 0.3rem;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.9rem;
    background: #fff;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: #9b4429;
}

.address-type-options {
    display: flex;
    gap: 1.5rem;
    margin-top: 0.3rem;
}
.radio-inline {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
    color: #374151;
    cursor: pointer;
}

.address-form-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
    margin-top: 0.5rem;
}

.btn-save-address {
    padding: 0.7rem 2rem;
    background: #9b4429;
    border: none;
    border-radius: 6px;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
}
.btn-save-address:hover {
    background: #883921;
}
.btn-cancel-address {
    background: none;
    border: none;
    color: #9b4429;
    font-weight: 600;
    cursor: pointer;
}

@media (max-width: 576px) {
    .form-row {
        grid-template-columns: 1fr;
    }
}
.radio-inline input[type="radio"] {
  accent-color: #9b4429;
}

.address-extra { display: none; }

/* ==== */

/* =========== My Coupons Page ========================== */
.my-coupons {
    max-width: 760px;
}

.coupons-tabs {
    display: flex;
    gap: 1.5rem;
    border-bottom: 1px solid #e5e7eb;
    margin-bottom: 1.25rem;
}
.coupon-tab {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.75rem 0.1rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: #6b7280;
    border-bottom: 2px solid transparent;
}
.coupon-tab.active {
    color: #9b4429;
    border-bottom-color: #9b4429;
}

.coupon-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.coupon-card {
    position: relative;
    padding: 1.1rem 1.25rem;
    border: 1px dashed #d1b3a3;
    border-radius: 6px;
    background: #fdf7f4;
}
.coupon-card-expired {
    border-style: solid;
    border-color: #e5e7eb;
    background: #f7f7f7;
    opacity: 0.8;
}

.coupon-code-block {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}
.coupon-code {
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.03em;
    color: #9b4429;
}

.btn-copy-coupon {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0.7rem;
    background: #fff;
    border: 1px solid #9b4429;
    border-radius: 4px;
    color: #9b4429;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}
.btn-copy-coupon:hover {
    background: #9b4429;
    color: #fff;
}
.btn-copy-coupon.copied {
    background: #2e7d32;
    border-color: #2e7d32;
    color: #fff;
}

.coupon-expired-badge {
    padding: 0.2rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #9ca3af;
    background: #eee;
    border-radius: 4px;
}

.coupon-title {
    margin: 0 0 0.25rem;
    font-weight: 600;
    color: #1f2937;
}
.coupon-meta {
    margin: 0 0 0.5rem;
    font-size: 0.85rem;
    color: #6b7280;
}

.coupon-terms-toggle {
    background: none;
    border: none;
    padding: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #9b4429;
    cursor: pointer;
}
.coupon-terms {
    margin-top: 0.6rem;
}
.coupon-terms ul {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.8rem;
    color: #6b7280;
}
.coupon-terms li {
    margin-bottom: 0.2rem;
}

.coupon-empty {
    padding: 2rem;
    text-align: center;
    color: #6b7280;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}


/* ---------- */

/* ============ My Reviews and Rating ================= */

.reviews-ratings {
    max-width: 800px;
}
.reviews-section-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 1rem;
    color: #1f2937;
}

/* ---------- Pending review items ---------- */
.review-pending-section {
    margin-bottom: 2rem;
}
.review-pending-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.review-pending-item {
    display: flex;
    gap: 1rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #eee;
}
.review-pending-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.review-product-img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    flex-shrink: 0;
}

.review-product-name {
    margin: 0 0 0.5rem;
    font-size: 0.9rem;
    color: #4b5563;
}

.rate-review-link {
    font-weight: 600;
    color: #9b4429;
    text-decoration: none;
    font-size: 0.9rem;
}
.rate-review-link:hover {
    text-decoration: underline;
}

/* ---------- Star rating widget (fixed) ---------- */
.star-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
}
.star-rating .star i {
    font-size: 1.1rem;
    color: #d1d5db;
}
.star-rating-large .star i {
    font-size: 1.6rem;
}
.star-rating .star.filled i {
    color: #9b4429;
}

.star-tooltip {
    display: none;
    margin-left: 0.5rem;
    padding: 0.2rem 0.6rem;
    background: #1f2937;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 4px;
    white-space: nowrap;
    pointer-events: none;
}
.star-rating:hover .star-tooltip {
    display: inline-block;
}


/* ---------- Review form panel ---------- */
.review-form-panel {
    margin-bottom: 2rem;
    padding: 1.25rem;
    background: #f7f9fc;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}
.review-form-product {
    font-size: 0.9rem;
    color: #6b7280;
    margin: -0.5rem 0 1rem;
}

.review-form .form-group {
    margin-bottom: 1rem;
}
.review-form label,
.form-label-block {
    display: block;
    font-size: 0.8rem;
    color: #6b7280;
    margin-bottom: 0.3rem;
}
.review-form input[type="text"],
.review-form textarea {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 0.9rem;
    background: #fff;
}
.review-form input:focus,
.review-form textarea:focus {
    outline: none;
    border-color: #9b4429;
}

.review-photo-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.btn-photo-upload,
.btn-photo-capture {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid #9b4429;
    border-radius: 6px;
    color: #9b4429;
    font-size: 0.85rem;
    font-weight: 600;
    background: #fff;
    cursor: pointer;
}
.btn-photo-upload:hover,
.btn-photo-capture:hover {
    background: #9b4429;
    color: #fff;
}

.review-photo-previews {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.review-photo-thumb {
    position: relative;
    width: 64px;
    height: 64px;
}
.review-photo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}
.review-photo-remove {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #1f2937;
    color: #fff;
    border: none;
    font-size: 0.65rem;
    line-height: 18px;
    text-align: center;
    cursor: pointer;
    padding: 0;
}

.review-form-actions {
    display: flex;
    gap: 1rem;
    align-items: center;
}
.btn-submit-review {
    padding: 0.7rem 1.8rem;
    background: #9b4429;
    border: none;
    border-radius: 6px;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
}
.btn-submit-review:hover {
    background: #833a23;
}
.btn-cancel-review {
    background: none;
    border: none;
    color: #9b4429;
    font-weight: 600;
    cursor: pointer;
}

/* ---------- My Reviews list ---------- */
.my-reviews-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.review-card {
    display: flex;
    gap: 1rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #eee;
}
.review-card:last-child {
    border-bottom: none;
}

.review-rating-line {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0 0 0.4rem;
}
.rating-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #fff;
}
.rating-badge i {
    font-size: 0.7rem;
}
.rating-badge-1,
.rating-badge-2 {
    background: #ff5252;
}
.rating-badge-3 {
    background: #ff9f1a;
}
.rating-badge-4,
.rating-badge-5 {
    background: #2e7d32;
}

.review-title {
    font-weight: 700;
    color: #1f2937;
}
.review-text {
    margin: 0 0 0.6rem;
    color: #374151;
    font-size: 0.9rem;
}

.review-photos {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.6rem;
}
.review-photos img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}

.review-meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: #6b7280;
    margin: 0 0 0.5rem;
    flex-wrap: wrap;
}
.review-verified {
    color: #2e7d32;
}
.review-buyer-badge {
    font-weight: 600;
}

.review-actions-row {
    display: flex;
    gap: 1.25rem;
    font-size: 0.8rem;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

.review-links {
    display: flex;
    gap: 1rem;
}
.review-links a {
    font-size: 0.85rem;
    font-weight: 600;
    color: #9b4429;
    text-decoration: none;
}
.review-links a:hover {
    text-decoration: underline;
}

.reviews-empty {
    padding: 2rem;
    text-align: center;
    color: #6b7280;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}



/* ---- add review ------------------- */
/* ---------- Layout ---------- */
.write-review-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 1.25rem;
    align-items: start;
}

/* ---------- Left guide ---------- */
.review-guide {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 1.25rem;
}
.review-guide-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
}
.review-guide-item {
    padding: 1rem 0;
    border-bottom: 1px solid #eee;
}
.review-guide-item:last-child {
    border-bottom: none;
}
.review-guide-item h4 {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.4rem;
}
.review-guide-item p {
    font-size: 0.85rem;
    color: #4b5563;
    margin: 0;
    line-height: 1.5;
}
.review-guide-item a {
    color: #9b4429;
}

/* ---------- Right main ---------- */
.review-main {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 1.25rem;
}

.review-product-row {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #eee;
}
.review-product-img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border: 1px solid #e5e7eb;
    border-radius: 4px;
}
.review-product-name {
    margin: 0;
    font-size: 0.9rem;
    color: #4b5563;
}

.review-heading {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    color: #1f2937;
}
.review-rate-block {
    padding-bottom: 1rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid #eee;
}

/* ---------- Star rating ---------- */
.star-rating {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    cursor: pointer;
}
.star-rating .star i {
    font-size: 1.1rem;
    color: #d1d5db;
}
.star-rating-large {
    gap: 0.5rem;
}
.star-rating-large .star i {
    font-size: 1.8rem;
}
.star-rating .star.filled i {
    color: #9b4429;
}

.star-tooltip {
    display: none;
    margin-left: 0.5rem;
    padding: 0.2rem 0.6rem;
    background: #1f2937;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 4px;
    white-space: nowrap;
    pointer-events: none;
}
.star-rating:hover .star-tooltip {
    display: inline-block;
}

/* ---------- Text box (description + title in one bordered box) ---------- */
.review-textbox {
    border: 1px solid #d1d5db;
    border-radius: 4px;
    margin-bottom: 1.25rem;
}
.review-field {
    padding: 0.75rem 1rem;
}
.review-field + .review-field {
    border-top: 1px solid #e5e7eb;
}
.review-field label {
    display: block;
    font-size: 0.72rem;
    color: #374151;
    margin-bottom: 0.3rem;
}
.review-field textarea,
.review-field input {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.9rem;
    resize: vertical;
    font-family: inherit;
}
.review-textbox:focus-within {
    border-color: #9b4429;
}

/* ---------- Photos ---------- */
.review-photos-block {
    margin-bottom: 1.25rem;
}
.review-photo-previews {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}
.review-photo-thumb {
    position: relative;
    width: 64px;
    height: 64px;
}
.review-photo-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
}
.review-photo-remove {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #1f2937;
    color: #fff;
    border: none;
    font-size: 0.7rem;
    line-height: 18px;
    padding: 0;
    cursor: pointer;
}

.review-photo-add {
    position: relative;
    display: inline-block;
}
.btn-add-photo {
    width: 56px;
    height: 56px;
    border: none;
    border-radius: 4px;
    background: #ececec;
    color: #6b7280;
    font-size: 1.4rem;
    cursor: pointer;
}
.btn-add-photo:hover {
    background: #e2e2e2;
    color: #9b4429;
}

.photo-menu {
    position: absolute;
    left: 0;
    top: calc(100% + 6px);
    z-index: 10;
    min-width: 190px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}
.photo-menu-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.65rem 0.9rem;
    background: none;
    border: none;
    text-align: left;
    font-size: 0.85rem;
    color: #374151;
    cursor: pointer;
}
.photo-menu-item:hover {
    background: #fdf7f4;
    color: #9b4429;
}
.review-photo-hint {
    font-size: 0.75rem;
    color: #9ca3af;
    margin: 0.5rem 0 0;
}

/* ---------- Submit ---------- */
.review-submit-row {
    display: flex;
    justify-content: flex-end;
}
.btn-submit-review {
    padding: 0.85rem 3rem;
    background: #9b4429;
    border: none;
    border-radius: 4px;
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}
.btn-submit-review:hover {
    background: #833a23;
}
.review-success {
    margin-top: 1rem;
    color: #2e7d32;
    font-weight: 600;
}

/* ---------- Camera popup ---------- */
.camera-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.75);
    padding: 1rem;
}
.camera-modal[hidden] {
    display: none !important;
}
.camera-modal-box {
    background: #111;
    border-radius: 8px;
    padding: 1rem;
    width: 100%;
    max-width: 480px;
}
.camera-modal-box video {
    display: block;
    width: 100%;
    min-height: 240px;
    border-radius: 6px;
    background: #000;
}

.btn-snap {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.6rem 1.2rem;
    background: #9b4429;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
}
.btn-camera-close {
    background: none;
    border: none;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
    .write-review-layout {
        grid-template-columns: 1fr;
    }
}


/* ---------- */

.form-field ul { font-size:.76rem; color:var(--color-text-muted); padding-left:1.1rem; margin-top:.4rem; }
.auth-card h1 { font-family: var(--font-serif); }



.mini-cart-thumb{ overflow:hidden; }
.mini-cart-thumb img{ width:100%; height:100%; object-fit:cover; }
.mini-cart-name a:hover{ color:var(--color-primary); }
.mini-cart-side{ display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; }
.mini-cart-remove{ background:none; border:none; padding:0; font-size:.78rem; color:var(--color-text-muted); }
.mini-cart-remove:hover{ color:var(--color-primary); }
.checkout-summary-sticky{ position:sticky; top:calc(var(--header-h) + 1rem); }
.mini-cart-meta{ word-break:break-word; }


.order-track-timeline{ list-style:none; margin:1.5rem 0 0; padding:0; border-left:2px solid var(--color-border-strong); }
.order-track-timeline li{ padding:0 0 1.75rem 1.5rem; position:relative; }
.order-track-timeline li::before{
  content:""; position:absolute; left:-7px; top:2px; width:12px; height:12px; border-radius:50%;
  background:var(--color-border-strong);
}
.order-track-timeline li.is-done::before{ background:var(--color-primary); }
.order-track-timeline li strong{ display:block; font-size:.92rem; }
.order-track-timeline li span{ font-size:.8rem; color:var(--color-text-muted); }
.order-track-info{ padding-top:1.25rem; border-top:1px solid var(--color-border); font-size:.9rem; }
.order-track-info p{ margin-bottom:.4rem; }


.payment-qr-row{ display:flex; gap:2rem; flex-wrap:wrap; }
.payment-qr-box{ flex:0 0 auto; text-align:center; }
.payment-qr-box img{ width:180px; height:180px; object-fit:contain; border:1px solid var(--color-border); padding:.5rem; background:#fff; }
.payment-bank-details{ flex:1; min-width:240px; }
.payment-bank-details h3{ font-size:.95rem; margin-bottom:.75rem; }
.payment-bank-table{ width:100%; border-collapse:collapse; font-size:.88rem; }
.payment-bank-table td{ padding:.45rem 0; border-bottom:1px solid var(--color-border); }
.payment-bank-table td:first-child{ color:var(--color-text-muted); width:45%; }
.payment-bank-table td:last-child{ font-weight:600; }


/* =========================================================
   FESTIVE HERO — OVERLAPPING TWO-CARD SLIDER
   Scoped to .festive-panel-carousel to protect all other carousels.
   ========================================================= */
.festive-hero .festive-hero-panel {
    isolation: isolate;
}

.festive-hero .festive-panel-carousel {
    position: relative;
    min-height: clamp(270px, 27vw, 350px);
    overflow: visible;
}

.festive-hero .festive-panel-carousel .festive-overlap-track {
    position: absolute;
    inset: 0;
    display: block;
    overflow: visible;
    scroll-snap-type: none;
}

.festive-hero .festive-panel-carousel .festive-overlap-card {
    position: absolute;
    display: block;
    margin: 0;
    padding: 0;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(248, 241, 231, 0.18);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.24);
    transition:
        left 850ms cubic-bezier(0.22, 1, 0.36, 1),
        top 850ms cubic-bezier(0.22, 1, 0.36, 1),
        width 850ms cubic-bezier(0.22, 1, 0.36, 1),
        height 850ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 850ms cubic-bezier(0.22, 1, 0.36, 1),
        opacity 500ms ease,
        box-shadow 500ms ease;
    will-change: left, top, width, height, transform;
}

.festive-hero .festive-panel-carousel .festive-overlap-card .img-placeholder {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
    border: 0;
    border-radius: inherit;
    background: transparent;
}

.festive-hero .festive-panel-carousel .festive-overlap-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
    z-index: 1;
    top: 4%;
    left: 24%;
    width: 74%;
    height: 92%;
    opacity: 1;
    transform: scale(1);
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
    z-index: 3;
    top: 20%;
    left: 2%;
    width: 48%;
    height: 72%;
    opacity: 1;
    transform: translateX(0) scale(1);
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-entering {
    animation: festiveCardEnter 850ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-leaving {
    opacity: 0.92;
}

@keyframes festiveCardEnter {
    from {
        opacity: 0.55;
        transform: translateX(34px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

.festive-hero .festive-panel-carousel .festive-panel-nav {
    z-index: 6;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: 50%;
    color: #30251e;
    background: rgba(255, 253, 249, 0.94);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.16);
    transition:
        background-color 220ms ease,
        transform 220ms ease;
}

.festive-hero .festive-panel-carousel .festive-panel-nav:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.07);
}

.festive-hero .festive-panel-carousel .festive-panel-nav.carousel-prev {
    left: -18px;
}

.festive-hero .festive-panel-carousel .festive-panel-nav.carousel-next {
    right: -18px;
}

.festive-hero .festive-panel-carousel .festive-panel-nav i {
    font-size: 1rem;
}

.festive-hero .festive-panel-carousel .festive-reduced-motion .festive-overlap-card,
.festive-hero .festive-panel-carousel.festive-reduced-motion .festive-overlap-card {
    transition: none !important;
    animation: none !important;
}

@media (max-width: 991.98px) {
    .festive-hero .festive-hero-panel {
        width: min(90%, 600px);
    }

    .festive-hero .festive-panel-carousel {
        min-height: clamp(260px, 48vw, 330px);
    }

    .festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
        left: 23%;
        width: 75%;
    }

    .festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
        left: 2%;
        width: 49%;
    }
}

@media (max-width: 575.98px) {
    .festive-hero .festive-hero-panel {
        padding: 0.8rem;
    }

    .festive-hero .festive-panel-carousel {
        min-height: 250px;
    }

    .festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
        left: 19%;
        width: 79%;
        top: 4%;
        height: 92%;
    }

    .festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
        left: 1%;
        top: 23%;
        width: 50%;
        height: 66%;
    }

    .festive-hero .festive-panel-carousel .festive-panel-nav {
        width: 34px;
        height: 34px;
    }

    .festive-hero .festive-panel-carousel .festive-panel-nav.carousel-prev {
        left: -10px;
    }

    .festive-hero .festive-panel-carousel .festive-panel-nav.carousel-next {
        right: -10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .festive-hero .festive-panel-carousel .festive-overlap-card {
        transition: none !important;
        animation: none !important;
    }
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 0 !important;
    transform: translateX(18px) scale(0.94);
}

/* FESTIVE HERO FIX: exactly two cards rendered; remaining images are slide data only. */
.festive-hero .festive-panel-carousel .festive-overlap-track {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
    scroll-snap-type: none !important;
    transform: none !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
    display: block !important;
    z-index: 1 !important;
    top: 4% !important;
    left: 24% !important;
    width: 74% !important;
    height: 92% !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
    display: block !important;
    z-index: 3 !important;
    top: 20% !important;
    left: 2% !important;
    width: 48% !important;
    height: 72% !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(0) !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-exiting-next {
    z-index: 4 !important;
    transform: translateX(115%) scale(0.96) !important;
    opacity: 0 !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-exiting-prev {
    z-index: 4 !important;
    transform: translateX(-115%) scale(0.96) !important;
    opacity: 0 !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-entering {
    animation: festiveForegroundEnter 720ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes festiveForegroundEnter {
    from {
        opacity: 0.45;
        transform: translateX(34%) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateX(0) scale(1);
    }
}

.festive-hero .festive-panel-carousel .festive-overlap-card {
    transition:
        left 720ms cubic-bezier(0.22, 1, 0.36, 1),
        top 720ms cubic-bezier(0.22, 1, 0.36, 1),
        width 720ms cubic-bezier(0.22, 1, 0.36, 1),
        height 720ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 720ms cubic-bezier(0.22, 1, 0.36, 1),
        opacity 620ms ease !important;
    will-change: transform, opacity;
}

@media (max-width: 575.98px) {
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
        left: 19% !important;
        width: 79% !important;
        top: 4% !important;
        height: 92% !important;
    }
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
        left: 1% !important;
        top: 23% !important;
        width: 50% !important;
        height: 66% !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .festive-hero .festive-panel-carousel .festive-overlap-card,
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-entering {
        transition: none !important;
        animation: none !important;
    }
}

/* FESTIVE HERO: calm two-card role exchange; scoped only to this banner. */
.festive-hero .festive-panel-carousel .festive-overlap-track {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
    scroll-snap-type: none !important;
    transform: none !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card {
    display: block !important;
    overflow: hidden !important;
    border-radius: 12px;
    transition:
        left 1380ms cubic-bezier(0.22, 0.75, 0.22, 1),
        top 1380ms cubic-bezier(0.22, 0.75, 0.22, 1),
        width 1380ms cubic-bezier(0.22, 0.75, 0.22, 1),
        height 1380ms cubic-bezier(0.22, 0.75, 0.22, 1),
        transform 620ms cubic-bezier(0.22, 0.75, 0.22, 1),
        opacity 620ms ease !important;
    will-change: left, top, width, height, transform, opacity;
    backface-visibility: hidden;
}

.festive-hero .festive-panel-carousel .festive-overlap-card .img-placeholder {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    border: 0 !important;
    border-radius: inherit;
    background: transparent !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
    z-index: 1 !important;
    top: 4% !important;
    left: 24% !important;
    width: 74% !important;
    height: 92% !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground {
    z-index: 3 !important;
    top: 20% !important;
    left: 2% !important;
    width: 48% !important;
    height: 72% !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-to-small {
    z-index: 3 !important;
    top: 20% !important;
    left: 2% !important;
    width: 48% !important;
    height: 72% !important;
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) scale(1) !important;
}

.festive-hero .festive-panel-carousel .festive-overlap-card.is-fading-out {
    z-index: 4 !important;
    opacity: 0 !important;
    transform: translate3d(-12px, 8px, 0) scale(0.97) !important;
    transition:
        opacity 560ms ease,
        transform 560ms ease !important;
}

.festive-hero .festive-panel-carousel .festive-panel-nav {
    z-index: 8 !important;
}

@media (max-width: 575.98px) {
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-background {
        left: 19% !important;
        width: 79% !important;
        top: 4% !important;
        height: 92% !important;
    }
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-foreground,
    .festive-hero .festive-panel-carousel .festive-overlap-card.is-to-small {
        left: 1% !important;
        top: 23% !important;
        width: 50% !important;
        height: 66% !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .festive-hero .festive-panel-carousel .festive-overlap-card {
        transition: none !important;
        animation: none !important;
    }
}


/* ================== About Page ====================================== */

 /* ===== About page ===== */
  .about-hero{
    padding: 2.5rem 0 1rem;
    text-align: center;
  }
  .about-hero .breadcrumb-nav{
    justify-content: center;
    margin-bottom: 1.5rem;
  }
  .about-hero-title{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.9rem, 4vw, 2.75rem);
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--color-text);
    position: relative;
    display: inline-block;
    padding-bottom: 1.1rem;
    margin: 0;
  }
  .about-hero-title::after{
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 64px;
    height: 2px;
    background: var(--color-primary);
  }
  /* .about-hero-title::before{
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    transform: translateX(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-primary);
  } */

  .about-intro{
    padding: 3rem 0;
  }
  .about-intro-media{
    border-radius: var(--radius-sm, 14px);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    /* aspect-ratio: 4 / 5; */
  }
  .about-intro-media img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .about-intro-copy{
    padding-left: clamp(0px, 4vw, 3rem);
  }
  .about-eyebrow{
    font-family: 'Jost', sans-serif;
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-weight: 600;
    margin-bottom: .75rem;
    display: block;
  }
  .about-intro-copy h2{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.4rem, 2.6vw, 1.9rem);
    color: var(--color-text);
    margin-bottom: 1.1rem;
  }
  .about-intro-copy p{
    font-family: 'Jost', sans-serif;
    color: var(--color-text);
    opacity: .82;
    line-height: 1.85;
    margin-bottom: 1rem;
  }
  .about-intro-copy p:last-child{ margin-bottom: 0; }

  .about-pillars{
    padding: 2.5rem 0 3.5rem;
    background: var(--color-bg-alt, #F1E8DA);
  }
  .about-pillar{
    background: var(--color-surface, #fff);
    border-radius: var(--radius-sm, 14px);
    padding: 2.2rem 2rem;
    height: 100%;
    box-shadow: var(--shadow-card);
  }
  .about-pillar-icon{
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--color-tint, #F3E3D3);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    margin-bottom: 1.1rem;
  }
  .about-pillar h3{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: 1.25rem;
    color: var(--color-text);
    margin-bottom: .75rem;
  }
  .about-pillar p{
    font-family: 'Jost', sans-serif;
    color: var(--color-text);
    opacity: .8;
    line-height: 1.8;
    margin: 0;
  }

  .about-stores{
    padding: 3.5rem 0;
  }
  .about-stores-box{
    background: var(--color-tint, #F3E3D3);
    border-radius: var(--radius-sm, 14px);
    padding: clamp(1.75rem, 3vw, 2.75rem);
    height: 100%;
  }
  .about-stores-box h2{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.4rem, 2.6vw, 1.9rem);
    color: var(--color-text);
    margin-bottom: .5rem;
  }
  .about-stores-box .about-eyebrow{ margin-bottom: .4rem; }
  .about-stores-intro{
    font-family: 'Jost', sans-serif;
    color: var(--color-text);
    opacity: .8;
    line-height: 1.75;
    margin-bottom: 1.5rem;
  }
  .store-list{
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .store-list li{
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: .9rem 0;
    border-bottom: 1px solid rgba(41,37,34,0.1);
    font-family: 'Jost', sans-serif;
  }
  .store-list li:last-child{ border-bottom: none; }
  .store-list .store-icon{
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 50%;
    background: var(--color-surface, #fff);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
  }
  .store-list .store-name{
    font-weight: 600;
    color: var(--color-text);
    display: block;
    margin-bottom: .2rem;
  }
  .store-list .store-addr{
    color: var(--color-text);
    opacity: .75;
    font-size: .92rem;
    line-height: 1.6;
  }
  .about-stores-media{
    border-radius: var(--radius-sm, 14px);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    height: 100%;
    min-height: 360px;
  }
  .about-stores-media img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .about-cta{
    padding: 3.5rem 0 4.5rem;
    text-align: center;
  }
  .about-cta h2{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--color-text);
    margin-bottom: .9rem;
  }
  .about-cta p{
    font-family: 'Jost', sans-serif;
    color: var(--color-text);
    opacity: .8;
    max-width: 560px;
    margin: 0 auto 1.6rem;
    line-height: 1.8;
  }
  .about-cta .btn-primary-brand{
    background: var(--color-primary);
    color: #fff;
    border: none;
    padding: .85rem 2.2rem;
    border-radius: 999px;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    letter-spacing: .03em;
    text-decoration: none;
    display: inline-block;
    transition: background-color .2s ease, transform .2s ease;
  }
  .about-cta .btn-primary-brand:hover{
    background: #7e3620;
    transform: translateY(-2px);
    color: #fff;
  }

  @media (max-width: 767.98px){
    .about-intro-copy{ padding-left: 0; margin-top: 1.75rem; }
    .about-stores-media{ margin-top: 1.75rem; min-height: 260px; }
  }

/* ======================== end =================== */

/* ===== Contact numbers section ===== */
  .contact-numbers{
    padding: 3.5rem 0;
    background: var(--color-bg-alt, #F1E8DA);
  }
  .contact-numbers-head{
    text-align: center;
    max-width: 560px;
    margin: 0 auto 2.25rem;
  }
  .contact-numbers-head .about-eyebrow,
  .contact-eyebrow{
    font-family: 'Jost', sans-serif;
    font-size: .78rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-primary);
    font-weight: 600;
    display: block;
    margin-bottom: .6rem;
  }
  .contact-numbers-head h2{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    color: var(--color-text);
    margin-bottom: .7rem;
  }
  .contact-numbers-head p{
    font-family: 'Jost', sans-serif;
    color: var(--color-text);
    opacity: .8;
    line-height: 1.75;
    margin: 0;
  }
  .contact-card{
    background: var(--color-surface, #fff);
    border-radius: var(--radius-sm, 14px);
    box-shadow: var(--shadow-card);
    padding: 1.75rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
    transition: transform .25s ease, box-shadow .25s ease;
  }
  .contact-card:hover{
    transform: translateY(-4px);
    box-shadow: var(--shadow-lift);
  }
  .contact-card-icon{
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--color-tint, #F3E3D3);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    margin-bottom: .6rem;
  }
  .contact-card-label{
    font-family: 'Jost', sans-serif;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text);
    opacity: .6;
  }
  .contact-card-number{
    font-family: 'Fraunces', serif;
    font-weight: 500;
    font-size: clamp(1.4rem, 2.4vw, 1.75rem);
    color: var(--color-text);
    text-decoration: none;
    letter-spacing: .02em;
  }
  .contact-card-number:hover{ color: var(--color-primary); }
  .contact-card-actions{
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: .9rem;
  }
  .contact-btn{
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .6rem 1.3rem;
    border-radius: 999px;
    font-family: 'Jost', sans-serif;
    font-weight: 500;
    font-size: .92rem;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
  }
  .contact-btn-call{
    background: var(--color-primary);
    color: #fff;
    border: 1px solid var(--color-primary);
  }
  .contact-btn-call:hover{ background: #7e3620; border-color: #7e3620; color: #fff; }
  .contact-btn-wa{
    background: transparent;
    color: var(--color-text);
    border: 1px solid rgba(41,37,34,0.25);
  }
  .contact-btn-wa:hover{ background: #25D366; border-color: #25D366; color: #fff; }