@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,650;0,9..144,760;1,9..144,520&family=DM+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --ad-ink:#13213f;
  --ad-ink-2:#263451;
  --ad-muted:#667085;
  --ad-paper:#f4ecd9;
  --ad-surface:#fffaf0;
  --ad-white:#ffffff;
  --ad-line:rgba(19,33,63,.12);
  --ad-line-strong:rgba(19,33,63,.22);
  --ad-blue:#1d4ed8;
  --ad-green:#0f6e56;
  --ad-gold:#b7791f;
  --ad-red:#b42318;
  --ad-shadow:0 18px 50px rgba(19,33,63,.10);
  --ad-shadow-soft:0 8px 28px rgba(19,33,63,.08);
  --ad-radius:8px;
}

html{scroll-behavior:smooth;}
body{
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif !important;
  color:var(--ad-ink);
  background:
    linear-gradient(180deg,#fbf7ee 0%,#f4ecd9 48%,#f8fafc 100%) !important;
  text-rendering:optimizeLegibility;
}
body::selection{background:#fde68a;color:#13213f;}

h1,h2,h3,.m-h1,.m-sec-title,.sec-title,.hero h1,.logo,.m-footer-logo{
  font-family:'Fraunces',Georgia,serif !important;
  letter-spacing:0 !important;
}

a{transition:color .18s ease,border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible,
summary:focus-visible{
  outline:2px solid #13213f;
  outline-offset:2px;
}

/* Respect users who prefer reduced motion (vestibular safety) */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Shared chrome */
header,
.m-topbar{
  border-bottom:1px solid rgba(19,33,63,.10) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7),0 10px 30px rgba(19,33,63,.05) !important;
}
header{
  background:rgba(255,250,240,.88) !important;
  backdrop-filter:blur(16px);
}
header .nav-cta,
.nav-cta,
.m-nav-cta,
.btn-pri,
.cta-btn,
.pkg-btn,
.btn-dl,
.s-cta,
.service-btn,
.m-cost-btn{
  border-radius:var(--ad-radius) !important;
  font-weight:800 !important;
  box-shadow:0 10px 24px rgba(19,33,63,.14) !important;
}
header .nav-cta:hover,
.nav-cta:hover,
.m-nav-cta:hover,
.btn-pri:hover,
.cta-btn:hover,
.pkg-btn:hover,
.btn-dl:hover,
.s-cta:hover,
.service-btn:hover,
.m-cost-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(19,33,63,.18) !important;
}

/* Homepage and city mobile-shell system, upgraded for desktop discipline */
.m-shell{
  background:
    linear-gradient(180deg,#fbf7ee 0%,#f4ecd9 52%,#fffaf0 100%) !important;
  color:var(--ad-ink) !important;
}
.m-shell::before{
  background-image:
    linear-gradient(rgba(19,33,63,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(19,33,63,.045) 1px,transparent 1px) !important;
  background-size:28px 28px !important;
  opacity:.75;
}
.m-topbar{
  border-radius:0 0 14px 14px;
}
.m-nav-links a{
  color:#46536f !important;
  font-weight:700 !important;
}
.m-nav-links a:hover{color:var(--ad-ink) !important;}
.m-city-chip{
  border-radius:var(--ad-radius) !important;
  border-color:var(--ad-line) !important;
  box-shadow:none !important;
}
.m-nav-cta{
  background:var(--ad-ink) !important;
  color:#fff !important;
}

@media (min-width:769px){
  .m-topbar{
    max-width:none !important;
    padding:16px max(32px,calc((100vw - 1240px)/2)) !important;
    background:rgba(251,247,238,.90) !important;
  }
  .m-hero{
    max-width:1180px !important;
    margin:0 auto !important;
    padding:86px 32px 72px !important;
    text-align:left !important;
    position:relative;
    display:block;
  }

  /* ─── Sample agreement preview (right side of hero) ─── */
  .m-hero-doc{
    position:absolute;
    top:96px;
    right:32px;
    width:min(36vw,380px);
    transform:rotate(2.2deg);
    z-index:1;
    pointer-events:none;
  }
  .m-hero-doc-back{
    position:absolute;
    inset:18px -14px -18px 14px;
    background:#fbf6ec;
    border:1px solid rgba(19,33,63,.10);
    border-radius:6px;
    transform:rotate(-4.5deg);
    box-shadow:0 16px 40px rgba(19,33,63,.10);
    z-index:0;
  }
  .m-hero-doc-page{
    position:relative;
    background:linear-gradient(180deg,#fffefb 0%,#fbf6ec 100%);
    border:1px solid rgba(19,33,63,.13);
    border-radius:6px;
    padding:32px 30px 26px;
    box-shadow:
      0 28px 60px rgba(19,33,63,.18),
      0 8px 18px rgba(19,33,63,.08);
    color:#13213f;
    font-family:'Inter',-apple-system,sans-serif;
    z-index:1;
  }
  .m-hero-doc-stamp{
    position:absolute;
    top:22px;
    right:-18px;
    background:#15803d;
    color:#fff;
    font-size:10px;
    font-weight:800;
    letter-spacing:0.20em;
    padding:7px 16px;
    border-radius:2px;
    transform:rotate(8deg);
    box-shadow:0 6px 14px rgba(21,128,61,.32);
    font-family:'Inter',sans-serif;
  }
  .m-hero-doc-stamp::after{
    content:'';
    position:absolute;
    inset:3px;
    border:1px solid rgba(255,255,255,.55);
    border-radius:1px;
    pointer-events:none;
  }
  .m-hero-doc-eyebrow{
    font-size:9px;
    font-weight:700;
    letter-spacing:0.18em;
    color:#6b7388;
    text-transform:uppercase;
    margin-bottom:10px;
  }
  .m-hero-doc-title{
    font-family:'Fraunces',Georgia,serif;
    font-size:22px;
    font-weight:700;
    line-height:1.08;
    letter-spacing:-0.02em;
    margin-bottom:14px;
  }
  .m-hero-doc-rule{
    height:1px;
    background:linear-gradient(90deg,rgba(19,33,63,.28) 0%,rgba(19,33,63,.05) 80%,transparent 100%);
    margin-bottom:14px;
  }
  .m-hero-doc-meta{
    display:flex;
    flex-direction:column;
    gap:5px;
    margin-bottom:16px;
    padding:11px 13px;
    background:rgba(19,33,63,.04);
    border-radius:5px;
  }
  .m-hero-doc-meta > div{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    font-size:10.5px;
  }
  .m-hero-doc-meta span{color:#6b7388; font-weight:500;}
  .m-hero-doc-meta strong{color:#13213f; font-weight:600; font-variant-numeric:tabular-nums;}
  .m-hero-doc-section{margin-bottom:11px;}
  .m-hero-doc-section-lbl{
    font-size:8.5px;
    font-weight:700;
    letter-spacing:0.18em;
    color:#9ca3af;
    text-transform:uppercase;
    margin-bottom:3px;
  }
  .m-hero-doc-section-val{
    font-size:12.5px;
    font-weight:600;
    color:#13213f;
    line-height:1.35;
  }
  .m-hero-doc-section-sub{
    font-size:10px;
    color:#6b7388;
    margin-top:2px;
    font-variant-numeric:tabular-nums;
  }
  .m-hero-doc-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 18px;
    padding:13px 0;
    border-top:1px dashed rgba(19,33,63,.18);
    border-bottom:1px dashed rgba(19,33,63,.18);
    margin:14px 0 18px;
  }
  .m-hero-doc-grid > div{display:flex; flex-direction:column;}
  .m-hero-doc-grid span{
    font-size:8.5px;
    font-weight:700;
    letter-spacing:0.16em;
    color:#9ca3af;
    text-transform:uppercase;
    margin-bottom:3px;
  }
  .m-hero-doc-grid strong{
    font-size:13px;
    font-weight:700;
    color:#13213f;
    font-variant-numeric:tabular-nums;
  }
  .m-hero-doc-sign{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
    margin-top:4px;
  }
  .m-hero-doc-sign-block{display:flex; flex-direction:column; position:relative;}
  .m-hero-doc-sign-mark{
    width:90%;
    height:24px;
    opacity:.78;
    margin-bottom:-6px;
    margin-left:4px;
  }
  .m-hero-doc-sign-line{
    height:1px;
    background:rgba(19,33,63,.35);
    margin-bottom:5px;
  }
  .m-hero-doc-sign-lbl{
    font-size:9px;
    font-weight:700;
    letter-spacing:0.16em;
    color:#9ca3af;
    text-transform:uppercase;
  }
  @media (max-width:980px){
    .m-hero-doc{width:min(38vw,320px); top:120px;}
    .m-hero-doc-title{font-size:19px;}
    .m-hero-doc-page{padding:26px 24px 22px;}
  }

  /* Karnataka e-stamp variant — amber NOTARISED stamp */
  .m-hero-doc--karnataka .m-hero-doc-stamp{
    background:#b45309;
    box-shadow:0 6px 14px rgba(180,83,9,.34);
  }
  .m-hero-doc--karnataka .m-hero-doc-page{
    background:linear-gradient(180deg,#fffdf6 0%,#faf3e3 100%);
  }
  .m-hero-doc--karnataka .m-hero-doc-title{
    font-size:20px;
  }

  .m-trust-badge,
  .m-h1,
  .m-hero-sub,
  .m-cta-card,
  .m-counter,
  .m-hero-trust{
    margin-left:0 !important;
    margin-right:0 !important;
    position:relative;
    z-index:2;
  }
  .m-h1{
    font-size:clamp(70px,8vw,104px) !important;
    max-width:720px !important;
    line-height:.93 !important;
    margin-bottom:28px !important;
  }
  .m-h1 em{color:var(--ad-green) !important;}
  .m-hero-sub{
    max-width:610px !important;
    font-size:18px !important;
    color:#4f5d75 !important;
  }
  .m-cta-card{
    max-width:440px !important;
    border-radius:10px !important;
    background:var(--ad-ink) !important;
  }
  .m-counter{justify-content:flex-start !important;}
  .m-hero-trust{justify-content:flex-start !important;max-width:680px;}
  .m-hero-trust a,
  .m-hero-trust span{
    background:rgba(255,255,255,.58);
    border:1px solid rgba(19,33,63,.10);
    border-radius:999px;
    padding:8px 12px;
  }
  .m-stats{
    max-width:1020px !important;
    border-radius:10px !important;
    box-shadow:var(--ad-shadow-soft);
  }
  .m-stat-num{font-size:34px !important;}
  .m-sec{padding-top:96px !important;}
  .m-sec-head{
    border-bottom:1px solid var(--ad-line);
    padding-bottom:18px;
  }
  .m-svc{
    border-radius:10px !important;
    background:rgba(255,250,240,.82) !important;
    border-color:var(--ad-line) !important;
    box-shadow:0 1px 0 rgba(255,255,255,.8);
  }
  .m-svc:hover{
    transform:translateY(-5px);
    border-color:var(--ad-line-strong) !important;
    box-shadow:var(--ad-shadow-soft);
  }
}

@media (max-width:768px){
  .m-cta-card,.m-svc,.m-stats,.m-faq-item,.m-city-card,.m-pkg-card,.m-calc{border-radius:10px !important;}
  .m-hero-doc{display:none !important;}
}

/* City/service section discipline */
.sec-w,.sec-g,.sec-a,.sec-d,.dk-section,.calculator-section{
  padding-top:80px !important;
  padding-bottom:80px !important;
}
.sec-title,.dk-title,.section-title{
  color:var(--ad-ink) !important;
  font-weight:760 !important;
}
.sec-sub,.dk-sub,.section-subtitle{
  color:var(--ad-muted) !important;
}
.step-card,.doc-card,.area-card,.pkg,.feat-card,.service-card,.testi-card,.usecase-card,.calculator-container,.content-band,.dl-card,.preview-box,.faq-item,.s-card{
  border-radius:var(--ad-radius) !important;
  border-color:var(--ad-line) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7);
}
.step-card:hover,.doc-card:hover,.area-card:hover,.pkg:hover,.feat-card:hover,.service-card:hover,.testi-card:hover,.usecase-card:hover,.dl-card:hover,.s-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--ad-shadow-soft) !important;
}

/* Premium blog/resource layout */
body:has(.layout) header,
body:has(.wrap) header{
  height:72px !important;
  padding-left:max(24px,calc((100vw - 1180px)/2)) !important;
  padding-right:max(24px,calc((100vw - 1180px)/2)) !important;
}
body:has(.layout) .hero,
body:has(.wrap) .hero{
  background:
    linear-gradient(135deg,rgba(19,33,63,.98),rgba(15,110,86,.92)) !important;
  padding:70px 24px 58px !important;
  text-align:left !important;
  border-bottom:1px solid rgba(19,33,63,.16);
}
body:has(.layout) .hero > *,
body:has(.wrap) .hero > *{
  max-width:1040px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body:has(.layout) .hero h1,
body:has(.wrap) .hero h1{
  font-size:clamp(38px,5vw,66px) !important;
  line-height:1.02 !important;
  max-width:900px !important;
  margin-bottom:18px !important;
}
body:has(.layout) .hero-sub,
body:has(.wrap) .hero p:not(.breadcrumb){
  max-width:760px !important;
  color:rgba(255,250,240,.78) !important;
  font-size:17px !important;
  line-height:1.65 !important;
}
body:has(.layout) .breadcrumb,
body:has(.wrap) .breadcrumb{
  color:#fde68a !important;
}
body:has(.layout) .tag,
body:has(.wrap) .hero-tag{
  border-radius:999px !important;
  background:rgba(253,230,138,.14) !important;
  border:1px solid rgba(253,230,138,.34) !important;
  color:#fde68a !important;
}
.layout{
  max-width:1180px !important;
  gap:42px !important;
  grid-template-columns:minmax(0,1fr) 320px !important;
}
article{
  background:transparent;
}
article h2{
  font-size:clamp(28px,3vw,40px) !important;
  line-height:1.12 !important;
  color:var(--ad-ink) !important;
  margin-top:52px !important;
}
article h3{color:var(--ad-ink) !important;}
article p,article li{
  color:#344054 !important;
  font-size:16px !important;
}
/* Dark service/CTA cards inside <article>: keep their text light (override the dark !important rules above). Buttons keep their own colours. */
.cta-block h3,.ad-service-card h3{color:#ffffff !important;}
.cta-block p{color:rgba(255,255,255,0.82) !important;}
.ad-service-card p{color:rgba(255,255,255,0.82) !important;}
.ad-service-card li{color:rgba(255,255,255,0.85) !important;}
article a{color:var(--ad-blue) !important;}
.kw-answer,.info-box,.warning-box,.service-link-panel,.cta-block,.related-inline{
  border-radius:var(--ad-radius) !important;
  border:1px solid var(--ad-line) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.7);
}
.service-link-panel{
  background:#fffaf0 !important;
  border-left:4px solid var(--ad-green) !important;
}
.sidebar{top:96px !important;}
.s-card{
  background:rgba(255,255,255,.86) !important;
  backdrop-filter:blur(10px);
}
.s-card:first-child{
  background:linear-gradient(150deg,var(--ad-ink),#0f6e56) !important;
}
.s-link{
  border-bottom:1px solid rgba(19,33,63,.08);
  padding:9px 0 !important;
}

/* Template and resource pages */
.wrap{max-width:1080px !important;}
.dl-grid{gap:18px !important;}
.dl-card{
  background:rgba(255,255,255,.90) !important;
}
.dl-card h3,.content-band h2,.preview-header h3{
  color:var(--ad-ink) !important;
}
.content-band{
  background:rgba(255,255,255,.90) !important;
  box-shadow:var(--ad-shadow-soft);
}
.compare-table th{
  background:var(--ad-ink) !important;
}

/* Unified footers (legacy dark footers only — the new .m-ftr is excluded) */
footer:not(.m-ftr),.site-footer{
  background:var(--ad-ink) !important;
  color:rgba(255,250,240,.70) !important;
}
footer:not(.m-ftr) a,.site-footer a{
  color:rgba(255,250,240,.86) !important;
}
footer:not(.m-ftr) a:hover,.site-footer a:hover{
  color:#fde68a !important;
}
.m-footer .m-footer-logo{
  color:#fffaf0 !important;
}
.m-footer .m-footer-logo > span{
  color:rgba(255,250,240,.55) !important;
}

@media (max-width:900px){
  .layout{grid-template-columns:1fr !important;}
  body:has(.layout) .hero,
  body:has(.wrap) .hero{text-align:center !important;}
  body:has(.layout) .hero h1,
  body:has(.wrap) .hero h1{font-size:34px !important;}
}

@media (max-width:640px){
  body:has(.layout) header,
  body:has(.wrap) header{
    height:72px !important;
    padding:0 16px !important;
    gap:12px;
  }
  body:has(.layout) header svg,
  body:has(.wrap) header svg{
    width:188px !important;
    max-width:54vw !important;
  }
  body:has(.layout) header .nav-cta,
  body:has(.wrap) header .nav-cta{
    max-width:118px;
    min-height:40px;
    padding:9px 10px !important;
    font-size:12px !important;
    line-height:1.15;
    text-align:center;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  body:has(.layout) .hero,
  body:has(.wrap) .hero{
    padding:56px 22px 46px !important;
  }
  body:has(.layout) .hero h1,
  body:has(.wrap) .hero h1{
    font-size:32px !important;
    line-height:1.08 !important;
  }
  body:has(.layout) .hero-sub,
  body:has(.wrap) .hero p:not(.breadcrumb){
    font-size:16px !important;
  }
}
