/* Shared production states and utilities */
:root{--utility-bg:#FFFFFF;--utility-text:#111;--utility-border:#dedede;--utility-muted:#6f6f6f;--utility-accent:#12b33f;--utility-error:#c62828}
.site-loader{position:fixed;inset:0;z-index:20000;display:grid;place-content:center;gap:22px;background:#FFFCF5;color:#000;transition:opacity .45s ease,visibility .45s ease}
.site-loader.is-complete{opacity:0;visibility:hidden;pointer-events:none}
.site-loader-mark{font:800 clamp(48px,8vw,84px)/1 'Geist','Inter',-apple-system,sans-serif;letter-spacing:-.08em;text-align:center}
.site-loader-track{width:min(240px,64vw);height:3px;background:#ddd;overflow:hidden}
.site-loader-track span{display:block;width:42%;height:100%;background:#000;animation:site-load 1s cubic-bezier(.65,0,.35,1) infinite}
@keyframes site-load{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}
.site-toolbar{position:fixed;z-index:9000;top:0;left:0;right:0;height:56px;display:flex;align-items:center;justify-content:center;background:#000;color:#fff;border-bottom:1px solid #2d2d2d;font:700 12px/1 'Geist','Inter',-apple-system,sans-serif}
.site-toolbar-inner{width:min(1200px,100%);padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.site-toolbar-label{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.site-toolbar-actions,.site-toolbar-group{display:flex;align-items:center;gap:6px}
.site-toolbar .toolbar-button{height:44px;min-width:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #484848!important;border-radius:999px;background:#050505!important;color:#f5f5f5!important;font:700 12px/1 'Geist','Inter',-apple-system,sans-serif!important;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.site-toolbar .toolbar-button:hover,.site-toolbar .toolbar-button[aria-pressed="true"]{background:#2b2d31!important;color:#fff!important;border-color:#777b82!important}
.site-toolbar .toolbar-button::before,.site-toolbar .toolbar-button::after{color:inherit!important}
.toolbar-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.toolbar-currency{height:44px;border:1px solid #484848;border-radius:999px;background:#000;color:#fff;padding:0 24px 0 10px;font:700 12px/1 'Geist','Inter',-apple-system,sans-serif;cursor:pointer;color-scheme:dark}
.toolbar-currency:focus-visible,.toolbar-button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.toolbar-divider{width:1px;height:18px;background:#444;margin:0 2px}
.sc-host{padding-top:56px}
nav{top:70px!important}
.ux4g-launcher-original{display:none!important}
.copyrights-accessibility{display:none!important}
[role="dialog"][aria-label="Accessibility options"]{background:#FFFCF5!important;color:#111!important;border:1px solid #d8d8d8!important;box-shadow:0 24px 70px rgba(0,0,0,.24)!important}
[role="dialog"][aria-label="Accessibility options"] button{background:#FFFCF5!important;color:#111!important;border-color:#d8d8d8!important}
[role="dialog"][aria-label="Accessibility options"] button:hover,[role="dialog"][aria-label="Accessibility options"] button:focus-visible{background:#111!important;color:#fff!important;border-color:#111!important}
[role="dialog"][aria-label="Accessibility options"] svg,[role="dialog"][aria-label="Accessibility options"] svg *{fill:none!important;stroke:currentColor!important}
.skip-link{position:fixed;left:16px;top:-80px;z-index:10000;background:#000;color:#fff!important;padding:12px 18px;border-radius:12px;font-weight:700;transition:top .2s}
.skip-link:focus{top:52px}
section[id]{scroll-margin-top:148px}
.offline-banner{position:fixed;top:0;left:50%;transform:translate(-50%,-120%);z-index:9999;background:#171717;color:#fff;padding:10px 18px;border-radius:0 0 12px 12px;font:700 13px/1.3 'Geist','Inter',-apple-system,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.2);transition:transform .25s}
.offline-banner.is-visible{transform:translate(-50%,0)}
.site-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:10000;opacity:0;background:#111;color:#fff;padding:11px 16px;border-radius:999px;font:700 13px/1.2 'Geist','Inter',-apple-system,sans-serif;pointer-events:none;transition:.2s}
.site-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.copy-button{margin-left:8px;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--utility-border);background:transparent;color:inherit;border-radius:50%;padding:0;cursor:pointer;vertical-align:middle}
.copy-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.copy-button:hover{border-color:var(--utility-accent);color:var(--utility-accent)}
.back-to-top{position:fixed;right:24px;bottom:132px;z-index:59;width:42px;height:42px;border:1px solid var(--utility-border);border-radius:50%;background:var(--utility-bg);color:var(--utility-text);font-size:18px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.12);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.empty-state{grid-column:1/-1;padding:44px 24px;border:1px dashed var(--utility-border);border-radius:16px;text-align:center;background:var(--utility-bg)}
.empty-state strong{display:block;font-size:18px;margin-bottom:6px}
.empty-state span{color:var(--utility-muted);font-size:14px}
.skeleton-active{position:relative;overflow:hidden}
.skeleton-active::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,#eee 20%,#f8f8f8 40%,#eee 60%);background-size:300% 100%;animation:skeleton-sweep 1.25s infinite}
@keyframes skeleton-sweep{to{background-position:-150% 0}}
.form-status{display:none;margin-top:18px;padding:14px 16px;border-radius:12px;font-size:14px;font-weight:650;line-height:1.5}
.form-status.is-visible{display:block}
.form-status.is-success{background:#e8f7ec;color:#126b2b;border:1px solid #b9e2c3}
.form-status.is-error{background:#fff0f0;color:#9f1f1f;border:1px solid #efc1c1}
.form-submit[disabled]{opacity:.6;cursor:wait}
html:has(body[data-om-theme="dark"]),html body[data-om-theme="dark"]{background:#131313!important;color-scheme:dark}
[data-om-theme="dark"],[data-om-theme="dark"] #dc-root,[data-om-theme="dark"] .sc-host{background:#131313!important;color:#fff!important;color-scheme:dark}
[data-om-theme="dark"] [style*="background:#F7F3EA"]{background:#131313!important;color:#fff!important}
html[data-om-theme="dark"],html[data-om-theme="dark"] body,html body[data-om-theme="dark"],html body[data-om-theme="dark"] #dc-root,html body[data-om-theme="dark"] #dc-root > .sc-host{background:#131313!important;color:#fff!important}
html body[data-om-theme="dark"] #dc-root > .sc-host > div:first-child,html[data-om-theme="dark"] body #dc-root > .sc-host > div:first-child{background:#131313!important;color:#fff!important}
html body[data-om-theme="dark"] #dc-root section,html[data-om-theme="dark"] body #dc-root section{background-color:transparent!important}
[data-om-theme="dark"] #dc-root{filter:none!important}
[data-om-theme="dark"] .sc-host{background:#131313!important}
[data-om-theme="dark"] img,[data-om-theme="dark"] picture,[data-om-theme="dark"] video{filter:none!important;opacity:1!important}
body[data-om-theme="dark"] .projects-grid > div > a > div{background:#d4d7db!important;border-color:#eef0f2!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 18px 44px rgba(0,0,0,.22)!important}
body[data-om-theme="dark"] .projects-grid > div > a > div > span{background:rgba(255,255,255,.92)!important;color:#000!important;-webkit-text-fill-color:#000!important}
[data-om-theme="dark"] [role="dialog"][aria-label="Accessibility options"]{background:#171717!important;color:#fff!important;border-color:#3b3b3b!important;filter:none!important}
[data-om-theme="dark"] [role="dialog"][aria-label="Accessibility options"] button{background:#1d1d1d!important;color:#fff!important;border-color:#414141!important}
[data-om-theme="dark"] [role="dialog"][aria-label="Accessibility options"] button:hover,[data-om-theme="dark"] [role="dialog"][aria-label="Accessibility options"] button:focus-visible{background:#fff!important;color:#000!important;border-color:#fff!important}
[data-om-theme="dark"] .site-loader{background:#131313;color:#fff}[data-om-theme="dark"] .site-loader-track{background:#333}[data-om-theme="dark"] .site-loader-track span{background:#fff}
[data-om-theme="dark"] nav,[data-om-theme="dark"] [style*="background:#fff"],[data-om-theme="dark"] [style*="background:#ffffff"],[data-om-theme="dark"] [style*="background:#FFFCF5"],[data-om-theme="dark"] .mobile-menu-panel,[data-om-theme="dark"] .project-button,[data-om-theme="dark"] .empty-state{background:#1B1B1B!important;color:#fff!important;border-color:#333!important}
[data-om-theme="dark"] [style*="background:#F0F0F0"],[data-om-theme="dark"] [style*="background:#f0f0f0"]{background:#222!important;color:#fff!important}
[data-om-theme="dark"] section,[data-om-theme="dark"] [style*="border-bottom:1px solid #DEDEDE"],[data-om-theme="dark"] [style*="border-top:1px solid #DEDEDE"]{border-color:#2f2f2f!important}
[data-om-theme="dark"] [style*="color:#6f6f6f"]{color:#a6a6a6!important;-webkit-text-fill-color:#a6a6a6!important}
[data-om-theme="dark"] [style*="color:#000"]{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] [style*="color:#333"]{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] [style*="color:#4a4a4a"]{color:#cfcfcf!important;-webkit-text-fill-color:#cfcfcf!important}
html body[data-om-theme="dark"] #dc-root a:not(.project-button-case-study):not(.project-link),html body[data-om-theme="dark"] #dc-root footer a,html body[data-om-theme="dark"] #dc-root nav a{color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:none!important;filter:none!important}
html body[data-om-theme="dark"] #dc-root nav,html body[data-om-theme="dark"] #dc-root nav *{color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:none!important}
[data-om-theme="dark"] .project-link{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .project-button-case-study{background:#fff!important;border-color:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important}
[data-om-theme="dark"] [style*="color:#12B33F"],[data-om-theme="dark"] [style*="color:#12b33f"]{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] [style*="color:#0c7d2c"]{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .form-field input:focus,[data-om-theme="dark"] .form-field select:focus,[data-om-theme="dark"] .form-field textarea:focus{border-color:#fff!important;box-shadow:0 0 0 4px rgba(255,255,255,.14)!important}
[data-om-theme="dark"] .project-button:hover,[data-om-theme="dark"] .copy-button:hover{background:#292929!important;border-color:#666!important;color:#fff!important}
[data-om-theme="dark"] .service-icon,[data-om-theme="dark"] .form-submit{background:#fff!important;color:#000!important}
[data-om-theme="dark"] .form-field input,[data-om-theme="dark"] .form-field select,[data-om-theme="dark"] .form-field textarea{background:#171717;color:#fff;border-color:#424242}
[data-om-theme="dark"] .copy-button,[data-om-theme="dark"] .back-to-top{--utility-bg:#1B1B1B;--utility-text:#fff;--utility-border:#454545}
/* Class-based overrides for elements whose dark-mode treatment depends on matching a literal
   color string inside style="" — kept as a second, string-independent layer after screenshots
   showed these four not re-theming live even though a matching [style*="..."] rule existed. */
[data-om-theme="dark"] .strong-lead{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .chip-tech{background:#222!important;color:#fff!important}
[data-om-theme="dark"] .card-sidebar{background:#1B1B1B!important;color:#fff!important;border-color:#333!important}
[data-om-theme="dark"] .text-muted-sidebar{color:#a6a6a6!important;-webkit-text-fill-color:#a6a6a6!important}
[data-om-theme="dark"] .card-testimonial{background:#1B1B1B!important;border-color:#333!important}
[data-om-theme="dark"] .testimonial-quote{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .testimonial-name{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .testimonial-role{color:#a6a6a6!important;-webkit-text-fill-color:#a6a6a6!important}
[data-om-theme="dark"] .card-surface{background:#1B1B1B!important;border-color:#333!important;color:#fff!important}
[data-om-theme="dark"] .card-media-frame{background:#1B1B1B!important}
[data-om-theme="dark"] .badge-corner{background:#1B1B1Bd9!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .text-ink{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .text-muted{color:#a6a6a6!important;-webkit-text-fill-color:#a6a6a6!important}
[data-om-theme="dark"] .text-legal{color:#cfcfcf!important;-webkit-text-fill-color:#cfcfcf!important}
[data-om-theme="dark"] .text-accent{color:#fff!important;-webkit-text-fill-color:#fff!important}
[data-om-theme="dark"] .star-rating{color:#eeb14e!important;-webkit-text-fill-color:#eeb14e!important}
.price-currency .price-inr{display:none;}
.price-currency.is-inr .price-usd{display:none;}
.price-currency.is-inr .price-inr{display:inline;}
html body .card-fixed-dark{background:#2B2B2B!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
html body .card-fixed-dark .fixed-heading{color:#fff!important;-webkit-text-fill-color:#fff!important}
html body .card-fixed-dark .fixed-copy{color:#ffffffb3!important;-webkit-text-fill-color:#ffffffb3!important}
html body .mark-inverted{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important}
[data-om-theme="dark"] .grid-mark path{stroke:#333!important}
html body[data-om-theme="dark"] .pill-float-label{background:#1B1B1Bd9!important;color:#fff!important;border-color:#454545!important}
/* High-contrast CTA and availability states in both themes */
nav > a[href$="contact.html"]{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid #000!important;box-shadow:none!important}
nav > a[href$="contact.html"]:hover,nav > a[href$="contact.html"]:focus-visible{background:#242424!important;border-color:#242424!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
html body #dc-root nav > a[href$="contact.html"]{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#000!important}
html body #dc-root nav > a:first-child > span:first-child{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid #000!important}
html body #dc-root nav > a[href$="contact.html"]{min-width:92px;display:inline-flex!important;align-items:center;justify-content:center;text-align:center;line-height:1.2}
a[aria-label*="3 slots available"],.pricing-header > span:last-child{background:#e9e9e9!important;color:#111!important;-webkit-text-fill-color:#111!important;border:1px solid #dedede!important}
[data-om-theme="dark"] nav > a[href$="contact.html"]{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important;border-color:#fff!important}
[data-om-theme="dark"] nav > a[href$="contact.html"]:hover,[data-om-theme="dark"] nav > a[href$="contact.html"]:focus-visible{background:#dedede!important;color:#000!important;-webkit-text-fill-color:#000!important;border-color:#dedede!important}
html body[data-om-theme="dark"] #dc-root nav > a[href$="contact.html"]{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important;border-color:#fff!important}
html body[data-om-theme="dark"] #dc-root nav > a[href$="contact.html"]:hover,html body[data-om-theme="dark"] #dc-root nav > a[href$="contact.html"]:focus-visible{background:#dedede!important;color:#000!important;-webkit-text-fill-color:#000!important;border-color:#dedede!important}
html body[data-om-theme="dark"] #dc-root nav > a:first-child > span:first-child{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important;border-color:#fff!important}
[data-om-theme="dark"] a[aria-label*="3 slots available"],[data-om-theme="dark"] .pricing-header > span:last-child{background:#242424!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#3d3d3d!important}
/* Preserve deliberately inverted marks and CTA badges across theme overrides */
[style*="background:#fff"][style*="color:#000"],[style*="background:#ffffff"][style*="color:#000"]{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important}
[style*="background:#000"][style*="color:#fff"]{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
html body[data-om-theme="dark"] #dc-root [style*="background:#fff"][style*="color:#000"],html body[data-om-theme="dark"] #dc-root [style*="background:#ffffff"][style*="color:#000"]{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important}
html body[data-om-theme="dark"] #dc-root [style*="background:#000"][style*="color:#fff"]{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.high-contrast{filter:contrast(1.2)}
.grayscale{filter:grayscale(1)}
.underline-links a{text-decoration:underline!important;text-underline-offset:3px}
@media(max-width:760px){.site-toolbar{height:56px}.site-toolbar-inner{padding:0 8px}.site-toolbar-label{display:none}.site-toolbar-actions{width:100%;justify-content:space-between;gap:3px}.site-toolbar-group{gap:3px}.toolbar-divider{display:none}.site-toolbar .toolbar-button{padding:0 8px;min-width:44px}.toolbar-a11y .toolbar-text{display:none}.toolbar-theme .toolbar-text{display:inline!important}.toolbar-currency{min-width:68px;padding-left:8px}.sc-host{padding-top:56px}nav{top:62px!important}.back-to-top{right:16px;bottom:116px}.site-toast{bottom:14px;max-width:calc(100% - 32px);text-align:center}}
@media(prefers-reduced-motion:reduce){.site-loader,.offline-banner,.site-toast,.back-to-top{transition:none}.site-loader-track span,.skeleton-active::after{animation:none}}

/* ================= Foundations + accessibility fixes (ux-design-foundations, accessibility-review) ================= */
/* 1. Inverted controls: dark text on a light fill in BOTH themes. Beats the dark link rule and the inherited text-fill (was white-on-white, 1:1). */
html body[data-om-theme] #dc-root .mark-inverted.mark-inverted.mark-inverted,
html body[data-om-theme] #dc-root .mark-inverted.mark-inverted.mark-inverted *,
html body[data-om-theme="dark"] #dc-root .form-submit.form-submit.form-submit,
html body[data-om-theme="dark"] #dc-root .form-submit.form-submit.form-submit *{color:#000!important;-webkit-text-fill-color:#000!important}
/* 2. Focus ring uses --color-link (>=3:1 on every surface). The brand green #12B33F is only 2.64:1 on the light page. */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:var(--color-link,#007424)!important}
footer a:focus-visible,.card-fixed-dark a:focus-visible,.card-fixed-dark button:focus-visible{outline-color:#56E16C!important}
/* 3. Floating contact buttons: SVG icons (no emoji), 44px targets, AA icon contrast */
.float-btn{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.15)}
.float-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html body[data-om-theme] #dc-root .float-mail{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
html body[data-om-theme="dark"] #dc-root .float-mail{background:#E2E2E2!important;color:#131313!important;-webkit-text-fill-color:#131313!important}
html body[data-om-theme] #dc-root .float-cal{background:#12B33F!important;color:#000!important;-webkit-text-fill-color:#000!important}
@media(max-width:760px){.floating-contact{transform:none!important}}
/* 4. Touch targets >= 44px (was 17-32px for nav, footer, project buttons, FAQ rows) */
html body #dc-root nav a,html body #dc-root footer a{min-height:44px}
html body #dc-root footer a{min-width:44px}
html body #dc-root nav > div:not(.mobile-menu-panel){gap:8px!important}
html body #dc-root nav > div:not(.mobile-menu-panel) > a{min-width:44px;padding-inline:6px;display:inline-flex;align-items:center;justify-content:center}
html body #dc-root footer a{display:inline-flex;align-items:center;justify-content:flex-start;align-self:flex-start}
html body #dc-root footer .footer-bottom{align-items:center}
.project-button,.project-button-case-study,.project-link,.copy-button,a.chip-tech,a.mark-inverted{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.copy-button{min-width:44px}
html body #dc-root button[aria-controls^="faq-panel"]{min-height:48px;padding-top:12px!important;padding-bottom:12px!important}
/* 5. Decorative corner marks overflowed 320px by 4px (WCAG 1.4.10 reflow). Hide them on small screens. */
@media(max-width:760px){.grid-mark{display:none!important}}
.cta-pill,.link-target{min-height:44px;display:inline-flex;align-items:center}
.link-target{text-decoration:underline;text-underline-offset:4px}
/* 6. Dark theme: primary pills invert (light fill, dark text) so the button edge is visible on #131313 / #1B1B1B (was black on near-black). Class-based: React serialises inline styles with spaces, so [style*=] selectors miss. */
html body[data-om-theme="dark"] #dc-root a.cta-pill.cta-pill{background:#E2E2E2!important;color:#131313!important;-webkit-text-fill-color:#131313!important;border-color:#E2E2E2!important}
html body[data-om-theme="dark"] #dc-root a.hero-cta > span.mark-inverted.mark-inverted.mark-inverted{background:#131313!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
/* 7. Dark theme: container hairlines (inline #EAEAEA was blinding white on #131313) */
html body[data-om-theme="dark"] #dc-root main{border-left-color:#333!important;border-right-color:#333!important}
/* 8. Copy-email button floated orphaned between cards. Pull it into the Email card's top-right corner on wide screens. */
@media(min-width:880px){html body #dc-root main .copy-button{align-self:flex-start;margin:12px 12px 0 -80px;position:relative;z-index:2}}
/* 9. Placeholder text must meet 4.5:1 in both themes */
.form-field ::placeholder{color:#6f6f6f;opacity:1}
[data-om-theme="dark"] .form-field ::placeholder{color:#a6a6a6;opacity:1}
