/* Sitebrede compacte weergave: alle inhoud blijft behouden. */
:root {
    --compact-section-space: clamp(1.8rem, 3vw, 2.75rem);
    --compact-card-space: clamp(0.95rem, 1.5vw, 1.3rem);
}

html {
    font-size: 15px;
}

body {
    line-height: 1.5;
}

p,
li {
    line-height: 1.55 !important;
}

body > section:not(#hero):not(.modern-hero),
body > main > section:not(#hero):not(.modern-hero) {
    padding-top: var(--compact-section-space) !important;
    padding-bottom: var(--compact-section-space) !important;
    min-height: 0 !important;
}

.modern-hero,
#hero {
    min-height: min(70vh, 650px) !important;
}

.hero-content,
.modern-hero-content {
    padding-top: 5.5rem !important;
    padding-bottom: 2.5rem !important;
}

h1,
.hero-title,
.modern-hero-title {
    font-size: clamp(2.35rem, 5vw, 4.4rem) !important;
    line-height: 1.02 !important;
    margin-bottom: 0.8rem !important;
}

h2,
.section-title,
.benefits-title,
.services-title,
.pricing-title,
.social-title {
    font-size: clamp(1.75rem, 3.5vw, 2.55rem) !important;
    line-height: 1.1 !important;
}

h3 {
    line-height: 1.2 !important;
}

.hero-subtitle,
.hero-description,
.section-description,
.benefits-description,
.pricing-subtitle,
.social-subtitle {
    font-size: clamp(0.95rem, 1.4vw, 1.08rem) !important;
    line-height: 1.55 !important;
}

.content-grid,
.benefits-grid,
.services-grid,
.features-grid,
.stats-grid,
.process-grid,
.testimonials-grid,
.social-links {
    gap: clamp(1rem, 2vw, 1.5rem) !important;
}

.benefit-card,
.service-card,
.feature-card,
.process-step,
.testimonial-card,
.social-link,
.info-card,
.contact-card {
    padding: var(--compact-card-space) !important;
}

.cta-button,
.cta-big,
.service-btn,
.process-button,
.plan-button,
.membership-button,
button[type="submit"] {
    padding: 0.75rem 1.35rem !important;
    font-size: 0.9rem !important;
}

/* Homepagepakketten: minder witruimte en kortere kaarten. */
#packages {
    padding-block: 3rem !important;
}

#packages .pricing-subtitle {
    margin-bottom: 1.75rem !important;
}

#packages .pricing-grid {
    gap: 1.15rem !important;
    margin-bottom: 1.75rem !important;
    align-items: start !important;
}

#packages .pricing-card {
    padding: 1.4rem !important;
    border-radius: 14px !important;
}

#packages .pricing-card.featured,
#packages .pricing-card.bestseller {
    transform: none !important;
}

#packages .plan-badge {
    margin-bottom: 0.65rem !important;
    padding: 0.38rem 0.9rem !important;
    font-size: 0.75rem !important;
}

#packages .plan-pricing {
    margin: 0.85rem 0 !important;
}

#packages .price-display {
    gap: 0.2rem !important;
}

#packages .price-amount {
    font-size: clamp(2rem, 3vw, 2.55rem) !important;
}

#packages .price-display > span:not(.price-amount) {
    font-size: 0.82rem !important;
}

#packages .plan-features {
    margin: 1rem 0 !important;
}

#packages .feature-item {
    margin-bottom: 0.45rem !important;
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
}

#packages .plan-button {
    padding: 0.75rem 1rem !important;
    font-size: 0.88rem !important;
}

/* Abonnementenkaarten en formulieren compacter. */
.membership-showcase {
    padding-block: 3rem !important;
}

.membership-card-inner {
    padding: 1.25rem !important;
}

.membership-features {
    gap: 0.45rem !important;
    margin-block: 0.8rem !important;
}

.membership-subline,
.membership-features li,
.membership-session-meta,
.membership-total {
    font-size: 0.84rem !important;
    line-height: 1.45 !important;
}

.membership-pt-panel--combi {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.8rem !important;
}

.membership-pt-panel--combi .membership-card-inner { padding: 0.85rem !important; }
.membership-pt-panel--combi .membership-price { font-size: 1.65rem !important; }
.membership-pt-panel--combi .membership-plan { font-size: 1.05rem !important; margin-block: 0.35rem !important; }
.membership-pt-panel--combi .membership-subline,
.membership-pt-panel--combi .membership-session-meta,
.membership-pt-panel--combi .membership-total,
.membership-pt-panel--combi .membership-features li { font-size: 0.76rem !important; line-height: 1.35 !important; }
.membership-pt-panel--combi .membership-features { margin-block: 0.45rem !important; gap: 0.25rem !important; }
.membership-pt-panel--combi .membership-expand summary { padding-block: 0.55rem !important; font-size: 0.78rem !important; }
.membership-pt-panel--combi .membership-cta { margin-top: 0.55rem !important; }
.membership-pt-panel--combi .membership-button { padding: 0.6rem 0.85rem !important; font-size: 0.78rem !important; }

.membership-plan {
    font-size: 1.2rem !important;
}

.membership-price {
    font-size: clamp(1.75rem, 3vw, 2.2rem) !important;
}

form,
.form-container,
.intake-form,
.contact-form {
    row-gap: 0.85rem !important;
}

input,
select,
textarea {
    padding: 0.75rem 0.9rem !important;
    font-size: 0.92rem !important;
}

footer {
    padding-top: 2.5rem !important;
    padding-bottom: 1.5rem !important;
}

/* Compacte homepageblokken. */
#coaching .coaching-hero {
    margin-bottom: 1.5rem !important;
}

#coaching .modern-benefits-grid {
    gap: 1rem !important;
}

#coaching .modern-benefit-card {
    min-height: 0 !important;
    padding: 1.35rem !important;
    border-radius: 18px !important;
}

#coaching .benefit-icon {
    width: 58px !important;
    height: 58px !important;
    margin-bottom: 0.8rem !important;
}

#coaching .benefit-content h4 {
    font-size: 1.3rem !important;
    margin-bottom: 0.5rem !important;
}

#coaching .benefit-content p,
#coaching .feature-list li {
    font-size: 0.84rem !important;
    line-height: 1.4 !important;
}

#coaching .feature-list {
    margin-top: 0.75rem !important;
    gap: 0.3rem !important;
}

#coaching .coaching-cta-enhanced {
    margin-top: 1.5rem !important;
    padding: 1.4rem !important;
}

#process .process-steps {
    gap: 0.75rem !important;
}

#process .step-card {
    min-height: 0 !important;
    padding: 1.15rem 1.5rem !important;
    border-radius: 14px !important;
}

#process .step-number {
    width: 62px !important;
    height: 62px !important;
    min-width: 62px !important;
}

#process .step-content h3 {
    font-size: 1.25rem !important;
    margin-bottom: 0.35rem !important;
}

#process .step-content p {
    font-size: 0.88rem !important;
    margin: 0 !important;
}

.partners-section-premium {
    padding-block: 3rem !important;
}

.partners-section-premium .partners-grid-premium {
    gap: 1.15rem !important;
    margin-bottom: 1.5rem !important;
}

.partners-section-premium .partner-card-premium > div[style*="padding: 4rem"] {
    padding: 1.5rem !important;
}

.partners-section-premium .partner-card-premium div[style*="width: 120px"] {
    width: 72px !important;
    height: 72px !important;
    margin-bottom: 1rem !important;
    border-radius: 20px !important;
}

.partners-section-premium .partner-card-premium h3 {
    font-size: 1.45rem !important;
    margin-bottom: 0.4rem !important;
}

.partners-section-premium .partner-card-premium p {
    font-size: 0.88rem !important;
    margin-bottom: 0.8rem !important;
}

.partners-section-premium .partner-card-premium div[style*="display: inline-block"] {
    padding: 0.55rem 1.2rem !important;
    font-size: 0.78rem !important;
}

#contact-section {
    padding-block: 2.75rem !important;
    gap: 2rem !important;
}

#contact-section .contact-info {
    gap: 0.7rem !important;
    margin-top: 1.25rem !important;
}

#contact-section .contact-item {
    padding: 0.4rem 0 !important;
}

#contact-section .contact-form {
    gap: 0.65rem !important;
}

#contact-section textarea {
    min-height: 90px !important;
}

/* Informatieve pagina-secties kort houden zonder inhoud te verbergen. */
.location-container,
.social-container,
.schedule-container,
.exercises-container,
.parent-info-container,
.services-container,
.benefits-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.location-subtitle,
.social-subtitle,
.schedule-subtitle,
.exercises-subtitle {
    margin-bottom: 1.25rem !important;
}

.location-grid,
.social-links,
.schedule-grid,
.exercises-grid {
    gap: 1rem !important;
    margin-top: 1.25rem !important;
}

.location-info,
.location-map {
    padding: 1.15rem !important;
}

.location-info h3 {
    font-size: 1.25rem !important;
    margin-bottom: 0.9rem !important;
}

.location-details {
    gap: 0.65rem !important;
}

.location-details .detail-item {
    padding: 0.8rem 1rem !important;
}

.location-details .detail-item strong {
    margin-bottom: 0.2rem !important;
}

.faq-section,
.cta-section,
.schedule-section,
.exercises-section,
.parent-info-section,
.social-section {
    padding-block: 1.8rem !important;
}

.faq-grid,
.faq-grid-centered {
    gap: 0.8rem !important;
}

.faq-item {
    padding: 1rem !important;
}

.cta-container p {
    margin-bottom: 1rem !important;
}

@media (min-width: 701px) and (max-width: 1100px) {
    .membership-pt-panel--combi {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    :root {
        --compact-section-space: 1.65rem;
        --compact-card-space: 0.95rem;
    }

    html {
        font-size: 14px;
    }

    .modern-hero,
    #hero {
        min-height: min(68vh, 600px) !important;
    }

    .hero-content,
    .modern-hero-content {
        padding-top: 5rem !important;
        padding-bottom: 2rem !important;
    }

    #packages .pricing-grid {
        gap: 1rem !important;
    }

    #packages .pricing-card {
        padding: 1.2rem !important;
    }

    .membership-pt-panel--combi {
        grid-template-columns: 1fr !important;
    }
}

/* Aanbodfoto's: behoud een natuurlijke brede uitsnede en laat ze kaartbreed lopen. */
body.offer-page .training-option,
body.offer-page .service-item {
    padding: 0 !important;
    overflow: hidden !important;
}

body.offer-page .training-option .option-image,
body.offer-page .service-item .service-image {
    width: 100% !important;
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
}

body.offer-page .training-option .option-image img,
body.offer-page .service-item .service-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
    margin: 0 !important;
}

body.offer-page .training-option .option-content,
body.offer-page .service-item .service-content,
body.offer-page .service-item > div[style*="padding: 2.5rem"] {
    padding: 1rem !important;
}

@media (max-width: 768px) {
    body.offer-page .training-option .option-image,
    body.offer-page .service-item .service-image {
        height: 180px !important;
        min-height: 180px !important;
        max-height: 180px !important;
    }
}

/* Homepage-specialisatiekaarten zijn volledige fotokaarten, dus zonder binnenpadding. */
#benefits .benefits-grid {
    padding: 0 !important;
    margin: 1.25rem auto 0 !important;
    gap: 1rem !important;
}

#benefits .benefit-card {
    padding: 0 !important;
    height: 300px !important;
    min-height: 300px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
}

#benefits .benefit-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

#benefits .benefit-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    margin: 0 !important;
}

@media (max-width: 768px) {
    #benefits .benefit-card {
        height: 260px !important;
        min-height: 260px !important;
    }
}

/* Compacte aanbodpagina's: PT, circuit, kickboksen en jeugdlessen. */
body.offer-page section:not(#hero) {
    padding-block: 1.75rem !important;
}

body.offer-page #hero,
body.offer-page .modern-hero {
    min-height: min(62vh, 570px) !important;
}

body.offer-page .hero-content,
body.offer-page .modern-hero-content {
    padding-top: 5.5rem !important;
    padding-bottom: 1.5rem !important;
}

body.offer-page .section-title,
body.offer-page .benefits-title,
body.offer-page .schedule-title,
body.offer-page .exercises-title {
    font-size: clamp(1.65rem, 3vw, 2.25rem) !important;
    margin-bottom: 0.75rem !important;
}

body.offer-page section > .container,
body.offer-page section > [class$="-container"] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body.offer-page [id$="-content"] .services-grid,
body.offer-page .benefits-grid,
body.offer-page .levels-grid,
body.offer-page .training-options,
body.offer-page .exercises-grid,
body.offer-page .schedule-grid,
body.offer-page .faq-grid {
    gap: 0.75rem !important;
}

body.offer-page .benefits-section {
    padding-block: 1.75rem !important;
}

body.offer-page .benefits-section .services-grid,
body.offer-page .benefits-section .benefits-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.offer-page .benefits-section .service-item,
body.offer-page .benefits-section .benefit-card,
body.offer-page .benefits-section .modern-benefit-card {
    padding: 0.9rem !important;
    min-height: 0 !important;
    border-radius: 14px !important;
}

body.offer-page .benefits-section .service-icon,
body.offer-page .benefits-section .benefit-icon {
    width: 44px !important;
    height: 44px !important;
    margin-bottom: 0.5rem !important;
}

body.offer-page .benefits-section h3 {
    font-size: 0.95rem !important;
    margin-bottom: 0.3rem !important;
}

body.offer-page .benefits-section p {
    font-size: 0.74rem !important;
    line-height: 1.32 !important;
}

body.offer-page .content .services-grid,
body.offer-page .content .training-options,
body.offer-page .content .levels-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.offer-page .training-option,
body.offer-page .level-card,
body.offer-page .exercise-category,
body.offer-page .schedule-day,
body.offer-page .faq-item {
    padding: 0.9rem !important;
    border-radius: 14px !important;
}

body.offer-page .training-option .option-image,
body.offer-page .service-item .service-image {
    height: 145px !important;
    min-height: 145px !important;
    max-height: 145px !important;
}

body.offer-page .training-option .option-content,
body.offer-page .service-item .service-content {
    padding: 0.9rem !important;
}

body.offer-page .training-option h3,
body.offer-page .level-card h3,
body.offer-page .exercise-category h3,
body.offer-page .schedule-day h3,
body.offer-page .faq-item h3 {
    font-size: 0.95rem !important;
    margin-bottom: 0.35rem !important;
}

body.offer-page .training-option p,
body.offer-page .training-option li,
body.offer-page .level-card p,
body.offer-page .level-card li,
body.offer-page .exercise-category li,
body.offer-page .schedule-day p,
body.offer-page .faq-item p {
    font-size: 0.74rem !important;
    line-height: 1.32 !important;
}

body.offer-page .schedule-container > p,
body.offer-page .exercises-container > p,
body.offer-page .parent-info-container > p {
    font-size: 0.85rem !important;
    margin-bottom: 0.9rem !important;
}

body.offer-page .schedule-container > div[style*="padding: 3rem"] {
    padding: 1.15rem !important;
}

body.offer-page .cta-section {
    padding-block: 1.5rem !important;
}

body.offer-page .cta-section h2,
body.offer-page .cta-section p {
    margin-bottom: 0.65rem !important;
}

.offer-inline-cta {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0.8rem 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    background: #171717;
    color: #fff;
    border: 1px solid rgba(195, 14, 46, 0.4);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
}

.offer-inline-cta strong {
    font-size: 0.9rem;
}

.offer-inline-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1.1rem;
    border-radius: 999px;
    background: #c30e2e;
    color: #fff;
    text-decoration: none;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 1000px) {
    body.offer-page .benefits-section .services-grid,
    body.offer-page .benefits-section .benefits-grid,
    body.offer-page .content .services-grid,
    body.offer-page .content .training-options,
    body.offer-page .content .levels-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    body.offer-page #hero,
    body.offer-page .modern-hero {
        min-height: min(60vh, 520px) !important;
    }

    body.offer-page .benefits-section .services-grid,
    body.offer-page .benefits-section .benefits-grid,
    body.offer-page .content .services-grid,
    body.offer-page .content .training-options,
    body.offer-page .content .levels-grid {
        grid-template-columns: 1fr !important;
    }

    .offer-inline-cta {
        margin-inline: 0.75rem;
        flex-direction: column;
        gap: 0.55rem;
        text-align: center;
    }
}

/* Extra compacte onderste helft van de homepage. Alle inhoud blijft aanwezig. */
body:has(#coaching) #coaching,
body:has(#coaching) #process,
body:has(#coaching) #testimonials,
body:has(#coaching) #contact-section {
    padding-block: 2rem !important;
}

#coaching .coaching-hero {
    margin-bottom: 1rem !important;
}

#coaching .section-title,
#process .section-title {
    margin-bottom: 0.65rem !important;
}

#coaching .coaching-subtitle {
    max-width: 760px !important;
    margin: 0 auto 1.25rem !important;
    font-size: 0.95rem !important;
    line-height: 1.45 !important;
}

#coaching .benefits-section-title {
    margin: 0 0 1rem !important;
    font-size: 1.65rem !important;
}

#coaching .modern-benefits-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.8rem !important;
}

#coaching .modern-benefit-card {
    padding: 1rem !important;
}

#coaching .benefit-icon {
    width: 46px !important;
    height: 46px !important;
    margin-bottom: 0.55rem !important;
}

#coaching .benefit-content h4 {
    font-size: 1.05rem !important;
}

#coaching .benefit-content p,
#coaching .feature-list li {
    font-size: 0.75rem !important;
    line-height: 1.3 !important;
}

#coaching .coaching-cta-enhanced {
    margin-top: 1rem !important;
    padding: 1rem 1.25rem !important;
}

#coaching .coaching-cta-enhanced h3,
#coaching .coaching-cta-enhanced p {
    margin-bottom: 0.55rem !important;
}

#process .process-steps {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.8rem !important;
}

#process .step-card {
    display: grid !important;
    grid-template-columns: 48px 1fr !important;
    gap: 0.75rem !important;
    padding: 1rem !important;
}

#process .step-number {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
}

#process .step-arrow {
    display: none !important;
}

#process .process-cta {
    margin-top: 1rem !important;
}

#why-max-gym {
    padding-block: 2.25rem !important;
}

#why-max-gym .why-max-gym-hero {
    gap: 1rem !important;
    margin-bottom: 1rem !important;
}

#why-max-gym .why-max-gym-hero > div,
#why-max-gym .why-max-gym-grid > div {
    padding: 1.25rem !important;
    border-radius: 20px !important;
}

#why-max-gym .why-max-gym-hero h2 {
    font-size: clamp(1.8rem, 3vw, 2.5rem) !important;
    margin-bottom: 0.65rem !important;
}

#why-max-gym .why-max-gym-hero p {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin-bottom: 0.8rem !important;
}

#why-max-gym .why-max-gym-list {
    gap: 0.55rem !important;
}

#why-max-gym .why-max-point {
    padding: 0.6rem 0.7rem !important;
    font-size: 0.78rem !important;
}

#why-max-gym .why-max-gym-grid {
    gap: 1rem !important;
}

#why-max-gym .why-max-gym-grid h3 {
    font-size: 1.1rem !important;
    margin-bottom: 0.7rem !important;
}

#why-max-gym .why-max-gym-grid div[style*="display: grid"] {
    gap: 0.45rem !important;
}

#why-max-gym .why-max-gym-grid div[style*="display: flex"] {
    padding-bottom: 0.4rem !important;
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
}

.section-diagonal {
    padding-block: 1.75rem !important;
}

.section-diagonal .outline-text {
    font-size: clamp(2.5rem, 7vw, 5rem) !important;
}

.section-diagonal p {
    margin-bottom: 1rem !important;
    font-size: 0.9rem !important;
}

#testimonials .testimonials-carousel {
    gap: 0.75rem !important;
}

#testimonials .testimonial-card {
    padding: 0.9rem !important;
}

#testimonials .testimonial-content p {
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
}

#club-location {
    padding-block: 2rem !important;
}

#club-location .club-location-container {
    padding: 0 1.25rem !important;
}

#club-location .club-card {
    min-height: 330px !important;
}

#club-location .club-info {
    padding: 2rem !important;
}

#club-location .club-info h3 {
    font-size: 2.25rem !important;
    margin-bottom: 0.75rem !important;
}

#club-location .club-info > div {
    margin-bottom: 1rem !important;
}

#club-location .club-info p {
    font-size: 0.95rem !important;
    margin-bottom: 0.35rem !important;
}

#club-location .club-button {
    padding: 0.8rem 1.4rem !important;
    font-size: 0.85rem !important;
}

.partners-section-premium {
    padding-block: 2rem !important;
}

.partners-section-premium .partners-grid-premium {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.75rem !important;
}

.partners-section-premium .partner-card-premium > div[style*="padding: 4rem"] {
    padding: 1rem !important;
}

.partners-section-premium .partner-card-premium div[style*="width: 120px"] {
    width: 54px !important;
    height: 54px !important;
    margin-bottom: 0.6rem !important;
    border-radius: 14px !important;
}

.partners-section-premium .partner-card-premium h3 {
    font-size: 1.1rem !important;
}

.partners-section-premium .partner-card-premium p {
    font-size: 0.75rem !important;
    margin-bottom: 0.55rem !important;
}

.partners-section-premium > .container > div:last-child {
    padding: 1.25rem !important;
}

.partners-section-premium > .container > div:last-child h3,
.partners-section-premium > .container > div:last-child p {
    margin-bottom: 0.65rem !important;
}

@media (max-width: 1000px) {
    #coaching .modern-benefits-grid,
    .partners-section-premium .partners-grid-premium {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    #coaching .modern-benefits-grid,
    #process .process-steps,
    .partners-section-premium .partners-grid-premium {
        grid-template-columns: 1fr !important;
    }

    #why-max-gym .why-max-gym-list {
        grid-template-columns: 1fr !important;
    }

    #club-location .club-card {
        min-height: 290px !important;
    }
}

/* Compacte onderste helft van de abonnementenpagina, vanaf Extra Services. */
body:has(.membership-shell) .services-section,
body:has(.membership-shell) .benefits-section,
body:has(.membership-shell) .faq-section,
body:has(.membership-shell) .pricing-table-section,
body:has(.membership-shell) .cta-section {
    padding-block: 1.75rem !important;
}

body:has(.membership-shell) .services-section .services-container {
    max-width: 1320px !important;
    padding-inline: 1.25rem !important;
}

body:has(.membership-shell) .services-section .services-title,
body:has(.membership-shell) .benefits-section .benefits-title,
body:has(.membership-shell) .faq-section .faq-title,
body:has(.membership-shell) .pricing-table-section h2 {
    font-size: clamp(1.65rem, 3vw, 2.1rem) !important;
    margin-bottom: 1rem !important;
}

body:has(.membership-shell) .services-section .services-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0.8rem !important;
    max-width: 1320px !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

body:has(.membership-shell) .services-section .service-card {
    padding: 1rem !important;
    border-radius: 13px !important;
    display: flex !important;
    flex-direction: column !important;
}

body:has(.membership-shell) .services-section .service-title-card {
    font-size: 1rem !important;
    margin-bottom: 0.4rem !important;
}

body:has(.membership-shell) .services-section .service-card > p {
    font-size: 0.76rem !important;
    line-height: 1.35 !important;
    margin-bottom: 0.7rem !important;
}

body:has(.membership-shell) .services-section .service-card ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.25rem 0.5rem !important;
    margin-bottom: 0.7rem !important;
}

body:has(.membership-shell) .services-section .service-card li {
    font-size: 0.72rem !important;
    margin-bottom: 0 !important;
    line-height: 1.25 !important;
}

body:has(.membership-shell) .services-section .service-cta-button {
    margin-top: auto !important;
    padding: 0.65rem 0.8rem !important;
}

body:has(.membership-shell) .services-section .service-cta-button span {
    font-size: 0.76rem !important;
    margin-bottom: 0.1rem !important;
}

body:has(.membership-shell) .benefits-header {
    margin-bottom: 1rem !important;
}

body:has(.membership-shell) .benefits-subtitle {
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin-bottom: 1rem !important;
}

body:has(.membership-shell) .benefits-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.7rem !important;
}

body:has(.membership-shell) .benefits-grid .modern-benefit-card {
    padding: 0.9rem !important;
    min-height: 0 !important;
}

body:has(.membership-shell) .benefits-grid .benefit-icon {
    width: 42px !important;
    height: 42px !important;
    margin-bottom: 0.45rem !important;
}

body:has(.membership-shell) .benefits-grid h3 {
    font-size: 0.95rem !important;
    margin-bottom: 0.3rem !important;
}

body:has(.membership-shell) .benefits-grid p {
    font-size: 0.73rem !important;
    line-height: 1.3 !important;
}

body:has(.membership-shell) .benefits-cta {
    margin-top: 1rem !important;
    padding: 1rem 1.25rem !important;
}

body:has(.membership-shell) .benefits-cta h3,
body:has(.membership-shell) .benefits-cta p {
    margin-bottom: 0.5rem !important;
}

body:has(.membership-shell) .faq-grid,
body:has(.membership-shell) .faq-grid-centered {
    gap: 0.6rem !important;
    margin-bottom: 0.6rem !important;
    max-width: none !important;
}

body:has(.membership-shell) .faq-grid-centered {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body:has(.membership-shell) .faq-item {
    padding: 0.75rem !important;
}

body:has(.membership-shell) .faq-item h3 {
    font-size: 0.88rem !important;
    margin-bottom: 0.25rem !important;
}

body:has(.membership-shell) .faq-item p {
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
}

body:has(.membership-shell) .pricing-table-section {
    padding-inline: 1rem !important;
}

body:has(.membership-shell) .pricing-table th,
body:has(.membership-shell) .pricing-table td {
    padding: 0.45rem 0.65rem !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
}

body:has(.membership-shell) .pricing-table .pricing-table-price {
    font-size: 0.86rem !important;
}

body:has(.membership-shell) .cta-section .cta-container {
    padding-block: 0 !important;
}

body:has(.membership-shell) .cta-section h2,
body:has(.membership-shell) .cta-section p {
    margin-bottom: 0.65rem !important;
}

@media (max-width: 1050px) {
    body:has(.membership-shell) .services-section .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 768px) {
    body:has(.membership-shell) .services-section .services-grid,
    body:has(.membership-shell) .benefits-grid,
    body:has(.membership-shell) .faq-grid,
    body:has(.membership-shell) .faq-grid-centered {
        grid-template-columns: 1fr !important;
    }

    body:has(.membership-shell) .pricing-table th,
    body:has(.membership-shell) .pricing-table td {
        padding: 0.4rem !important;
    }
}

/* Definitieve fotoverhouding voor aanbodkaarten (moet na alle compacte regels staan). */
body.offer-page .training-option,
body.offer-page .service-item {
    padding: 0 !important;
    overflow: hidden !important;
}

body.offer-page .training-option .option-image,
body.offer-page .service-item .service-image {
    width: 100% !important;
    height: 190px !important;
    min-height: 190px !important;
    max-height: 190px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

body.offer-page .training-option .option-image img,
body.offer-page .service-item .service-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}

body.offer-page .training-option .option-content,
body.offer-page .service-item .service-content,
body.offer-page .service-item > div[style*="padding: 2.5rem"] {
    padding: 1rem !important;
}

@media (max-width: 768px) {
    body.offer-page .training-option .option-image,
    body.offer-page .service-item .service-image {
        height: 180px !important;
        min-height: 180px !important;
        max-height: 180px !important;
    }
}
