/*
 * typography.css — Prevu type tokens applied to InstaMortgage components.
 * Loaded LAST in header.php so it wins over the legacy theme sheets at equal
 * specificity. Every rule here resolves to a token from tokens.type.css.
 * PRD section 6 (component worklist). Choose new tokens by role, not current size.
 */

/* ---------- Element defaults ----------
 * Declared here (not only in tokens.type.css) because bootstrap.css and the
 * style.css reset (`font: inherit` on every element) load after the tokens file
 * and would otherwise win at equal specificity. */
body { font: var(--type-body); letter-spacing: normal; }
h1 { font: var(--type-h1); letter-spacing: var(--ls-h1); }
h2 { font: var(--type-section); letter-spacing: normal; }
h3, h4, h5 { font: var(--type-h3); letter-spacing: var(--ls-h3); }
h6 { font: var(--type-body); letter-spacing: normal; }
strong, b { font-weight: var(--fw-bold); }
small { font: var(--type-caption); }
input, select, textarea, button { font-family: var(--font-sans); }

/* ---------- Global chrome ---------- */
#site-navigation .dropdown-menu > li > a { font: var(--type-nav); letter-spacing: var(--ls-nav); line-height: 40px; /* 40px keeps the existing header bar height */ }
#site-navigation .dropdown-menu .sub-menu li a { font: var(--type-body-sm); letter-spacing: normal; }
.header-contact ul li a { font: var(--type-body-sm); letter-spacing: normal; }
.head-btn .btn, .head-btn button, .home-cta-section .btn { font: var(--type-button); letter-spacing: normal; }
.insta-cta-btn, .insta-cta-btn-reverse, .no-link-insta-cta-btn,
.mortgage-pre-approved-btn, .calculate-btn a, .exre-btn a { font: var(--type-button); letter-spacing: normal; }
/* Bootstrap buttons (e.g. /partner-with-instamortgage/ "Loan Officer / Real Estate Agent / CPA"):
   size + weight only, so Bootstrap's line-height and padding keep the button heights. */
.btn:where(:not(.btn-sm):not(.btn-lg)) { /* :where keeps specificity at 0,1,0 */ font-family: var(--font-sans); font-size: 16px; font-weight: var(--fw-bold); letter-spacing: normal; }

#footer-wrap .footer-box a, #footer-wrap .footer-box li a { font: var(--type-body); line-height: 30px; letter-spacing: normal; }
#footer-wrap .widget-title, #footer-wrap .footer-sec-title { font: var(--type-h3); letter-spacing: var(--ls-h3); }
#footer-wrap .col-md-8.text-center p, #footer-wrap .col-md-8.text-center p a { font: var(--type-body-sm); letter-spacing: normal; }
.accessibility-btn .btn-light, .acsb-sr-only, .acsb-sr-alert { font: var(--type-body-sm); }

/* ---------- Homepage + product landing pages ---------- */
.experience-title, h1.experience-title { font: var(--type-h1); letter-spacing: var(--ls-h1); }
.new-design-title h2 { font: var(--type-section); letter-spacing: normal; color: var(--base-800); }
.new-design-title h2 span, .new-design-title h2 .refinance-blue { font: inherit; letter-spacing: inherit; }
.title h2, .new-design-title h3, .hvrsdw .title h5, .eng-dri .title h2 { font: var(--type-h3); letter-spacing: var(--ls-h3); }
.title.new-design-title h2, .new-design-title h2 { font: var(--type-section); letter-spacing: normal; } /* re-assert over .title h2 above */
.title-mil { font: var(--type-stat); letter-spacing: var(--ls-stat); }
.sub-mil { font: var(--type-body-sm); letter-spacing: normal; }

/* Testimonials / Google reviews (theme-styled parts only) */
.wp-gr.wpac .wp-google-text, .wp-gr .wp-google-text, .wp-google-feedback .wp-google-text { font: var(--type-body) !important; letter-spacing: normal !important; } /* plugin CSS uses !important */
.wp-gr.wpac .wp-google-name, .wp-gr .wp-google-name, .wp-google-left .wp-google-name { font: var(--type-card-title) !important; letter-spacing: var(--ls-card-title) !important; }
.client-reviews .reviews-slider .google-review-logo span.rating-average, .reviews-slider .rating-average, span.rating-average { font: var(--type-stat); letter-spacing: var(--ls-stat); }
.client-reviews .reviews-slider .google-review-logo span.rating-label, .rating-label, span.rating-label { font: var(--type-caption); letter-spacing: normal; }

/* ---------- Forms ---------- */
/* Labels stay sentence case (design decision: no uppercase label token on lead forms) */
form .form-group label, .wpcf7-form label { font: var(--type-body-sm); font-weight: var(--fw-bold); letter-spacing: normal; text-transform: none; }
.form-control, input[type="text"], input[type="email"], input[type="tel"], input[type="number"],
input[type="password"], input[type="url"], input[type="search"], select, textarea { font: var(--type-input); letter-spacing: normal; }
input[type="submit"], .wpcf7-submit, button[type="submit"] { font: var(--type-button); letter-spacing: normal; }

/* ---------- /rate-quote/ ---------- */
.fieldset-title, .fieldset-title h2, h1.fieldset-title, .fieldset-title span.fieldset-title { font: var(--type-h1-compact); letter-spacing: var(--ls-h1-compact); }
.square-input-btn, .normal-input-btn { font: var(--type-body); font-weight: var(--fw-medium); letter-spacing: normal; }

/* ---------- Blog ---------- */
.blog-title h1, .blog-title-stripe h1 { font: var(--type-h1); letter-spacing: var(--ls-h1); }
.get-a-cutomized h2, .col-md-6 > h2.pb-3 { font: var(--type-h1); letter-spacing: var(--ls-h1); }
.blog-category-title h3 { font: var(--type-h3); letter-spacing: var(--ls-h3); }
.blog-links h5, .blog-links h5 a { font: 700 16.5px/1.32 var(--font-sans); letter-spacing: -0.015em; } /* card-title, blog variant (PRD §6) */
.blog-links p { font: var(--type-body-sm); letter-spacing: normal; }
.blog-links p a { font: var(--type-body); letter-spacing: normal; }
.date-btn p, .date-btn a { font: var(--type-caption); font-weight: var(--fw-medium); letter-spacing: normal; }
.searchform, .searchform input, .searchform button, .page-numbers, .pagination, .nav-links { font: var(--type-body-sm); letter-spacing: normal; }
.entry h2 { font: var(--type-h2); letter-spacing: normal; }
.entry h3 { font: var(--type-h3); letter-spacing: var(--ls-h3); }

/* ---------- Other landing pages ---------- */
.my-first-home-title h1.mfh-title { font: var(--type-h1); letter-spacing: var(--ls-h1); }
