/* ===========================
   Pages — Home, About, Contact, Generic
   =========================== */

/* ——————————————————————————————
   HOME LEAD — featured post, white bg
   —————————————————————————————— */
.home-lead {
    padding: 4.5rem 0;
    background: var(--color-white);
}

.home-lead__inner {
    display: grid;
    grid-template-columns: 1fr 440px;
    gap: 4rem;
    align-items: center;
}

.home-lead__inner--no-img {
    grid-template-columns: 1fr;
    max-width: 740px;
}

/* Meta row: badge · category · read time */
.home-lead__meta {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.home-lead__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--color-white);
    background: var(--gradient-accent);
    border-radius: 100px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.home-lead__cat {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-accent);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: color 0.15s;
}
.home-lead__cat:hover { color: var(--color-accent-2); }

.home-lead__sep {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
}

.home-lead__read {
    font-size: 0.8125rem;
    color: var(--color-muted);
}

/* Title */
.home-lead__title {
    font-family: var(--font-heading);
    font-size: clamp(1.875rem, 3.5vw, 2.75rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: var(--color-dark);
    margin-bottom: 1.25rem;
}

.home-lead__title a {
    color: inherit;
    text-decoration: none;
    transition: opacity 0.15s;
}
.home-lead__title a:hover { opacity: 0.65; }

/* Excerpt */
.home-lead__excerpt {
    font-size: 1.0625rem;
    line-height: 1.75;
    color: var(--color-text);
    margin-bottom: 2rem;
}

/* Footer row: author + date + CTA */
.home-lead__footer {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.home-lead__byline {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.home-lead__author {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text);
}

.home-lead__date {
    font-size: 0.8125rem;
    color: var(--color-muted);
}

/* Image */
.home-lead__img-wrap {
    display: block;
    border-radius: var(--radius-xl);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    flex-shrink: 0;
}

.home-lead__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}
.home-lead__img-wrap:hover .home-lead__img { transform: scale(1.04); }

/* ——————————————————————————————
   HOME TOPICS — tint bg
   —————————————————————————————— */
.home-topics {
    padding: 5rem 0;
    background: var(--color-bg);
}

/* Horizontally scrolling pill row — scales to any number of categories */
.topic-scroll {
    display: flex;
    gap: 0.625rem;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.topic-scroll::-webkit-scrollbar { display: none; }

.topic-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.625rem 1.25rem;
    font-family: var(--font-heading);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-dark);
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: 100px;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.18s, border-color 0.18s, color 0.18s;
}

.topic-pill:hover {
    background: var(--gradient-accent);
    border-color: transparent;
    color: var(--color-white);
}

.topic-pill__count {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-muted);
    background: var(--color-bg);
    padding: 0.125rem 0.5rem;
    border-radius: 100px;
    transition: background 0.18s, color 0.18s;
    line-height: 1.6;
}

.topic-pill:hover .topic-pill__count {
    background: var(--color-text);
    color: var(--color-white);
}

/* Section link — inline arrow that slides on hover */
.section-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.section-link:hover { text-decoration: none; }
.section-link svg {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.section-link:hover svg { transform: translateX(4px); }

/* ——————————————————————————————
   HOME POSTS — white bg
   —————————————————————————————— */
.home-posts {
    padding: 5rem 0;
    background: var(--color-white);
}

/* Lead card — first post, horizontal full-width */
.posts-lead {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 3rem;
    align-items: center;
    padding: 2.5rem;
    background: var(--color-bg);
    border-radius: var(--radius-xl);
    text-decoration: none;
    margin-bottom: 2.5rem;
    transition: box-shadow 0.2s, transform 0.2s;
}

.posts-lead:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.posts-lead--no-img {
    grid-template-columns: 1fr;
    max-width: 760px;
}

.posts-lead__cat {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-muted);
    margin-bottom: 0.75rem;
}

.posts-lead__title {
    font-family: var(--font-heading);
    font-size: clamp(1.375rem, 2.5vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1.15;
    letter-spacing: -0.025em;
    margin-bottom: 1rem;
    transition: opacity 0.15s;
}

.posts-lead:hover .posts-lead__title { opacity: 0.7; }

.posts-lead__excerpt {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--color-text);
    margin-bottom: 1.5rem;
}

.posts-lead__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--color-muted);
    flex-wrap: wrap;
}

.posts-lead__author { font-weight: 600; color: var(--color-text); }

.posts-lead__dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
}

.posts-lead__img-wrap {
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.posts-lead__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.posts-lead:hover .posts-lead__img { transform: scale(1.04); }

.home-posts__cta {
    text-align: center;
    margin-top: 3rem;
}

/* ——————————————————————————————
   HOME FEATURED — Editor's Pick, tint bg
   —————————————————————————————— */
.home-featured {
    padding: 5rem 0;
    background: var(--color-bg);
}

.featured-grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 1.5rem;
    margin-top: 0.5rem;
}

.featured-side {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.featured-card {
    display: block;
    text-decoration: none;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: box-shadow 0.18s, transform 0.18s;
}

.featured-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.featured-card__img {
    width: 100%;
    height: 240px;
    background-size: cover;
    background-position: center;
}

.featured-card--large .featured-card__body {
    padding: 1.75rem;
}

.featured-card--small {
    display: block;
    flex: 1;
}

.featured-card--small .featured-card__body {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    height: 100%;
    box-sizing: border-box;
}

.featured-card__cat {
    display: inline-block;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-muted);
    margin-bottom: 0.5rem;
}

.featured-card__title {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
    margin-bottom: 0.5rem;
}

.featured-card--small .featured-card__title {
    font-size: 1.0625rem;
}

.featured-card--large .featured-card__title {
    font-size: 1.375rem;
    margin-bottom: 0.75rem;
}

.featured-card__excerpt {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--color-text);
    flex: 1;
}

.featured-card--large .featured-card__excerpt {
    font-size: 0.9375rem;
    line-height: 1.65;
    margin-bottom: 1.25rem;
}

.featured-card__read {
    font-size: 0.8125rem;
    color: var(--color-muted);
    margin-top: auto;
}

/* ——————————————————————————————
   HOME POPULAR — Popular This Week, white bg
   —————————————————————————————— */
.home-popular {
    padding: 5rem 0;
    background: var(--color-white);
}

.popular-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.popular-item {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--color-border);
}
.popular-list > li:first-child { border-top: 1px solid var(--color-border); }

.popular-item__num {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-border);
    line-height: 1;
    flex-shrink: 0;
    width: 3rem;
    padding-top: 0.125rem;
}

.popular-item__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.popular-item__cat {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-muted);
}

.popular-item__title {
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.popular-item__title a {
    color: var(--color-dark);
    text-decoration: none;
    transition: color 0.15s;
}
.popular-item__title a:hover { color: var(--color-muted); }

.popular-item__excerpt {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--color-text);
    margin: 0;
}

.popular-item__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-muted);
}

.popular-item__author {
    font-weight: 600;
    color: var(--color-text);
}

.popular-item__dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
}

.popular-item__read {
    font-size: 0.8125rem;
    color: var(--color-muted);
}

/* ——————————————————————————————
   HOME TRUST BAR — dark bg
   —————————————————————————————— */
.home-trust {
    padding: 5rem 0;
    background: var(--color-bg);
}

.home-trust__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    flex-wrap: wrap;
}

.home-trust__text {
    max-width: 480px;
}

.home-trust__title {
    font-family: var(--font-heading);
    font-size: clamp(1.375rem, 2.5vw, 1.875rem);
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin-bottom: 0.75rem;
}

.home-trust__desc {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-text);
    margin: 0;
}

.home-trust__stats {
    display: flex;
    align-items: center;
    gap: 2rem;
    flex-shrink: 0;
}

.trust-stat {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    text-align: center;
}

.trust-stat__num {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-dark);
    line-height: 1;
}

.trust-stat__label {
    font-size: 0.8125rem;
    color: var(--color-muted);
}

.trust-stat__sep {
    width: 1px;
    height: 48px;
    background: var(--color-border);
    flex-shrink: 0;
}

/* ——————————————————————————————
   NEWSLETTER — used by About page
   —————————————————————————————— */
.home-newsletter {
    padding: 5rem 0;
    background: var(--color-white);
}

.newsletter-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem 3.5rem;
    background: var(--color-dark);
    border-radius: var(--radius-xl);
}

.newsletter-box__title {
    font-family: var(--font-heading);
    font-size: clamp(1.375rem, 2.5vw, 1.875rem);
    font-weight: 700;
    color: var(--color-white);
    line-height: 1.2;
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.newsletter-box__desc {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-light);
}

.newsletter-form {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.newsletter-input {
    flex: 1;
    min-width: 200px;
    padding: 0.75rem 1.125rem;
    font-size: 0.9375rem;
    color: var(--color-text);
    background: var(--color-white);
    border: 2px solid transparent;
    border-radius: var(--radius);
    outline: none;
    transition: border-color 0.18s;
    font-family: var(--font-body);
}

.newsletter-input:focus { border-color: var(--color-border); }
.newsletter-input::placeholder { color: var(--color-muted); }

.newsletter-form__note {
    font-size: 0.8125rem;
    color: var(--color-border);
}

/* ——————————————————————————————
   GENERIC PAGE — light bg
   —————————————————————————————— */
.page-hero {
    background: var(--color-bg);
    padding: 2.5rem 0 3rem;
}

.page-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.8125rem;
    margin-bottom: 1.25rem;
}

.page-breadcrumb a {
    color: var(--color-muted);
    text-decoration: none;
    transition: color 0.15s;
}

.page-breadcrumb a:hover {
    color: var(--color-dark);
}

.page-breadcrumb__sep {
    color: var(--color-border);
    font-size: 0.75rem;
    line-height: 1;
}

.page-breadcrumb__current {
    color: var(--color-text);
    font-weight: 500;
}

.page-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(1.875rem, 4vw, 2.75rem);
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.page-hero__subtitle {
    font-size: 1.0625rem;
    color: var(--color-text);
    margin-top: 0.75rem;
    max-width: 520px;
}

.page-body {
    max-width: 780px;
    padding: 3.5rem 0 5rem;
}

/* ——————————————————————————————
   ABOUT PAGE
   —————————————————————————————— */
.about-values {
    padding: 5rem 0;
    background: var(--color-bg);
}

/* ——————————————————————————————
   CONTACT PAGE
   —————————————————————————————— */
.contact-main {
    padding: 4rem 0 5rem;
    background: var(--color-white);
}

.contact-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 4rem;
    align-items: start;
}

/* Form column */
.contact-form-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1rem;
    padding: 4rem 2rem;
    background: var(--color-bg);
    border: 1.5px dashed var(--color-border);
    border-radius: var(--radius-lg);
    color: var(--color-muted);
}

.contact-form-placeholder__title {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.contact-form-placeholder__desc {
    font-size: 0.875rem;
    line-height: 1.7;
    color: var(--color-muted);
    max-width: 32ch;
    margin: 0;
}

/* Info column */
.contact-info__title {
    font-family: var(--font-heading);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: -0.02em;
    margin-bottom: 2rem;
}

.contact-info-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.75rem;
}

.contact-info-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    color: var(--color-dark);
}

.contact-info-item__label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-muted);
    margin-bottom: 0.25rem;
}

.contact-info-item__value {
    font-size: 0.9375rem;
    color: var(--color-text);
    text-decoration: none;
    line-height: 1.6;
}

a.contact-info-item__value:hover { color: var(--color-dark); text-decoration: underline; }

.contact-social {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-border);
}

.contact-social__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.contact-social__link {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.875rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.contact-social__link:hover {
    background: var(--color-dark);
    border-color: var(--color-dark);
    color: var(--color-white);
}

/* FAQ section */
.contact-faq {
    padding: 4rem 0 5rem;
    background: var(--color-bg);
}

.faq-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

.faq-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: 1.75rem;
}

.faq-card__question {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 0.75rem;
    line-height: 1.4;
}

.faq-card__answer {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-text);
    margin: 0;
}

/* ——————————————————————————————
   ABOUT — Story
   —————————————————————————————— */
.about-story {
    padding: 3.5rem 0 5rem;
    background: var(--color-white);
}

.about-story__heading {
    font-family: var(--font-heading);
    font-size: clamp(1.375rem, 2.5vw, 1.875rem);
    font-weight: 700;
    color: var(--color-dark);
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    max-width: 720px;
}

.about-story__body {
    max-width: 720px;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.about-story__body p {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--color-text);
    margin: 0;
}

/* ——————————————————————————————
   ABOUT — What We Cover
   —————————————————————————————— */
.about-covers {
    padding: 5rem 0;
    background: var(--color-bg);
}

.covers-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.cover-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: box-shadow 0.2s, transform 0.2s;
}

.cover-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.cover-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: var(--color-bg);
    border-radius: var(--radius-lg);
    color: var(--color-dark);
    flex-shrink: 0;
}

.cover-card__title {
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}

.cover-card__desc {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-text);
    margin: 0;
    flex: 1;
}

/* ——————————————————————————————
   ABOUT — Meet the Author
   —————————————————————————————— */
.about-author {
    padding: 5rem 0;
    background: var(--color-white);
}

.author-profile {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 3rem;
    align-items: flex-start;
    max-width: 820px;
}

.author-profile--no-photo {
    grid-template-columns: 1fr;
    max-width: 680px;
}

.author-profile__photo img {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 3px solid var(--color-border);
}

.author-profile__label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-muted);
    margin-bottom: 0.5rem;
}

.author-profile__name {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    color: var(--color-dark);
    letter-spacing: -0.025em;
    line-height: 1.15;
    margin-bottom: 0.375rem;
}

.author-profile__role {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-muted);
    margin-bottom: 1.25rem;
}

.author-profile__bio {
    font-size: 1rem;
    line-height: 1.8;
    color: var(--color-text);
    margin-bottom: 1.5rem;
    max-width: 60ch;
}

.author-profile__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.author-profile__social-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.author-profile__social-link:hover {
    background: var(--color-dark);
    border-color: var(--color-dark);
    color: var(--color-white);
}

/* ——————————————————————————————
   ABOUT — Values (features grid)
   —————————————————————————————— */
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.feature-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.feature-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: var(--color-dark);
    border-radius: var(--radius-lg);
    color: var(--color-white);
    flex-shrink: 0;
}

.feature-card__title {
    font-family: var(--font-heading);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}

.feature-card__desc {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--color-text);
    margin: 0;
}

/* ——————————————————————————————
   ABOUT — CTA
   —————————————————————————————— */
.about-cta {
    padding: 4rem 0 5rem;
    background: var(--color-bg);
}

.about-cta__card {
    background: var(--color-dark);
    border-radius: var(--radius-xl);
    padding: 4rem 3.5rem;
}

.about-cta__inner {
    max-width: 600px;
}

.about-cta__title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 800;
    color: var(--color-white);
    letter-spacing: -0.025em;
    line-height: 1.2;
    margin-bottom: 0.875rem;
}

.about-cta__desc {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--color-light);
    margin-bottom: 2rem;
}

.about-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.875rem;
}

/* ——————————————————————————————
   RESPONSIVE — Tablet ≤1023px
   —————————————————————————————— */
@media (max-width: 1023px) {
    .home-lead                 { padding: 3.5rem 0; }
    .home-topics,
    .home-posts,
    .home-featured,
    .home-popular,
    .home-trust                { padding: 4rem 0; }

    .home-lead__inner          { grid-template-columns: 1fr; gap: 2.5rem; }
    .home-lead__img-wrap       { order: -1; aspect-ratio: 16 / 9; max-width: 100%; }
    .posts-lead                { grid-template-columns: 1fr; gap: 2rem; }
    .posts-lead__img-wrap      { order: -1; aspect-ratio: 16 / 9; }
    .featured-grid             { grid-template-columns: 1fr; }
    .featured-side             { flex-direction: row; }
    .contact-layout            { grid-template-columns: 1fr; gap: 3rem; }
    .home-trust__inner         { flex-direction: column; align-items: flex-start; }
    .newsletter-box            { grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem 2rem; }
    .covers-grid               { grid-template-columns: 1fr 1fr; }
    .features-grid             { grid-template-columns: 1fr 1fr; }
    .faq-grid                  { grid-template-columns: 1fr 1fr; }
    .author-profile            { grid-template-columns: 120px 1fr; gap: 2rem; }
}

/* ——————————————————————————————
   RESPONSIVE — Mobile ≤639px
   —————————————————————————————— */
@media (max-width: 639px) {
    .faq-grid                  { grid-template-columns: 1fr; }

    .home-lead                 { padding: 2.5rem 0; }
    .home-lead__excerpt        { font-size: 1rem; }
    .home-lead__footer         { gap: 1rem; }
    .posts-lead                { padding: 1.5rem; margin-bottom: 1.5rem; }

    .home-topics,
    .home-posts,
    .home-featured,
    .home-popular,
    .home-trust                { padding: 3rem 0; }

    /* Topic pills — fade on right to hint at horizontal scroll */
    .topic-scroll {
        -webkit-mask-image: linear-gradient(to right, black 80%, transparent 100%);
        mask-image: linear-gradient(to right, black 80%, transparent 100%);
    }

    .topic-pill {
        padding: 0.4rem 0.875rem;
        font-size: 0.8125rem;
        gap: 0.4rem;
    }

    .topic-pill__count {
        font-size: 0.6875rem;
        padding: 0.1rem 0.375rem;
    }

    /* Editor's Pick — small cards side by side, compact */
    .featured-side                         { flex-direction: row; gap: 1rem; }
    .featured-card--small .featured-card__body { padding: 0.875rem; }
    .featured-card--small .featured-card__title {
        font-size: 0.9375rem;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .featured-card--small .featured-card__excerpt { display: none; }

    /* Trust stats — 3-column grid, remove separators */
    .home-trust__stats     { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; gap: 0; }
    .trust-stat__sep       { display: none; }
    .trust-stat            { padding: 0 0.5rem; }
    .trust-stat__num       { font-size: 1.5rem; }

    .covers-grid           { grid-template-columns: 1fr; }
    .features-grid         { grid-template-columns: 1fr; }
    .author-profile        { grid-template-columns: 1fr; gap: 1.5rem; }
    .author-profile__photo img { width: 96px; height: 96px; }
    .about-cta__card       { padding: 2.5rem 1.75rem; border-radius: var(--radius-lg); }
    .about-cta__actions    { flex-direction: column; }
    .about-cta__actions .btn { width: 100%; justify-content: center; }

    .newsletter-form       { flex-direction: column; }
    .newsletter-input      { width: 100%; }
    .newsletter-form .btn  { width: 100%; }
}

/* ===========================
   WPFORMS — Theme Styling
   =========================== */

/* Field container — vertical stack */
.wpforms-form .wpforms-field-container {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 0;
}

/* Individual field wrapper */
.wpforms-form .wpforms-field {
    margin: 0 !important;
    padding: 0 !important;
}

/* Labels */
.wpforms-form .wpforms-field-label {
    display: block;
    font-family: var(--font-body) !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: var(--color-dark) !important;
    margin-bottom: 0.5rem !important;
}

.wpforms-form .wpforms-required-label {
    color: var(--color-dark) !important;
}

/* Text + email inputs */
.wpforms-form input[type="text"],
.wpforms-form input[type="email"] {
    width: 100% !important;
    max-width: 100% !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    color: var(--color-text) !important;
    background: var(--color-white) !important;
    border: 1.5px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    padding: 0.75rem 1rem !important;
    box-shadow: none !important;
    outline: none !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    -webkit-appearance: none;
    appearance: none;
}

.wpforms-form input[type="text"]:focus,
.wpforms-form input[type="email"]:focus {
    border-color: var(--color-dark) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06) !important;
}

/* Textarea */
.wpforms-form textarea {
    width: 100% !important;
    max-width: 100% !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    color: var(--color-text) !important;
    background: var(--color-white) !important;
    border: 1.5px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    padding: 0.75rem 1rem !important;
    min-height: 140px !important;
    resize: vertical;
    box-shadow: none !important;
    outline: none !important;
    line-height: 1.6 !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}

.wpforms-form textarea:focus {
    border-color: var(--color-dark) !important;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.06) !important;
}

/* Choices.js select — match border to other fields */
.wpforms-form .choices__inner {
    border: 1.5px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
}

/* Submit button */
.wpforms-form .wpforms-submit-container {
    margin-top: 0.5rem !important;
    padding: 0 !important;
    text-align: left !important;
    background: none !important;
}

.wpforms-form .wpforms-submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    padding: 0.625rem 1.375rem !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    font-weight: 600 !important;
    color: var(--color-white) !important;
    background: var(--color-dark) !important;
    border: none !important;
    border-radius: var(--radius) !important;
    cursor: pointer !important;
    transition: background 0.18s, box-shadow 0.18s !important;
    -webkit-font-smoothing: antialiased;
}

.wpforms-form .wpforms-submit:hover {
    background: var(--color-text) !important;
    box-shadow: var(--shadow-md) !important;
}

/* Error states */
.wpforms-form label.wpforms-error {
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    color: #dc2626 !important;
    margin-top: 0.375rem !important;
}

.wpforms-form input.wpforms-error,
.wpforms-form textarea.wpforms-error {
    border-color: #dc2626 !important;
}

/* Success/confirmation message */
.wpforms-confirmation-container-full,
.wpforms-confirmation-container {
    padding: 1.5rem !important;
    background: var(--color-bg) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius) !important;
    font-family: var(--font-body) !important;
    font-size: 0.9375rem !important;
    color: var(--color-text) !important;
}

/* ——————————————————————————————
   LEGAL PAGES — Privacy, Disclaimer, Terms
   —————————————————————————————— */
.legal-body {
    padding: 4rem 0 5rem;
    background: var(--color-white);
}

.legal-content {
    max-width: 720px;
    margin: 0 auto;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--color-text);
}

.legal-content h2 {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 2.5rem 0 0.875rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--color-border);
}

.legal-content h3 {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-dark);
    margin: 1.75rem 0 0.5rem;
}

.legal-content p {
    margin: 0 0 1.125rem;
}

.legal-content ul,
.legal-content ol {
    margin: 0 0 1.125rem 1.5rem;
    padding: 0;
}

.legal-content ul { list-style: disc; }
.legal-content ol { list-style: decimal; }

.legal-content li {
    margin-bottom: 0.375rem;
}

.legal-content a {
    color: var(--color-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.legal-content a:hover {
    opacity: 0.7;
}

.legal-content strong {
    font-weight: 600;
    color: var(--color-dark);
}

/* ——————————————————————————————
   404 PAGE
   —————————————————————————————— */

.error-404-page {
    padding: 6rem 0 5rem;
    background: var(--color-white);
}

.error-404__inner {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.error-404__code {
    font-family: var(--font-heading);
    font-size: clamp(6rem, 15vw, 10rem);
    font-weight: 800;
    line-height: 1;
    color: var(--color-border);
    letter-spacing: -0.05em;
    margin: 0;
}

.error-404__title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.error-404__desc {
    font-size: 1rem;
    color: var(--color-muted);
    line-height: 1.7;
    margin: 0 0 0.5rem;
}

.error-404__search {
    display: flex;
    gap: 0.5rem;
    width: 100%;
    margin-top: 0.5rem;
}

.error-404__search-input {
    flex: 1;
    padding: 0.625rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.9375rem;
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-white);
    outline: none;
    transition: border-color 0.15s;
}

.error-404__search-input:focus {
    border-color: var(--color-dark);
}

.error-404__links {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.9rem;
    flex-wrap: wrap;
    justify-content: center;
}

.error-404__links-label {
    color: var(--color-muted);
}

.error-404__links a {
    color: var(--color-text);
    font-weight: 600;
    text-decoration: none;
}

.error-404__links a:hover {
    color: var(--color-dark);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.error-404__links span[aria-hidden] {
    color: var(--color-border);
}

/* ——————————————————————————————
   SEARCH PAGE HERO
   —————————————————————————————— */

.search-hero__meta {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.search-hero__form {
    display: flex;
    gap: 0.5rem;
    max-width: 560px;
    margin-top: 1.25rem;
}

.search-hero__input {
    flex: 1;
    padding: 0.625rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.9375rem;
    font-family: var(--font-body);
    color: var(--color-text);
    background: var(--color-white);
    outline: none;
    transition: border-color 0.15s;
}

.search-hero__input:focus {
    border-color: var(--color-dark);
}

/* ——————————————————————————————
   LEGAL PAGES (existing, keep below)
   —————————————————————————————— */

.legal-content blockquote {
    border-left: 3px solid var(--color-border);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
    color: var(--color-muted);
    font-style: italic;
}
