/*
Theme Name: Baba Ganesh Astrology
Theme URI: https://astrologerbabaganesh.com
Author: Baba Ganesh Astrology Center
Author URI: https://astrologerbabaganesh.com
Description: A fully editable, mystical astrology theme for Baba Ganesh, ported from the original Lovable.dev design. Includes Custom Post Types for Cities and Services, a comprehensive Customizer, and pre-seeded default content. All copy, contacts, logo, colors, and section content are editable from the WordPress admin.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPL v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: baba-ganesh
Tags: astrology, spiritual, custom-colors, custom-logo, custom-menu, featured-images, full-width-template, threaded-comments
*/

/* ==========================================================================
   Design tokens (mirror of the original HSL spiritual palette)
   ========================================================================== */
:root{
  --background: 240 15% 8%;
  --foreground: 40 100% 85%;
  --card: 240 20% 12%;
  --card-foreground: 40 100% 85%;
  --muted: 240 15% 15%;
  --muted-foreground: 40 50% 70%;
  --border: 240 20% 20%;
  --input: 240 20% 15%;
  --primary: 270 80% 35%;
  --primary-foreground: 40 100% 95%;
  --secondary: 45 100% 50%;
  --cosmic-purple: 270 80% 35%;
  --mystic-gold: 45 100% 50%;
  --deep-indigo: 240 100% 25%;
  --star-light: 40 100% 85%;
  --chakra-glow: 270 60% 60%;
  --accent: 240 100% 70%;
  --gradient-cosmic: linear-gradient(135deg, hsl(270 80% 35%), hsl(240 100% 70%));
  --gradient-mystic: linear-gradient(135deg, hsl(45 100% 50%), hsl(30 100% 60%));
  --gradient-chakra: linear-gradient(45deg, hsl(270 80% 35%) 0%, hsl(240 100% 70%) 35%, hsl(45 100% 50%) 100%);
  --gradient-hero: linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.5));
  --shadow-cosmic: 0 20px 60px -10px hsl(270 80% 35% / 0.4);
  --shadow-mystic: 0 10px 30px -5px hsl(45 100% 50% / 0.3);
  --glow-chakra: 0 0 40px hsl(270 60% 60% / 0.6);
  --radius: 0.5rem;
  --container: 1280px;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none;transition:color .3s ease}
button{font:inherit;cursor:pointer}
h1,h2,h3,h4,h5,h6{font-family:'Cinzel',serif;line-height:1.2;margin:0 0 .5em}

/* ==========================================================================
   Layout
   ========================================================================== */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 2rem}
.section{padding:5rem 0}
.section-narrow{max-width:64rem;margin:0 auto}
main{padding-top:64px}

/* ==========================================================================
   Typography helpers
   ========================================================================== */
.font-mystical{font-family:'Cinzel',serif;font-weight:700}
.font-cosmic{font-family:'Inter',sans-serif}
.text-gradient-cosmic{
  background:var(--gradient-cosmic);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.text-gradient-mystic{
  background:var(--gradient-mystic);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.text-mystic-gold{color:hsl(var(--mystic-gold))}
.text-chakra-glow{color:hsl(var(--chakra-glow))}
.text-deep-indigo{color:hsl(var(--deep-indigo))}
.text-muted{color:hsl(var(--muted-foreground))}
.text-foreground-70{color:hsla(var(--foreground)/.7)}
.text-foreground-80{color:hsla(var(--foreground)/.8)}
.text-foreground-60{color:hsla(var(--foreground)/.6)}
.section-title{text-align:center;margin-bottom:4rem}
.section-title h2{
  font-size:clamp(2rem,4vw,3rem);
  margin-bottom:1.5rem;
  background:var(--gradient-cosmic);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.section-title .divider{width:6rem;height:4px;background:var(--gradient-mystic);margin:0 auto 1.5rem;border-radius:2px}
.section-title p{font-size:1.125rem;color:hsl(var(--muted-foreground));max-width:48rem;margin:0 auto;line-height:1.7}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.625rem 1.25rem;border-radius:var(--radius);
  font-weight:600;font-size:.95rem;
  border:0;cursor:pointer;text-decoration:none;
  transition:all .35s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;
}
.btn-cosmic{background:var(--gradient-cosmic);color:hsl(var(--primary-foreground))}
.btn-cosmic:hover{box-shadow:var(--shadow-cosmic);transform:translateY(-1px)}
.btn-outline{
  background:transparent;color:hsl(var(--mystic-gold));
  border:1px solid hsla(var(--mystic-gold)/.3);
}
.btn-outline:hover{background:hsla(var(--mystic-gold)/.1);border-color:hsl(var(--mystic-gold))}
.btn-lg{padding:.875rem 1.75rem;font-size:1.1rem}
.btn-block{width:100%}

/* ==========================================================================
   Cards
   ========================================================================== */
.card{
  background:hsla(var(--card)/.5);
  border:1px solid hsla(var(--border)/.3);
  border-radius:var(--radius);
  overflow:hidden;
  transition:all .5s cubic-bezier(.4,0,.2,1);
}
.card:hover{border-color:hsla(var(--mystic-gold)/.5);box-shadow:var(--shadow-cosmic);transform:translateY(-.5rem)}
.card-inner{padding:2rem}
.card-flat{background:hsla(var(--card)/.3);border-color:hsla(var(--border)/.2)}

/* ==========================================================================
   Navigation
   ========================================================================== */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:hsla(var(--card)/.95);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid hsla(var(--border)/.2);
}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.site-logo img{height:48px;width:auto;transition:opacity .3s}
.site-logo:hover img{opacity:.8}
.primary-nav{display:flex;align-items:center;gap:1.5rem}
.primary-nav>ul{list-style:none;display:flex;align-items:center;gap:1.5rem;margin:0;padding:0}
.primary-nav a{
  padding:.5rem .75rem;font-size:.875rem;font-weight:500;
  color:hsla(var(--foreground)/.8);transition:color .3s;
}
.primary-nav a:hover,.primary-nav a.active,.primary-nav .current-menu-item>a{color:hsl(var(--mystic-gold))}
.primary-nav .menu-item-has-children,.primary-nav .has-submenu{position:relative}
.primary-nav>ul>li{position:relative}
.has-submenu>a::after,.menu-item-has-children>a::after{
  content:"";display:inline-block;width:.5em;height:.5em;margin-left:.4em;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .2s;
}
.submenu,.sub-menu{
  position:absolute;top:100%;left:0;
  min-width:240px;padding:.5rem;margin:0;list-style:none;
  background:hsla(var(--card)/.98);backdrop-filter:blur(12px);
  border:1px solid hsla(var(--border)/.3);border-radius:var(--radius);
  box-shadow:0 10px 40px rgba(0,0,0,.4);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s;
}
.submenu.wide,.has-submenu.wide .submenu{min-width:380px;display:grid;grid-template-columns:1fr 1fr;gap:.25rem}
.has-submenu:hover>.submenu,.menu-item-has-children:hover>.sub-menu,
.has-submenu:focus-within>.submenu,.menu-item-has-children:focus-within>.sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.submenu li,.sub-menu li{list-style:none}
.submenu a,.sub-menu a{display:block;padding:.5rem .75rem;border-radius:6px;font-size:.875rem}
.submenu a:hover,.sub-menu a:hover{background:hsla(var(--muted)/1);color:hsl(var(--mystic-gold))}
.nav-cta{margin-left:1rem}
.menu-toggle{
  display:none;background:transparent;border:0;color:hsl(var(--foreground));padding:.5rem;
}
.menu-toggle svg{width:24px;height:24px}
.mobile-nav{display:none}

@media (max-width:900px){
  .primary-nav{display:none}
  .nav-cta{display:none}
  .menu-toggle{display:inline-flex}
  .mobile-nav.open{
    display:block;
    background:hsla(var(--card)/.98);
    border-top:1px solid hsla(var(--border)/.2);
    padding:1rem 0;
  }
  .mobile-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}
  .mobile-nav a{display:block;padding:.625rem 1rem;font-size:.95rem;color:hsla(var(--foreground)/.8)}
  .mobile-nav a:hover,.mobile-nav .current-menu-item>a{color:hsl(var(--mystic-gold));background:hsla(var(--mystic-gold)/.08);border-left:2px solid hsl(var(--mystic-gold))}
  .mobile-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;background:transparent;padding:0 0 0 1rem;box-shadow:none;display:block}
  .mobile-nav .menu-item-has-children>a::after{display:none}
  .mobile-cta{padding:1rem;display:block}
  .mobile-cta .btn{width:100%}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;text-align:center;
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:var(--gradient-hero)}
.hero-bg-overlay{position:absolute;inset:0;background:hsla(270 80% 35%/.2)}
.chakra-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;z-index:1;
}
.chakra-overlay::after{
  content:"";width:24rem;height:24rem;border-radius:50%;
  background:var(--gradient-chakra);opacity:.3;filter:blur(2px);
  animation:rotate-chakra 20s linear infinite;
}
.stars{position:absolute;inset:0;pointer-events:none;z-index:1}
.star{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:hsl(var(--star-light));opacity:.6;
  animation:float-stars 3s ease-in-out infinite;
}
.hero-content{position:relative;z-index:2;width:100%}
.hero-title{
  font-size:clamp(3rem,7vw,5.5rem);font-weight:700;margin-bottom:1.5rem;
  background:var(--gradient-mystic);-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:pulse-glow 2s ease-in-out infinite;
}
.hero-tagline{font-size:clamp(1.125rem,2vw,1.5rem);color:hsla(var(--star-light)/.9);margin-bottom:1rem}
.hero-sub{font-size:1.125rem;color:hsla(var(--star-light)/.7);max-width:42rem;margin:0 auto 3rem}
.hero-card{
  position:relative;max-width:42rem;margin:0 auto;
  background:linear-gradient(135deg,hsla(var(--card)/.95),hsla(var(--card)/.9));
  backdrop-filter:blur(20px);
  border:2px solid hsla(var(--mystic-gold)/.3);
  border-radius:var(--radius);
  box-shadow:var(--shadow-cosmic);
  overflow:hidden;
}
.hero-card::before{
  content:"";position:absolute;inset:0;background:var(--gradient-cosmic);
  opacity:.1;animation:pulse-glow 2s ease-in-out infinite;pointer-events:none;
}
.hero-card-inner{padding:2.5rem;position:relative;z-index:1}
.hero-card h2{
  font-size:1.875rem;margin-bottom:.75rem;
  background:var(--gradient-mystic);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-card-sub{color:hsla(var(--star-light)/.8);font-weight:500}
.hero-card-divider{width:6rem;height:4px;margin:1rem auto 2rem;background:var(--gradient-cosmic);border-radius:2px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
.field label{
  display:block;text-align:left;
  font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:hsl(var(--mystic-gold));margin-bottom:.5rem;
}
.field input,.field select,.field textarea{
  width:100%;height:3rem;padding:.5rem .75rem;
  background:linear-gradient(to right,hsla(var(--input)/.6),hsla(var(--input)/.4));
  border:2px solid hsla(var(--cosmic-purple)/.3);
  border-radius:var(--radius);color:hsl(var(--foreground));
  transition:border-color .3s;font-size:.95rem;
}
.field textarea{height:auto;min-height:6rem;padding:.75rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:hsla(var(--mystic-gold)/.6);box-shadow:var(--shadow-mystic)}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,hsl(var(--mystic-gold)) 50%),linear-gradient(135deg,hsl(var(--mystic-gold)) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2.5rem}
.hero-submit{
  margin-top:2.5rem;
  background:linear-gradient(to right,hsl(var(--cosmic-purple)),hsl(var(--deep-indigo)),hsl(var(--cosmic-purple)));
  color:hsl(var(--primary-foreground));
  padding:1.25rem;font-size:1.1rem;font-weight:700;
  border:2px solid hsla(var(--mystic-gold)/.2);
  width:100%;border-radius:var(--radius);
  box-shadow:var(--shadow-cosmic);
}
.hero-submit:hover{
  background:linear-gradient(to right,hsl(var(--mystic-gold)),hsl(var(--cosmic-purple)),hsl(var(--mystic-gold)));
  box-shadow:var(--glow-chakra);transform:scale(1.02);
  border-color:hsla(var(--mystic-gold)/.6);
}
.hero-fineprint{margin:1rem 0 0;color:hsla(var(--star-light)/.6);font-size:.875rem;text-align:center}

/* ==========================================================================
   About section
   ========================================================================== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}
.about-image-wrap{position:relative;max-width:28rem;margin:0 auto}
.about-image-bg{
  position:absolute;inset:-2rem;border-radius:50%;
  background:var(--gradient-chakra);opacity:.2;filter:blur(16px);
  animation:rotate-chakra 20s linear infinite;
}
.about-image-card{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-cosmic);background:hsla(var(--card)/.5);border:1px solid hsla(var(--border)/.3)}
.about-image-card img{width:100%;height:auto;border-radius:var(--radius)}
.float-dot{position:absolute;border-radius:50%;animation:float-stars 3s ease-in-out infinite}
.float-dot.tr{top:-1rem;right:-1rem;width:2rem;height:2rem;background:hsla(var(--mystic-gold)/.3)}
.float-dot.bl{bottom:-1rem;left:-1rem;width:1.5rem;height:1.5rem;background:hsla(var(--chakra-glow)/.3);animation-delay:1s}
.about-body h3{font-size:1.875rem;color:hsl(var(--mystic-gold));margin-bottom:1rem}
.about-body p{font-size:1.075rem;line-height:1.75;color:hsla(var(--foreground)/.8);margin:0 0 1.5rem}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0}
.stat-card{text-align:center;padding:1.5rem}
.stat-number{font-size:2rem;font-weight:800;margin-bottom:.25rem}
.stat-label{font-size:.875rem;color:hsl(var(--muted-foreground))}
.spec-list{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}
.spec-list .item{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:hsla(var(--foreground)/.8)}
.spec-list .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--gradient-mystic);flex-shrink:0}

/* ==========================================================================
   Services / general grid
   ========================================================================== */
.grid{display:grid;gap:2rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.service-card .media{position:relative;overflow:hidden}
.service-card .media img{height:12rem;width:100%;object-fit:cover;transition:transform .5s}
.service-card:hover .media img{transform:scale(1.1)}
.service-card .media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,hsla(var(--background)/.8),transparent);
}
.service-card .body{padding:1.5rem}
.service-card h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:.5rem;transition:color .3s}
.service-card:hover h3{color:hsl(var(--chakra-glow))}
.service-card p{font-size:.875rem;color:hsla(var(--foreground)/.7);margin:0 0 1rem}
.feature-list{margin:0 0 1.5rem;padding:0;list-style:none}
.feature-list li{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:hsla(var(--foreground)/.6);padding:.15rem 0}
.feature-list .dot{width:.375rem;height:.375rem;border-radius:50%;background:var(--gradient-mystic);flex-shrink:0}

/* ==========================================================================
   Why choose
   ========================================================================== */
.why-card{padding:2rem;text-align:center}
.why-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:4rem;height:4rem;border-radius:50%;
  background:var(--gradient-cosmic);color:hsl(var(--primary-foreground));
  margin-bottom:1.5rem;position:relative;transition:box-shadow .3s;
}
.why-icon svg{width:32px;height:32px}
.why-card:hover .why-icon{box-shadow:var(--glow-chakra)}
.why-card h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:1rem;transition:color .3s}
.why-card:hover h3{color:hsl(var(--chakra-glow))}
.why-card p{font-size:.875rem;color:hsla(var(--foreground)/.7);line-height:1.7;margin:0}
.trust-row{margin-top:4rem;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:64rem;margin-left:auto;margin-right:auto;text-align:center}
@media (max-width:640px){.trust-row{grid-template-columns:repeat(2,1fr)}}
.trust-row .num{font-size:2rem;font-weight:800;margin-bottom:.25rem}
.trust-row .num.gold{color:hsl(var(--mystic-gold))}
.trust-row .num.glow{color:hsl(var(--chakra-glow))}
.trust-row .num.indigo{color:hsl(var(--deep-indigo))}
.trust-row .lbl{font-size:.875rem;color:hsl(var(--muted-foreground))}

/* ==========================================================================
   Certifications
   ========================================================================== */
.cert-card{padding:2rem;text-align:center;position:relative;overflow:hidden}
.cert-card::before{
  content:"";position:absolute;top:0;right:0;width:6rem;height:6rem;
  background:hsla(270 80% 35%/.1);border-radius:50%;
  transform:translate(2rem,-2rem);
}
.cert-year{
  display:inline-flex;align-items:center;justify-content:center;
  width:4rem;height:4rem;border-radius:50%;
  background:var(--gradient-mystic);color:hsl(var(--background));
  font-weight:700;font-size:1.125rem;margin-bottom:1.5rem;position:relative;z-index:1;
}
.cert-card h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:.75rem;transition:color .3s}
.cert-card:hover h3{color:hsl(var(--chakra-glow))}
.cert-card .org{font-weight:500;color:hsla(var(--foreground)/.8);margin-bottom:1rem}
.cert-card .desc{font-size:.875rem;color:hsla(var(--foreground)/.6);line-height:1.7;margin:0}

/* ==========================================================================
   Page hero / inner banners
   ========================================================================== */
.page-hero{padding:5rem 0;background:linear-gradient(to bottom,hsl(var(--background)),hsla(var(--muted)/.2))}
.page-hero h1{
  font-size:clamp(2.5rem,5vw,4rem);
  margin-bottom:1.5rem;
  background:var(--gradient-cosmic);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-align:center;
}
.page-hero .divider{width:8rem;height:4px;background:var(--gradient-mystic);margin:0 auto 2rem;border-radius:2px}
.page-hero p{text-align:center;font-size:1.25rem;color:hsl(var(--muted-foreground));max-width:48rem;margin:0 auto;line-height:1.7}

/* ==========================================================================
   CTA panel
   ========================================================================== */
.cta-panel{
  text-align:center;background:hsla(270 80% 35%/.1);
  border:1px solid hsla(var(--border)/.3);
  border-radius:1rem;padding:2rem;max-width:42rem;margin:4rem auto 0;
}
.cta-panel h3{font-size:1.5rem;margin-bottom:1rem;background:var(--gradient-mystic);-webkit-background-clip:text;background-clip:text;color:transparent}
.cta-panel p{margin-bottom:1.5rem;color:hsla(var(--foreground)/.7);line-height:1.7}

/* ==========================================================================
   City / Service single
   ========================================================================== */
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
@media (max-width:900px){.split-grid{grid-template-columns:1fr}}
.split-grid h2{font-size:1.875rem;margin-bottom:1.5rem;background:var(--gradient-mystic);-webkit-background-clip:text;background-clip:text;color:transparent}
.split-grid p{color:hsla(var(--foreground)/.8);line-height:1.75;margin-bottom:1.5rem}
.city-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.city-stats .stat-card svg{margin:0 auto 1rem;color:hsl(var(--mystic-gold))}
.city-specialty .icon-circle{display:inline-flex;width:3rem;height:3rem;align-items:center;justify-content:center;border-radius:50%;background:var(--gradient-cosmic);color:#fff;margin-bottom:1rem}
.city-specialty .icon-circle svg{width:24px;height:24px}
.city-specialty h3{font-size:1.25rem;font-family:'Cinzel',serif;font-weight:700;margin-bottom:.5rem;color:hsl(var(--foreground))}
.areas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2rem 0}
@media (max-width:640px){.areas-grid{grid-template-columns:repeat(2,1fr)}}
.area{text-align:center}
.area svg{width:2rem;height:2rem;margin:0 auto .5rem;color:hsl(var(--mystic-gold))}
.area .lbl{font-size:.875rem;color:hsla(var(--foreground)/.6)}
.service-image{border-radius:1rem;overflow:hidden;box-shadow:var(--shadow-cosmic)}
.service-image img{width:100%;height:auto}
.feature-card{padding:2rem;text-align:center}
.feature-card .icon-wrap{color:hsl(var(--mystic-gold));margin-bottom:1rem}
.feature-card .icon-wrap svg{width:32px;height:32px;margin:0 auto}
.feature-card h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:.75rem}
.feature-card p{font-size:.875rem;color:hsla(var(--foreground)/.7);line-height:1.7;margin:0}

/* ==========================================================================
   Contact
   ========================================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-card{padding:2rem}
.contact-card h2{
  font-size:1.5rem;text-align:center;margin-bottom:1.5rem;
  background:var(--gradient-cosmic);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.contact-card label{display:block;font-size:.875rem;font-weight:500;color:hsla(var(--foreground)/.8);margin-bottom:.5rem}
.contact-card .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
@media (max-width:640px){.contact-card .row{grid-template-columns:1fr}}
.contact-info-card{padding:2rem;margin-bottom:1.5rem}
.contact-info-card h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:1.5rem}
.contact-item{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}
.contact-item .icon-circle{width:3rem;height:3rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.contact-item .icon-circle.cosmic{background:var(--gradient-cosmic)}
.contact-item .icon-circle.mystic{background:var(--gradient-mystic);color:hsl(var(--background))}
.contact-item .icon-circle.chakra{background:var(--gradient-chakra)}
.contact-item .icon-circle svg{width:20px;height:20px}
.contact-item .lbl{font-size:.875rem;color:hsl(var(--muted-foreground))}
.contact-item a{color:hsl(var(--mystic-gold))}
.contact-item a:hover{color:hsl(var(--chakra-glow))}
.urgent-card{padding:1.5rem;text-align:center;background:hsla(270 80% 35%/.1);border:1px solid hsla(var(--mystic-gold)/.3)}
.urgent-card h4{color:hsl(var(--mystic-gold));margin-bottom:.5rem;font-family:'Cinzel',serif;font-weight:700}
.urgent-card p{font-size:.875rem;color:hsla(var(--foreground)/.7);margin-bottom:1rem}
.map-wrap{aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;border:1px solid hsla(var(--border)/.3)}
.map-wrap iframe{width:100%;height:100%;border:0}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{
  background:linear-gradient(to bottom,hsl(var(--background)),hsla(var(--muted)/.2));
  border-top:1px solid hsla(var(--border)/.3);
  padding:4rem 0 2rem;
}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;margin-bottom:3rem}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr}}
.footer-col h3{font-size:1.25rem;color:hsl(var(--mystic-gold));margin-bottom:1.5rem;font-family:'Cinzel',serif;font-weight:700}
.footer-col p{color:hsla(var(--foreground)/.7);line-height:1.7;margin:0 0 1.5rem}
.footer-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.footer-stats .card-flat{padding:1rem;text-align:center}
.footer-stats .num{font-size:1.25rem;font-weight:700;color:hsl(var(--mystic-gold))}
.footer-stats .num.glow{color:hsl(var(--chakra-glow))}
.footer-stats .lbl{font-size:.75rem;color:hsl(var(--muted-foreground))}
.cities-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.cities-list a,.cities-list span{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.875rem;color:hsla(var(--foreground)/.7);transition:color .3s}
.cities-list a:hover{color:hsl(var(--mystic-gold))}
.cities-list svg{width:.75rem;height:.75rem;color:hsl(var(--chakra-glow));flex-shrink:0}
.footer-bottom{border-top:1px solid hsla(var(--border)/.3);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom .copy{font-size:.875rem;color:hsl(var(--muted-foreground))}
.footer-bottom .credit{font-size:.75rem;color:hsl(var(--muted-foreground));margin-top:.25rem}
.footer-bottom .credit a{color:hsl(var(--mystic-gold))}
.footer-bottom .credit a:hover{color:hsl(var(--chakra-glow))}
.footer-links{display:flex;gap:1.5rem;font-size:.875rem;color:hsl(var(--muted-foreground))}
.footer-links a:hover{color:hsl(var(--mystic-gold))}

/* ==========================================================================
   404
   ========================================================================== */
.error-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center}
.error-page h1{font-size:5rem;margin-bottom:1rem;background:var(--gradient-cosmic);-webkit-background-clip:text;background-clip:text;color:transparent}
.error-page p{font-size:1.25rem;color:hsl(var(--muted-foreground));margin-bottom:2rem}

/* ==========================================================================
   Animations
   ========================================================================== */
@keyframes rotate-chakra{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes float-stars{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-20px)}
}
@keyframes pulse-glow{
  0%,100%{opacity:.5}
  50%{opacity:.8}
}
@keyframes fade-up{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
.fade-up{animation:fade-up .6s ease both}

/* ==========================================================================
   Misc helpers
   ========================================================================== */
.text-center{text-align:center}
.mt-0{margin-top:0}
.mb-2{margin-bottom:.5rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.mb-8{margin-bottom:2rem}
.mb-12{margin-bottom:3rem}
.mb-16{margin-bottom:4rem}
.mt-8{margin-top:2rem}
.bg-muted-soft{background:linear-gradient(to bottom,hsl(var(--background)),hsla(var(--muted)/.1),hsl(var(--background)))}
.bg-soft-1{background:linear-gradient(to bottom,hsl(var(--background)),hsla(var(--background)/.95),hsla(var(--muted)/.2))}
.bg-soft-2{background:linear-gradient(to bottom,hsla(var(--muted)/.2),hsl(var(--background)),hsla(var(--muted)/.1))}
.bg-soft-3{background:linear-gradient(to bottom,hsla(var(--muted)/.1),hsl(var(--background)),hsla(var(--muted)/.2))}

/* Editor-friendly classes for WP content */
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4{margin:1.5em 0 .5em}
.entry-content h2{font-size:2rem;color:hsl(var(--mystic-gold))}
.entry-content h3{font-size:1.5rem;color:hsl(var(--mystic-gold))}
.entry-content p{margin:0 0 1rem;line-height:1.75}
.entry-content ul,.entry-content ol{margin:0 0 1rem 1.5rem;line-height:1.75}
.entry-content a{color:hsl(var(--mystic-gold))}
.entry-content a:hover{color:hsl(var(--chakra-glow))}
.entry-content img{border-radius:var(--radius);margin:1.5rem 0}
.entry-content blockquote{border-left:4px solid hsl(var(--mystic-gold));padding-left:1.25rem;margin:1.5rem 0;color:hsla(var(--foreground)/.8);font-style:italic}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
