/* Exactitude International — microsite design system
   Namespaced under .exi-ms so it cannot leak into the theme.
   Derived from the approved Doing Business in India build, 2026-07-31.
   v1.0.2, 2026-07-31: hero and page-hero headings moved from h1 to h2.
   Site header, footer, nav and breadcrumb rules removed: WordPress provides those. */

.exi-ms{--blue:#272361;
  --blue-deep:#1b1847;
  --blue-soft:#eceaf4;
  --blue-faint:#f5f4fa;
  --brown:#412312;
  --brown-soft:#f6f1ec;
  --red:#d83030;
  --ink:#20242f;
  --slate:#59606f;
  --tint:#f8f8fa;
  --paper:#ffffff;
  --line:#e6e7ee;
  --line-dark:#d5d7e2;
  --shadow:0 14px 40px rgba(39,35,97,.08);
  --maxw:1180px;}
.exi-ms *{box-sizing:border-box;margin:0;padding:0}
.exi-ms{font-family:'Fira Sans',Calibri,Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;}
.exi-ms h1, .exi-ms h2, .exi-ms h3, .exi-ms h4{color:var(--blue);line-height:1.18;font-weight:600;letter-spacing:-.015em}
.exi-ms h1{font-size:clamp(2.1rem,4.8vw,3.55rem);font-weight:600}
.exi-ms h2{font-size:clamp(1.5rem,3vw,2.15rem)}
.exi-ms h3{font-size:1.14rem;letter-spacing:0}
.exi-ms p{margin:0 0 1rem}
.exi-ms a{color:var(--blue)}
.exi-ms img{max-width:100%}
.exi-ms .container{max-width:var(--maxw);margin:0 auto;padding:0 26px}
.exi-ms .eyebrow{display:block;font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brown);margin-bottom:1rem}
.exi-ms .lead{font-size:1.16rem;color:var(--slate);max-width:58ch;font-weight:400}
.exi-ms .center{text-align:center}
.exi-ms .center .lead{margin-left:auto;margin-right:auto}
.exi-ms .btn{display:inline-block;padding:14px 30px;font-weight:600;text-decoration:none;font-size:.94rem;border:0;cursor:pointer;letter-spacing:.03em;transition:background .15s ease,color .15s ease,border-color .15s ease}
.exi-ms .btn-red{background:var(--red);color:#fff}
.exi-ms .btn-red:hover{background:#b92626}
.exi-ms .btn-blue{background:var(--blue);color:#fff}
.exi-ms .btn-blue:hover{background:var(--blue-deep)}
.exi-ms .btn-line{border:1px solid var(--line-dark);color:var(--blue);background:transparent}
.exi-ms .btn-line:hover{border-color:var(--blue);background:var(--blue-faint)}
.exi-ms .btn-line.on-dark{border:1px solid var(--line-dark);color:var(--blue)}
.exi-ms .btn-line.on-dark:hover{border-color:var(--blue);background:var(--blue-faint)}
.exi-ms .hero{background:var(--paper);padding:104px 0 88px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.exi-ms .hero::after{content:"";position:absolute;right:-190px;top:-190px;width:560px;height:560px;transform:rotate(45deg);border:1px solid var(--blue-soft)}
.exi-ms .hero::before{content:"";position:absolute;right:-60px;top:-60px;width:300px;height:300px;transform:rotate(45deg);border:1px solid var(--line)}
.exi-ms .hero h1{color:var(--blue)}
/* The microsite headline is an <h2>, not an <h1>: the WordPress theme already
   renders the page title as the document's single <h1>, and two h1 elements
   break the semantic heading hierarchy the Brand Guidelines require. These
   rules restore the intended visual weight. The h1 rules above are retained
   so the standalone build and any older page still render correctly. */
.exi-ms .hero h2{font-size:clamp(2.1rem,4.8vw,3.55rem);font-weight:600;color:var(--blue);line-height:1.18;letter-spacing:-.015em}
.exi-ms .hero .lead{color:var(--slate);margin-top:1.3rem}
.exi-ms .hero-grid{display:grid;grid-template-columns:1.22fr .88fr;gap:64px;align-items:center;position:relative;z-index:1}
.exi-ms .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:2.1rem}
.exi-ms .hero-points{list-style:none;margin-top:2rem;display:grid;gap:.7rem;color:#3a4050;font-size:.95rem}
.exi-ms .hero-points li{padding-left:1.7em;position:relative}
.exi-ms .hero-points li::before{content:"";position:absolute;left:.15em;top:.52em;width:.55em;height:.55em;transform:rotate(45deg);background:var(--red)}
.exi-ms .stat-card{background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--blue);padding:38px 36px;position:relative;z-index:1}
.exi-ms .stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 26px}
.exi-ms .stat .num{font-size:2.15rem;font-weight:600;color:var(--blue);letter-spacing:-.02em;line-height:1.1}
.exi-ms .stat .lbl{font-size:.81rem;color:var(--slate);line-height:1.5;margin-top:.35rem}
.exi-ms .stat-note{font-size:.71rem;color:#8b93a5;margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.exi-ms section{padding:88px 0}
.exi-ms section.tint{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.exi-ms section.dark{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.exi-ms .sec-head{max-width:800px;margin-bottom:3rem}
.exi-ms .sec-head .lead{margin-top:1rem}
.exi-ms .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.exi-ms .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.exi-ms .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.exi-ms .card{background:var(--paper);border:1px solid var(--line);padding:34px 30px;transition:border-color .2s ease,box-shadow .25s ease}
.exi-ms .card:hover{border-color:var(--line-dark);box-shadow:var(--shadow)}
.exi-ms .card h3{margin-bottom:.7rem}
.exi-ms .card p{color:var(--slate);font-size:.94rem;margin-bottom:.5rem}
.exi-ms .card .icon{width:40px;height:40px;border:1px solid var(--blue);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:1.05rem;margin-bottom:22px;transform:rotate(45deg)}
.exi-ms .card .icon span{transform:rotate(-45deg);font-weight:600}
.exi-ms .card a.more{font-weight:600;font-size:.88rem;text-decoration:none;color:var(--red);letter-spacing:.02em}
.exi-ms .card a.more::after{content:" →"}
.exi-ms .card.link-card{display:block;text-decoration:none}
.exi-ms .steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line)}
.exi-ms .step{position:relative;background:var(--paper);padding:34px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.exi-ms .step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-weight:600;font-size:.85rem;letter-spacing:.14em;color:var(--brown);display:block;margin-bottom:14px}
.exi-ms .step h3{font-size:1.04rem;margin-bottom:.55rem}
.exi-ms .step p{font-size:.9rem;color:var(--slate);margin:0}
.exi-ms .qchips{display:flex;flex-wrap:wrap;gap:12px}
.exi-ms .qchip{display:inline-block;padding:12px 20px;background:var(--paper);border:1px solid var(--line-dark);color:var(--blue);font-weight:500;font-size:.91rem;text-decoration:none;transition:all .15s ease}
.exi-ms .qchip:hover{border-color:var(--blue);background:var(--blue-faint)}
.exi-ms .tbl-wrap{overflow-x:auto;border:1px solid var(--line)}
.exi-ms table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fff;min-width:640px}
.exi-ms th{background:var(--paper);color:var(--blue);text-align:left;padding:15px 18px;font-weight:600;font-size:.83rem;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--blue)}
.exi-ms td{padding:15px 18px;border-top:1px solid var(--line);vertical-align:top;color:var(--ink)}
.exi-ms td b{color:var(--blue)}
.exi-ms details.faq{background:var(--paper);border:1px solid var(--line);border-left:2px solid var(--blue);margin-bottom:12px;overflow:hidden}
.exi-ms details.faq summary{cursor:pointer;padding:19px 24px;font-weight:600;color:var(--blue);list-style:none;display:flex;justify-content:space-between;gap:14px;font-size:1rem}
.exi-ms details.faq summary::-webkit-details-marker{display:none}
.exi-ms details.faq summary::after{content:"+";font-size:1.3rem;color:var(--red);flex-shrink:0;font-weight:400;line-height:1}
.exi-ms details.faq[open] summary::after{content:"–"}
.exi-ms details.faq .a{padding:0 24px 22px;color:var(--slate);font-size:.95rem}
.exi-ms details.faq .a p{margin-bottom:.6rem}
.exi-ms details.faq .a ul{margin:0 0 .6rem 1.2rem}
.exi-ms details.faq .a li{margin-bottom:.3rem}
.exi-ms ul.check{list-style:none;display:grid;gap:.75rem;margin:0 0 1rem}
.exi-ms ul.check li{padding-left:1.9em;position:relative;color:var(--ink)}
.exi-ms ul.check li::before{content:"";position:absolute;left:.2em;top:.5em;width:.55em;height:.55em;transform:rotate(45deg);border:1.5px solid var(--brown)}
.exi-ms ul.plain{margin:0 0 1rem 1.25rem}
.exi-ms ul.plain li{margin-bottom:.45rem;color:var(--ink)}
.exi-ms .cta-band{background:var(--blue);padding:60px 56px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:34px;flex-wrap:wrap;position:relative;overflow:hidden}
.exi-ms .cta-band::after{content:"";position:absolute;left:-120px;bottom:-170px;width:340px;height:340px;transform:rotate(45deg);border:1px solid rgba(255,255,255,.18)}
.exi-ms .cta-band h2{color:#fff;margin-bottom:.5rem}
.exi-ms .cta-band p{color:#c3c6dd;margin:0;max-width:52ch}
.exi-ms .cta-band .btn{position:relative;z-index:1}
.exi-ms .prose{max-width:820px}
.exi-ms .prose h2{margin:2.8rem 0 1rem;padding-top:1rem}
.exi-ms .prose h3{margin:1.9rem 0 .6rem}
.exi-ms .prose p{color:#333a4d}
.exi-ms .callout{border:1px solid var(--line);border-left:2px solid var(--brown);background:var(--brown-soft);padding:20px 24px;margin:1.5rem 0;font-size:.95rem}
.exi-ms .callout b{color:var(--brown)}
.exi-ms .note{font-size:.85rem;color:var(--slate)}
.exi-ms .page-grid{display:grid;grid-template-columns:1fr 320px;gap:52px;align-items:start}
.exi-ms .aside{position:sticky;top:118px;display:grid;gap:20px}
.exi-ms .aside .card{padding:26px}
.exi-ms .aside .card h3{font-size:1rem}
.exi-ms .aside .card p{font-size:.88rem}
.exi-ms .page-hero{background:var(--paper);padding:72px 0 56px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.exi-ms .page-hero::after{content:"";position:absolute;right:-150px;top:-150px;width:400px;height:400px;transform:rotate(45deg);border:1px solid var(--blue-soft)}
.exi-ms .page-hero h1{color:var(--blue);font-size:clamp(1.9rem,3.8vw,2.85rem);max-width:22ch}
.exi-ms .page-hero h2{color:var(--blue);font-size:clamp(1.9rem,3.8vw,2.85rem);max-width:22ch;line-height:1.18;letter-spacing:-.015em}
.exi-ms .page-hero .lead{color:var(--slate);margin-top:1rem}
.exi-ms .page-hero .eyebrow{color:var(--brown)}
.exi-ms form.enquiry{display:grid;gap:18px}
.exi-ms .frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.exi-ms label{font-weight:600;font-size:.86rem;color:var(--blue);display:block;margin-bottom:7px;letter-spacing:.01em}
.exi-ms input, .exi-ms select, .exi-ms textarea{width:100%;padding:13px 15px;border:1px solid var(--line-dark);font:inherit;font-size:.95rem;background:#fff;color:var(--ink)}
.exi-ms input:focus, .exi-ms select:focus, .exi-ms textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(39,35,97,.10)}
.exi-ms textarea{min-height:130px;resize:vertical}
.exi-ms .consent{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--slate)}
.exi-ms .consent input{width:auto;margin-top:3px}
.exi-ms .trust{display:flex;flex-wrap:wrap;gap:14px 44px;align-items:center;justify-content:center;padding:30px 0;color:var(--slate);font-size:.86rem;font-weight:500;letter-spacing:.02em}
.exi-ms .trust .t{display:flex;align-items:center;gap:10px}
.exi-ms .trust .t::before{content:"";width:.5em;height:.5em;transform:rotate(45deg);background:var(--brown);opacity:.7}

@media (max-width:960px){
  .exi-ms .hero-grid, .exi-ms .grid-3, .exi-ms .grid-4, .exi-ms .page-grid{grid-template-columns:1fr 1fr}
  .exi-ms .steps{grid-template-columns:1fr 1fr}
  .exi-ms .page-grid{grid-template-columns:1fr}
  .exi-ms .aside{position:static}
}

@media (max-width:680px){
  .exi-ms .grid-2, .exi-ms .grid-3, .exi-ms .grid-4, .exi-ms .steps, .exi-ms .hero-grid, .exi-ms .frow, .exi-ms .stat-grid{grid-template-columns:1fr}
  .exi-ms section{padding:56px 0}
  .exi-ms .hero{padding:64px 0 56px}
  .exi-ms .cta-band{padding:40px 28px}
}

/* ---------- Contact Form 7 compatibility ----------
   CF7 renders its own markup, which does not match the static build's form.
   These rules reconcile the two. Without them the submit button stretches to
   full width, because the generic input rule above sets width:100%. */
.exi-ms .wpcf7-form{display:grid;gap:18px}
.exi-ms .wpcf7-form input[type="submit"], .exi-ms .wpcf7-form button[type="submit"]{width:auto}
.exi-ms .wpcf7-form-control-wrap{display:block}
.exi-ms .wpcf7-list-item{margin:0}
.exi-ms .wpcf7-acceptance input[type="checkbox"]{width:auto;margin-top:3px}
.exi-ms .wpcf7-not-valid-tip{color:var(--red);font-size:.82rem;margin-top:6px;font-weight:500}
.exi-ms .wpcf7-form input.wpcf7-not-valid, .exi-ms .wpcf7-form select.wpcf7-not-valid, .exi-ms .wpcf7-form textarea.wpcf7-not-valid{border-color:var(--red)}
.exi-ms .wpcf7-response-output{border:1px solid var(--line-dark);padding:13px 15px;margin:0;font-size:.9rem;color:var(--ink)}
.exi-ms .wpcf7-spinner{margin:0 0 0 12px}
