/* =========================================================
   DIVYA DARSHAAN — Spiritual Tour & Online Puja Booking
   Design language: "Sanctum after dark" — deep maroon-black
   void lit by diya flame, brass gold and vermilion sindoor.
   ========================================================= */

   @import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700;800&family=Yatra+One&family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

   :root{
     --void:#0a0503;
     --void-2:#120806;
     --maroon:#2a0808;
     --maroon-deep:#1a0505;
     --maroon-glass: rgba(42,8,8,0.55);
     --vermilion:#c1272d;
     --vermilion-2:#8f1519;
     --saffron:#ff8a1e;
     --gold:#f0b429;
     --gold-soft:#e8c98c;
     --ivory:#faf1e2;
     --ivory-dim:#cbb79a;
     --ivory-faint:#8a7a68;
   
     --font-display:'Cinzel', serif;
     --font-accent:'Yatra One', cursive;
     --font-body:'Poppins', sans-serif;
   
     --radius-lg: 28px;
     --radius-md: 16px;
     --radius-sm: 10px;
   
     --ease: cubic-bezier(.19,1,.22,1);
   }
   
   *,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
   html{ scroll-behavior:smooth; }
   body{
     background: var(--void);
     color: var(--ivory);
     font-family: var(--font-body);
     font-weight:400;
     line-height:1.6;
     overflow-x:hidden;
     -webkit-font-smoothing:antialiased;
   }
   img{ max-width:100%; display:block; }
   a{ color:inherit; text-decoration:none; }
   ul{ list-style:none; }
   button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
   input,select{ font-family:inherit; }
   .container{ width:100%; max-width:1280px; margin-inline:auto; padding-inline:clamp(20px,5vw,48px); }
   
   ::selection{ background:var(--vermilion); color:var(--ivory); }
   
   /* subtle grain / ember texture overlay across whole page */
   body::before{
     content:"";
     position:fixed; inset:0;
     pointer-events:none;
     z-index:2;
     opacity:.05;
     mix-blend-mode:overlay;
     background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
   }
   
   /* ---------- typography helpers ---------- */
   .eyebrow{
     font-family: var(--font-accent);
     font-size: clamp(13px,1.4vw,16px);
     letter-spacing:.14em;
     text-transform:uppercase;
     color: var(--saffron);
     display:inline-flex;
     align-items:center;
     gap:10px;
     margin-bottom:14px;
   }
   .eyebrow::before{
     content:"";
     width:26px; height:1px;
     background: linear-gradient(90deg, transparent, var(--saffron));
   }
   .section-title{
     font-family: var(--font-display);
     font-weight:700;
     font-size: clamp(30px, 4.2vw, 54px);
     line-height:1.1;
     color: var(--ivory);
     letter-spacing:.01em;
   }
   .section-title em{
     font-style:normal;
     color:transparent;
     background:linear-gradient(180deg, var(--gold), var(--saffron) 70%);
     -webkit-background-clip:text; background-clip:text;
   }
   .section-sub{
     color: var(--ivory-dim);
     font-size: clamp(14.5px,1.6vw,17px);
     max-width:560px;
     margin-top:14px;
   }
   .section-head{
     display:flex; align-items:flex-end; justify-content:space-between;
     gap:24px; flex-wrap:wrap; margin-bottom:44px;
   }
   
   .btn{
     display:inline-flex; align-items:center; justify-content:center; gap:10px;
     padding:15px 30px;
     border-radius:999px;
     font-size:14px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
     transition: transform .45s var(--ease), box-shadow .45s var(--ease), background .3s ease, color .3s ease;
     white-space:nowrap;
   }
   .btn-flame{
     background: linear-gradient(120deg, var(--vermilion), var(--saffron));
     color: var(--void);
     box-shadow: 0 8px 30px -8px rgba(255,138,30,.55);
   }
   .btn-flame:hover{ transform: translateY(-3px); box-shadow: 0 14px 36px -8px rgba(255,138,30,.75); }
   .btn-outline{
     border:1px solid rgba(240,180,41,.45);
     color: var(--gold-soft);
     background: rgba(240,180,41,.06);
   }
   .btn-outline:hover{ background: rgba(240,180,41,.16); transform: translateY(-3px); }
   .btn-ghost{
     color:var(--ivory);
     border-bottom:1px solid rgba(250,241,226,.35);
     border-radius:0;
     padding:6px 2px;
   }
   .btn-ghost:hover{ border-color: var(--gold); color:var(--gold-soft); }
   
   /* =========================================================
      PRELOADER
      ========================================================= */
   #preloader{
     position:fixed; inset:0; z-index:9999;
     background: var(--void);
     display:flex; flex-direction:column; align-items:center; justify-content:center;
     gap:18px;
     transition: opacity .8s var(--ease), visibility .8s var(--ease);
   }
   #preloader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
   #preloader svg{ width:86px; height:86px; }
   #preloader .flame-path{
     fill:none; stroke:var(--gold); stroke-width:3;
     stroke-dasharray: 340; stroke-dashoffset:340;
     animation: draw 1.6s var(--ease) forwards infinite alternate;
   }
   @keyframes draw{ to{ stroke-dashoffset:0; } }
   #preloader span{
     font-family:var(--font-accent); letter-spacing:.2em; text-transform:uppercase;
     font-size:12px; color:var(--ivory-dim);
   }
   
   /* =========================================================
      NAVBAR
      ========================================================= */
   .navbar{
     position:fixed; top:0; left:0; right:0; z-index:900;
     padding: 26px 0;
     background: transparent;
     transition: padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease);
   }
   .navbar.scrolled{
     padding:14px 0;
     background: rgba(10,5,3,.78);
     backdrop-filter: blur(16px) saturate(140%);
     -webkit-backdrop-filter: blur(16px) saturate(140%);
     box-shadow: 0 10px 40px -20px rgba(0,0,0,.7);
     border-bottom:1px solid rgba(240,180,41,.12);
   }
   .nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
   .brand{ display:flex; align-items:center; gap:12px; }
   .brand img{ height:44px; width:auto; transition: height .4s var(--ease); }
   .navbar.scrolled .brand img{ height:38px; }
   .brand-text{ font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--ivory); line-height:1.1; }
   .brand-text small{ display:block; font-family:var(--font-body); font-weight:300; font-size:10.5px; letter-spacing:.22em; color:var(--gold-soft); text-transform:uppercase; margin-top:2px; }
   
   .nav-links{ display:flex; align-items:center; gap:38px; }
   .nav-links a{
     font-size:13.5px; font-weight:500; letter-spacing:.04em; text-transform:uppercase;
     color: var(--ivory-dim);
     position:relative; padding:4px 0;
     transition: color .3s ease;
   }
   .nav-links a::after{
     content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px;
     background: linear-gradient(90deg, var(--saffron), var(--gold));
     transition: right .4s var(--ease);
   }
   .nav-links a:hover, .nav-links a.active{ color:var(--ivory); }
   .nav-links a:hover::after, .nav-links a.active::after{ right:0; }
   
   .nav-cta{ display:flex; align-items:center; gap:22px; }
   .cart-link{ position:relative; font-size:19px; color:var(--ivory); }
   .cart-count{
     position:absolute; top:-8px; right:-10px;
     background:var(--vermilion); color:var(--ivory);
     font-size:10px; font-weight:700; min-width:17px; height:17px; border-radius:50%;
     display:flex; align-items:center; justify-content:center; padding:0 3px;
   }
   .nav-cta .btn{ padding:11px 22px; font-size:12px; }
   
   .burger{ display:none; flex-direction:column; gap:5px; width:26px; }
   .burger span{ height:2px; background:var(--ivory); border-radius:2px; transition:.3s; }
   
   .mobile-panel{
     position:fixed; inset:0 0 0 auto; width:min(320px,84vw); height:100vh; z-index:950;
     background: var(--maroon-deep); border-left:1px solid rgba(240,180,41,.15);
     padding:100px 32px 40px; transform:translateX(100%); transition: transform .5s var(--ease);
     display:flex; flex-direction:column; gap:26px;
   }
   .mobile-panel.open{ transform:translateX(0); }
   .mobile-panel a{ font-family:var(--font-display); font-size:20px; color:var(--ivory); }
   .panel-close{ position:absolute; top:28px; right:28px; font-size:26px; color:var(--gold); }
   .scrim{ position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:940; opacity:0; pointer-events:none; transition:opacity .4s ease; }
   .scrim.show{ opacity:1; pointer-events:auto; }
   
   /* =========================================================
      HERO
      ========================================================= */
   .hero{
     position:relative; min-height:100svh; display:flex; align-items:center;
     overflow:hidden; padding-top:120px; padding-bottom:150px;
   }
   .hero-slides{ position:absolute; inset:0; z-index:0; }
   .hero-slide{
     position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease;
   }
   .hero-slide.active{ opacity:1; }
   .hero-slide video, .hero-slide img{
     width:100%; height:100%; object-fit:cover; object-position:center;
     transform:scale(1.08);
     animation: kenburns 12s ease-in-out forwards;
   }
   @keyframes kenburns{ from{ transform:scale(1.08);} to{ transform:scale(1);} }
   .hero::after{
     content:"";
     position:absolute; inset:0; z-index:1;
     background:
       radial-gradient(ellipse at 20% 20%, rgba(193,39,45,.18), transparent 55%),
       linear-gradient(180deg, rgba(10,5,3,.55) 0%, rgba(10,5,3,.45) 35%, rgba(10,5,3,.85) 100%);
   }
   .hero-content{ position:relative; z-index:2; width:100%; }
   .hero-tag{
     font-family:var(--font-accent); color:var(--gold); text-transform:uppercase;
     letter-spacing:.22em; font-size:13px; display:flex; align-items:center; gap:12px; margin-bottom:22px;
     opacity:0; animation: rise .9s var(--ease) .2s forwards;
   }
   .hero-tag i{ width:34px; height:1px; background:var(--gold); display:inline-block; }
   .hero-caption{ max-width:820px; }
   .hero-title{
     font-family:var(--font-display); font-weight:800;
     font-size:clamp(38px,7vw,84px); line-height:1.03; color:var(--ivory);
     text-shadow: 0 10px 60px rgba(0,0,0,.5);
   }
   .hero-title .line{ display:block; overflow:hidden; }
   .hero-title .line span{ display:inline-block; opacity:0; transform:translateY(110%); animation: rise .9s var(--ease) forwards; }
   .hero-title .line:nth-child(1) span{ animation-delay:.35s; }
   .hero-title .line:nth-child(2) span{ animation-delay:.5s; color:transparent; background:linear-gradient(180deg,var(--gold),var(--saffron) 75%); -webkit-background-clip:text; background-clip:text; }
   @keyframes rise{ to{ opacity:1; transform:translateY(0); } }
   
   .hero-desc{
     margin-top:22px; font-size:16.5px; color:var(--ivory-dim); max-width:520px;
     opacity:0; animation: rise .9s var(--ease) .7s forwards;
   }
   .hero-actions{ display:flex; gap:18px; margin-top:34px; flex-wrap:wrap; opacity:0; animation: rise .9s var(--ease) .85s forwards; }
   
   .hero-dots{ position:absolute; z-index:3; right:clamp(20px,5vw,48px); bottom:210px; display:flex; flex-direction:column; gap:12px; }
   .hero-dots button{ width:9px; height:9px; border-radius:50%; background:rgba(250,241,226,.3); transition:.35s; }
   .hero-dots button.active{ background:var(--gold); box-shadow:0 0 0 3px rgba(240,180,41,.25); height:26px; border-radius:6px; }
   
   .scroll-hint{
     position:absolute; left:clamp(20px,5vw,48px); bottom:210px; z-index:3;
     display:flex; align-items:center; gap:10px; color:var(--ivory-faint);
     font-size:11px; letter-spacing:.18em; text-transform:uppercase;
   }
   .scroll-hint .wheel{ width:20px; height:32px; border:1px solid var(--ivory-faint); border-radius:12px; position:relative; }
   .scroll-hint .wheel::after{ content:""; position:absolute; top:6px; left:50%; translate:-50% 0; width:3px; height:6px; background:var(--gold); border-radius:2px; animation:scrolldown 1.6s ease infinite; }
   @keyframes scrolldown{ 0%{ top:6px; opacity:1;} 70%{ top:18px; opacity:0;} 100%{ top:6px; opacity:0;} }
   
   /* floating search bar */
   .floating-search{
     position:absolute; left:50%; bottom:-42px; translate:-50% 0; z-index:5;
     width:min(1080px,92vw);
     background: rgba(20,10,7,.7);
     border:1px solid rgba(240,180,41,.25);
     backdrop-filter: blur(20px) saturate(150%);
     -webkit-backdrop-filter: blur(20px) saturate(150%);
     border-radius: 20px;
     padding:14px;
     display:grid;
     grid-template-columns: 1.3fr 1fr 1fr auto;
     gap:10px;
     box-shadow: 0 30px 70px -20px rgba(0,0,0,.65);
   }
   .search-field{
     display:flex; flex-direction:column; gap:4px; padding:8px 18px;
     border-right:1px solid rgba(255,255,255,.08);
   }
   .floating-search .search-field:last-of-type{ border-right:none; }
   .search-field label{ font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--gold-soft); }
   .search-field input, .search-field select{
     background:transparent; border:none; color:var(--ivory); font-size:14.5px; outline:none;
   }
   .search-field select option{ background:var(--maroon-deep); }
   .floating-search .btn{ padding:0 30px; border-radius:14px; }
   
   /* marquee ticker */
   .ticker{
     position:relative; z-index:3;
     background: linear-gradient(90deg, var(--vermilion-2), var(--maroon) 60%, var(--vermilion-2));
     border-top:1px solid rgba(240,180,41,.2); border-bottom:1px solid rgba(240,180,41,.2);
     padding:14px 0; margin-top:96px; overflow:hidden;
   }
   .ticker-track{ display:flex; gap:60px; width:max-content; animation: scroll-left 32s linear infinite; }
   .ticker-track span{ font-family:var(--font-accent); font-size:14px; letter-spacing:.06em; color:var(--gold-soft); text-transform:uppercase; display:flex; align-items:center; gap:16px; }
   .ticker-track span::before{ content:"✦"; color:var(--saffron); }
   @keyframes scroll-left{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
   
   /* =========================================================
      GENERIC SECTION SPACING
      ========================================================= */
   section{ position:relative; padding:118px 0; }
   .divider-lotus{
     position:absolute; top:-1px; left:0; right:0; height:70px;
     background: var(--void);
     clip-path: polygon(0 0,100% 0,100% 40%,92% 100%,84% 45%,76% 100%,68% 42%,60% 100%,52% 40%,44% 100%,36% 42%,28% 100%,20% 40%,12% 100%,4% 45%,0 100%);
   }
   
   /* =========================================================
      SERVICES — horizontal scroll
      ========================================================= */
   .services{ background: var(--void); }
   .hscroll-controls{ display:flex; gap:12px; }
   .hscroll-controls button{
     width:46px; height:46px; border-radius:50%; border:1px solid rgba(240,180,41,.3);
     display:flex; align-items:center; justify-content:center; color:var(--gold-soft); font-size:16px;
     transition:.3s;
   }
   .hscroll-controls button:hover{ background:var(--gold); color:var(--void); }
   
   /* filter tabs: All / Puja / Darshan */
   .filter-tabs{ display:flex; gap:12px; margin-bottom:30px; flex-wrap:wrap; }
   .filter-tab{
     padding:11px 24px; border-radius:999px;
     border:1px solid rgba(240,180,41,.28);
     color:var(--ivory-dim); font-size:13px; font-weight:600; letter-spacing:.03em;
     background:rgba(255,255,255,.03);
     transition: background .35s ease, color .35s ease, border-color .35s ease, transform .3s ease;
   }
   .filter-tab:hover{ transform:translateY(-2px); border-color:rgba(240,180,41,.5); color:var(--ivory); }
   .filter-tab.active{
     background:linear-gradient(120deg, var(--vermilion), var(--saffron));
     border-color:transparent; color:var(--void);
   }
   .service-card.filtered-out{ display:none; }
   .filter-empty{ text-align:center; color:var(--ivory-dim); padding:20px 0 4px; font-size:14px; }
   
   .service-track{
     display:flex; gap:26px; overflow-x:auto; padding:10px 4px 34px;
     scroll-snap-type:x mandatory; cursor:grab;
     scrollbar-width:thin; scrollbar-color: var(--saffron) transparent;
   }
   .service-track:active{ cursor:grabbing; }
   .service-track::-webkit-scrollbar{ height:6px; }
   .service-track::-webkit-scrollbar-thumb{ background:linear-gradient(90deg,var(--vermilion),var(--saffron)); border-radius:6px; }
   
   .service-card{
     position:relative; flex:0 0 auto; width:min(320px,78vw); height:420px;
     border-radius: var(--radius-lg); overflow:hidden; scroll-snap-align:start;
     border:1px solid rgba(240,180,41,.14);
     transition: transform .5s var(--ease);
   }
   .service-card:hover{ transform:translateY(-10px); }
   .service-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
   .service-card:hover img{ transform:scale(1.1); }
   .service-card::before{
     content:""; position:absolute; inset:0;
     background: linear-gradient(180deg, rgba(10,5,3,0) 20%, rgba(10,5,3,.92) 90%);
     z-index:1;
   }
   .service-badge{
     position:absolute; top:18px; left:18px; z-index:2;
     background: rgba(240,180,41,.15); border:1px solid rgba(240,180,41,.4);
     color:var(--gold-soft); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
     padding:6px 14px; border-radius:999px; backdrop-filter:blur(6px);
   }
   .service-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:26px; }
   .service-body h3{ font-family:var(--font-display); font-size:22px; color:var(--ivory); line-height:1.2; margin-bottom:6px; }
   .service-body p{ font-size:13px; color:var(--ivory-dim); margin-bottom:14px; }
   .service-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
   .service-foot form{ display:contents; }
   .service-price{ font-family:var(--font-display); color:var(--gold); font-size:18px; }
   .service-price small{ font-family:var(--font-body); color:var(--ivory-faint); font-size:11px; display:block; }
   .select-btn{
     font-size:11.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
     color:var(--void); background:linear-gradient(120deg,var(--saffron),var(--gold));
     padding:11px 18px; border-radius:999px; display:inline-flex; align-items:center; gap:8px;
     transition: transform .35s var(--ease), box-shadow .35s var(--ease);
     position:relative; z-index:5; pointer-events:auto; cursor:pointer;
   }
   .select-btn:hover{ transform:translateX(3px); box-shadow:0 10px 26px -8px rgba(255,138,30,.6); }
   
   /* =========================================================
      GALLERY / EXPLORE US
      ========================================================= */
   .gallery{ background: var(--maroon-deep); }
   .gallery-grid{
     display:grid; grid-template-columns: repeat(6,1fr); grid-auto-rows:130px; gap:14px;
   }
   .gallery-item{
     position:relative; overflow:hidden; border-radius:16px; cursor:pointer;
     border:1px solid rgba(240,180,41,.1);
   }
   .gallery-item:nth-child(1){ grid-column:span 3; grid-row:span 3; }
   .gallery-item:nth-child(2){ grid-column:span 3; grid-row:span 2; }
   .gallery-item:nth-child(3){ grid-column:span 3; grid-row:span 2; }
   .gallery-item:nth-child(4){ grid-column:span 2; grid-row:span 2; }
   .gallery-item:nth-child(5){ grid-column:span 2; grid-row:span 2; }
   .gallery-item:nth-child(6){ grid-column:span 2; grid-row:span 2; }
   .gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s ease; filter:saturate(.9) brightness(.85); }
   .gallery-item:hover img{ transform:scale(1.12); filter:saturate(1.1) brightness(1); }
   .gallery-item .gcap{
     position:absolute; left:0; right:0; bottom:0; padding:18px;
     background: linear-gradient(0deg, rgba(10,5,3,.9), transparent);
     transform:translateY(60%); opacity:0; transition:.4s var(--ease);
   }
   .gallery-item:hover .gcap{ transform:translateY(0); opacity:1; }
   .gcap span{ font-family:var(--font-accent); font-size:10px; color:var(--saffron); letter-spacing:.1em; text-transform:uppercase; }
   .gcap h4{ font-family:var(--font-display); font-size:16px; color:var(--ivory); margin-top:4px; }
   .gallery-foot{ text-align:center; margin-top:46px; }
   
   /* =========================================================
      PILLARS — Online Puja + Tours + Products (idea section)
      ========================================================= */
   .pillars{ background: var(--void); }
   .pillar-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
   .pillar-card{
     padding:44px 32px; border-radius:var(--radius-lg);
     background: linear-gradient(160deg, rgba(240,180,41,.06), rgba(255,255,255,.015));
     border:1px solid rgba(240,180,41,.15);
     position:relative; overflow:hidden; transition:transform .5s var(--ease), border-color .5s ease;
   }
   .pillar-card:hover{ transform:translateY(-8px); border-color:rgba(240,180,41,.4); }
   .pillar-num{ font-family:var(--font-accent); font-size:13px; color:var(--saffron); letter-spacing:.1em; text-transform:uppercase; }
   .pillar-card h3{ font-family:var(--font-display); font-size:26px; margin:16px 0 12px; color:var(--ivory); }
   .pillar-card p{ color:var(--ivory-dim); font-size:14.5px; }
   .pillar-icon{
     width:58px; height:58px; border-radius:16px; display:flex; align-items:center; justify-content:center;
     background:linear-gradient(135deg,var(--vermilion),var(--saffron)); font-size:24px; margin-bottom:6px;
   }
   
   /* =========================================================
      FOCUS — Priority Online Puja / Kamakhya Tour
      ========================================================= */
   .focus{ background: var(--maroon-deep); }
   .focus-grid{ display:grid; grid-template-columns: 1.3fr .9fr; gap:28px; align-items:stretch; }
   .focus-card{ position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:480px; display:flex; align-items:flex-end; }
   .focus-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
   .focus-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,5,3,.15), rgba(10,5,3,.95)); }
   .focus-inner{ position:relative; z-index:2; padding:42px; width:100%; }
   .priority-pill{
     display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:999px;
     background:rgba(193,39,45,.25); border:1px solid rgba(193,39,45,.6); color:#ffb3b6;
     font-size:11px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px;
   }
   .priority-pill.gold{ background:rgba(240,180,41,.18); border-color:rgba(240,180,41,.55); color:var(--gold-soft); }
   .focus-inner h3{ font-family:var(--font-display); font-size:clamp(24px,2.6vw,36px); color:var(--ivory); margin-bottom:10px; }
   .focus-inner p{ color:var(--ivory-dim); font-size:14.5px; max-width:440px; margin-bottom:22px; }
   .focus-list{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
   .focus-list li{ font-size:12px; padding:7px 14px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); color:var(--ivory-dim); }
   
   /* =========================================================
      TESTIMONIAL MARQUEE
      ========================================================= */
   .testimonials{ background: var(--void); padding-block:90px; }
   .tmarquee{ overflow:hidden; }
   .tmarquee-track{ display:flex; gap:24px; width:max-content; animation: scroll-left 46s linear infinite; }
   .tcard{
     width:380px; padding:28px; border-radius:20px; background:rgba(255,255,255,.03);
     border:1px solid rgba(240,180,41,.12);
   }
   .tcard p{ color:var(--ivory-dim); font-size:14px; margin-bottom:18px; font-style:italic; }
   .tcard .stars{ color:var(--gold); font-size:13px; margin-bottom:12px; }
   .tperson{ display:flex; align-items:center; gap:12px; }
   .tperson .initial{ width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--vermilion),var(--saffron)); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); color:var(--void); font-weight:700; }
   .tperson strong{ display:block; font-size:13.5px; color:var(--ivory); }
   .tperson span{ font-size:11.5px; color:var(--ivory-faint); }
   
   /* =========================================================
      NEWSLETTER / CTA STRIP
      ========================================================= */
   .cta-strip{
     background: linear-gradient(120deg, var(--vermilion-2), var(--maroon) 60%);
     border-radius: var(--radius-lg);
     margin-inline:auto; max-width:1280px;
     padding:56px clamp(24px,5vw,64px);
     display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
     border:1px solid rgba(240,180,41,.2);
   }
   .cta-strip h3{ font-family:var(--font-display); font-size:clamp(22px,2.6vw,32px); max-width:480px; }
   .cta-strip form{ display:flex; gap:0; background:rgba(0,0,0,.25); border-radius:999px; padding:6px; border:1px solid rgba(255,255,255,.12); }
   .cta-strip input{ background:transparent; border:none; outline:none; color:var(--ivory); padding:12px 18px; width:230px; }
   
   /* =========================================================
      FOOTER
      ========================================================= */
   footer{ background: var(--void-2); border-top:1px solid rgba(240,180,41,.12); padding-top:90px; }
   .footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:60px; }
   .footer-brand .brand{ margin-bottom:16px; }
   .footer-brand p{ color:var(--ivory-dim); font-size:13.5px; max-width:280px; }
   .social-row{ display:flex; gap:12px; margin-top:20px; }
   .social-row a{ width:38px; height:38px; border:1px solid rgba(240,180,41,.25); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.3s; }
   .social-row a:hover{ background:var(--gold); color:var(--void); }
   .footer-col h5{ font-family:var(--font-display); font-size:15px; color:var(--gold-soft); margin-bottom:20px; letter-spacing:.03em; }
   .footer-col ul li{ margin-bottom:12px; }
   .footer-col ul a{ color:var(--ivory-dim); font-size:13.5px; transition:.3s; }
   .footer-col ul a:hover{ color:var(--gold-soft); padding-left:4px; }
   .footer-bottom{
     border-top:1px solid rgba(255,255,255,.06); padding:22px 0 30px;
     display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
     font-size:12.5px; color:var(--ivory-faint);
   }
   
   /* =========================================================
      DIYA SCROLL PROGRESS — signature element
      ========================================================= */
   .diya-progress{
     position:fixed; right:26px; bottom:26px; z-index:500;
     width:64px; height:64px; border-radius:50%;
     background: rgba(20,10,7,.75); border:1px solid rgba(240,180,41,.3);
     backdrop-filter: blur(10px);
     display:flex; align-items:center; justify-content:center;
     opacity:0; pointer-events:none; transition:opacity .4s ease, transform .4s ease;
   }
   .diya-progress.show{ opacity:1; pointer-events:auto; }
   .diya-progress svg{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
   .diya-progress circle{ fill:none; stroke-width:3; }
   .diya-progress .track{ stroke:rgba(255,255,255,.08); }
   .diya-progress .bar{ stroke:url(#flameGradient); stroke-linecap:round; transition:stroke-dashoffset .1s linear; }
   .diya-progress .flame{ font-size:20px; animation:flicker 1.8s ease-in-out infinite; }
   @keyframes flicker{ 0%,100%{ transform:scale(1) rotate(-2deg); filter:brightness(1);} 50%{ transform:scale(1.12) rotate(2deg); filter:brightness(1.3);} }
   
   /* whatsapp / call float */
   .float-help{
     position:fixed; left:26px; bottom:26px; z-index:500;
     display:flex; align-items:center; gap:10px; padding:12px 18px; border-radius:999px;
     background:linear-gradient(120deg,#1fae5a,#0f8a44); box-shadow:0 14px 30px -10px rgba(15,138,68,.6);
     font-size:13px; font-weight:600; color:#fff;
   }
   .float-help span.dot{ width:8px; height:8px; border-radius:50%; background:#fff; animation:pulse 1.6s ease infinite; }
   @keyframes pulse{ 0%,100%{ opacity:1;} 50%{ opacity:.3;} }
   
   /* =========================================================
      REVEAL ON SCROLL
      ========================================================= */
   [data-reveal]{ opacity:0; transform:translateY(36px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
   [data-reveal].in-view{ opacity:1; transform:translateY(0); }
   [data-reveal="fade"]{ transform:none; }
   [data-reveal-delay="1"]{ transition-delay:.12s; }
   [data-reveal-delay="2"]{ transition-delay:.24s; }
   [data-reveal-delay="3"]{ transition-delay:.36s; }
   
   /* =========================================================
      PAGE HERO (cart / gallery inner pages)
      ========================================================= */
   .page-hero{
     padding:190px 0 90px; text-align:center; position:relative;
     background: radial-gradient(ellipse at 50% 0%, rgba(193,39,45,.22), transparent 60%), var(--maroon-deep);
     border-bottom:1px solid rgba(240,180,41,.12);
   }
   .breadcrumb{ color:var(--ivory-faint); font-size:12.5px; margin-top:14px; letter-spacing:.05em; }
   .breadcrumb a{ color:var(--gold-soft); }
   
   /* Cart page */
   .cart-wrap{ display:grid; grid-template-columns: 1.6fr 1fr; gap:34px; align-items:start; }
   .cart-items{ display:flex; flex-direction:column; gap:18px; }
   .cart-row{
     padding:18px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(240,180,41,.12);
   }
   .cart-row-full{ display:flex; flex-direction:column; gap:16px; }
   .cart-row-head{ display:grid; grid-template-columns:80px 1fr auto; gap:16px; align-items:center; }
   .cart-row img{ width:80px; height:80px; object-fit:cover; border-radius:12px; }
   .cart-row h4{ font-family:var(--font-display); font-size:16px; color:var(--ivory); margin-bottom:4px; }
   .cart-row p{ font-size:12.5px; color:var(--ivory-faint); }
   
   .tier-select{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding-top:12px; border-top:1px dashed rgba(255,255,255,.08); }
   .tier-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--ivory-faint); margin-right:4px; }
   .tier-btn{
     padding:8px 18px; border-radius:999px; font-size:12.5px; font-weight:600;
     border:1px solid rgba(240,180,41,.28); color:var(--ivory-dim); background:rgba(255,255,255,.03);
     transition:.3s ease;
   }
   .tier-btn:hover{ border-color:rgba(240,180,41,.5); color:var(--ivory); }
   .tier-btn.active{ background:linear-gradient(120deg, var(--vermilion), var(--saffron)); border-color:transparent; color:var(--void); }
   
   .persons-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:14px; }
   .person-fields{ display:flex; flex-direction:column; gap:8px; background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.06); border-radius:12px; padding:14px; }
   .person-index{ font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-soft); }
   .person-fields input{
     background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:8px;
     padding:9px 12px; color:var(--ivory); font-size:13px;
   }
   
   /* flash toast (Laravel session('success')) */
   .flash-toast{
     position:fixed; top:100px; left:50%; z-index:1200;
     background: rgba(20,10,7,.92); border:1px solid rgba(240,180,41,.4);
     color:var(--ivory); padding:14px 26px; border-radius:999px; font-size:13.5px;
     box-shadow:0 20px 50px -15px rgba(0,0,0,.6);
     transform:translateX(-50%);
     animation: toastIn .5s var(--ease) forwards, toastOut .5s var(--ease) 3.2s forwards;
   }
   @keyframes toastIn{ from{ opacity:0; transform:translateX(-50%) translateY(-14px);} to{ opacity:1; transform:translateX(-50%) translateY(0);} }
   @keyframes toastOut{ to{ opacity:0; visibility:hidden; } }
   .remove-btn{ color:var(--vermilion); font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; margin-top:8px; }
   .cart-empty{ text-align:center; padding:60px 20px; color:var(--ivory-dim); }
   .cart-empty .big-icon{ font-size:48px; margin-bottom:18px; }
   
   .summary-card{ padding:30px; border-radius:20px; background:linear-gradient(160deg, rgba(240,180,41,.08), rgba(255,255,255,.02)); border:1px solid rgba(240,180,41,.2); position:sticky; top:120px; }
   .summary-card h4{ font-family:var(--font-display); font-size:20px; margin-bottom:22px; }
   .summary-row{ display:flex; justify-content:space-between; font-size:13.5px; color:var(--ivory-dim); padding:10px 0; border-bottom:1px dashed rgba(255,255,255,.1); }
   .summary-row.total{ color:var(--ivory); font-size:17px; font-family:var(--font-display); border-bottom:none; padding-top:18px; }
   .summary-card .btn{ width:100%; margin-top:22px; }
   
   /* Gallery page */
   .gallery-full{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
   .gallery-full .g-item{ border-radius:16px; overflow:hidden; position:relative; aspect-ratio:4/5; cursor:pointer; }
   .gallery-full .g-item img{ width:100%; height:100%; object-fit:cover; transition:.6s var(--ease); }
   .gallery-full .g-item:hover img{ transform:scale(1.1); }
   
   /* lightbox */
   .lightbox{ position:fixed; inset:0; z-index:2000; background:rgba(5,2,1,.92); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:.4s ease; }
   .lightbox.show{ opacity:1; pointer-events:auto; }
   .lightbox img{ max-width:88vw; max-height:82vh; border-radius:14px; box-shadow:0 40px 80px rgba(0,0,0,.6); }
   .lightbox-close{ position:absolute; top:30px; right:36px; font-size:28px; color:var(--ivory); }
   
   /* =========================================================
      RESPONSIVE
      ========================================================= */
   @media (max-width: 980px){
     .nav-links{ display:none; }
     .burger{ display:flex; }
     .floating-search{ grid-template-columns:1fr 1fr; }
     .floating-search .search-field:nth-child(3){ border-right:none; }
     .floating-search .btn{ grid-column:1/-1; padding:14px; }
     .pillar-grid, .focus-grid{ grid-template-columns:1fr; }
     .footer-grid{ grid-template-columns:1fr 1fr; }
     .cart-wrap{ grid-template-columns:1fr; }
     .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; }
     .gallery-item:nth-child(n){ grid-column:span 1; grid-row:span 2; }
     .gallery-full{ grid-template-columns:repeat(2,1fr); }
   }
   @media (max-width:560px){
     .hero-actions{ flex-direction:column; align-items:flex-start; }
     section{ padding:80px 0; }
     .floating-search{ bottom:-80px; }
     .ticker{ margin-top:130px; }
     .footer-grid{ grid-template-columns:1fr; }
     .cta-strip{ flex-direction:column; align-items:flex-start; }
     .cta-strip form{ width:100%; }
     .cta-strip input{ width:100%; }
   }
   
   @media (prefers-reduced-motion: reduce){
     *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
   }