/**
 * Calvary Church Content - Block Styles
 *
 * Theme-agnostic styles for custom blocks.
 * Uses CSS custom properties for easy theming.
 */

:root {
    /* Bridge to WordPress theme.json presets with fallbacks */
    --calvary-primary: var(--wp--preset--color--accent-1, #2c5282);
    --calvary-primary-dark: var(--wp--preset--color--accent-3, #1a365d);
    --calvary-secondary: var(--wp--preset--color--accent-2, #e8c547);
    --calvary-text: var(--wp--preset--color--contrast, #1a1a2e);
    --calvary-text-light: var(--wp--preset--color--accent-4, #4a5568);
    --calvary-bg: var(--wp--preset--color--base, #ffffff);
    --calvary-bg-alt: var(--wp--preset--color--accent-5, #f7fafc);
    --calvary-border: var(--wp--preset--color--accent-6, #e2e8f0);
    --calvary-radius: var(--calvary-radius-medium, 8px);
    --calvary-shadow: var(--calvary-shadow-card, 0 2px 8px rgba(0, 0, 0, 0.08));
    --calvary-transition: all 0.2s ease-in-out;
}

/* ==========================================================================
   Shared Carousel Navigation & Pagination
   ========================================================================== */

/* Base nav button: 44px circle with centered icon */
.calvary-carousel-btn,
.calvary-hero-prev,
.calvary-hero-next,
.calvary-events-prev,
.calvary-events-next,
.calvary-testimonials-prev,
.calvary-testimonials-next {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    transition: var(--calvary-transition);
    pointer-events: auto;
}

/* Disabled state */
.calvary-carousel-btn.swiper-button-disabled,
.calvary-hero-prev.swiper-button-disabled,
.calvary-hero-next.swiper-button-disabled,
.calvary-events-prev.swiper-button-disabled,
.calvary-events-next.swiper-button-disabled,
.calvary-testimonials-prev.swiper-button-disabled,
.calvary-testimonials-next.swiper-button-disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* Base pagination bullet */
.calvary-hero-pagination .swiper-pagination-bullet,
.calvary-testimonials-pagination .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    opacity: 1;
    margin: 0 5px;
    padding: 8px;
    box-sizing: content-box;
    transition: var(--calvary-transition);
}

/* ==========================================================================
   Shared Card Hover
   ========================================================================== */

.calvary-card-hover {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.calvary-card-hover:hover {
    transform: translateY(-4px);
    box-shadow: var(--calvary-shadow-card-hover, 0 8px 24px rgba(0, 0, 0, 0.12));
}

/* ==========================================================================
   Shared Button Base
   ========================================================================== */

.calvary-btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border-radius: var(--calvary-radius-small, 4px);
    font-weight: 600;
    text-decoration: none;
    transition: var(--calvary-transition);
    cursor: pointer;
    border: none;
    font-size: inherit;
    line-height: 1.5;
}

.calvary-btn--primary {
    background: var(--calvary-primary);
    color: #fff;
}

.calvary-btn--primary:hover {
    background: color-mix(in srgb, var(--calvary-primary) 85%, black);
    color: #fff;
}

.calvary-btn--secondary {
    background: transparent;
    border: 2px solid currentColor;
}

/* ==========================================================================
   Shared Form Input Base
   ========================================================================== */

.calvary-input {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--calvary-border);
    border-radius: var(--calvary-radius-small, 4px);
    background: var(--calvary-bg);
    font-size: 1rem;
    font-family: inherit;
    transition: var(--calvary-transition);
    box-sizing: border-box;
}

.calvary-input:focus {
    border-color: var(--calvary-primary);
    box-shadow: 0 0 0 3px rgba(44, 82, 130, 0.15);
    outline: none;
}

/* ==========================================================================
   Focus-Visible — consistent keyboard focus indicators
   ========================================================================== */

.calvary-btn:focus-visible,
.calvary-button:focus-visible,
.calvary-card-hover:focus-visible,
.calvary-input:focus-visible,
.calvary-sermon-card a:focus-visible,
.calvary-learning-card a:focus-visible,
.calvary-event-card a:focus-visible,
.calvary-resource-card:focus-visible,
button.calvary-person-card:focus-visible {
    outline: 2px solid var(--calvary-primary);
    outline-offset: 2px;
}

/* Carousel nav focus-visible handled per-carousel for color variation */
.calvary-events-prev:focus-visible,
.calvary-events-next:focus-visible,
.calvary-testimonials-prev:focus-visible,
.calvary-testimonials-next:focus-visible {
    outline: 2px solid var(--calvary-primary);
    outline-offset: 2px;
}

/* ==========================================================================
   Recent Sermons Block
   ========================================================================== */

.calvary-recent-sermons {
    padding: 2rem 0;
}

.calvary-sermons-grid {
    display: grid;
    gap: 1.5rem;
}

.calvary-sermons-grid.columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.calvary-sermons-grid.columns-3 {
    grid-template-columns: repeat(3, 1fr);
}

.calvary-sermons-grid.columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1024px) {
    .calvary-sermons-grid.columns-4 {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .calvary-sermons-grid.columns-3,
    .calvary-sermons-grid.columns-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .calvary-sermons-grid.columns-2,
    .calvary-sermons-grid.columns-3,
    .calvary-sermons-grid.columns-4 {
        grid-template-columns: 1fr;
    }
}

/* Scoped to Recent Sermons ACF block only — archive card styles live in theme style.css */
.calvary-sermons-grid .calvary-sermon-card {
    background: var(--calvary-bg);
    border-radius: var(--calvary-radius);
    overflow: hidden;
    box-shadow: var(--calvary-shadow);
    transition: transform var(--calvary-transition), box-shadow var(--calvary-transition);
}

.calvary-sermons-grid .calvary-sermon-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--calvary-shadow-elevated);
}

.calvary-sermons-grid .calvary-sermon-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.calvary-sermons-grid .calvary-sermon-thumbnail {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.calvary-sermons-grid .calvary-sermon-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--calvary-transition);
}

.calvary-sermons-grid .calvary-sermon-card:hover .calvary-sermon-thumbnail img {
    transform: scale(1.05);
}

.calvary-sermons-grid .calvary-sermon-badge {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 4px;
    background: var(--calvary-primary);
    color: #fff;
}

.calvary-sermons-grid .calvary-sermon-content {
    padding: 1rem;
}

.calvary-sermons-grid .calvary-sermon-date {
    display: block;
    font-size: 0.875rem;
    color: var(--calvary-text-light);
    margin-bottom: 0.5rem;
}

.calvary-sermons-grid .calvary-sermon-type {
    font-style: italic;
}

.calvary-sermons-grid .calvary-sermon-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.5rem;
    color: var(--calvary-text);
    line-height: 1.3;
}

.calvary-sermons-grid .calvary-sermon-speaker,
.calvary-sermons-grid .calvary-sermon-series {
    font-size: 0.85rem;
    color: var(--calvary-text-light);
    margin: 0;
}

.calvary-sermons-grid .calvary-sermon-series {
    font-style: italic;
}

.calvary-sermons-more {
    text-align: center;
    margin-top: 2rem;
}

/* ==========================================================================
   Service Times Block
   ========================================================================== */

.calvary-service-times {
    padding: 2rem;
    background: var(--calvary-bg-alt);
    border-radius: var(--calvary-radius);
}

.calvary-service-times-heading {
    font-size: 1.5rem;
    margin: 0 0 1.5rem;
    text-align: center;
}

.calvary-service-times-list {
    max-width: 400px;
    margin: 0 auto;
}

.calvary-service-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--calvary-border);
}

.calvary-service-item:last-child {
    border-bottom: none;
}

.calvary-service-name {
    font-weight: 600;
}

.calvary-service-schedule {
    text-align: right;
    color: var(--calvary-text-light);
}

.calvary-service-day::after {
    content: " \2022 ";
}

/* ==========================================================================
   Hero Section Block
   ========================================================================== */

.calvary-hero-section {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.calvary-hero-section.has-parallax {
    background-attachment: fixed;
}

@media (max-width: 1024px) {
    .calvary-hero-section.has-parallax {
        background-attachment: scroll;
    }
}

.calvary-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}

.calvary-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1200px;
    padding: 2rem;
    text-align: center;
}

.calvary-hero-content h1,
.calvary-hero-content h2,
.calvary-hero-content h3 {
    margin-top: 0;
}

.calvary-hero-content p {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   Church Location Block
   ========================================================================== */

.calvary-church-location {
    display: grid;
    gap: 2rem;
}

@media (min-width: 768px) {
    .calvary-church-location {
        grid-template-columns: 1fr 1fr;
    }
}

.calvary-location-info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.calvary-location-info h3 {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--calvary-text-light);
    margin: 0 0 0.5rem;
}

.calvary-location-address address {
    font-style: normal;
    line-height: 1.6;
}

.calvary-directions-link {
    display: inline-block;
    margin-top: 0.5rem;
    color: var(--calvary-primary);
    text-decoration: none;
    font-weight: 500;
}

.calvary-directions-link:hover {
    text-decoration: underline;
}

.calvary-location-contact a {
    color: var(--calvary-primary);
    text-decoration: none;
}

.calvary-location-contact a:hover {
    text-decoration: underline;
}

.calvary-location-map {
    border-radius: var(--calvary-radius);
    overflow: hidden;
    min-height: 300px;
}

.calvary-location-map iframe {
    width: 100%;
    height: 100%;
    min-height: 300px;
    border: 0;
}

/* ==========================================================================
   Sermon Templates
   ========================================================================== */

.calvary-sermon-archive {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}

/* Single Sermon */
.calvary-sermon-single {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 2rem 0.5rem;
}

.calvary-sermon-player {
    margin-bottom: 2rem;
    border-radius: var(--calvary-radius);
    overflow: hidden;
}

.calvary-sermon-player iframe,
.calvary-sermon-player video,
.calvary-sermon-player audio {
    width: 100%;
    display: block;
}

/* ==========================================================================
   Utilities
   ========================================================================== */

.is-hidden {
    display: none;
}

.calvary-placeholder {
    padding: 2rem;
    background: var(--calvary-bg-alt);
    border: 2px dashed var(--calvary-border);
    border-radius: var(--calvary-radius);
    text-align: center;
    color: var(--calvary-text-light);
}

.calvary-no-sermons {
    text-align: center;
    color: var(--calvary-text-light);
    padding: 2rem;
}

/* ==========================================================================
   Shortcode Styles (Theme-independent)
   ========================================================================== */

/* Sermon Details Shortcode */
.calvary-sermon-details {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.calvary-sermon-details .calvary-sermon-date {
    font-weight: 500;
    margin-bottom: 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-sermon-details .calvary-sermon-title {
    font-weight: 600;
    margin: 0.25rem 0;
    font-size: inherit;
}

.calvary-sermon-details .calvary-sermon-title a {
    text-decoration: none;
    color: inherit;
}

.calvary-sermon-details .calvary-sermon-title a:hover {
    text-decoration: underline;
}

.calvary-sermon-details .calvary-sermon-meta {
    font-weight: 500;
    margin: 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-sermon-details .calvary-sermon-meta + .calvary-sermon-meta {
    margin-top: 0.125rem;
}

.calvary-sermon-details .calvary-sermon-link {
    font-weight: 600;
    margin-top: 0.75rem;
    margin-bottom: 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.calvary-sermon-details .calvary-sermon-link a {
    text-decoration: none;
    display: inline-block;
    padding: 0.5rem 0;
    min-height: 44px;
    box-sizing: border-box;
}

.calvary-sermon-details .calvary-sermon-link a:hover {
    text-decoration: underline;
}

/* Accent color variants */
.calvary-sermon-details--primary .calvary-sermon-link a {
    color: var(--wp--preset--color--accent-1, #c75b5b);
}

.calvary-sermon-details--secondary .calvary-sermon-link a {
    color: var(--wp--preset--color--accent-2, #b8a23e);
}

/* Learning Cards Shortcode */
.calvary-learning-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--wp--preset--spacing--40, 2rem);
    justify-items: center;
}

/* Single column: larger card with consistent margins */
@media (max-width: 699px) {
    .calvary-learning-card {
        max-width: 450px;
        width: 100%;
    }
}

/* 2 columns at 700px+ (needs ~650px for 2x300px + gap) */
@media (min-width: 700px) {
    .calvary-learning-cards {
        grid-template-columns: repeat(2, 300px);
        justify-content: center;
    }

    .calvary-learning-card {
        max-width: 300px;
    }
}

/* 3 columns at 1000px+ (needs ~950px for 3x300px + gaps) */
@media (min-width: 1000px) {
    .calvary-learning-cards {
        grid-template-columns: repeat(3, 300px);
        justify-content: center;
    }
}

/* Outer wrapper - AOS animates this, no transition here */
.calvary-learning-card {
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
    justify-self: center;
    width: 100%;
    /* max-width controlled by media queries above */
}

/* Inner wrapper - hover effects applied here */
.calvary-learning-card-inner {
    background: var(--wp--preset--color--base, #fff);
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: 1px solid rgba(0,0,0,0.1);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.calvary-learning-card-inner:hover {
    transform: translateY(-4px);
    box-shadow: var(--calvary-shadow-card-hover);
}

.calvary-learning-card-inner figure {
    margin: 0;
    overflow: hidden;
}

.calvary-learning-card-inner figure img {
    width: 100%;
    height: auto;
    display: block;
}

.calvary-learning-card-content {
    padding: 8px var(--wp--preset--spacing--40, 1.5rem) var(--wp--preset--spacing--40, 1.5rem);
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Ensure nested block groups also flex to push buttons to bottom */
.calvary-learning-card-inner > .wp-block-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.calvary-learning-card-inner > .wp-block-group > .wp-block-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.calvary-learning-card-label {
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin: 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.calvary-learning-card-label--primary {
    color: var(--wp--preset--color--accent-1, #1a365d);
}

.calvary-learning-card-label--secondary {
    color: var(--wp--preset--color--accent-2, #8b6914);
}

/* Darker label colors on colored card backgrounds for legibility */
.calvary-learning-card-inner:has(.calvary-sermon-details:not(.calvary-sermon-details--secondary)) .calvary-learning-card-label {
    color: #0d1b2a;
}

.calvary-learning-card-inner:has(.calvary-sermon-details--secondary) .calvary-learning-card-label {
    color: #5c4a1a;
}

.calvary-learning-card-label--muted {
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-learning-card-description {
    margin-top: var(--wp--preset--spacing--20, 0.5rem);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--accent-4, #666);
}

/* Series description under header (slightly larger than old position) */
.calvary-learning-card-series-desc {
    margin-top: 0.375rem;
    margin-bottom: 0.5rem;
    font-size: 0.9375rem; /* 15px - slightly larger than 14px */
    font-style: italic;
    color: var(--wp--preset--color--contrast, #1a1a1a);
    line-height: 1.45;
}

/* Shared styles for learning card bottom sections */
.calvary-learning-card .calvary-sermon-details {
    margin: 0;
    margin-top: auto;
    padding: 1rem 0 0 0;
    border-top: none;
}

/* Series description styling */
.calvary-sermon-series-description {
    font-size: 0.875rem;
    font-style: italic;
    color: var(--wp--preset--color--accent-4, #666);
    margin: 0.75rem 0;
    line-height: 1.4;
}

/* All Ministries link - match Watch Latest Now button style */
.calvary-learning-card-link {
    background: transparent;
    margin-top: auto;
    margin-bottom: 0;
    display: flex; /* Eliminate paragraph line-height affecting button height */
}

.calvary-learning-card-link a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    min-height: 44px;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    font-weight: 600;
    line-height: 1.4;
    box-sizing: border-box;
    background-color: var(--wp--preset--color--accent-1, #1a365d);
    color: var(--wp--preset--color--base, #fff) !important;
    border-radius: 6px;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.calvary-learning-card-link a:hover {
    background-color: var(--wp--preset--color--accent-3, #2c5282);
    transform: translateY(-1px);
}

/* Sermon cards - navy blue throughout */
.calvary-learning-card-inner:has(.calvary-sermon-details:not(.calvary-sermon-details--secondary)) {
    background: rgba(26, 54, 93, 0.15);
}

.calvary-learning-card-inner:has(.calvary-sermon-details:not(.calvary-sermon-details--secondary)) figure {
    position: relative;
}

.calvary-learning-card-inner:has(.calvary-sermon-details:not(.calvary-sermon-details--secondary)) figure::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(26, 54, 93, 0.15);
    pointer-events: none;
}

/* Sunday school cards - gold throughout */
.calvary-learning-card-inner:has(.calvary-sermon-details--secondary) {
    background: rgba(201, 122, 40, 0.18);
}

.calvary-learning-card-inner:has(.calvary-sermon-details--secondary) figure {
    position: relative;
}

.calvary-learning-card-inner:has(.calvary-sermon-details--secondary) figure::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(201, 122, 40, 0.18);
    pointer-events: none;
}

/* Events Shortcode */
.calvary-events-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--wp--preset--spacing--40, 1.5rem);
}

@media (min-width: 600px) {
    .calvary-events-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 900px) {
    .calvary-events-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Outer wrapper - AOS animates this, no transition here */
.calvary-event-card {
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
}

/* Inner wrapper - hover effects applied here */
.calvary-event-card-inner {
    background: var(--wp--preset--color--base, #fff);
    border-radius: var(--calvary-radius-large);
    padding: var(--wp--preset--spacing--40, 1.5rem);
    box-sizing: border-box;
    box-shadow: var(--calvary-shadow-card);
    display: flex;
    gap: var(--wp--preset--spacing--30, 1rem);
    align-items: flex-start;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.calvary-event-card-inner:hover {
    transform: translateY(-2px);
    box-shadow: var(--calvary-shadow-card-hover);
}

.calvary-event-date {
    border-radius: 8px;
    padding: var(--wp--preset--spacing--20, 0.5rem) var(--wp--preset--spacing--30, 0.75rem);
    min-width: 70px;
    text-align: center;
    flex-shrink: 0;
    font-weight: 700;
    line-height: 1.2;
    font-size: var(--wp--preset--font-size--large, 1.25rem);
}

.calvary-event-date--accent-1 {
    background: var(--wp--preset--color--accent-1, #c75b5b);
    color: var(--wp--preset--color--base, #fff);
}

.calvary-event-date--accent-2 {
    background: var(--wp--preset--color--accent-2, #b8a23e);
    color: var(--wp--preset--color--contrast, #333);
}

.calvary-event-date--accent-3 {
    background: var(--wp--preset--color--accent-3, #2a4365);
    color: var(--wp--preset--color--base, #fff);
}

.calvary-event-content {
    flex: 1;
    min-width: 0;
}

.calvary-event-title {
    font-weight: 600;
    margin: 0 0 0.25rem 0;
    font-size: var(--wp--preset--font-size--medium, 1rem);
}

.calvary-event-description {
    margin: 0;
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-events-error {
    background: #fee;
    padding: 1rem;
    border-radius: 8px;
    margin: 1rem 0;
}

.calvary-events-empty {
    text-align: center;
    color: var(--wp--preset--color--accent-4, #666);
}

/* ==========================================================================
   Events Carousel
   ========================================================================== */

.calvary-events-carousel {
    position: relative;
    padding-bottom: 0;
}

.calvary-events-carousel .swiper-wrapper {
    margin-bottom: 0;
}

.calvary-events-carousel .swiper-slide {
    height: auto;
}

/* Make cards fill the slide height */
.calvary-events-carousel .calvary-event-card {
    height: 100%;
}

.calvary-events-carousel .calvary-event-card-inner {
    height: 100%;
}

/* Navigation container */
.calvary-events-nav {
    display: flex;
    justify-content: center;
    gap: var(--wp--preset--spacing--20, 0.5rem);
    margin-top: var(--wp--preset--spacing--40, 1.5rem);
}

/* Navigation buttons — color overrides (base in shared section) */
.calvary-events-prev,
.calvary-events-next {
    background: var(--wp--preset--color--base, #fff);
    color: var(--wp--preset--color--accent-1, #c75b5b);
    box-shadow: var(--calvary-shadow);
}

.calvary-events-prev:hover,
.calvary-events-next:hover {
    background: var(--wp--preset--color--accent-1, #c75b5b);
    color: var(--wp--preset--color--base, #fff);
    box-shadow: var(--calvary-shadow-card-hover);
}

.calvary-events-prev:focus-visible,
.calvary-events-next:focus-visible {
    outline: 2px solid var(--wp--preset--color--accent-1, #c75b5b);
    outline-offset: 2px;
}

/* Disabled hover reset */
.calvary-events-prev.swiper-button-disabled:hover,
.calvary-events-next.swiper-button-disabled:hover {
    background: var(--wp--preset--color--base, #fff);
    color: var(--wp--preset--color--accent-1, #c75b5b);
    box-shadow: var(--calvary-shadow);
}

/* Single sermon template */
.calvary-sermon-block-wrap {
    padding-top: 0;
    padding-bottom: var(--wp--preset--spacing--60, 3rem);
}

.calvary-sermon-block-inner {
    max-width: var(--wp--style--global--content-size, 1200px);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--wp--preset--spacing--50, 2rem);
    padding-right: var(--wp--preset--spacing--50, 2rem);
}

.calvary-breadcrumb {
    margin-bottom: 1.5rem;
    font-size: 0.875rem;
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-breadcrumb-link {
    color: var(--wp--preset--color--accent-1, #c75b5b);
    text-decoration: none;
}

.calvary-breadcrumb-link:hover {
    text-decoration: underline;
}

.calvary-breadcrumb-sep {
    color: var(--wp--preset--color--accent-4, #666);
    margin: 0 0.5rem;
}

.calvary-breadcrumb-current {
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-sermon-featured-image {
    margin: 0 0 2rem 0;
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
    aspect-ratio: 16 / 9;
}

.calvary-sermon-featured-image-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.calvary-sermon-header {
    margin-bottom: 2rem;
}

.calvary-sermon-meta-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.calvary-sermon-meta-row .calvary-badge {
    padding: 0.1875rem 0.5rem;
    font-size: 0.625rem;
}

.calvary-sermon-date {
    font-size: 0.9rem;
    color: var(--wp--preset--color--accent-4, #666);
    font-weight: 500;
}

.calvary-sermon-title {
    font-size: var(--wp--preset--font-size--xx-large, 2.25rem);
    margin: 0 0 1.25rem 0;
    line-height: 1.15;
    font-weight: 700;
}

.calvary-sermon-header-content {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
}

.calvary-sermon-thumbnail {
    flex-shrink: 0;
    width: 200px;
    margin: 0;
    border-radius: 8px;
    overflow: hidden;
}

.calvary-sermon-thumbnail-img {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 600px) {
    .calvary-sermon-block-wrap {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .calvary-sermon-block-inner {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .calvary-sermon-single {
        padding: 0.75rem 1rem;
    }

    .calvary-sermon-header {
        margin-bottom: 1rem;
    }

    .calvary-sermon-header-content {
        flex-direction: column;
        gap: 1rem;
    }

    .calvary-sermon-thumbnail {
        width: 100%;
        max-width: 300px;
    }

    .calvary-sermon-notes {
        overflow-x: auto;
        max-width: 100%;
    }

    .calvary-sermon-notes-embed {
        max-width: 100%;
    }
}

/* Hide empty <p> tags inserted by WordPress in sermon header area */
.calvary-sermon-header-content > p:empty,
.calvary-sermon-meta > p:empty,
.calvary-player-container > p:empty {
    display: none;
}

.calvary-sermon-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: 0.9rem;
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-sermon-meta-label {
    color: var(--wp--preset--color--contrast, #111);
}

.calvary-sermon-meta-link {
    color: var(--wp--preset--color--accent-1, #c75b5b);
    text-decoration: none;
}

.calvary-sermon-meta-link:hover {
    text-decoration: underline;
}

.calvary-player-container {
    margin-bottom: 2rem;
    background: var(--wp--preset--color--contrast, #111);
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
}

.calvary-video-player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
}

.calvary-video-embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.calvary-audio-player {
    padding: 2rem;
    background: linear-gradient(135deg, var(--wp--preset--color--accent-3, #b75d5d) 0%, var(--wp--preset--color--accent-1, #c75b5b) 100%);
}

.calvary-audio-element {
    width: 100%;
}

.calvary-audio-player-info {
    text-align: center;
    color: var(--wp--preset--color--base, #fff);
    margin-bottom: 1.5rem;
}

.calvary-audio-player-icon {
    opacity: 0.8;
}

.calvary-audio-player-label {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
    opacity: 0.8;
}

.calvary-sermon-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.calvary-sermon-action {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
    transition: var(--calvary-transition);
}

.calvary-sermon-action--video {
    background: var(--wp--preset--color--accent-1, #c75b5b);
    color: #fff;
}

.calvary-sermon-action--video.is-active {
    background: var(--wp--preset--color--accent-3, #b75d5d);
}

.calvary-sermon-action--audio.is-outline {
    border: 2px solid var(--wp--preset--color--accent-1, #c75b5b);
    color: var(--wp--preset--color--accent-1, #c75b5b);
    background: transparent;
}

.calvary-sermon-action--audio.is-active {
    background: var(--wp--preset--color--accent-3, #b75d5d);
    color: #fff;
}

.calvary-sermon-action--download {
    border: 1px solid #b8b8b8;
    color: var(--wp--preset--color--contrast, #111);
    background: transparent;
}

.calvary-sermon-action--download:hover {
    border-color: var(--wp--preset--color--accent-4, #999);
    background: var(--wp--preset--color--accent-5, #f2f2f2);
}

/* Mobile: stack sermon action buttons */
@media (max-width: 600px) {
    .calvary-sermon-actions {
        flex-direction: column;
        gap: 1rem;
    }

    .calvary-sermon-action {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        justify-content: center;
        font-size: 0.9375rem;
        padding: 0.75rem 1rem;
        gap: 0.5rem;
        flex: 1;
        justify-content: center;
        white-space: nowrap;
    }

    .calvary-sermon-action svg {
        width: 14px;
        height: 14px;
    }
}

.calvary-sermon-notes {
    margin-bottom: 2rem;
}

.calvary-sermon-notes-title {
    font-size: 1.875rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
}

.calvary-sermon-notes-embed {
    border-radius: 8px;
    border: 1px solid var(--wp--preset--color--accent-6, #d0d0d0);
    height: min(600px, 80vh);
}

.calvary-sermon-notes-fallback {
    padding: 2rem;
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    border-radius: 8px;
    text-align: center;
}

.calvary-sermon-notes-fallback-text {
    margin-bottom: 1rem;
}

.calvary-sermon-notes-download {
    display: inline-block;
    background: var(--wp--preset--color--accent-1, #c75b5b);
    color: #fff;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
}


.calvary-sermon-content {
    margin-bottom: 2rem;
    font-size: 1.0625rem;
    line-height: 1.75;
}

.calvary-sermon-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--wp--preset--color--accent-6, #d0d0d0);
    margin-bottom: 1rem;
}

.calvary-sermon-share-label {
    color: var(--wp--preset--color--accent-4, #666);
    font-weight: 500;
}

.calvary-sermon-share-buttons {
    display: flex;
    gap: 0.5rem;
}

.calvary-share-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    text-decoration: none;
    color: #fff;
}

.calvary-share-button--facebook {
    background: #1877f2;
}

.calvary-share-button--x {
    background: #000;
}

.calvary-share-button--email {
    background: var(--wp--preset--color--accent-4, #666);
}

.calvary-share-button--copy {
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    color: var(--wp--preset--color--contrast, #111);
    border: 1px solid var(--wp--preset--color--accent-6, #d0d0d0);
    cursor: pointer;
}

.calvary-share-button--copy.is-copied {
    background: var(--wp--preset--color--accent-3, #b75d5d);
    color: #fff;
}

.calvary-series-nav {
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.calvary-series-nav-title {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--wp--preset--color--accent-4, #666);
    margin: 0 0 1rem 0;
}

.calvary-series-nav-link {
    color: var(--wp--preset--color--accent-1, #c75b5b);
    text-decoration: none;
}

.calvary-series-nav-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.calvary-series-nav-card {
    display: block;
    padding: 1rem;
    background: var(--wp--preset--color--base, #fff);
    border-radius: 6px;
    text-decoration: none;
    transition: box-shadow 0.2s;
}

.calvary-series-nav-card--next {
    text-align: right;
}

.calvary-series-nav-label {
    font-size: 0.875rem;
    color: var(--wp--preset--color--accent-4, #666);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.calvary-series-nav-name {
    margin: 0.5rem 0 0;
    color: var(--wp--preset--color--contrast, #111);
    font-weight: 500;
    font-size: 0.9375rem;
    line-height: 1.4;
}

.calvary-sermon-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    padding-top: 1rem;
    border-top: 1px solid var(--wp--preset--color--accent-6, #d0d0d0);
}

.calvary-sermon-nav-link {
    color: var(--wp--preset--color--accent-1, #c75b5b);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    line-height: 1.3;
}

.calvary-sermon-nav-link svg {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    align-self: center;
}

.calvary-sermon-nav-link--next {
    margin-left: auto;
    text-align: right;
}

@media (max-width: 600px) {
    .calvary-sermon-nav {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }

    .calvary-sermon-nav-link {
        font-size: 0.9375rem; /* 15px - readable on mobile */
    }

    .calvary-sermon-nav-link svg {
        width: 16px;
        height: 16px;
    }

    .calvary-sermon-nav-link--next {
        align-self: flex-end;
    }
}

.calvary-related-sermons {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--wp--preset--color--accent-6, #d0d0d0);
    overflow: hidden;
}

.calvary-related-sermons .calvary-sermon-grid {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 1.5rem;
}

@media (max-width: 768px) {
    .calvary-related-sermons {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .calvary-related-sermons .calvary-sermon-grid {
        grid-template-columns: 1fr;
    }

    .calvary-related-sermon-card {
        max-width: 100%;
        box-sizing: border-box;
    }
}

.calvary-related-sermons-title {
    font-size: var(--wp--preset--font-size--large, 1.5rem);
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.calvary-related-sermon-card {
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    border-radius: 8px;
    padding: 1.25rem;
}

.calvary-related-sermon-date {
    font-size: 0.875rem;
    color: var(--wp--preset--color--accent-4, #666);
    font-weight: 500;
}

.calvary-related-sermon-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 0.5rem 0;
    line-height: 1.35;
}

.calvary-related-sermon-link {
    color: var(--wp--preset--color--contrast, #111);
    text-decoration: none;
}

.calvary-related-sermon-link:hover {
    text-decoration: underline;
}

.calvary-related-sermon-speakers {
    font-size: 0.8125rem;
    color: var(--wp--preset--color--accent-4, #666);
    margin: 0 0 1rem;
}

.calvary-related-sermon-cta {
    background: var(--wp--preset--color--accent-1, #c75b5b);
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none;
    font-size: 0.8125rem;
    font-weight: 600;
    display: inline-block;
}

/* Sermon archive template */
.calvary-archive-block-wrap {
    --calvary-archive-accent: var(--wp--preset--color--accent-1, #c75b5b);
    --calvary-archive-muted: var(--wp--preset--color--accent-4, #666);
    --calvary-archive-border: var(--wp--preset--color--accent-6, #d0d0d0);
    --calvary-archive-bg: var(--wp--preset--color--accent-5, #f2f2f2);
    --calvary-archive-base: var(--wp--preset--color--base, #fff);
    --calvary-archive-contrast: var(--wp--preset--color--contrast, #111);
    --calvary-archive-radius: 6px;
    --calvary-archive-card-radius: 8px;
    --calvary-archive-card-padding: 1.25rem;
    padding-top: var(--wp--preset--spacing--60, 3rem);
    padding-bottom: var(--wp--preset--spacing--60, 3rem);
}

.calvary-archive-block-inner {
    max-width: var(--wp--style--global--wide-size, 1200px);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--wp--preset--spacing--50, 2rem);
    padding-right: var(--wp--preset--spacing--50, 2rem);
}

.calvary-archive-header {
    padding-top: var(--wp--preset--spacing--50, 2rem);
    text-align: center;
}

.calvary-archive-header-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    text-align: center;
}

h1.calvary-archive-title {
    font-family: var(--calvary-heading-font, "Cormorant Garamond", "Times New Roman", serif);
    font-size: clamp(2rem, 5vw, 2.75rem);
    font-weight: 700;
    text-align: center;
    color: var(--calvary-ink, #1a202c);
    margin-bottom: 0;
    line-height: 1.2;
}

.calvary-archive-description {
    color: var(--calvary-archive-muted);
    font-size: var(--wp--preset--font-size--medium, 1rem);
    margin: 0;
}

.calvary-archive-count {
    color: var(--calvary-archive-muted);
    font-size: var(--wp--preset--font-size--small, 0.875rem);
}

.calvary-filter-form {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
    margin: 1.5rem 0 2rem;
    padding: 1.25rem;
    background: var(--wp--preset--color--base, #fff);
    border-radius: var(--calvary-radius-large);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.calvary-filter-field {
    display: flex;
    flex-direction: column;
}

.calvary-filter-field--search {
    grid-column: 1 / -1;
}

.calvary-filter-field--actions {
    display: flex;
    align-items: flex-end;
    gap: 0.75rem;
}

.calvary-filter-input,
.calvary-filter-select {
    width: 100%;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    border: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
    background: var(--wp--preset--color--base, #fff);
    color: inherit;
    font-size: 0.9375rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.calvary-filter-input:focus,
.calvary-filter-select:focus {
    outline: none;
    border-color: var(--calvary-archive-accent, #4a5568);
    box-shadow: 0 0 0 3px rgba(74, 85, 104, 0.1);
}

.calvary-filter-input::placeholder {
    color: var(--wp--preset--color--accent-4, #a0aec0);
}

.calvary-filter-submit {
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    border: none;
    background: var(--calvary-archive-accent, #4a5568);
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
    white-space: nowrap;
}

.calvary-filter-submit:hover {
    background: var(--wp--preset--color--contrast, #2d3748);
}

.calvary-filter-submit:active {
    transform: translateY(1px);
}

.calvary-filter-clear {
    padding: 0.75rem 1rem;
    color: var(--calvary-archive-muted, #718096);
    text-decoration: none;
    font-size: 0.875rem;
    white-space: nowrap;
}

.calvary-filter-clear:hover {
    text-decoration: underline;
}

@media (max-width: 900px) {
    .calvary-filter-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .calvary-filter-form {
        grid-template-columns: 1fr;
    }

    .calvary-filter-field--actions {
        flex-direction: column;
        align-items: stretch;
    }

    .calvary-filter-submit {
        width: 100%;
    }
}

/* Sermon card styles moved to theme style.css for single source of truth */

.calvary-pagination {
    margin-top: 3rem;
}

.calvary-archive-empty {
    text-align: center;
    padding: 3rem;
    background: var(--calvary-archive-bg);
    border-radius: var(--calvary-archive-card-radius);
}

.calvary-archive-empty-title {
    font-size: var(--wp--preset--font-size--large, 1.5rem);
    margin-bottom: 1rem;
}

.calvary-archive-empty-text {
    color: var(--calvary-archive-muted);
    margin-bottom: 1.5rem;
}

.calvary-archive-empty-link {
    background: var(--calvary-archive-accent);
    color: #fff;
    padding: 0.75rem 1.5rem;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
}

/* ==========================================================================
   Leadership & Staff Shortcode
   ========================================================================== */

.calvary-leadership {
    --calvary-leadership-accent: var(--wp--preset--color--accent-1, #c75b5b);
    --calvary-leadership-gold: var(--wp--preset--color--accent-2, #b8a23e);
    --calvary-leadership-navy: var(--wp--preset--color--accent-3, #1a365d);
    --calvary-leadership-muted: var(--wp--preset--color--accent-4, #666);
    --calvary-leadership-border: var(--wp--preset--color--accent-6, #d0d0d0);
    --calvary-leadership-bg: var(--wp--preset--color--accent-5, #f2f2f2);
    --calvary-leadership-base: var(--wp--preset--color--base, #fff);
    --calvary-leadership-contrast: var(--wp--preset--color--contrast, #111);
}

.calvary-leadership-section {
    margin-bottom: 3rem;
}

.calvary-leadership-section:last-child {
    margin-bottom: 0;
}

.calvary-leadership-section-title {
    font-size: var(--wp--preset--font-size--x-large, 1.75rem);
    font-weight: 700;
    margin: 0 auto 1.5rem auto;
    padding-bottom: 0.75rem;
    border-bottom: 3px solid var(--calvary-leadership-gold);
    color: var(--calvary-leadership-navy);
}

.calvary-leadership-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .calvary-leadership-grid {
        grid-template-columns: repeat(2, 1fr);
        max-width: 560px;
        margin-left: auto;
        margin-right: auto;
    }
}

@media (min-width: 900px) {
    .calvary-leadership-grid {
        grid-template-columns: repeat(3, 1fr);
        max-width: 100%;
    }
}

@media (max-width: 600px) {
    .calvary-leadership-grid {
        max-width: calc(100vw - 112px);
        margin-left: auto;
        margin-right: auto;
    }

    button.calvary-person-card {
        max-width: none;
    }
}

/* Card is a button - reset button styles */
button.calvary-person-card {
    display: block;
    width: 100%;
    max-width: 300px;
    padding: 0;
    border: none;
    background: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    border-radius: var(--calvary-radius-large);
    justify-self: center;
}

button.calvary-person-card:focus-visible {
    outline: 2px solid var(--calvary-leadership-accent);
    outline-offset: 2px;
}

.calvary-person-card-inner {
    background: var(--calvary-leadership-base);
    border: 1px solid var(--wp--preset--color--accent-6);
    border-radius: var(--calvary-radius-large);
    overflow: hidden;
    transition: var(--calvary-transition);
    height: 100%;
    display: flex;
    flex-direction: column;
}

button.calvary-person-card:hover .calvary-person-card-inner {
    box-shadow: var(--calvary-shadow-card-hover);
    border-color: var(--wp--preset--color--accent-1);
}

.calvary-person-photo {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--calvary-leadership-bg);
}

.calvary-person-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.calvary-person-photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--calvary-leadership-navy) 0%, #2c5282 100%);
}

.calvary-person-initials {
    font-size: 3rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.05em;
}

.calvary-person-info {
    padding: 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.calvary-person-name {
    font-size: var(--wp--preset--font-size--medium, 1.125rem);
    font-weight: 600;
    margin: 0 0 0.25rem 0;
    color: var(--calvary-leadership-contrast);
    line-height: 1.3;
}

.calvary-person-position {
    font-size: var(--wp--preset--font-size--small, 0.875rem);
    color: var(--calvary-leadership-accent);
    font-weight: 600;
    margin: 0 0 0.75rem 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.calvary-person-bio {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--calvary-leadership-muted);
    margin-top: 0;
    position: relative;
    max-height: 4.8em; /* ~3 lines at 1.6 line-height */
    overflow: hidden;
}

/* Fade out effect at bottom of bio text */
.calvary-person-bio::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2em;
    background: linear-gradient(to bottom, transparent 0%, var(--calvary-leadership-base, #fff) 100%);
    pointer-events: none;
}

/* "More" indicator - matches ministry card style */
.calvary-person-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    margin-left: auto;
    padding: 0.375rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--wp--preset--color--base);
    background: var(--wp--preset--color--accent-1);
    border-radius: 2rem;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

button.calvary-person-card:hover .calvary-person-more {
    background: var(--wp--preset--color--accent-3);
    transform: translateY(-1px);
}

/* Mobile: centered circular images, keep fonts consistent with desktop */
@media (max-width: 600px) {
    /* Override global mobile typography for leadership cards - high specificity selector chain */
    .wp-block-post-content .calvary-leadership .calvary-person-card .calvary-person-name {
        font-size: 1.125rem !important; /* Fixed 18px, same as desktop */
        font-weight: 600 !important;
        line-height: 1.3 !important;
    }

    .wp-block-post-content .calvary-leadership .calvary-person-card .calvary-person-position {
        font-size: 0.875rem !important; /* Fixed 14px, same as desktop */
        font-weight: 600 !important;
        color: var(--calvary-leadership-accent) !important; /* Keep red accent color */
    }

    .wp-block-post-content .calvary-leadership .calvary-person-card .calvary-person-bio {
        font-size: 0.875rem !important; /* Fixed 14px, same as desktop */
        font-weight: 400 !important;
        line-height: 1.6 !important;
    }

    /* Smaller centered circular images on mobile */
    .calvary-person-photo {
        width: 70%;
        max-width: 200px;
        margin: 0.75rem auto;
        border-radius: 50%;
    }

    .calvary-person-photo img {
        border-radius: 50%;
    }
}

.calvary-leadership-empty {
    text-align: center;
    padding: 2rem;
    color: var(--calvary-leadership-muted);
}

/* Leadership Modal */
/* ---------- Shared Modal Base ---------- */
.calvary-modal {
    position: fixed;
    inset: 0;
    z-index: var(--calvary-z-modal);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.calvary-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.calvary-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
}

.calvary-modal__content {
    position: relative;
    background: var(--wp--preset--color--base, #fff);
    border-radius: var(--calvary-radius-large);
    max-width: 600px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    transform: translateY(20px);
    transition: transform 0.2s ease;
}

.calvary-modal.is-open .calvary-modal__content {
    transform: translateY(0);
}

.calvary-modal__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    border: none;
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    border-radius: 50%;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
    color: var(--calvary-ink, #333);
}

.calvary-modal__close:hover {
    background: var(--wp--preset--color--accent-6, #d0d0d0);
}

.calvary-modal__image {
    width: 100%;
    overflow: hidden;
    background: var(--wp--preset--color--accent-5, #f2f2f2);
    border-radius: var(--calvary-radius-large) var(--calvary-radius-large) 0 0;
}

.calvary-modal__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.calvary-modal__body {
    padding: 1.5rem 2rem 2rem;
}

.calvary-modal__body p {
    margin: 0 0 1rem 0;
}

.calvary-modal__body p:last-child {
    margin-bottom: 0;
}

@media (max-width: 600px) {
    .calvary-modal__content {
        max-height: 85vh;
    }

    .calvary-modal__body {
        padding: 1.25rem 1.5rem 1.5rem;
    }
}

/* ---------- Leadership Person Modal (variant overrides) ---------- */
.calvary-person-modal .calvary-modal__content {
    background: var(--calvary-leadership-base, #fff);
}

.calvary-person-modal .calvary-modal__close {
    background: var(--calvary-leadership-bg, #f2f2f2);
}

.calvary-person-modal .calvary-modal__close:hover {
    background: var(--calvary-leadership-border, #d0d0d0);
}

.calvary-person-modal .calvary-modal__image {
    aspect-ratio: 4 / 3;
    background: var(--calvary-leadership-bg, #f2f2f2);
}

.calvary-person-modal-name {
    font-size: var(--wp--preset--font-size--x-large, 1.75rem);
    font-weight: 700;
    margin: 0 0 0.25rem 0;
    color: var(--calvary-leadership-contrast, #111);
}

.calvary-person-modal-position {
    font-size: var(--wp--preset--font-size--medium, 1rem);
    color: var(--calvary-leadership-accent, #c75b5b);
    font-weight: 600;
    margin: 0 0 1.25rem 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.calvary-person-modal-bio {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--calvary-leadership-muted, #666);
}

@media (max-width: 600px) {
    .calvary-person-modal-name {
        font-size: 1.5rem;
    }
}

/* ── Collapsible Sections (Sermon Page) ── */
.calvary-collapsible {
    margin: 2rem 0;
}

/* Header row with title and optional controls */
.calvary-collapsible-header-row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.calvary-collapsible-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--wp--preset--color--contrast, #1a202c);
}

.calvary-collapsible-title svg {
    opacity: 0.7;
    flex-shrink: 0;
}

/* Download button in header */
.calvary-collapsible-download {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--wp--preset--color--contrast, #333);
    background: var(--wp--preset--color--base-2, #f5f5f5);
    border: 1px solid var(--wp--preset--color--accent-4, #ddd);
    border-radius: 4px;
    text-decoration: none;
    transition: var(--calvary-transition);
}

.calvary-collapsible-download:hover {
    background: var(--wp--preset--color--accent-4, #e5e5e5);
    color: var(--wp--preset--color--contrast, #333);
}


/* Reading tools - inside collapsible content */
.calvary-reading-tools {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: opacity 0.2s ease;
}

/* Reading tools toolbar inside transcript dropdown */
.calvary-collapsible-content > .calvary-reading-tools {
    padding: 0.75rem 0;
    background: transparent;
    border-bottom: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
    margin-bottom: 0;
}

.calvary-collapsible-content > .calvary-reading-tools::before {
    content: 'Reading Tools:';
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--wp--preset--color--contrast-2, #666);
    margin-right: 0.5rem;
}

/* Preview snippet with fade gradient */
.calvary-collapsible-preview {
    max-height: 4.5em;
    overflow: hidden;
    position: relative;
    color: #666;
    font-style: italic;
    line-height: 1.6;
}

.calvary-collapsible-preview p {
    margin: 0;
}

.calvary-collapsible-preview::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2.5em;
    background: linear-gradient(to bottom, transparent, white);
    pointer-events: none;
}

/* Hide preview when expanded */
.calvary-collapsible[data-collapsed="false"] .calvary-collapsible-preview {
    display: none;
}

/* Expand/collapse button */
.calvary-expand-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 1rem auto 0;
    padding: 0.625rem 1.5rem;
    background: var(--wp--preset--color--base-2, #f5f5f5);
    border: 1px solid var(--wp--preset--color--accent-4, #ddd);
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--wp--preset--color--contrast, #333);
    transition: var(--calvary-transition);
    min-height: 44px;
    touch-action: manipulation;
}

.calvary-expand-btn:hover {
    background: var(--wp--preset--color--accent-4, #e5e5e5);
}

.calvary-expand-icon {
    font-size: 0.75rem;
    transition: transform 0.3s ease;
}

/* Rotate arrow when expanded */
.calvary-collapsible[data-collapsed="false"] .calvary-expand-icon {
    transform: rotate(180deg);
}

/* Hide expand button when expanded */
.calvary-collapsible[data-collapsed="false"] .calvary-expand-btn {
    margin-top: 0;
    margin-bottom: 1rem;
}

/* Collapsible content */
.calvary-collapsible-content {
    display: none;
    padding-top: 1rem;
}

.calvary-collapsible[data-collapsed="false"] .calvary-collapsible-content {
    display: block;
}

/* Transcript Section */
.calvary-sermon-transcript {
    margin: 2rem 0;
}


.calvary-transcript-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.calvary-font-controls {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    background: var(--wp--preset--color--base, #fff);
    border: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
    border-radius: 6px;
    padding: 0.25rem;
}

.calvary-font-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    border-radius: 4px;
    cursor: pointer;
    color: var(--wp--preset--color--contrast, #1a202c);
    transition: background 0.2s;
    /* Ensure touch works on mobile */
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    user-select: none;
}

.calvary-font-btn:hover {
    background: var(--wp--preset--color--base-2, #f0f0f0);
}

.calvary-font-label {
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0 0.5rem;
    color: var(--wp--preset--color--accent-4, #666);
}

.calvary-bionic-btn {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
    background: var(--wp--preset--color--base, #fff);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--wp--preset--color--contrast, #1a202c);
    transition: var(--calvary-transition);
    /* Ensure touch works on mobile */
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0,0,0,0.1);
    user-select: none;
}

.calvary-bionic-btn:hover {
    background: var(--wp--preset--color--base-2, #f0f0f0);
}

.calvary-bionic-btn[data-active="true"] {
    background: var(--wp--preset--color--accent-1, #c75b5b);
    border-color: var(--wp--preset--color--accent-1, #c75b5b);
    color: #fff;
}

/* Dark mode toggle button */
.calvary-darkmode-btn {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
    background: var(--wp--preset--color--base, #fff);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--wp--preset--color--contrast, #1a202c);
    transition: var(--calvary-transition);
}

.calvary-darkmode-btn:hover {
    background: var(--wp--preset--color--base-2, #f0f0f0);
}

.calvary-darkmode-btn[data-active="true"] {
    background: #000;
    border-color: #000;
    color: #e2e8f0;
}

/* Dark mode content styles */
.calvary-sermon-content[data-dark="true"],
.calvary-article-content[data-dark="true"],
.calvary-transcript-content[data-dark="true"] {
    background: #000;
    color: #e2e8f0;
}

/* Dark mode: extend to full width on transcript section */
.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
    background: #000;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-collapsible-content {
    border-color: #333;
}

/* Dark mode: header row styling */
.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-collapsible-header-row {
    color: #e2e8f0;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-collapsible-title {
    color: #f7fafc;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-font-label {
    color: #a0aec0;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-font-controls {
    background: #222;
    border-color: #444;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-font-btn {
    color: #e2e8f0;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-font-btn:hover {
    background: #333;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-bionic-btn {
    border-color: #444;
    background: #222;
    color: #e2e8f0;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-bionic-btn:hover {
    background: #333;
}

.calvary-sermon-transcript:has(.calvary-transcript-content[data-dark="true"]) .calvary-darkmode-btn {
    border-color: #444;
    background: #222;
    color: #e2e8f0;
}


/* Dark mode: edge-to-edge for sermon/article content */
.calvary-sermon-content[data-dark="true"],
.calvary-article-content[data-dark="true"] {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    padding-left: calc(50vw - 50%);
    padding-right: calc(50vw - 50%);
}

.calvary-sermon-content[data-dark="true"] a,
.calvary-article-content[data-dark="true"] a,
.calvary-transcript-content[data-dark="true"] a {
    color: #90cdf4;
}

.calvary-sermon-content[data-dark="true"] h1,
.calvary-sermon-content[data-dark="true"] h2,
.calvary-sermon-content[data-dark="true"] h3,
.calvary-sermon-content[data-dark="true"] h4,
.calvary-article-content[data-dark="true"] h1,
.calvary-article-content[data-dark="true"] h2,
.calvary-article-content[data-dark="true"] h3,
.calvary-article-content[data-dark="true"] h4,
.calvary-transcript-content[data-dark="true"] h1,
.calvary-transcript-content[data-dark="true"] h2,
.calvary-transcript-content[data-dark="true"] h3,
.calvary-transcript-content[data-dark="true"] h4 {
    color: #f7fafc;
}

.calvary-sermon-content[data-dark="true"] blockquote,
.calvary-article-content[data-dark="true"] blockquote,
.calvary-transcript-content[data-dark="true"] blockquote {
    border-left-color: #4a5568;
    color: #cbd5e0;
}

/* Dark mode: ensure paragraphs and list items have light text */
.calvary-sermon-content[data-dark="true"] p,
.calvary-sermon-content[data-dark="true"] li,
.calvary-article-content[data-dark="true"] p,
.calvary-article-content[data-dark="true"] li,
.calvary-transcript-content[data-dark="true"] p,
.calvary-transcript-content[data-dark="true"] li {
    color: #e2e8f0 !important;
}

/* iOS Safari text size fix */
.calvary-transcript-content,
.calvary-sermon-content,
.calvary-article-content {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

/* Font size classes for iOS Safari compatibility */
.transcript-font-0 { font-size: 14px !important; }
.transcript-font-1 { font-size: 16px !important; }
.transcript-font-2 { font-size: 18px !important; }
.transcript-font-3 { font-size: 20px !important; }
.transcript-font-4 { font-size: 22px !important; }
.transcript-font-5 { font-size: 24px !important; }

.calvary-transcript-content {
    padding: 1rem 0;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--wp--preset--color--contrast, #1a202c);
    max-height: 600px;
    overflow-y: auto;
}

.calvary-transcript-content p {
    margin: 0 0 1rem 0;
}

.calvary-transcript-content p:last-child {
    margin-bottom: 0;
}

/* Bionic reading styles - make bold parts more prominent */
.calvary-transcript-content[data-bionic="true"] .bionic-word b,
.calvary-sermon-content[data-bionic="true"] .bionic-word b,
.calvary-article-content[data-bionic="true"] .bionic-word b {
    font-weight: 800;
}

.calvary-transcript-content[data-bionic="true"] .bionic-word span {
    font-weight: 400;
    opacity: 0.7;
}

@media (max-width: 600px) {
    .calvary-collapsible-header-row {
        gap: 0.5rem;
    }

    .calvary-collapsible-title {
        font-size: 1.1rem;
    }

    .calvary-transcript-controls {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    /* Reading tools toolbar inside dropdown - stack on mobile */
    .calvary-collapsible-content > .calvary-reading-tools {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .calvary-collapsible-content > .calvary-reading-tools::before {
        width: 100%;
        margin-bottom: 0.25rem;
    }
}

/* Transcript controls bar (for content with transcripts) */
.calvary-transcript-controls-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid var(--wp--preset--color--accent-4, #e2e8f0);
}

/* Reset wpautop-inserted p tags */
.calvary-transcript-controls-bar p,
.calvary-transcript-controls p {
    display: contents;
    margin: 0;
    padding: 0;
}

.calvary-transcript-controls-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--wp--preset--color--contrast-2, #64748b);
    margin-right: auto;
}

.calvary-sermon-content.has-transcript {
    transition: font-size 0.2s ease;
}

@media (max-width: 600px) {
    .calvary-transcript-controls-bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .calvary-transcript-controls-bar .calvary-transcript-controls {
        width: 100%;
        justify-content: space-between;
    }
}

/* ==========================================================================
   Resource Links Cards
   ========================================================================== */

.calvary-resource-section {
    margin-bottom: 3rem;
}

.calvary-resource-section-title {
    font-family: var(--calvary-heading-font, var(--wp--preset--font-family--heading, serif));
    font-size: clamp(1.5rem, 3vw, 1.875rem);
    font-weight: 600;
    color: var(--wp--preset--color--contrast, #1a1a1a);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--wp--preset--color--accent-3, #e3d3c1);
}

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

.calvary-resource-links-grid[data-columns="2"] {
    grid-template-columns: repeat(2, 1fr);
}

.calvary-resource-links-grid[data-columns="4"] {
    grid-template-columns: repeat(4, 1fr);
}

.calvary-resource-card {
    display: block;
    background: var(--wp--preset--color--base, #ffffff);
    border: 1px solid var(--wp--preset--color--accent-3, #e3d3c1);
    border-radius: var(--calvary-radius-medium, 12px);
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    overflow: hidden;
}

.calvary-resource-card:hover,
.calvary-resource-card:focus {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    border-color: var(--wp--preset--color--accent-4, #4a90a4);
    text-decoration: none;
}

.calvary-resource-card-inner {
    display: flex;
    flex-direction: column;
    padding: 1.25rem;
}

.calvary-resource-logo {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 0.75rem;
    flex-shrink: 0;
    background: #fff;
}

.calvary-resource-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.calvary-resource-logo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--wp--preset--color--accent-4, #4a90a4), var(--wp--preset--color--accent-5, #2c5f6e));
}

.calvary-resource-initial {
    font-size: 1.5rem;
    font-weight: 700;
    color: white;
}

.calvary-resource-info {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.calvary-resource-title {
    font-family: var(--calvary-heading-font, var(--wp--preset--font-family--heading, serif));
    font-size: 1rem;
    font-weight: 600;
    color: var(--wp--preset--color--contrast, #1a1a1a);
    margin: 0 0 0.375rem 0;
    line-height: 1.3;
}

.calvary-resource-description {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--wp--preset--color--contrast-2, #64748b);
    margin: 0;
    /* Show full description - no modal so display everything */
}

.calvary-resource-link-icon {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-top: 0.5rem;
    color: var(--wp--preset--color--accent-4, #4a90a4);
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.calvary-resource-card:hover .calvary-resource-link-icon,
.calvary-resource-card:focus .calvary-resource-link-icon {
    opacity: 1;
}

/* Responsive */
@media (max-width: 900px) {
    .calvary-resource-links-grid,
    .calvary-resource-links-grid[data-columns="3"],
    .calvary-resource-links-grid[data-columns="4"] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .calvary-resource-links-grid,
    .calvary-resource-links-grid[data-columns="2"],
    .calvary-resource-links-grid[data-columns="3"],
    .calvary-resource-links-grid[data-columns="4"] {
        grid-template-columns: 1fr;
    }

    .calvary-resource-card-inner {
        flex-direction: row;
        align-items: flex-start;
        gap: 1rem;
        padding: 1.25rem;
    }

    .calvary-resource-logo {
        width: 48px;
        height: 48px;
        margin-bottom: 0;
    }

    .calvary-resource-info {
        min-width: 0;
    }

    .calvary-resource-link-icon {
        display: none;
    }

    /* Match ministry card text sizes - high specificity to beat theme h3/p rules */
    body.page .wp-block-post-content h3.calvary-resource-title,
    h3.calvary-resource-title.calvary-resource-title.calvary-resource-title {
        font-size: 1.125rem !important; /* 18px - same as ministry card */
        font-weight: 600 !important;
        line-height: 1.3 !important;
    }

    body.page .wp-block-post-content p.calvary-resource-description,
    p.calvary-resource-description.calvary-resource-description.calvary-resource-description.calvary-resource-description {
        font-size: 0.9375rem !important; /* 15px - same as ministry card */
        line-height: 1.55 !important;
    }
}

/* ==========================================================================
   Reduced Motion — comprehensive plugin block
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .calvary-card-hover,
    .calvary-btn,
    .calvary-button,
    .calvary-carousel-nav,
    .calvary-input,
    .calvary-hero-prev,
    .calvary-hero-next,
    .calvary-events-prev,
    .calvary-events-next,
    .calvary-testimonials-prev,
    .calvary-testimonials-next,
    .calvary-hero-pagination .swiper-pagination-bullet,
    .calvary-testimonials-pagination .swiper-pagination-bullet,
    .calvary-hero-button,
    .calvary-sermon-card,
    .calvary-learning-card-inner,
    .calvary-event-card-inner,
    .calvary-resource-card,
    button.calvary-person-card .calvary-person-card-inner {
        transition: none !important;
        animation: none !important;
    }

    .calvary-card-hover:hover,
    .calvary-sermon-card:hover,
    .calvary-learning-card-inner:hover,
    .calvary-event-card-inner:hover,
    .calvary-resource-card:hover,
    button.calvary-person-card:hover .calvary-person-card-inner {
        transform: none !important;
    }
}

/* ==========================================================================
   Article Search
   ========================================================================== */

.calvary-article-empty-text {
    font-size: 1.125rem;
    color: var(--calvary-text-light);
}

/* ==========================================================================
   Hero Carousel
   (Merged from hero-carousel.css)
   ========================================================================== */

.calvary-hero-carousel,
.calvary-hero-static {
    position: relative;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-bottom: -1.5rem !important;
    min-height: 55vh;
    overflow: hidden;
    font-size: 0;
}

.calvary-hero-carousel > p:empty {
    display: none;
}

.calvary-hero-carousel .swiper-wrapper {
    margin-bottom: 0;
}

.calvary-hero-carousel .swiper-slide {
    position: relative;
    min-height: 55vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.calvary-hero-slide {
    position: relative;
}

.calvary-hero-image {
    position: absolute;
    top: -25%;
    left: 0;
    width: 100%;
    height: 150%;
    object-fit: cover;
    z-index: 0;
}

.calvary-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    background-color: var(--wp--preset--color--accent-3, #1a365d);
    opacity: 0.75;
}

.calvary-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--wp--style--global--content-size, 1200px);
    margin: 0 auto;
    padding: var(--wp--preset--spacing--80, 4rem) var(--wp--preset--spacing--50, 2rem);
    text-align: center;
    font-size: 1rem;
}

.calvary-hero-content-inner {
    max-width: 800px;
    margin: 0 auto;
}

.calvary-hero-heading {
    font-size: var(--wp--preset--font-size--hero, 2.75rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--wp--preset--color--base, #fff);
    margin: 0 0 var(--wp--preset--spacing--30, 1rem) 0;
}

.calvary-hero-description {
    font-size: 1.25rem;
    color: var(--wp--preset--color--accent-6, #d0d0d0);
    margin: 0;
    line-height: 1.6;
}

.calvary-hero-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--wp--preset--spacing--30, 1rem);
    margin-top: var(--wp--preset--spacing--50, 2rem);
}

.calvary-hero-button {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    font-size: var(--wp--preset--font-size--medium, 1rem);
    font-weight: 600;
    text-decoration: none;
    border-radius: 6px;
    transition: all 0.2s ease-in-out;
}

.calvary-hero-button--primary {
    background-color: var(--wp--preset--color--accent-2, #b8a23e);
    color: var(--wp--preset--color--contrast, #111);
}

.calvary-hero-button--primary:hover {
    background-color: color-mix(in srgb, var(--wp--preset--color--accent-2, #b8a23e) 85%, black);
    color: var(--wp--preset--color--contrast, #111);
}

.calvary-hero-button--secondary {
    background-color: var(--wp--preset--color--base, #fff);
    color: var(--wp--preset--color--accent-3, #1a365d);
}

.calvary-hero-button--secondary:hover {
    background-color: color-mix(in srgb, var(--wp--preset--color--base, #fff) 90%, var(--wp--preset--color--accent-3, #1a365d));
    color: var(--wp--preset--color--accent-3, #1a365d);
}

.calvary-hero-nav {
    position: absolute;
    bottom: calc(50% - 22px);
    left: 0;
    right: 0;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    padding: 0 var(--wp--preset--spacing--40, 1.5rem);
    pointer-events: none;
}

.calvary-hero-prev,
.calvary-hero-next {
    background: rgba(255, 255, 255, 0.2);
    color: var(--wp--preset--color--base, #fff);
    backdrop-filter: blur(4px);
}

.calvary-hero-prev:hover,
.calvary-hero-next:hover {
    background: rgba(255, 255, 255, 0.4);
}

.calvary-hero-prev:focus-visible,
.calvary-hero-next:focus-visible {
    outline: 2px solid var(--wp--preset--color--base, #fff);
    outline-offset: 2px;
}

.calvary-hero-carousel .calvary-hero-pagination {
    display: none;
    position: absolute;
    bottom: 2rem;
    left: 0;
    right: 0;
    z-index: 10;
    text-align: center;
}

.calvary-hero-pagination .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.5);
}

.calvary-hero-pagination .swiper-pagination-bullet-active,
.calvary-hero-pagination .swiper-pagination-bullet:hover {
    background: var(--wp--preset--color--base, #fff);
}

.calvary-hero-static {
    display: flex;
    align-items: center;
    justify-content: center;
}

.calvary-hero-carousel.parallax-active .calvary-hero-image,
.calvary-hero-static.parallax-active .calvary-hero-image {
    will-change: transform;
}

@media (max-width: 768px) {
    .calvary-hero-carousel,
    .calvary-hero-static,
    .calvary-hero-carousel .swiper-slide {
        min-height: 50vh;
    }

    .calvary-hero-heading {
        font-size: var(--wp--preset--font-size--x-large, 2rem);
    }

    .calvary-hero-description {
        font-size: 1rem;
    }

    .calvary-hero-nav {
        bottom: 2rem;
        padding: 0 var(--wp--preset--spacing--30, 1rem);
    }

    .calvary-hero-prev,
    .calvary-hero-next {
        width: 36px;
        height: 36px;
    }

    .calvary-hero-prev svg,
    .calvary-hero-next svg {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 600px) {
    .calvary-hero-carousel,
    .calvary-hero-static,
    .calvary-hero-carousel .swiper-slide {
        min-height: 40vh;
        max-height: 55vh;
    }
}

/* ==========================================================================
   Testimonials Carousel
   (Merged from testimonials.css)
   ========================================================================== */

.calvary-testimonials-swiper {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    padding-bottom: 0;
}

.calvary-testimonials-swiper .swiper-wrapper {
    margin-bottom: 0;
}

.calvary-testimonials-swiper .swiper-slide {
    height: auto;
}

.calvary-testimonial-slide {
    background: var(--wp--preset--color--base);
    border-radius: var(--calvary-radius-large, 12px);
    padding: var(--wp--preset--spacing--40);
    padding-bottom: var(--wp--preset--spacing--30);
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.calvary-testimonial-quote {
    font-style: italic;
    line-height: 1.7;
    color: var(--wp--preset--color--contrast);
    font-size: 0.875rem;
    margin-bottom: var(--wp--preset--spacing--40);
}

.calvary-testimonial-quote p {
    margin: 0;
}

.calvary-testimonial-quote p + p {
    margin-top: 1em;
}

.calvary-testimonial-author {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--wp--preset--spacing--30);
}

.calvary-testimonial-photo {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--wp--preset--color--accent-2);
    flex-shrink: 0;
}

.calvary-testimonial-info {
    text-align: left;
}

.calvary-testimonial-name {
    font-weight: 600;
    color: var(--wp--preset--color--contrast);
    margin: 0;
    font-size: 1rem;
}

.calvary-testimonial-cite {
    color: var(--wp--preset--color--accent-4);
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
}

.calvary-testimonials-nav {
    display: flex;
    justify-content: center;
    gap: var(--wp--preset--spacing--20);
    margin-top: -1.5rem;
}

/* Desktop: position arrows on the sides of the testimonial card */
@media (min-width: 1025px) {
    .calvary-testimonials-swiper {
        position: relative;
        padding: 0 4rem;
        overflow: visible;
    }

    .calvary-testimonials-nav {
        position: absolute;
        top: calc(50% - 3.5rem);
        left: 0.25rem;
        right: 0.25rem;
        transform: translateY(-50%);
        justify-content: space-between;
        margin-top: 0;
        padding: 0;
        pointer-events: none;
        z-index: 2;
    }

    .calvary-testimonials-prev,
    .calvary-testimonials-next {
        pointer-events: auto;
    }
}

.calvary-testimonials-prev,
.calvary-testimonials-next {
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--accent-1);
    box-shadow: var(--calvary-shadow-card, 0 2px 8px rgba(0,0,0,0.08));
}

.calvary-testimonials-prev:hover,
.calvary-testimonials-next:hover {
    background: var(--wp--preset--color--accent-1);
    color: var(--wp--preset--color--base);
    box-shadow: var(--calvary-shadow-card-hover, 0 8px 24px rgba(0,0,0,0.12));
}

.calvary-testimonials-pagination {
    display: block;
    text-align: center;
    margin-top: var(--wp--preset--spacing--30);
}

.calvary-testimonials-pagination .swiper-pagination-bullet {
    background: var(--wp--preset--color--accent-6);
}

.calvary-testimonials-pagination .swiper-pagination-bullet-active,
.calvary-testimonials-pagination .swiper-pagination-bullet:hover {
    background: var(--wp--preset--color--accent-1);
}

@media (max-width: 600px) {
    /* Fixed height for all testimonial cards with centered content */
    .calvary-testimonial-slide {
        padding: var(--wp--preset--spacing--40);
        padding-top: var(--wp--preset--spacing--50); /* Extra top padding to prevent cut-off */
        height: 380px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        box-sizing: border-box;
        overflow: visible;
    }

    .calvary-testimonial-quote {
        font-size: 1rem; /* 16px - smaller for mobile cards */
        font-weight: 500;
        line-height: 1.35;
        color: var(--calvary-ink, #1f1b17);
    }

    .calvary-testimonial-photo {
        width: 56px;
        height: 56px;
    }

    /* Sermon/article content - readable with tight line spacing */
    .calvary-sermon-content p,
    .calvary-sermon-content li,
    .calvary-article-content p,
    .calvary-article-content li {
        font-size: 1.125rem; /* 18px */
        font-weight: 500;
        line-height: 1.35;
        color: var(--calvary-ink, #1f1b17);
    }

    /* When font controls are used, paragraphs inherit from container */
    .calvary-sermon-content[data-font-controlled="true"] p,
    .calvary-sermon-content[data-font-controlled="true"] li,
    .calvary-article-content[data-font-controlled="true"] p,
    .calvary-article-content[data-font-controlled="true"] li {
        font-size: inherit;
    }
}
