/**
 * PageSparx Legal — Legal Blog Design overrides.
 *
 * Scope rule: every selector must begin with .psai-page or target a descendant
 * of .psai-page. This file must never become a site-wide theme stylesheet.
 */

.psai-page {
    --psai-article-width: var(--psl-blog-article-width, 1100px);
    --psai-wide-width: var(--psl-blog-wide-width, 1200px);
    --psai-text: var(--psl-blog-text, #262626);
    --psai-muted: var(--psl-blog-muted, #6b6b6b);
    --psai-border: var(--psl-blog-border, #dedede);
    --psai-surface: var(--psl-blog-surface, #f6f6f4);
    --psai-accent: var(--psl-blog-accent, #d0c09f);
    --psai-gold-on-light: var(--psl-blog-gold-on-light, #9e6300);
    --psai-section-gap: clamp(
        var(--psl-blog-section-gap-min, 56px),
        5vw,
        var(--psl-blog-section-gap-max, 96px)
    );
    --psai-hero-bg: linear-gradient(
        180deg,
        var(--psl-blog-hero-bg-top, #000000) 0%,
        var(--psl-blog-hero-bg-bottom, #021833) 100%
    );
}

/* -------------------------------------------------------------------------
   Legal Blog Typography
   Every text element inherits the body role first; specialized roles below
   can then be assigned independently. All selectors remain inside .psai-page.
   ------------------------------------------------------------------------- */
.psai-page .psai-hero,
.psai-page .psai-article {
    font-family: var(--psl-blog-font-body, sans-serif);
}

.psai-page .psai-hero__title {
    font-family: var(--psl-blog-font-hero-title, sans-serif);
}

.psai-page .psai-hero__deck {
    font-family: var(--psl-blog-font-hero-deck, sans-serif);
}

.psai-page .psai-hero__meta,
.psai-page .psai-hero__figure figcaption {
    font-family: var(--psl-blog-font-hero-meta, sans-serif);
}

.psai-page .psai-hero__intro {
    font-family: var(--psl-blog-font-intro, sans-serif);
    color: var(--psl-blog-intro-text);
}

.psai-page .psai-hero__intro-lead {
    font-family: var(--psl-blog-font-intro-lead, var(--psl-blog-font-intro, sans-serif));
}

.psai-page .psai-module h2,
.psai-page .psai-system > h2,
.psai-page .psai-module__heading {
    font-family: var(--psl-blog-font-heading-h2, sans-serif);
}

.psai-page .psai-module h3,
.psai-page .psai-module h4,
.psai-page .psai-module h5,
.psai-page .psai-module h6 {
    font-family: var(--psl-blog-font-heading-h3-h6, sans-serif);
}

.psai-page .psai-toc,
.psai-page .psai-toc__title,
.psai-page .psai-toc__reading-time,
.psai-page .psai-toc__item {
    font-family: var(--psl-blog-font-toc, sans-serif);
}

.psai-page .psai-takeaways__takeaway,
.psai-page .psai-callout__label,
.psai-page .psai-steps__action,
.psai-page .psai-button {
    font-family: var(--psl-blog-font-module-emphasis, sans-serif);
}

.psai-page .psai-chart,
.psai-page .psai-comparison-table {
    font-family: var(--psl-blog-font-table-chart, sans-serif);
}

.psai-page .psai-gallery figcaption {
    font-family: var(--psl-blog-font-gallery-caption, sans-serif);
}

.psai-page .psai-module--subject-cta .psai-module__heading,
.psai-page .psai-fallback-cta h2,
.psai-page .psai-cta__phone-label,
.psai-page .psai-cta__phone-number {
    font-family: var(--psl-blog-font-cta-heading, sans-serif);
}

.psai-page .psai-module--subject-cta,
.psai-page .psai-fallback-cta,
.psai-page .psai-cta__intro,
.psai-page .psai-cta__eyebrow,
.psai-page .psai-cta__form,
.psai-page .psai-cta__form label,
.psai-page .psai-cta__form input,
.psai-page .psai-cta__form select,
.psai-page .psai-cta__form textarea,
.psai-page .psai-cta__form button,
.psai-page .psai-cta__form .ff-btn,
.psai-page .psai-cta__form .ff-btn-submit,
.psai-page .psai-cta__form .ff-el-form-check-input + span {
    font-family: var(--psl-blog-font-cta-body, sans-serif);
}

.psai-page .psai-faq__item summary {
    font-family: var(--psl-blog-font-faq-question, sans-serif);
}

.psai-page .psai-sources,
.psai-page .psai-sources__list,
.psai-page .psai-sources__more summary {
    font-family: var(--psl-blog-font-sources, sans-serif);
}

.psai-page .psai-author-profile,
.psai-page .psai-author-profile__content,
.psai-page .psai-author-profile__content h2,
.psai-page .psai-author-profile__content h2 a {
    font-family: var(--psl-blog-font-attorney-profile, sans-serif);
}

.psai-page .psai-related-services,
.psai-page .psai-related-service,
.psai-page .psai-related-service h3,
.psai-page .psai-related-service__description {
    font-family: var(--psl-blog-font-related-services, sans-serif);
}

.psai-page .psai-related-articles,
.psai-page .psai-related-article,
.psai-page .psai-related-article__date,
.psai-page .psai-related-article__title {
    font-family: var(--psl-blog-font-related-articles, sans-serif);
}

.psai-page .psai-module--text-section .psai-module__content a,
.psai-page .psai-module__intro a,
.psai-page .psai-callout__content a,
.psai-page .psai-takeaways__takeaway a,
.psai-page .psai-takeaways__explanation a,
.psai-page .psai-steps__action a,
.psai-page .psai-steps__explanation a,
.psai-page .psai-comparison-table a,
.psai-page .psai-chart__takeaway a,
.psai-page .psai-faq__answer a {
    color: var(--psl-blog-article-link);
}

.psai-page .psai-hero__intro a {
    color: var(--psl-blog-intro-link);
}

.psai-page .psai-hero {
    padding-top: var(--psl-blog-hero-padding-top, 60px);
    padding-bottom: var(--psl-blog-hero-padding-bottom, 90px);
}

.psai-page .psai-hero__title {
    font-size: clamp(
        var(--psl-blog-hero-title-min, 30px),
        2.5vw,
        var(--psl-blog-hero-title-max, 60px)
    );
}

.psai-page .psai-hero__deck {
    font-size: clamp(
        var(--psl-blog-hero-deck-min, 16.8px),
        2vw,
        var(--psl-blog-hero-deck-max, 21.6px)
    );
}

.psai-page .psai-hero__intro {
    border-radius: var(--psl-blog-hero-intro-radius, 3px);
}

.psai-page .psai-hero__image {
    border-radius: var(--psl-blog-hero-image-radius, 3px);
}

.psai-page .psai-article {
    font-size: var(--psl-blog-body-font-size, 18px);
}

.psai-page .psai-module p,
.psai-page .psai-system p,
.psai-page .psai-system li,
.psai-page .psai-module li {
    line-height: var(--psl-blog-body-line-height, 1.4);
}

.psai-page .psai-module h2,
.psai-page .psai-system > h2 {
    font-size: clamp(
        var(--psl-blog-h2-min, 24px),
        1.7vw,
        var(--psl-blog-h2-max, 34px)
    );
}

.psai-page .psai-takeaways__item {
    border-radius: var(--psl-blog-takeaway-radius, 0);
}

.psai-page .psai-module--callout {
    border-radius: var(--psl-blog-callout-radius, 0);
}

.psai-page .psai-steps__item {
    border-radius: var(--psl-blog-step-radius, 0);
}

.psai-page .psai-module--steps-numbered .psai-steps__item::before {
    background: var(--psl-blog-step-number-color, var(--psl-blog-accent, #d0c09f));
}

.psai-page .psai-gallery {
    gap: var(--psl-blog-gallery-gap, 16px);
}

.psai-page .psai-gallery__link,
.psai-page .psai-gallery__image {
    border-radius: var(--psl-blog-gallery-image-radius, 0);
}

.psai-page .psai-module--subject-cta,
.psai-page .psai-fallback-cta {
    background: var(--psl-blog-cta-outer-bg, #ffffff);
    color: var(--psl-blog-cta-outer-text, #555555);
    border-color: var(--psl-blog-cta-outer-border, #555555);
    border-radius: var(--psl-blog-cta-radius, 6px);
}

.psai-page .psai-cta__layout {
    border-radius: var(--psl-blog-cta-radius, 6px);
    box-shadow: 0 0 var(--psl-blog-cta-shadow-blur, 15px) var(--psl-blog-cta-shadow-color, #aaaaaa);
}

.psai-page .psai-cta__phone {
    background: var(--psl-blog-cta-phone-bg, #000000);
    border-radius: var(--psl-blog-cta-radius, 6px) 0 0 var(--psl-blog-cta-radius, 6px);
}

.psai-page .psai-cta__phone-label {
    color: var(--psl-blog-cta-phone-label, #e5e0d5);
}

.psai-page .psai-cta__form {
    background: var(--psl-blog-cta-form-bg, #f7f3eb);
    border-color: var(--psl-blog-cta-form-border, #666666);
    border-radius: 0 var(--psl-blog-cta-radius, 6px) var(--psl-blog-cta-radius, 6px) 0;
}

.psai-page .psai-cta--no-phone .psai-cta__form,
.psai-page .psai-cta--form-engaged .psai-cta__form {
    border-radius: var(--psl-blog-cta-radius, 6px);
}

.psai-page .psai-cta:not(.psai-cta--has-form) .psai-cta__phone {
    border-radius: var(--psl-blog-cta-radius, 6px);
}

.psai-page .psai-cta__form .ff-el-form-check-label {
    border-radius: var(--psl-blog-cta-choice-radius, 6px);
}

.psai-page .psai-cta__form .ff-el-form-check-input[type="radio"] + span,
.psai-page .psai-cta__form .ff-el-form-check-input[type="checkbox"] + span {
    background: var(--psl-blog-cta-choice-bg, #000000);
    color: var(--psl-blog-cta-choice-text, #ffffff);
    border-radius: var(--psl-blog-cta-choice-radius, 6px);
}

.psai-page .psai-sources__list a {
    color: var(--psl-blog-source-link, #6b6b6b);
}

.psai-page .psai-author-profile {
    background: var(--psl-blog-author-bg, #ffffff);
    border-radius: var(--psl-blog-author-radius, 6px);
}

.psai-page .psai-author-profile__photo {
    width: var(--psl-blog-author-photo-width, 170px);
}

.psai-page .psai-related-service {
    background: var(--psl-blog-service-bg, #ffffff);
    border-color: var(--psl-blog-service-border, #cccccc);
    border-radius: var(--psl-blog-service-radius, 6px);
}

.psai-page .psai-related-service:hover,
.psai-page .psai-related-service:focus-within {
    background: var(--psl-blog-service-hover-bg, #d0c09f);
}

.psai-page .psai-related-articles__grid {
    gap: var(--psl-blog-related-gap, 32px);
}

.psai-page .psai-related-article {
    background: var(--psl-blog-related-bg, #021833);
    border-color: var(--psl-blog-related-border, #000000);
    border-radius: var(--psl-blog-related-radius, 6px);
}

.psai-page .psai-related-article__image img {
    border-radius: max(0px, calc(var(--psl-blog-related-radius, 6px) - 2px)) max(0px, calc(var(--psl-blog-related-radius, 6px) - 2px)) 0 0;
}

.psai-page .psai-related-article__content {
    background: var(--psl-blog-related-bg, #021833);
    border-radius: 0 0 var(--psl-blog-related-radius, 6px) var(--psl-blog-related-radius, 6px);
}

@media (max-width: 780px) {
    .psai-page .psai-cta__phone,
    .psai-page .psai-cta__form,
    .psai-page .psai-cta--no-phone .psai-cta__form,
    .psai-page .psai-cta:not(.psai-cta--has-form) .psai-cta__phone,
    .psai-page .psai-cta--form-engaged .psai-cta__form {
        border-radius: var(--psl-blog-cta-radius, 6px);
    }
}
