/* ===== Site-wide type system: Cormorant Garamond for display, Nexa for everything else ===== */

:root {
    --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    /* Cormorant has a small x-height; this renders it at the optical size the layouts were drawn for. */
    --display-adjust: .46;
}

.hero-heading,
.ailuna-card-title,
.path-panel-name,
.cat-specialty-heading,
.ai-simulator-title,
.faq-cta-heading,
.faqp-cta-heading,
.wl-that-is-why-statement,
.cap-title,
.cap-cta-headline,
.start-cta-signature-name {
    font-family: var(--font-display);
    font-size-adjust: var(--display-adjust);
    letter-spacing: 0;
}

.hero-heading {
    line-height: 1.08;
}

.hero-heading-bold,
.hero-heading-accent-bold {
    font-weight: 600;
}

.hero-heading-accent {
    font-weight: 500;
    font-style: italic;
}

/* Contact header: the legacy h2 rules, mirrored for the page's real h1. */
.page-header .page-content h1 {
    font-size: 42px;
    font-weight: 400;
    letter-spacing: 0;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    line-height: 1;
}

.page-header .page-content h1 span {
    font-size: 16px;
    line-height: 1;
    font-weight: 400;
    letter-spacing: 0;
    position: relative;
    padding-left: 35px;
    margin-left: 10px;
    margin-top: 5px;
}

.page-header .page-content h1 span:before {
    background-color: var(--dl-grey-color);
    content: "";
    width: 30px;
    height: 1px;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* ===== Single-family type system: Nexa only — Heavy (900) for headings, Bold (700) for everything else =====
   Overrides the earlier Cormorant / Jost / Inter rules. The :not(#_x) chain raises specificity so it also
   beats the ID-scoped !important rules in lunaray-beranda.css. */
:root {
    --kw-font-heading: "Nexa", system-ui, sans-serif;
    --kw-font-body: "Nexa", system-ui, sans-serif;
    --kw-font-ui: "Nexa", system-ui, sans-serif;
    --font-display: "Nexa", system-ui, sans-serif;
    --display-adjust: none;
}
html body *:not(#_a):not(#_b):not(#_c) {
    font-family: "Nexa", system-ui, sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    font-size-adjust: none !important;
}
html body :is(h1, h2, h3, h4, h5, h6, [class*="headline"], .post-title, .kw-logo-name, .kw-footer-logo-name, .kw-hero-opening):not(#_a):not(#_b):not(#_c) {
    font-weight: 900 !important;
}

/* Nexa is wider than Cormorant, so the display sizes drawn for Cormorant are scaled down to fit. */
html body .kw-headline:not(#_a):not(#_b):not(#_c) { font-size: clamp(28px, 2.6vw, 46px) !important; line-height: 1.12 !important; letter-spacing: -.02em !important; }
html body #signature-principle .kw-headline:not(#_a):not(#_b) { font-size: clamp(34px, 3.6vw, 64px) !important; line-height: 1.05 !important; }
html body :is(#raymaizing, #where-thinking) .kw-headline:not(#_a):not(#_b) { font-size: clamp(30px, 3vw, 54px) !important; line-height: 1.08 !important; }
html body #beranda--brand-branding .kw-brand-headline:not(#_a):not(#_b) { font-size: clamp(28px, 2.5vw, 44px) !important; line-height: 1.1 !important; }
html body #brand-ai-architect .kw-arch-headline:not(#_a):not(#_b) { font-size: clamp(28px, 2.6vw, 48px) !important; line-height: 1.12 !important; }
html body #hero .kw-hero-headline:not(#_a):not(#_b) { font-size: clamp(34px, 3.5vw, 64px) !important; line-height: 1.04 !important; letter-spacing: -.02em !important; }
html body #hero .kw-hero-slide--profile .kw-hero-headline:not(#_a) { font-size: clamp(36px, 3.6vw, 66px) !important; }
html body .post-title:not(#_a):not(#_b) { line-height: 1.2 !important; }
@media (max-width: 767px) {
    html body .kw-headline:not(#_a):not(#_b):not(#_c),
    html body #signature-principle .kw-headline:not(#_a):not(#_b),
    html body :is(#raymaizing, #where-thinking) .kw-headline:not(#_a):not(#_b),
    html body #hero .kw-hero-headline:not(#_a):not(#_b),
    html body #hero .kw-hero-slide--profile .kw-hero-headline:not(#_a) { font-size: clamp(26px, 7.5vw, 34px) !important; }
}
