/* Shared visual system. Loaded after page styles to keep equivalent roles consistent. */
:root{--ink:#0b1018;--blue:#0074cc;--ds-bg:#0b1018;--ds-heading:#f5f8ff;--ds-copy:#c0cede;--ds-accent:#22bffc;--ds-line:#16405c;--ds-h1:clamp(2.25rem,4.4vw,4rem);--ds-h2:clamp(1.875rem,3.1vw,2.75rem);--ds-h3:1.375rem;--ds-body:1rem;--ds-label:.8125rem}
body{font-family:Arial,Helvetica,sans-serif;background:var(--ds-bg);color:var(--ds-heading)}
body main h1,body .hero-live .banner-copy h1{font-size:var(--ds-h1);font-weight:600;line-height:1.1;letter-spacing:-.04em;color:var(--ds-heading)}
body main h2,body .business-approach .approach-main h2{font-size:var(--ds-h2);font-weight:600;line-height:1.17;letter-spacing:-.035em;color:var(--ds-heading)}
body main h3,body .esm-service-card h3,body .about-page .principle-grid h3{font-size:var(--ds-h3);font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--ds-heading)}
body main h1 em,body main h1 span,body main h2 span{color:var(--ds-accent);font-style:normal}
body main p,body .esm-who>p:not(.esm-eyebrow),body .esm-what>p:not(.esm-eyebrow),body .esm-service-card p,body .about-page .about-copy p:not(.esm-eyebrow),body .about-page .about-story-copy>p:last-child,body .about-page .principle-grid p,body .work-case p:not(.work-example-label),body .contact-page aside>p:not(.esm-eyebrow),body .legal-content p{font-size:var(--ds-body);line-height:1.7;color:var(--ds-copy)}
body .hero-live .banner-copy>p:last-child,body .work-lead,body .contact-page .contact-lead,body .about-page .about-lead,body .services-page .as-hero>.as-wrap>p:not(.as-kicker){font-size:1.125rem;line-height:1.65;color:var(--ds-copy)}
body main .eyebrow,body main .esm-eyebrow,body .services-page .as-kicker,body .hero-live .banner-copy .hero-eyebrow,body .about-page .num{font-size:var(--ds-label);font-weight:600;letter-spacing:2px;line-height:1.5;color:var(--ds-accent)}
body main .eyebrow:after,body main .esm-eyebrow:after{background:var(--ds-accent)}
body main .esm-service-icon,body .business-approach .approach-stage-top .approach-icon{color:var(--ds-accent)}
body .button,body .services-page .as-button.as-primary{background:var(--blue);border:2px solid var(--blue);color:#fff}
body .button:hover,body .services-page .as-button.as-primary:hover{background:#005fa8;border-color:#005fa8;color:#fff}
body .text-link,body .header-cta,body .services-page .as-button:not(.as-primary),body .esm-service-card .esm-card-link{color:var(--ds-accent);border:2px solid var(--ds-accent);background:transparent}
body .text-link:hover,body .header-cta:hover,body .services-page .as-button:not(.as-primary):hover,body .esm-service-card:hover .esm-card-link{color:#fff;border-color:#72dcff;background:#22bffc14}
body .button,body .text-link,body .header-cta,body .services-page .as-button{font-size:.9375rem;font-weight:600;line-height:1.35;min-height:48px;padding:13px 24px;border-radius:999px}
body .esm-service-card .esm-card-link{font-size:.875rem;min-height:44px}
body .header nav a{font-size:.875rem;color:var(--ds-copy)}
body .header nav a:hover,body .header nav a[aria-current]{color:var(--ds-accent)}
body .header nav a[aria-current]{box-shadow:0 2px var(--ds-accent)}
body .services-page .as-tile b{font-size:var(--ds-h3);font-weight:600;line-height:1.3}
body .services-page li,body .services-page .as-node,body .contact-prompts span{font-size:var(--ds-body);line-height:1.65;color:var(--ds-copy)}
body .contact-page label{font-size:.875rem;color:var(--ds-heading)}
body .contact-page input,body .contact-page select,body .contact-page textarea{font-size:1rem}
body .contact-page .muted,body .contact-page .contact-note p:last-child,body .legal-address{color:var(--ds-copy)}
body .work-case h3,body .legal-content h2,body .contact-page form h2{font-size:1.375rem;line-height:1.3}
body .work-case-heading,body .work-tags,body .services-page .as-tile small{color:var(--ds-accent);font-size:.875rem}
body main .collection-notice,body main .legal-date,body main .form-hint,body .work-page .work-disclosure{font-size:.875rem;line-height:1.6}
body .legal-content a,body .collection-notice a,body .legal-index a:hover{color:var(--ds-accent)}
body .business-approach .approach-label{font-size:.8125rem;color:var(--ds-heading)}
body .business-approach .approach-detail{font-size:1rem;color:var(--ds-copy)}
/* Diagram labels retain their compact role instead of inheriting prose sizes. */
body .esm-business-diagram .esm-diagram-business h3{font-size:1.25rem}
body .esm-business-diagram .esm-diagram-business p{font-size:.875rem}
body .esm-business-diagram .esm-diagram-center p,body .services-page .as-caption,body .about-page .about-location{font-size:.75rem;letter-spacing:1.3px;color:var(--ds-copy)}
body .esm-business-diagram .esm-diagram-result p{font-size:1.25rem;color:var(--ds-heading)}
body .esm-business-diagram .esm-diagram-result strong{font-size:1.4375rem;color:var(--ds-accent)}
body .about-page .about-identity-title{font-size:var(--ds-h2);line-height:1.2;color:var(--ds-heading)}
body footer .footer-top .footer-invitation p{font-size:clamp(1.5rem,2.6vw,2.25rem);line-height:1.25;color:var(--ds-heading)}
body footer .footer-invitation p span{color:var(--ds-accent)}
body .footer-bottom{font-size:.8125rem;color:var(--ds-copy);line-height:1.6;flex-wrap:wrap}
body .footer-legal{font-size:.8125rem}
a:focus-visible,button:focus-visible{outline-color:var(--ds-accent)}
@media(max-width:700px){:root{--ds-h1:2.25rem;--ds-h2:1.875rem;--ds-h3:1.25rem}body .hero-live .banner-copy>p:last-child,body .work-lead,body .contact-page .contact-lead,body .about-page .about-lead{font-size:1rem}body .button,body .text-link,body .services-page .as-button{padding:12px 20px}body .contact-page form h2,body .legal-content h2{font-size:1.25rem}}

/* Balanced shared footer invitation. */
body footer .footer-top{gap:36px;padding-block:32px}
body footer .footer-invitation{gap:28px}
body footer .footer-top .footer-invitation p{font-size:clamp(1.375rem,2vw,1.875rem);line-height:1.3;max-width:none}
body footer .footer-contact-button{white-space:nowrap}
@media(min-width:1151px){body footer .footer-top .footer-invitation p{white-space:nowrap}}
@media(max-width:1150px) and (min-width:701px){body footer .footer-top{gap:24px}body footer .footer-top .brand{width:180px}body footer .footer-top .brand-logo{width:180px}body footer .footer-invitation{gap:20px}body footer .footer-top .footer-invitation p{font-size:1.375rem}}
@media(max-width:700px){body footer .footer-top{align-items:flex-start;gap:22px;padding-block:28px}body footer .footer-invitation{flex-direction:column;align-items:flex-start;gap:20px}body footer .footer-top .footer-invitation p{font-size:1.5rem;white-space:normal}}

/* Center the invitation within the space between the brand and action. */
@media(min-width:701px){body footer .footer-invitation p{flex:1;text-align:center}}
@media(max-width:700px){body footer .footer-top{align-items:center}body footer .footer-invitation{align-items:center;width:100%;text-align:center}body footer .footer-top .footer-invitation p{text-align:center}}
body footer .footer-top .footer-invitation p{flex:1;text-align:center}
@media(max-width:700px){body footer .footer-top .footer-invitation{align-items:center;width:100%;text-align:center}body footer .footer-top .brand{align-self:center}}
