/* Public type hierarchy. Central !important sizing deliberately supersedes the
   legacy page-specific rules; layouts, colours and content remain page-owned. */
:root{--type-h1:64px;--type-h1-leading:1.08;--type-h2:40px;--type-h2-leading:1.18;--type-h3:24px;--type-h3-leading:1.35;--type-h4:20px;--type-body:16px;--type-body-leading:1.7;--type-label:12px;--type-small:14px;--type-lead:18px;--type-dialog:28px;--type-metric:40px}
body.site-typography main :is(h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;text-wrap:pretty}
body.site-typography main h1{font-family:var(--serif)!important;font-size:var(--type-h1)!important;font-weight:400!important;line-height:var(--type-h1-leading)!important;letter-spacing:-.025em!important}
body.site-typography main h2:not(.ar-label):not(.por-label):not(.ii-label):not(.eyebrow){font-family:var(--serif)!important;font-size:var(--type-h2)!important;font-weight:400!important;line-height:var(--type-h2-leading)!important;letter-spacing:-.02em!important}
body.site-typography main h3:not(.ar-label):not(.por-label):not(.ii-label):not(.eyebrow){font-family:var(--sans)!important;font-size:var(--type-h3)!important;font-weight:500!important;line-height:var(--type-h3-leading)!important;letter-spacing:-.01em!important}
body.site-typography main h4{font-family:var(--sans)!important;font-size:var(--type-h4)!important;font-weight:500!important;line-height:1.4!important;letter-spacing:0!important}
body.site-typography main :is(h5,h6){font-family:var(--sans)!important;font-size:18px!important;line-height:1.4!important;font-weight:500!important}
body.site-typography main p,body.site-typography main :is(.ii-prose,.sc-body,.sc-legal-copy) li{font-family:var(--sans)!important;font-size:var(--type-body)!important;line-height:var(--type-body-leading)!important}
/* Small labels and explanatory text are roles, not section headings. */
body.site-typography main :is(.eyebrow,.ar-label,.por-label,.sv-eyebrow,.ii-label,.sc-eyebrow,.home-section-kicker,.home-editorial-label,.uae-hero-eyebrow,.ct-label,.fact-label,.band-label,.legal-contents-label){font-family:var(--sans)!important;font-size:var(--type-label)!important;font-weight:500!important;line-height:1.5!important;letter-spacing:.12em!important}
body.site-typography main :is(.pi-note,.pi-payment-note,.pd-note,.reserve-note,.por-client-note,.ii-card-metadata,.discovery-note,.legal-updated,.uae-image-credit,.international-image-note,.ct-message-sub,.card-loc,.pc-city,.uae-project-location,.enquiry-status){font-size:var(--type-small)!important;line-height:1.6!important}
body.site-typography main :is(.home-section-intro,.sc-hero-support,.ii-lead,.partners-tagline){font-size:var(--type-lead)!important;line-height:1.6!important}
body.site-typography main :is(.band-num-text,.stat-num,.sc-metric-value,.ii-metric-value,.ir-value,.ct-response-num){font-size:var(--type-metric)!important;line-height:1.15!important}
body.site-typography main .ar-statement{font-family:var(--serif)!important;font-size:var(--type-h2)!important;line-height:var(--type-h2-leading)!important}
body.site-typography main blockquote,body.site-typography main blockquote p{font-family:var(--serif)!important;font-size:var(--type-h3)!important;line-height:1.5!important}
body.site-typography main .home-faq-item summary>span:first-child{font-size:var(--type-h3)!important;line-height:var(--type-h3-leading)!important}
body.site-typography .lead-pop-card h2{font-family:var(--serif)!important;font-size:var(--type-dialog)!important;font-weight:400!important;line-height:1.2!important;letter-spacing:-.015em!important}
@media(max-width:1023px){:root{--type-h1:52px;--type-h2:36px;--type-metric:36px}}
@media(max-width:767px){:root{--type-h1:40px;--type-h1-leading:1.1;--type-h2:32px;--type-h2-leading:1.2;--type-h3:22px;--type-body-leading:1.65;--type-lead:16px;--type-dialog:26px;--type-metric:32px}}

body.site-typography .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
