/* Shared reading scale, theme colors and progressive motion. */
:root {
  color-scheme: light;
  --muted: #616d74;
  --deep: #142d44;
  --surface: #fff;
  --alt: #eff2f2;
  --band: #e9eff2;
  --hover: #e4edf1;
  --header: rgba(250,249,246,.97);
  --button-bg: #142d44;
  --button-ink: #fff;
  --button-hover: #406482;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --navy: #e8eef2;
  --blue: #9dc4df;
  --soft-blue: #a7becf;
  --ink: #d2dce4;
  --muted: #a6b7c4;
  --paper: #0f1924;
  --white: #142330;
  --line: #304553;
  --deep: #102334;
  --surface: #142330;
  --alt: #182c3d;
  --band: #182c3d;
  --hover: #213b4f;
  --header: rgba(15,25,36,.97);
  --button-bg: #abcbe3;
  --button-ink: #0f1924;
  --button-hover: #c5dceb;
}
body {font-size:1rem; line-height:1.75}
::selection {background:var(--button-bg); color:var(--button-ink)}
.site-header {background:var(--header)}
.site-header.is-scrolled {box-shadow:0 5px 20px #0000000a}
.trust-strip,.clients-section,.newsletter-sidebar,.newsletter-archive-card,.contact-form-wrap {background:var(--surface)}
.founders-section,.partners-section,.career-apply {background:var(--alt)}
.founder-card,.career-apply {border-color:var(--line)}
.about-preview,.site-footer,.hero-stamp,.newsletter-signup {background:var(--deep)}
.about-preview h2 {color:#f4f7fa}
.contact-band {background:var(--band); border-color:var(--line)}
.contact-band-right>p {color:var(--muted)}
.button,.contact-band-right>.button,.filter-button.is-active,.skip-link {background:var(--button-bg); border-color:var(--button-bg); color:var(--button-ink)}
.button:hover,.contact-band-right>.button:hover {background:var(--button-hover); border-color:var(--button-hover)}
.button-light {background:var(--paper); border-color:var(--line); color:var(--navy)}
.button-light:hover,.whatsapp-float:hover {background:var(--hover); border-color:var(--line)}
.service-card:hover {background:var(--hover)}
.service-card-top>span {color:var(--muted)}
.contact-form-wrap input:not([type=radio]):not([type=checkbox]),.contact-form-wrap select,.contact-form-wrap textarea {background:var(--paper); border-color:var(--line)}
.contact-form-wrap input::placeholder,.contact-form-wrap textarea::placeholder {color:var(--muted); opacity:1}
.contact-methods input {accent-color:var(--blue)}
.news-meta time,.news-search {border-color:var(--line)}
html[data-theme="dark"] .site-header .brand img {filter:brightness(0) invert(1)}
html[data-theme="dark"] .client-logos img {filter:grayscale(1) invert(1); mix-blend-mode:screen; opacity:.8}
html[data-theme="dark"] .client-logos img:hover {opacity:1}
html[data-theme="dark"] .founder-portrait {border-radius:50%}

/* Body copy has a consistent 16 px base; secondary labels are 12–14 px. */
.hero-copy>p,.page-intro-grid>p,.section-heading>p,.heading-side>p,
.service-card p,.about-preview-copy p,.value-item p,.history-copy>p,
.founder-copy p,.partner-copy p,.service-detail-title>p,.service-detail-list li,
.additional-grid p,.news-card-content>p,.newsletter-archive-card ul,
.careers-grid>div>p,.career-apply>p,.career-benefits p,
.contact-detail>div>a,.contact-detail>div>p,.contact-form-wrap>p,
.contact-band-right>p,.article-body,.article-lead,.article-aside p {
  font-size:1rem;
}
.article-body .article-first {font-size:1.0625rem}
.button,.text-link,.hero-actions .button,.hero-actions>.text-link,
.newsletter-editions>.text-link,.newsletter-signup>.text-link,
.newsletter-reading-toolbar>.text-link,.newsletter-reading-end>.text-link,
.newsletter-archive-card>.text-link,.founder-link,.article-end .text-link,
.article-aside .button,.contact-detail>div>.text-link,.contact-band-right>.button,
.other-services-line,.other-services-line>a,.service-jump-links>a,
.filter-button,.news-search input,.career-email,.contact-form-wrap label,
.contact-methods label,.form-method-note,.form-status {font-size:.875rem}
.contact-form-wrap input:not([type=radio]):not([type=checkbox]),.contact-form-wrap select,.contact-form-wrap textarea,
.contact-form-wrap input::placeholder,.contact-form-wrap textarea::placeholder {font-size:1rem}
.eyebrow,.hero-copy>.eyebrow,.hero-photo figcaption .eyebrow,.hero-stamp .eyebrow,
.founder-header .eyebrow,.newsletter-editions>.eyebrow,.newsletter-signup>.eyebrow,
.footer-links .eyebrow,.footer-contact .eyebrow,.article-meta .eyebrow,
.service-detail-list>.eyebrow,.partner-copy .eyebrow,.career-apply>.eyebrow,
.contact-detail>div>span,.article-aside .eyebrow {font-size:.75rem; letter-spacing:.1em}
.hero-location,.hero-vertical,.news-meta,.newsletter-recent-item time,
.newsletter-archive-top time,.newsletter-reading-toolbar time,.breadcrumbs,
.history-image figcaption,.article-body figcaption,.article-source,.article-meta,
.footer-bottom,.result-count,.value-index,.service-card-top>span,
.founder-languages>span {font-size:.75rem}
.trust-grid p,.trust-grid p span,.history-milestone>span,.clients-title p,.clients-more,
.founder-qualification,.founder-languages,.newsletter-recent-item>div,
.newsletter-signup>p,.newsletter-archive-subscribe>p>span,
.footer-brand>p,.footer-links,.footer-contact,.footer-contact>a,.footer-contact>p,
.footer-phone,.social-link,.about-signature,.about-signature>span:last-child,
.service-card-bottom,.article-end {font-size:.875rem}
.value-item h3,.additional-grid h3 {font-size:1.125rem; line-height:1.4}
.hero-copy h1,.page-intro h1,.article-intro h1 {
  font-size:clamp(3rem,4.8vw,4.25rem); line-height:1.06; letter-spacing:-.025em;
}
.section-heading h2,.about-preview h2,.history-copy>h2,.service-detail-title h2,
.careers-grid>div>h2,.contact-information>h2,.contact-band h2 {
  font-size:clamp(2.25rem,3.3vw,3rem); line-height:1.1; letter-spacing:-.02em;
}
.service-card h3,.news-card h3,.founder-header h3,.partner-copy h3,
.newsletter-editions h3,.newsletter-archive-card h2,.article-aside h3,
.career-apply>h3,.contact-form-wrap>h3,.article-body h2 {
  font-size:clamp(1.75rem,2.4vw,2.25rem); line-height:1.13;
}
.about-preview-copy .large-copy,.newsletter-archive-subscribe>p {font-size:1.875rem; line-height:1.25}
.trust-grid strong,.history-milestone strong {font-size:2.75rem}
.trust-grid strong span {font-size:1.875rem}
.trust-grid strong [data-experience-count] {display:inline-block; min-width:2ch; font:inherit; color:inherit; text-align:right; font-variant-numeric:tabular-nums}
.hero-stamp strong {font-size:2rem}
.hero-photo figcaption>span:last-child {font-size:1.75rem}
.hero-stamp {width:300px; padding:24px 28px; min-height:122px}
.hero-copy>p {max-width:440px}
.hero-actions {gap:22px; flex-wrap:wrap}
.hero-actions>.text-link {gap:12px}
.section-heading>p,.heading-side {max-width:340px}
.hero-photo {height:560px}
.hero-photo figcaption {bottom:112px}
.service-card p {max-width:none}
.service-card-bottom {padding-top:28px}
.newsletter-reading-toolbar,.newsletter-reading-end,.newsletter-archive-top,.news-meta {flex-wrap:wrap}
.newsletter-signup>.text-link {gap:12px}
.newsletter-recent-item>div>span {min-width:0; overflow-wrap:anywhere}
.founder-languages {flex-wrap:wrap; gap:8px 16px}
.footer-links>a {min-height:32px}
.footer-top {grid-template-columns:1.1fr .8fr 1.1fr; gap:45px}
.footer-contact {min-width:0}

/* Theme control remains available beside the mobile navigation. */
html {scroll-padding-top:116px}
.header-inner {height:auto; min-height:96px; padding-block:14px; gap:24px}
.site-header .brand {width:240px; max-width:40%}
.brand>span,.footer-brand .brand>span {font-size:.75rem; letter-spacing:.035em; line-height:1.45}
.main-nav {gap:19px}
.main-nav>a:not(.button),.main-nav .nav-cta {font-size:.875rem}
.main-nav .nav-cta {padding:12px 16px; gap:12px; margin-left:0}
.header-actions {display:flex; align-items:center; gap:10px; flex-shrink:0}
.theme-toggle {display:inline-flex; align-items:center; justify-content:center; gap:8px; background:transparent; border:1px solid var(--line); color:var(--ink); font-size:.875rem; line-height:1.4; min-height:44px; padding:10px 12px; transition:background .2s,border-color .2s}
.theme-toggle .icon {width:18px; height:18px}
.theme-toggle:hover {background:var(--hover); border-color:var(--blue)}
.theme-toggle[aria-pressed="true"] {border-color:var(--blue)}
.theme-toggle:disabled {opacity:.5}
.menu-toggle {color:var(--ink)}
.footer-legal {border-top:1px solid #ffffff20; padding-block:25px 28px}
.footer-legal nav {display:flex; flex-wrap:wrap; gap:12px 28px; font-size:.875rem}
.footer-legal nav a,.legal-authority-link {min-height:32px; display:inline-flex; align-items:center}
.footer-legal a:hover {color:#b4d7ed}
.aaip-notice {max-width:1060px; font-size:.875rem; line-height:1.7; color:#b9cbd7; margin-top:14px}
.legal-authority-link {font-size:.875rem; text-decoration:underline; text-underline-offset:4px; margin-top:8px}
.form-privacy-notice {font-size:.875rem; line-height:1.75; margin-block:0 24px}
.form-privacy-notice a,.privacy-consent a,.career-privacy a,.subscription-privacy a {text-decoration:underline; text-underline-offset:3px}
#contact-form>.privacy-consent {display:grid; grid-template-columns:20px minmax(0,1fr); gap:12px; align-items:start; margin-top:25px; font-size:.875rem; line-height:1.7; font-weight:400}
.privacy-consent input {width:18px; height:18px; min-height:0; padding:0; margin:4px 0 0; accent-color:var(--blue)}
.career-apply>.career-privacy {font-size:.875rem; margin-top:16px}
.newsletter-signup>.subscription-privacy {font-size:.875rem; line-height:1.65; margin-top:14px}
.legal-grid {display:grid; grid-template-columns:240px minmax(0,1fr); gap:70px; align-items:start}
.legal-index {position:sticky; top:calc(var(--header-height,96px) + 30px); padding-top:20px; border-top:1px solid var(--line); font-size:.875rem}
.legal-index nav {display:grid; margin-block:18px 22px}
.legal-index a {display:block; min-height:40px; padding-block:8px; color:var(--muted)}
.legal-index>a {border-top:1px solid var(--line); padding-top:18px; color:var(--blue)}
.legal-index a:hover {color:var(--navy); text-decoration:underline; text-underline-offset:4px}
.legal-copy {min-width:0; max-width:850px; font-size:1rem; line-height:1.8}
.legal-date {font-size:.875rem; margin-bottom:20px}
.legal-copy .legal-lead {font-size:1.125rem; color:var(--ink); margin-bottom:40px}
.legal-copy section {scroll-margin-top:calc(var(--header-height,96px) + 30px); margin-top:38px; padding-top:28px; border-top:1px solid var(--line)}
.legal-copy h2 {font-size:clamp(1.875rem,2.6vw,2.5rem); line-height:1.15; letter-spacing:-.015em; margin-bottom:22px}
.legal-copy p+p {margin-top:18px}
.legal-copy a {color:var(--blue); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere}
.legal-copy a:hover {color:var(--navy)}
.legal-table-wrap {overflow:auto; margin-block:24px}
.legal-table {border-collapse:collapse; width:100%; font-size:.9375rem; text-align:left; line-height:1.65}
.legal-table th,.legal-table td {padding:17px 18px; border-bottom:1px solid var(--line); vertical-align:top; min-width:150px}
.legal-table thead {background:var(--alt); color:var(--navy)}
.legal-table tbody th {font-weight:500; color:var(--navy)}
.legal-table td {color:var(--muted)}
.legal-storage-card {background:var(--surface); border:1px solid var(--line); padding:28px; margin-block:24px}
.legal-storage-card>.eyebrow {color:var(--blue)}
.legal-storage-card h3 {font-family:var(--serif); font-size:2rem; color:var(--navy); margin-top:12px}
.legal-storage-card dl {margin-block:24px}
.legal-storage-card dl>div {display:grid; grid-template-columns:145px minmax(0,1fr); gap:20px; padding-block:13px; border-top:1px solid var(--line)}
.legal-storage-card dt {font-weight:500; color:var(--navy)}
.legal-storage-card dd {margin:0; color:var(--muted)}
.legal-storage-card code {font-size:.9375rem}
#storage-status:not(:empty) {margin-top:18px; color:var(--ink); font-size:.875rem}
@media(max-width:1020px) {.legal-grid {grid-template-columns:190px minmax(0,1fr); gap:36px}}
@media(max-width:760px) {
  .legal-grid {grid-template-columns:1fr; gap:32px}
  .legal-index {position:static}
  .legal-index nav {grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px}
  .legal-copy .legal-lead {font-size:1rem}
  .legal-storage-card {padding:24px}
  .legal-storage-card dl>div {grid-template-columns:1fr; gap:5px}
  .legal-storage-card .button {max-width:100%; text-align:left}
}
@media(max-width:1200px) {
  .menu-toggle {display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid var(--line); background:transparent; z-index:2}
  .menu-toggle .icon {width:20px; height:20px}
  .main-nav {display:none; position:fixed; top:var(--header-height,96px); left:0; right:0; height:calc(100dvh - var(--header-height,96px)); background:var(--paper); padding:28px var(--gutter) 45px; overflow:auto}
  .main-nav.is-open {display:flex; flex-direction:column; align-items:stretch; gap:0}
  .main-nav>a:not(.button) {font-family:var(--serif); font-size:1.75rem; line-height:1.3; padding-block:16px; border-bottom:1px solid var(--line); white-space:normal}
  .main-nav>a:not(.button)::after {display:none}
  .main-nav .nav-cta {margin-top:24px; font-size:.875rem; padding:16px 22px}
  .site-header .brand {max-width:calc(100% - 180px)}
  .hero-grid {gap:40px}
  .hero-copy h1 {font-size:clamp(3rem,5.8vw,4rem)}
  .hero-photo {height:540px}
  .hero-stamp {width:265px; padding-inline:22px}
  .hero-stamp .eyebrow {max-width:190px}
  .footer-top {gap:32px}
}
@media(max-width:760px) {
  .header-inner {height:auto; min-height:88px; padding-block:12px; gap:12px}
  html {scroll-padding-top:106px}
  .site-header .brand {width:230px; max-width:calc(100% - 106px)}
  .brand>span {margin-top:8px; letter-spacing:.015em}
  .header-actions {gap:8px}
  .theme-toggle,.menu-toggle {width:44px; min-width:44px; height:44px; padding:0}
  .theme-label {display:none}
  .main-nav {top:var(--header-height,88px); height:calc(100dvh - var(--header-height,88px))}
  .hero-copy h1,.page-intro h1,.article-intro h1 {font-size:clamp(2.625rem,10.5vw,3.5rem); line-height:1.08}
  .home-hero {padding-block:38px 56px}
  .hero-copy>.eyebrow {margin-bottom:22px}
  .hero-actions {gap:14px 22px}
  .hero-photo {height:350px}
  .hero-stamp {width:265px; bottom:-20px; min-height:114px; padding:20px 22px}
  .hero-photo figcaption {bottom:109px}
  .hero-photo figcaption>span:last-child {font-size:1.5rem}
  .hero-vertical {display:none}
  .hero-location-line {display:none}
  .trust-grid strong {font-size:2rem}
  .trust-grid strong span {font-size:1.5rem}
  .trust-grid p,.trust-grid p span {font-size:.75rem; line-height:1.6}
  .section-heading h2,.about-preview h2,.history-copy>h2,.service-detail-title h2,
  .careers-grid>div>h2,.contact-information>h2,.contact-band h2 {font-size:2.25rem}
  .value-item p {font-size:1rem; line-height:1.7}
  .value-item h3 {font-size:1.0625rem}
  .founder-header {grid-template-columns:88px minmax(0,1fr); gap:20px}
  .founder-portrait {width:88px; height:88px}
  .founder-header h3 {font-size:1.875rem}
  .founder-header .eyebrow {letter-spacing:.06em}
  .footer-top {grid-template-columns:1fr; gap:30px}
  .footer-brand {grid-column:auto}
  .footer-brand .brand {width:285px}
  .footer-bottom {font-size:.75rem}
  .founder-copy p,.founder-qualification {font-size:1rem}
  .contact-band-right>.button {min-width:0}
  .newsletter-archive-card {min-height:0}
}
@media(max-width:400px) {
  .hero-stamp {width:245px}
  .founder-header {grid-template-columns:1fr}
  .founder-portrait {width:92px; height:92px}
  .values-grid {grid-template-columns:1fr}
  .hero-location {flex-wrap:wrap}
  .trust-grid>div {padding-inline:6px}
  .trust-grid p {overflow-wrap:break-word}
  .news-filters {flex-wrap:wrap}
}

/* Keep original newsletter content; adapt its presentation for both themes. */
.newsletter-document {background:var(--surface); color:var(--ink)}
.newsletter-document .body {font-size:1rem!important; line-height:1.65!important}
.newsletter-document .small {font-size:.75rem!important; line-height:1.6!important}
.newsletter-document .brand-date {font-size:.75rem!important; line-height:1.5!important}
.newsletter-document .hero-title {font-size:1.875rem!important; line-height:1.2!important}
.newsletter-document .section-title {font-size:1.25rem!important; line-height:1.4!important}
html[data-theme="dark"] .newsletter-document [style*="background:#ffffff"],
html[data-theme="dark"] .newsletter-document [style*="background: #ffffff"],
html[data-theme="dark"] .newsletter-document [style*="background-color:#ffffff"],
html[data-theme="dark"] .newsletter-document [bgcolor="#ffffff"] {background:var(--surface)!important}
html[data-theme="dark"] .newsletter-document [style*="background:#f7f7f7"],
html[data-theme="dark"] .newsletter-document [style*="background: #f7f7f7"],
html[data-theme="dark"] .newsletter-document [style*="background-color:#f7f7f7"],
html[data-theme="dark"] .newsletter-document [bgcolor="#f7f7f7"] {background:var(--alt)!important}
html[data-theme="dark"] .newsletter-document [style*="color:#303030"],
html[data-theme="dark"] .newsletter-document [style*="color:#1f1f1f"],
html[data-theme="dark"] .newsletter-document [style*="color:#2b2b2b"],
html[data-theme="dark"] .newsletter-document [style*="color:#222222"],
html[data-theme="dark"] .newsletter-document [style*="color:#4d4d4d"] {color:var(--ink)!important}
html[data-theme="dark"] .newsletter-document [style*="color:#6a6a6a"],
html[data-theme="dark"] .newsletter-document [style*="color:#666666"] {color:var(--muted)!important}
html[data-theme="dark"] .newsletter-document [style*="color:#2f493f"] {color:#bdd3c6!important}
html[data-theme="dark"] .newsletter-document [style*="border"] {border-color:var(--line)!important}

/* Reveals only hide elements after JavaScript confirms support. */
.button:hover {transform:translateY(-2px)}
.service-card,.founder-card,.newsletter-archive-card {transition:background .25s,border-color .25s,box-shadow .25s,transform .25s}
.founder-card:hover,.newsletter-archive-card:hover {border-color:var(--blue); box-shadow:0 8px 24px #00000008}
.hero-copy {animation:cb-enter .55s ease-out both}
.hero-visual {animation:cb-enter .65s .08s ease-out both}
.reveal-pending {opacity:0; transform:translateY(14px)}
.reveal-entered {animation:cb-enter .55s cubic-bezier(.2,.6,.3,1) both; animation-delay:var(--reveal-delay,0ms)}
@keyframes cb-enter {from {opacity:0; transform:translateY(14px)} to {opacity:1; transform:translateY(0)}}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {animation:none!important; transition:none!important}
  .reveal-pending,.reveal-entered {opacity:1; transform:none}
  .button:hover,.button:active,.text-link:hover .icon,.news-image-link:hover>img,
  .service-card:hover .service-card-bottom>.icon,.newsletter-recent-item:hover .icon {transform:none}
}
