/* =========================================================
   ASTRO PRASHANT — stylesheet
   Edit the variables below to re-colour or re-font the whole site.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Work+Sans:wght@400;500;600;700&family=Noto+Sans+Devanagari:wght@400;600&display=swap');

:root{
  /* ---- colour tokens ---- */
  --night: #150C29;        /* deepest cosmic indigo — dark section bg */
  --night-2: #241A42;       /* lighter indigo — gradients on dark sections */
  --ink: #1E1533;           /* heading / body ink on light bg */
  --text: #443A5C;          /* body copy */
  --text-soft: #786f92;     /* muted copy */
  --cream: #FBF6EA;         /* page background */
  --cream-2: #F3EAD6;       /* card / alt-section background */
  --line: #E4D9BE;          /* hairline borders on light bg */
  --gold: #C99A3C;          /* antique gold accent */
  --gold-bright: #E4B85A;   /* gold hover / highlight */
  --vermillion: #A63F2E;    /* tilak red — CTA + emphasis, used sparingly */
  --vermillion-2: #8C3324;

  /* ---- type tokens ---- */
  --font-display: 'Cormorant Garamond', 'Noto Serif Devanagari', serif;
  --font-body: 'Work Sans', 'Noto Sans Devanagari', sans-serif;

  /* ---- layout ---- */
  --maxw: 1180px;
  --radius: 4px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0;}
li{list-style:none;}
button{font-family:inherit; cursor:pointer;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  font-weight:600;
  line-height:1.18;
  margin:0 0 .5em;
}
h1{font-size:clamp(2.4rem, 5vw, 3.6rem); font-weight:700;}
h2{font-size:clamp(1.8rem, 3.2vw, 2.5rem);}
h3{font-size:1.35rem;}
p{margin:0 0 1.1em;}
.lede{font-size:1.15rem; color:var(--text-soft);}

.eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--font-body); font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; font-size:.72rem; color:var(--vermillion);
  margin-bottom:1em;
}
.eyebrow::before{
  content:""; width:22px; height:1px; background:var(--vermillion);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.85em 1.7em; border-radius:2px; font-weight:600;
  font-size:.94rem; letter-spacing:.02em; border:1px solid transparent;
  transition:all .2s ease;
}
.btn-primary{background:var(--vermillion); color:#FBF6EA;}
.btn-primary:hover{background:var(--vermillion-2);}
.btn-ghost{border-color:var(--gold); color:var(--ink);}
.btn-ghost:hover{background:var(--gold); color:var(--night); border-color:var(--gold);}
.btn-ghost-light{border-color:rgba(251,246,234,.5); color:#FBF6EA;}
.btn-ghost-light:hover{background:var(--gold); border-color:var(--gold); color:var(--night);}
.btn-row{display:flex; gap:.9em; flex-wrap:wrap; margin-top:1.6em;}

/* ---------- top bar ---------- */
.topbar{
  background:var(--night); color:#DCD4EE; font-size:.82rem;
  padding:.5em 0;
}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.4em;}
.topbar a{color:var(--gold-bright);}

/* ---------- nav ---------- */
header.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,246,234,.94);
  border-bottom:1px solid var(--line);
  isolation:isolate;
}
header.site-header::before{
  content:""; position:absolute; inset:0; z-index:-1;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
.logo{display:flex; align-items:center; gap:.6em; font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:var(--ink);}
.logo .dot{width:9px; height:9px; border-radius:50%; background:var(--vermillion); box-shadow:0 0 0 3px rgba(166,63,46,.18);}
.logo span.sub{display:block; font-family:var(--font-body); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--text-soft); font-weight:600; margin-top:-2px;}

nav.primary-nav{display:flex; align-items:center; gap:2px;}
nav.primary-nav > ul{display:flex; align-items:center; gap:2px;}
nav.primary-nav > ul > li{position:relative;}
nav.primary-nav > ul > li > a, nav.primary-nav > ul > li > button.nav-toggle-item{
  display:flex; align-items:center; gap:.3em;
  padding:.6em .85em; font-size:.87rem; font-weight:600; color:var(--ink);
  border:none; background:none; border-radius:2px;
}
nav.primary-nav > ul > li > a:hover, nav.primary-nav > ul > li:hover > button.nav-toggle-item{color:var(--vermillion);}
nav.primary-nav .caret{font-size:.6em; opacity:.6;}

.dropdown{
  position:absolute; top:100%; left:0; min-width:270px;
  background:#fff; border:1px solid var(--line); border-top:2px solid var(--vermillion);
  box-shadow:0 18px 34px -12px rgba(30,21,51,.22);
  padding:.5em; opacity:0; visibility:hidden; transform:translateY(6px);
  transition:all .18s ease;
}
nav.primary-nav > ul > li:hover .dropdown,
nav.primary-nav > ul > li.open .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.dropdown a{display:block; padding:.6em .8em; font-size:.87rem; border-radius:2px; color:var(--text);}
.dropdown a:hover{background:var(--cream-2); color:var(--vermillion);}

.nav-cta{margin-left:8px;}
.menu-toggle{display:none; background:none; border:none; padding:6px;}
.menu-toggle span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.2s;}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:linear-gradient(180deg,var(--night) 0%, var(--night-2) 100%); color:#F4EFE0; padding:74px 0 96px;}
.hero .wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative; z-index:2;}
.hero .eyebrow{color:var(--gold-bright);}
.hero .eyebrow::before{background:var(--gold-bright);}
.hero h1{color:#FBF6EA;}
.hero p.lede{color:#C9BEE0;}
.hero-figure{position:relative; display:flex; justify-content:center;}
.chart-wheel{position:absolute; width:150%; max-width:640px; opacity:.35; top:50%; left:50%; transform:translate(-50%,-50%); animation:spin 140s linear infinite;}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
.hero-photo{position:relative; width:340px; height:340px; border-radius:50%; overflow:hidden; border:3px solid var(--gold); box-shadow:0 0 0 10px rgba(201,154,60,.08), 0 30px 60px -20px rgba(0,0,0,.6);}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
.hero-stats{display:flex; gap:28px; margin-top:2.2em; flex-wrap:wrap;}
.hero-stats div strong{display:block; font-family:var(--font-display); font-size:1.6rem; color:var(--gold-bright);}
.hero-stats div span{font-size:.78rem; color:#B6ABD1; text-transform:uppercase; letter-spacing:.08em;}

/* generic page hero (inner pages) */
.page-hero{background:linear-gradient(180deg,var(--night), var(--night-2)); color:#F4EFE0; padding:64px 0 70px; position:relative; overflow:hidden;}
.page-hero .wrap{position:relative; z-index:2;}
.page-hero h1{color:#FBF6EA; max-width:820px;}
.page-hero p.lede{color:#C9BEE0; max-width:640px;}
.page-hero .chart-wheel{opacity:.22; right:-120px; left:auto; top:-40px; transform:none; width:520px;}
.crumb{font-size:.78rem; color:#B6ABD1; margin-bottom:1em;}
.crumb a{color:var(--gold-bright);}

/* ---------- sections ---------- */
section{padding:88px 0;}
section.tight{padding:60px 0;}
.section-head{max-width:660px; margin:0 auto 3em;}
.section-head.center{text-align:center; margin-left:auto; margin-right:auto;}
.alt-bg{background:var(--cream-2);}
.dark-band{background:linear-gradient(180deg,var(--night), var(--night-2)); color:#EDE7F7;}
.dark-band h2, .dark-band h3{color:#FBF6EA;}
.dark-band p{color:#C9BEE0;}

/* ---------- cards / grids ---------- */
.grid{display:grid; gap:28px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:2.1em 1.9em; position:relative;
}
.card .icon{width:46px; height:46px; margin-bottom:1em; color:var(--vermillion);}
.card h3{margin-bottom:.4em;}
.card p{color:var(--text-soft); margin-bottom:0; font-size:.96rem;}

.service-card{
  background:var(--cream); border:1px solid var(--line); border-top:3px solid var(--gold);
  padding:2em 1.8em; border-radius:var(--radius);
}
.service-card h3{font-size:1.2rem;}
.service-card p{color:var(--text-soft); font-size:.94rem; margin-bottom:0;}

.media-block{display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; margin-bottom:78px;}
.media-block.reverse .media-block-img{order:2;}
.media-block-img{position:relative;}
.media-block-img img{border-radius:2px; box-shadow:0 26px 50px -24px rgba(30,21,51,.35);}
.media-block-img::before{
  content:""; position:absolute; inset:14px -14px -14px 14px; border:1.5px solid var(--gold); z-index:-1;
}

blockquote.pull{
  font-family:var(--font-display); font-style:italic; font-size:1.5rem; color:var(--ink);
  border-left:3px solid var(--vermillion); padding-left:1em; margin:1.6em 0; line-height:1.5;
}
.dark-band blockquote.pull{color:#FBF6EA; border-color:var(--gold);}

/* testimonials */
.testi-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.8em; display:flex; gap:1.2em;}
.testi-card img{width:64px; height:64px; border-radius:50%; object-fit:cover; flex:none; border:2px solid var(--gold);}
.testi-card p{font-size:.94rem; color:var(--text); margin-bottom:.6em;}
.testi-card .name{font-weight:700; color:var(--ink); font-size:.88rem;}
.testi-card .loc{color:var(--text-soft); font-size:.8rem;}

/* faq */
.faq details{border-bottom:1px solid var(--line); padding:1.1em 0;}
.faq summary{cursor:pointer; font-weight:600; color:var(--ink); font-family:var(--font-display); font-size:1.15rem; list-style:none; display:flex; justify-content:space-between; gap:1em;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; color:var(--vermillion); font-size:1.3rem; flex:none;}
.faq details[open] summary::after{content:"–";}
.faq details p{margin-top:.8em; color:var(--text-soft);}

/* checklist / why-choose list */
.why-list{display:grid; gap:1.4em;}
.why-list li{display:flex; gap:1em; align-items:flex-start;}
.why-list .mark{flex:none; width:30px; height:30px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; color:var(--vermillion); font-family:var(--font-display); font-weight:700;}

/* blog list */
.post-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.post-card img{aspect-ratio:16/9; object-fit:cover; width:100%;}
.post-card .body{padding:1.5em 1.6em;}
.post-card .meta{font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--vermillion); font-weight:600; margin-bottom:.5em;}
.post-card p{color:var(--text-soft); font-size:.92rem;}
.post-card a.readmore{color:var(--vermillion); font-weight:600; font-size:.88rem;}

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.contact-info-card{background:var(--night); color:#EDE7F7; border-radius:2px; padding:2.4em; position:relative; overflow:hidden;}
.contact-info-card .chart-wheel{width:340px; right:-90px; bottom:-100px; top:auto; left:auto; opacity:.18; transform:none;}
.contact-info-card a{color:var(--gold-bright);}
.contact-row{display:flex; gap:1em; align-items:flex-start; margin-bottom:1.4em; position:relative; z-index:1;}
.contact-row .k{font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:#B6ABD1; margin-bottom:.2em;}

form.stack{display:grid; gap:1.1em;}
form.stack label{font-size:.82rem; font-weight:600; color:var(--ink); margin-bottom:.4em; display:block;}
form.stack input, form.stack textarea{
  width:100%; padding:.85em 1em; border:1px solid var(--line); border-radius:2px;
  font-family:var(--font-body); font-size:.95rem; background:#fff; color:var(--ink);
}
form.stack input:focus, form.stack textarea:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);}
.form-note{font-size:.78rem; color:var(--text-soft); margin-top:.6em;}

/* newsletter band */
.cta-band{background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.cta-band .wrap{display:flex; align-items:center; justify-content:space-between; gap:2em; flex-wrap:wrap; padding:52px 28px;}
.cta-band form{display:flex; gap:.6em; flex-wrap:wrap;}
.cta-band input{padding:.85em 1.1em; border:1px solid var(--line); min-width:240px; border-radius:2px;}

/* footer */
footer.site-footer{background:var(--night); color:#C9BEE0; padding:70px 0 26px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.09);}
.footer-brand{display:flex; gap:1em;}
.footer-brand img{width:58px; height:58px; border-radius:50%; object-fit:cover; border:2px solid var(--gold);}
.footer-brand h4{color:#FBF6EA; margin-bottom:.2em;}
.footer-grid h5{color:#FBF6EA; font-family:var(--font-body); font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:1.1em;}
.footer-grid li{margin-bottom:.7em; font-size:.9rem;}
.footer-grid a:hover{color:var(--gold-bright);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:.8rem; color:#8478a3; flex-wrap:wrap; gap:.6em;}
.footer-bottom a:hover{color:var(--gold-bright);}

/* devanagari sections */
.hi{font-family:'Noto Sans Devanagari', var(--font-body); line-height:1.9;}

/* cookie banner */
#cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:80;
  background:var(--night); color:#EDE7F7; padding:16px 0;
  transform:translateY(110%); transition:transform .3s ease;
}
#cookie-banner.show{transform:translateY(0);}
#cookie-banner .wrap{display:flex; align-items:center; justify-content:space-between; gap:1.4em; flex-wrap:wrap;}
#cookie-banner p{margin:0; font-size:.86rem; color:#C9BEE0;}
#cookie-banner .actions{display:flex; gap:.6em; flex:none;}
#cookie-banner button{padding:.6em 1.2em; border-radius:2px; font-size:.82rem; font-weight:600; border:1px solid var(--gold);}
#cookie-banner .accept{background:var(--gold); color:var(--night);}
#cookie-banner .decline{background:transparent; color:#EDE7F7;}

/* reveal animation — visible by default; JS adds .pre then .in as progressive enhancement */
.reveal{transition:opacity .6s ease, transform .6s ease;}
.reveal.pre{opacity:0; transform:translateY(18px);}
.reveal.in{opacity:1; transform:none;}

/* misc utilities */
.center{text-align:center;}
.mt-0{margin-top:0;}
.small{font-size:.85rem; color:var(--text-soft);}
.divider-wheel{display:flex; justify-content:center; margin:.4em 0 2.4em;}
.divider-wheel svg{width:46px; height:46px; opacity:.6;}

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .hero .wrap{grid-template-columns:1fr; text-align:center;}
  .hero-figure{order:-1;}
  .media-block{grid-template-columns:1fr;}
  .media-block.reverse .media-block-img{order:0;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .grid-4{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 760px){
  nav.primary-nav{position:fixed; inset:70px 0 0 0; background:var(--cream); flex-direction:column; align-items:stretch; padding:20px; transform:translateX(100%); transition:transform .25s ease; overflow-y:auto;}
  nav.primary-nav.open{transform:translateX(0);}
  nav.primary-nav > ul{flex-direction:column; align-items:stretch; gap:0;}
  nav.primary-nav > ul > li > a, nav.primary-nav > ul > li > button.nav-toggle-item{width:100%; justify-content:space-between; padding:1em .4em; border-bottom:1px solid var(--line);}
  .dropdown{position:static; box-shadow:none; border:none; opacity:1; visibility:visible; transform:none; display:none; padding-left:1em;}
  li.open .dropdown{display:block;}
  .menu-toggle{display:block;}
  .nav-cta{display:none;}
  .grid-3, .grid-4{grid-template-columns:1fr;}
  section{padding:60px 0;}
  .footer-grid{grid-template-columns:1fr;}
  .cta-band .wrap{flex-direction:column; align-items:flex-start;}
}
