
* { box-sizing: border-box; }

:root{
  --purple:#6e2a8a;
  --magenta:#d92c90;
  --blue:#2f87de;
  --ink:#2f2140;
  --muted:#6d6278;
  --bg:#fff8fd;
  --panel:#ffffff;
  --line:rgba(110,42,138,.12);
  --shadow:0 18px 40px rgba(110,42,138,.12);
  --radius:24px;
}

html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(217,44,144,.15), transparent 28%),
    radial-gradient(circle at bottom right, rgba(47,135,222,.10), transparent 20%),
    linear-gradient(180deg, #fff 0%, var(--bg) 100%);
}
img{max-width:100%;display:block}
a{color:inherit}
.container{width:min(1180px, calc(100% - 2rem)); margin:0 auto;}

.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.brand{
  display:flex; align-items:center; gap:.85rem; text-decoration:none;
  color:var(--purple); font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:700;
}
.brand img{
  height:58px; object-fit:contain; width:auto;
}
.main-nav{display:flex; align-items:center; gap:1.35rem; flex-wrap:wrap}
.main-nav a{
  text-decoration:none; color:var(--ink); font-weight:600; font-size:.96rem;
}
.main-nav a.active{color:var(--magenta);}
.call-btn,.btn{
  display:inline-flex; align-items:center; justify-content:center; min-height:48px;
  padding:0 1.25rem; border-radius:999px; text-decoration:none; font-weight:700;
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.call-btn,.btn-primary{
  color:#fff; background:linear-gradient(90deg, var(--magenta), var(--purple)); box-shadow:var(--shadow);
}
.btn-secondary,.btn-outline{
  border:2px solid rgba(110,42,138,.18); color:var(--purple); background:#fff;
}
.call-btn:hover,.btn:hover{transform:translateY(-1px);}

.hero{padding:4.5rem 0 3rem;}
.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:2rem; align-items:center;
}
.hero-copy h1,.section-heading h2,.page-title h1,.cta-box h2{
  font-family:'Playfair Display',serif; margin:0 0 1rem; line-height:1.05; color:var(--purple);
}
.hero-copy h1{font-size:clamp(2.7rem, 5vw, 4.6rem); max-width:12ch;}
.page-title{
  padding:3.5rem 0 1rem;
}
.page-title h1{font-size:clamp(2.3rem, 4vw, 3.6rem);}
.page-title p,.lead,.section-heading p,.rich-text p,.cta-box p,.card p,.feature p,.contact-card p{
  color:var(--muted); line-height:1.75; font-size:1.03rem;
}
.eyebrow{
  margin:0 0 .8rem; color:var(--magenta); font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; font-size:.82rem;
}
.hero-actions{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin:1.75rem 0 1.25rem;}
.phone-link{color:var(--purple); font-weight:700; text-decoration:none;}

.list-clean,.check-list{margin:1.2rem 0 0; padding:0; list-style:none;}
.list-clean li,.check-list li{
  position:relative; padding-left:1.6rem; margin:.8rem 0; color:var(--ink);
}
.list-clean li::before,.check-list li::before{
  content:"•"; position:absolute; left:0; top:-.05rem; color:var(--magenta); font-size:1.4rem; line-height:1;
}

.hero-media img,.rounded-media,.gallery img{
  width:100%; border-radius:28px; box-shadow:var(--shadow); border:1px solid var(--line);
}
.section{padding:4.5rem 0;}
.section-heading{max-width:760px; margin:0 auto 2rem; text-align:center;}

.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center;}
.grid-3{display:grid; grid-template-columns:repeat(3, 1fr); gap:1.2rem;}
.grid-4{display:grid; grid-template-columns:repeat(4, 1fr); gap:1.2rem;}
.card,.feature,.testimonial,.contact-card,.cta-box,.notice{
  background:rgba(255,255,255,.92); border:1px solid var(--line); box-shadow:var(--shadow); border-radius:var(--radius);
}
.card,.feature,.contact-card,.notice{padding:1.5rem;}
.card h3,.feature h3,.contact-card h3,.cta-box h2{margin-top:0; color:var(--purple);}
.testimonial{padding:1.6rem; line-height:1.8;}
.testimonial cite{display:block; margin-top:1rem; color:var(--magenta); font-style:normal; font-weight:700;}
.feature-icon{
  width:52px; height:52px; border-radius:16px; display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(217,44,144,.15), rgba(47,135,222,.12));
  color:var(--purple); font-weight:800; margin-bottom:1rem;
}
.gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem;}
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem;}
.stats .stat{
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:1rem; text-align:center;
}
.stats strong{display:block; font-size:1.35rem; color:var(--magenta); margin-bottom:.35rem;}
.stats span{color:var(--muted); font-size:.92rem;}

.cta-box{
  padding:2rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.button-row{display:flex; gap:1rem; flex-wrap:wrap;}
.footer{
  padding:2rem 0 3rem; border-top:1px solid var(--line); margin-top:2rem;
}
.footer-grid{
  display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:1.5rem;
}
.footer a{text-decoration:none; color:var(--muted);}
.small{font-size:.92rem; color:var(--muted);}
.notice strong{color:var(--purple);}
.contact-stack{display:grid; gap:1.2rem;}
.job-listing{display:grid; gap:.65rem;}
.tag{
  display:inline-block; padding:.35rem .7rem; border-radius:999px; background:rgba(217,44,144,.1); color:var(--purple);
  font-weight:700; font-size:.82rem;
}

@media (max-width: 1024px){
  .hero-grid,.grid-2,.grid-3,.grid-4,.gallery,.footer-grid,.cta-box,.stats{
    grid-template-columns:1fr;
  }
  .cta-box{display:grid;}
  /*.main-nav{display:none;}*/
}
@media (max-width:720px){
  .hero{padding-top:3rem;}
  .brand span{font-size:1.4rem;}
  .hero-copy h1{max-width:none;}
  .call-btn{display:none;}
}




/* mobile menu feature added by nrs */
.menu-toggle{
  display:none;font-size:26px;cursor:pointer;color:var(--purple);
}

/* MOBILE */
@media (max-width: 1024px){

  .menu-toggle{
    display:block;
  }

  .main-nav{
    position:absolute;
    top:82px; /* same as header height */
    left:0;
    width:100%;
    background:#fff;

    display:none; /* hidden by default */
    flex-direction:column;
    align-items:center;
    padding:1rem 0;
    box-shadow:var(--shadow);
  }

  .main-nav.active{
    display:flex;
  }

  .main-nav a{
    padding:12px 0;
    width:100%;
    text-align:center;
  }
}