/* =========================================================
   eDEFEND SHARED TYPOGRAPHY SYSTEM
   Keeps hierarchy and readability consistent across every page.
========================================================= */

:root {
    --type-font: "Manrope", "Avenir Next", "Segoe UI", Arial, sans-serif;
    --type-hero: clamp(44px, 4.8vw, 60px);
    --type-section: clamp(32px, 3vw, 40px);
    --type-subsection: 24px;
    --type-card-title: 17px;
    --type-card-body: 15px;
    --type-body: 16px;
    --type-small: 13px;
    --type-kicker: 12px;
    --type-button: 14px;
    --type-faq-question: 16px;
    --type-faq-answer: 15px;
    --type-nav: 16px;
}

html,
body,
button,
input,
select,
textarea {
    font-family: var(--type-font) !important;
}

body {
    font-size: var(--type-body);
    line-height: 1.65;
}

/* Main page / hero titles */
.hero-copy h1,
.about-title,
.dpdpa-title,
.grc-title,
.hww-title,
.case-hero h1,
.contact-page-head h1,
.legal-page-head h1 {
    font-size: var(--type-hero) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
}

/* Section headings */
.home-section h2,
.about-section h2,
.about-heading-center h2,
.dpdpa-section h2,
.dpdpa-heading-center h2,
.grc-heading-block h2,
.grc-heading-center h2,
.hww-heading-block h2,
.hww-heading-center h2,
.hww-applies-copy h2,
.case-heading-block h2,
.case-study-copy h2,
.engagement-head h2,
.legal-card h2,
.site-cta h2,
.site-faq-heading h2 {
    font-size: var(--type-section) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.035em !important;
}

/* Hero / lead copy */
.hero-copy > p,
.about-hero-copy > p,
.dpdpa-hero-copy > p,
.grc-hero-copy > p,
.hww-hero-copy > p,
.case-hero-copy > p,
.contact-page-head p,
.legal-page-head p {
    font-size: var(--type-body) !important;
    line-height: 1.72 !important;
}

.grc-subtitle,
.hww-subtitle {
    font-size: 22px !important;
    line-height: 1.3 !important;
}

/* Standard page body text */
.home-main p,
.about-main p,
.dpdpa-main p,
.grc-main p,
.hww-main p,
.case-page p,
.contact-main p,
.legal-main p {
    line-height: 1.68;
}

/* Section descriptions / normal content */
.section-heading-center p,
.about-heading-center p,
.dpdpa-heading-center p,
.grc-heading-block p,
.grc-heading-center p,
.hww-heading-block p,
.hww-heading-center p,
.hww-applies-copy p,
.case-heading-block p,
.engagement-head p,
.legal-card p {
    font-size: var(--type-body) !important;
    line-height: 1.68 !important;
}

/* Kicker / eyebrow system */
.section-kicker,
.hero-kicker,
.about-kicker,
.dpdpa-kicker,
.grc-kicker,
.hww-kicker,
.case-kicker,
.site-cta-kicker,
.site-faq-kicker {
    font-size: var(--type-kicker) !important;
    line-height: 1.1 !important;
}

/* Cards: one consistent readable scale across the site */
.home-main [class*="card"] h2,
.about-main [class*="card"] h2,
.dpdpa-main [class*="card"] h2,
.grc-main [class*="card"] h2,
.hww-main [class*="card"] h2,
.case-page [class*="card"] h2,
.contact-main [class*="card"] h2,
.legal-main [class*="card"] h2 {
    font-size: 20px !important;
    line-height: 1.3 !important;
}

.home-main [class*="card"] h3,
.about-main [class*="card"] h3,
.dpdpa-main [class*="card"] h3,
.grc-main [class*="card"] h3,
.hww-main [class*="card"] h3,
.case-page [class*="card"] h3,
.contact-main [class*="card"] h3,
.legal-main [class*="card"] h3,
.pillar h3,
.process-step h3,
.arch-item strong,
.why-item strong {
    font-size: var(--type-card-title) !important;
    line-height: 1.38 !important;
}

.home-main [class*="card"] p,
.about-main [class*="card"] p,
.dpdpa-main [class*="card"] p,
.grc-main [class*="card"] p,
.hww-main [class*="card"] p,
.case-page [class*="card"] p,
.contact-main [class*="card"] p,
.legal-main [class*="card"] p,
.home-main [class*="card"] li,
.about-main [class*="card"] li,
.dpdpa-main [class*="card"] li,
.grc-main [class*="card"] li,
.hww-main [class*="card"] li,
.case-page [class*="card"] li,
.pillar p,
.process-step p,
.arch-item p,
.why-item p,
.quote-card blockquote,
.editorial-card--plain p,
.hww-applies-list li {
    font-size: var(--type-card-body) !important;
    line-height: 1.65 !important;
}

/* Contact form readability */
.contact-label,
.contact-detail-label,
.contact-subtitle {
    font-size: var(--type-small) !important;
}

.contact-input,
.contact-select,
.contact-textarea,
.contact-detail-value,
.contact-location strong,
.contact-location small,
.contact-assurance,
.contact-privacy-note,
.contact-form-status {
    font-size: 15px !important;
    line-height: 1.55 !important;
}

.contact-card-title {
    font-size: 26px !important;
}

/* Buttons */
.home-btn,
.grc-button,
.hww-button,
.case-button,
.contact-submit,
.site-cta-button {
    font-size: var(--type-button) !important;
}

/* Shared FAQ scale */
.site-faq-kicker {
    font-size: var(--type-kicker) !important;
}

.site-faq-heading p {
    font-size: var(--type-body) !important;
}

.site-faq-question {
    font-size: var(--type-faq-question) !important;
    line-height: 1.5 !important;
}

.site-faq-answer p {
    font-size: var(--type-faq-answer) !important;
    line-height: 1.72 !important;
}

/* Shared CTA readability */
.site-cta p {
    font-size: var(--type-body) !important;
    line-height: 1.68 !important;
}

.site-cta-assurance {
    font-size: var(--type-small) !important;
}

/* Homepage-specific small text that was previously hard to read */
.hero-metric span,
.pillar p,
.text-link,
.arch-copy > p,
.standard span,
.process-step small,
.why-copy p,
.quote-person span,
.editorial-intro,
.editorial-card--plain .editorial-meta,
.editorial-card-footer > span,
.editorial-card .text-link {
    font-size: var(--type-small) !important;
}

.arch-copy > p,
.why-copy p {
    font-size: var(--type-body) !important;
}

/* About / DPDPA formerly tiny labels */
.about-service-card p,
.vision-card p,
.why-about-card p,
.credential-card p,
.dpdpa-outcome-card p,
.dpdpa-help-card > p,
.dpdpa-service-card p,
.dpdpa-step-card p,
.dpdpa-why-card p,
.dpdpa-integrity-card p {
    font-size: var(--type-card-body) !important;
}

/* Navigation remains visually consistent everywhere */
.main-nav > .nav-link,
.main-nav > .nav-item > .nav-link,
.services-toggle {
    font-size: var(--type-nav) !important;
}

.service-copy strong {
    font-size: 15px !important;
}

.service-copy small {
    font-size: 12px !important;
}

/* Footer stays compact, but readable */
.footer-description {
    font-size: 15px !important;
    line-height: 1.62 !important;
}

.footer-links a,
.location-block strong,
.location-block span,
.footer-email {
    font-size: 15px !important;
}

.footer-bottom p,
.footer-legal a {
    font-size: 12px !important;
}

/* Image rendering defaults */
main img,
.partner-inline-card img,
.client-logo-slide img {
    image-rendering: auto;
    -ms-interpolation-mode: bicubic;
}

@media (max-width: 720px) {
    :root {
        --type-hero: clamp(36px, 10vw, 46px);
        --type-section: clamp(28px, 7vw, 34px);
        --type-body: 16px;
        --type-card-title: 17px;
        --type-card-body: 15px;
        --type-nav: 15px;
    }
}
