/*
 * TyBroad front-end typography and text-color roles.
 * Loaded after template and responsive styles so every current and future
 * content type inherits one stable hierarchy without page-specific patches.
 */
:root {
  --tyb-text-heading: #052d66;
  --tyb-text-body: #46666a;
  --tyb-text-muted: #526d72;
  --tyb-text-accent: #087d84;
  --tyb-text-contact: #c2410c;
  --tyb-title-home: 52px;
  --tyb-title-archive: 40px;
  --tyb-title-detail: 40px;
  --tyb-title-home-section: 32px;
  --tyb-title-section: 28px;
  --tyb-title-subsection: 20px;
  --tyb-title-card: 18px;
  --tyb-text-copy: 16px;
  --tyb-text-card: 14px;
  --tyb-text-meta: 13px;
}

body {
  font-size: var(--tyb-text-copy);
  line-height: 1.65;
}

body:not(.theme-07),
body.theme-07 {
  --ink: var(--tyb-text-heading);
  --body: var(--tyb-text-body);
  --muted: var(--tyb-text-muted);
  --accent: var(--tyb-text-accent);
}

/* Header and footer use the same compact weight system as page content. */
.topbar .tagline,
.site-header .main-nav a,
.site-footer li,
.site-footer .footer-brand p,
.site-footer .copyright {
  font-weight: 600;
}

.site-header .main-nav > a,
.site-header .nav-group > a {
  font-weight: 700;
}

.site-header .header-phone span,
.site-header .header-phone strong {
  color: var(--tyb-text-contact);
}

.site-header .header-phone span {
  font-weight: 700;
}

.site-header .header-phone strong,
.site-header .header-cta,
.site-footer h4 {
  font-weight: 800;
}

/* Deliberate display hierarchy. */
body.theme-07 .hero .hero-copy h1 {
  color: var(--tyb-text-heading);
  font-size: var(--tyb-title-home);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.inner-hero .hero-copy h1 {
  color: var(--tyb-text-heading);
  font-size: var(--tyb-title-archive);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.pd-title,
.pd-copy h1,
.solution-detail-hero h1,
.article-hero h1 {
  font-size: var(--tyb-title-detail);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.pd-title,
.pd-copy h1,
.solution-detail-hero h1 {
  color: var(--tyb-text-heading);
}

/* Dark editorial banners retain white headings for readable contrast. */
.article-hero h1 {
  color: #fff;
}

body.theme-07 .section-title,
.inquiry-copy h2,
.compact-inquiry h2 {
  font-size: var(--tyb-title-home-section);
  font-weight: 800;
  line-height: 1.25;
}

body.theme-07 .section-title {
  color: var(--tyb-text-heading);
}

body.theme-07 .core-content h2 {
  color: var(--tyb-text-heading);
  font-size: 30px;
  font-weight: 800;
  line-height: 1.25;
}

.pd-heading,
.solution-section-title h2,
.solution-introduction .solution-section-title h2,
.article-content h2,
.template-entry h2 {
  color: var(--tyb-text-heading);
  font-size: var(--tyb-title-section);
  font-weight: 800;
  line-height: 1.28;
}

.article-content h3,
.template-entry h3,
.pd-structure-copy h3,
.use-item h3,
.qualification-row h3 {
  color: var(--tyb-text-heading);
  font-size: var(--tyb-title-subsection);
  font-weight: 700;
  line-height: 1.4;
}

/* Repeated card roles stay identical across products, cases and news. */
.product-card h3,
.case-card h3,
.news-card h3,
.article-card h3,
.content-grid .content-card h2,
.solution-related-cards h3 {
  color: var(--tyb-text-heading);
  font-size: var(--tyb-title-card);
  font-weight: 700;
  line-height: 1.45;
}

.product-card p,
.case-card p,
.news-card p,
.article-card p,
.content-grid .content-card p {
  color: var(--tyb-text-muted);
  font-size: var(--tyb-text-card);
  font-weight: 400;
  line-height: 1.65;
}

/* Long-form reading roles. */
.long-copy,
.section-lead,
.detail-copy p,
.solution-copy p,
.timeline-copy p,
.about-copy p,
.pd-copy,
.template-entry {
  color: var(--tyb-text-body);
  font-size: var(--tyb-text-copy);
  font-weight: 400;
  line-height: 1.8;
}

.pd-overview-copy,
.solution-introduction__body,
.article-content p {
  color: var(--tyb-text-body);
  font-size: var(--tyb-text-copy);
  font-weight: 400;
  line-height: 1.9;
}

/* Stable English subtitle, kicker and metadata roles. */
.inner-hero .hero-copy h1 small,
.solution-hero h1 small {
  color: var(--tyb-text-accent);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .04em;
}

.eyebrow,
.solution-detail-kicker,
.solution-section-title span,
.solution-triptych__card > header span,
.feature-product .label,
.case-type {
  color: var(--tyb-text-accent);
  font-size: var(--tyb-text-meta);
  font-weight: 800;
  letter-spacing: .1em;
}

.date,
.news-meta,
.pd-note {
  color: var(--tyb-text-muted);
  font-size: var(--tyb-text-meta);
  font-weight: 600;
}

/* Solution-detail content must not fall below the readable card-copy floor. */
.solution-detail {
  --solution-cyan: var(--tyb-text-accent);
  --solution-muted: var(--tyb-text-body);
}

.solution-overview__item small {
  color: var(--tyb-text-muted);
  font-size: var(--tyb-text-meta);
  font-weight: 600;
}

.solution-requirements h3,
.solution-materials h3,
.solution-process-flow h3,
.solution-equipment-card header h3 {
  color: var(--tyb-text-heading);
  font-weight: 700;
}

.solution-requirements p,
.solution-materials p,
.solution-process-flow p,
.solution-triptych__card > header p,
.solution-equipment-points li,
.solution-effect-card > ul li,
.solution-effect-flow figcaption,
.solution-effect-note,
.solution-detail-faq details p {
  color: var(--solution-muted);
  font-size: var(--tyb-text-card);
  line-height: 1.65;
}

.solution-requirements p,
.solution-process-flow p,
.solution-triptych__card > header p,
.solution-effect-flow figcaption,
.solution-effect-note,
.solution-detail-faq details p {
  font-weight: 400;
}

.solution-materials p,
.solution-equipment-points li,
.solution-effect-card > ul li {
  font-weight: 600;
}

.solution-related-cards small,
.solution-article-list small {
  color: var(--tyb-text-accent);
  font-size: var(--tyb-text-meta);
  font-weight: 700;
}

/* Controls use only the approved 700/800 emphasis levels. */
.button,
.core-action,
.solution-text-link,
.form button,
.compact-inquiry .form button,
.inquiry .form button,
.contact-form button,
.pd-form button {
  font-weight: 800;
}

.form label,
.compact-inquiry .form label,
.inquiry .form label,
.contact-form label,
.pd-form label {
  font-weight: 700;
}

@media (max-width: 719px) {
  :root {
    --tyb-title-home: 36px;
    --tyb-title-archive: 32px;
    --tyb-title-detail: 32px;
    --tyb-title-home-section: 28px;
    --tyb-title-section: 24px;
    --tyb-title-subsection: 18px;
    --tyb-title-card: 17px;
    --tyb-text-copy: 15px;
  }

  body {
    font-size: 16px;
  }

  body.theme-07 .core-content h2 {
    font-size: 26px;
  }

  .inquiry-copy h2,
  .compact-inquiry h2 {
    font-size: var(--tyb-title-home-section);
  }

  .inner-hero .hero-copy h1,
  .pd-title,
  .pd-copy h1,
  .solution-detail-hero h1,
  .article-hero h1 {
    overflow-wrap: anywhere;
  }

  .pd-overview-copy,
  .solution-introduction__body {
    font-size: 15px;
    line-height: 1.9;
  }

  .article-content p,
  .template-entry {
    font-size: 15px;
    line-height: 1.82;
  }
}
