/* Three content sizes. Miniature UI illustrations and brand artwork retain their own scale. */
:root{--type-title:clamp(40px,4.5vw,72px);--type-subtitle:clamp(24px,2vw,30px);--type-body:16px;--ink:#2c3038;--muted:#2c3038}
body{font-size:var(--type-body);color:var(--ink);font-weight:400}
main h1,.hero h1{font-size:var(--type-title)!important;line-height:1.05!important;font-weight:550;letter-spacing:-.055em}
main h2,main h3,.contact-dialog h2{font-size:var(--type-subtitle)!important;line-height:1.2!important;font-weight:500;letter-spacing:-.035em}
.section-intro h2,.home-references-heading h2,.home-contact h2,.footer-invitation h2{font-size:var(--type-title)!important;line-height:1.05!important;font-weight:500;letter-spacing:-.05em}
:where(main,footer,dialog) :is(p,a,button,label,li,summary,small,input,select,textarea){font-size:var(--type-body)!important}
:where(main,footer,dialog) :is(p,h1,h2,h3,a,button,label,li,summary,small){color:var(--ink)!important}
:where(main,footer,dialog) :is(p,li){line-height:1.65}
.hero h1 .soft{background:none!important;color:inherit!important;-webkit-text-fill-color:currentColor!important;text-shadow:none}
.hero h1:after{display:none}
.top-link,.nav-text,.languages button,.gallery-card-label,.reference-domain,.offer-from,.support-price>span,.brief-step,.footer-meta,.health-score-label{font-size:var(--type-body)!important;color:var(--ink)!important}
.offer-amount strong,.support-price strong,#health-score{font-size:var(--type-title)!important;line-height:1.1}
.offer-amount{flex-wrap:wrap;gap:8px}
.round-link{max-width:100%;white-space:normal;gap:18px}
.round-link>[data-i18n]{min-width:0;overflow-wrap:anywhere}
.round-link>.circle{flex-shrink:0}
.footer-invitation .round-link{gap:12px;padding-left:16px}
.meeting-privacy,.health-limit,.bp-tax,.footer-meta{opacity:1}
.help-item summary h3{font-size:var(--type-subtitle)!important}
.help-float,.gallery-subtitle,.gallery-position,.health-badge,.health-next h3{color:var(--ink)!important}
/* Neutral miniature interface labels; service logos keep their brand colours. */
.service-visual [data-i18n],.svc-case-art [data-i18n],.svc-day-art [data-i18n],.offer-art [data-i18n],.help-hero-art [data-i18n]{color:var(--ink)}
/* Numeric and supporting content also use the same three roles. */
:where(main,footer,dialog) :is(strong,b):not(:where(.service-visual *,.svc-case-art *,.svc-day-art *,.offer-art *,.help-hero-art *,.project-visual *,.footer-signature *)){font-size:inherit!important;color:var(--ink)!important}
.health-totals strong{font-size:var(--type-subtitle)!important}
.health-badge,.health-copy,.health-count,.brief-back,.brief-step,.reference-domain,.support-price>span,.footer-meta{font-size:var(--type-body)!important}
/* Brand handover: same home slot, same dock dimensions, no floating wordmark over content. */
.site-header>.brand{position:relative;flex:0 1 auto;width:clamp(200px,22vw,310px);height:var(--header-height);padding:0;filter:none;opacity:1;visibility:visible;transition:opacity .3s,visibility .3s}
.site-header>.brand>.brand-wordmark{width:clamp(200px,22vw,310px);max-width:100%;height:auto;object-fit:contain}
.site-header.scrolled>.brand{opacity:0;visibility:hidden;pointer-events:none}
.top-link[data-page=main]>.nav-brand-symbol{position:absolute;left:50%;top:50%;width:28px;height:28px;object-fit:contain;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .3s}
.top-link[data-page=main]>.nav-text,.top-link[data-page=main]>.nav-icon{transition:opacity .3s}
.scrolled .top-link[data-page=main]>.nav-brand-symbol{opacity:1}
.scrolled .top-link[data-page=main]>.nav-text,.scrolled .top-link[data-page=main]>.nav-icon{opacity:0}
@media(max-width:760px){.site-header>.brand{width:clamp(140px,46vw,210px)}.site-header>.brand>.brand-wordmark{width:clamp(140px,46vw,210px)}.services .service-caption h3{font-size:var(--type-subtitle)!important}.help-contact .round-link{gap:12px}.topnav .languages button{min-width:30px}.top-link[data-page=main]>.nav-brand-symbol{left:21px;width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){.site-header>.brand,.top-link[data-page=main]>img,.top-link[data-page=main]>.nav-text,.top-link[data-page=main]>.nav-icon{transition:none!important}}

.brief-panel legend{font-size:var(--type-subtitle)!important;line-height:1.2;color:var(--ink)}
.svc-workflow>span{font-size:var(--type-body)!important;color:var(--ink)}
.svc-workflow>i{color:var(--ink)}
.demo-total b,.connected-page-title>span,.svc-day-float i{color:var(--ink)}
.service-visual .demo-action,.svc-case-art .svc-ui-button{color:#fff!important}
@media(max-width:1100px){.svc-workflow{flex-direction:column;align-items:stretch;gap:8px}.svc-workflow>span{text-align:center}.svc-workflow>i{align-self:center}.svc-workflow .arrow-icon{rotate:135deg}}

.hero h1 .hero-offer{display:block;font-size:var(--type-subtitle)!important;line-height:1.2;letter-spacing:-.025em;font-weight:400;margin-bottom:20px;color:var(--ink)}
