/* GrabbyHost public-site typography: fluid, readable and component-aware. */
@font-face { font-family:'Grabby Lato'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/brand-v2/lato-400.ttf') format('truetype'); }
@font-face { font-family:'Grabby Lato'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/brand-v2/lato-700.ttf') format('truetype'); }
@font-face { font-family:'Grabby Poppins'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/brand-v2/poppins-600.ttf') format('truetype'); }
@font-face { font-family:'Grabby Poppins'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/brand-v2/poppins-700.ttf') format('truetype'); }

:root {
 --gh-font-family:'Grabby Lato','Segoe UI',Arial,sans-serif;
 --gh-font-heading:'Grabby Poppins','Segoe UI',Arial,sans-serif;
 --gh-weight-heading:600;
 --gh-weight-label:700;
 --gh-reading-leading:1.65;
 --gh-card-leading:1.62;
}

/* Public pages use a reading baseline; the client dashboard keeps its denser UI. */
body.grabby-modern-page:not(.gm-dashboard-page) {
 font-family:var(--gh-font-family);
 font-size:1rem;
 line-height:var(--gh-reading-leading);
 text-rendering:optimizeLegibility;
 -webkit-font-smoothing:antialiased;
}
body.grabby-modern-page:not(.gm-dashboard-page) p {
 font-family:var(--gh-font-family);
 font-size:var(--gh-type-body);
 font-weight:400;
 line-height:var(--gh-reading-leading);
}

body.grabby-modern-page :is(h1,h2,h3,h4,h5,h6),.gh-type-heading {
 font-family:var(--gh-font-heading);
 font-weight:600;
 text-wrap:balance;
}
body.grabby-modern-page .gh-home h1 {
 font-weight:600;
 letter-spacing:-.035em;
 -webkit-text-stroke:0;
 line-height:1.12;
}
body.grabby-modern-page .gh-home > section:not(.gh-reference-hero) h2 {
 font-size:var(--gh-type-h2);
 font-weight:600;
 line-height:1.2;
 letter-spacing:-.03em;
}
body.grabby-modern-page .gh-home > section:not(.gh-reference-hero) h3 {
 font-size:var(--gh-type-card-title);
 font-weight:600;
 line-height:1.35;
 letter-spacing:-.02em;
}
body.grabby-modern-page .gh-home h1 :is(span,b,strong),
body.grabby-modern-page .gh-home :is(h2,h3) :is(em,b,strong,span) {
 font-family:inherit;
 font-weight:inherit;
}

/* Reading copy and card copy are deliberately different sizes. */
body.grabby-modern-page .gh-home :is(p,small,input,textarea,select) { font-family:var(--gh-font-family); }
body.grabby-modern-page .gh-home :is(
 .gh-platform-page p,.gh-hosting-tagline,.gh-web-security-cards p,
 .gh-help-support-cards p,.gh-help-shortcut-cards p,.gh-help-account-cards p,
 .gh-faq-list details > p,.gh-faq-support > p
) {
 font-size:var(--gh-type-card-copy);
 font-weight:400;
 line-height:var(--gh-card-leading);
}
body.grabby-modern-page .gh-footer-reference p {
 font-size:var(--gh-type-card-copy);
 line-height:var(--gh-card-leading);
}

/* Card and feature titles scale above body copy and use real Poppins 600. */
body.grabby-modern-page .gh-home :is(
 .gh-help-card-title,.gh-hosting-trust-title,
 .gh-platform-reasons strong,.gh-web-benefits strong
) {
 font-family:var(--gh-font-heading);
 font-size:var(--gh-type-card-title);
 font-weight:600;
 line-height:1.35;
 letter-spacing:-.02em;
}
body.grabby-modern-page .gh-home :is(
 .gh-hosting-trust small,.gh-platform-reasons small,.gh-web-benefits small
) {
 font-family:var(--gh-font-family);
 font-size:var(--gh-type-card-copy);
 font-weight:400;
 line-height:var(--gh-card-leading);
}
body.grabby-modern-page .gh-home .gh-help-badge-title {
 font-family:var(--gh-font-heading);
 font-size:1.0625rem;
 font-weight:600;
 line-height:1.25;
}
body.grabby-modern-page .gh-home :is(.gh-hero-origin,.gh-hero-assurances) {
 font-size:var(--gh-type-label);
 line-height:1.5;
}
body.grabby-modern-page .gh-home .gh-web-photo-badge strong {
 font-family:var(--gh-font-heading);
 font-size:var(--gh-type-meta);
 font-weight:600;
 line-height:1.35;
}
body.grabby-modern-page .gh-home :is(.gh-web-protection-note,.gh-help-human-badge small) {
 font-size:var(--gh-type-label);
 line-height:1.5;
}

/* UI text stays stable; compact metadata never carries primary content. */
body.grabby-modern-page .gh-home :is(button,summary),
body.grabby-modern-page #header :is(button,a) { font-family:var(--gh-font-family); }
body.grabby-modern-page .gh-home :is(
 .gh-platform-page a,.gh-hosting-actions a,.gh-hosting-primary,
 .gh-web-button,.gh-web-text-link,.gh-help-client-link,
 .gh-faq-contact,.gh-launch-actions a,.gh-platform-domain-actions a
) {
 font-size:var(--gh-type-small);
 font-weight:700;
 line-height:1.5;
}
body.grabby-modern-page .gh-home :is(
 .gh-hosting-benefits li,.gh-hosting-features li,.gh-web-growth li,
 .gh-web-security-checklist li,.gh-launch-benefits li
) {
 font-size:var(--gh-type-small);
 line-height:1.55;
}
body.grabby-modern-page .gh-home :is(
 .gh-hosting-controls > span,.gh-platform-controls span,.gh-hosting-popular,
 .gh-hosting-billing,.gh-hosting-price small,.gh-hosting-details,
 .gh-platform-domain-prices > span,.gh-platform-domain-prices small,
 .gh-platform-region,.gh-platform-region small,.gh-platform-earth-badges > div,
 .gh-platform-earth-badges strong,.gh-web-photo-badge small,
 .gh-web-protected-label,.gh-web-protected-tagline,.gh-launch-trust
) {
 font-size:var(--gh-type-meta);
 line-height:1.5;
}

/* Eyebrows are the only intentionally 14px public content labels. */
body.grabby-modern-page .gh-home :is(
 .gh-platform-heading > span,.gh-platform-kicker,.gh-hosting-kicker,
 .gh-hosting-price-label,.gh-web-eyebrow,.gh-help-kicker,
 .gh-faq-heading > span,.gh-launch-kicker
) {
 font-family:var(--gh-font-family);
 font-size:var(--gh-type-label);
 font-weight:700;
 line-height:1.5;
 letter-spacing:.09em;
}

/* Hero and FAQ receive reading-size treatment without changing their layout. */
body.grabby-modern-page .gh-home .gh-reference-hero .gh-home-hero-sub {
 font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem);
 font-weight:400;
 line-height:1.55;
}
body.grabby-modern-page .gh-home .gh-faq-list summary {
 font-family:var(--gh-font-heading);
 font-size:clamp(1.0625rem,1.025rem + .15vw,1.1875rem);
 font-weight:600;
 line-height:1.45;
}
body.grabby-modern-page .gh-home .gh-faq-support h3 { margin-right:70px; }
body.grabby-modern-page .gh-home .gh-hosting-price strong {
 font-weight:700;
 font-variant-numeric:tabular-nums;
 letter-spacing:-.025em;
}

/* Header and footer remain legible without competing with page content. */
body.grabby-modern-page #header :is(.gh-category-link,.gh-header-action strong,.gh-cart-action strong) {
 font-size:1rem;
 font-weight:600;
}
body.grabby-modern-page #header .gh-currency-toggle { font-size:.875rem; }
body.grabby-modern-page #header .gh-currency-item { font-size:.9375rem; }
body.grabby-modern-page #header .gh-action-count { font-size:.75rem; }
body.grabby-modern-page .gh-footer-reference h4 {
 font-size:1.125rem;
 font-weight:600;
 line-height:1.4;
}
body.grabby-modern-page .gh-footer-reference :is(a,small) {
 font-family:var(--gh-font-family);
 font-size:1rem;
 line-height:1.55;
}
body.grabby-modern-page a.gh-footer-preferences { font-size:1rem !important; }

@media(max-width:767px) {
 body.grabby-modern-page .gh-home h2 br { display:none; }
 body.grabby-modern-page .gh-home .gh-faq-support h3 { margin-right:55px; }
}

@media(prefers-reduced-motion:reduce) {
 body.grabby-modern-page:not(.gm-dashboard-page) { text-rendering:auto; }
}
