/* Eventshala – festive magenta/gold theme v2. Mobile-first. */
:root {
  --magenta: #8a1560;
  --magenta-d: #5c0d40;
  --purple: #4a1a7a;
  --gold: #f5b82e;
  --gold-d: #d99a0b;
  --cream: #fff8ef;
  --ink: #2a1a33;
  --radius: 1.25rem;
  --shadow: 0 10px 34px rgba(92,13,64,.15);
  /* SVG patterns */
  --mandala: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-100 -100 200 200' fill='none' stroke='%23f5b82e' stroke-width='1.2'%3E%3Ccircle r='95'/%3E%3Ccircle r='70' stroke-dasharray='3 5'/%3E%3Ccircle r='40'/%3E%3Cg%3E%3Cpath id='p' d='M0-95C14-70 14-45 0-20 -14-45 -14-70 0-95Z'/%3E%3Cuse href='%23p' transform='rotate(30)'/%3E%3Cuse href='%23p' transform='rotate(60)'/%3E%3Cuse href='%23p' transform='rotate(90)'/%3E%3Cuse href='%23p' transform='rotate(120)'/%3E%3Cuse href='%23p' transform='rotate(150)'/%3E%3Cuse href='%23p' transform='rotate(180)'/%3E%3Cuse href='%23p' transform='rotate(210)'/%3E%3Cuse href='%23p' transform='rotate(240)'/%3E%3Cuse href='%23p' transform='rotate(270)'/%3E%3Cuse href='%23p' transform='rotate(300)'/%3E%3Cuse href='%23p' transform='rotate(330)'/%3E%3C/g%3E%3C/svg%3E");
  --dots: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Ccircle cx='3' cy='3' r='1.6' fill='%23f5b82e' fill-opacity='.35'/%3E%3C/svg%3E");
}
html { scroll-behavior: smooth; }
body { font-family: 'Hind', 'Poppins', system-ui, sans-serif; font-size: 1.05rem; color: var(--ink); background: var(--cream); overflow-x: hidden; }
h1, h2, h3, .brand-font { font-family: 'Playfair Display', 'Noto Serif Devanagari', Georgia, serif; }
.text-gold { color: var(--gold) !important; }
.bg-magenta { background: linear-gradient(90deg, var(--magenta-d), var(--purple)); }
.bg-festive { background: linear-gradient(135deg, var(--magenta), var(--purple) 60%, #2b0f4d); }
.bg-festive-soft { background: linear-gradient(180deg, #fbeaf5, #f1e8fb); min-height: 100vh; }
.dots-bg { background-image: var(--dots); }

.btn-gold { background: linear-gradient(135deg, #ffd45e, var(--gold) 55%, var(--gold-d)); border: 0; color: #3a2400; font-weight: 600; border-radius: 2rem; transition: .25s; box-shadow: 0 6px 16px rgba(245,184,46,.4); }
.btn-gold:hover { color: #fff; background: linear-gradient(135deg, var(--gold-d), #b97f00); transform: translateY(-2px); }
.btn-ghost { border: 1.5px solid rgba(255,255,255,.7); color: #fff; border-radius: 2rem; font-weight: 500; }
.btn-ghost:hover { background: #fff; color: var(--magenta); }

/* Navbar */
.navbar { backdrop-filter: blur(10px); box-shadow: 0 4px 20px rgba(0,0,0,.18); }
.navbar-brand { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 1.5rem; letter-spacing: .5px; }

/* Glass card */
.glass-card { background: rgba(255,255,255,.78); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.7); border-radius: var(--radius); box-shadow: var(--shadow); transition: transform .3s, box-shadow .3s; }
.glass-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(92,13,64,.25); }
.metric:hover { transform: none; }

/* ============ HERO ============ */
.hero { position: relative; color: #fff; padding: 5.5rem 0 8rem; overflow: hidden; isolation: isolate;
  background: linear-gradient(135deg, rgba(92,13,64,.93), rgba(74,26,122,.88)), var(--hero-img, none) center/cover fixed, var(--magenta-d); }
.hero::before { content: ""; position: absolute; width: 640px; height: 640px; right: -180px; top: -160px; z-index: -1; opacity: .35; background: var(--mandala) center/contain no-repeat; animation: spin 90s linear infinite; }
.hero::after { content: ""; position: absolute; width: 420px; height: 420px; left: -140px; bottom: -120px; z-index: -1; opacity: .22; background: var(--mandala) center/contain no-repeat; animation: spin 70s linear infinite reverse; }
.blob { position: absolute; border-radius: 50%; filter: blur(60px); z-index: -1; opacity: .5; animation: float 9s ease-in-out infinite; }
.blob.b1 { width: 260px; height: 260px; background: #ff4fa3; top: 10%; left: 8%; }
.blob.b2 { width: 220px; height: 220px; background: var(--gold); bottom: 20%; right: 15%; animation-delay: -4s; }
.hero .tag { display: inline-block; padding: .35rem 1rem; border-radius: 2rem; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); font-size: .85rem; letter-spacing: .08em; }
.hero h1 { font-weight: 800; font-size: clamp(2.2rem, 7vw, 4.2rem); line-height: 1.1; }
.hero h1 .hl { background: linear-gradient(90deg, #ffe08a, var(--gold)); -webkit-background-clip: text; background-clip: text; color: transparent; font-style: italic; }
.hero .lead { max-width: 560px; margin-inline: auto; }
.hero-photos { display: none; }
@media (min-width: 992px) {
  .hero-photos { display: block; position: relative; height: 380px; }
  .hero-photos .ph { position: absolute; border-radius: 1.5rem; border: 5px solid #fff; box-shadow: 0 18px 40px rgba(0,0,0,.4); background: linear-gradient(135deg,#b3347f,#4a1a7a) center/cover; }
  .ph.p1 { width: 220px; height: 290px; left: 10%; top: 0; transform: rotate(-6deg); }
  .ph.p2 { width: 200px; height: 250px; right: 6%; top: 60px; transform: rotate(7deg); }
  .ph.p3 { width: 170px; height: 170px; left: 38%; bottom: 0; transform: rotate(-2deg); }
  .ph { animation: float 7s ease-in-out infinite; } .ph.p2 { animation-delay: -2s; } .ph.p3 { animation-delay: -4s; }
}
.wave { position: absolute; left: 0; right: 0; bottom: -1px; line-height: 0; }
.wave svg { width: 100%; height: 80px; }

/* Garland (toran) divider */
.toran { height: 38px; background: radial-gradient(circle at 14px 8px, var(--gold) 6px, transparent 7px) 0 0/28px 38px repeat-x,
  radial-gradient(circle at 14px 22px, #ff5fa8 5px, transparent 6px) 0 0/28px 38px repeat-x; opacity: .9; }

/* Search */
.search-box { margin-top: -4.2rem; position: relative; z-index: 5; padding: 1.4rem; border: 2px solid rgba(245,184,46,.6); }
.search-box .form-control { border-radius: .8rem; padding: .7rem 1rem; border: 1.5px solid #e8d9ea; }
.search-box .form-control:focus { border-color: var(--magenta); box-shadow: 0 0 0 .2rem rgba(138,21,96,.15); }

/* Stats */
.stat { text-align: center; padding: 1.2rem .5rem; }
.stat .num { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 2.2rem; font-weight: 800; color: var(--magenta); }
.stat i { font-size: 1.4rem; color: var(--gold-d); }

/* Section heading */
.sec-title { text-align: center; margin-bottom: 2.2rem; }
.sec-title small { color: var(--gold-d); letter-spacing: .25em; font-weight: 600; text-transform: uppercase; }
.sec-title h2 { font-weight: 700; margin: .3rem 0 0; }
.sec-title h2::after { content: ""; display: block; width: 90px; height: 14px; margin: .6rem auto 0;
  background: radial-gradient(circle at 50% 50%, var(--gold) 5px, transparent 6px) center/14px 14px no-repeat, linear-gradient(90deg, transparent, var(--gold) 40%, var(--gold) 60%, transparent) center/100% 2px no-repeat; }

/* Category tiles */
.cat-tile { position: relative; display: block; height: 210px; border-radius: var(--radius); overflow: hidden; color: #fff; text-decoration: none; background: linear-gradient(135deg, var(--magenta), var(--purple)); box-shadow: var(--shadow); }
.cat-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.cat-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 30%, rgba(42,10,51,.88)); }
.cat-tile span { position: absolute; z-index: 2; left: 1rem; bottom: .9rem; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 1.25rem; font-weight: 700; }
.cat-tile span i { color: var(--gold); margin-right: .4rem; }
.cat-tile:hover img { transform: scale(1.12); }

/* Photographer cards */
.photog-card { overflow: hidden; }
.photog-card .thumb { position: relative; height: 230px; overflow: hidden; background: linear-gradient(135deg, var(--magenta), var(--purple)); }
.photog-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.photog-card:hover .thumb img { transform: scale(1.1); }
.photog-card .thumb::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 55%, rgba(42,10,51,.7)); }
.badge-rating { position: absolute; z-index: 2; top: .8rem; right: .8rem; background: rgba(255,255,255,.95); color: var(--ink); padding: .25rem .65rem; border-radius: 2rem; font-size: .8rem; font-weight: 600; }
.badge-rating i { color: var(--gold-d); }
.badge-verified { position: absolute; z-index: 2; top: .8rem; left: .8rem; background: var(--gold); color: #3a2400; padding: .25rem .65rem; border-radius: 2rem; font-size: .75rem; font-weight: 600; }
.photog-card .price { color: var(--magenta); font-weight: 700; }
.chip { display: inline-block; font-size: .72rem; padding: .15rem .6rem; border-radius: 2rem; background: #f6e6f1; color: var(--magenta); margin: 0 .25rem .25rem 0; }

/* How it works */
.step { text-align: center; padding: 2rem 1.2rem; position: relative; }
.step .ico { width: 82px; height: 82px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; font-size: 1.9rem; color: #fff; background: linear-gradient(135deg, var(--magenta), var(--purple)); box-shadow: 0 0 0 7px rgba(245,184,46,.3); }
.step .no { position: absolute; top: .8rem; right: 1.2rem; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 3rem; color: rgba(138,21,96,.12); font-weight: 800; }

/* Testimonials */
.testi { padding: 1.6rem; height: 100%; }
.testi .quote { font-size: 2.5rem; color: var(--gold); line-height: 1; }
.avatar { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; background: linear-gradient(135deg, var(--magenta), var(--gold-d)); }

/* CTA */
.cta { position: relative; overflow: hidden; border-radius: 2rem; color: #fff; padding: 3rem 1.5rem; text-align: center; background: linear-gradient(135deg, var(--magenta), var(--purple)); }
.cta::before { content: ""; position: absolute; inset: -30% auto auto -8%; width: 360px; height: 360px; background: var(--mandala) center/contain no-repeat; opacity: .3; animation: spin 80s linear infinite; }

/* ============ PROFILE ============ */
.cover { height: 48vh; min-height: 280px; background-size: cover; background-position: center; background-attachment: fixed; position: relative; }
.cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(92,13,64,.25), rgba(42,10,51,.88)); }
.cover .title { position: absolute; z-index: 2; bottom: 1.4rem; left: 0; right: 0; color: #fff; }
.cover h1 { text-shadow: 0 2px 12px rgba(0,0,0,.5); }
.info-chips { margin-top: -1.8rem; position: relative; z-index: 4; }
.info-chip { padding: .9rem 1rem; text-align: center; }
.info-chip i { color: var(--gold-d); font-size: 1.2rem; }
.info-chip b { display: block; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; color: var(--magenta); font-size: 1.3rem; }

.masonry { column-count: 2; column-gap: .8rem; }
@media (min-width: 768px) { .masonry { column-count: 3; } }
@media (min-width: 992px) { .masonry { column-count: 4; } }
.masonry .item { position: relative; break-inside: avoid; margin-bottom: .8rem; border-radius: 1rem; overflow: hidden; cursor: zoom-in; background: #e9d5e4; box-shadow: 0 6px 18px rgba(92,13,64,.15); }
.masonry img { width: 100%; display: block; transition: transform .5s; }
.masonry .item::after { content: "\f00e"; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 1.6rem; background: rgba(138,21,96,.55); opacity: 0; transition: opacity .3s; }
.masonry .item:hover::after { opacity: 1; }
.masonry .item:hover img { transform: scale(1.08); }
.ratio-yt { border-radius: 1rem; overflow: hidden; }

.pricing { position: relative; padding: 2rem 1.5rem; text-align: center; height: 100%; overflow: hidden; }
.pricing::before { content: ""; position: absolute; top: -60px; right: -60px; width: 180px; height: 180px; background: var(--mandala) center/contain no-repeat; opacity: .35; }
.pricing.featured { border: 2px solid var(--gold); background: linear-gradient(180deg, #fff, #fff4d9); transform: scale(1.03); }
.pricing .ribbon { position: absolute; top: 16px; left: -36px; transform: rotate(-45deg); background: var(--magenta); color: #fff; padding: .2rem 2.6rem; font-size: .72rem; font-weight: 600; }
.pricing .amount { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 2.4rem; font-weight: 800; color: var(--magenta); }
.pricing ul { list-style: none; padding: 0; text-align: left; margin: 1rem 0 1.4rem; }
.pricing li { padding: .35rem 0; border-bottom: 1px dashed #ecd9e6; }
.pricing li::before { content: "\f00c"; font-family: 'Font Awesome 6 Free'; font-weight: 900; color: var(--gold-d); margin-right: .6rem; }

.wa-float { position: fixed; right: 1rem; bottom: 1rem; z-index: 1050; background: #25d366; color: #fff; border-radius: 3rem; padding: .85rem 1.3rem; font-weight: 600; text-decoration: none; box-shadow: 0 6px 18px rgba(0,0,0,.3); animation: pulse 2s infinite; }
.wa-float:hover { color: #fff; filter: brightness(.92); }

/* Footer */
.site-footer { position: relative; color: rgba(255,255,255,.75); background: linear-gradient(135deg, var(--magenta-d), #2b0f4d); margin-top: 4rem; }
.site-footer a { color: rgba(255,255,255,.75); text-decoration: none; } .site-footer a:hover { color: var(--gold); }

/* Animations */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s, transform .7s; }
.reveal.in { opacity: 1; transform: none; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes float { 50% { transform: translateY(-18px); } }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.6); } 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } .reveal { opacity: 1; transform: none; } }
@media (max-width: 767px) { .cover, .hero { background-attachment: scroll; } .pricing.featured { transform: none; } }

/* ================= PREMIUM LAYER ================= */
/* Preloader */
#preloader { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; background: radial-gradient(circle at 50% 40%, #6d1a78, #2b0f4d 70%); transition: opacity .7s, visibility .7s; }
#preloader.done { opacity: 0; visibility: hidden; }
#preloader .loader { text-align: center; color: #fff; }
#preloader .ring { width: 96px; height: 96px; margin: 0 auto 1rem; border-radius: 50%; border: 3px solid rgba(245,184,46,.25); border-top-color: var(--gold); animation: spin 1s linear infinite; display: grid; place-items: center; }
#preloader .ring i { font-size: 2rem; color: var(--gold); animation: spin 1s linear infinite reverse; }
#preloader .name { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 1.8rem; letter-spacing: .15em; }

/* Scroll progress + cursor glow + petals canvas */
#progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 2500; background: linear-gradient(90deg, #ff5fa8, var(--gold)); box-shadow: 0 0 10px var(--gold); }
#petals { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
#glow { position: fixed; width: 420px; height: 420px; margin: -210px 0 0 -210px; border-radius: 50%; pointer-events: none; z-index: 0; background: radial-gradient(circle, rgba(245,184,46,.16), transparent 65%); opacity: 0; transition: opacity .4s; }
@media (hover: none) { #glow { display: none; } }
main, section, footer { position: relative; }
.navbar { z-index: 1030; transition: padding .3s, background .3s; }
.navbar.scrolled { padding-top: .25rem; padding-bottom: .25rem; background: rgba(60,10,60,.88) !important; }
.navbar.scrolled .navbar-brand { font-size: 1.25rem; }

/* Hero headline word-by-word */
.hero h1 .w { display: inline-block; opacity: 0; transform: translateY(40px) rotateX(-40deg); animation: wordIn .9s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes wordIn { to { opacity: 1; transform: none; } }
.hero .tag, .hero .lead, .hero .btn { opacity: 0; animation: fadeUp .9s .9s forwards; }
.hero .lead { animation-delay: 1.05s; } .hero .btn { animation-delay: 1.2s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* Floating SVG decor in hero */
.decor { position: absolute; z-index: -1; color: var(--gold); opacity: .55; animation: float 8s ease-in-out infinite; filter: drop-shadow(0 4px 12px rgba(0,0,0,.3)); }
.decor.d1 { top: 14%; left: 46%; font-size: 2.2rem; } .decor.d2 { bottom: 22%; left: 5%; font-size: 1.8rem; animation-delay: -3s; }
.decor.d3 { top: 30%; right: 4%; font-size: 2.6rem; animation-delay: -5s; color: #ff8fc4; }

/* Shine on gold buttons */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after { content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255,255,255,.65), transparent); transform: skewX(-20deg); animation: shine 3.5s infinite; }
@keyframes shine { 0%, 60% { left: -80%; } 100% { left: 140%; } }

/* Rotating gradient border on search box */
.search-box { border: 0; background-clip: padding-box; }
.search-box::before { content: ""; position: absolute; inset: 0; padding: 2.5px; pointer-events: none; border-radius: var(--radius); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; background: conic-gradient(from var(--ang, 0deg), var(--gold), #ff5fa8, var(--purple), var(--gold)); animation: rot 5s linear infinite; }
.search-box { background: rgba(255,255,255,.94); }
@property --ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes rot { to { --ang: 360deg; } }

/* Marquee ribbon */
.ribbon-strip { overflow: hidden; background: linear-gradient(90deg, var(--gold-d), var(--gold), var(--gold-d)); color: #3a2400; padding: .7rem 0; transform: rotate(-1.2deg); margin: 3rem -2% 0; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.marquee { display: flex; width: max-content; animation: marquee 32s linear infinite; }
.marquee span { padding: 0 1.6rem; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-weight: 700; font-size: 1.1rem; white-space: nowrap; }
.marquee span i { margin-right: .6rem; opacity: .7; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Dark premium photo marquee */
.gallery-dark { position: relative; margin-top: 4rem; padding: 4.5rem 0; color: #fff; overflow: hidden; background: radial-gradient(circle at 20% 0%, #5a1470, transparent 55%), linear-gradient(160deg, #1d0a35, #3b0d4c); }
.gallery-dark::before { content: ""; position: absolute; width: 520px; height: 520px; right: -150px; top: -150px; background: var(--mandala) center/contain no-repeat; opacity: .25; animation: spin 100s linear infinite; }
.photo-row { display: flex; gap: 1rem; width: max-content; margin-bottom: 1rem; animation: marquee 50s linear infinite; }
.photo-row.rev { animation-direction: reverse; animation-duration: 60s; }
.gallery-dark:hover .photo-row { animation-play-state: paused; }
.photo-row img { width: 260px; height: 180px; object-fit: cover; border-radius: 1rem; border: 2px solid rgba(245,184,46,.5); filter: saturate(1.1); transition: transform .4s; }
.photo-row img:hover { transform: scale(1.08) rotate(-1deg); }
.gallery-dark .sec-title h2 { color: #fff; }

/* 3D tilt + shine */
.tilt { transform-style: preserve-3d; will-change: transform; }
.tilt.glass-card:hover { transform: none; }
.tilt::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgba(255,255,255,.35), transparent 45%); opacity: 0; transition: opacity .3s; }
.tilt:hover::after { opacity: 1; }
.photog-card, .step, .pricing, .testi { position: relative; }

/* Step connector line + icon pulse */
.step .ico { animation: ringPulse 2.6s infinite; }
@keyframes ringPulse { 0% { box-shadow: 0 0 0 0 rgba(245,184,46,.55); } 70% { box-shadow: 0 0 0 18px rgba(245,184,46,0); } 100% { box-shadow: 0 0 0 0 rgba(245,184,46,0); } }

/* Animated gradient CTA + back-to-top */
.cta { background: linear-gradient(120deg, var(--magenta), var(--purple), #c0268a, var(--purple)); background-size: 300% 300%; animation: grad 10s ease infinite; }
@keyframes grad { 50% { background-position: 100% 50%; } }
#toTop { position: fixed; left: 1rem; bottom: 1rem; z-index: 1050; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--magenta); color: var(--gold); box-shadow: 0 6px 16px rgba(0,0,0,.3); opacity: 0; transform: translateY(20px); transition: .3s; }
#toTop.show { opacity: 1; transform: none; }

/* Section title shimmer */
.sec-title h2 { background: linear-gradient(90deg, var(--magenta-d), var(--magenta), var(--gold-d), var(--magenta)); background-size: 250% auto; -webkit-background-clip: text; background-clip: text; color: transparent; animation: textShine 6s linear infinite; }
.gallery-dark .sec-title h2 { background: linear-gradient(90deg, #fff, var(--gold), #fff); background-size: 250% auto; -webkit-background-clip: text; background-clip: text; color: transparent; }
@keyframes textShine { to { background-position: 250% center; } }

/* ================= NANCY STUDIO ADDITIONS ================= */
/* Brand lockup (logo + wordmark) */
.brand-lockup { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: #fff; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-weight: 700; font-size: 1.35rem; line-height: 1; }
.brand-lockup small { display: block; margin-top: .22rem; font-family: 'Poppins', sans-serif; font-size: .58rem; letter-spacing: .38em; text-transform: uppercase; color: var(--gold); font-weight: 500; }
.brand-lockup img { filter: drop-shadow(0 2px 6px rgba(0,0,0,.35)); transition: transform .6s; }
.brand-lockup:hover img { transform: rotate(60deg); }
.navbar .nav-link { color: rgba(255,255,255,.8); font-weight: 500; position: relative; }
.navbar .nav-link::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 0; height: 2px; background: var(--gold); transition: .3s; transform: translateX(-50%); }
.navbar .nav-link:hover, .navbar .nav-link.active { color: #fff; } .navbar .nav-link:hover::after, .navbar .nav-link.active::after { width: 60%; }
#preloader .logo-spin { width: 110px; height: 110px; margin-bottom: 1rem; animation: spin 2.4s cubic-bezier(.6,0,.4,1) infinite; filter: drop-shadow(0 0 18px rgba(245,184,46,.6)); }

/* Inner-page banner */
.page-hero { position: relative; color: #fff; padding: 4rem 0 5rem; overflow: hidden; isolation: isolate; background: linear-gradient(135deg, var(--magenta), var(--purple) 70%, #2b0f4d); }
.page-hero::before { content: ""; position: absolute; width: 420px; height: 420px; right: -100px; top: -150px; z-index: -1; opacity: .3; background: var(--mandala) center/contain no-repeat; animation: spin 90s linear infinite; }
.page-hero h1 { font-weight: 800; font-size: clamp(2rem, 6vw, 3.2rem); margin: .3rem 0; }
.page-hero small { letter-spacing: .3em; text-transform: uppercase; font-weight: 600; }
.page-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 40px; background: var(--cream); clip-path: ellipse(60% 100% at 50% 100%); }

/* Stats card overlapping the hero */
.stats-pull { margin-top: -4.4rem; position: relative; z-index: 6; }
.stats-pull .glass-card:hover { transform: none; }

/* About */
.about-frame { position: relative; border-radius: 2rem 6rem 2rem 6rem; overflow: hidden; box-shadow: var(--shadow); border: 6px solid #fff; background: linear-gradient(135deg, var(--magenta), var(--purple)); aspect-ratio: 4/5; }
.about-frame img { width: 100%; height: 100%; object-fit: cover; }
.badge-float { position: absolute; left: 1rem; bottom: 1rem; background: var(--gold); color: #3a2400; border-radius: 1rem; padding: .7rem 1rem; display: flex; align-items: center; gap: .6rem; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.badge-float b { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 2rem; line-height: 1; } .badge-float small { line-height: 1.1; font-size: .72rem; font-weight: 600; }
.ico-sm { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--magenta), var(--purple)); box-shadow: 0 0 0 4px rgba(245,184,46,.3); }

/* Filters */
.filters { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2rem; }
.pill { padding: .45rem 1.1rem; border-radius: 2rem; background: #fff; color: var(--magenta); border: 1.5px solid #ecd6e6; text-decoration: none; font-weight: 500; font-size: .9rem; transition: .25s; }
.pill:hover { border-color: var(--magenta); } .pill.active { background: linear-gradient(135deg, var(--magenta), var(--purple)); color: #fff; border-color: transparent; box-shadow: 0 6px 16px rgba(138,21,96,.3); }
.masonry .item.no-zoom { cursor: default; } .masonry .item.no-zoom::after { display: none; }

/* Booking customiser */
.no-lift:hover { transform: none; box-shadow: var(--shadow); }
.step-h { font-size: 1.25rem; display: flex; align-items: center; gap: .7rem; margin-bottom: 1.2rem; }
.step-h span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-family: 'Hind', sans-serif; font-weight: 700; font-size: 1rem; color: #3a2400; background: var(--gold); }
.choice { display: block; cursor: pointer; height: 100%; } .choice input { position: absolute; opacity: 0; }
.choice .box { display: block; height: 100%; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 2px solid #ecd6e6; transition: .25s; position: relative; }
.choice .box .price { float: right; font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-weight: 800; color: var(--magenta); }
.choice:hover .box { border-color: var(--magenta); transform: translateY(-2px); }
.choice input:checked + .box { border-color: var(--gold-d); background: linear-gradient(180deg, #fff, #fff4d9); box-shadow: 0 8px 22px rgba(217,154,11,.28); }
.choice input:checked + .box::after { content: "\f058"; font-family: 'Font Awesome 6 Free'; font-weight: 900; position: absolute; right: .8rem; bottom: .6rem; color: var(--gold-d); font-size: 1.2rem; }
.choice input:focus-visible + .box { outline: 3px solid var(--magenta); }
.addon-row { display: flex; align-items: center; gap: 1rem; padding: .85rem 1rem; border-radius: .9rem; border: 1.5px solid #f0e2ec; background: #fff; margin-bottom: .6rem; transition: .25s; }
.addon-row.on { border-color: var(--gold-d); background: #fff9e8; }
.addon-row .form-check-input { width: 1.4rem; height: 1.4rem; cursor: pointer; } .addon-row .form-check-input:checked { background-color: var(--magenta); border-color: var(--magenta); }
.qty { display: inline-flex; align-items: center; gap: .4rem; } .qty button { width: 28px; height: 28px; border-radius: 50%; border: 0; background: var(--magenta); color: #fff; line-height: 1; }
.qty input { width: 38px; text-align: center; border: 0; background: transparent; font-weight: 600; } .qty small { color: #8a7a92; }
.summary { position: sticky; top: 90px; border: 2px solid rgba(245,184,46,.6); }
.summary .total { font-family: 'Playfair Display', 'Noto Serif Devanagari', serif; font-size: 1.8rem; font-weight: 800; color: var(--magenta); }
@media (max-width: 575px) { .addon-row { flex-wrap: wrap; } .brand-lockup { font-size: 1.15rem; } }

/* ============ HINDI TYPOGRAPHY ============ */
h1, h2, h3, h4, .cat-tile span, .stat .num { line-height: 1.35; }
.hero h1 { line-height: 1.3; }
.sec-title small, .page-hero small { letter-spacing: .08em; text-transform: none; font-size: 1.05rem; }
.btn { font-weight: 600; }

/* ============ GRAPHICS & MOTION v3 ============ */
.blob.b3 { width: 180px; height: 180px; background: #7a5cff; top: 55%; left: 38%; animation-delay: -6s; opacity: .35; }
.sparkles { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.sparkles i { position: absolute; width: 10px; height: 10px; background: var(--gold); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); opacity: 0; animation: twinkle 3.2s ease-in-out infinite; }
@keyframes twinkle { 0%, 100% { opacity: 0; transform: scale(.4) rotate(0); } 50% { opacity: .95; transform: scale(1.5) rotate(90deg); } }
.live-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #3ddc84; margin-right: .35rem; box-shadow: 0 0 0 0 rgba(61,220,132,.7); animation: ping 1.8s infinite; }
@keyframes ping { 70% { box-shadow: 0 0 0 10px rgba(61,220,132,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,132,0); } }
.trust-row { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; justify-content: center; font-size: .92rem; opacity: .9; }
@media (min-width: 992px) { .trust-row { justify-content: flex-start; } }
.trust-row i { color: #3ddc84; margin-right: .3rem; }
.aperture { position: absolute; width: 440px; height: 440px; left: 50%; top: 50%; margin: -220px 0 0 -220px; animation: spin 40s linear infinite; pointer-events: none; }
.float-chip { position: absolute; z-index: 3; background: rgba(255,255,255,.95); color: var(--magenta); font-weight: 600; font-size: .9rem; padding: .45rem .9rem; border-radius: 2rem; box-shadow: 0 10px 26px rgba(0,0,0,.3); animation: float 6s ease-in-out infinite; }
.float-chip i { color: var(--gold-d); margin-right: .3rem; }
.float-chip.c1 { left: 2%; bottom: 14%; } .float-chip.c2 { right: 0; top: 6%; animation-delay: -3s; }
.scroll-cue { position: absolute; left: 50%; bottom: 74px; width: 24px; height: 38px; margin-left: -12px; border: 2px solid rgba(255,255,255,.6); border-radius: 14px; }
.scroll-cue span { position: absolute; left: 50%; top: 6px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--gold); animation: wheel 1.6s infinite; }
@keyframes wheel { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(14px); } }
.btn-shine { position: relative; overflow: hidden; }
.btn-shine::after { content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.65), transparent); transform: skewX(-20deg); animation: shine 3.6s ease-in-out infinite; }
@keyframes shine { 0%, 55% { left: -80%; } 100% { left: 140%; } }
.magnetic { transition: transform .2s ease, box-shadow .25s; }
.orn { display: flex; align-items: center; justify-content: center; gap: .8rem; color: var(--gold-d); margin-top: .4rem; }
.orn::before, .orn::after { content: ""; width: 70px; height: 2px; background: linear-gradient(90deg, transparent, var(--gold)); }
.orn::after { transform: scaleX(-1); }
.orn i { animation: bloom 4s ease-in-out infinite; }
@keyframes bloom { 50% { transform: scale(1.35) rotate(20deg); } }
.cat-tile img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.cat-tile:hover img { transform: scale(1.12); }
.cat-tile .go { position: absolute; z-index: 2; right: .9rem; bottom: .8rem; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-style: normal; background: var(--gold); color: #3a2400; opacity: 0; transform: translateX(-12px); transition: .35s; }
.cat-tile:hover .go { opacity: 1; transform: none; }
.steps-line { position: relative; }
@media (min-width: 768px) { .steps-line::before { content: ""; position: absolute; left: 18%; right: 18%; top: 78px; border-top: 3px dashed rgba(217,154,11,.6); z-index: 0; } .steps-line > div { position: relative; z-index: 1; } }
.faq .accordion-item { border: 0; margin-bottom: .8rem; border-radius: 1rem !important; overflow: hidden; box-shadow: var(--shadow); }
.faq .accordion-button { font-weight: 600; font-size: 1.05rem; background: #fff; }
.faq .accordion-button:not(.collapsed) { color: var(--magenta); background: #fff4d9; box-shadow: none; }
.faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(138,21,96,.15); }
.hero .btn-lg, .cta .btn-lg { animation: pulseGlow 2.8s ease-in-out infinite; }
@keyframes pulseGlow { 50% { box-shadow: 0 6px 30px rgba(245,184,46,.85); } }

/* Mobile quick-action bar: call / WhatsApp / book — easy one-thumb use */
.quick-bar { display: none; }
@media (max-width: 767.98px) {
  body { padding-bottom: 68px; }
  .quick-bar { display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 1060; background: linear-gradient(90deg, var(--magenta-d), var(--purple)); box-shadow: 0 -6px 24px rgba(0,0,0,.3); padding: .4rem .3rem calc(.4rem + env(safe-area-inset-bottom)); }
  .quick-bar a { color: #fff; text-decoration: none; text-align: center; font-size: .85rem; font-weight: 600; padding: .3rem 0; border-radius: .8rem; }
  .quick-bar a i { display: block; font-size: 1.35rem; margin-bottom: .1rem; }
  .quick-bar a.go { background: linear-gradient(135deg, #ffd45e, var(--gold)); color: #3a2400; margin: 0 .2rem; }
  .quick-bar a.wa i { color: #4ee57f; }
  .wa-float { display: none; }
  #toTop { bottom: 78px; }
}
/* Booking: easier steps on small screens */
@media (max-width: 991.98px) { .summary { position: static; } }
.choice .box { min-height: 100px; }
.addon-row { transition: background .25s, transform .2s; } .addon-row:active { transform: scale(.99); }
.form-control, .form-select { padding: .7rem .9rem; border-radius: .8rem; font-size: 1.05rem; }
.form-label { font-weight: 600; }
.btn-gold:focus-visible, .btn-ghost:focus-visible, a:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
/* Devanagari joins letters — never letter-space it */
.brand-lockup small, .hero .tag, .sec-title small, .page-hero small, .stat small, .badge-float small, .ribbon, .ribbon-strip span { letter-spacing: 0 !important; text-transform: none !important; }
.brand-lockup small { font-size: .78rem; }
