/**
 * Level 99 Mindset — Typography (comprehensive — every block, every class).
 *
 *   Heading: Nelphim (modern display, self-hosted .otf, 211 glyphs incl. digits + punctuation)
 *   Body:    Lora    (transitional serif, self-hosted .woff2)
 *
 * Specificity strategy:
 *   - Per-block selectors prefixed with `.wp-block-l99-*` (0,2,0) to beat the
 *     block's own single-class declarations regardless of CSS load order.
 *   - Gravity Forms scope uses !important to match the existing GF exception
 *     pattern in source — no other rules in this file use !important.
 *
 * Source mapped from a full trace of every render PHP + build CSS.
 */

/* ── @font-face ───────────────────────────────────────────────────────── */
@font-face {
    font-family: "Nelphim";
    src: url("fonts/Nelphim.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: block;
}
@font-face {
    font-family: "Nelphim";
    src: url("fonts/Nelphim-Italic.otf") format("opentype");
    font-weight: 400;
    font-style: italic;
    font-display: block;
}

@font-face { font-family: "Lora"; src: url("fonts/Lora-400-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "Lora"; src: url("fonts/Lora-400-italic.woff2")  format("woff2"); font-weight: 400; font-style: italic; font-display: block; }
@font-face { font-family: "Lora"; src: url("fonts/Lora-600-regular.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: block; }
@font-face { font-family: "Lora"; src: url("fonts/Lora-600-italic.woff2")  format("woff2"); font-weight: 600; font-style: italic; font-display: block; }
@font-face { font-family: "Lora"; src: url("fonts/Lora-700-regular.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: block; }

/* ── Font shorthand vars (DRY) ────────────────────────────────────────── */
:root {
    --l99-font-display: "Nelphim", Georgia, "Times New Roman", serif;
    --l99-font-body:    "Lora", Georgia, "Times New Roman", serif;
}

/* ── Generic headings ─────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
    font-family: var(--l99-font-display);
    font-weight: 400;
    letter-spacing: 0.005em;
}

/* ─────────────────────────────────────────────────────────────────────── *
 *  NELPHIM — every heading / title / number / label / button / brand
 * ─────────────────────────────────────────────────────────────────────── */

/* benefits-list */
.wp-block-l99-benefits-list .l99-benefits__heading,
.wp-block-l99-benefits-list .l99-benefits__title,
.wp-block-l99-benefits-list .l99-benefits__button,
/* blog-posts */
.wp-block-l99-blog-posts .l99-blog-section__heading,
.wp-block-l99-blog-posts .l99-blog__featured-title,
.wp-block-l99-blog-posts .l99-blog__card-title,
.wp-block-l99-blog-posts .l99-blog__cat-badge,
.wp-block-l99-blog-posts .l99-blog__featured-readmore,
.wp-block-l99-blog-posts .l99-blog__card-readmore,
.wp-block-l99-blog-posts .l99-blog__pagination a,
.wp-block-l99-blog-posts .l99-blog__pagination span,
/* contact-info */
.wp-block-l99-contact-info .l99-contact__heading,
.wp-block-l99-contact-info .l99-contact__button,
/* content */
.wp-block-l99-content .l99-content__heading,
.wp-block-l99-content .l99-content__body h3,
.wp-block-l99-content .l99-content__body h4,
.wp-block-l99-content .l99-content__button,
/* cta-section */
.wp-block-l99-cta-section .l99-cta__heading,
.wp-block-l99-cta-section .l99-cta__button,
.wp-block-l99-cta-section .l99-cta-btn--filled,
.wp-block-l99-cta-section .l99-cta-btn--outline,
.wp-block-l99-cta-section .l99-cta-btn--pill,
.wp-block-l99-cta-section .l99-cta-btn--white,
/* footer */
.wp-block-l99-footer .l99-footer__brand-name,
.wp-block-l99-footer .l99-footer__nav-heading,
/* header */
.wp-block-l99-header .l99-header__brand-name,
.wp-block-l99-header .l99-header__cta,
.wp-block-l99-header .l99-header__mobile-brand,
.wp-block-l99-header .l99-header__mobile-cta,
/* hero */
.wp-block-l99-hero .l99-hero__heading,
.wp-block-l99-hero .l99-hero__badge,
.wp-block-l99-hero .l99-hero__button,
.wp-block-l99-hero .l99-btn--filled,
.wp-block-l99-hero .l99-btn--outline,
.wp-block-l99-hero .l99-btn--pill,
.wp-block-l99-hero .l99-btn--white,
/* intake-form (non-Gravity-Forms parts) */
.wp-block-l99-intake-form .l99-intake__heading,
.wp-block-l99-intake-form .l99-intake__badge,
.wp-block-l99-intake-form .l99-intake__cat-pill,
/* level-up */
.wp-block-l99-level-up .l99-levelup__heading,
.wp-block-l99-level-up .l99-levelup__bar-label,
.wp-block-l99-level-up .l99-levelup__card-lvl,
.wp-block-l99-level-up .l99-levelup__card-title,
.wp-block-l99-level-up .l99-levelup__button,
/* page-banner */
.wp-block-l99-page-banner .l99-page-banner__title,
.wp-block-l99-page-banner .l99-page-banner__breadcrumb,
.wp-block-l99-page-banner .l99-page-banner__breadcrumb-current,
.wp-block-l99-page-banner .l99-page-banner__button,
/* section-heading */
.wp-block-l99-section-heading .l99-section-heading__title,
.wp-block-l99-section-heading .l99-section-heading__button,
/* service-card */
.wp-block-l99-service-card .l99-service-card__title,
.wp-block-l99-service-card .l99-service-card__link,
.wp-block-l99-service-card .l99-service-card__button,
.wp-block-l99-service-card .l99-services-section__heading,
.wp-block-l99-service-card .l99-services-section__button,
/* stats */
.wp-block-l99-stats .l99-stats__number,
.wp-block-l99-stats .l99-stats__label,
.wp-block-l99-stats .l99-stats__button,
/* team-member */
.wp-block-l99-team-member .l99-team-card__name,
.wp-block-l99-team-member .l99-team-section__heading,
.wp-block-l99-team-member .l99-team-section__button,
/* testimonial */
.wp-block-l99-testimonial .l99-testimonial__quote,
.wp-block-l99-testimonial .l99-testimonial__quote-mark,
.wp-block-l99-testimonial .l99-testimonial-section__heading,
.wp-block-l99-testimonial .l99-testimonial-section__button,
/* process */
.wp-block-l99-process .l99-process__heading,
.wp-block-l99-process .l99-process__step-title,
.wp-block-l99-process .l99-process__step-number,
.wp-block-l99-process .l99-process__conclusion p {
    font-family: var(--l99-font-display);
}

/* ─────────────────────────────────────────────────────────────────────── *
 *  LORA — every body / subtitle / desc / nav-link / meta / caption
 * ─────────────────────────────────────────────────────────────────────── */

/* benefits-list */
.wp-block-l99-benefits-list .l99-benefits__subtitle,
.wp-block-l99-benefits-list .l99-benefits__desc,
/* blog-posts */
.wp-block-l99-blog-posts .l99-blog-section__subtitle,
.wp-block-l99-blog-posts .l99-blog__card-meta,
.wp-block-l99-blog-posts .l99-blog__featured-meta,
.wp-block-l99-blog-posts .l99-blog__card-date,
.wp-block-l99-blog-posts .l99-blog__featured-date,
.wp-block-l99-blog-posts .l99-blog__no-posts,
/* content */
.wp-block-l99-content .l99-content__body,
.wp-block-l99-content .l99-content__text,
/* footer */
.wp-block-l99-footer .l99-footer__desc,
.wp-block-l99-footer .l99-footer__tagline,
.wp-block-l99-footer .l99-footer__copyright,
.wp-block-l99-footer .l99-footer__legal-link,
.wp-block-l99-footer .l99-footer__nav-link,
.wp-block-l99-footer .l99-footer__contact-item,
/* header */
.wp-block-l99-header .l99-header__nav-link,
.wp-block-l99-header .l99-header__dropdown-link,
.wp-block-l99-header .l99-header__mobile-link,
.wp-block-l99-header .l99-header__mobile-dropdown,
.wp-block-l99-header .l99-header__mobile-sub-link,
/* hero */
.wp-block-l99-hero .l99-hero__subheading,
/* intake-form */
.wp-block-l99-intake-form .l99-intake__subtitle,
.wp-block-l99-intake-form .l99-intake__intro,
/* level-up */
.wp-block-l99-level-up .l99-levelup__card-desc,
.wp-block-l99-level-up .l99-levelup__richtext,
/* page-banner */
.wp-block-l99-page-banner .l99-page-banner__subtitle,
/* section-heading */
.wp-block-l99-section-heading .l99-section-heading__subtitle,
/* service-card */
.wp-block-l99-service-card .l99-service-card__desc,
.wp-block-l99-service-card .l99-services-section__subtitle,
/* team-member */
.wp-block-l99-team-member .l99-team-card__bio,
.wp-block-l99-team-member .l99-team-card__title,
.wp-block-l99-team-member .l99-team-section__subtitle,
/* testimonial */
.wp-block-l99-testimonial .l99-testimonial__name,
.wp-block-l99-testimonial .l99-testimonial__title,
.wp-block-l99-testimonial .l99-testimonial-section__subtitle,
/* process */
.wp-block-l99-process .l99-process__badge,
.wp-block-l99-process .l99-process__subtitle,
.wp-block-l99-process .l99-process__step-desc,
.wp-block-l99-process .l99-process__step-bullets,
.wp-block-l99-process .l99-process__step-bullets li {
    font-family: var(--l99-font-body);
}

/* ─────────────────────────────────────────────────────────────────────── *
 *  Body / global defaults
 * ─────────────────────────────────────────────────────────────────────── */
body,
p, li, span, a, button,
input, textarea, select {
    font-family: var(--l99-font-body);
}

/* ─────────────────────────────────────────────────────────────────────── *
 *  Gravity Forms scope (exception zone — see source SCSS for context).
 *  These !important uses are the minimum needed to override the existing
 *  GF-overriding !important in src/blocks/intake-form/style.scss and
 *  src/blocks/footer/style.scss. They DO NOT apply elsewhere.
 * ─────────────────────────────────────────────────────────────────────── */

/* Intake form */
.l99-intake__form-wrap .gform_wrapper .gsection_title,
.l99-intake__form-wrap .gform_wrapper .gf_progressbar_title,
.l99-intake__form-wrap .gform_wrapper .gform_footer .gform_button,
.l99-intake__form-wrap .gform_wrapper .gform_footer button[type=submit],
.l99-intake__form-wrap .gform_wrapper .gform_footer input[type=submit],
.l99-intake__form-wrap .gform_wrapper .gform_page_footer .gform_button,
.l99-intake__form-wrap .gform_wrapper .gform_page_footer button[type=submit],
.l99-intake__form-wrap .gform_wrapper .gform_page_footer input[type=submit],
.l99-intake__form-wrap .gform_wrapper .gform_page_footer input[type=button] {
    font-family: var(--l99-font-display) !important;
}

.l99-intake__form-wrap .gform_wrapper .gfield_label,
.l99-intake__form-wrap .gform_wrapper .gfield_radio .gchoice label,
.l99-intake__form-wrap .gform_wrapper .gfield_radio > li label,
.l99-intake__form-wrap .gform_wrapper .ginput_container_radio .gchoice label,
.l99-intake__form-wrap .gform_wrapper input[type=email],
.l99-intake__form-wrap .gform_wrapper input[type=number],
.l99-intake__form-wrap .gform_wrapper input[type=tel],
.l99-intake__form-wrap .gform_wrapper input[type=text],
.l99-intake__form-wrap .gform_wrapper input[type=password],
.l99-intake__form-wrap .gform_wrapper input[type=url],
.l99-intake__form-wrap .gform_wrapper select,
.l99-intake__form-wrap .gform_wrapper textarea {
    font-family: var(--l99-font-body) !important;
}

/* Contact form */
.l99-contact__form .gform_wrapper .gform_title,
.l99-contact__form .gform_wrapper .gform_button,
.l99-contact__form .gform_wrapper input[type=submit] {
    font-family: var(--l99-font-display) !important;
}
.l99-contact__form .gform_wrapper .gfield_label,
.l99-contact__form .gform_wrapper input[type=email],
.l99-contact__form .gform_wrapper input[type=number],
.l99-contact__form .gform_wrapper input[type=password],
.l99-contact__form .gform_wrapper input[type=tel],
.l99-contact__form .gform_wrapper input[type=text],
.l99-contact__form .gform_wrapper input[type=url],
.l99-contact__form .gform_wrapper select,
.l99-contact__form .gform_wrapper textarea {
    font-family: var(--l99-font-body) !important;
}

/* Footer form */
.l99-footer__form-area .gform_button,
.l99-footer__form-area input[type=submit] {
    font-family: var(--l99-font-display) !important;
}
.l99-footer__form-area input[type=email],
.l99-footer__form-area input[type=text],
.l99-footer__form-area textarea {
    font-family: var(--l99-font-body) !important;
}
