:root{
  --teal-900:#0B3A34;
  --teal-800:#0F473F;
  --teal-700:#146B5E;
  --teal-600:#1C8272;
  --mint-100:#EAF6F1;
  --mint-200:#DCEFE7;
  --paper:#FBFAF6;
  --blush-500:#E1567A;
  --blush-600:#C94466;
  --gold-500:#CE9A3F;
  --ink-900:#0E211D;
  --ink-700:#33453F;
  --line:rgba(14,33,29,0.12);
  --radius:18px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  background:var(--paper);
  color:var(--ink-900);
  line-height:1.55;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; color:var(--teal-900); letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono', monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
section{position:relative;}
::selection{background:var(--blush-500); color:#fff;}

.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- TOP BAR ---------- */
.topbar{background:var(--teal-900); color:var(--mint-100); font-size:13px; padding:8px 0;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;}
.topbar .item{display:flex; align-items:center; gap:6px; opacity:.9;}
.topbar a.phone{color:#fff; font-weight:600;}

/* ---------- NAV ---------- */
header.nav{position:sticky; top:0; z-index:100; background:rgba(251,250,246,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
nav.wrap{display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; position:relative;}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{width:38px; height:38px; object-fit:contain;}
.brand-text{display:flex; flex-direction:column; line-height:1.1;}
.brand-text b{font-family:'Fraunces',serif; font-size:19px; color:var(--teal-900); font-weight:700;}
.brand-text span{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--blush-600);}
.navlinks{display:flex; gap:32px; font-size:14.5px; font-weight:500;}
.navlinks a{position:relative; padding:4px 0; color:var(--ink-700);}
.navlinks a.active{color:var(--teal-900); font-weight:700;}
.navlinks a:hover{color:var(--teal-900);}
.navlinks a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--blush-500);transition:width .25s;}
.navlinks a:hover::after, .navlinks a.active::after{width:100%;}
.nav-cta{display:flex; gap:10px; align-items:center;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:999px; font-weight:600; font-size:14px; border:1px solid transparent; cursor:pointer; transition:all .2s ease; white-space:nowrap;}
.btn-primary{background:var(--blush-500); color:#fff;}
.btn-primary:hover{background:var(--blush-600); transform:translateY(-1px);}
.btn-outline{border-color:var(--teal-900); color:var(--teal-900);}
.btn-outline:hover{background:var(--teal-900); color:#fff;}
.btn-ghost{color:var(--teal-900); font-weight:600;}

.menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer;
  align-items:center;
}
.menu-toggle span{width:18px; height:2px; background:var(--teal-900); border-radius:2px; transition:transform .25s, opacity .25s;}
.menu-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0;}
.menu-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-panel{
  display:none; position:fixed; inset:0 0 0 0; top:var(--panel-top, 64px); z-index:150;
  background:var(--paper); padding:28px 28px 40px; flex-direction:column; gap:6px;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
}
.mobile-panel.open{display:flex;}
.mobile-panel a{font-size:19px; font-weight:600; padding:16px 4px; border-bottom:1px solid var(--line); color:var(--ink-900);}
.mobile-panel a.active{color:var(--blush-600);}
.mobile-panel .mp-cta{display:flex; flex-direction:column; gap:12px; margin-top:24px;}
.mobile-panel .mp-cta .btn{width:100%; justify-content:center;}
body.nav-open{overflow:hidden;}

/* ---------- PAGE HERO (interior pages) ---------- */
.page-hero{padding:64px 0 48px; background:radial-gradient(900px 400px at 85% -20%, rgba(28,130,114,.10), transparent 60%);}
.page-hero .eyebrow{margin-bottom:18px;}
.page-hero h1{font-size:clamp(30px,4vw,46px); line-height:1.1; max-width:720px;}
.page-hero p{color:var(--ink-700); font-size:16px; max-width:560px; margin-top:16px;}
.breadcrumb{font-size:12.5px; color:var(--ink-700); margin-bottom:16px; font-family:'IBM Plex Mono',monospace;}
.breadcrumb a{color:var(--teal-700);}
.breadcrumb span{opacity:.5; margin:0 6px;}

/* ---------- HOME HERO ---------- */
.hero{padding:56px 0 60px; background:radial-gradient(1100px 500px at 85% -10%, rgba(28,130,114,0.10), transparent 60%), var(--paper); overflow:hidden;}
.hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-700); background:var(--mint-100); border:1px solid var(--mint-200); padding:6px 14px; border-radius:999px; margin-bottom:22px;}
.eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--blush-500);}
.hero h1{font-size:clamp(34px, 4.6vw, 56px); line-height:1.06; margin-bottom:22px;}
.hero h1 .devanagari{display:block; font-size:.62em; color:var(--blush-600); font-style:italic; font-weight:500; margin-top:6px;}
.hero p.lead{font-size:17px; color:var(--ink-700); max-width:480px; margin-bottom:30px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px;}
.hero-stats{display:flex; gap:0; border-top:1px solid var(--line); padding-top:22px; flex-wrap:wrap;}
.stat{flex:1; min-width:110px; padding-right:18px;}
.stat b{font-family:'Fraunces',serif; font-size:26px; color:var(--teal-900); display:block;}
.stat span{font-size:12.5px; color:var(--ink-700);}

.hero-visual{position:relative;}
.card-stack{position:relative; width:100%; aspect-ratio:4/5; max-width:420px; margin-left:auto;}
.photo-card{position:absolute; border-radius:var(--radius); overflow:hidden; box-shadow:0 30px 60px -20px rgba(11,58,52,0.35); border:6px solid #fff; background:var(--mint-100);}
.photo-card img{width:100%; height:100%; object-fit:cover;}
.pc1{width:78%; height:72%; top:0; right:0; z-index:2;}
.pc2{width:56%; height:46%; bottom:0; left:0; z-index:3;}
.scan-bar{position:absolute; left:6%; right:22%; top:0; height:3px; background:linear-gradient(90deg, transparent, var(--gold-500), transparent); animation:scan 3.2s ease-in-out infinite; z-index:4; border-radius:2px;}
@keyframes scan{0%{top:2%; opacity:0;}10%{opacity:1;}50%{top:70%; opacity:1;}60%{opacity:0;}100%{top:70%; opacity:0;}}
.badge-float{position:absolute; z-index:5; bottom:-22px; right:8%; background:#fff; border-radius:14px; padding:14px 18px; box-shadow:0 20px 40px -15px rgba(11,58,52,0.30); display:flex; align-items:center; gap:10px; border:1px solid var(--line);}
.badge-float .stars{color:var(--gold-500); font-size:14px; letter-spacing:1px;}
.badge-float b{font-family:'Fraunces',serif; font-size:18px;}
.badge-float span{display:block; font-size:11px; color:var(--ink-700);}

/* ---------- TRUST STRIP ---------- */
.trust-strip{background:var(--teal-900); color:var(--mint-100); padding:22px 0;}
.trust-strip .wrap{display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:13.5px;}
.trust-strip .t-item{display:flex; align-items:center; gap:10px; opacity:.92;}
.trust-strip .t-item svg{width:18px; height:18px; flex:none;}
.trust-strip b{color:#fff;}

/* ---------- SECTION HEADS ---------- */
.section-pad{padding:96px 0;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:16px;}
.section-head h2{font-size:clamp(28px,3.4vw,42px); margin-bottom:14px;}
.section-head p{color:var(--ink-700); font-size:16px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- SERVICES ---------- */
.services{background:var(--mint-100);}
.service-groups{display:flex; flex-direction:column; gap:10px;}
.group{border-top:1px solid var(--line);}
.group:last-child{border-bottom:1px solid var(--line);}
.group-head{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 4px; cursor:pointer; user-select:none;}
.group-head .gh-left{display:flex; align-items:center; gap:18px;}
.group-num{font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--blush-600); min-width:28px;}
.group-head h3{font-size:22px; margin:0;}
.group-head .g-sub{font-size:13px; color:var(--ink-700); font-weight:400; font-family:'Inter';}
.group-chevron{width:26px; height:26px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex:none; transition:transform .3s;}
.group.open .group-chevron{transform:rotate(45deg); background:var(--teal-900); border-color:var(--teal-900);}
.group.open .group-chevron svg{stroke:#fff;}
.group-body{max-height:0; overflow:hidden; transition:max-height .45s ease;}
.group.open .group-body{max-height:900px;}
.service-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:6px 4px 32px;}
.svc-card{background:#fff; border-radius:14px; padding:20px; border:1px solid var(--line); display:flex; gap:14px; align-items:flex-start; transition:transform .25s, box-shadow .25s;}
.svc-card:hover{transform:translateY(-4px); box-shadow:0 16px 30px -14px rgba(11,58,52,0.25);}
.svc-card svg{width:26px; height:26px; flex:none; stroke:var(--teal-700);}
.svc-card h4{font-size:15.5px; font-family:'Inter'; font-weight:600; color:var(--ink-900); margin-bottom:4px;}
.svc-card p{font-size:12.5px; color:var(--ink-700);}

/* ---------- ABOUT ---------- */
.about .wrap{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
.about-photo{position:relative;}
.about-photo .frame{border-radius:var(--radius); overflow:hidden; border:6px solid #fff; box-shadow:0 30px 60px -20px rgba(11,58,52,0.30); aspect-ratio:3/4;}
.about-photo .frame img{width:100%; height:100%; object-fit:cover;}
.tag{position:absolute; top:-18px; left:-18px; background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:16px 18px; box-shadow:0 18px 34px -16px rgba(11,58,52,.25); max-width:220px; transform:rotate(-4deg);}
.tag .hole{width:10px;height:10px;border-radius:50%;background:var(--teal-900); position:absolute; top:14px; left:14px;}
.tag h5{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--blush-600); margin-bottom:8px; padding-left:20px;}
.tag p{font-size:13px; color:var(--ink-900); font-weight:600; margin:0 0 2px; padding-left:20px;}
.tag span{font-size:11px; color:var(--ink-700); padding-left:20px; display:block;}
.about-copy p{color:var(--ink-700); margin-bottom:16px; font-size:15.5px;}
.credential-row{display:flex; flex-wrap:wrap; gap:10px; margin:26px 0 8px;}
.pill{font-size:12.5px; font-weight:600; color:var(--teal-900); background:var(--mint-100); border:1px solid var(--mint-200); padding:8px 14px; border-radius:999px;}

/* ---------- GALLERY ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:180px; gap:12px;}
.gallery-grid .g-item{border-radius:14px; overflow:hidden; position:relative; background:var(--mint-100);}
.gallery-grid .g-item img{width:100%; height:100%; object-fit:cover; transition:transform .5s;}
.gallery-grid .g-item:hover img{transform:scale(1.07);}
.g1{grid-column:span 2; grid-row:span 2;}
.g2{grid-column:span 2; grid-row:span 1;}
.g3{grid-column:span 1; grid-row:span 1;}
.g4{grid-column:span 1; grid-row:span 1;}
.g5{grid-column:span 2; grid-row:span 1;}
.g6{grid-column:span 2; grid-row:span 1;}
.g-cap{position:absolute; left:0; right:0; bottom:0; padding:10px 14px; font-size:11.5px; color:#fff; background:linear-gradient(to top, rgba(11,58,52,.75), transparent); font-weight:600;}

/* ---------- TESTIMONIALS ---------- */
.testimonials{background:var(--teal-900); color:var(--mint-100);}
.testimonials .section-head h2, .testimonials .section-head p{color:#fff;}
.testimonials .section-head p{color:rgba(255,255,255,.75);}
.rating-block{display:flex; align-items:center; gap:24px; margin-bottom:44px; flex-wrap:wrap;}
.rating-big{font-family:'Fraunces',serif; font-size:64px; color:#fff; line-height:1;}
.rating-meta .stars{color:var(--gold-500); font-size:18px; letter-spacing:2px; margin-bottom:4px;}
.rating-meta span{font-size:13px; color:rgba(255,255,255,.7);}
.t-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.t-card{background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:16px; padding:26px;}
.t-card .stars{color:var(--gold-500); font-size:13px; margin-bottom:14px; letter-spacing:2px;}
.t-card p{font-size:14.5px; color:rgba(255,255,255,.85); margin-bottom:20px;}
.t-card .who{display:flex; align-items:center; gap:10px;}
.t-avatar{width:34px; height:34px; border-radius:50%; background:var(--blush-500); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:14px;}
.t-card .who b{font-size:13.5px; display:block; color:#fff;}
.t-card .who span{font-size:11.5px; color:rgba(255,255,255,.6);}

/* ---------- LOCATIONS ---------- */
.loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:8px;}
.loc-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px; display:flex; flex-direction:column; gap:16px;}
.loc-card .loc-top{display:flex; justify-content:space-between; align-items:flex-start;}
.loc-tag{font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; background:var(--mint-100); color:var(--teal-700); padding:5px 12px; border-radius:999px;}
.loc-card h3{font-size:21px;}
.loc-row{display:flex; gap:12px; font-size:14px; color:var(--ink-700);}
.loc-row svg{width:18px; height:18px; flex:none; stroke:var(--blush-600); margin-top:2px;}
.hours-table{width:100%; border-collapse:collapse; margin-top:6px;}
.hours-table td{padding:6px 0; font-size:13.5px; border-top:1px dashed var(--line);}
.hours-table td:first-child{color:var(--ink-700);}
.hours-table td:last-child{text-align:right; font-weight:600; color:var(--teal-900); font-family:'IBM Plex Mono',monospace; font-size:12.5px;}

/* ---------- CTA BAND ---------- */
.cta-section{background:linear-gradient(135deg, var(--blush-500), var(--blush-600)); color:#fff; border-radius:28px; padding:56px; margin:0 32px; max-width:1180px; margin-inline:auto; display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap;}
.cta-section h2{color:#fff; font-size:clamp(24px,3vw,34px); max-width:480px;}
.cta-section p{color:rgba(255,255,255,.85); margin-top:10px; max-width:420px;}
.cta-buttons{display:flex; gap:14px; flex-wrap:wrap;}
.cta-buttons .btn-primary{background:#fff; color:var(--blush-600);}
.cta-buttons .btn-primary:hover{background:var(--paper);}
.cta-buttons .btn-outline{border-color:rgba(255,255,255,.6); color:#fff;}
.cta-buttons .btn-outline:hover{background:#fff; color:var(--blush-600);}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:52px;}
.form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:32px;}
.form-card label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-700); margin-bottom:6px; margin-top:16px;}
.form-card label:first-child{margin-top:0;}
.form-card input, .form-card select, .form-card textarea{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font-family:'Inter'; font-size:14px; background:var(--paper);}
.form-card textarea{min-height:90px; resize:vertical;}
.form-card .btn{width:100%; justify-content:center; margin-top:24px;}
.map-embed{border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); height:100%; min-height:340px;}
.map-embed iframe{width:100%; height:100%; border:0; display:block;}

/* ---------- FOOTER ---------- */
footer{background:var(--ink-900); color:rgba(255,255,255,.7); padding:64px 0 28px; margin-top:96px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
.foot-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.foot-brand img{width:28px; height:28px; object-fit:contain;}
.foot-brand b{font-family:'Fraunces',serif; color:#fff; font-size:18px;}
.foot-col h5{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px; font-family:'IBM Plex Mono',monospace;}
.foot-col a, .foot-col p{display:block; font-size:14px; margin-bottom:10px; color:rgba(255,255,255,.65);}
.foot-col a:hover{color:#fff;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:12.5px; flex-wrap:wrap; gap:10px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .navlinks{display:none;}
  .nav-cta .btn-outline{display:none;}
  .menu-toggle{display:flex;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero-visual{order:-1; margin-bottom:20px;}
  .card-stack{margin:0 auto;}
  .about .wrap{grid-template-columns:1fr;}
  .about-photo{max-width:340px; margin:0 auto 60px;}
  .service-grid{grid-template-columns:repeat(2,1fr);}
  .t-grid{grid-template-columns:1fr;}
  .loc-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:140px;}
  .g1{grid-column:span 2;}
  .cta-section{flex-direction:column; text-align:center; margin:0 20px;}
  .section-pad{padding:64px 0;}
}
@media (max-width:560px){
  .wrap{padding:0 20px;}
  .service-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .trust-strip .wrap{flex-direction:column; align-items:flex-start;}
  .gallery-grid{grid-template-columns:1fr 1fr; grid-auto-rows:120px;}
}

@media (prefers-reduced-motion: reduce){
  .reveal{transition:none; opacity:1; transform:none;}
  .scan-bar{animation:none; display:none;}
}
