:root {
  /* Flat, modern commerce palette — one confident accent, neutral everything else */
  --bg:            #FFFFFF;
  --bg-rgb:        255,255,255;
  --bg-soft:       #F7F5F1;
  --surface:       #FFFFFF;
  --border:        #E7E2D8;
  --border-strong: #D6CEBF;

  --text:          #211B16;
  --text-soft:     #5B5146;
  --text-mist:     #8D8275;

  --accent:        #8B1538;
  --accent-dark:   #651029;
  --accent-light:  #FBEAEE;

  --gold:          #B9790F;
  --gold-light:    #FBF0DC;

  --success:       #1B6B4A;

  --font-display:'Rozha One', serif;
  --font-body:   'Poppins', sans-serif;
  --ease-out:    cubic-bezier(0.0,0.0,0.2,1);
  --ease-spring: cubic-bezier(0.34,1.56,0.64,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;overflow-x:hidden;}

/* PRELOADER */
.preloader{position:fixed;inset:0;z-index:9999;background:rgba(var(--bg-rgb),0.88);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;transition:opacity 0.5s ease,visibility 0.5s ease;}
.preloader.loaded{opacity:0;visibility:hidden;pointer-events:none;}
.preloader-mark{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center;}
.preloader-logo{width:40px;height:40px;animation:preloaderPulse 1.3s ease-in-out infinite;}
.preloader-ring{position:absolute;inset:0;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:preloaderSpin 0.9s linear infinite;}
@keyframes preloaderPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(0.86);opacity:0.7;}}
@keyframes preloaderSpin{to{transform:rotate(360deg);}}

/* NAV */
nav{position:fixed;top:0;width:100%;padding:1rem 4rem;display:flex;align-items:center;justify-content:space-between;z-index:500;background:rgba(255,255,255,0.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);}
.nav-logo{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-display);font-size:1.15rem;color:var(--accent);text-decoration:none;}
.brand-mark{width:26px;height:26px;display:block;}
.nav-icons{display:flex;gap:1.2rem;align-items:center;}
.nav-icon-btn{display:inline-flex;align-items:center;background:none;border:none;color:var(--text-soft);font-size:1.05rem;text-decoration:none;cursor:pointer;transition:color 0.2s;position:relative;padding:4px;}
.nav-icon-btn:hover{color:var(--accent);}
.badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:#fff;border-radius:50%;width:16px;height:16px;font-size:0.55rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:600;}

/* SHOP TOOLBAR (search + category filter) */
.shop-toolbar{position:relative;z-index:2;padding:118px 4rem 1.6rem;background:var(--bg);}
.search-bar{position:relative;max-width:460px;margin:0 auto 1.3rem;}
.search-icon{position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);color:var(--text-mist);font-size:0.85rem;pointer-events:none;}
.search-input{width:100%;padding:0.75rem 1.1rem 0.75rem 2.5rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-body);font-size:0.95rem;outline:none;transition:border-color 0.2s,box-shadow 0.2s;}
.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);}
.search-input::placeholder{color:var(--text-mist);}
.search-dropdown{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px rgba(33,27,22,0.12);overflow:hidden;z-index:50;max-height:340px;overflow-y:auto;}
.search-dropdown.open{display:block;}
.search-dropdown-item{display:flex;align-items:center;gap:0.8rem;padding:0.6rem 0.9rem;cursor:pointer;transition:background 0.15s;}
.search-dropdown-item:hover{background:var(--bg-soft);}
.search-dropdown-item img{width:40px;height:40px;object-fit:cover;border-radius:6px;background:var(--bg-soft);flex-shrink:0;}
.sdi-name{font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--text);}
.sdi-type{font-family:var(--font-body);font-size:0.72rem;color:var(--text-mist);}
.search-suggest{display:none;max-width:460px;margin:-0.6rem auto 1.3rem;text-align:center;font-family:var(--font-body);font-size:0.85rem;color:var(--text-soft);}
.suggest-link{background:none;border:none;padding:0;font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--accent);text-decoration:underline;cursor:pointer;}
.filter-bar{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center;}
.filter-btn{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:500;font-size:0.8rem;padding:0.5rem 1.1rem;background:transparent;color:var(--text-soft);border:1px solid var(--border);border-radius:20px;cursor:pointer;text-decoration:none;transition:all 0.2s;}
.filter-btn.active,.filter-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.results-heading{font-family:var(--font-body);color:var(--text-mist);text-align:center;margin-bottom:2rem;font-size:0.95rem;}

/* NEPALI FESTIVAL CALENDAR */
.festival-widget{margin:0 4rem 2rem;}
.festival-card{display:flex;align-items:center;gap:1.1rem;background:linear-gradient(135deg,var(--gold-light) 0%,var(--bg-soft) 100%);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.5rem;flex-wrap:wrap;}
.festival-icon{font-size:2.1rem;line-height:1;}
.festival-info{flex:1;min-width:200px;}
.festival-name{font-family:var(--font-display);font-size:1.05rem;color:var(--text);}
.festival-date{font-family:var(--font-body);font-size:0.8rem;color:var(--text-mist);margin-top:0.15rem;}
.festival-countdown{font-family:var(--font-body);font-weight:700;font-size:1.5rem;color:var(--accent);text-align:center;white-space:nowrap;line-height:1.1;}
.festival-countdown span{display:block;font-size:0.65rem;font-weight:500;color:var(--text-mist);text-transform:uppercase;letter-spacing:0.04em;}
.festival-next-list{display:flex;gap:0.5rem;flex-wrap:wrap;width:100%;margin-top:0.2rem;}
.festival-chip{font-family:var(--font-body);font-size:0.74rem;padding:0.35rem 0.8rem;border-radius:16px;background:var(--surface);border:1px solid var(--border);color:var(--text-soft);}
.festival-date--clickable{cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:color 0.2s,text-decoration-color 0.2s;}
.festival-date--clickable:hover{color:var(--accent);text-decoration-color:var(--accent);}
.festival-date--clickable i{font-size:0.75rem;margin-left:0.2rem;}

/* FESTIVAL CALENDAR MODAL */
.calendar-blurb{font-family:var(--font-body);font-size:0.82rem;color:var(--text-soft);margin-top:0.2rem;}
.calendar-grid-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.calendar-grid-title{font-family:var(--font-display);font-size:1.1rem;color:var(--text);}
.calendar-nav-btn{background:var(--bg-soft);border:1px solid var(--border);border-radius:6px;width:30px;height:30px;cursor:pointer;color:var(--text-soft);transition:all 0.2s;}
.calendar-nav-btn:hover{border-color:var(--accent);color:var(--accent);}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.calendar-weekday{text-align:center;font-family:var(--font-body);font-weight:600;font-size:0.7rem;color:var(--text-mist);padding-bottom:0.4rem;}
.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;font-family:var(--font-body);font-size:0.82rem;color:var(--text-soft);}
.calendar-day--empty{visibility:hidden;}
.calendar-day--today{border:1.5px solid var(--accent);font-weight:700;color:var(--text);}
.calendar-day--festival{background:var(--accent-light);color:var(--accent);font-weight:700;cursor:pointer;}
.calendar-day--festival:hover{background:var(--accent);color:#fff;}
.calendar-day-dot{width:5px;height:5px;border-radius:50%;background:currentColor;margin-top:2px;}
.calendar-detail{display:none;margin-top:1rem;padding:0.9rem 1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;}
.calendar-detail.show{display:block;}
.calendar-detail-row{display:flex;gap:0.7rem;align-items:flex-start;}
.calendar-detail-row+.calendar-detail-row{margin-top:0.7rem;padding-top:0.7rem;border-top:1px solid var(--border);}
.results-heading strong{color:var(--text);}
.view-all-wrap{text-align:center;margin-top:2.2rem;}

/* PROMO CAROUSEL */
.promo-carousel{position:relative;z-index:2;margin:0 4rem 3rem;overflow:hidden;border-radius:10px;border:1px solid var(--border);}
.promo-track{display:flex;transition:transform 0.6s var(--ease-out);}
.promo-slide{flex:0 0 100%;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 3rem;position:relative;z-index:0;}
.promo-slide--brand{background:var(--bg-soft);}
.promo-slide--new{background:var(--accent);}
.promo-slide--gold{background:var(--gold);}
.delivery-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}
.valley-hills{position:absolute;bottom:0;left:0;width:100%;height:28%;color:#4A2E1E;opacity:0.22;}
.valley-hills path{fill:currentColor;}
.pashupati-temple{position:absolute;bottom:9%;left:5%;width:68px;height:auto;color:#4A2E1E;opacity:0.8;}
.swayambhu-temple{position:absolute;bottom:8%;right:6%;width:74px;height:auto;}
.pigeon{position:absolute;width:20px;color:#4A2E1E;opacity:0.6;animation:pigeonFly 9s linear infinite;}
.pigeon svg{display:block;animation:pigeonFlap 0.5s ease-in-out infinite;}
.pigeon--1{top:16%;animation-delay:0s;}
.pigeon--2{top:28%;width:15px;animation-delay:2.5s;animation-duration:11s;}
.pigeon--3{top:10%;width:17px;animation-delay:5s;animation-duration:10s;}
.pigeon--4{top:36%;width:13px;animation-delay:1.3s;animation-duration:12s;opacity:0.45;}
@keyframes pigeonFly{0%{transform:translateX(-40px);opacity:0;}8%{opacity:0.7;}92%{opacity:0.7;}100%{transform:translateX(420px);opacity:0;}}
@keyframes pigeonFlap{0%,100%{transform:scaleY(1);}50%{transform:scaleY(0.4);}}

/* SHARED SPARKLE PARTICLE (origin + gold + new slides) */
.sparkle{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 6px 1px rgba(255,255,255,0.9);opacity:0;animation:sparkleFloat 3.6s ease-in-out infinite;}
.sparkle--1{top:20%;left:16%;animation-delay:0s;}
.sparkle--2{top:65%;left:30%;animation-delay:0.8s;}
.sparkle--3{top:30%;left:78%;animation-delay:1.6s;}
.sparkle--4{top:72%;left:68%;animation-delay:2.4s;}
@keyframes sparkleFloat{0%,100%{opacity:0;transform:translateY(0) scale(0.5);}50%{opacity:1;transform:translateY(-14px) scale(1.1);}}
.shimmer-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}

/* ORIGIN BANNER */
.promo-slide--origin{background:linear-gradient(135deg,var(--bg-soft) 0%,var(--gold-light) 100%);}
.promo-slide--origin .promo-eyebrow{color:var(--accent);}
.promo-slide--origin .promo-title{color:var(--text);}
.promo-slide--origin .promo-sub{color:var(--text-soft);}
.promo-slide--origin .promo-cta{background:var(--accent);color:#fff;}
.promo-slide--origin .promo-cta:hover{background:var(--accent-dark);opacity:1;}
.origin-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}
.origin-peak{position:absolute;font-size:7rem;opacity:0.14;bottom:-1.2rem;left:-1rem;}
.origin-moon{position:absolute;font-size:3rem;top:1.2rem;right:3rem;animation:moonGlow 4.5s ease-in-out infinite;}
.origin-deco .sparkle{background:var(--accent);box-shadow:0 0 6px 1px rgba(139,21,56,0.6);}
@keyframes moonGlow{0%,100%{opacity:0.2;filter:drop-shadow(0 0 4px rgba(249,199,74,0.3));}50%{opacity:0.32;filter:drop-shadow(0 0 14px rgba(249,199,74,0.6));}}
.origin-pillars{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center;margin-bottom:1.3rem;}
.origin-pillars span{display:inline-flex;align-items:center;gap:0.4rem;font-family:var(--font-body);font-weight:500;font-size:0.76rem;color:var(--text-soft);background:rgba(255,255,255,0.65);border:1px solid var(--border);padding:0.4rem 0.8rem;border-radius:20px;}
.origin-pillars i{color:var(--accent);font-size:0.75rem;}

/* DASHAIN BANNER */
.promo-slide--dashain{background:linear-gradient(135deg,var(--accent-dark) 0%,var(--accent) 55%,var(--gold) 100%);}
.dashain-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}

/* Durga's eyes — hand-traced SVG (transparent background) of the reference
   "trinayan" line-art: curled-then-tapering calligraphic brows, almond eyes
   with oversized pupils, and the flame-shaped third eye with crescent+bindi. */
.durga-eyes{position:absolute;top:4%;left:50%;transform:translateX(-50%);width:230px;height:auto;filter:drop-shadow(0 2px 5px rgba(0,0,0,0.3));animation:eyeGlow 3.5s ease-in-out infinite;}
@keyframes eyeGlow{0%,100%{filter:drop-shadow(0 2px 5px rgba(0,0,0,0.3)) drop-shadow(0 0 5px rgba(240,169,62,0.25));}50%{filter:drop-shadow(0 2px 5px rgba(0,0,0,0.3)) drop-shadow(0 0 15px rgba(240,169,62,0.7));}}
.eye-blink{transform-box:fill-box;transform-origin:50% 50%;animation:eyeBlink 5s ease-in-out infinite;}
@keyframes eyeBlink{0%,92%,100%{transform:scaleY(1);}95%{transform:scaleY(0.08);}97%{transform:scaleY(1);}}

.kite{position:absolute;font-size:4.2rem;filter:drop-shadow(0 6px 10px rgba(0,0,0,0.3));animation:kiteSway 3.6s ease-in-out infinite;}
.kite--1{top:6%;right:8%;}
.kite--2{top:24%;right:26%;font-size:2.4rem;opacity:0.85;animation-delay:1.1s;animation-duration:4.2s;}
.kite--3{top:14%;right:42%;font-size:1.7rem;opacity:0.7;animation-delay:0.5s;animation-duration:3.2s;}
.jamara{position:absolute;bottom:12%;left:7%;font-size:2.8rem;animation:jamaraSway 5s ease-in-out infinite;}
.tika{position:absolute;bottom:16%;right:9%;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#F0685E,#8B1538 72%);box-shadow:0 0 14px rgba(226,74,74,0.6);}
.tika-rice{position:absolute;top:-10px;left:7px;width:4px;height:10px;background:#FBE8B8;border-radius:2px;transform:rotate(-12deg);}
.swing{position:absolute;top:4%;left:6%;width:100px;height:135px;transform-origin:top center;animation:swingMotion 3s ease-in-out infinite;}
.swing-rope{position:absolute;top:0;width:3px;height:100px;background:rgba(255,255,255,0.6);}
.swing-rope--l{left:18px;transform:rotate(4deg);transform-origin:top;}
.swing-rope--r{right:18px;transform:rotate(-4deg);transform-origin:top;}
.swing-seat{position:absolute;top:96px;left:9px;right:9px;height:11px;background:#D9A33E;border-radius:4px;}
.petal{position:absolute;top:-6%;width:10px;height:10px;border-radius:50% 0;background:#F76707;box-shadow:0 0 6px rgba(247,103,7,0.6);opacity:0;animation:petalFall 7s linear infinite;}
.petal--1{left:15%;animation-delay:0s;animation-duration:6s;}
.petal--2{left:35%;animation-delay:1.8s;animation-duration:7.5s;width:7px;height:7px;}
.petal--3{left:55%;animation-delay:3.2s;animation-duration:6.5s;}
.petal--4{left:72%;animation-delay:0.9s;animation-duration:7s;width:7px;height:7px;}
.petal--5{left:88%;animation-delay:4.2s;animation-duration:6.8s;}
@keyframes kiteSway{0%,100%{transform:rotate(-16deg) translate(0,0);}50%{transform:rotate(16deg) translate(8px,-18px);}}
@keyframes jamaraSway{0%,100%{transform:rotate(-6deg);}50%{transform:rotate(6deg);}}
@keyframes swingMotion{0%,100%{transform:rotate(-14deg);}50%{transform:rotate(14deg);}}
@keyframes petalFall{0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:0;}10%{opacity:0.9;}50%{transform:translateY(130px) translateX(18px) rotate(170deg);}90%{opacity:0.85;}100%{transform:translateY(280px) translateX(-12px) rotate(340deg);opacity:0;}}

/* TIHAR BANNER */
.promo-slide--tihar{background:linear-gradient(180deg,var(--text) 0%,#3A2A1C 100%);}
.tihar-deco{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}
.firework{position:absolute;width:4px;height:4px;border-radius:50%;}
.firework--1{top:14%;left:12%;}
.firework--2{top:10%;right:16%;}
.firework--3{top:28%;left:44%;}
.firework--4{top:18%;left:28%;}
.firework--5{top:34%;right:34%;}
.firework::before{content:'';position:absolute;inset:0;border-radius:50%;box-shadow:
  0 -16px 0 -1px #FBE8B8, 11px -11px 0 -1px #F0A93E, 16px 0 0 -1px #FBE8B8, 11px 11px 0 -1px #F0A93E,
  0 16px 0 -1px #FBE8B8, -11px 11px 0 -1px #F0A93E, -16px 0 0 -1px #FBE8B8, -11px -11px 0 -1px #F0A93E;
  opacity:0;animation:fireworkPop 2.4s ease-out infinite;}
.firework--2::before{animation-delay:0.8s;}
.firework--3::before{animation-delay:1.6s;}
.firework--4::before{animation-delay:0.4s;animation-duration:2.8s;}
.firework--5::before{animation-delay:1.2s;animation-duration:2s;}
@keyframes fireworkPop{0%{transform:scale(0.2);opacity:0;}15%{opacity:1;}60%{transform:scale(1);opacity:0.85;}100%{transform:scale(1.35);opacity:0;}}
.tihar-diya{position:absolute;font-size:1.5rem;animation:diyaFlicker 2.4s ease-in-out infinite;}
.tihar-diya--1{bottom:10%;left:8%;}
.tihar-diya--2{bottom:8%;left:20%;animation-delay:0.6s;}
.tihar-diya--3{bottom:12%;right:10%;animation-delay:1.2s;}
@keyframes diyaFlicker{0%,100%{opacity:0.7;filter:brightness(1);transform:scale(1);}50%{opacity:1;filter:brightness(1.35);transform:scale(1.08);}}
.ember{position:absolute;bottom:14%;width:4px;height:4px;border-radius:50%;background:#FFD43B;box-shadow:0 0 6px 1px rgba(255,212,59,0.9);opacity:0;animation:emberRise 4.5s ease-in infinite;}
.ember--1{left:10%;animation-delay:0s;}
.ember--2{left:22%;animation-delay:1.3s;}
.ember--3{left:66%;animation-delay:0.7s;}
.ember--4{left:80%;animation-delay:2.1s;}
@keyframes emberRise{0%{transform:translateY(0) scale(0.6);opacity:0;}20%{opacity:1;}100%{transform:translateY(-160px) scale(1.3);opacity:0;}}
.tihar-animals{position:absolute;bottom:10%;right:22%;display:flex;gap:0.6rem;font-size:1.4rem;opacity:0.9;}
.hero-eyebrow{font-family:var(--font-body);font-weight:600;font-size:0.8rem;letter-spacing:0.08em;color:var(--accent);text-transform:uppercase;margin-bottom:1rem;}
.hero-title{font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);line-height:1.2;color:var(--text);margin-bottom:1rem;max-width:680px;}
.hero-sub{font-family:var(--font-body);font-size:1.02rem;color:var(--text-soft);max-width:540px;line-height:1.7;margin-bottom:1.8rem;}
.hero-ctas{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;}
.btn-primary{font-family:var(--font-body);font-weight:600;font-size:0.9rem;padding:0.8rem 1.9rem;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background 0.2s,transform 0.15s;}
.btn-primary:hover{background:var(--accent-dark);transform:translateY(-1px);}
.btn-outline{font-family:var(--font-body);font-weight:600;font-size:0.9rem;padding:0.8rem 1.9rem;background:transparent;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer;transition:all 0.2s;}
.btn-outline:hover{border-color:var(--text);background:var(--bg-soft);}
.promo-eyebrow{font-family:var(--font-body);font-weight:600;font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.78);margin-bottom:0.7rem;}
.promo-title{font-family:var(--font-display);font-size:clamp(1.3rem,3vw,1.9rem);color:#fff;margin-bottom:0.6rem;max-width:620px;line-height:1.3;}
.promo-sub{font-family:var(--font-body);color:rgba(255,255,255,0.82);font-size:0.98rem;max-width:480px;margin-bottom:1.3rem;line-height:1.6;}
.promo-cta{font-family:var(--font-body);font-weight:600;font-size:0.85rem;padding:0.7rem 1.6rem;background:#fff;color:var(--text);border-radius:8px;text-decoration:none;transition:opacity 0.2s;}
.promo-cta:hover{opacity:0.9;}
.promo-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.9);border:none;color:var(--text);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;z-index:3;box-shadow:0 2px 8px rgba(0,0,0,0.12);}
.promo-arrow:hover{background:#fff;}
.promo-arrow--prev{left:1rem;}
.promo-arrow--next{right:1rem;}
.promo-dots{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:0.4rem;z-index:3;}
.promo-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,0.5);border:none;cursor:pointer;transition:all 0.2s;padding:0;}
.promo-dot.active{background:#fff;width:18px;border-radius:3px;}

/* SECTION HEADERS */
.section-wrap{position:relative;z-index:2;padding:4rem 4rem;}
.section-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.1rem);color:var(--text);text-align:center;margin-bottom:0.5rem;}
.section-sub{font-family:var(--font-body);color:var(--text-mist);text-align:center;font-size:1rem;margin-bottom:3rem;}

/* PRODUCT GRID */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.6rem;}
.no-results{display:none;text-align:center;padding:3rem 1rem;color:var(--text-mist);font-size:1.02rem;}
.product-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform 0.25s var(--ease-out),box-shadow 0.25s,border-color 0.25s;}
.product-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(33,27,22,0.1);border-color:var(--border-strong);}
.product-card.hidden{display:none;}
.card-img-wrap{height:220px;display:block;position:relative;overflow:hidden;background:var(--bg-soft);cursor:pointer;}
.card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.4s var(--ease-out);}
.product-card:hover .card-img{transform:scale(1.04);}
.card-badge{position:absolute;top:12px;left:12px;font-family:var(--font-body);font-weight:600;font-size:0.65rem;letter-spacing:0.04em;padding:4px 10px;border-radius:5px;text-transform:uppercase;}
.badge-himalayan{background:var(--gold-light);color:var(--gold);}
.badge-popular{background:var(--accent-light);color:var(--accent);}
.badge-rare{background:var(--text);color:#fff;}
.card-wishlist{position:absolute;top:12px;right:12px;background:rgba(255,255,255,0.92);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s;color:var(--text-mist);font-size:0.8rem;box-shadow:0 2px 6px rgba(0,0,0,0.1);}
.card-wishlist:hover,.card-wishlist.wishlisted{color:var(--accent);}
.card-body{padding:1.3rem 1.4rem 1.6rem;display:flex;flex-direction:column;flex:1;}
.card-stone-type{font-family:var(--font-body);font-weight:600;font-size:0.68rem;letter-spacing:0.08em;color:var(--text-mist);text-transform:uppercase;margin-bottom:0.3rem;}
.card-name{font-family:var(--font-display);font-size:1.1rem;color:var(--text);margin-bottom:0.4rem;line-height:1.3;cursor:pointer;}
.card-name:hover{color:var(--accent);}
.card-desc{font-size:0.88rem;color:var(--text-soft);margin-bottom:0.9rem;line-height:1.5;}
.card-properties{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:1rem;}
.prop-tag{font-family:var(--font-body);font-size:0.68rem;padding:3px 9px;border-radius:5px;background:var(--bg-soft);color:var(--text-soft);}
.card-price-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.card-price{font-family:var(--font-display);font-size:1.15rem;color:var(--accent);}
.price-range{font-family:var(--font-body);font-size:0.7rem;color:var(--text-mist);}
.card-variants{display:flex;gap:0.5rem;margin-bottom:1.1rem;flex-wrap:wrap;}
.variant-btn{font-family:var(--font-body);font-size:0.72rem;padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-soft);cursor:pointer;transition:all 0.2s;}
.variant-btn.selected{background:var(--accent-light);border-color:var(--accent);color:var(--accent);}
.variant-btn:hover{border-color:var(--border-strong);}
.card-add-btn{width:100%;margin-top:auto;font-family:var(--font-body);font-weight:600;font-size:0.85rem;padding:0.7rem;background:var(--text);border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all 0.2s;position:relative;overflow:hidden;}
.card-add-btn:hover{background:var(--accent);}
.card-add-btn::after{content:'Added!';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--success);opacity:0;transition:opacity 0.2s;}
.card-add-btn.added::after{opacity:1;}

/* CART SIDEBAR */
.cart-overlay{position:fixed;inset:0;background:rgba(33,27,22,0.45);z-index:800;opacity:0;pointer-events:none;transition:opacity 0.3s;}
.cart-overlay.open{opacity:1;pointer-events:all;}
.cart-sidebar{position:fixed;right:0;top:0;bottom:0;width:min(420px,100vw);background:var(--surface);border-left:1px solid var(--border);z-index:801;transform:translateX(100%);transition:transform 0.35s var(--ease-out);display:flex;flex-direction:column;}
.cart-sidebar.open{transform:none;}
.cart-header{padding:1.6rem 1.8rem 1.1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.cart-title{font-family:var(--font-display);font-size:1.1rem;color:var(--text);}
.close-btn{background:none;border:none;color:var(--text-mist);font-size:1.1rem;cursor:pointer;transition:color 0.2s;}
.close-btn:hover{color:var(--accent);}
.cart-items{flex:1;overflow-y:auto;padding:1.3rem 1.8rem;}
.cart-items::-webkit-scrollbar{width:4px;}
.cart-items::-webkit-scrollbar-track{background:transparent;}
.cart-items::-webkit-scrollbar-thumb{background:var(--border-strong);}
.cart-item{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border);}
.cart-item-gem{font-size:2.2rem;min-width:46px;text-align:center;}
.cart-item-info{flex:1;}
.cart-item-name{font-family:var(--font-body);font-weight:600;font-size:0.9rem;color:var(--text);margin-bottom:0.2rem;}
.cart-item-variant{font-family:var(--font-body);font-size:0.75rem;color:var(--text-mist);}
.cart-item-price{font-family:var(--font-body);font-weight:600;font-size:0.9rem;color:var(--accent);margin-top:0.3rem;}
.cart-qty{display:flex;align-items:center;gap:0.6rem;margin-top:0.5rem;}
.qty-btn{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);width:24px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:0.9rem;transition:all 0.2s;}
.qty-btn:hover{border-color:var(--border-strong);}
.qty-num{font-family:var(--font-body);font-size:0.85rem;color:var(--text);min-width:20px;text-align:center;}
.cart-remove{background:none;border:none;color:var(--text-mist);cursor:pointer;font-size:0.8rem;transition:color 0.2s;margin-left:auto;align-self:flex-start;margin-top:2px;}
.cart-remove:hover{color:var(--accent);}
.cart-empty{text-align:center;padding:3rem 1rem;color:var(--text-mist);font-size:0.95rem;}
.cart-empty-gem{font-size:2.6rem;display:block;margin-bottom:1rem;opacity:0.4;}
.cart-footer{padding:1.4rem 1.8rem;border-top:1px solid var(--border);}
.cart-subtotal{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.3rem;}
.subtotal-label{font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--text-soft);}
.subtotal-amount{font-family:var(--font-display);font-size:1.25rem;color:var(--accent);}

/* WISHLIST SIDEBAR */
.wishlist-sidebar{position:fixed;left:0;top:0;bottom:0;width:min(380px,100vw);background:var(--surface);border-right:1px solid var(--border);z-index:801;transform:translateX(-100%);transition:transform 0.35s var(--ease-out);display:flex;flex-direction:column;}
.wishlist-sidebar.open{transform:none;}
.wishlist-item{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border);align-items:center;}
.wishlist-gem{font-size:1.8rem;min-width:40px;text-align:center;}
.wishlist-name{font-family:var(--font-body);font-weight:600;font-size:0.88rem;color:var(--text);margin-bottom:0.2rem;}
.wishlist-price{font-family:var(--font-body);font-size:0.78rem;color:var(--accent);}
.wishlist-move{font-family:var(--font-body);font-weight:600;font-size:0.72rem;padding:5px 10px;background:var(--accent-light);border:none;border-radius:6px;color:var(--accent);cursor:pointer;transition:all 0.2s;margin-left:auto;}
.wishlist-move:hover{background:var(--accent);color:#fff;}

/* CHECKOUT MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(33,27,22,0.5);z-index:900;opacity:0;pointer-events:none;transition:opacity 0.3s;display:flex;align-items:center;justify-content:center;padding:2rem;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--surface);border-radius:12px;width:100%;max-width:580px;max-height:90vh;overflow-y:auto;position:relative;}
.modal::-webkit-scrollbar{width:4px;}
.modal::-webkit-scrollbar-thumb{background:var(--border-strong);}
.modal-header{padding:1.8rem 2.2rem 1.1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.modal-title{font-family:var(--font-display);font-size:1.1rem;color:var(--text);}
.modal-body{padding:1.8rem 2.2rem;}
.product-detail{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem;}
.product-detail-img{background:var(--bg-soft);border-radius:10px;overflow:hidden;min-height:220px;}
.product-detail-img img{width:100%;height:100%;object-fit:cover;display:block;}
.product-detail-name{font-family:var(--font-display);font-size:1.4rem;color:var(--text);margin:0.3rem 0 0.6rem;line-height:1.25;}
.product-detail-desc{color:var(--text-soft);font-size:0.92rem;line-height:1.6;margin-bottom:0.9rem;}
@media(max-width:560px){.product-detail{grid-template-columns:1fr;}.product-detail-img{min-height:180px;}}
.step-indicator{display:flex;gap:0;margin-bottom:1.8rem;}
.step{flex:1;text-align:center;position:relative;}
.step::after{content:'';position:absolute;top:14px;left:50%;width:100%;height:1px;background:var(--border);z-index:0;}
.step:last-child::after{display:none;}
.step-dot{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:600;font-size:0.72rem;color:var(--text-mist);background:var(--bg);margin:0 auto 0.5rem;position:relative;z-index:1;transition:all 0.2s;}
.step.active .step-dot{border-color:var(--accent);color:var(--accent);background:var(--accent-light);}
.step.done .step-dot{background:var(--accent);color:#fff;border-color:var(--accent);}
.step-label{font-family:var(--font-body);font-size:0.68rem;color:var(--text-mist);}
.step.active .step-label{color:var(--accent);}
.form-group{margin-bottom:1.3rem;}
.form-label{font-family:var(--font-body);font-weight:600;font-size:0.78rem;color:var(--text-soft);display:block;margin-bottom:0.4rem;}
.form-input,.form-select{width:100%;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-body);font-size:0.95rem;padding:0.7rem 0.9rem;outline:none;transition:border-color 0.2s;}
.form-input:focus,.form-select:focus{border-color:var(--accent);}
.form-select{cursor:pointer;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.payment-options{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;margin-bottom:1.3rem;}
.payment-group-label{font-family:var(--font-body);font-weight:600;font-size:0.72rem;color:var(--text-mist);margin:0.3rem 0 0.8rem;padding-top:0.8rem;border-top:1px solid var(--border);}
.payment-opt{border:1px solid var(--border);border-radius:8px;padding:0.9rem;cursor:pointer;transition:all 0.2s;text-align:center;}
.payment-opt.selected{border-color:var(--accent);background:var(--accent-light);}
.payment-opt:hover{border-color:var(--border-strong);}
.payment-icon{font-size:1.4rem;margin-bottom:0.4rem;display:block;}
.payment-name{font-family:var(--font-body);font-weight:600;font-size:0.8rem;color:var(--text);}
.payment-sub{font-family:var(--font-body);font-size:0.72rem;color:var(--text-mist);margin-top:2px;}
.order-summary-item{display:flex;justify-content:space-between;padding:0.5rem 0;border-bottom:1px solid var(--border);}
.osi-name{font-family:var(--font-body);font-size:0.88rem;color:var(--text-soft);}
.osi-price{font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--text);}
.order-total{display:flex;justify-content:space-between;padding:1rem 0 0;margin-top:0.5rem;}
.ot-label{font-family:var(--font-body);font-weight:600;font-size:0.9rem;color:var(--text);}
.ot-amount{font-family:var(--font-display);font-size:1.25rem;color:var(--accent);}
.modal-actions{display:flex;gap:1rem;margin-top:1.4rem;}
.success-screen{text-align:center;padding:2rem;}
.success-gem{font-size:3.4rem;display:block;margin-bottom:1.4rem;}
.success-title{font-family:var(--font-display);font-size:1.4rem;color:var(--text);margin-bottom:0.7rem;}
.success-msg{color:var(--text-soft);line-height:1.7;font-size:1rem;}
.success-order{font-family:var(--font-body);font-weight:600;font-size:0.78rem;color:var(--text-mist);margin-top:1rem;}
.bank-details{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem;font-size:0.88rem;color:var(--text-soft);line-height:1.7;}
.delivery-summary{margin-top:1.1rem;padding:1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;font-size:0.85rem;color:var(--text-soft);}

/* RATINGS (product cards + detail) */
.card-rating{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.5rem;}
.review-stars{color:var(--gold);font-size:0.78rem;letter-spacing:1px;}
.review-stars--sm{font-size:0.72rem;}
.rating-count{font-family:var(--font-body);font-size:0.75rem;color:var(--text-mist);}
.card-rating--empty{font-family:var(--font-body);font-size:0.75rem;color:var(--text-mist);font-style:italic;}

/* REVIEWS (product detail modal) */
.review-section{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--border);}
.review-heading{font-family:var(--font-display);font-size:1.1rem;color:var(--text);margin-bottom:1rem;}
.review-card{padding:0.9rem 0;border-bottom:1px solid var(--border);}
.review-card-head{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-bottom:0.3rem;}
.review-author{font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--text);}
.review-text{color:var(--text-soft);font-size:0.88rem;line-height:1.6;}
.review-empty{color:var(--text-mist);font-size:0.9rem;font-style:italic;margin-bottom:1rem;}
.review-form{margin-top:1.3rem;padding-top:1.3rem;border-top:1px dashed var(--border);}
.review-form-label{font-family:var(--font-body);font-weight:600;font-size:0.85rem;color:var(--text);margin-bottom:0.6rem;}
.star-picker{display:flex;gap:0.3rem;margin-bottom:0.8rem;font-size:1.3rem;color:var(--gold);}
.star-picker i{cursor:pointer;transition:transform 0.15s;}
.star-picker i:hover{transform:scale(1.15);}
textarea.form-input{resize:vertical;}

/* FOOTER */
footer{position:relative;z-index:2;padding:3.5rem 4rem;border-top:1px solid var(--border);text-align:center;}
.footer-logo{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;font-family:var(--font-display);font-size:1.2rem;color:var(--text);margin-bottom:1rem;}
.footer-logo .brand-mark{width:28px;height:28px;}
.footer-links{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.3rem;}
.footer-links a{font-family:var(--font-body);font-weight:500;font-size:0.82rem;color:var(--text-soft);text-decoration:none;transition:color 0.2s;}
.footer-links a:hover{color:var(--accent);}
.footer-text{color:var(--text-mist);font-size:0.85rem;}

/* CONTACT */
.contact-links{display:flex;gap:1.3rem;justify-content:center;flex-wrap:wrap;}
.contact-btn{display:flex;align-items:center;gap:0.6rem;padding:0.9rem 1.7rem;border:1px solid var(--border);border-radius:8px;color:var(--text-soft);text-decoration:none;font-family:var(--font-body);font-weight:500;font-size:0.88rem;transition:all 0.2s;}
.contact-btn:hover{border-color:var(--border-strong);background:var(--bg-soft);color:var(--text);}
.contact-btn i{font-size:1.1rem;}

/* TOAST */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(100px);background:var(--text);padding:0.85rem 1.6rem;border-radius:8px;font-family:var(--font-body);font-weight:500;font-size:0.85rem;color:#fff;z-index:1000;transition:transform 0.35s var(--ease-spring),opacity 0.3s;opacity:0;pointer-events:none;}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;}

/* RESPONSIVE */
@media(max-width:900px){
  nav{padding:1rem 1.5rem;}
  .shop-toolbar{padding:100px 1.5rem 1.4rem;}
  .festival-widget{margin:0 1.5rem 2rem;}
  .festival-card{padding:1rem 1.2rem;}
  .promo-carousel{margin:0 1.5rem 2rem;}
  .promo-slide{padding:2.4rem 1.8rem;min-height:260px;}
  .origin-peak{font-size:5rem;}
  .origin-moon{font-size:2.2rem;right:1.5rem;}
  .durga-eyes{width:160px;}
  .kite{font-size:2.8rem;}
  .kite--2{font-size:1.7rem;}
  .kite--3{font-size:1.2rem;}
  .jamara{font-size:1.9rem;bottom:8%;left:5%;}
  .tika{width:17px;height:17px;bottom:10%;right:6%;}
  .swing{width:68px;height:92px;top:4%;left:5%;}
  .swing-rope{height:68px;}
  .swing-seat{top:64px;}
  .firework{transform:scale(0.7);}
  .tihar-diya{font-size:1.1rem;}
  .tihar-animals{font-size:1rem;bottom:6%;right:12%;}
  .origin-pillars span{font-size:0.68rem;padding:0.35rem 0.7rem;}
  .pashupati-temple{width:48px;}
  .swayambhu-temple{width:52px;}
  .pigeon{width:14px;}
  .pigeon--2{width:11px;}
  .pigeon--3{width:12px;}
  .pigeon--4{width:10px;}
  .section-wrap{padding:3.5rem 1.5rem;}
  .modal-body{padding:1.5rem;}
  .form-row{grid-template-columns:1fr;}
  footer{padding:3rem 1.5rem;}
}
@media(max-width:600px){
  .payment-options{grid-template-columns:1fr;}
  .promo-arrow{width:30px;height:30px;}
  .promo-arrow--prev{left:0.4rem;}
  .promo-arrow--next{right:0.4rem;}
  .origin-peak{font-size:3.8rem;}
  .origin-moon{font-size:1.8rem;}
  .durga-eyes{width:125px;top:3%;}
  .kite--1{top:5%;right:8%;font-size:2.1rem;}
  .kite--2,.kite--3{display:none;}
  .swing{width:50px;height:68px;}
  .swing-rope{height:50px;}
  .swing-seat{top:47px;}
  .jamara{font-size:1.4rem;}
  .tihar-animals{font-size:0.85rem;}
  .tihar-diya{font-size:0.95rem;}
  .origin-pillars{gap:0.4rem;}
  .origin-pillars span{font-size:0.62rem;padding:0.3rem 0.6rem;}
}
