/* Typography source of truth for every ChiniDom page. Load after component styles.
   Use font-weight (including 780), never a hard-coded "wght" variation setting. */
:root {
  --font-family-base: 'Geologica', Arial, sans-serif;
  --weight-body: 400;
  --weight-label: 500;
  --weight-control: 600;
  --weight-section: 700;
  --weight-hero: 780;

  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-body: 1rem;
  --text-lead: 1.0625rem;
  --text-card: 1.375rem;
  --text-panel: 1.125rem;
  --text-dialog: clamp(1.5rem, 2.4vw, 1.875rem);
  --text-section: clamp(2rem, 3.1vw, 2.75rem);
  --text-hero: clamp(3rem, 4.5vw, 4.125rem);
  --text-brand: 1.5625rem;
  --text-eyebrow: .6875rem;

  --leading-body: 1.65;
  --leading-label: 1.45;
  --leading-control: 1.4;
  --leading-card: 1.3;
  --leading-section: 1.16;
  --leading-hero: 1.08;
  --tracking-body: 0;
  --tracking-card: -.025em;
  --tracking-heading: -.04em;
  --tracking-eyebrow: .08em;
}

body, #platform-reviews {
  font-family: var(--font-family-base);
  font-size: var(--text-body);
  font-weight: var(--weight-body);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-body);
  font-synthesis: none;
}
button, input, select, textarea { font-family: var(--font-family-base); }
h1, h2, h3 { word-break: normal; overflow-wrap: normal; hyphens: manual; }
h1, .hero h1 {
  font-size: var(--text-hero); font-weight: var(--weight-hero);
  line-height: var(--leading-hero); letter-spacing: var(--tracking-heading);
}
h2, .section-head h2, .faq-copy h2, .request-section h2 {
  font-size: var(--text-section); font-weight: var(--weight-section);
  line-height: var(--leading-section); letter-spacing: var(--tracking-heading);
}
h3, .service-card h3, .case-card h3, .advantage-card h3, .steps-list h3 {
  font-size: var(--text-card); font-weight: var(--weight-control);
  line-height: var(--leading-card); letter-spacing: var(--tracking-card);
}
.request-dialog__head h2 { font-size: var(--text-dialog); }
.hero-panel__top h2 { font-size: var(--text-panel); font-weight: var(--weight-control); }
.hero__lead { font-size: var(--text-lead); line-height: var(--leading-body); }
.section-head > p, .faq-copy > p, .request-section__copy > p {
  font-size: var(--text-body); font-weight: var(--weight-body); line-height: var(--leading-body);
}
.service-card p, .case-card__body > p:not(.eyebrow), .advantage-card p,
.steps-list p, .faq-list details p, .footer__top p {
  font-size: var(--text-sm); font-weight: var(--weight-body); line-height: var(--leading-body);
}
.button, .hero__actions .button, .service-card button, .case-card__cta,
.case-more > summary, .faq-list summary {
  font-size: var(--text-sm); font-weight: var(--weight-control); line-height: var(--leading-control);
}
.hero__actions .button { font-size: var(--text-body); }
.button--compact { font-size: var(--text-xs); }
.appliance > span:not(.appliance__arrow) {
  font-size: var(--text-sm); font-weight: var(--weight-control);
  line-height: var(--leading-control); letter-spacing: var(--tracking-card);
}
.desktop-nav a, .mobile-menu a, .hero__secondary, .footer__top nav,
.footer__contacts {
  font-size: var(--text-sm); font-weight: var(--weight-label); line-height: var(--leading-label);
}
.hero__secondary { font-size: var(--text-xs); }
.eyebrow, .hero .eyebrow, .section-head .eyebrow, .case-card .eyebrow {
  font-size: var(--text-eyebrow); font-weight: var(--weight-label);
  line-height: var(--leading-label); letter-spacing: var(--tracking-eyebrow);
}
.hero__facts, .hero-panel__top > span, .hero-panel__note,
.service-card__index, .advantage-card > span, .steps-list > li > span,
.case-card__photo > span, .case-card__context > span,
.case-card__photo--pending > p, .footer__bottom, .footer__contacts > span,
.form-note, .form-status, .wordmark small {
  font-size: var(--text-xs); font-weight: var(--weight-label); line-height: var(--leading-label);
}
.case-card__context > strong, .footer__top strong {
  font-size: var(--text-sm); font-weight: var(--weight-control); line-height: var(--leading-label);
}
.hero-photo figcaption > span { font-size: var(--text-body); font-weight: var(--weight-control); line-height: var(--leading-control); }
.hero-photo figcaption > small { font-size: var(--text-xs); font-weight: var(--weight-label); line-height: var(--leading-label); }
.wordmark, .footer__top .wordmark {
  font-size: var(--text-brand); font-weight: var(--weight-control);
  line-height: var(--leading-control); letter-spacing: var(--tracking-heading);
}
.request-form label > span { font-size: var(--text-sm); font-weight: var(--weight-label); line-height: var(--leading-label); }
.request-form input, .request-form textarea, .request-form select {
  font-size: var(--text-body); font-weight: var(--weight-body); line-height: var(--leading-control);
}

@media (max-width: 800px) {
  :root { --text-hero: clamp(2.75rem, 7.5vw, 3.625rem); --text-section: clamp(2rem, 4.8vw, 2.5rem); }
}
@media (max-width: 560px) {
  :root {
    --text-hero: clamp(2.125rem, 9.2vw, 2.5rem);
    --text-section: clamp(1.875rem, 7.8vw, 2.125rem);
    --text-card: 1.25rem;
    --text-lead: .9375rem;
    --text-brand: 1.4375rem;
    --text-eyebrow: .625rem;
  }
}

/* Brand V4: approved artwork used identically in every header and footer.
   Background removed and canvas trimmed; the lettering itself is unchanged. */
.wordmark__logo { display: block; flex: none; width: auto; height: 37px; max-width: none; }
.wordmark--footer .wordmark__logo { height: 32px; }
@media (max-width: 800px) { .header__inner .wordmark__logo { height: 33px; } }
@media (max-width: 560px) { .header__inner .wordmark__logo { height: 25px; } }

/* Approved main-page copy: preserve CTA, add contextual links to ready SEO pages. */
.service-card__seo-link{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;font-weight:650;}
.service-card__seo-link:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px;}
