/* Shared typography and action sizing for every Gemini page. */
:root{
 --type-h1:clamp(44px,6.666667vw,96px);
 --type-h2:clamp(34px,3.611112vw,52px);
 --type-h3:clamp(26px,2.083334vw,30px);
 --type-h4:22px;
 --type-body:18px;
 --type-lead:22px;
 --type-small:14px;
 --type-label:12px;
 --type-action:16px;
 --type-nav:14px;
 --type-price:52px;
 --leading-heading:1.1;
 --leading-body:1.6;
 --leading-lead:1.5;
 --action-height:56px;
 --action-gap:24px;
}
body{font-size:var(--type-body);line-height:var(--leading-body)}
h1,h2,h3,h4{font-weight:650;line-height:var(--leading-heading);letter-spacing:-.04em;overflow-wrap:normal;word-break:normal;hyphens:none;-webkit-hyphens:none}
h1{font-size:var(--type-h1);line-height:1.04;letter-spacing:-.05em}
h2{font-size:var(--type-h2)}
h3{font-size:var(--type-h3);line-height:1.15;letter-spacing:-.03em}
h4{font-size:var(--type-h4);line-height:1.2;letter-spacing:-.025em}
p,li,address{line-height:var(--leading-body)}
p{font-size:var(--type-body)}
.lead,.hero-bottom>.lead,.home-intro>p,.case-hero .lead,.whitepaper-detail-hero .lead,.content-document>.lead{font-size:var(--type-lead);line-height:var(--leading-lead);letter-spacing:-.015em}
.body-large,.narrative .body-large{font-size:var(--type-body);line-height:var(--leading-body);letter-spacing:0}
.page-hero h1,.case-hero h1,.whitepaper-detail-hero h1{max-width:1100px}
.eyebrow,.pill,.tags>span,.case-caption>span,.core-number,.service-number,.seed-process li>span,.project-count,.hero-location,.brand-art span,.nav-submenu-label,.service-shortcut-copy small{font-size:var(--type-label);line-height:1.5}
.eyebrow,.nav-submenu-label{letter-spacing:.075em;font-weight:650}
.case-caption p{font-size:var(--type-body)}
.person-card>p,.people-preview-grid p,.price-hint,.price-card h3+p,.price+p,.hours,.support-description,.pricing-terms p,.project-media figcaption,.project-media figcaption>span,.team-image figcaption,.seed-hero-image>span,.cms-platforms>p:last-child,.content-document .meta,.service-desc,.nav-submenu a>span{font-size:var(--type-small);line-height:1.5}
.whitepaper-request .form-fallback,.whitepaper-request .form-privacy{font-size:var(--type-small);line-height:1.5}
.footer-top p,.footer-grid p,.footer-grid a,.footer-bottom{font-size:var(--type-small);line-height:1.6}
.footer-grid h2{font-size:var(--type-label);line-height:1.5;font-weight:650;letter-spacing:.075em}
.cms-platforms>div>span,.ticker-group li{font-size:var(--type-h3);line-height:1.2}
.price-card .price{font-size:var(--type-price);line-height:1.1;font-weight:650;letter-spacing:-.04em}
.contact-details address{font-size:var(--type-body);line-height:var(--leading-body)}
.phone-link{font-size:var(--type-h3);line-height:1.2}
.email-address{font-size:var(--type-body);overflow-wrap:normal}
.deliverables span{font-size:var(--type-body)}
.button{font-size:var(--type-action);line-height:24px;font-weight:550;letter-spacing:0;min-height:var(--action-height);padding:15px 23px;gap:var(--action-gap);border:1px solid transparent;white-space:nowrap;max-width:100%}
.text-link{font-size:var(--type-action);line-height:1.5;font-weight:550;letter-spacing:0;min-height:44px;gap:var(--action-gap)}
.button span,.text-link span{font-size:24px;line-height:1}
.expertise-index .text-link{font-size:var(--type-h3);line-height:1.2;min-height:68px;letter-spacing:-.03em}
.expertise-index .text-link span{font-size:30px}
.service-shortcuts>a,.service-shortcut-copy,.service-shortcuts>a>.service-shortcut-copy{font-size:var(--type-action);line-height:1.4;font-weight:550}
.service-shortcuts>a>span:last-child{font-size:24px;line-height:1}
.site-header nav>a:not(.button),.nav-group>summary,.nav-submenu strong{font-size:var(--type-nav);line-height:1.4}
.nav-group>summary>span{font-size:16px;line-height:1}
summary{font-size:var(--type-body);line-height:1.5}
summary>span{font-size:24px;line-height:1}
.menu-toggle{font-size:var(--type-action);line-height:1.4}
.menu-toggle>span{font-size:24px;line-height:1}
.mode-selector legend{font-size:var(--type-label);line-height:1.5}
.mode-selector span,.work-filters button{font-size:var(--type-action);line-height:1.5}
.work-filters button{min-height:44px}
.content-index,table,.media-link{font-size:var(--type-small);line-height:1.5}
.round-arrow,.service-rows>a>span:last-child,.case-arrow{font-size:24px;line-height:1}
.next-case>a>span{font-size:var(--type-h2);line-height:1}
/* Keep labels and larger, shared CTA text comfortable in compact layouts. */
.core-grid h3,.concept-grid h3,.cms-process h3,.cms-benefits h3{min-height:2.3em}
.price-card h3+p{min-height:3em}
@media(max-width:1100px){
 .core-grid h3,.concept-grid h3,.cms-process h3,.cms-benefits h3{min-height:0}
 .service-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-shortcuts>a:first-child{grid-column:1/-1}
}
@media(max-width:980px){
 .site-header nav>a:not(.button),.nav-group>summary{font-size:24px;line-height:1.4}
 .nav-submenu strong{font-size:var(--type-action)}
 .nav-group>summary>span{font-size:24px}
 .price-grid,.pricing-terms,.x-benefits{grid-template-columns:1fr}
 .price-card h3+p{min-height:0}
}
@media(max-width:600px){
 :root{--type-body:17px;--type-lead:20px;--type-label:11px;--type-h4:20px;--type-price:44px;--action-gap:20px}
 .expertise-index .text-link{font-size:20px;min-height:58px;gap:8px}
 .expertise-index .text-link span{font-size:20px}
 .service-shortcuts>a{padding:14px 12px;gap:10px}
 .service-shortcuts>a,.service-shortcut-copy,.service-shortcuts>a>.service-shortcut-copy{font-size:14px}
 .case-caption{display:block}
 .case-caption>span{text-align:left;max-width:none;margin-top:10px}
 .mode-selector span{padding-inline:10px}
}

.ticker-group li{font-weight:600;letter-spacing:-.025em}

/* Whole words move to the next line; never hyphenate or split them. */
html,body,p,li,a,button,summary,figcaption,span,address,td,th{hyphens:none;-webkit-hyphens:none;overflow-wrap:normal;word-break:normal}
@media(max-width:600px){:root{--type-h1:clamp(28px,8.8vw,44px);--type-h2:clamp(26px,7.7vw,34px);--type-h3:clamp(22px,6.666667vw,26px)}}
@media(max-width:380px){.button{padding-inline:13px;gap:12px}}
@media(max-width:380px){.button{white-space:normal;line-height:20px;padding-block:7px}.button>span{flex-shrink:0}.mode-selector span{white-space:normal;min-height:100%;display:flex;align-items:center;justify-content:center}}
