:root {
--container: 1280px;
--heading: clamp(3.25rem, 5.15vw, 4.5rem);
--ch-body: 18px;
--ch-mobile-body: 17px;
}
body { font-size: var(--ch-body); line-height: 1.65; }
h1,h2,h3,h4 { line-height: 1.11; }
h2 { font-size: clamp(2.15rem,3.55vw,2.875rem); }
h3 { font-size: clamp(1.375rem,1.85vw,1.65rem); }
.eyebrow { font-size: .82rem; margin-bottom: 1.25rem; letter-spacing: .14em; }
.kicker { font-size: .79rem; }
.lead { font-size: clamp(1.075rem,1.34vw,1.2rem); line-height: 1.65; }
.text-lg { font-size: clamp(1.14rem,1.45vw,1.38rem); line-height: 1.55; }
.micro { font-size: .86rem; line-height: 1.55; }
.section { padding: 88px 0; }
.section-tight { padding: 72px 0; }
.section-header { gap: 2.5rem; margin-bottom: 2.6rem; }
.section-header h2 { max-width: 820px; }
.section-header p { max-width: 360px; }
.btn { min-height: 50px; padding: 14px 22px; font-size: 1rem; gap: 16px; line-height: 1.3; }
.header-shell { height: 88px; }
.nav-links a { font-size: 1rem; font-weight: 660; }
.nav-links .ch-menu { gap: clamp(15px, 1.65vw, 25px); }
.nav-links a.nav-cta { padding: 12px 20px; font-weight: 700; } .hero-inner {
min-height: 615px;
padding: 90px 0 42px;
grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr);
gap: clamp(22px,3.1vw,54px);
}
.hero h1 { font-size: var(--heading); margin-bottom: 1.15rem; max-width: 740px; letter-spacing: -.059em; }
.hero .lead { max-width: 555px; }
.hero-actions { gap: 12px; margin-top: 1.7rem; }
.hero-figure { height: 480px; min-height: 0; margin-left: 0; }
.hero-figure img { width: auto; height: 100%; max-width: 100%; }
.visual-caption { bottom: -15px; }
.hero-bottom .note { padding-top: 19px; padding-bottom: 19px; font-size: .73rem; } .page-hero { padding: 146px 0 78px; }
.page-hero h1 { font-size: clamp(3.3rem,4.8vw,4.55rem); max-width: 980px; margin-bottom: 1.1rem; }
.page-hero .intro { font-size: clamp(1.08rem,1.35vw,1.2rem); line-height: 1.65; }
.contact-hero { padding-bottom: 112px; } .feature-tile { padding: 29px 28px; min-height: 215px; }
.feature-tile .num { margin-bottom: 27px; }
.feature-tile p, .audience-row p { font-size: 1rem; line-height: 1.62; }
.stat-panel .source { font-size: .9rem; }
.evidence-feature .micro { font-size: .85rem; }
.cta-rectangle { padding: 48px 54px; gap: 2.2rem; }
.cta-rectangle h2 { max-width: 690px; }
#team .team-info .bio { font-size: 1rem; }
#team .team-links a { font-size: .9rem; } .contact-actions { gap: 18px; margin-top: -46px; }
.contact-card { position: relative; min-height: 265px; padding: 29px 30px 34px; display:flex; flex-direction:column; }
.contact-card h3 { font-size: 1.55rem; margin: 0 0 15px; max-width: 90%; }
.contact-card p { margin-bottom: 24px; font-size: 1rem; line-height: 1.65; }
.contact-card strong { display: block; font-size: .97rem; color: #116f66; line-height: 1.5; margin-top: auto; max-width: calc(100% - 53px); overflow-wrap: anywhere; }
.contact-card .round-arrow {
position: absolute;
right: 27px; bottom: 26px;
align-self: auto;
width: 39px; height: 39px;
font-size: 1.13rem;
border-color: #c8dcd7;
}
.contact-card:hover .round-arrow {background:var(--mint);} .site-footer > .container { width: min(calc(100% - 92px), var(--container)); }
.site-footer .footer-main { column-gap: clamp(36px,5vw,84px); }
.site-footer .footer-bottom { font-size: 13.5px; }
.site-footer .footer-col h4 { font-size: 12.5px; letter-spacing: .16em; }
.site-footer .footer-col:not(.ch2026-connect) > a { font-size: 16px; }
.site-footer .ch-contact-detail { font-size: 14px; } :root { --muted: #556f72; }
.fine-print { font-size: 14px; line-height: 1.65; }
.article .publisher, .process-card .step, .feature-tile .num { font-size: 13px; }
.article .article-year { font-size: 13.5px; }
.article p, .compare p, .process-card p, .ecosystem-pill span { font-size: 16px; line-height: 1.62; }
.market-kpis span { font-size: 13px; }
.chart-notes { font-size: 14px; line-height: 1.6; }
.market-chart .axis { font-size: 14px; }
#team .team-info .role { font-size: 12.5px; letter-spacing: .055em; line-height: 1.5; }
#team .team-links a { font-size: 14px; }
.evidence-feature .micro { font-size: 14px; }
.site-footer a { text-underline-offset: 3px; } @media (min-width:781px) and (max-width:1100px) {
:root { --heading: clamp(3.05rem,5.05vw,3.65rem); }
.container,.header-shell,.site-footer > .container { width: calc(100% - 66px); }
.hero-inner { min-height: 565px; padding: 92px 0 42px; gap: 24px; }
.hero-figure { height: 430px; min-height: 0; }
.nav-links { gap: 13px; }
.nav-links .ch-menu {gap: clamp(10px,1.3vw,15px);}
.nav-links a { font-size: .94rem; }
.page-hero h1 { font-size: clamp(3rem,5.4vw,3.8rem); }
.section { padding: 78px 0; }
.contact-card { padding: 25px 24px 32px; }
.contact-card .round-arrow { right: 22px; }
}
@media (max-width:780px) {
:root { --heading: clamp(2.5rem,6.5vw,3.25rem); }
body { font-size: var(--ch-mobile-body); }
.container,.header-shell { width: calc(100% - 44px); }
.header-shell { height: 76px; }
.hero-inner { grid-template-columns:1fr; min-height:0; padding: 109px 0 49px; gap: 22px; }
.hero h1 { font-size: var(--heading); max-width: 680px; margin-bottom: 17px; }
.hero .lead { font-size: 17px; line-height: 1.6; max-width: 620px; }
.hero-actions { margin-top: 23px; }
.hero-figure { height: 290px; min-height: 0; width: min(90%,420px); margin-inline:auto; }
.hero-figure img { width:auto; height:100%; max-width:100%; }
.hero-bottom .note { padding: 15px 12px !important; }
h2 { font-size: clamp(1.9rem,4.7vw,2.375rem); }
h3 { font-size: clamp(1.4rem,3.2vw,1.6rem); }
.section { padding: 64px 0; }
.section-tight { padding: 55px 0; }
.section-header { margin-bottom: 28px; }
.section-header p { max-width: 610px; }
.page-hero { padding: 132px 0 61px; }
.page-hero h1 { font-size: clamp(2.6rem,6.3vw,3.2rem); max-width: 720px; }
.page-hero .intro { font-size: 17px; line-height: 1.62; }
.contact-hero { padding-bottom: 93px; }
.contact-actions { margin-top: -35px; gap: 17px; }
.contact-card { min-height: 210px; padding: 26px 27px 28px; }
.contact-card h3 { margin-bottom: 11px; max-width: 90%; }
.contact-card p { margin-bottom: 22px; }
.contact-card .round-arrow { right: 22px; bottom: 22px; }
.cta-rectangle { padding: 35px 31px; }
.site-footer > .container { width: calc(100% - 44px); }
#team .team-info .bio { font-size: .95rem; }
}
@media (max-width:560px) {
:root { --heading: clamp(2.18rem,9.2vw,2.5rem); }
.hero h1 { font-size: var(--heading); letter-spacing: -.052em; }
.hero-figure { width: 90%; height: 250px; }
.hero-figure img { width:auto; height:100%; max-width:100%; }
.visual-caption { bottom: 0; font-size: .65rem; }
.hero-actions .btn { width: 100%; min-height: 49px; }
.hero-bottom .note { font-size: .64rem; letter-spacing:.09em; }
h2, .section-header h2 { font-size: clamp(1.85rem,7.65vw,2.05rem); }
h3 { font-size: 1.43rem; }
.page-hero h1 { font-size: clamp(2.15rem,9.15vw,2.42rem); }
.page-hero { padding: 116px 0 53px; }
.contact-hero { padding-bottom: 79px; }
.section { padding: 57px 0; }
.section-tight { padding: 48px 0; }
.contact-actions { margin-top: -25px; }
.contact-card { min-height: 0; padding: 27px 24px 30px; }
.contact-card h3 { font-size: 1.42rem; margin-bottom: 12px; }
.contact-card p { font-size: 16px; line-height: 1.6; }
.contact-card strong { font-size: .94rem; max-width: calc(100% - 42px); }
.contact-card .round-arrow { width: 35px; height: 35px; right: 21px; bottom: 22px; }
.stat-panel { padding: 27px 24px; }
.stat-large { font-size: clamp(4.8rem,19vw,6.4rem); }
.feature-tile { min-height: 0; padding: 27px 24px; }
.feature-tile .num { margin-bottom: 22px; }
.cta-rectangle { padding: 31px 25px; }
.site-footer .footer-main { padding-top: 49px; }
.site-footer .footer-bottom { font-size: 13.5px; }
.site-footer .footer-col h4 { font-size: 12.5px; letter-spacing: .16em; }
.site-footer .footer-col:not(.ch2026-connect) > a { font-size: 16px; }
.site-footer .ch-contact-detail { font-size: 14px; } :root { --muted: #556f72; }
.fine-print { font-size: 14px; line-height: 1.65; }
.article .publisher, .process-card .step, .feature-tile .num { font-size: 13px; }
.article .article-year { font-size: 13.5px; }
.article p, .compare p, .process-card p, .ecosystem-pill span { font-size: 16px; line-height: 1.62; }
.market-kpis span { font-size: 13px; }
.chart-notes { font-size: 14px; line-height: 1.6; }
.market-chart .axis { font-size: 14px; }
#team .team-info .role { font-size: 12.5px; letter-spacing: .055em; line-height: 1.5; }
#team .team-links a { font-size: 14px; }
.evidence-feature .micro { font-size: 14px; }
.site-footer a { text-underline-offset: 3px; }
}
@media (max-width:380px) {
.container,.header-shell { width: calc(100% - 38px); }
.page-hero h1 { font-size: 2.1rem; }
.contact-card { padding: 24px 21px 28px; }
} @media (min-width:781px) and (max-width:900px) {
.header-shell {height: 82px;}
.mobile-toggle {display:flex;position:relative;z-index:211;}
.nav-links {position:fixed;inset:0;background:#082630;color:white;z-index:210;
display:none;flex-direction:column;align-items:stretch;justify-content:flex-start;
padding:110px 35px 45px;gap:6px;overflow:auto;}
.nav-links.is-open {display:flex;}
.nav-links .ch-menu {display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;}
.nav-links .ch-menu li a, .nav-links a {display:block;color:#fff;font-size:1.35rem;
padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);}
.nav-links a.nav-cta {margin-top:15px;text-align:center;font-size:1.08rem;}
.site-header .mobile-toggle.is-open {color:#fff;border-color:#50777c;}
.hero-inner {grid-template-columns:1fr;min-height:0;padding:115px 0 45px;gap:24px;}
.hero h1 {font-size:clamp(3.1rem,6.5vw,3.65rem);max-width:750px;}
.hero .lead {max-width:640px;}
.hero-figure {height:335px;width:min(78%,460px);margin-inline:auto;}
.hero-figure img {max-width:100%;width:auto;height:100%;}
} @media (max-width:560px) {
.contact-card .round-arrow { width:39px; height:39px; }
.contact-card strong { overflow-wrap:anywhere; }
.market-kpis span { font-size: 12.5px; }
.article .publisher, .process-card .step, .feature-tile .num { font-size: 12.5px; }
}
@media (max-width:380px) {
.contact-card strong {font-size: 14px;}
}
@media (prefers-reduced-motion: reduce) {
.btn, .contact-card .round-arrow, .text-link .arrow-circle {transition:none;}
} .market-chart.is-compact .axis { font-size: 15.5px; }
.market-chart.is-compact .chart-dot { stroke-width: 2.5; }