/* ============================================================
   Dr. R.P. Sharma — Vedic Astrologer
   Light theme — clean cream + gold + burgundy
   Inspired by BhagyaX minimalism
   ============================================================ */

:root {
  --bg: #f8f1e2;
  --bg-warm: #f0e3c8;
  --surface: #fdf8ec;
  --surface-alt: #f7edd6;

  --ink: #2c1a0e;
  --ink-soft: #5a3c24;
  --ink-mute: #8a6a4a;
  --ink-fade: #b5a078;

  --burgundy: #8b2138;
  --burgundy-deep: #6e1626;
  --gold: #bf8c34;
  --gold-light: #d4a85e;
  --gold-pale: #ecc878;

  --line: #d9b878;
  --line-soft: #ead3a8;
  --line-pale: rgba(191, 140, 52, 0.18);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 18px;
  line-height: 1.65;
  font-weight: 400;
  overflow-x: hidden;
  min-height: 100vh;
  position: relative;
  -webkit-font-smoothing: antialiased;
}

/* Very subtle radial accent (top) */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse 900px 500px at 50% -10%, rgba(232, 200, 122, 0.18), transparent 60%);
  pointer-events: none;
  z-index: 0;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  position: relative;
  z-index: 2;
}

/* ============================================================
   INTRO SPLASH — keeps dark contrast splash, transitions to light
   ============================================================ */
#intro {
  position: fixed; inset: 0;
  background: radial-gradient(ellipse at center, #fdf9ef 0%, #f8f1e2 72%);
  display: flex; align-items: center; justify-content: center; flex-direction: column;
  z-index: 99999;
  animation: intro-fade-out 0.9s ease-in 3.4s forwards;
}
.intro-mandala {
  position: absolute;
  width: min(700px, 90vw); height: min(700px, 90vw);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%23bf8c34' stroke-width='.6' opacity='.85'><circle cx='200' cy='200' r='180'/><circle cx='200' cy='200' r='150'/><circle cx='200' cy='200' r='120'/><circle cx='200' cy='200' r='90'/><circle cx='200' cy='200' r='60'/><circle cx='200' cy='200' r='30'/><path d='M200 20 L200 380 M20 200 L380 200 M58 58 L342 342 M58 342 L342 58 M100 35 L300 365 M300 35 L100 365 M35 100 L365 300 M35 300 L365 100'/></g></svg>");
  background-size: contain; background-position: center; background-repeat: no-repeat;
  opacity: 0;
  animation: intro-mandala-in 1.5s ease-out 0.3s forwards, intro-mandala-spin 30s linear infinite;
}
.intro-content { position: relative; text-align: center; z-index: 2; }
.intro-om {
  font-size: 54px; color: #bf8c34;
  text-shadow: 0 2px 22px rgba(191,140,52,.22);
  margin-bottom: 18px; font-family: 'Cormorant Garamond', serif; font-weight: 500;
  opacity: 0; animation: intro-line-in 0.9s ease-out 0.6s forwards;
}
.intro-eyebrow {
  font-family: 'Cinzel', serif; letter-spacing: 8px;
  color: #8b2138; font-size: 11px; font-weight: 500; margin-bottom: 22px;
  opacity: 0; animation: intro-line-in 0.9s ease-out 0.9s forwards;
}
.intro-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(36px,6vw,68px); font-weight: 500; letter-spacing: 1px;
  color: #2c1a0e; margin-bottom: 14px;
  opacity: 0; animation: intro-line-in 1.1s ease-out 1.3s forwards;
}
.intro-title .gold {
  background: linear-gradient(90deg,#8b2138,#bf8c34);
  background-clip: text; -webkit-background-clip: text;
  color: transparent; font-style: italic;
}
.intro-subtitle {
  font-family: 'Cinzel', serif; font-size: 12px; letter-spacing: 6px;
  color: #8b2138; text-transform: uppercase;
  opacity: 0; animation: intro-line-in 0.9s ease-out 1.9s forwards;
}
.intro-line {
  width: 0; height: 1px;
  background: linear-gradient(90deg,transparent,#bf8c34,transparent);
  margin: 28px auto 0;
  animation: intro-line-expand 1.2s ease-out 2.2s forwards;
}
@keyframes intro-mandala-in { to { opacity: .5; } }
@keyframes intro-mandala-spin { to { transform: rotate(360deg); } }
@keyframes intro-line-in { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes intro-line-expand { to { width: 240px; } }
@keyframes intro-fade-out { to { opacity: 0; visibility: hidden; } }
@keyframes shimmer { 0%{background-position:-100% 0} 100%{background-position:100% 0} }

body.intro-active { overflow: hidden; }
.site-content { opacity: 0; animation: site-fade-in 1s ease-out 3.6s forwards; }
@keyframes site-fade-in { to { opacity: 1; } }

/* ============================================================
   Navigation
   ============================================================ */
.nav {
  display: flex; justify-content: space-between; align-items: center;
  padding: 22px 6%;
  position: sticky; top: 0;
  background: rgba(253, 248, 238, 0.85);
  backdrop-filter: blur(14px);
  z-index: 100;
  border-bottom: 1px solid var(--line-pale);
}

.logo {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px; font-weight: 600;
  color: var(--burgundy);
}

.nav-links { display: flex; gap: 38px; }
.nav-links a {
  color: var(--ink-soft); font-size: 12px;
  font-family: 'Cinzel', serif; font-weight: 500;
  text-transform: uppercase; letter-spacing: 2px;
  transition: color .25s;
}
.nav-links a:hover { color: var(--burgundy); }

.nav-cta {
  border: 1px solid var(--burgundy);
  color: var(--burgundy) !important;
  padding: 10px 22px;
  letter-spacing: 1.5px;
  font-family: 'Cinzel', serif; font-size: 11px; font-weight: 500;
  transition: all .3s;
  background: transparent;
  text-transform: uppercase;
}
.nav-cta:hover { background: var(--burgundy); color: #fff !important; }

/* ============================================================
   Hero
   ============================================================ */
.hero { padding: 80px 0 100px; position: relative; }
.hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }

.eyebrow {
  font-family: 'Cinzel', serif; letter-spacing: 4px;
  color: var(--burgundy); font-size: 11px; font-weight: 600;
  margin-bottom: 28px; text-transform: uppercase;
}

h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(38px,5.8vw,72px); font-weight: 400;
  line-height: 1.02; letter-spacing: -0.8px;
  color: var(--ink); margin-bottom: 28px;
}
h1 .accent {
  background: linear-gradient(90deg,#8b1538,#c4925a);
  background-clip: text; -webkit-background-clip: text;
  color: transparent; font-style: italic; font-weight: 500;
}

/* Concept 02 — Candlelit Editorial: Fraunces italic headline (homepage only) */
.hero h1 {
  font-family: 'Fraunces', 'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
  font-size: clamp(36px, 5.6vw, 70px);
  line-height: 1.0; letter-spacing: -1px;
}
.hero h1 .accent {
  font-style: normal; font-weight: 600;
}

/* Rotating cosmic background — same mandala as splash, a touch faster (all pages) */
.cosmic-bg{position:fixed;inset:0;margin:auto;width:min(880px,95vmin);height:min(880px,95vmin);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%23b8842e' stroke-width='.6'><circle cx='200' cy='200' r='180'/><circle cx='200' cy='200' r='150'/><circle cx='200' cy='200' r='120'/><circle cx='200' cy='200' r='90'/><circle cx='200' cy='200' r='60'/><circle cx='200' cy='200' r='30'/><path d='M200 20 L200 380 M20 200 L380 200 M58 58 L342 342 M58 342 L342 58 M100 35 L300 365 M300 35 L100 365 M35 100 L365 300 M35 300 L365 100'/></g></svg>");background-size:contain;background-position:center;background-repeat:no-repeat;opacity:.12;z-index:0;pointer-events:none;animation:cosmic-spin 100s linear infinite}
@keyframes cosmic-spin {
  from { transform: translate(-50%,-50%) rotate(0deg); }
  to   { transform: translate(-50%,-50%) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .cosmic-bg { animation: none; }
}

.hero-sub {
  font-family: 'Spectral', serif;
  font-size: clamp(17px,1.5vw,20px);
  color: var(--ink-soft); max-width: 520px;
  margin-bottom: 32px; font-weight: 300; line-height: 1.75;
}

.trust-badge {
  display: inline-flex; align-items: center; gap: 12px;
  background: rgba(255,253,245,0.8); backdrop-filter: blur(8px);
  border: 1px solid var(--line-soft);
  color: var(--ink-soft);
  padding: 11px 22px; border-radius: 30px;
  font-family: 'Cinzel', serif; font-size: 11px;
  font-weight: 500; letter-spacing: 1.5px; margin-bottom: 36px;
}
.stars-rating { color: var(--gold); font-size: 13px; letter-spacing: 1px; }

.hero-buttons { display: flex; gap: 14px; flex-wrap: wrap; }

.btn {
  display: inline-block; padding: 16px 38px;
  font-family: 'Cinzel', serif; font-size: 12px; font-weight: 500;
  letter-spacing: 2px; transition: all .3s; cursor: pointer;
  border-radius: 2px; text-transform: uppercase;
}
.btn-primary {
  background: var(--burgundy); color: #fff; border: 1px solid var(--burgundy);
  box-shadow: 0 10px 28px rgba(139,21,56,.20);
}
.btn-primary:hover {
  background: var(--burgundy-deep);
  box-shadow: 0 14px 36px rgba(139,21,56,.30);
  transform: translateY(-1px);
}
.btn-ghost {
  border: 1px solid var(--burgundy); color: var(--burgundy);
  background: transparent;
}
.btn-ghost:hover { background: var(--burgundy); color: #fff; }

/* Photo */
.hero-photo { display: flex; justify-content: center; align-items: center; position: relative; }
.photo-frame { position: relative; width: 100%; max-width: 440px; }

/* Subtle gold ring behind photo */
.photo-frame::before {
  content: '';
  position: absolute; inset: -16px;
  border: 1px solid var(--line);
  border-radius: 6px; z-index: 0;
  transform: translate(12px, 12px);
}
/* Burgundy corner accent */
.photo-frame::after {
  content: '';
  position: absolute; top: -14px; left: -14px;
  width: 50px; height: 50px;
  border-top: 2px solid var(--burgundy);
  border-left: 2px solid var(--burgundy);
  z-index: 2;
}

.photo-frame img {
  width: 100%; border-radius: 4px;
  position: relative; z-index: 1;
  box-shadow:
    0 24px 50px -15px rgba(139,21,56,.18),
    0 8px 20px -10px rgba(44,24,16,.10);
}

.photo-caption {
  position: absolute; bottom: -28px; right: -16px;
  background: var(--burgundy); color: #fff;
  padding: 14px 22px; border-radius: 2px; z-index: 3;
  box-shadow: 0 16px 36px rgba(139,21,56,.30);
}
.caption-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px; font-weight: 600; letter-spacing: .3px; margin-bottom: 2px;
}
.caption-title {
  font-family: 'Cinzel', serif; font-size: 10px;
  letter-spacing: 2px; color: var(--gold-pale); font-weight: 400;
}

/* ============================================================
   Sections
   ============================================================ */
section.about, section.services, section.contact, section.stats {
  padding: 110px 0; position: relative;
}
section.about {
  background: transparent;
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
section.services { background: transparent; }

.section-label {
  font-family: 'Cinzel', serif; letter-spacing: 5px;
  color: var(--burgundy); font-size: 11px; font-weight: 600;
  margin-bottom: 18px; text-transform: uppercase;
}
.centered { text-align: center; }

h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(32px,4.4vw,56px); font-weight: 400;
  line-height: 1.08; letter-spacing: -.5px;
  color: var(--ink); margin-bottom: 40px;
}
h2 em {
  background: linear-gradient(90deg,#8b1538,#c4925a);
  background-clip: text; -webkit-background-clip: text;
  color: transparent; font-style: italic; font-weight: 500;
}

/* About */
.about-inner { max-width: 900px; text-align: left; }
.about-inner .section-label { text-align: left; }
.about-text {
  font-family: 'Spectral', serif;
  font-size: 21px; color: var(--ink-soft);
  line-height: 1.85; font-weight: 300;
  margin-bottom: 56px; max-width: 780px;
}
.about-stats {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 28px;
  padding-top: 48px; border-top: 1px solid var(--line-soft);
}
.stat { display: flex; flex-direction: column; gap: 8px; }
.stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 52px; font-weight: 500;
  color: var(--burgundy);
  line-height: 1; font-style: italic;
}
.stat-num.wordy { font-size: clamp(22px, 2.8vw, 32px); }
.stat-label {
  font-family: 'Cinzel', serif; font-size: 11px;
  letter-spacing: 2.5px; color: var(--ink-mute); text-transform: uppercase;
}

/* Services */
.services .section-label, .services h2, .contact .section-label, .contact h2 { text-align: center; }
.services-grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 24px;
  margin-top: 60px;
}
.service-card {
  background: transparent;
  border: 1px solid var(--line-soft);
  padding: 44px 28px; transition: all .4s ease;
  border-radius: 4px;
}
.service-card:hover {
  border-color: var(--gold);
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -20px rgba(139,21,56,.18);
}
.service-num {
  font-family: 'Cormorant Garamond', serif; font-style: italic;
  font-size: 14px; color: var(--gold); letter-spacing: 2px;
  margin-bottom: 32px; font-weight: 500;
}
.service-card h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px; font-weight: 500; color: var(--ink);
  margin-bottom: 16px; letter-spacing: -.3px;
}
.service-card p {
  font-family: 'Spectral', serif; color: var(--ink-soft);
  font-size: 15px; line-height: 1.7; font-weight: 300;
}

/* Contact */
.contact-sub {
  font-family: 'Spectral', serif; text-align: center;
  color: var(--ink-soft); font-size: 19px; font-weight: 300;
  margin-bottom: 60px; max-width: 580px; margin-left: auto; margin-right: auto;
}
.contact-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 22px;
  max-width: 1020px; margin: 0 auto;
}
.contact-card {
  background: transparent; border: 1px solid var(--line-soft);
  padding: 42px 28px; text-align: center; transition: all .35s;
  display: block; border-radius: 4px;
}
a.contact-card:hover {
  border-color: var(--burgundy);
  transform: translateY(-3px);
  box-shadow: 0 16px 36px -20px rgba(139,21,56,.20);
}
.contact-label {
  font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: 3px;
  color: var(--burgundy); margin-bottom: 16px; font-weight: 600; text-transform: uppercase;
}
.contact-value {
  font-family: 'Cormorant Garamond', serif; font-size: 19px;
  color: var(--ink); line-height: 1.5;
}

/* Footer */
.footer {
  background: transparent; padding: 80px 0 36px;
  border-top: 1px solid var(--line-soft);
  position: relative; z-index: 2;
}
.footer-inner { text-align: center; }
.footer-logo {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px; font-weight: 600; color: var(--burgundy);
  margin-bottom: 8px;
}
.footer-tagline {
  font-family: 'Cinzel', serif; font-size: 10px;
  color: var(--ink-mute); letter-spacing: 4px;
  margin-bottom: 32px; text-transform: uppercase;
}
.footer-social { display: flex; justify-content: center; gap: 36px; margin-bottom: 32px; }
.footer-social a {
  font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: 2.5px;
  color: var(--ink-soft); transition: color .25s; text-transform: uppercase;
}
.footer-social a:hover { color: var(--burgundy); }
.footer-copy { font-family: 'Spectral', serif; color: var(--ink-mute); font-size: 13px; font-weight: 300; }

/* Footer nav */
.footer-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 28px; margin-bottom: 26px; }
.footer-nav a {
  font-family: 'Cinzel', serif; font-size: 11px; letter-spacing: 2px;
  color: var(--ink-soft); transition: color .25s; text-transform: uppercase;
}
.footer-nav a:hover { color: var(--burgundy); }

/* Centered single CTA (booking section) */
.cta-center { display: flex; justify-content: center; margin-top: 8px; }

/* Floating WhatsApp */
.whatsapp-float {
  position: fixed; bottom: 24px; right: 24px;
  width: 58px; height: 58px; background: #25d366;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(37,211,102,.45);
  z-index: 999; transition: transform .25s;
}
.whatsapp-float:hover { transform: scale(1.08); }

/* Floating Book Now (PhonePe) — stacked above WhatsApp */
.book-float {
  position: fixed; right: 24px; bottom: 92px;
  width: 58px; height: 58px; border-radius: 50%;
  background: linear-gradient(135deg, var(--burgundy), var(--burgundy-deep));
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(139,33,56,.45);
  z-index: 999; transition: transform .25s;
}
.book-float:hover { transform: scale(1.08); }
.book-float-label {
  position: absolute; right: 70px; top: 50%; transform: translateY(-50%);
  background: var(--ink); color: #fff;
  font-family: 'Cinzel', serif; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
  padding: 7px 12px; border-radius: 4px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .25s;
}
.book-float:hover .book-float-label { opacity: 1; }

::selection { background: var(--burgundy); color: #fff; }

/* ============================================================
   RESPONSIVE — perfect fit phone + laptop
   ============================================================ */

/* Never allow horizontal scroll, never let media overflow */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; }
* { min-width: 0; }

/* Anchored sections clear the sticky header when jumped to */
section[id] { scroll-margin-top: 84px; }

/* Large desktop cap */
@media (min-width: 1440px) {
  .container { max-width: 1240px; }
}

/* Laptop / small desktop — tighten hero so two columns always fit */
@media (max-width: 1180px) {
  .hero-grid { gap: 54px; }
  .hero { padding: 64px 0 84px; }
  .photo-frame { max-width: 400px; }
  .nav-links { gap: 26px; }
  .nav { padding: 20px 5%; }
}

/* Tablet */
@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; gap: 56px; }
  .hero-photo { order: -1; }
  .hero-text { text-align: center; }
  .hero-text .trust-badge { justify-content: center; }
  .hero-buttons { justify-content: center; }
  .photo-frame { max-width: 360px; margin: 0 auto; }
  .services-grid { grid-template-columns: repeat(2,1fr); }
  .contact-grid { grid-template-columns: 1fr; max-width: 480px; }
  .about-stats { grid-template-columns: repeat(3,1fr); gap: 24px; padding-top: 36px; }
}

/* Phone */
@media (max-width: 640px) {
  body { font-size: 16px; }
  .container { padding: 0 20px; }
  .nav { padding: 14px 20px; }
  .nav-links { display: none; }
  .logo { font-size: 19px; }
  .nav-cta { padding: 8px 16px; font-size: 11px; letter-spacing: 1px; }
  .hero { padding: 36px 0 56px; }
  h1 { font-size: clamp(32px, 9vw, 46px); }
  .hero-sub { font-size: 16px; }
  .hero-buttons { width: 100%; flex-direction: column; gap: 12px; }
  .btn { width: 100%; text-align: center; padding: 15px 24px; }
  .trust-badge { font-size: 10px; padding: 9px 16px; }
  section.about, section.services, section.contact, section.stats { padding: 60px 0; }
  .services-grid { grid-template-columns: 1fr; gap: 16px; }
  .service-card { padding: 32px 24px; }
  .photo-frame { max-width: min(86vw, 360px); }
  .photo-caption { right: 50%; transform: translateX(50%); bottom: -20px; padding: 11px 20px; text-align: center; }
  .caption-name { font-size: 16px; }
  .about-stats { grid-template-columns: 1fr; gap: 26px; }
  .stat { align-items: center; text-align: center; }
  .stat-num { font-size: 40px; }
  .footer { padding: 56px 0 30px; }
  .footer-nav { gap: 18px; }
  /* Splash fits any phone */
  .intro-om { font-size: 40px; }
  .intro-title { font-size: clamp(30px, 9vw, 46px); }
  .intro-mandala { width: 86vw; height: 86vw; }
  .intro-subtitle { font-size: 10px; letter-spacing: 4px; }
  /* Stacked stickies a touch smaller, stay clear of edges */
  .whatsapp-float { width: 52px; height: 52px; bottom: 18px; right: 18px; }
  .book-float { width: 52px; height: 52px; bottom: 80px; right: 18px; }
}

/* Very small phones */
@media (max-width: 360px) {
  .container { padding: 0 16px; }
  h1 { font-size: 30px; }
  .intro-title { font-size: 28px; }
  .logo { font-size: 17px; }
}

/* Short landscape screens — keep splash centered, not clipped */
@media (max-height: 560px) {
  .intro-mandala { width: 64vh; height: 64vh; }
}

/* ============================================================
   RICH ENHANCEMENTS  (pure presentation — no content changes)
   Layer order: cosmic-bg (z0) < grain (z1) < site content (z2)
   ============================================================ */
.site-content { position: relative; z-index: 2; }

/* Film-grain / paper texture — subtle, sits behind content */
body::after {
  content: ""; position: fixed; inset: 0; z-index: 1;
  pointer-events: none; opacity: .04; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

/* Scroll-reveal */
.reveal { opacity: 0; transform: translateY(26px);
  transition: opacity .85s cubic-bezier(.2,.7,.3,1), transform .85s cubic-bezier(.2,.7,.3,1); }
.reveal.in { opacity: 1; transform: none; }

/* Hero headline — slow gold shimmer sweep on the accent word */
.hero h1 .accent {
  background: linear-gradient(100deg,#bf8c34 0%,#d4a85e 18%,#f5d36b 34%,#ecc878 50%,#bf8c34 66%,#d4a85e 100%);
  background-size: 250% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: foil-sweep 7s ease-in-out infinite;
}
@keyframes foil-sweep { 0%{background-position:120% 0} 50%{background-position:-20% 0} 100%{background-position:120% 0} }

/* Gold-foil section numbers */
.service-num {
  background: linear-gradient(135deg,#d4a85e,#f5d36b 45%,#bf8c34);
  -webkit-background-clip: text; background-clip: text; color: transparent; opacity: 1;
}

/* Ken Burns hero photo (clipped wrapper) */
.photo-clip { position: relative; z-index: 1; overflow: hidden; border-radius: 4px;
  box-shadow: 0 24px 50px -15px rgba(139,21,56,.18), 0 8px 20px -10px rgba(44,24,16,.10); }
.photo-clip img { display: block; width: 100%; box-shadow: none;
  animation: kenburns 24s ease-in-out infinite alternate; }
@keyframes kenburns { from{transform:scale(1.001)} to{transform:scale(1.07)} }

/* Hero portrait gold halo */
.hero-photo::before {
  content: ""; position: absolute; top: -8%; left: -8%; width: 116%; height: 116%;
  background: radial-gradient(circle at 50% 45%, rgba(212,168,94,.30), rgba(212,168,94,.10) 42%, transparent 68%);
  filter: blur(10px); z-index: 0; pointer-events: none;
}

/* Animated gold underlines on links */
.nav-links a, .footer-nav a, .footer-social a { position: relative; }
.nav-links a::after, .footer-nav a::after, .footer-social a::after {
  content: ""; position: absolute; left: 0; bottom: -3px; width: 100%; height: 1px;
  background: linear-gradient(90deg,var(--gold),var(--gold-light));
  transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.3,1);
}
.nav-links a:hover::after, .footer-nav a:hover::after, .footer-social a:hover::after { transform: scaleX(1); }

/* Refined button sheen */
.btn-primary { position: relative; overflow: hidden; }
.btn-primary::before {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.28), transparent);
  transform: skewX(-18deg); transition: left .6s ease; pointer-events: none;
}
.btn-primary:hover::before { left: 130%; }

/* Celestial diamond ornament on section top edges */
section.about::before, section.services::before, section.contact::before {
  content: ""; position: absolute; top: -5px; left: 50%; margin-left: -5px;
  width: 10px; height: 10px; transform: rotate(45deg);
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  box-shadow: 0 0 0 5px var(--bg), 0 0 14px rgba(191,140,52,.5);
}

/* Card hover refinement (cards stay transparent so mandala shows) */
.service-card { border-radius: 4px; }
.service-card:hover {
  border-color: var(--gold-light);
  box-shadow: 0 20px 44px -22px rgba(139,21,56,.30), 0 6px 16px -10px rgba(44,24,16,.12);
  transform: translateY(-4px);
}

/* Footer top gold divider + star ornament */
.footer { position: relative; }
.footer::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: min(680px, 80%); height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-light), transparent);
}
.footer::after {
  content: "\2726"; position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
  color: var(--gold); font-size: 14px; background: var(--bg); padding: 0 10px;
}

/* Trust badge stars — gold foil */
.stars-rating { background: linear-gradient(90deg,#d4a85e,#f5d36b,#bf8c34);
  -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Reduced motion: disable decorative motion */
@media (prefers-reduced-motion: reduce) {
  .hero h1 .accent { animation: none; }
  .photo-clip img { animation: none; transform: none; }
  .btn-primary::before { display: none; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Premium browser chrome + long brand name */
html { background: #f8f1e2; }
:root { color-scheme: light; }
.logo { line-height: 1.12; }
@media (max-width: 600px){ .logo { font-size: 15px; } }

/* Floating Review on Google — stacked above Book Now */
.review-float {
  position: fixed; right: 24px; bottom: 160px;
  width: 58px; height: 58px; border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(191,140,52,.5);
  z-index: 999; transition: transform .25s;
}
.review-float:hover { transform: scale(1.08); }
.review-float-label {
  position: absolute; right: 70px; top: 50%; transform: translateY(-50%);
  background: var(--ink); color: #fff;
  font-family: 'Cinzel', serif; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
  padding: 7px 12px; border-radius: 4px; white-space: nowrap;
  opacity: 0; pointer-events: none; transition: opacity .25s;
}
.review-float:hover .review-float-label { opacity: 1; }

/* ============================================================
   FAB — floating contact speed-dial (replaces stacked floats)
   ============================================================ */
.fab{position:fixed;right:24px;bottom:24px;width:60px;height:60px;z-index:999}
.fab-toggle{position:absolute;right:0;bottom:0;width:60px;height:60px;border-radius:50%;
  background:linear-gradient(135deg,#3a1420,#1a0e08);border:1px solid rgba(232,200,122,.5);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 14px 34px -8px rgba(44,24,16,.55);transition:transform .3s}
.fab-toggle:hover{transform:scale(1.05)}
.fab-plus{transition:transform .35s cubic-bezier(.2,.8,.3,1.2)}
.fab.open .fab-plus{transform:rotate(135deg)}
.fab-action{position:absolute;right:5px;bottom:5px;width:50px;height:50px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px -8px rgba(44,24,16,.5);
  opacity:0;transform:translateY(8px) scale(.5);pointer-events:none;
  transition:transform .32s cubic-bezier(.2,.8,.3,1.2),opacity .25s}
.fab.open .fab-action{opacity:1;pointer-events:auto}
.fab-review{background:linear-gradient(135deg,var(--gold),var(--gold-light))}
.fab-book{background:linear-gradient(135deg,var(--burgundy),var(--burgundy-deep))}
.fab-wa{background:#25d366}
.fab.open .fab-wa{transform:translateY(-70px) scale(1);transition-delay:.02s}
.fab.open .fab-book{transform:translateY(-136px) scale(1);transition-delay:.06s}
.fab.open .fab-review{transform:translateY(-202px) scale(1);transition-delay:.10s}
.fab-label{position:absolute;right:62px;top:50%;transform:translateY(-50%);
  background:var(--ink);color:#fff;font-family:'Cinzel',serif;font-size:10px;letter-spacing:1.3px;
  text-transform:uppercase;padding:7px 12px;border-radius:5px;white-space:nowrap;
  opacity:0;transition:opacity .2s;box-shadow:0 6px 16px -6px rgba(0,0,0,.4)}
.fab.open .fab-label{opacity:1}

/* ============================================================
   FX — premium motion (cursor, progress, page-fade, hero stars)
   ============================================================ */
.hero-grid{position:relative;z-index:1}
.hero-stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.5;z-index:0}

#pageFade{position:fixed;inset:0;background:#f8f1e2;z-index:99998;opacity:1;pointer-events:none;transition:opacity .5s ease;animation:pf-failsafe .01s linear 2200ms forwards}
@keyframes pf-failsafe{to{opacity:0}}
html.pf-ready #pageFade{opacity:0;animation:none}
body.fade-out #pageFade{opacity:1;transition:opacity .34s ease;animation:none}

#scrollBar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),var(--burgundy));z-index:100001;pointer-events:none}

.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;z-index:100000;transform:translate(-50%,-50%)}
.cursor-dot{width:6px;height:6px;background:var(--gold)}
.cursor-ring{width:32px;height:32px;border:1px solid rgba(191,140,52,.55);transition:width .18s ease,height .18s ease,border-color .18s ease}
.cursor-ring.is-hover{width:46px;height:46px;border-color:rgba(139,33,56,.6)}

@media (hover:none),(pointer:coarse){ .cursor-dot,.cursor-ring{display:none} }
@media (prefers-reduced-motion: reduce){
  #pageFade{animation:none;opacity:0}
  .cursor-dot,.cursor-ring{display:none}
  .hero-stars{display:none}
}


/* ============================================================
   LOCATIONS — city pages + hub directory
   ============================================================ */
.loc-hero{padding:96px 0 38px;text-align:center;position:relative}
.loc-hero .eyebrow{display:flex;justify-content:center}
.loc-hero h1{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(34px,5.2vw,60px);line-height:1.05;margin-bottom:16px;color:var(--ink)}
.loc-hero h1 em,.loc-h2 em{font-style:italic;color:var(--burgundy)}
.loc-hero .lead{font-family:'Spectral',serif;font-weight:300;font-size:19px;color:var(--ink-soft);max-width:690px;margin:0 auto 24px;line-height:1.75}
.loc-sec{padding:26px 0}
.loc-h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(26px,3.4vw,40px);color:var(--ink);margin:6px 0 8px;line-height:1.1}
.loc-prose{max-width:760px;margin:0 auto}
.loc-prose p{font-family:'Spectral',serif;font-weight:300;font-size:17.5px;line-height:1.85;color:var(--ink-soft);margin-bottom:16px}
.loc-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:920px;margin:22px auto 0}
.loc-card{border:1px solid var(--line-soft);border-radius:10px;padding:22px 24px;background:rgba(253,248,236,.5)}
.loc-card h3{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;color:var(--burgundy);margin-bottom:7px}
.loc-card p{font-family:'Spectral',serif;font-weight:300;font-size:15.5px;line-height:1.7;color:var(--ink-soft)}
.loc-areas{max-width:820px;margin:16px auto 0;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.loc-areas span{font-family:'Cinzel',serif;font-size:11px;letter-spacing:1px;color:var(--ink-soft);border:1px solid var(--line-soft);border-radius:24px;padding:8px 15px}
.loc-faq{max-width:760px;margin:0 auto}
.loc-faq details{border-bottom:1px solid var(--line-soft);padding:16px 0}
.loc-faq summary{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--ink);cursor:pointer;list-style:none}
.loc-faq summary::-webkit-details-marker{display:none}
.loc-faq summary::before{content:"\2726";color:var(--gold);margin-right:10px;font-size:13px}
.loc-faq p{font-family:'Spectral',serif;font-weight:300;font-size:16.5px;line-height:1.8;color:var(--ink-soft);margin-top:10px}
.loc-cta{text-align:center;padding:44px 0 16px}
.loc-near{max-width:760px;margin:24px auto 0;text-align:center;font-family:'Spectral',serif;font-size:15px;color:var(--ink-mute)}
.loc-near a{color:var(--burgundy);border-bottom:1px solid var(--gold-light)}
.loc-dir{max-width:1000px;margin:0 auto;padding:6px 24px}
.loc-region{margin-bottom:26px;border-top:1px solid var(--line-soft);padding-top:20px}
.loc-region:first-child{border-top:none}
.loc-region h3{font-family:'Cinzel',serif;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--burgundy);margin-bottom:5px}
.loc-region .rsub{font-family:'Spectral',serif;font-weight:300;font-size:14.5px;color:var(--ink-mute);margin-bottom:12px}
.loc-list{display:flex;flex-wrap:wrap;gap:9px}
.loc-list a{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink-soft);border:1px solid var(--line-soft);border-radius:24px;padding:7px 15px;transition:all .25s;background:rgba(253,248,236,.4)}
.loc-list a:hover{border-color:var(--gold);color:var(--burgundy);transform:translateY(-1px)}
.loc-list a.has-page{color:var(--burgundy);border-color:var(--gold-light);font-weight:600}
@media(max-width:760px){ .loc-cards{grid-template-columns:1fr} .loc-hero{padding:64px 0 26px} }
/* LOCATIONS */