/* Shared type roles for all WispHost pages. Loaded after page styles.
   Legacy page rules have very different specificity, so only role font sizes
   use !important. Layout, colour, prices, code, illustrations and frozen content
   keep their own rules. No font-size is changed on the document root. */
body{
 --type-title:40px;--type-section:28px;--type-card:17px;
 --type-lead:15px;--type-copy:13px;--type-detail:13px;
 --type-note:12px;--type-caption:10px;--type-ui-title:32px;
 --reading-copy:var(--type-copy);--reading-detail:var(--type-note);--reading-caption:var(--type-caption);
 --ui-copy:var(--type-copy);--ui-label:var(--type-detail);--ui-note:var(--type-note);--ui-caption:var(--type-caption);
}

/* One scale for page titles; transactional headings are deliberately compact. */
body.readable-site main h1{font-size:var(--type-title)!important;line-height:1.15;letter-spacing:-.035em;font-weight:800}
body.readable-site main :is(.auth-aside,.purchase-heading,.client-heading) h1{font-size:var(--type-ui-title)!important;line-height:1.2}
body.readable-site main h2:not(:where(.jurisdiction-section *,dialog *,.hosting-config *,.auth-panel *,.client-box *,.client-security-card *,.client-support-shortcut *,.purchase-panel *,.support-panel *, .blog-card *,.blog-featured *,.cmp-provider *)){
 font-size:var(--type-section)!important;line-height:1.25;letter-spacing:-.025em;
}
body.readable-site main h3:not(:where(.jurisdiction-section *,dialog *,.hosting-config *,.gpu-hero-art *,.product-hero-art *,.home-hero-art *)){
 font-size:var(--type-card)!important;line-height:1.4;letter-spacing:-.02em;
}
body.readable-site :is(.blog-card,.blog-featured) h2{font-size:21px!important;line-height:1.35;letter-spacing:-.025em}
body.readable-site :is(.auth-panel,.purchase-panel-heading,.payment-panel-top,.support-panel-title) h2{font-size:21px!important;line-height:1.35}
body.readable-site :is(.client-box,.client-security-card,.client-support-shortcut) h2{font-size:17px!important;line-height:1.4}

/* Body paragraphs and lists. Technical terminals and visual mockups are not
   prose, and the locked jurisdiction block stays byte-for-byte/style-for-style. */
body.readable-site main :is(p,li):not(:where(.jurisdiction-section *,dialog *,.hosting-config *,.terminal-body *,.gpu-hero-art *,.product-hero-art *,.privacy-hero-art *,[aria-hidden="true"] *)){
 font-size:var(--type-copy)!important;line-height:1.75;
}
body.readable-site main :is(.hero-copy>p,.hosting-hero-inner>div>p,.gpu-hero-copy>p,.domain-hero-description,.page-hero-inner>div>p,.service-hero-copy>p,.service-hero-grid>div>p,.blog-hero p,.blog-article-heading>p,.cmp-hero-copy>p,.af-hero-grid>div>p:not(.af-hero-note),.ag-hero-copy>p:not(.ag-hero-note),.support-intro-inner>div>p,.regional-hero-grid>div>p,.rp-intro>.container>p,.privacy-hero-inner>div>p){
 font-size:var(--type-lead)!important;line-height:1.75;
}
body.readable-site main :is(.blog-article-body,.blog-content,.privacy-document) :is(p,li){font-size:14px!important;line-height:1.8}

/* Repeated UI labels and supporting copy get a readable floor, without
   enlarging diagram lettering, monospace code or currency/price figures. */
body.readable-site main small:not(:where(.jurisdiction-section *,dialog *,.hosting-config *,.gpu-hero-art *,.product-hero-art *,.privacy-hero-art *,[aria-hidden="true"] *)){
 font-size:var(--type-note)!important;line-height:1.7;
}
body.readable-site main :is(.eyebrow,.card-eyebrow,.availability,.blog-meta,.blog-card-meta,.blog-results-line,.regional-destination-profile,.regional-step,.regional-rate-note,.regional-destination-index,.regional-code,.regional-destination-heading>div>span,.privacy-number,.privacy-updated,.af-label,.ag-label,.service-eyebrow):not(:where(.jurisdiction-section *,dialog *,.hosting-config *)){
 font-size:var(--type-caption)!important;line-height:1.65;
}
body.readable-site main :is(.hero-caption,.home-payments p,.home-payments li,.home-comparison-help p,.hosting-period-help,.hosting-catalog-foot,.hosting-os-note,.hosting-addon-note,.hosting-availability-note,.hosting-region-unavailable,.hosting-periods button,.hosting-region-profile,.domain-timing,.domain-renew-note,.domain-table-footnote,.domain-lookup-privacy,.domain-lookup-disclaimer,.domain-no-script,.domain-result-count,.domain-hero-facts,.service-pricing-note,.service-preview>span:not(.service-preview-mark),.blog-cta p,.blog-service-guides p,.blog-sources p,.regional-summary dt,.regional-summary-foot,.regional-table-note,.regional-facts span,.regional-explore-grid small,.regional-destination-description,.af-hero-note,.af-calculation-note,.af-estimate-context,.af-estimate-foot,.af-customer-price small,.af-input-help,.af-brief-notice,.af-program-availability,.af-brief-checks li,.ag-hero-note,.ag-flow-foot,.ag-form-note,.ag-feedback,.ag-config-compatibility,.ag-source-link,.auth-aside-note,.auth-small-print,.auth-data-note>p,.auth-data-note>summary,.field-help,.form-message){
 font-size:var(--type-note)!important;line-height:1.75;
}
body.readable-site main :is(.breadcrumb,.hosting-breadcrumb,.blog-breadcrumb,.cmp-breadcrumb,.af-breadcrumb,.ag-breadcrumb,.support-breadcrumb,.regional-breadcrumb,.rp-breadcrumb,.purchase-navigation){font-size:var(--type-note)!important;line-height:1.65}
body.readable-site main :is(.regional-page-nav a,.regional-destination-link,.inline-link,.card-link,.home-guide-link,.home-steps a,.blog-text-link,.rp-guides a,.domain-hero-facts,.product-uses li,.product-tagline,.auth-aside li){font-size:var(--type-detail)!important;line-height:1.7}

/* Tables and form fields share roles rather than inheriting arbitrary card or
   hero sizes. Existing total-price typography and field layouts are preserved. */
body.readable-site main table:not(:where(.jurisdiction-section *,dialog *)) :is(th,td){font-size:var(--type-detail)!important;line-height:1.7}
body.readable-site main .regional-table-scroll tbody th{font-size:15px!important}
body.readable-site main :is(.hosting-table,.gpu-table,.domain-price-table) small{font-size:var(--type-note)!important;line-height:1.65}
body.readable-site main :is(.hosting-page .hosting-table,.gpu-page .hosting-table) td>strong{font-size:14px!important;line-height:1.6}
body.readable-site main :is(.regional-destination-heading h3,.regional-family-grid h3,.product-card h3){font-size:var(--type-card)!important}
body.readable-site main label:not(:where(.jurisdiction-section *,dialog *,.hosting-config *)){font-size:var(--type-detail)!important;line-height:1.6}
body.readable-site main :is(input:not([type=checkbox]):not([type=radio]),select,textarea):not(:where(dialog *,.hosting-config *)){font-size:14px!important;line-height:1.5}
body.readable-site main .button:not(:where(.jurisdiction-section *,dialog *,.hosting-config *)){font-size:var(--type-detail)!important;line-height:1.6;white-space:normal}
body.readable-site main :is(.faq-list summary,.regional-faq summary,.service-faq summary,.af-faq summary,.ag-faq summary){font-size:14px!important;line-height:1.65}

/* Compact labels follow the same roles as the rest of the interface. */
body.readable-site main :is(.hosting-plan-number,.hosting-summary-top>span,.service-plan-number){font-size:var(--type-caption)!important;line-height:1.6}
body.readable-site main :is(.hosting-hardware>div>span,.hosting-hero-tags>span,.hosting-summary-link,.hosting-assurances p>span,.service-breadcrumb){font-size:var(--type-note)!important;line-height:1.65}
body.readable-site main :is(.service-text-link,.ag-text-link,.af-secondary){font-size:var(--type-detail)!important;line-height:1.65}
body.readable-site main .hosting-table td::before{font-size:11px!important;line-height:1.6}
body.readable-site main :is(.hosting-feature-grid h3,.gpu-images-grid h3,.support-guide li h3,.af-steps h3){font-size:15px!important;line-height:1.5}
body.readable-site main :is(.domain-featured-heading h2,.domain-shortlist h2){font-size:16px!important;line-height:1.5}
body.readable-site main :is(.partners-intro h2,.ag-resources h2){font-size:20px!important;line-height:1.4}
body.readable-site main :is(.hosting-assurances p>strong,.hosting-start-region,.domain-offer-foot>span,.domain-featured-heading>span,.ag-endpoint>span,.ag-config-note>span,.blog-featured-bottom>span,.blog-featured-bottom>a,.blog-filters button,.password-field button){font-size:12px!important;line-height:1.65}
body.readable-site main :is(.gpu-hero-pills>span,.domain-offer-brand>span,.domain-launch-badge,.mobile-price-label,.domain-filters button>span,.ag-client-tabs button>span,.blog-hero-topics>span,.blog-category,.blog-filters button>span){font-size:11px!important;line-height:1.6}

/* The status and canary documents retain their locked source content. Their
   presentation uses the same scale through the final, removable stylesheet. */
body .status-page h1{font-size:var(--type-title)!important;line-height:1.15;letter-spacing:-.035em}
body .status-page .status-section-heading h2{font-size:var(--type-section)!important;line-height:1.25}
body .status-page :is(.status-global h2,.status-help h2,.status-region h3){font-size:var(--type-card)!important;line-height:1.45}
body .status-page p{font-size:var(--type-copy)!important;line-height:1.75}
body .status-page .status-hero p{font-size:var(--type-lead)!important;line-height:1.75}
body .status-page :is(.status-breadcrumb,.status-support-link,.status-metrics small,.status-updated,#status-refresh,#status-feedback,.status-maintenance strong,.status-maintenance small,.status-filter-note,.status-filters>label,.status-service-tabs>button,.status-service-list>li,.status-incident-copy>strong,.status-timeline strong,.status-history-empty strong,.status-help .button){font-size:12px!important;line-height:1.65}
body .status-page :is(.eyebrow,.status-legend,.status-state,.status-service-list li>span:last-child,.status-history-heading,.status-history-heading strong,.status-history-scale,.status-latency small,.status-count,.status-incident-copy>span,.status-incident-result,.status-incident-meta,.status-incident-meta>span,.status-timeline time,.status-timezone){font-size:11px!important;line-height:1.65}
body .status-page .status-filters select{font-size:14px!important;line-height:1.5}
body .canary-page .canary-hero>p{font-size:var(--type-lead)!important;line-height:1.75}
body .canary-page :is(.canary-warning h2,.canary-explainer h2){font-size:20px!important;line-height:1.4}
body .canary-page .canary-faq summary{font-size:14px!important;line-height:1.65}
body .canary-page .canary-schedule time{font-size:16px!important;line-height:1.5}
body .canary-page .canary-schedule strong{font-size:14px!important;line-height:1.5}
body .discovery-wisphost h2{font-size:var(--type-section)!important;line-height:1.25}
body .discovery-wisphost h3{font-size:var(--type-card)!important;line-height:1.4}
body .discovery-wisphost :is(p,label,legend){font-size:var(--type-copy)!important;line-height:1.75}
body .discovery-wisphost select{font-size:14px!important;line-height:1.5}

/* Shared navigation and footer retain the brand/code marks at their own size. */
body .site-footer.wisp-footer :is(.footer-description){font-size:var(--type-copy)!important;line-height:1.8}
body .site-footer.wisp-footer :is(.footer-account-note,.footer-payments>p,.footer-region-copy small){font-size:var(--type-note)!important;line-height:1.75}
body .site-footer.wisp-footer :is(.footer-nav h3,.footer-regions-heading h3){font-size:var(--type-note)!important;line-height:1.6}
body .site-footer.wisp-footer :is(.footer-nav li>a,.footer-nav li>button,.footer-region-copy strong,.footer-regions-heading>a){font-size:var(--type-detail)!important;line-height:1.7}
body .site-footer.wisp-footer :is(.footer-bottom,.footer-domain,.footer-language,.footer-price-tag,.footer-payments li){font-size:var(--type-caption)!important;line-height:1.65}
body .site-header :is(.company-menu strong){font-size:12px;line-height:1.6}
body .site-header :is(.company-menu small){font-size:11px;line-height:1.6}

@media(max-width:980px){body{--type-title:36px;--type-section:26px;--type-ui-title:30px}}
@media(max-width:700px){
 body{--type-title:30px;--type-section:24px;--type-card:16px;--type-lead:14px;--type-ui-title:28px}
 body.readable-site :is(.blog-card,.blog-featured) h2{font-size:20px!important}
 body.readable-site :is(.auth-panel,.purchase-panel-heading,.payment-panel-top,.support-panel-title) h2{font-size:20px!important}
 body.readable-site main :is(input:not([type=checkbox]):not([type=radio]),select,textarea):not(:where(dialog *,.hosting-config *)){font-size:16px!important}
 body.readable-site main .regional-table-scroll tbody th{font-size:16px!important}
 body.readable-site main .rp-rates tbody th{font-size:16px!important}
 body .status-page .status-filters select{font-size:16px!important}
 body .status-page .status-region header{flex-wrap:wrap}
 body .status-page .status-state{margin-left:auto}
 body .status-page .status-incident-result{white-space:normal}
 body .status-page .status-service-tabs{flex-wrap:wrap;justify-content:flex-start}
 body .status-page .status-breadcrumb{padding-top:48px;flex-wrap:wrap}
 body .privacy-hero>.container>.breadcrumb{padding-top:48px;flex-wrap:wrap}
 body .discovery-wisphost select{font-size:16px!important}
}
@media(max-width:400px){
 html[lang="ru"] body{--type-title:27px;--type-ui-title:26px}
 body{--type-section:23px}
}
