/**
 * Component Styles - Horeca Academie
 */

/* ════════════════════════════════════════════════════════════
   ACCESSIBILITY — WordPress standard screen-reader-text
   ════════════════════════════════════════════════════════════ */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

/* ════════════════════════════════════════════════════════════
   SEO TAG RESETS — normalise heading elements used for semantics
   ════════════════════════════════════════════════════════════ */
.cta-card__title,
.faq-item__heading,
.site-footer__heading {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.review-card__blockquote {
    margin: 0;
    padding: 0;
}

.review-card__name {   /* now <cite> */
    font-style: normal;
}

/* WYSIWYG body text — auto-generated <p> tags inherit parent styles */
.intro-section__text p,
.about-section__text p,
.why-horeca-section__body p,
.usp-card__description p {
    margin: 0 0 1em 0;
    font: inherit;
    color: inherit;
    opacity: inherit;
}
.intro-section__text p:last-child,
.about-section__text p:last-child,
.why-horeca-section__body p:last-child,
.usp-card__description p:last-child {
    margin-bottom: 0;
}

.cta-card__subtitle {
    margin: 0;
}

/* ════════════════════════════════════════════════════════════
   BUTTON
   ════════════════════════════════════════════════════════════ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 100%;
    padding: 20px 24px;
    border-radius: 10px;
    cursor: pointer;
    transition: all var(--transition-fast);
    text-decoration: none;
    border: none;
    white-space: nowrap;
}

.btn--sm {
    padding: 12px 16px;
    font-size: 14px;
}

.btn--md {
    padding: 16px 24px;
    font-size: 16px;
}

.btn--lg {
    padding: 20px 24px;
    font-size: 16px;
}

.btn--primary {
    background-color: var(--color-secondary);
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--primary:hover {
    background-color: rgba(0, 143, 166, 1);
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--secondary {
    background-color: var(--color-secondary);
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--secondary:hover {
    background-color: rgba(0, 143, 166, 1);
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--outline {
    background-color: transparent;
    color: var(--color-white);
    border: 1px solid var(--color-white);
}

.btn--outline:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
}

.btn--ghost {
    background-color: transparent;
    color: var(--color-secondary);
}

.btn--ghost:hover {
    background-color: var(--color-bg-light);
    color: rgba(0, 143, 166, 1);
}

/* Outline Secondary (teal outline, teal text) */
.btn--outline-secondary {
    background-color: transparent;
    color: var(--color-secondary);
    border: 1.5px solid var(--color-secondary);
}

.btn--outline-secondary:hover {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

/* Primary Green (olive green bg, white text) */
.btn--primary-green {
    background-color: #6D7C25;
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--primary-green:hover {
    background-color: #5C6A1F;
    color: var(--color-white);
}

/* Outline Green (olive green border, olive text) */
.btn--outline-green {
    background-color: transparent;
    color: #6D7C25;
    border: 1.5px solid #6D7C25;
}

.btn--outline-green:hover {
    background-color: #6D7C25;
    color: var(--color-white);
}

/* Outline White (white border, white text — for dark backgrounds) */
.btn--outline-white {
    background-color: transparent;
    color: var(--color-white);
    border: 1.5px solid var(--color-white);
}

.btn--outline-white:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
}

/* Filled (teal bg, white text — alias for secondary with chevron style) */
.btn--filled {
    background-color: #006373;
    color: var(--color-white);
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
}

.btn--filled:hover {
    background-color: rgba(0, 143, 166, 1);
    color: var(--color-white);
}

.btn--disabled,
.btn:disabled {
    background-color: rgba(108, 108, 108, 1);
    color: rgba(236, 236, 236, 1);
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Header size (compact for nav bar) */
.btn--header {
    height: 42px;
    padding: 0 16px;
    font-size: 14px;
    font-family: var(--font-heading);
    font-weight: 700;
    border-radius: 8px;
}

.btn__icon {
    display: inline-flex;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

/* Mobile button sizing */
@media (max-width: 768px) {
    .btn {
        font-size: 14px;
        padding: 16px 20px;
        letter-spacing: 0.14px;
    }

    .btn--lg {
        padding: 16px 20px;
        font-size: 14px;
    }
}

/* ════════════════════════════════════════════════════════════
   ICON
   ════════════════════════════════════════════════════════════ */
.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
}

.icon svg {
    width: 100%;
    height: 100%;
}

/* ════════════════════════════════════════════════════════════
   BADGE
   ════════════════════════════════════════════════════════════ */
.badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-weight: var(--weight-medium);
    border-radius: var(--radius-full);
    white-space: nowrap;
}

.badge--sm {
    padding: var(--space-1) var(--space-3);
    font-size: var(--text-xs);
}

.badge--md {
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
}

.badge--primary {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.badge--secondary {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

.badge--outline {
    background-color: transparent;
    border: 1px solid var(--color-border);
    color: var(--color-text);
}

.badge--light {
    background-color: rgba(255, 255, 255, 0.9);
    color: var(--color-dark);
    backdrop-filter: blur(4px);
}

/* ════════════════════════════════════════════════════════════
   DIVIDER
   ════════════════════════════════════════════════════════════ */
.divider--horizontal {
    width: 100%;
    height: 1px;
    background-color: var(--color-text);
}

.divider--vertical {
    width: 1px;
    height: 8px;
    background-color: var(--color-text);
}

/* ════════════════════════════════════════════════════════════
   SPACER
   ════════════════════════════════════════════════════════════ */
.spacer,
.spacer-section {
    width: 100%;
    flex-shrink: 0;
    height: var(--spacer-height, 64px);
}

@media (max-width: 768px) {
    .spacer,
    .spacer-section {
        height: calc(var(--spacer-height, 64px) * 0.5) !important;
        min-height: 24px;
    }
}

/* ════════════════════════════════════════════════════════════
   CATEGORY TAB
   ════════════════════════════════════════════════════════════ */
.category-tab {
    display: flex;
    align-items: center;
    width: 322px;
    padding: 0 24px 0 32px;
    background-color: var(--color-primary);
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    color: var(--color-white);
    transition: all var(--transition-fast);
}

.category-tab::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: 0px -4px 0px 0px #0000002E inset;
    border-radius: 10px;
    z-index: 3;
    pointer-events: none;
}

.category-tab:hover {
    opacity: 0.9;
    color: var(--color-white);
}

.category-tab__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(109, 124, 37, 1) 0%,
        rgba(109, 124, 37, 0.85) 40%,
        rgba(109, 124, 37, 0.4) 70%,
        rgba(109, 124, 37, 0) 100%
    );
    z-index: 0;
}

.category-tab__text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 32px 0;
    flex-grow: 1;
    flex-shrink: 0;
    z-index: 1;
}

.category-tab__title {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: var(--color-white);
}

.category-tab__subtitle {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 150%;
    letter-spacing: 0.02em;
    color: var(--color-white);
    opacity: 0.8;
}

.category-tab__arrow {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    background-color: var(--color-primary);
    border-radius: 100px;
    flex-shrink: 0;
    z-index: 2;
    overflow: hidden;
}

/* ════════════════════════════════════════════════════════════
   COURSE CARD
   ════════════════════════════════════════════════════════════ */
.course-card {
    background-color: #fff;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-radius: 12px;
    border: 1px solid #ECECEC;
    overflow: hidden;
}

.course-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

/* Image area */
.course-card__image-area {
    background-color: #ECECEC;
    height: 230px;
    align-self: stretch;
    position: relative;
    overflow: hidden;
}

.course-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Language badge */
.course-card__language {
    position: absolute;
    top: 0;
    left: 10px;
    background-color: #fff;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border-radius: 0 0 4px 4px;
}

.course-card__flag-circle {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #012169;
    flex-shrink: 0;
}

.course-card__flag-circle svg {
    width: 30px;
    height: 30px;
    display: block;
    flex-shrink: 0;
}

.course-card__language-text {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 500;
    color: #121212;
    opacity: 0.8;
    line-height: 100%;
}

/* Date badges row */
.course-card__dates {
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    flex-direction: row;
    gap: 0;
}

.course-card__date {
    background-color: #D5A000;
    width: 48px;
    height: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    border-left: 1px solid rgba(0,0,0,0.08);
}

.course-card__dates .course-card__date:first-child {
    border-left: none;
}

.course-card__date-day {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: #121212;
    line-height: 100%;
    text-align: center;
}

.course-card__date-month {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: #121212;
    line-height: 100%;
    text-align: center;
    letter-spacing: 0.01em;
}

.course-card__date--more {
    background-color: #C49200;
}

.course-card__date--more .course-card__date-day {
    font-size: 16px;
}

/* Content area */
.course-card__content {
    min-height: 254px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 20px;
    flex: 1 0 auto;
    align-self: stretch;
}

.course-card__info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
    flex: 1 0 0;
}

.course-card__course-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    align-self: stretch;
}

/* Location row: type | location */
.course-card__location-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.course-card__type,
.course-card__location {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: #006373;
    line-height: 100%;
    letter-spacing: 0.01em;
}

.course-card__divider {
    width: 1px;
    height: 8px;
    background-color: #121212;
    opacity: 0.2;
}

.course-card__title {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    color: #032F36;
    line-height: 1.2;
    letter-spacing: 0.01em;
    align-self: stretch;
    margin: 0;
    min-height: 48px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Details row */
.course-card__details {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    flex-shrink: 0;
    align-self: stretch;
}

.course-card__details-row {
    display: flex;
    align-items: center;
    gap: 12px;
    align-self: stretch;
}

.course-card__details-row .course-card__detail {
    flex: 1 1 0;
}

.course-card__detail {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
}

.course-card__detail-icon {
    width: 20px;
    height: 20px;
    min-width: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-primary);
}

/* Override hardcoded SVG stroke colour so icons inherit Blue Dark */
.course-card__detail-icon svg,
.course-card__detail-icon svg path {
    stroke: currentColor;
}

.course-card__detail-text {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-dark, #032F36);
    line-height: 150%;
    letter-spacing: 0.02em;
}

/* Actions area */
.course-card__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    align-self: stretch;
    margin-top: auto;
}

.course-card__tag {
    background-color: #F7F7F7;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 8px;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 4px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: #032F36;
    line-height: 100%;
}

.course-card__cta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    padding: 16px;
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 8px;
    border: 1px solid #006373;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    color: #006373;
    line-height: 100%;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.course-card__cta:hover {
    background-color: rgba(0, 99, 115, 0.05);
}

.course-card__cta .icon {
    color: #006373;
}

/* Course Card — Mobile */
@media (max-width: 768px) {
    .course-card__image-area {
        height: 180px;
    }

    .course-card__content {
        height: auto;
        padding: 16px;
        gap: 16px;
    }

    .course-card__title {
        font-size: 18px;
        min-height: 0;
    }

    .course-card__info {
        gap: 16px;
    }

    .course-card__cta {
        padding: 12px;
        font-size: 13px;
    }
}

/* ════════════════════════════════════════════════════════════
   TESTIMONIAL
   ════════════════════════════════════════════════════════════ */
.testimonial {
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    border: 1px solid var(--color-border);
    height: 100%;
}

.testimonial__quote-container {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    flex: 1;
}

.testimonial__quote-icon {
    color: var(--color-primary);
}

.testimonial__text {
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
    color: var(--color-text);
    font-style: italic;
}

.testimonial__author {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.testimonial__avatar {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.testimonial__avatar--placeholder {
    background-color: var(--color-primary);
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--weight-bold);
    font-size: var(--text-lg);
}

.testimonial__author-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.testimonial__name {
    font-size: var(--text-sm);
    font-weight: var(--weight-bold);
    color: var(--color-dark);
    font-style: normal;
}

.testimonial__course {
    font-size: var(--text-xs);
    color: var(--color-text-muted);
}

/* ════════════════════════════════════════════════════════════
   FAQ ITEM
   ════════════════════════════════════════════════════════════ */
.faq-item {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 24px;
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 12px;
    max-width: 668px;
    cursor: pointer;
    transition: border-color 0.2s ease;
}

.faq-item:hover {
    border-color: #006373;
}

.faq-item:hover .faq-item__question {
    color: #006373;
}

.faq-item__number {
    display: none;
}

.faq-item__content {
    flex: 1;
}

.faq-item__question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    text-align: left;
    padding: 0;
    background: none;
    border: none;
    font-family: 'Museo', serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: #6d6d6d;
    cursor: pointer;
    gap: 16px;
    transition: color 0.2s ease;
}

.faq-item__toggle-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    transition: transform 0.3s ease;
}
.faq-item__toggle-icon .icon {
    width: 20px;
    height: 20px;
}

.faq-item--open .faq-item__toggle-icon {
    transform: rotate(180deg);
}

.faq-item__answer {
    overflow: hidden;
    transition: max-height 0.3s ease;
    will-change: max-height;
}

.faq-item__answer[hidden] {
    display: none;
}

.faq-item__answer-inner {
    padding-top: 0;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    opacity: 0.8;
}

/* ════════════════════════════════════════════════════════════
   INSTAGRAM ITEM
   ════════════════════════════════════════════════════════════ */
.instagram-item {
    position: relative;
    display: block;
    aspect-ratio: 1;
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.instagram-item__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.instagram-item__image--placeholder {
    background: linear-gradient(135deg, var(--color-bg-light), var(--color-border));
}

.instagram-item:hover .instagram-item__image {
    transform: scale(1.1);
}

.instagram-item__overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity var(--transition-base);
}

.instagram-item:hover .instagram-item__overlay {
    opacity: 1;
}

/* ════════════════════════════════════════════════════════════
   HEADER
   ════════════════════════════════════════════════════════════ */

/* -- Custom properties for header layout -- */
:root {
    --header-padding-x: 40px;
    --z-sticky: 200;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
    width: 100%;
    background-color: var(--color-white);
    transition: border-color 0.2s ease;
    border-bottom: 1px solid transparent;
}

/* Admin bar offset when logged in */
body.admin-bar .site-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar .site-header {
        top: 46px;
    }
}

.site-header--scrolled {
    border-bottom: 1px solid var(--color-border);
}

/* ── Logo (absolutely positioned, spans full header height) ── */
.site-header__logo-wrap {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: stretch;
}

.site-header__logo {
    display: flex;
    align-items: center;
    height: 100%;
}

.site-header__logo-link {
    display: flex;
    align-items: center;
    height: 100%;
    line-height: 0;
}

.site-header__logo-img {
    height: 100%;
    width: auto;
    display: block;
    object-fit: contain;
    aspect-ratio: 1 / 1;
}

/* White logo mark: hidden by default, shown on mobile transparent header */
.site-header__logo-img--white {
    display: none;
}

.site-header__logo .custom-logo-link {
    display: flex;
    align-items: center;
    height: 100%;
    line-height: 0;
}
.site-header__logo .custom-logo {
    height: 100%;
    width: auto;
    object-fit: contain;
    aspect-ratio: 1 / 1;
}

/* ── Shared inner row layout (full-width, no max-width) ─── */
.site-header__row-inner {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: none;
    padding-right: var(--header-padding-x);
}

/* ── Row 1: Subnav utility bar (full-width gray bg) ──────── */
.site-header__subnav {
    background-color: #F7F7F7;
    width: 100%;
}

.site-header__subnav .site-header__row-inner {
    justify-content: flex-end;
    /* left padding accounts for logo (logo starts at left:0, width ≈ header height + gap) */
    padding-left: 140px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.site-header__subnav-nav .subnav-menu {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.site-header__subnav-nav .subnav-menu > li {
    position: relative;
}

.site-header__subnav-nav .subnav-menu > li + li::before {
    content: '';
    display: inline-block;
    width: 1px;
    height: 16px;
    background-color: #CCC;
    margin: 0 16px;
    vertical-align: middle;
}

.site-header__subnav-nav .subnav-menu a {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: var(--weight-semibold);
    color: rgba(18, 18, 18, 1);
    text-decoration: none;
    line-height: 150%;
    transition: color var(--transition-fast);
}

.site-header__subnav-nav .subnav-menu a:hover {
    color: var(--color-secondary);
}

/* ── Row 2: Main header bar ──────────────────────────────── */
.site-header__main {
    background-color: var(--color-white);
    width: 100%;
    position: relative;
    z-index: 2;
}

.site-header__main .site-header__row-inner {
    gap: 24px;
    /* left padding accounts for logo (logo starts at left:0, width ≈ header height + gap) */
    padding-left: 140px;
    padding-top: 14px;
    padding-bottom: 12px;
}

/* ── Primary Navigation ──────────────────────────────────── */
.site-header__nav {
    flex: 1;
    min-width: 0;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-menu > li {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-menu > li > a {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: var(--weight-semibold);
    color: rgba(18, 18, 18, 1);
    text-decoration: none;
    line-height: 100%;
    display: flex;
    align-items: center;
    padding: 12px 24px;
    transition: color var(--transition-fast);
    white-space: nowrap;
}

.nav-menu > li:first-child > a {
    padding-left: 0;
}

.nav-menu > li > a {
    position: relative;
}

.nav-menu > li > a::before {
    content: '';
    position: absolute;
    bottom: -15px;
    left: 24px;
    right: 24px;
    height: 3px;
    background: var(--color-secondary);
    border-radius: 1px;
    transform: scaleX(0);
    transition: transform var(--transition-fast);
}

.nav-menu > li:first-child > a::before {
    left: 0;
}

.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-ancestor > a {
    color: var(--color-secondary);
}

.nav-menu > li > a:hover::before,
.nav-menu > li.current-menu-item > a::before,
.nav-menu > li.current-menu-ancestor > a::before {
    transform: scaleX(1);
}

.nav-menu > li.menu-item-has-children > a[href*="opleidingen"]::after {
    content: '';
    display: inline-block;
    width: 10px;
    height: 5px;
    margin-left: 8px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transition: transform var(--transition-fast);
}

.nav-menu__toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: rgba(18, 18, 18, 1);
    display: none; /* hidden on desktop — CSS ::after arrow is used instead */
    align-items: center;
    margin-left: -8px;
}

/* ── Dropdown / sub-menu ─────────────────────────────────── */
.nav-menu .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    background-color: var(--color-white);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 8px 0;
    list-style: none;
    margin: 0;
    z-index: 100;
}

.nav-menu > li.sub-menu-open > .sub-menu,
.nav-menu > li:focus-within > .sub-menu,
.nav-menu > li.menu-item-has-children:hover > .sub-menu {
    display: block;
}

/* Long dropdowns (e.g. team members, locations) stay usable */
.nav-menu .sub-menu {
    max-height: min(70vh, 520px);
    overflow-y: auto;
}

.nav-menu .sub-menu li a {
    display: block;
    padding: 10px 20px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    color: rgba(18, 18, 18, 1);
    text-decoration: none;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    white-space: nowrap;
}

.nav-menu .sub-menu li a:hover,
.nav-menu .sub-menu li.current-menu-item a {
    background-color: rgba(0, 99, 115, 0.06);
    color: var(--color-secondary);
}

.nav-menu > li.mega-menu-open.menu-item-has-children > a::after {
    transform: rotate(180deg);
}

/* Native sub-menus are backend-only (used to build the admin nav tree).
   They never expand on the front-end; only the Aanbod mega menu shows. */
.nav-menu > li.menu-item-has-children .sub-menu {
    display: none !important;
}

/* ── Mega Menu ──────────────────────────────────────────── */
.mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    background: #fff;
    border-top: 3px solid var(--color-secondary);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.12);
    z-index: 999;
    display: none;
    opacity: 0;
    transition: opacity 0.25s ease;
    overflow: hidden;
}

.mega-menu[aria-hidden="false"] {
    display: block;
    opacity: 1;
}

.mega-menu__inner {
    max-width: 1440px;
    margin: 0 auto;
    display: flex;
    min-height: 520px;
}



/* Sidebar */
.mega-menu__sidebar {
    width: 362px;
    min-width: 362px;
    background: var(--color-bg-light);
    padding: 40px 24px 40px 40px;
    display: flex;
    flex-direction: column;
    position: relative;
}

.mega-menu__sidebar::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    width: 100vw;
    height: 100%;
    background: var(--color-bg-light);
}

.mega-menu__sidebar-title {
    font-family: var(--font-heading);
    font-weight: var(--weight-bold);
    font-size: 18px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--color-dark);
    margin: 0 0 12px 0;
}

.mega-menu__tabs {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.mega-menu__tab {
    display: flex;
    flex-direction: column;
    padding: 14px 16px;
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
    border: none;
    text-align: left;
    width: 100%;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.mega-menu__tab:hover {
    background: rgba(0, 99, 115, 0.06);
}

.mega-menu__tab--active {
    background: var(--color-secondary) !important;
}

.mega-menu__tab-name {
    font-family: var(--font-heading);
    font-weight: var(--weight-bold);
    font-size: 17px;
    color: var(--color-text);
    line-height: 1.3;
}

.mega-menu__tab--active .mega-menu__tab-name {
    color: #fff;
}

.mega-menu__tab-desc {
    font-family: var(--font-body);
    font-weight: var(--weight-regular);
    font-size: 14px;
    color: var(--color-text);
    opacity: 0.6;
    margin-top: 2px;
}

.mega-menu__tab--active .mega-menu__tab-desc {
    color: #fff;
    opacity: 0.8;
}

.mega-menu__sidebar-cta {
    margin-top: 24px;
}

.mega-menu__sidebar-cta .btn {
    width: 100%;
    justify-content: center;
    font-size: 15px;
    padding: 14px 20px;
}

/* Panels (right side) */
.mega-menu__panels {
    flex: 1;
    position: relative;
    display: grid;
}

.mega-menu__panel {
    grid-row: 1;
    grid-column: 1;
    display: flex;
    gap: 48px;
    padding: 40px 40px 40px 48px;
    visibility: hidden;
}

.mega-menu__panel--active {
    visibility: visible;
}

/* Course column */
.mega-menu__course-col {
    flex: 1;
    min-width: 0;
}

.mega-menu__col-title {
    font-family: var(--font-heading);
    font-weight: var(--weight-bold);
    font-size: 18px;
    letter-spacing: 0;
    text-transform: none;
    color: var(--color-dark);
    margin: 0 0 16px 0;
}

.mega-menu__course-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px 0;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 364px);
    overflow: hidden;
}

/* When a category has many courses, flow into 2 columns to fit more
   before the viewport-based max-height clips the rest. */
.mega-menu__course-col .mega-menu__course-list:has(> li:nth-child(8)) {
    display: block;
    columns: 2;
    column-gap: 24px;
}

.mega-menu__course-col .mega-menu__course-list:has(> li:nth-child(8)) li {
    break-inside: avoid;
}

.mega-menu__course-list li a {
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 16px;
    font-family: var(--font-body);
    font-weight: var(--weight-semibold);
    font-size: 16px;
    color: var(--color-text);
    text-decoration: none;
    border-radius: 4px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

.mega-menu__course-list li a:hover {
    color: var(--color-secondary);
    background-color: rgba(0, 99, 115, 0.06);
}

.mega-menu__panel-cta .btn {
    font-size: 14px;
    padding: 10px 20px;
}

/* English column */
.mega-menu__english-col {
    width: 280px;
    min-width: 240px;
    padding-left: 48px;
}

.mega-menu__english-col .mega-menu__course-list li a {
    display: flex;
    align-items: center;
    gap: 10px;
}

.mega-menu__flag-icon {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.mega-menu__flag-icon svg,
.mega-menu__flag-icon img {
    width: 22px;
    height: 22px;
}

/* Hover state for nav trigger */
.nav-menu > li.mega-menu-open > a {
    color: var(--color-secondary);
}

.nav-menu > li.mega-menu-open > a::before {
    transform: scaleX(1);
}

.nav-menu > li.mega-menu-open > a::after {
    transform: rotate(180deg);
}

/* Responsive: hide mega menu on mobile */
@media (max-width: 1024px) {
    .mega-menu {
        display: none !important;
    }
}

/* ── Header actions (lang + buttons) ─────────────────────── */
.site-header__actions {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
    margin-left: auto;
}

.site-header__lang-link {
    display: flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: var(--weight-semibold);
    color: rgba(18, 18, 18, 1);
    white-space: nowrap;
    transition: color var(--transition-fast);
}

.site-header__lang-link:hover {
    color: var(--color-secondary);
}

.site-header__lang-flag {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

.site-header__lang-flag .icon {
    width: 22px;
    height: 22px;
}

.site-header__buttons {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ── Mobile toggle ───────────────────────────────────────── */
.site-header__mobile-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-2);
    margin-left: auto;
    gap: 8px;
}

.site-header__mobile-toggle-label {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: var(--weight-semibold);
    line-height: 1;
    display: none; /* hidden on desktop, shown on mobile */
}

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 24px;
}

.hamburger span {
    display: block;
    height: 2px;
    background-color: var(--color-dark);
    border-radius: 1px;
    transition: all var(--transition-base);
}

.site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(2) {
    opacity: 0;
}
.site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile: restore all 3 spans for X animation */
@media (max-width: 768px) {
    .site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(2) {
        display: block;
        opacity: 0;
    }
    .site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }
    .site-header__mobile-toggle[aria-expanded="true"] .hamburger span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }
}

/* ── Mobile nav drawer (Figma 653:20908) ─────────────────── */
.mobile-drawer {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999; /* must sit above every page-level z-index (sticky filters, CTAs, etc.) */
    background: #ECECEC;
    flex-direction: column;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.mobile-drawer[aria-hidden="false"] {
    display: flex;
}

/* Sticky header inside drawer: close button only (no logo per Figma 602:25810) */
.mobile-drawer__header {
    /* Hidden: the site-header's own toggle stays visible above the drawer
       and morphs into the X, so the "Menu" button doesn't jump position. */
    display: none;
}

.mobile-drawer__close {
    display: flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
    color: #121212;
}

.mobile-drawer__close-label {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: #121212;
}

.mobile-drawer__close svg {
    width: 18px;
    height: 18px;
}

/* Scrollable content area */
.mobile-drawer__scroll {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Top padding leaves room for the site-header toggle that now overlays the drawer. */
    padding: 88px 20px 24px;
}

.mobile-drawer__nav {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* ── Category card list ── */
.mobile-drawer__categories {
    background: #fff;
    border-radius: 6px;
    padding: 8px 0;
    display: flex;
    flex-direction: column;
}

.mobile-drawer__cat-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    text-decoration: none;
    color: inherit;
    transition: background-color var(--transition-fast);
}

.mobile-drawer__cat-link:hover {
    background-color: rgba(0, 0, 0, 0.02);
    color: inherit;
}

.mobile-drawer__cat-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.mobile-drawer__cat-title {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.18px;
    color: #000;
}

.mobile-drawer__cat-desc {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: #000;
    opacity: 0.8;
}

.mobile-drawer__cat-arrow {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mobile-drawer__cat-arrow svg {
    width: 17px;
    height: 17px;
}

/* ── Dividers ── */
.mobile-drawer__divider {
    height: 1px;
    background-color: var(--color-border);
    width: 100%;
}

.mobile-drawer__categories .mobile-drawer__divider {
    margin: 0 12px;
    width: calc(100% - 24px);
}

/* ── Plain links group ── */
.mobile-drawer__links {
    display: flex;
    flex-direction: column;
}

.mobile-drawer__links .mobile-drawer__divider {
    margin: 0;
    width: 100%;
}

.mobile-drawer__links .mobile-drawer__divider:last-child {
    display: none;
}

/* ── Plain links ── */
.mobile-drawer__link {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.5;
    color: #121212;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 0;
}

.mobile-drawer__link:hover {
    color: var(--color-secondary);
}

.mobile-drawer__link--english {
    gap: 6px;
}

.mobile-drawer__flag {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
}

/* ── Bottom sticky bar ── */
.mobile-drawer__bottom {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px;
    background: #fff;
    box-shadow: 0px -1px 11px 0px rgba(0, 0, 0, 0.1);
}

.mobile-drawer__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 42px;
    border-radius: 8px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.14px;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.mobile-drawer__btn--outline {
    padding: 0 16px;
    border: 1px solid var(--color-secondary);
    background: transparent;
    color: var(--color-secondary);
    flex-shrink: 0;
}

.mobile-drawer__btn--outline:hover {
    background: rgba(0, 99, 115, 0.06);
    color: var(--color-secondary);
}

.mobile-drawer__btn--filled {
    flex: 1;
    padding: 0 14px;
    background: var(--color-secondary);
    color: #fff;
    border: none;
    box-shadow: inset 0px -4px 0px 0px rgba(0, 0, 0, 0.18);
}

.mobile-drawer__btn--filled:hover {
    background: var(--color-secondary-dark);
    color: #fff;
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 1024px) {
    :root {
        --header-padding-x: 24px;
    }

    .site-header__subnav .site-header__row-inner,
    .site-header__main .site-header__row-inner {
        padding-left: 80px;
    }

    .site-header__main .site-header__row-inner {
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .site-header__nav,
    .site-header__actions {
        display: none;
    }

    .site-header__mobile-toggle {
        display: flex;
        align-items: center;
    }
}

@media (max-width: 600px) {
    :root {
        --header-padding-x: 16px;
    }

    .site-header__subnav {
        display: none;
    }

    .site-header__subnav .site-header__row-inner,
    .site-header__main .site-header__row-inner {
        padding-left: 56px;
    }
}

/* ── Mobile transparent header (matches Figma 488:50787) ── */
@media (max-width: 768px) {
    .site-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background-color: transparent;
        border-bottom: 1px solid transparent;
        transition: background-color 0.3s ease, border-color 0.3s ease;
    }

    .site-header__subnav {
        display: none;
    }

    .site-header__main {
        background-color: transparent;
    }

    .site-header__main .site-header__row-inner {
        padding-top: 10px;
        padding-bottom: 10px;
        padding-left: 72px; /* 56px logo + 16px gap */
    }

    /* Logo: show full teal logo at 56px per Figma (visible on any bg) */
    .site-header__logo-img--default {
        display: block;
        height: 56px;
        width: 56px;
    }

    .site-header__logo-img--white {
        display: none;
    }

    .site-header__logo-img,
    .site-header__logo .custom-logo {
        height: 56px;
        width: 56px;
    }

    .site-header__mobile-toggle {
        color: #fff;
        transition: color 0.3s ease;
    }

    .site-header__mobile-toggle-label {
        display: inline;
        color: #fff;
        font-size: 15px;
        font-weight: var(--weight-regular);
        transition: color 0.3s ease;
    }

    .hamburger span {
        background-color: #fff;
        transition: background-color 0.3s ease, transform var(--transition-base), opacity var(--transition-base);
    }

    /* 2-line hamburger per Figma: hide middle span */
    .hamburger {
        width: 20px;
        gap: 6px;
    }

    .hamburger span:nth-child(2) {
        display: none;
    }

    /* ── Scrolled state: solid white header ── */
    .site-header--scrolled {
        background-color: var(--color-white);
        border-bottom: 1px solid var(--color-border);
    }

    .site-header--scrolled .site-header__main {
        background-color: var(--color-white);
    }

    .site-header--scrolled .site-header__mobile-toggle {
        color: var(--color-dark);
    }

    .site-header--scrolled .site-header__mobile-toggle-label {
        color: var(--color-dark);
    }

    .site-header--scrolled .hamburger span {
        background-color: var(--color-dark);
    }

    /* ── Menu-open state: hide header bar + logo, keep toggle in place ── */
    .site-header.mobile-menu-open {
        background-color: transparent;
        /* Sit above the drawer (drawer is z-index:9999) so the toggle stays
           clickable in its original position and morphs from ☰ to ✕. */
        z-index: 10000;
    }

    .site-header.mobile-menu-open .site-header__main {
        background-color: transparent;
    }

    /* Hide the bar's contents but NOT the toggle button — that needs to remain
       in the exact same spot so it doesn't appear to "jump". */
    .site-header.mobile-menu-open .site-header__nav,
    .site-header.mobile-menu-open .site-header__actions {
        visibility: hidden;
        pointer-events: none;
    }

    .site-header.mobile-menu-open .site-header__logo-wrap {
        visibility: hidden;
        pointer-events: none;
    }

    /* Force the toggle to be dark on the light drawer background. */
    .site-header.mobile-menu-open .site-header__mobile-toggle,
    .site-header.mobile-menu-open .site-header__mobile-toggle-label {
        color: var(--color-dark);
    }
    .site-header.mobile-menu-open .hamburger span {
        background-color: var(--color-dark);
    }
}

/* ── Body scroll-lock when mobile menu is open ──────────── */
html.menu-lock,
html.menu-lock body {
    overflow: hidden !important;
    overscroll-behavior: none;
    /* Note: deliberately NOT setting position:fixed here — fixing the body and
       restoring scrollTo on close caused a visible scroll-jump animation. */
}

/* ════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════ */
.site-footer {
    background-color: #ffffff;
    color: #121212;
    padding: 64px 0 16px;
    overflow-x: hidden;
}

.site-footer__inner {
    max-width: var(--container-max);
    margin: 0 auto;
}

.site-footer__links {
    display: flex;
    gap: 24px;
    margin-bottom: 0;
}

.site-footer__column {
    flex: 0 0 207px;
}

.site-footer__column--contact {
    flex: 1;
}

.site-footer__column--social {
    flex: 0 0 132px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.site-footer__heading {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: #032F36;
    margin-bottom: 24px;
    text-transform: none;
    letter-spacing: 0;
}

.site-footer__heading--spaced {
    margin-top: 48px;
}

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

.footer-menu li {
    line-height: 40px;
    margin-bottom: 0;
}

.footer-menu li a {
    color: #121212;
    font-family: var(--font-body);
    font-size: 16px;
    letter-spacing: 0.16px;
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-menu li a:hover {
    color: #006373;
}

.site-footer__address {
    font-family: var(--font-body);
    font-size: 16px;
    font-style: normal;
    color: #121212;
    line-height: 1.5;
    letter-spacing: 0.16px;
}

.site-footer__address strong {
    font-weight: 700;
}

/* Social pill badges */
.site-footer__pill {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: #EFF9FC;
    color: #006373;
    border-radius: 100px;
    padding: 12px 16px;
    font-family: var(--font-body);
    font-size: 16px;
    text-decoration: none;
    transition: background-color var(--transition-fast), transform var(--transition-fast);
    white-space: nowrap;
    max-width: 100%;
}

.site-footer__pill:hover {
    background-color: #D9F0F6;
    transform: translateY(-1px);
}

.site-footer__pill svg {
    flex-shrink: 0;
}

/* Divider */
.site-footer__divider {
    height: 1px;
    background: #ECECEC;
    margin: 64px 0 0;
}

/* Bottom bar */
.site-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 24px;
    padding-bottom: 0;
    gap: 24px;
}

.site-footer__logos {
    display: flex;
    align-items: center;
    gap: 16px;
}

.site-footer__logo-link {
    display: flex;
    align-items: center;
}

.site-footer__logo-img {
    height: 32px;
    width: auto;
}

.site-footer__logo--ha .site-footer__logo-img {
    height: 40px;
}

.site-footer__legal {
    display: flex;
    align-items: center;
    gap: 24px;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: #6d6d6d;
    letter-spacing: 0.12px;
}

.site-footer__legal a {
    color: #999999;
    text-decoration: none;
    transition: color var(--transition-fast);
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.site-footer__legal a:hover {
    color: #6d6d6d;
}

.site-footer__legal span {
    color: #999999;
}

.site-footer__legal-sep {
    display: none;
}

@media (max-width: 1024px) {
    .site-footer {
        padding: 48px 0 16px;
    }

    .site-footer__links {
        flex-wrap: wrap;
        gap: 32px;
    }

    .site-footer__column {
        flex: 0 0 calc(50% - 16px);
    }

    .site-footer__column--contact {
        flex: 0 0 calc(50% - 16px);
    }

    .site-footer__column--social {
        flex: 0 0 100%;
        flex-direction: row;
        justify-content: flex-start;
    }

    .site-footer__divider {
        margin-top: 48px;
    }
}

/* Footer accordion toggle — looks like h2 by default on desktop */
.site-footer__accordion-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    cursor: default;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    color: #032F36;
    margin-bottom: 24px;
    text-transform: none;
    letter-spacing: 0;
    text-align: left;
}

.site-footer__accordion-toggle.site-footer__heading--spaced {
    margin-top: 48px;
}

.site-footer__chevron {
    display: none;
}

@media (max-width: 640px) {
    .site-footer {
        padding: 48px 0 16px;
    }

    .site-footer__links {
        flex-direction: column;
        gap: 0;
    }

    .site-footer__column,
    .site-footer__column--contact {
        flex: 1 1 100%;
        border-bottom: 1px solid #ECECEC;
    }

    .site-footer__column--social {
        flex: 1 1 100%;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        border-bottom: none;
        padding: 24px 0;
    }

    .site-footer__accordion-toggle {
        cursor: pointer;
        padding: 20px 0;
        margin-bottom: 0;
    }

    .site-footer__accordion-toggle.site-footer__heading--spaced {
        margin-top: 0;
        border-top: 1px solid #ECECEC;
    }

    .site-footer__chevron {
        display: block;
        flex-shrink: 0;
        transition: transform 0.25s ease;
        color: #032F36;
    }

    .site-footer__accordion-toggle[aria-expanded="true"] .site-footer__chevron {
        transform: rotate(180deg);
    }

    .site-footer__accordion-content {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
        will-change: max-height;
    }

    .site-footer__accordion-toggle[aria-expanded="true"] + .site-footer__accordion-content {
        max-height: 500px;
    }

    .site-footer__accordion-content .footer-menu {
        padding-bottom: 20px;
    }

    .site-footer__accordion-content .site-footer__address {
        padding-bottom: 20px;
    }

    .site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        text-align: left;
    }

    .site-footer__legal {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 12px;
    }

    .site-footer__logos {
        justify-content: flex-start;
    }
}

/* ════════════════════════════════════════════════════════════
   HERO SECTION
   ════════════════════════════════════════════════════════════ */
.hero-section {
    position: relative;
    width: 100%;
    height: 788px;
    display: flex;
    align-items: flex-start;
    overflow: hidden;
    background-color: var(--color-dark);
}

.hero-section__video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 60%;
    height: 100%;
    background: linear-gradient(
        to right,
        rgba(18, 18, 18, 1) 0%,
        rgba(18, 18, 18, 0) 56%
    );
    z-index: 1;
    pointer-events: none;
}

.hero-section__content {
    position: relative;
    z-index: 2;
    width: 591px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 64px;
    padding-top: 316px;
    padding-left: 40px;
}

.hero-section__heading {
    font-family: var(--font-heading);
    font-size: 42px;
    font-weight: 900;
    color: var(--color-white);
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.hero-section__subheading {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    color: var(--color-white);
    line-height: 150%;
    max-width: 375px;
    margin: -32px 0 0 0;
}

.hero-section__actions {
    margin: 0;
}

@media (max-width: 1024px) {
    .hero-section {
        height: 600px;
    }

    .hero-section__content {
        padding-top: 200px;
        width: 100%;
        max-width: 540px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

@media (max-width: 768px) {
    .hero-section {
        height: auto;
        min-height: 573px;
        align-items: flex-end;
    }

    .hero-section::before {
        width: 100%;
        background: rgba(18, 18, 18, 0.32);
    }

    .hero-section__content {
        padding: 140px 16px 60px;
        gap: 24px;
        align-items: flex-start;
        text-align: left;
        width: 100%;
        max-width: 100%;
    }

    .hero-section__heading {
        font-size: 32px;
        line-height: 1.1;
        letter-spacing: 0.32px;
    }

    .hero-section__subheading {
        max-width: 100%;
        margin: 0;
    }

    .hero-section__actions {
        align-self: flex-start;
        margin-top: 24px;
    }
}

/* ════════════════════════════════════════════════════════════
   FEATURE HIGHLIGHTS SECTION
   ════════════════════════════════════════════════════════════ */
.feature-highlights {
    background-color: var(--color-dark);
    padding: var(--space-6) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.feature-highlights__grid {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-6);
    flex-wrap: wrap;
}

.feature-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    text-align: center;
    flex: 1;
    min-width: 120px;
}

.feature-block__icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    flex-shrink: 0;
}

.feature-block__label {
    font-family: var(--font-heading);
    font-size: var(--text-sm);
    font-weight: var(--weight-regular);
    color: rgba(255, 255, 255, 0.8);
    line-height: var(--leading-snug);
}

@media (max-width: 768px) {
    .feature-highlights__grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: var(--space-4);
    }
}

@media (max-width: 480px) {
    .feature-highlights__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ════════════════════════════════════════════════════════════
   COURSE GRID SECTION
   ════════════════════════════════════════════════════════════ */
.course-grid-section {
    background-color: #F7F7F7;
    width: 100%;
    padding: 80px var(--container-padding);
}

@media (max-width: 1024px) {
    .course-grid-section { padding: 64px 24px; }
}

.course-grid-section__inner {
    max-width: calc(var(--container-max) - 2 * var(--container-padding));
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 56px;
}

.course-grid-section__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
}

.course-grid-section__heading {
    font-family: var(--font-heading);
    font-size: 36px;
    font-weight: 700;
    color: #121212;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.course-grid-section__subheading {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    align-self: stretch;
    margin: 0;
}

.course-grid-section__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
}

/* Tabs */
.course-grid-section__tabs {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.course-grid-section__tab {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4px;
    padding: 10px 20px;
    border-radius: 100px;
    border: 1px solid #ECECEC;
    background-color: #fff;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: #032F36;
    line-height: 150%;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.course-grid-section__tab:hover {
    border-color: #006373;
    color: #006373;
}

.course-grid-section__tab--active {
    background-color: #006373;
    border-color: #006373;
    color: #fff;
}

.course-grid-section__tab--active:hover {
    background-color: #004a57;
    border-color: #004a57;
    color: #fff;
}

/* Cards row — container for tab panels or direct card wraps */
.course-grid-section__cards {
    display: flex;
    gap: 24px;
    align-self: stretch;
    overflow-x: auto;
    scrollbar-width: none;
    scroll-behavior: smooth;
    -ms-overflow-style: none;
}
.course-grid-section__cards::-webkit-scrollbar {
    display: none;
}
.course-grid-section__card-wrap {
    flex: 0 0 calc(25% - 18px);
    display: flex;
    min-width: 0;
}


/* Card wrapper for tab filtering */


.course-grid-section__card-wrap .course-card {
    flex: 1 1 0;
    min-width: 0;
}

/* Tab panels — only the active one is rendered as grid */
.course-grid-section__panel {
    display: none;
    grid-column: 1 / -1;
}

.course-grid-section__panel--active {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
    width: 100%;
}

.course-grid-section__empty {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--color-text-muted, #6D6D6D);
    font-size: 15px;
    padding: 0;
}

/* Actions — right aligned */
.course-grid-section__actions {
    display: flex;
    justify-content: flex-end;
    align-self: stretch;
}

/* Arrow navigation — hidden on desktop, shown on mobile */
.course-grid-section__nav {
    display: flex;
    align-items: center;
    gap: 24px;
    width: 100%;
}
.course-grid-section__nav-divider {
    flex: 1;
    height: 2px;
    background: #ececec;
}
.course-grid-section__nav-buttons {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}
.course-grid-section__nav-btn {
    width: 56px;
    height: 56px;
    border-radius: 100px;
    border: 0.875px solid #ececec;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #121212;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
    padding: 0;
}
.course-grid-section__nav-btn:hover {
    border-color: #006373;
}
.course-grid-section__nav-btn svg {
    width: 24px;
    height: 24px;
}

@media (max-width: 1200px) {
    .course-grid-section__cards {
        grid-template-columns: repeat(2, 1fr);
    }
    .course-grid-section__panel--active {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .course-grid-section {
        padding: 48px 16px;
    }
    .course-grid-section__inner {
        gap: 32px;
    }
    .course-grid-section__header {
        padding: 0;
    }
    .course-grid-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }
    .course-grid-section__subheading {
        font-size: 15px;
    }
    .course-grid-section__tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 8px;
        padding: 0 0 4px;
    }
    .course-grid-section__tabs::-webkit-scrollbar {
        display: none;
    }
    .course-grid-section__tab {
        white-space: nowrap;
        flex-shrink: 0;
        padding: 8px 16px;
        font-size: 13px;
    }
    .course-grid-section__cards {
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-wrap: nowrap;
        gap: 16px;
        padding: 0 0 8px;
    }
    .course-grid-section__cards::-webkit-scrollbar {
        display: none;
    }
    .course-grid-section__panel--active {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 16px;
        width: 100%;
    }
    .course-grid-section__panel--active::-webkit-scrollbar {
        display: none;
    }
    .course-grid-section__card-wrap {
        flex: 0 0 322px;
        min-width: 322px;
    }
    .course-grid-section__actions {
        padding: 0;
        justify-content: center;
    }


}

/* ════════════════════════════════════════════════════════════
   CTA CARDS SECTION — 3-card icon row
   ════════════════════════════════════════════════════════════ */
.cta-cards-section {
    background-color: #F7F7F7;
    padding: 64px 0;
}

.cta-cards-section__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.cta-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background-color: #FFFFFF;
    border-radius: 10px;
    padding: 32px 24px;
    position: relative;
    text-decoration: none;
    color: inherit;
    transition: box-shadow var(--transition-fast);
    min-height: 144px;
    box-sizing: border-box;
}

.cta-card::after {
    content: none;
}

.cta-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.cta-card__icon-wrap {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background-color: #f2f9ea;
    border: 1px solid rgba(109, 124, 37, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #6D7C25;
}

.cta-card__text {
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.cta-card__title {
    font-family: 'Museo', serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    color: #6D7C25;
}

.cta-card__subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 130%;
    color: #121212;
    opacity: 0.8;
}

.cta-card__arrow {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #6D7C25;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

@media (max-width: 1024px) {
    .cta-cards-section__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

@media (max-width: 768px) {
    .cta-cards-section {
        padding: 32px 0;
    }

    .cta-card {
        padding: 24px 20px;
        min-height: auto;
        gap: 12px;
    }

    .cta-card__title {
        font-size: 18px;
    }

    .cta-card__subtitle {
        font-size: 15px;
    }

    .cta-card__arrow {
        width: 40px;
        height: 40px;
    }

    .cta-card__icon-wrap {
        width: 36px;
        height: 36px;
    }
}

/* ════════════════════════════════════════════════════════════
   TESTIMONIALS / REVIEW BLOCK SECTION
   ════════════════════════════════════════════════════════════ */
.testimonials-section {
    background-color: #F7F7F7;
    width: 100%;
    padding: 80px 0;
    overflow: hidden;
    position: relative;
}

.testimonials-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 64px;
    position: relative;
    z-index: 1;
}

/* Header ------------------------------------------------- */
.testimonials-section__header {
    max-width: 899px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
}

.testimonials-section__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

.testimonials-section__stars {
    display: flex;
    align-items: center;
    gap: 4.8px;
}

.testimonials-section__stars svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.testimonials-section__subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #6C6C6C;
    margin: 0;
}

.testimonials-section__link {
    color: #006373;
    font-weight: 700;
    text-decoration: none;
}

.testimonials-section__link:hover {
    text-decoration: underline;
}

.testimonials-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #000000;
    margin: 0;
}

.testimonials-section__highlight {
    color: #D5A000;
}

/* Carousel ----------------------------------------------- */
.testimonials-section__carousel {
    position: relative;
    overflow: hidden;
    /* Left padding matches inner container alignment */
    padding-left: max(40px, calc((100% - 1360px) / 2 + 40px));
    margin-top: 64px;
    z-index: 1;
}

.testimonials-section::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 300px;
    height: 255px;
    background-color: #D5A000;
    z-index: 0;
    pointer-events: none;
}

.testimonials-section__track {
    position: relative;
    z-index: 1;
}

.testimonials-section__track {
    display: flex;
    gap: 16px;
    transition: transform var(--duration-slow) var(--ease-out-quart);
}

.testimonials-section__slide {
    flex: 0 0 437px;
    min-width: 0;
}

/* Review Card -------------------------------------------- */
.review-card {
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 64px;
    padding: 40px;
    border-radius: 24px;
    border: 1px solid #ECECEC;
    height: 100%;
    box-sizing: border-box;
    box-shadow: 0px -4px 0px 0px #0000002E inset;
}

.review-card__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    flex: 1;
    width: 100%;
}

.review-card__stars {
    display: flex;
    align-items: center;
    gap: 5.28px;
}

.review-card__stars svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.review-card__quote {
    font-family: 'Museo', serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 130%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.review-card__divider {
    width: 100%;
    height: 1px;
    background-color: #ECECEC;
    flex-shrink: 0;
}

.review-card__author {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    opacity: 0.8;
}

.review-card__avatar {
    width: 64px;
    height: 64px;
    border-radius: 100px;
    background-color: #D5A000;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.review-card__avatar img {
    width: 90px;
    height: 106px;
    object-fit: cover;
}

.review-card__avatar-placeholder {
    font-family: 'Museo', serif;
    font-size: 24px;
    font-weight: 700;
    color: #FFFFFF;
}

.review-card__author-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    flex: 1;
}

.review-card__name {
    font-family: 'Museo', serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
}

.review-card__role {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #6C6C6C;
}

/* Navigation --------------------------------------------- */
.testimonials-section__nav {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 32px;
    margin-top: 64px;
}

.testimonials-section__divider {
    flex: 1;
    height: 2px;
    background-color: #ECECEC;
}

.testimonials-section__buttons {
    display: flex;
    align-items: center;
    gap: 12px;
}

.testimonials-section__arrow {
    width: 64px;
    height: 64px;
    border-radius: 100px;
    border: 1px solid #ECECEC;
    background-color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all var(--transition-fast);
    padding: 0;
    flex-shrink: 0;
}

.testimonials-section__arrow:hover {
    border-color: #121212;
}

.testimonials-section__arrow svg {
    width: 24px;
    height: 24px;
    color: #121212;
}

/* Responsive --------------------------------------------- */
@media (max-width: 1200px) {
    .testimonials-section__slide {
        flex: 0 0 380px;
    }
}

@media (max-width: 1024px) {
    .testimonials-section {
        padding: 60px 0;
    }

    .testimonials-section__inner {
        gap: 48px;
        padding: 0 24px;
    }

    .testimonials-section__heading {
        font-size: 28px;
    }

    .testimonials-section__slide {
        flex: 0 0 340px;
    }

    .testimonials-section__carousel {
        padding-left: 24px;
    }

    .review-card__quote {
        font-size: 20px;
    }

    .review-card__name {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .testimonials-section {
        padding: 48px 0;
    }

    .testimonials-section__inner {
        gap: 32px;
        padding: 0 16px;
    }

    .testimonials-section__heading {
        font-size: 24px;
    }

    .testimonials-section__slide {
        flex: 0 0 300px;
    }

    .testimonials-section__carousel {
        padding-left: 16px;
    }

    .review-card {
        padding: 24px;
        gap: 32px;
        border-radius: 16px;
    }

    .review-card__quote {
        font-size: 18px;
    }

    .review-card__name {
        font-size: 22px;
    }

    .testimonials-section__arrow {
        width: 48px;
        height: 48px;
    }

    .testimonials-section__nav {
        gap: 16px;
    }
}

/* ════════════════════════════════════════════════════════════
   FAQ SECTION — Two-column: contact left, questions right
   ════════════════════════════════════════════════════════════ */
.faq-section {
    padding: 64px var(--container-padding);
    background-color: #F7F7F7;
}

.faq-section__inner {
    max-width: calc(var(--container-max) - 2 * var(--container-padding));
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 48px;
    background-color: #ffffff;
    border-radius: 12px;
    padding: 64px;
    overflow: hidden;
}

/* Left sidebar */
.faq-section__sidebar {
    width: 438px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.faq-section__header {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.faq-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.faq-section__heading-accent {
    color: #006373;
}

.faq-section__subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

/* Contact items */
.faq-section__contact {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.faq-section__contact-text-mobile {
    display: none;
}

.faq-section__contact-item {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    padding: 16px;
    border: 1px solid #ECECEC;
    border-radius: 4px;
    text-decoration: none;
    color: #6D6D6D;
    background-color: transparent;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 150%;
    transition: border-color 0.2s ease, color 0.2s ease, text-decoration 0.2s ease;
}

.faq-section__contact-item:hover {
    border-color: #006373;
}

.faq-section__contact-item--email {
    color: #6D6D6D;
    background-color: transparent;
    text-decoration: none;
}

.faq-section__contact-item--email:hover {
    border-color: #006373;
    color: #006373;
    text-decoration: underline;
}

.faq-section__contact-item svg {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: #006373;
}

.faq-section__contact-item svg path {
    fill: #006373;
    stroke: none;
}



/* Right: FAQ list */
.faq-section__list {
    flex: 1;
    max-width: 668px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

@media (max-width: 1024px) {
    .faq-section {
        padding: 56px 24px;
        background-color: #F7F7F7;
    }

    .faq-section__inner {
        flex-direction: column;
        padding: 40px;
    }

    .faq-section__sidebar {
        width: 100%;
    }

    .faq-section__list {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .faq-section {
        padding:  48px 16px;
        background-color: #F7F7F7;
    }

    .faq-section__inner {
        padding: 0;
        gap: 32px;
        border: none;
        border-radius: 0;
        background: transparent;
    }

    /* Break sidebar containment so children participate in parent flex order */
    .faq-section__sidebar {
        display: contents;
    }

    .faq-section__header {
        order: 1;
    }

    .faq-section__list {
        order: 2;
        width: 100%;
    }

    .faq-section__contact {
        order: 3;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 12px;
        width: 100%;
    }

    .faq-section__actions {
        order: 4;
        width: 100%;
    }

    .faq-section__actions .btn {
        display: flex;
        width: 100%;
        justify-content: center;
    }

    .faq-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .faq-section__subtitle {
        font-size: 15px;
    }

    /* Contact cards — vertical icon + label, blue border (Figma 645:14314) */
    .faq-section__contact-item {
        display: flex;
        flex: 1 1 0;
        min-width: 0;
        width: calc(50% - 6px);
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        gap: 12px;
        padding: 16px;
        border-color: #006373;
        border-radius: 10px;
        text-decoration: none;
        color: #006373;
        background-color: #FFFFFF;
        font-size: 15px;
        font-weight: 400;
        font-family: 'Lato', sans-serif;
        line-height: 1.3;
    }

    .faq-section__contact-item svg {
        color: #006373;
        fill: #006373;
    }

    .faq-section__contact-item svg path {
        fill: #006373;
    }



    .faq-section__contact-text {
        display: none;
    }

    .faq-section__contact-text-mobile {
        display: block;
        text-decoration: underline;
        color: #006373;
    }

    .faq-section__list {
        gap: 12px;
    }

    /* FAQ items mobile sizing — accordion, one open at a time */
    .faq-item {
        padding: 20px;
        border-radius: 10px;
        max-width: 100%;
        width: 100%;
        cursor: pointer;
    }

    .faq-item__question {
        font-size: 16px;
        cursor: pointer;
    }

    .faq-item__toggle-icon {
        display: flex;
    }

    .faq-item__answer[hidden] {
        display: none;
    }
}

/* ════════════════════════════════════════════════════════════
   INSTAGRAM SECTION
   ════════════════════════════════════════════════════════════ */
.instagram-section {
    padding: 0;
    overflow: hidden;
}

.instagram-section__header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 48px;
}

.instagram-section__heading {
    font-family: var(--font-heading);
    font-size: 36px;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
}

.instagram-section__accent {
    color: #006373;
}

/* Social pill badges */
.instagram-section__pills {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
}

.instagram-section__pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background-color: #EFF9FC;
    color: #006373;
    border-radius: 100px;
    padding: 12px 16px;
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    transition: background-color var(--transition-fast), transform var(--transition-fast);
}

.instagram-section__pill:hover {
    background-color: #D9F0F6;
    transform: translateY(-2px);
}

.instagram-section__pill svg {
    flex-shrink: 0;
}

/* Image grid — full-width, 6 columns */
.instagram-section__grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
    width: 100%;
}

.instagram-item {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transform: rotate(var(--rotation, 0deg));
    transition: transform var(--transition-base);
    cursor: pointer;
}

.instagram-item:hover {
    transform: rotate(0deg) scale(1.04);
}

.instagram-item__image {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f0f0f0 0%, #e0e0e0 100%);
    object-fit: cover;
}

.instagram-item__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    transition: opacity var(--transition-base);
}

.instagram-item:hover .instagram-item__overlay {
    opacity: 1;
}

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

@media (max-width: 640px) {
    .instagram-section__inner.container {
        padding: 0;
    }

    .instagram-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .instagram-section__header {
        margin-bottom: 32px;
        padding: 0 var(--container-padding);
    }

    .instagram-section__grid {
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 12px;
        /* Edge-to-edge: no side padding so images aren't cropped against the viewport edge */
        padding: 0;
    }

    .instagram-section__grid::-webkit-scrollbar {
        display: none;
    }

    .instagram-item {
        flex: 0 0 200px;
        min-width: 200px;
    }

    .instagram-section__pills {
        gap: 10px;
    }

    .instagram-section__pill {
        font-size: 14px;
        padding: 10px 14px;
    }
}

/* ════════════════════════════════════════════════════════════
   INTRO SECTION
   ════════════════════════════════════════════════════════════ */
.intro-section {
    background-color: var(--color-white);
    width: 100%;
}

.intro-section__inner {
    max-width: var(--container-max);
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 124px;
    padding: 0 var(--container-padding);
}

.intro-section__text-col {
    width: 437px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.intro-section__heading {
    font-family: var(--font-heading);
    font-size: 36px;
    font-weight: 700;
    color: rgba(18, 18, 18, 1);
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.intro-section__text {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: rgba(18, 18, 18, 1);
    opacity: 0.8;
    margin: 0;
}

.intro-section__categories {
    width: 660px;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

@media (max-width: 1200px) {
    .intro-section__inner {
        gap: 60px;
    }

    .intro-section__text-col {
        width: auto;
        flex: 1;
        min-width: 300px;
    }

    .intro-section__categories {
        width: auto;
        flex: 1;
        min-width: 320px;
    }

    .category-tab {
        width: calc(50% - 8px);
    }
}

@media (max-width: 768px) {
    .intro-section__inner {
        flex-direction: column;
        gap: 40px;
        padding: 56px 16px;
    }

    .intro-section__text-col {
        min-width: 0;
        width: 100%;
    }

    .intro-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }

    .intro-section__text {
        font-size: 15px;
    }

    .intro-section__categories {
        min-width: 0;
        width: 100%;
        flex-direction: column;
        gap: 16px;
    }

    .category-tab {
        width: 100%;
        padding: 0 24px;
        border-radius: 10px;
        background-color: var(--color-primary);
    }

    .category-tab::after {
        box-shadow: 0px -4px 0px 0px #0000002E inset;
    }

    .category-tab__overlay {
        background: linear-gradient(
            90deg,
            #6D7C25 0%,
            rgba(109, 124, 37, 0.85) 40%,
            rgba(109, 124, 37, 0.1) 100%
        );
    }

    .category-tab__text {
        padding: 32px 0;
        gap: 12px;
    }

    .category-tab__title {
        font-size: 18px;
        color: #fff;
        letter-spacing: 0.18px;
        line-height: 1.2;
    }

    .category-tab__subtitle {
        font-size: 14px;
        color: #fff;
        opacity: 0.8;
    }

    .category-tab__arrow {
        width: 48px;
        height: 48px;
        background-color: var(--color-primary);
    }

    .category-tab__arrow svg {
        width: 20px;
        height: 20px;
    }
}

/* ════════════════════════════════════════════════════════════
   WHY HORECA SECTION
   ════════════════════════════════════════════════════════════ */
.why-section {
    padding: var(--space-16) 0;
    background-color: var(--color-bg-light);
}

.why-section__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-16);
    align-items: center;
}

.why-section__heading {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: var(--weight-bold);
    color: var(--color-dark);
    line-height: var(--leading-tight);
    margin-bottom: var(--space-6);
}

.why-section__text {
    font-family: var(--font-body);
    font-size: var(--text-base);
    line-height: var(--leading-normal);
    color: var(--color-text-muted);
    margin-bottom: var(--space-8);
}

.why-section__video-placeholder {
    width: 100%;
    aspect-ratio: 16 / 10;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    position: relative;
}

.why-section__play-btn {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-full);
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-2xl);
    color: var(--color-primary);
    box-shadow: var(--shadow-lg);
    cursor: pointer;
    transition: transform var(--transition-fast);
}

.why-section__play-btn:hover {
    transform: scale(1.1);
}

.why-section__caption {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    color: var(--color-white);
    font-weight: var(--weight-medium);
}

@media (max-width: 768px) {
    .why-section__inner {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
}

/* ════════════════════════════════════════════════════════════
   TRUST BANNER SECTION
   ════════════════════════════════════════════════════════════ */
.trust-section {
    padding: var(--space-12) 0;
    background-color: var(--color-bg);
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.trust-section__heading {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: var(--weight-regular);
    color: var(--color-dark);
    text-align: center;
    line-height: var(--leading-snug);
}

.trust-section__number {
    font-weight: var(--weight-bold);
    color: var(--color-secondary);
    font-size: var(--text-4xl);
}

.trust-section__text {
    font-weight: var(--weight-regular);
}

/* ════════════════════════════════════════════════════════════
   STUDENT STORIES SECTION — Full-width image + overlay panel
   ════════════════════════════════════════════════════════════ */
.student-stories-section {
    background-color: #FFFFFF;
    width: 100%;
}

.student-stories-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 48px;
}

.student-stories-section__header {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.student-stories-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.student-stories-section__subheading {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.student-stories-section__grid {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 48px;
    width: 100%;
}

/* Story card — stacks image + overlapping panel */
.student-story {
    width: 100%;
    position: relative;
}

/* Gold container with full-width image */
.student-story__image-wrap {
    width: 100%;
    height: 556px;
    border-radius: 16px;
    overflow: hidden;
    background-color: #D5A000;
    position: relative;
}

.student-story__image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Colored overlay panel — overlaps image bottom by 224px */
.student-story__overlay {
    width: 553px;
    position: relative;
    margin-top: -224px;
    z-index: 2;
    border-radius: 16px;
    padding: 32px;
    box-sizing: border-box;
}

.student-story__overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0px -4px 0px 0px rgba(0, 0, 0, 0.18);
    pointer-events: none;
}

/* Left-aligned panel */
.student-story__overlay--left {
    margin-left: 80px;
    margin-right: auto;
}

/* Right-aligned panel */
.student-story__overlay--right {
    margin-left: auto;
    margin-right: 80px;
}

.student-story__overlay-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 48px;
}

/* User info */
.student-story__user-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
}

.student-story__name {
    font-family: 'Museo', serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    opacity: 0.8;
}

.student-story__title {
    font-family: 'Museo', serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    display: block;
}

.student-story__quote {
    font-family: 'Museo', serif;
    font-size: 24px;
    font-weight: 400;
    font-style: italic;
    line-height: 130%;
    color: #FFFFFF;
    margin: 0;
    quotes: none;
}

/* Responsive */
@media (max-width: 1200px) {
    .student-story__overlay {
        width: 460px;
        padding: 32px;
    }

    .student-story__overlay--left {
        margin-left: 40px;
    }

    .student-story__overlay--right {
        margin-right: 40px;
    }

    .student-story__overlay-inner {
        gap: 80px;
    }
}

@media (max-width: 1024px) {
    .student-story__image-wrap {
        height: 420px;
    }

    .student-story__overlay {
        width: 380px;
        margin-top: -180px;
        padding: 32px;
    }

    .student-story__overlay--left {
        margin-left: 24px;
    }

    .student-story__overlay--right {
        margin-right: 24px;
    }

    .student-story__overlay-inner {
        gap: 60px;
    }

    .student-story__quote {
        font-size: 20px;
    }

    .student-story__title {
        font-size: 26px;
    }
}

@media (max-width: 768px) {

    .student-stories-section__grid {
        gap: 0;
    }

    .student-stories-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }

    .student-stories-section__subheading {
        font-size: 15px;
    }

    .student-stories-section__inner {
        gap: 32px;
    }

    /* Each story card — overflow hidden with bottom padding to contain the overlap */
    .student-story {
        overflow: hidden;
        padding-bottom: 124px;
    }

    .student-story__image-wrap {
        height: 289px;
        border-radius: 12px;
        margin-bottom: -124px;
    }

    .student-story__overlay {
        width: calc(100% - 6px);
        margin: -124px auto 0;
        padding: 24px;
        border-radius: 12px;
        position: relative;
    }

    .student-story__overlay--left,
    .student-story__overlay--right {
        margin-left: auto;
        margin-right: auto;
    }

    .student-story__overlay-inner {
        gap: 56px;
    }

    .student-story__user-info {
        gap: 20px;
    }

    .student-story__name {
        font-size: 18px;
        line-height: 1.2;
        letter-spacing: 0.18px;
    }

    .student-story__title {
        font-size: 22px;
        line-height: 1.15;
        letter-spacing: 0.22px;
    }

    .student-story__quote {
        font-family: 'Inter', sans-serif;
        font-size: 15px;
        font-style: italic;
        font-weight: 400;
        line-height: 1.5;
    }
}

/* ════════════════════════════════════════════════════════════
   ABOUT SECTION — Text + Image block
   ════════════════════════════════════════════════════════════ */
.about-section {
    width: 100%;
    overflow: visible;
    }

.about-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    align-items: center;
    gap: 48px;
    position: relative;
}

/* Maroon accent rectangle — sticks out 32px past the content right edge */
.about-section__accent {
    position: absolute;
    top: -32px;
    right: 8px;
    width: 309px;
    height: 340px;
    background-color: #9C3035;
    z-index: 0;
}

.about-section__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    position: relative;
    z-index: 1;
}

.about-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.about-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    margin: 0;
}

.about-section__actions {
    display: flex;
    gap: 12px;
}

.about-section__image {
    flex: 1;
    min-width: 0;
    height: 540px;
    position: relative;
    z-index: 1;
}

.about-section__image img {
    border-radius: 12px;
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 1024px) {
    .about-section__inner {
        flex-direction: column;
        padding: 0 24px;
    }

    .about-section__image {
        width: 100%;
        height: 300px;
    }

    .about-section__accent {
        display: none;
    }
}

@media (max-width: 768px) {
    .about-section__inner {
        padding: 0 16px;
    }

    .about-section__image {
        align-self: stretch;
        width: auto;
        margin: 0 -16px;
        /* Reduce image size by ~20% on mobile and cap it so it doesn't dominate the screen */
        height: 56vh;
        min-height: 0;
        max-height: 448px;
        border-radius: 0;
    }

    .about-section__image img {
        border-radius: 0;
    }

    .about-section__accent {
        display: block;
        width: 140px;
        height: 180px;
        top: -16px;
        right: 0;
        z-index: 0;
    }
}

/* ════════════════════════════════════════════════════════════
   NEWSLETTER SECTION
   ════════════════════════════════════════════════════════════ */
.newsletter-section {
    position: relative;
    padding: 0 var(--container-padding);
    background-color: #032F36;
    text-align: center;
    overflow: hidden;
}

/* Decorative concentric circles — centered in the section */
.newsletter-section__circles {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}

.newsletter-section__circles svg {
    width: auto;
    height: 200%;
    overflow: visible;
}

/* Gold accent bar at bottom — hidden per design */
.newsletter-section__gold-bar {
    display: none;
}

.newsletter-section__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
    max-width: 505px;
    margin: 0 auto;
    padding: 80px 0 88px;
}

/* Subtitle group: header + description text */
.newsletter-section__subtitle {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 100%;
}

/* Header row: heading + ticker + label all inline */
.newsletter-section__header {
    display: flex;
    align-items: center;
    justify-content: center;
}

.newsletter-section__heading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 700;
    color: #EFF9FC;
    letter-spacing: 0.32px;
    line-height: 1;
    margin: 0;
    white-space: nowrap;
}

/* Number ticker */
.newsletter-section__ticker {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
}

.newsletter-section__ticker-digit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 43px;
    background-color: #EFF9FC;
    border-radius: 4px;
    font-family: var(--font-body);
    font-size: 33px;
    font-weight: 600;
    color: #032F36;
    line-height: 1;
    box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.14);
}

.newsletter-section__ticker-label {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 700;
    color: #EFF9FC;
    letter-spacing: 0.32px;
    line-height: 1;
    white-space: nowrap;
}

.newsletter-section__text {
    font-family: var(--font-body);
    font-size: 16px;
    color: #EFF9FC;
    line-height: 1.5;
    text-align: center;
    margin: 0;
}

.newsletter-section__form {
    width: 100%;
}

.newsletter-section__input-group {
    display: flex;
    gap: 12px;
    align-items: center;
}

.newsletter-section__input-wrap {
    flex: 1;
    position: relative;
}

.newsletter-section__input-wrap input[type="email"] {
    width: 100%;
    height: 56px;
    padding: 0 16px;
    background: #FFFFFF;
    border: none;
    border-radius: 8px;
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-dark);
    outline: none;
    transition: box-shadow var(--transition-fast);
}

.newsletter-section__input-wrap input[type="email"]:focus {
    box-shadow: 0 0 0 2px #006373;
}

.newsletter-section__input-wrap label {
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: #6D6D6D;
    pointer-events: none;
    transition: all var(--transition-fast);
}

.newsletter-section__input-wrap input:focus + label,
.newsletter-section__input-wrap input:not(:placeholder-shown) + label {
    top: 14px;
    font-size: 12px;
    font-weight: 600;
    color: #6D6D6D;
    line-height: 1;
    letter-spacing: 0.12px;
    transform: translateY(0);
}

/* Shift input text down when label is floating */
.newsletter-section__input-wrap input:focus,
.newsletter-section__input-wrap input:not(:placeholder-shown) {
    padding: 24px 16px 8px;
}

.newsletter-section__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    min-width: 56px;
    background-color: #006373;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color var(--transition-fast), transform var(--transition-fast);
    box-shadow: inset 0px -4px 0px 0px rgba(0, 0, 0, 0.18);
}

.newsletter-section__submit:hover {
    background-color: #007d8f;
    transform: translateY(-1px);
}

.newsletter-section__submit svg {
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .newsletter-section {
        padding: 0 16px;
    }

    .newsletter-section__heading {
        font-size: 26px;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
        white-space: normal;
    }

    .newsletter-section__ticker-digit {
        width: 28px;
        height: 38px;
        font-size: 28px;
    }

    .newsletter-section__ticker-label {
        font-size: 26px;
    }

    .newsletter-section__text {
        font-size: 15px;
    }

    .newsletter-section__inner {
        gap: 32px;
    }
}

@media (max-width: 640px) {
    .newsletter-section {
        padding: 48px 20px;
    }

    .newsletter-section__heading {
        font-size: 24px;
    }

    .newsletter-section__ticker-digit {
        width: 26px;
        height: 36px;
        font-size: 26px;
    }

    .newsletter-section__ticker-label {
        font-size: 24px;
    }

    .newsletter-section__circles {
        align-items: flex-start;
        justify-content: center;
    }

    .newsletter-section__circles svg {
        height: 160%;
    }
}

@media (max-width: 480px) {
    .newsletter-section__input-group {
        flex-direction: row;
        gap: 8px;
    }

    .newsletter-section__input-wrap input[type="email"] {
        height: 48px;
        font-size: 14px;
    }

    .newsletter-section__input-wrap label {
        font-size: 14px;
    }

    .newsletter-section__submit {
        width: 48px;
        min-width: 48px;
        height: 48px;
    }
}

/* ════════════════════════════════════════════════════════════
   BREADCRUMBS
   ════════════════════════════════════════════════════════════ */
.breadcrumbs__list {
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    padding: var(--space-4) 0;
}

.breadcrumbs__item::after {
    content: '/';
    margin-left: var(--space-2);
    color: rgba(255, 255, 255, 0.4);
}

.breadcrumbs__item:last-child::after {
    content: '';
}

.breadcrumbs__item a {
    color: rgba(255, 255, 255, 0.8);
    transition: color 0.2s ease;
}

.breadcrumbs__item a:hover {
    color: #fff;
}

.breadcrumbs__item--current {
    color: #fff;
    font-weight: var(--weight-medium);
}

/* ══════════════════════════════════════════════════════════
   WHY HORECA (USP) SECTION
   ══════════════════════════════════════════════════════════ */
.why-horeca-section {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 80px var(--container-padding);
    background-color: #FFFFFF;
}
.why-horeca-section--blue {
    background-color: var(--tints-blue-tint, #eff9fc);
}

.why-horeca-section__inner {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: grid;
    grid-template-columns: 437px auto;
    grid-template-rows: auto auto;
    justify-content: center;
    align-items: center;
    gap: 48px 124px;
}

/* ── Left column ───────────────────────────────────────── */
.why-horeca-section__text {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 48px;
}

/* CTA button wrapper — sits below text on desktop grid */
.why-horeca-section__cta {
    grid-column: 1;
    grid-row: 2;
}

.why-horeca-section__heading-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.why-horeca-section__heading {
    color: #006373;
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.why-horeca-section__body {
    color: #121212;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    opacity: 0.8;
    margin: 0;
}

/* ── Right column: carousel ────────────────────────────── */
.why-horeca-section__carousel {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    align-items: center;
    gap: 24px;
}

.why-horeca-section__nav {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FFFFFF;
    border: 1px solid #ECECEC;
    border-radius: 100px;
    cursor: pointer;
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    padding: 0;
}

.why-horeca-section__nav:hover {
    border-color: #006373;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* ── Card stack container ──────────────────────────────── */
.why-horeca-section__cards {
    width: 437px;
    height: 317px;
    position: relative;
    flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════════
   USP CARD
   ══════════════════════════════════════════════════════════ */
.usp-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 24px;
    border-radius: 12px;
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    box-shadow: 0px -4px 0px 0px #0000002E inset;
    transition: transform var(--duration-slow) var(--ease-out-quart),
                width var(--duration-slow) var(--ease-out-quart),
                height var(--duration-slow) var(--ease-out-quart),
                opacity var(--duration-slow) var(--ease-out-quart),
                top var(--duration-slow) var(--ease-out-quart),
                left var(--duration-slow) var(--ease-out-quart);
    cursor: default;
}

/* Stacked card positions — biggest top, smaller behind at bottom */
/* Card at position 0 (front, top-aligned) */
.usp-card[data-position="0"] {
    width: 437px;
    height: 274px;
    top: 0;
    left: 0;
    z-index: 4;
    opacity: 1;
}

/* Card at position 1 (behind, peeks below) */
.usp-card[data-position="1"] {
    width: 415px;
    height: 260px;
    top: 30px;
    left: 11px;
    z-index: 3;
    opacity: 1;
}

/* Card at position 2 */
.usp-card[data-position="2"] {
    width: 393px;
    height: 247px;
    top: 58px;
    left: 22px;
    z-index: 2;
    opacity: 1;
}

/* Card at position 3 (back, peeks most at bottom) */
.usp-card[data-position="3"] {
    width: 371px;
    height: 233px;
    top: 84px;
    left: 33px;
    z-index: 1;
    opacity: 0.7;
}

/* Hidden cards */
.usp-card[data-position="hidden"] {
    width: 437px;
    height: 274px;
    top: 0;
    left: 0;
    z-index: 0;
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
    pointer-events: none;
}

/* ── Stack swap animation ─────────────────────────────── */
/* The "exiting" card slides off to the left while shrinking */
.usp-card.usp-card--exiting {
    transform: translateX(-110%) rotate(-6deg) scale(0.9) !important;
    opacity: 0 !important;
    z-index: 10 !important;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.35s ease,
                width var(--duration-slow) var(--ease-out-quart),
                height var(--duration-slow) var(--ease-out-quart) !important;
    pointer-events: none;
}

/* For "prev" direction, exit to the right */
.usp-card.usp-card--exiting-prev {
    transform: translateX(110%) rotate(6deg) scale(0.9) !important;
    opacity: 0 !important;
    z-index: 10 !important;
    transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.35s ease,
                width var(--duration-slow) var(--ease-out-quart),
                height var(--duration-slow) var(--ease-out-quart) !important;
    pointer-events: none;
}

/* ── Hover: cards spread apart in depth (downward) ────── */
.why-horeca-section__cards:hover .usp-card[data-position="0"] {
    transform: translateY(-6px);
}

.why-horeca-section__cards:hover .usp-card[data-position="1"] {
    transform: translateY(8px);
}

.why-horeca-section__cards:hover .usp-card[data-position="2"] {
    transform: translateY(18px);
}

.why-horeca-section__cards:hover .usp-card[data-position="3"] {
    transform: translateY(26px);
}

/* ── Card background decoration ────────────────────────── */
.usp-card__bg-decoration {
    position: absolute;
    top: 0;
    right: 0;
    width: 180px;
    height: 180px;
    background: url('../images/card-bg.png') top right / contain no-repeat;
    pointer-events: none;
    z-index: 0;
    opacity: 0.35;
}

/* ── Card icon ─────────────────────────────────────────── */
.usp-card__icon {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 1;
}

.usp-card__icon .icon {
    width: auto !important;
    height: auto !important;
}

.usp-card__icon svg {
    width: 50px;
    height: 50px;
    display: block;
}

/* ── Card content ──────────────────────────────────────── */
.usp-card__content {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 24px;
    align-self: stretch;
    z-index: 1;
}

.usp-card__title {
    color: #FFFFFF;
    font-family: 'Museo', serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
    align-self: stretch;
}

.usp-card__description {
    color: #FFFFFF;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    opacity: 0.8;
    margin: 0;
    align-self: stretch;
}

/* ── Card counter ──────────────────────────────────────── */
.usp-card__counter {
    position: absolute;
    top: 30px;
    right: 30px;
    color: #FFFFFF;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 150%;
    letter-spacing: 0.02em;
    z-index: 2;
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 1200px) {
    .why-horeca-section__inner {
        grid-template-columns: 380px auto;
        gap: 32px 64px;
    }
}

@media (max-width: 1024px) {
    .why-horeca-section__inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 48px;
    }

    .why-horeca-section__text {
        width: 100%;
        max-width: 540px;
    }

    .why-horeca-section__carousel {
        width: 100%;
        justify-content: center;
    }

    .why-horeca-section__cta {
        order: 3;
    }
}

@media (max-width: 600px) {
    .why-horeca-section {
        padding: 48px 16px;
    }

    .why-horeca-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .why-horeca-section__body {
        font-size: 15px;
    }

    .why-horeca-section__text {
        gap: 32px;
        align-items: center;
        text-align: center;
    }

    .why-horeca-section__heading-group {
        align-items: center;
        text-align: center;
    }

    .why-horeca-section__carousel {
        justify-content: center;
    }

    .why-horeca-section__cards {
        width: 100%;
        max-width: 340px;
        height: 280px;
    }

    .usp-card[data-position="0"] {
        width: 100%;
        max-width: 340px;
        height: 240px;
    }

    .usp-card[data-position="1"] {
        width: calc(100% - 20px);
        max-width: 320px;
        height: 226px;
        left: 10px;
        top: 24px;
    }

    .usp-card[data-position="2"] {
        width: calc(100% - 40px);
        max-width: 300px;
        height: 214px;
        left: 20px;
        top: 46px;
    }

    .usp-card[data-position="3"] {
        width: calc(100% - 60px);
        max-width: 280px;
        height: 200px;
        left: 30px;
        top: 66px;
    }

    .usp-card__title {
        font-size: 20px;
    }

    .usp-card__description {
        font-size: 14px;
    }

    .usp-card__icon svg {
        width: 40px;
        height: 40px;
    }
    .usp-card__icon {
        width: 40px;
        height: 40px;
    }

    .usp-card__bg-decoration {
        width: 120px;
        height: 120px;
    }

    /* Hide arrow nav buttons on mobile — swipe only */
    .why-horeca-section__nav {
        display: none;
    }

    .why-horeca-section__cards {
        touch-action: pan-y;
    }

    .why-horeca-section__carousel {
        flex-direction: column;
        gap: 16px;
    }

    .why-horeca-section__cta {
        display: flex;
        justify-content: center;
        width: 100%;
    }
}

/* ═══════════════════════════════════════════════════════════
   COURSE SLIDER  (Visueel Aanbod)
   ═══════════════════════════════════════════════════════════ */

.course-slider {
    position: relative;
    width: 100%;
    height: 800px;
    overflow: hidden;
    background: #000;
    touch-action: pan-y;
}

/* ── Viewport & Track ── */

.course-slider__viewport {
    position: relative;
    width: 100%;
    height: 100%;
}

.course-slider__track {
    position: relative;
    width: 100%;
    height: 100%;
}

.course-slider__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 164px var(--container-padding) 40px;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--duration-slow) var(--ease-out-quart), visibility var(--duration-slow) var(--ease-out-quart);
    z-index: 0;
    will-change: opacity, visibility;
}

.course-slider__slide--active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

/* ── Background ── */

.course-slider__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.course-slider__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ── Info Card ── */

.course-slider__card {
    position: relative;
    z-index: 1;
    background: rgba(255, 255, 255, 0.95);
    width: 668px;
    border-radius: 10px;
    padding: 32px;
    box-shadow: 0px 35px 60px 0px rgba(0, 0, 0, 0.15);
}

.course-slider__card-inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* ── Course Info ── */

.course-slider__info {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.course-slider__title {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #6D7C25;
    margin: 0;
}

.course-slider__desc {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #6D7C25;
    margin: 0;
}

/* ── Tags ── */

.course-slider__tags {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.course-slider__tag {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 16px 20px;
    border-radius: 100px;
    border: 1px solid #ECECEC;
    background: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 150%;
    color: #121212;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.course-slider__tag:hover {
    background: #F7F7F7;
    border-color: #032F36;
    color: #032F36;
}

a.course-slider__tag {
    color: #121212;
}

a.course-slider__tag:hover {
    color: #032F36;
}

/* ── Details ── */

.course-slider__details {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.course-slider__detail {
    display: flex;
    align-items: center;
    gap: 7px;
}

.course-slider__detail svg {
    width: 20px;
    height: 20px;
    min-width: 20px;
    flex-shrink: 0;
    color: var(--color-primary);
    display: block;
}

.course-slider__detail span {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: var(--color-primary);
}

/* ── Buttons ── */

.course-slider__buttons {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* ── Navigation ── */

.course-slider__nav {
    position: absolute;
    bottom: 40px;
    right: 40px;
    display: flex;
    align-items: center;
    gap: 16px;
    z-index: 2;
}

.course-slider__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: #fff;
    transition: opacity var(--transition-fast);
}

.course-slider__arrow:hover {
    opacity: 0.7;
}

.course-slider__arrow svg {
    width: 20px;
    height: 20px;
}

.course-slider__dots {
    display: flex;
    align-items: center;
    gap: 8px;
}

.course-slider__dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 0.8px solid rgba(255, 255, 255, 0.32);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: border-color var(--transition-base);
}

.course-slider__dot--active {
    border-color: #fff;
}

.course-slider__dot:hover {
    border-color: rgba(255, 255, 255, 0.7);
}

/* ── Responsive ── */

@media (max-width: 1200px) {
    .course-slider__card {
        width: 560px;
    }
}

@media (max-width: 1024px) {
    .course-slider {
        height: auto;
        min-height: 700px;
    }

    .course-slider__slide {
        padding: 120px 32px 80px;
        align-items: flex-end;
    }

    .course-slider__card {
        width: 100%;
        max-width: 560px;
    }

    .course-slider__nav {
        bottom: 24px;
        right: 32px;
    }
}

@media (max-width: 768px) {
    .course-slider {
        min-height: auto;
        height: auto;
    }

    .course-slider__slide {
        position: relative;
        padding: 0;
        flex-direction: column;
        opacity: 1;
        visibility: visible;
        transition: none;
        will-change: auto;
    }

    .course-slider__slide:not(.course-slider__slide--active) {
        position: absolute;
        opacity: 0;
        visibility: hidden;
    }

    .course-slider__bg {
        position: relative;
        height: 300px;
    }

    .course-slider__card {
        width: 100%;
        max-width: 100%;
        border-radius: 0;
    }

    .course-slider__title {
        font-size: 24px;
    }

    .course-slider__desc {
        font-size: 15px;
    }

    .course-slider__tag {
        padding: 10px 16px;
        font-size: 12px;
    }

    .course-slider__buttons {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .course-slider__buttons .btn {
        flex: 1 1 0;
        min-width: 0;
        justify-content: center;
    }

    .course-slider__nav {
        position: absolute;
        bottom: auto;
        top: 276px;
        left: auto;
        right: 20px;
        transform: translateY(-50%);
        justify-content: flex-end;
        padding: 0;
        background: transparent;
        z-index: 10;
        gap: 12px;
    }

    /* Icons: force stable rendering on mobile */
    .course-slider__detail .icon,
    .course-slider__detail svg,
    .course-slider__buttons .icon,
    .course-slider__buttons svg {
        transform: translateZ(0);
        backface-visibility: hidden;
    }

    /* Dots: more visible on mobile */
    .course-slider__dot {
        width: 10px;
        height: 10px;
        border: 1.5px solid rgba(255, 255, 255, 0.6);
        background: rgba(255, 255, 255, 0.15);
    }

    .course-slider__dot--active {
        border-color: #fff;
        background: #fff;
    }

    /* Show arrows on mobile */
    .course-slider__arrow {
        display: flex;
    }
}

/* ══════════════════════════════════════════════════════════
   SINGLE COURSE DETAIL PAGE  (cd-* prefix)
   ══════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────── */
.cd-hero {
    position: relative;
}
.cd-hero__image {
    height: 424px;
    background-size: cover;
    background-position: center;
    position: relative;
    background-color: #032F36;
}
.cd-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.40);
}
.cd-hero__breadcrumb-wrap {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    padding-top: 40px;
}
.cd-hero__breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 400;
    font-size: 14px;
    color: #fff;
    letter-spacing: 0.02em;
}
.cd-hero__breadcrumb a { color: #fff; text-decoration: none; font-weight: 400; }
.cd-hero__breadcrumb a:hover { text-decoration: underline; }
.cd-hero__breadcrumb span { opacity: 0.85; }
.cd-hero__breadcrumb [aria-current="page"] { font-weight: 700; opacity: 1; }
.cd-hero__breadcrumb-list {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.cd-hero__breadcrumb-list li:not(:last-child)::after {
    content: '/';
    margin-left: 6px;
    opacity: 0.7;
}

/* ── Intro card ────────────────────────────────────────── */
.cd-hero__card-wrap {
    display: flex;
    justify-content: center;
    margin-top: -200px;
    position: relative;
    z-index: 3;
    padding-bottom: 60px;
}
.cd-intro-card {
    width: 668px;
    max-width: calc(100% - 32px);
    background: #fff;
    border-radius: 10px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    box-shadow:
        0px 35px 10px rgba(0,0,0,0),
        0px 23px 9px rgba(0,0,0,0.01),
        0px 13px 8px rgba(0,0,0,0.02),
        0px 6px 6px rgba(0,0,0,0.03),
        0px 1px 3px rgba(0,0,0,0.04);
}
.cd-intro-card__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 36px;
    color: #006373;
    line-height: 1;
    letter-spacing: 0.36px;
    margin: 0;
}
.cd-intro-card__subtitle {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #006373;
    line-height: 1.5;
    margin: 0;
}
/* Tags / pills */
.cd-intro-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.cd-tag {
    display: inline-flex;
    align-items: center;
    padding: 16px 20px;
    border: 1px solid #ececec;
    border-radius: 9999px;
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.28px;
    color: #032F36;
    white-space: nowrap;
}
/* Detail facts */
.cd-intro-card__details {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-start;
}
.cd-detail {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 400;
    font-size: 16px;
    color: #032F36;
}
.cd-detail svg,
.cd-detail .icon { flex-shrink: 0; }
/* Locations row (above buttons) */
.cd-intro-card__locations {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 0 16px;
    font-size: 14px;
    font-weight: 500;
    color: #032F36;
}
.cd-intro-card__locations .icon { flex-shrink: 0; }
/* Actions */
.cd-intro-card__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}
.cd-intro-card__actions--secondary {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(0,0,0,0.08);
}

/* ── Content column ────────────────────────────────────── */
/* Content blocks — read-more pattern */
.cd-content-col {
    max-width: 667px;
    margin: 0 auto;
    padding: 0 24px 80px;
    display: flex;
    flex-direction: column;
    gap: 64px;
}
.cd-block {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cd-block__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 26px;
    color: #121212;
    margin: 0;
    letter-spacing: 0.26px;
    line-height: 1;
}
.cd-block__body {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 32px;
    overflow: hidden;
    max-height: 120px;
    transition: max-height 0.4s ease;
    will-change: max-height;
}
.cd-block__body::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 48px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
    pointer-events: none;
    transition: opacity 0.3s ease;
}
.cd-block.is-expanded .cd-block__body {
    max-height: 2000px;
    overflow: visible;
}
.cd-block.is-expanded .cd-block__body::after {
    opacity: 0;
}
.cd-block__text {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
}
.cd-block__text p { margin: 0 0 1em; }
.cd-block__text p:last-child { margin-bottom: 0; }

.cd-block__text ul,
.cd-block__text ol {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #121212;
    padding-left: 24px;
    margin: 0 0 16px 0;
}
.cd-block__text ul { list-style: none; }
.cd-block__text ol { list-style-type: decimal; }
.cd-block__text li { position: relative; padding-left: 8px; margin-bottom: 8px; }
.cd-block__text ul > li::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}
.cd-block__text li {
    margin-bottom: 6px;
    padding-left: 4px;
}
.cd-block__text li:last-child { margin-bottom: 0; }

.cd-block__text hr {
    border: none;
    border-top: 1px solid var(--grey-03, #D9D9D9);
    margin: 24px 0;
}

.cd-block__highlights {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 552px;
    max-width: 100%;
}
.cd-block__highlights li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 18px;
    color: #121212;
}
.cd-block__highlights li svg,
.cd-block__highlights li .icon { flex-shrink: 0; width: 24px; height: 24px; }
.cd-block__readmore {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    align-self: flex-start;
}
.cd-block__readmore-label {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: #006373;
    text-decoration: underline;
}
.cd-block__readmore svg,
.cd-block__readmore .icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    transition: transform 0.3s ease;
    color: #006373;
}
.cd-block.is-expanded .cd-block__readmore svg,
.cd-block.is-expanded .cd-block__readmore .icon {
    transform: rotate(180deg);
}
.cd-block.is-expanded .cd-block__readmore-label::after {
    content: none;
}
.cd-block__media {
    width: 100%;
    height: 375px;
    border-radius: 10px;
    overflow: hidden;
}
.cd-block__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Share widget */
.cd-share {
    display: flex;
    background: #F2F9EA;
    border-radius: 4px;
    overflow: hidden;
    align-items: center;
    gap: 32px;
}
.cd-share__bar {
    width: 10px;
    flex-shrink: 0;
    background: #6D7C25;
    align-self: stretch;
}
.cd-share__inner {
    padding: 32px 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cd-share__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 20px;
    color: #6D7C25;
    margin: 0;
    letter-spacing: 0.2px;
}
.cd-share__actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}
.cd-share__btn-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.cd-share__btn {
    width: 64px;
    height: 64px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid #ececec;
    background: transparent;
    cursor: pointer;
    text-decoration: none;
    color: #006373;
    transition: border-color var(--transition-fast);
}
.cd-share__btn-wrap:first-child .cd-share__btn {
    background: #fff;
}
.cd-share__btn:hover { border-color: #006373; }
.cd-share__label {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 600;
    font-size: 12px;
    color: #6D7C25;
    letter-spacing: 0.12px;
}

/* ── CTA section ───────────────────────────────────────── */
.cd-cta-section {
    padding: 0;
    background: #fff;
}
.cd-cta-section__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.cd-cta-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    min-height: 269px;
    background: #6D7C25;
    padding: 48px;
    display: flex;
    align-items: flex-start;
    box-shadow: inset 0 -4px 0 rgba(0,0,0,0.18);
}
.cd-cta-card__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.cd-cta-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #063b43, rgba(6,59,67,0.32));
}
.cd-cta-card__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 520px;
}
.cd-cta-card__btn-row {
    display: flex;
    gap: 12px;
    align-items: center;
}
.cd-cta-card__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 26px;
    color: #fff;
    margin: 0;
}
.cd-cta-card__text {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-size: 16px;
    color: rgba(255,255,255,0.9);
    line-height: 1.5;
    margin: 0;
}

/* ── Locations section ─────────────────────────────────── */
.cd-locations-section {
    padding: 0;
    background: #fff;
}
.cd-locations-section__header {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-bottom: 48px;
}
.cd-locations-section__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 32px;
    color: #000;
    margin: 0;
    letter-spacing: 0.32px;
}
.cd-locations-section__subtitle {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-size: 16px;
    color: #000;
    line-height: 1.5;
    margin: 0;
    max-width: 556px;
}
.cd-locations-section__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-content: center;
    align-items: center;
}
.cd-loc-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 32px;
    border: 1px solid #ececec;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    padding: 0;
    width: 437px;
    max-width: 100%;
    flex-shrink: 0;
}
.cd-loc-card__location-info {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    overflow: hidden;
    isolation: isolate;
}
.cd-loc-card__bg-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}
.cd-loc-card__bg-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.cd-loc-card__bg-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #ffffff 0%, rgba(255, 255, 255, 0.64) 100%);
}
.cd-loc-card__location-text {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cd-loc-card__info {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    z-index: 1;
}
.cd-loc-card__header {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cd-loc-card__label {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 16px;
    color: #6d6d6d;
    line-height: 1.2;
    letter-spacing: 0.16px;
}
.cd-loc-card__name {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 20px;
    color: #6D7C25;
    margin: 0;
    letter-spacing: 0.2px;
    line-height: 1.15;
}
.cd-loc-card__address {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-size: 15px;
    color: #121212;
    font-style: normal;
    line-height: 1.5;
    margin: 0;
}
.cd-loc-card__startdates {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: relative;
    z-index: 1;
    padding: 16px;
    padding-top: 0;
}
.cd-loc-card__startdates-header {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
    text-align: left;
}
.cd-loc-card__dl {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 14px;
    color: #6d6d6d;
    letter-spacing: 0.14px;
    line-height: 1.2;
}
.cd-loc-card__dates {
    display: flex;
    gap: 1px;
    flex-wrap: wrap;
    justify-content: flex-start;
}
.cd-loc-card__btn-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
    justify-content: center;
}

/* Date badge */
.cd-date-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #D5A000;
    width: 48px;
    height: 48px;
    gap: 6px;
    text-align: center;
}
.cd-date-badge__day {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 18px;
    line-height: 1;
    color: #121212;
    letter-spacing: 0;
}
.cd-date-badge__month {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 600;
    font-size: 12px;
    line-height: 1;
    color: #121212;
    letter-spacing: 0.12px;
    text-transform: lowercase;
}
.cd-loc-card__btn-row .btn {
    width: 100%;
    height: 42px;
    max-height: 44px;
    padding: 0 14px;
    border-radius: 8px;
    font-size: 14px;
    gap: 8px;
    justify-content: center;
}
.cd-loc-card__btn-row .btn--outline-green {
    flex: none;
}
.cd-loc-card__btn-row .btn .btn__icon {
    width: 18px;
    height: 18px;
}
.cd-loc-card__btn-row .btn .btn__icon .icon {
    width: 18px;
    height: 18px;
}

/* ── Behind the Scenes section (Figma 524:52824) ───────── */
.behind-scenes-section {
    position: relative;
    padding: 80px 0;
    background: var(--system-background-grey, #f7f7f7);
    overflow-x: clip;
    overflow-y: visible;
}
.behind-scenes-section__circles {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}
.behind-scenes-section__circles svg {
    width: 120%;
    height: 120%;
    max-width: none;
}
.behind-scenes-section__inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
}
.behind-scenes-section__heading {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 36px;
    color: #6D7C25;
    margin: 0;
    text-align: center;
    letter-spacing: 0.36px;
}
.behind-scenes-section__gallery {
    position: relative;
    display: flex;
    gap: 24px;
    width: 100%;
}
.behind-scenes-section__image-wrap {
    border-radius: 12px;
    overflow: hidden;
    height: 670px;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.06);
}
.behind-scenes-section__image-wrap--1 {
    flex: 0 0 437px;
}
.behind-scenes-section__image-wrap--2,
.behind-scenes-section__image-wrap--3 {
    flex: 1 1 0;
}
.behind-scenes-section__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Floating decorative icon badges */
.behind-scenes-section__badge {
    position: absolute;
    width: 83px;
    height: 83px;
    background: var(--tints-green-tint, #f2f9ea);
    border: 2px solid #fff;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(var(--badge-rotation, 0deg));
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 2;
}
.behind-scenes-section__badge .icon {
    width: 28px;
    height: 28px;
}
.behind-scenes-section__badge--top-left {
    top: -20px;
    left: -10px;
}
.behind-scenes-section__badge--top-right {
    top: -20px;
    right: 40px;
}
.behind-scenes-section__badge--bottom-center {
    bottom: -20px;
    left: 50%;
    margin-left: -41px;
}

/* ── Sticky Bar (Figma 524:52913) ──────────────────────── */
.cd-sticky-bar {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 150;
}

/* Offset for WP admin bar (32px desktop, 46px mobile) */
.admin-bar .cd-sticky-bar {
    top: var(--wp-admin--admin-bar--height, 32px);
}

.cd-sticky-bar {
    background: var(--tints-blue-tint, #eff9fc);
    box-shadow: inset 0 -4px 0 rgba(0,0,0,0.12);
    padding: 24px 0;
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.35s ease;
    will-change: transform, opacity;
    contain: layout style;
}
.cd-sticky-bar.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.cd-sticky-bar__inner {
    max-width: var(--container-max, 1440px);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.cd-sticky-bar__left {
    display: flex;
    align-items: center;
    gap: 24px;
    flex: 1;
    min-width: 0;
}
.cd-sticky-bar__title {
    font-family: var(--font-heading, 'Museo'), serif;
    font-weight: 700;
    font-size: 36px;
    line-height: 1;
    letter-spacing: 0.36px;
    color: var(--primary-blue, #006373);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.cd-sticky-bar__tags {
    display: flex;
    gap: 7px;
    flex-shrink: 0;
}
.cd-sticky-bar__tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 14px 18px;
    border: 1px solid var(--system-grey-03, #ececec);
    border-radius: 100px;
    background: #fff;
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.12px;
    line-height: 1;
    color: var(--system-black, #121212);
    white-space: nowrap;
}
.cd-sticky-bar__right {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 900px) {
    .cd-intro-card__title { font-size: 28px; }
    .cd-cta-section__inner { grid-template-columns: 1fr; }
    .cd-loc-card { width: 100%; }
    .cd-hero__image { height: 300px; }
    .cd-hero__card-wrap { margin-top: -120px; }

    /* Behind scenes responsive */
    .behind-scenes-section__gallery { flex-direction: column; }
    .behind-scenes-section__image-wrap--1 { flex: none; }
    .behind-scenes-section__image-wrap { height: 400px; }

    /* Sticky bar responsive */
    .cd-sticky-bar__tags { display: none; }
    .cd-sticky-bar__title { font-size: 24px; }
    .cd-sticky-bar { padding: 16px 0; }
}
@media (max-width: 640px) {
    /* ── Detail Intro Card (Figma 649:16681) ──────────── */
    .cd-intro-card { padding: 20px; gap: 24px; }
    .cd-intro-card__title { font-size: 24px; line-height: 1.15; }
    .cd-intro-card__subtitle { font-size: 15px; }

    /* Tag pills – compact on mobile */
    .cd-tag {
        font-size: 12px;
        padding: 14px 18px;
        height: 40px;
        box-sizing: border-box;
    }
    .cd-intro-card__tags { gap: 6px; }

    /* Actions – stack full width */
    .cd-intro-card__actions { flex-direction: column; }
    .cd-intro-card__actions .btn {
        width: 100%;
        height: 56px;
        font-size: 14px;
        justify-content: center;
    }

    /* ── Content Column (Figma 649:27159) ─────────────── */
    .cd-content-col { padding: 48px 16px 56px; gap: 48px; }

    /* Collapsible blocks */
    .cd-block { gap: 20px; }
    .cd-block__title { font-size: 20px; line-height: 1.15; letter-spacing: 0.2px; }
    .cd-block__text { font-size: 15px; }
    .cd-block__readmore-label { font-size: 15px; }
    .cd-block__media { height: 201px; }

    /* USP highlights */
    .cd-block__highlights { gap: 10px; }
    .cd-block__highlights li { font-size: 16px; line-height: 1.2; }

    /* ── Share widget (Figma 649:27159) ────────────────── */
    .cd-share { border-radius: 8px; }
    .cd-share__title { font-size: 18px; line-height: 1.2; }
    .cd-share__actions { gap: 12px; }
    .cd-share__btn { width: 56px; height: 56px; }
    .cd-share__label { display: none; }
    .cd-share__inner { padding: 24px 0; gap: 20px; }

    /* ── CTA cards ────────────────────────────────────── */
    .cd-cta-card { padding: 32px 24px; min-height: 220px; }
    .cd-cta-card__title { font-size: 22px; }

    /* ── CTA container blocks — blue gradient on mobile ── */
    .cta-container-block__overlay {
        background: linear-gradient(180deg, rgba(3, 47, 54, 0.92) 0%, rgba(0, 99, 115, 0.80) 100%);
    }

    /* ── Locations section (desktop-like on mobile) ──── */
    .cd-locations-section__title { font-size: 22px; line-height: 1.15; }
    .cd-locations-section__subtitle { font-size: 15px; }
    .cd-locations-section__header { gap: 16px; margin-bottom: 32px; }
    .cd-locations-section__tabs { gap: 16px; flex-direction: column; }
    .cd-loc-card {
        width: 100%;
        border-radius: 10px;
        padding: 0;
        gap: 32px;
    }
    .cd-loc-card__name { font-size: 20px; }
    .cd-date-badge { width: 48px; height: 48px; }
    .cd-date-badge__day { font-size: 18px; }
    .cd-date-badge__month { font-size: 12px; }

    /* ── Behind the scenes (Figma 652:17251) ─────────── */
    .behind-scenes-section { padding: 0 0 40px; }
    .behind-scenes-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
        padding: 0 16px;
    }
    .behind-scenes-section__inner { gap: 40px; padding: 0; }
    .behind-scenes-section__gallery {
        flex-direction: row;
        gap: 12px;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        /* Side padding large enough so first/last items can sit at horizontal center */
        padding: 0 calc(50% - 133px);
        scrollbar-width: none;
    }
    .behind-scenes-section__gallery::-webkit-scrollbar {
        display: none;
    }
    .behind-scenes-section__image-wrap {
        height: 399px;
        border-radius: 11.4px;
        flex-shrink: 0;
        scroll-snap-align: center;
    }
    .behind-scenes-section__image-wrap--1 {
        flex: 0 0 266px;
        width: 266px;
    }
    .behind-scenes-section__image-wrap--2 {
        flex: 0 0 280px;
        width: 280px;
        height: 420px;
        border-radius: 12px;
    }
    .behind-scenes-section__image-wrap--3 {
        flex: 0 0 266px;
        width: 266px;
    }
    /* Floating badges mobile */
    .behind-scenes-section__badge {
        width: 51px;
        height: 51px;
        border-radius: 8px;
        border-width: 1.275px;
        border-color: rgba(109,124,37,0.12);
        box-shadow:
            5.3px 2.6px 13.2px rgba(0,0,0,0.1),
            18.5px 15.9px 23.8px rgba(0,0,0,0.09),
            42.3px 34.4px 31.7px rgba(0,0,0,0.05);
    }
    .behind-scenes-section__badge .icon {
        width: 22px;
        height: 22px;
    }
    .behind-scenes-section__badge--top-left {
        top: 50px;
        left: 16px;
    }
    .behind-scenes-section__badge--top-right {
        top: 101px;
        right: 34px;
    }
    .behind-scenes-section__badge--bottom-center {
        bottom: -20px;
        left: auto;
        right: 50%;
        margin-left: 0;
        transform: rotate(var(--badge-rotation, 0deg));
    }

    /* ── Sticky bar ───────────────────────────────────── */
    .cd-sticky-bar__left { display: none !important; }
    .cd-sticky-bar__right { width: 100%; gap: 0; }
    .cd-sticky-bar__right .btn:not(.btn--primary) { display: none !important; }
    .cd-sticky-bar__right .btn { font-size: 16px; padding: 14px 20px; justify-content: center; width: 100%; }
    .cd-sticky-bar__right .btn--primary { flex: 1 1 100%; }

    /* ── Hero mobile ──────────────────────────────────── */
    .cd-hero__breadcrumb-wrap { padding-top: 24px; }
    .cd-hero__breadcrumb { font-size: 12px; }

    /* ── Content blocks — prevent icon clipping ────────── */
    .cd-block__body {
        max-height: 200px;
    }
    .cd-detail {
        white-space: nowrap;
        overflow: visible;
    }
    .cd-intro-card__details {
        gap: 12px;
    }

    /* ── Related courses — horizontal swipe on mobile ── */
    .course-grid-section .course-grid-section__cards {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        gap: 16px;
        padding-bottom: 8px;
    }
    .course-grid-section .course-grid-section__card-wrap {
        flex: 0 0 280px;
        min-width: 280px;
        scroll-snap-align: start;
    }

    /* ── GPU acceleration for sticky bar ───────────────── */
    .cd-sticky-bar {
        will-change: transform, opacity;
        backface-visibility: hidden;
        -webkit-backface-visibility: hidden;
    }
    .cd-hero {
        transform: translateZ(0);
    }
}

@media (max-width: 480px) {
.course-slider__card {
    padding: 24px;
}

.course-slider__card-inner {
    gap: 24px;
}

.course-slider__title {
    font-size: 24px;
}
}

/* ═══════════════════════════════════════════════════════════
   ARCHIVE HERO  (Ons Aanbod — Figma 524:52712)
   ═══════════════════════════════════════════════════════════ */

.archive-hero {
    position: relative;
    width: 100%;
    height: 212px;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
}

.archive-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(18, 18, 18, 0.72) 0%, transparent 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1;
}

.archive-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 40px var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.archive-hero__title {
    font-family: var(--font-heading);
    font-size: 42px;
    font-weight: 700;
    color: #fff;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

/* Breadcrumb overrides inside archive hero */
.archive-hero .breadcrumbs {
    margin: 0;
    padding: 0;
}

.archive-hero .breadcrumbs__list {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.archive-hero .breadcrumbs__item {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    line-height: 150%;
    letter-spacing: 0.02em;
}

.archive-hero .breadcrumbs__item a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
}

.archive-hero .breadcrumbs__item a:hover {
    color: #fff;
}

.archive-hero .breadcrumbs__item + .breadcrumbs__item::before {
    content: '/';
    margin-right: 8px;
    color: rgba(255, 255, 255, 0.4);
}

.archive-hero .breadcrumbs__item::after {
    content: none;
}

.archive-hero .breadcrumbs__item--current {
    color: #fff;
    font-weight: 700;
}

/* Category intro text (taxonomy archive) */
.archive-category-intro {
    background-color: #fff;
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 32px var(--container-padding) 0;
}

.archive-category-intro__content {
    max-width: 720px;
}

.archive-category-intro__content p {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--color-text);
    margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   ARCHIVE FILTERS  (Figma 524:52714)
   ═══════════════════════════════════════════════════════════ */

.archive-filters {
    background-color: #fff;
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 32px 0 0;
}

.archive-filters__bar {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 32px var(--container-padding);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.archive-filters__dropdowns {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    flex: 1;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    width: 100%;
}

/* Filter dropdown */
.archive-filter-dropdown {
    position: relative;
    width: 180px;
}

.archive-filter-dropdown__toggle {
    width: 100%;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background-color: #fff;
    border: 1px solid #ECECEC;
    border-radius: 6px;
    cursor: pointer;
    transition: border-color var(--transition-fast);
    gap: 8px;
}

.archive-filter-dropdown__toggle:hover {
    border-color: #006373;
}

.archive-filter-dropdown__toggle[aria-expanded="true"] {
    border-color: #006373;
}

.archive-filter-dropdown__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: #121212;
    line-height: 150%;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.archive-filter-dropdown__count {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 100px;
    background-color: #006373;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

.archive-filter-dropdown__chevron {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: #121212;
    opacity: 0.6;
    transition: transform var(--transition-fast);
}

.archive-filter-dropdown__toggle[aria-expanded="true"] .archive-filter-dropdown__chevron {
    transform: rotate(180deg);
}

.archive-filter-dropdown__panel {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    width: 100%;
    min-width: 200px;
    background-color: #fff;
    border: 1px solid #ECECEC;
    border-radius: 6px;
    padding: 16px;
    z-index: 100;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.archive-filter-dropdown__panel[hidden] {
    display: none;
}

.archive-filter-dropdown__option {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 4px 0;
}

.archive-filter-dropdown__option input[type="checkbox"],
.archive-filter-dropdown__option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.archive-filter-dropdown__checkbox,
.archive-filter-dropdown__radio {
    width: 18px;
    height: 18px;
    border: 2px solid #ECECEC;
    border-radius: 4px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}

.archive-filter-dropdown__radio {
    border-radius: 50%;
}

.archive-filter-dropdown__option input:checked ~ .archive-filter-dropdown__checkbox,
.archive-filter-dropdown__option input:checked ~ .archive-filter-dropdown__radio {
    background-color: #006373;
    border-color: #006373;
}

.archive-filter-dropdown__option input:checked ~ .archive-filter-dropdown__checkbox::after {
    content: '';
    display: block;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin-bottom: 2px;
}

.archive-filter-dropdown__option input:checked ~ .archive-filter-dropdown__radio::after {
    content: '';
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #fff;
}

.archive-filter-dropdown__text {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 400;
    color: #121212;
    line-height: 150%;
}

/* Active filter tags (rendered inside .archive-filters, below dropdowns) */
.archive-active-tags,
.archive-filters__tags {
    background: #fff;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 16px var(--container-padding) 24px;
    /* Reserve the height of one tag row so the bar doesn't collapse
       (and the page below doesn't jump) when all filters are cleared. */
    min-height: 80px;
    box-sizing: border-box;
}

.archive-active-tags[hidden],
.archive-filters__tags[hidden] {
    display: none;
}

.archive-filter-tag {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 37px;
    padding: 14px 18px;
    border-radius: 100px;
    background-color: #006373;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    letter-spacing: 0.01em;
    white-space: nowrap;
    cursor: pointer;
    border: none;
    line-height: 1;
}

.archive-filter-tag .icon {
    width: 16px;
    height: 16px;
    color: #fff;
}

.archive-filter-tag--clear {
    background-color: rgba(250, 216, 216, 0.6);
    color: #C51212;
}

.archive-filter-tag--clear .icon {
    color: #C51212;
}

/* ═══════════════════════════════════════════════════════════
   ARCHIVE GRID  (Figma 524:52727)
   ═══════════════════════════════════════════════════════════ */

.archive-grid {
    background-color: #F7F7F7;
    width: 100%;
    padding: 48px 0 80px;
}

.archive-grid__header {
    max-width: var(--container-max);
    margin: 0 auto 32px;
    padding: 0 var(--container-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.archive-grid__heading {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 700;
    color: #121212;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.archive-grid__count {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    color: #6D6D6D;
    margin-left: 8px;
}

.archive-grid__cards {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.archive-grid__cards .course-card {
    flex: 0 0 calc(25% - 18px);
    min-width: 280px;
}

.archive-grid__empty {
    width: 100%;
    padding: 80px var(--container-padding);
    text-align: center;
}

.archive-grid__empty p {
    font-family: var(--font-body);
    font-size: 18px;
    color: #6D6D6D;
    margin: 0;
}

/* Pagination */
.archive-grid__pagination {
    max-width: var(--container-max);
    margin: 48px auto 0;
    padding: 0 var(--container-padding);
    display: flex;
    justify-content: center;
}

.archive-grid__pagination .page-numbers {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
}

.archive-grid__pagination .page-numbers li {
    list-style: none;
}

.archive-grid__pagination .page-numbers a,
.archive-grid__pagination .page-numbers span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 6px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: #121212;
    text-decoration: none;
    transition: all var(--transition-fast);
}

.archive-grid__pagination .page-numbers a:hover {
    background-color: rgba(0, 99, 115, 0.08);
    color: #006373;
}

.archive-grid__pagination .page-numbers .current {
    background-color: #006373;
    color: #fff;
}

/* ═══════════════════════════════════════════════════════════
   SEO TEXT SECTION  (Figma 524:52744)
   ═══════════════════════════════════════════════════════════ */

.seo-text-section {
    background-color: #fff;
    width: 100%;
    padding: 64px var(--container-padding);
}

/* Tighter spacing on course detail pages */
.seo-text-section + .seo-text-section {
    padding-top: 0;
}

.seo-text-section__content {
    max-width: 668px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.seo-text-section__title {
    font-family: var(--font-heading);
    font-size: 36px;
    font-weight: 700;
    color: #121212;
    line-height: 100%;
    letter-spacing: 0.01em;
    margin: 0;
}

.seo-text-section__body {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 400;
    color: #121212;
    line-height: 150%;
    opacity: 0.8;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.seo-text-section__body p {
    margin: 0 0 16px;
}

.seo-text-section__body p:last-child {
    margin-bottom: 0;
}

/* Headings inside seo-text body */
.seo-text-section__body h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: var(--color-dark, #032F36);
    margin: 48px 0 24px;
    opacity: 1;
}

.seo-text-section__body h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 26px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: var(--color-dark, #032F36);
    margin: 40px 0 16px;
    opacity: 1;
}

.seo-text-section__body h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 22px;
    line-height: 120%;
    letter-spacing: 0.01em;
    color: var(--color-dark, #032F36);
    margin: 32px 0 12px;
    opacity: 1;
}

.seo-text-section__body h5 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 120%;
    color: var(--color-dark, #032F36);
    margin: 24px 0 8px;
    opacity: 1;
}

/* First heading after section start — no top margin */
.seo-text-section__body > h2:first-child,
.seo-text-section__body > h3:first-child,
.seo-text-section__body > h4:first-child {
    margin-top: 0;
}

/* Lists */
.seo-text-section__body ul,
.seo-text-section__body ol {
    margin: 0 0 16px;
    padding-left: 24px;
}

.seo-text-section__body ul {
    list-style: none;
}

.seo-text-section__body ol {
    list-style-type: decimal;
}

.seo-text-section__body li {
    margin-bottom: 8px;
    position: relative;
    padding-left: 8px;
}

.seo-text-section__body ul > li::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}

/* Links */
.seo-text-section__body a {
    color: var(--color-secondary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.seo-text-section__body a:hover {
    color: var(--color-secondary-dark, #004F5C);
}

/* Strong / bold */
.seo-text-section__body strong,
.seo-text-section__body b {
    font-weight: 700;
    opacity: 1;
}

/* HR dividers */
.seo-text-section__body hr {
    border: none;
    border-top: 1px solid rgba(109, 124, 37, 0.25);
    margin: 48px 0;
}

/* Images */
.seo-text-section__body img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 16px 0;
}

/* Blockquote */
.seo-text-section__body blockquote {
    border-left: 4px solid var(--color-primary);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--color-primary-bg, #F2F9EA);
    font-style: italic;
    font-size: 17px;
    line-height: 1.6;
    color: var(--color-dark, #032F36);
}

/* ═══════════════════════════════════════════════════════════
   ARCHIVE — Responsive
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 1200px) {
    .archive-grid__cards .course-card {
        flex: 0 0 calc(33.333% - 16px);
    }
}

@media (max-width: 992px) {
    .archive-grid__cards .course-card {
        flex: 0 0 calc(50% - 12px);
    }

    .archive-filters__bar {
        flex-direction: column;
        align-items: flex-start;
    }

    .archive-filter-dropdown {
        width: 100%;
        max-width: 280px;
    }
}

@media (max-width: 768px) {
    /* ── Archive Hero (Figma 602:10219 mobile) ────────── */
    .archive-hero {
        height: auto;
        min-height: 160px;
        align-items: stretch;
    }

    .archive-hero__overlay {
        background: rgba(18, 18, 18, 0.32);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .archive-hero__content {
        padding: 104px 16px 32px;
        gap: 12px;
    }

    .archive-hero__title {
        font-size: 24px;
        line-height: 1.15;
    }

    .archive-hero .breadcrumbs__item {
        font-size: 12px;
    }

/* Filters hidden moved to 1024px */

    .archive-filters__dropdowns {
        display: none;
        flex-direction: column;
        width: 100%;
    }

    .archive-filters__dropdowns.is-open {
        display: flex;
        position: fixed;
        inset: 0;
        z-index: 250;
        background: #fff;
        padding: 0;
        flex-direction: column;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        pointer-events: auto;
        animation: filterDrawerSlideUp 0.3s ease;
        box-sizing: border-box;
        max-width: 100vw;
    }

    .archive-filters__dropdowns.is-open *,
    .archive-filters__dropdowns.is-open *::before,
    .archive-filters__dropdowns.is-open *::after {
        box-sizing: border-box;
    }

    @keyframes filterDrawerSlideUp {
        from { transform: translateY(100%); }
        to { transform: translateY(0); }
    }

    /* Drawer header (close + title) */
    .archive-filters__drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px;
        border-bottom: 1px solid #ECECEC;
        flex-shrink: 0;
    }

    .archive-filters__drawer-title {
        font-family: var(--font-heading);
        font-size: 20px;
        font-weight: 700;
        color: #032F36;
    }

    .archive-filters__drawer-close {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        border: none;
        background: none;
        cursor: pointer;
        color: #121212;
        padding: 0;
        border-radius: 50%;
        transition: background var(--transition-fast);
    }

    .archive-filters__drawer-close:hover {
        background: #F7F7F7;
    }

    /* Inside the drawer: dropdowns are full-width, panels visible + static */
    .archive-filters__dropdowns.is-open .archive-filter-dropdown {
        width: 100%;
        max-width: none;
        border-bottom: 1px solid #ECECEC;
        position: static;
    }

    .archive-filters__dropdowns.is-open .archive-filter-dropdown__toggle {
        border: none;
        border-radius: 0;
        height: 56px;
        padding: 16px 20px;
        background: #fff;
        justify-content: flex-start;
        gap: 8px;
    }

    .archive-filters__dropdowns.is-open .archive-filter-dropdown__chevron {
        margin-left: auto;
    }

    .archive-filters__dropdowns.is-open .archive-filter-dropdown__panel {
        display: flex;
        position: static;
        top: auto;
        box-shadow: none;
        border: 1px solid #ECECEC;
        border-radius: 6px;
        padding: 16px;
        margin: 0 20px 16px;
        width: auto;
        max-width: calc(100% - 40px);
        min-width: 0;
        flex-direction: column;
        gap: 8px;
        max-height: 250px;
        overflow-y: auto;
        overflow-x: hidden;
    }
    .archive-filters__dropdowns.is-open .archive-filter-dropdown__panel[hidden] {
        display: none !important;
    }

    /* Drawer footer (clear + submit) */
    .archive-filters__drawer-footer {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 16px 20px;
        border-top: 1px solid #ECECEC;
        margin-top: auto;
        flex-shrink: 0;
        background: #fff;
    }

    .archive-filters__drawer-clear {
        background: none;
        border: 1px solid #ECECEC;
        border-radius: 8px;
        height: 48px;
        padding: 0 20px;
        font-family: var(--font-body);
        font-size: 14px;
        font-weight: 600;
        color: #6D6D6D;
        cursor: pointer;
        white-space: nowrap;
        transition: border-color var(--transition-fast);
    }

    .archive-filters__drawer-clear:hover {
        border-color: #006373;
    }

    .archive-filters__drawer-submit {
        flex: 1;
        height: 48px;
        font-size: 14px;
    }

    .archive-filter-dropdown {
        width: 100%;
        max-width: none;
    }

    .archive-filter-dropdown--sort {
        width: 100%;
        max-width: none;
        margin-left: 0;
    }

    /* Mobile filter toggle button (hidden on desktop) */
    .archive-filters__mobile-toggle {
        display: flex;
        align-items: center;
        gap: 10px;
        height: 40px;
        padding: 0 16px;
        border-radius: 9999px;
        border: 1px solid #ECECEC;
        background: #fff;
        font-family: var(--font-body);
        font-size: 14px;
        font-weight: 600;
        color: #121212;
        cursor: pointer;
        pointer-events: auto;
        position: relative;
        box-shadow:
            4.15px 2.08px 10.37px 0px rgba(0, 0, 0, 0.10),
            0px 0px 2px 0px rgba(0, 0, 0, 0.05);
        transition: border-color var(--transition-fast);
        letter-spacing: 0.28px;
    }

    .archive-filters__mobile-toggle:hover {
        border-color: #006373;
    }

    .archive-filters__mobile-toggle .icon {
        width: 18px;
        height: 18px;
    }

    .archive-filters__mobile-toggle__count {
        position: absolute;
        top: -6px;
        right: -6px;
        display: flex;
        align-items: center;
        justify-content: center;
        min-width: 16px;
        height: 16px;
        padding: 0 4px;
        border-radius: 100px;
        background-color: #006373;
        font-family: var(--font-body);
        font-size: 10px;
        font-weight: 700;
        color: #fff;
        line-height: 1;
    }

    /* ── Active Tags (mobile) ─────────────────────────── */
    .archive-active-tags {
        padding: 12px var(--container-padding);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        flex-wrap: nowrap;
        gap: 8px;
        position: relative;
        z-index: 10;
        pointer-events: auto;
        background: #F7F7F7;
    }
    .archive-active-tags:not([hidden]) {
        display: flex;
    }

    /* ── Archive Grid (mobile) ────────────────────────── */
    .archive-grid {
        padding: 16px 0 48px;
    }

    .archive-grid__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .archive-grid__count {
        font-size: 14px;
        opacity: 0.8;
    }

    .archive-grid__cards {
        gap: 20px;
    }

    .archive-grid__cards .course-card {
        flex: 0 0 100%;
        min-width: 0;
    }

    /* ── Course Card (archive mobile) ─────────────────── */
    .course-card {
        border-radius: 10px;
    }

    .course-card__content {
        padding: 18px;
        gap: 20px;
    }

    .course-card__title {
        font-size: 18px;
        line-height: 1.2;
    }

    /* ── SEO Text (mobile) ────────────────────────────── */
    .seo-text-section {
        padding: 32px 16px;
    }

    .seo-text-section__title {
        font-size: 22px;
        line-height: 1.15;
    }

    .seo-text-section__body {
        font-size: 15px;
    }

    .seo-text-section__body h2 {
        font-size: 20px;
        margin: 24px 0 12px;
    }

    .seo-text-section__body h3 {
        font-size: 18px;
        margin: 20px 0 10px;
    }

    /* ── Category Intro (mobile) ──────────────────────── */
    .archive-category-intro {
        padding: 24px 16px 0;
    }

    .archive-category-intro__content p {
        font-size: 15px;
    }
}

/* Hide mobile-only elements on desktop */
@media (min-width: 769px) {
    .archive-filters__mobile-toggle {
        display: none;
    }

    .archive-filters__drawer-header {
        display: none;
    }

    .archive-filters__drawer-footer {
        display: none;
    }

    .archive-filter-dropdown--sort {
        margin-left: auto;
    }
}

/* ════════════════════════════════════════════════════════════
   PAGE HERO SECTION  (inner pages — Over ons, etc.)
   ════════════════════════════════════════════════════════════ */
.page-hero {
    position: relative;
    height: 212px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

.page-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.6) 100%);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 1;
}

.page-hero__content {
    position: relative;
    z-index: 2;
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--container-padding) 40px;
}

.page-hero__title {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 42px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    margin: 16px 0 0;
}

/* Breadcrumb overrides inside page hero */
.page-hero .breadcrumbs {
    margin: 0;
    padding: 0;
}

.page-hero .breadcrumbs__list {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
    text-transform: capitalize;
}

.page-hero .breadcrumbs__item {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.8);
    line-height: 150%;
}

.page-hero .breadcrumbs__item a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
}

.page-hero .breadcrumbs__item a:hover {
    color: #fff;
}

.page-hero .breadcrumbs__item::after {
    color: rgba(255, 255, 255, 0.4);
}

.page-hero .breadcrumbs__item--current {
    color: #FFFFFF;
    font-weight: 700;
}

@media (max-width: 768px) {
    .page-hero {
        height: 160px;
    }

    .page-hero__content {
        padding: 0 24px 20px;
    }

    .page-hero__title {
        font-size: 24px;
        line-height: 1.15;
    }
}

/* ════════════════════════════════════════════════════════════
   TEXT-IMAGE SECTION  (two-column text + image with accent)
   ════════════════════════════════════════════════════════════ */
.text-image-section {
    width: 100%;
    overflow: visible;
}

.text-image-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    align-items: center;
    gap: 48px;
    position: relative;
}

/* Reversed: image left, text right */
.text-image-section--reversed .text-image-section__inner {
    flex-direction: row-reverse;
}

/* Accent rectangle — positioned relative to image wrapper */
.text-image-section__accent {
    position: absolute;
    width: 309px;
    height: 340px;
    z-index: 0;
    border-radius: 0;
}

.text-image-section__accent--top-right {
    top: -32px;
    right: -32px;
}

.text-image-section__accent--bottom-left {
    bottom: -32px;
    left: -32px;
}

/* Content column */
.text-image-section__content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 32px;
    position: relative;
    z-index: 1;
}

.text-image-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.text-image-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.text-image-section__text p {
    margin: 0 0 12px;
}

.text-image-section__text p:last-child {
    margin-bottom: 0;
}

.text-image-section__actions {
    display: flex;
    gap: 12px;
}

/* Image wrapper — contains accent + image */
.text-image-section__image-wrapper {
    flex: 1;
    min-width: 0;
    position: relative;
    z-index: 1;
}

/* Image column */
.text-image-section__image {
    width: 100%;
    height: 540px;
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    z-index: 1;
}

.text-image-section__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 1024px) {
    .text-image-section__inner,
    .text-image-section--reversed .text-image-section__inner {
        flex-direction: column;
        padding: 0 24px;
    }

    .text-image-section__image-wrapper {
        width: 100%;
    }

    .text-image-section__image {
        width: 100%;
        height: 300px;
    }

    .text-image-section__accent {
        display: block;
        width: 120px;
        height: 180px;
        top: -16px;
        right: -16px;
    }

    .text-image-section__accent--bottom-left {
        top: auto;
        bottom: -16px;
        left: -16px;
        right: auto;
    }
}

@media (max-width: 768px) {
    .text-image-section {
        padding: 0;
            }

    .text-image-section__inner {
        padding: 0;
        gap: 32px;
    }

    .text-image-section__image-wrapper {
        width: 100vw;
        margin-left: calc(-50vw + 50%);
        position: relative;
    }

    .text-image-section__image {
        height: 70vh;
        min-height: 560px;
        border-radius: 0;
    }

    .text-image-section__accent {
        display: block;
        width: 140px;
        height: 180px;
        top: -16px;
        right: 0;
        z-index: 0;
    }
    
    .text-image-section__accent--bottom-left {
        top: auto;
        bottom: -16px;
        left: 0;
        right: auto;
    }

    .text-image-section__content {
        padding: 0 16px;
    }

    .text-image-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .text-image-section__text {
        font-size: 15px;
    }

    .text-image-section__content {
        gap: 24px;
    }

    .text-image-section__actions {
        flex-direction: column;
        width: 100%;
    }

    .text-image-section__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ════════════════════════════════════════════════════════════
   TEAM GRID SECTION  ("Ons team")
   ════════════════════════════════════════════════════════════ */
.team-grid-section {
    width: 100%;
    padding: 0 var(--container-padding);
    max-width: 1440px;
    margin: 0 auto;
}

.team-grid-section__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 48px;
}

.team-grid-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #6D7C25;
    margin: 0;
}

.team-grid-section__subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.team-grid-section__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* ── Team Card ─────────────────────────────────────── */
.team-card {
    position: relative;
    width: calc(33.333% - 8px);
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
}

a.team-card {
    text-decoration: none;
    color: inherit;
    display: block;
}
a.team-card:focus-visible {
    outline: 2px solid var(--color-primary, #006373);
    outline-offset: 2px;
}

.team-card__image {
    position: absolute;
    inset: 0;
    z-index: 1;
}

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

/* Hover overlay */
.team-card__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background-color: rgba(109, 124, 37, 0.9);
    display: flex;
    flex-direction: column;
    gap: 36px;
    padding: 32px;
    opacity: 0;
    transition: opacity var(--transition-base);
    box-shadow: inset 0 -4px 0 rgba(0, 0, 0, 0.18);
}

.team-card:hover .team-card__overlay,
.team-card:focus-visible .team-card__overlay {
    opacity: 1;
}

.team-card__info {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.team-card__role {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #ECECEC;
}

.team-card__name {
    font-family: 'Museo', serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    margin: 0;
}

.team-card__bio {
    flex: 1;
    overflow: hidden;
}

.team-card__bio p {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #ECECEC;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 1024px) {
    .team-grid-section {
        padding: 0 24px;
    }

    .team-card {
        width: calc(50% - 6px);
    }

    .team-card__name {
        font-size: 24px;
    }
}

@media (max-width: 768px) {
    .team-grid-section {
        padding: 0 16px;
    }

    .team-card {
        width: 100%;
        max-width: 445px;
    }

    .team-grid-section__grid {
        justify-content: center;
    }

    .team-grid-section__heading {
        font-size: 28px;
    }
}

/* ════════════════════════════════════════════════════════════
   CHEFS GRID SECTION  ("Onze chefs")
   ════════════════════════════════════════════════════════════ */
.chefs-grid-section {
    width: 100%;
    background-color: #F2F9EA;
}

.chefs-grid-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 56px;
}

.chefs-grid-section__header {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.chefs-grid-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.chefs-grid-section__subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.chefs-grid-section__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 48px 24px;
    align-items: flex-start;
}

/* ── Chef Card ─────────────────────────────────────── */
.chef-card {
    width: calc(25% - 18px);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

a.chef-card {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
a.chef-card:focus-visible {
    outline: 2px solid var(--color-primary, #006373);
    outline-offset: 4px;
    border-radius: 12px;
}

.chef-card__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
}

.chef-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-base);
}

.chef-card:hover .chef-card__image img {
    transform: scale(1.05);
}

.chef-card__info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.chef-card__role {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #6D7C25;
}

.chef-card__name {
    font-family: 'Museo', serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #6D7C25;
    margin: 0;
}

@media (max-width: 1024px) {
    .chefs-grid-section__inner {
        padding: 60px 24px;
    }

    .chef-card {
        width: calc(33.333% - 16px);
    }
}

/* Mobile arrow nav (hidden on desktop) */
.chefs-grid-section__nav { display: none; }
.chefs-grid-section__nav-divider {
    flex: 1;
    height: 2px;
    background: #ececec;
}
.chefs-grid-section__nav-buttons {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}
.chefs-grid-section__nav-btn {
    width: 56px;
    height: 56px;
    border-radius: 100px;
    border: 0.875px solid #ececec;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #121212;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
    padding: 0;
}
.chefs-grid-section__nav-btn:hover { border-color: #006373; }
.chefs-grid-section__nav-btn svg { width: 24px; height: 24px; }

@media (max-width: 768px) {
    .chefs-grid-section__inner {
        padding: 40px 0 40px 16px;
        gap: 32px;
    }

    .chefs-grid-section__header {
        padding-right: 16px;
    }

    .chefs-grid-section__heading {
        font-size: 28px;
    }

    .chef-card__name {
        font-size: 20px;
    }

    /* 2-row horizontally swipeable grid */
    .chefs-grid-section__grid {
        display: grid;
        grid-template-rows: repeat(2, auto);
        grid-auto-flow: column;
        grid-auto-columns: 240px;
        gap: 24px 16px;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        padding-right: 16px;
        scrollbar-width: none;
    }
    .chefs-grid-section__grid::-webkit-scrollbar { display: none; }

    .chef-card {
        width: 240px;
        max-width: 240px;
        scroll-snap-align: start;
        gap: 16px;
    }

    /* Show arrow nav on mobile */
    .chefs-grid-section__nav {
        display: flex;
        align-items: center;
        gap: 24px;
        width: 100%;
        padding-right: 16px;
    }
}

/* ════════════════════════════════════════════════════════════
   CTA BANNER SECTION  (bg image + overlay + accent blocks)
   ════════════════════════════════════════════════════════════ */
.cta-banner-section {
    width: 100%;
}

.cta-banner-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.cta-banner-section__wrapper {
    position: relative;
}

.cta-banner-section__card {
    position: relative;
    z-index: 1;
    border-radius: 12px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #F7F7F7;
    min-height: 364px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cta-banner-section__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

/* Accent blocks — positioned relative to wrapper, extending outside card */
.cta-banner-section__accent {
    position: absolute;
    z-index: 0;
    border-radius: 12px;
}

.cta-banner-section__accent--blue {
    width: 307px;
    height: 150px;
    background-color: #006373;
    top: -24px;
    left: -24px;
}

.cta-banner-section__accent--yellow {
    width: 334px;
    height: 166px;
    background-color: #D5A000;
    bottom: -24px;
    right: -24px;
}

/* Content */
.cta-banner-section__content {
    position: relative;
    z-index: 2;
    max-width: 668px;
    padding: 60px var(--container-padding);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.cta-banner-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    margin: 0;
}

.cta-banner-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #FFFFFF;
    opacity: 0.8;
    margin: 0;
}

.cta-banner-section__actions {
    margin-top: 8px;
}

@media (max-width: 768px) {
    .cta-banner-section__inner {
        padding: 0 16px;
    }

    .cta-banner-section__card {
        min-height: 280px;
    }

    .cta-banner-section__content {
        padding: 40px 20px;
        gap: 16px;
    }

    .cta-banner-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .cta-banner-section__text {
        font-size: 15px;
    }

    .cta-banner-section__accent--blue,
    .cta-banner-section__accent--yellow {
        display: none;
    }
}

@media (max-width: 480px) {
    .cta-banner-section__card {
        min-height: 240px;
    }

    .cta-banner-section__content {
        padding: 32px 16px;
    }
}


/* ================================================================
   Contact Block Section — "Bereik ons"
   (Figma node 712:22246)
   ================================================================ */

.contact-block-section {
    width: 100%;
    background-color: #F2F9EA;
    overflow: hidden;
}

.contact-block-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 80px var(--container-padding);
    display: flex;
    gap: 48px;
    align-items: flex-start;
}

/* Left column — heading + method tabs */
.contact-block-section__left {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.contact-block-section__text-block {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.contact-block-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0;
}

.contact-block-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.contact-block-section__methods {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Individual contact method tab */
.contact-method-tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: var(--color-white);
    border: 1px solid #ECECEC;
    border-radius: 10px;
    padding: 32px;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
    cursor: pointer;
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
    position: relative;
    overflow: hidden;
}

.contact-method-tab:hover {
    border-color: #6D7C25;
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18), 0 4px 16px rgba(109, 124, 37, 0.12);
}

.contact-method-tab__info {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
    min-width: 0;
}

.contact-method-tab__value {
    font-family: 'Museo', serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.2px;
    color: #6D7C25;
}

.contact-method-tab__desc {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
}

.contact-method-tab__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    min-width: 56px;
    border-radius: 140px;
    background-color: #6D7C25;
    color: var(--color-white);
    flex-shrink: 0;
    overflow: hidden;
}

.contact-method-tab__icon svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
    stroke: none;
}

/* Right column — map + address overlay */
.contact-block-section__map {
    flex: 1;
    min-width: 0;
    position: relative;
}

.contact-block-section__map-img {
    width: 100%;
    height: 528px;
    border-radius: 12px;
    object-fit: cover;
    display: block;
}

.contact-block-section__map-iframe {
    width: 100%;
    height: 528px;
    border-radius: 12px;
    border: none;
    display: block;
}

.contact-block-section__address-card {
    position: absolute;
    bottom: 24px;
    left: 24px;
    background: var(--color-white);
    border: 1px solid #ECECEC;
    border-radius: 12px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
    max-width: 415px;
}

.contact-block-section__address-text {
    font-family: 'Museo', serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.2px;
    color: #6D7C25;
    margin: 0;
}

.contact-block-section__directions {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.3;
    color: #6D7C25;
    opacity: 0.8;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.contact-block-section__directions:hover {
    opacity: 1;
}

/* ── Responsive ≤ 1024px (tablet → stacked) ─────────── */
@media (max-width: 1024px) {
    .contact-block-section__inner {
        flex-direction: column;
        padding: 48px 24px;
        gap: 40px;
    }

    .contact-block-section__left {
        width: 100%;
    }

    .contact-block-section__map {
        width: 100%;
    }

    .contact-block-section__map-img,
    .contact-block-section__map-iframe {
        height: 400px;
    }
}

/* ── Responsive ≤ 600px (mobile) ─────────────────────── */
@media (max-width: 600px) {
    .contact-block-section__inner {
        padding: 40px 16px;
        gap: 32px;
    }

    .contact-block-section__left {
        gap: 32px;
        width: 100%;
    }

    .contact-block-section__text-block {
        gap: 24px;
    }

    .contact-block-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.01em;
    }

    .contact-block-section__text {
        font-size: 15px;
    }

    .contact-block-section__methods {
        gap: 12px;
        width: 100%;
    }

    /* Tab: flex-col on mobile, icon bottom-right, full width */
    .contact-method-tab {
        flex-direction: column;
        align-items: flex-end;
        justify-content: flex-end;
        gap: 8px;
        padding: 24px;
        border-radius: 8px;
        width: 100%;
        box-sizing: border-box;
    }

    .contact-method-tab__info {
        width: 100%;
        gap: 16px;
    }

    .contact-method-tab__value {
        font-size: 18px;
        line-height: 1.2;
        letter-spacing: 0.18px;
    }

    .contact-method-tab__desc {
        font-size: 15px;
    }

    .contact-method-tab__icon {
        width: 48px;
        height: 48px;
        min-width: 48px;
        border-radius: 120px;
    }

    .contact-method-tab__icon svg {
        width: 19px;
        height: 19px;
    }

    /* Map: shorter, less rounding, full width */
    .contact-block-section__map {
        padding: 8px;
        width: 100%;
    }

    .contact-block-section__map-img,
    .contact-block-section__map-iframe {
        height: 280px;
        border-radius: 6px;
    }

    /* Address card: full-width inside map padding */
    .contact-block-section__address-card {
        position: absolute;
        bottom: 8px;
        left: 8px;
        right: 8px;
        max-width: none;
        padding: 16px;
        gap: 12px;
        border-radius: 6px;
        box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.18);
    }

    .contact-block-section__address-text {
        font-size: 16px;
        line-height: 1.2;
        letter-spacing: 0.16px;
    }

    .contact-block-section__directions {
        font-size: 15px;
    }
}


/* ================================================================
   Locations Grid Section — "Onze locaties"
   (Figma node 524:52986)
   ================================================================ */

.locations-grid-section {
    width: 100%;
}

.locations-grid-section__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.locations-grid-section__header {
    text-align: center;
    max-width: 680px;
    margin-bottom: 48px;
}

.locations-grid-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0 0 16px;
}

.locations-grid-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

.locations-grid-section__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    width: 100%;
    margin-bottom: 48px;
}

/* Location card (tab) */
.location-tab {
    background: var(--color-white);
    border: 1px solid #ECECEC;
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.location-tab:hover {
    border-color: #6D7C25;
    box-shadow: 0 4px 20px rgba(109, 124, 37, 0.1);
}

/* Image area with gradient overlay */
.location-tab__image-area {
    position: relative;
    height: 142px;
    overflow: hidden;
    background-color: #F0F0F0;
}

.location-tab__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.location-tab__image-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.9) 100%);
    pointer-events: none;
}

/* Info area */
.location-tab__info {
    padding: 24px 24px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.location-tab__header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.location-tab__label {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 150%;
    color: #6D6D6D;
    text-transform: none;
}

.location-tab__name {
    font-family: 'Museo', serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 100%;
    color: #6D7C25;
    margin: 0;
}

.location-tab__address {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    font-style: normal;
}

/* CTA button area */
.location-tab__cta {
    padding: 20px 24px 24px;
}

.locations-grid-section__actions {
    text-align: center;
}

@media (max-width: 1024px) {
    .locations-grid-section__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .locations-grid-section__grid {
        grid-template-columns: 1fr;
    }

    .locations-grid-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .locations-grid-section__text {
        font-size: 15px;
    }

    .location-tab__name {
        font-size: 22px;
    }
}


/* ================================================================
   Locations Grid — Grey background modifier (archive page)
   ================================================================ */

.locations-grid-section--grey {
    background-color: #F7F7F7;
    padding: 56px 0;
}

.locations-grid-section--grey .locations-grid-section__grid {
    margin-bottom: 0;
}

/* ================================================================
   Text Block Section — Simple intro heading + paragraph
   (Figma node 524:53250)
   ================================================================ */

.text-block-section {
    width: 100%;
    background: #fff;
}

.text-block-section__inner {
    padding-top: 64px;
    padding-bottom: 64px;
}

/* Inline Form Section */
.inline-form-section {
    width: 100%;
    background: #fff;
}
.inline-form-section__inner {
    max-width: 720px;
    margin: 0 auto;
    padding: 64px 24px;
}
.inline-form-section__header {
    text-align: center;
    margin-bottom: 32px;
}
.inline-form-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 1.1;
    color: #121212;
    margin: 0 0 16px;
}
.inline-form-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(18,18,18,.8);
}
@media (max-width: 768px) {
    .inline-form-section__inner { padding: 48px 16px; }
    .inline-form-section__heading { font-size: 28px; }
}

.text-block-section__heading {
    font-family: 'Museo', serif;
    font-size: 36px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0 0 24px;
}

.text-block-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    margin: 0;
}

.text-block-section__text p {
    margin: 0 0 16px;
}

.text-block-section__text p:last-child {
    margin-bottom: 0;
}

/* Collapsible text — "Meer lezen" toggle */
.text-block-section__text.is-collapsible,
.seo-text-section__body.is-collapsible,
.collapsible-group.is-collapsible {
    position: relative;
    overflow: hidden;
    /* max-height set via JS based on 5 lines */
    transition: max-height 0.4s ease;
}

.text-block-section__text.is-collapsible::after,
.seo-text-section__body.is-collapsible::after,
.collapsible-group.is-collapsible::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 48px;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.text-block-section__text.is-collapsible.is-expanded,
.seo-text-section__body.is-collapsible.is-expanded,
.collapsible-group.is-collapsible.is-expanded {
    max-height: none !important;
    overflow: visible;
}

.text-block-section__text.is-collapsible.is-expanded::after,
.seo-text-section__body.is-collapsible.is-expanded::after,
.collapsible-group.is-collapsible.is-expanded::after {
    opacity: 0;
}

.text-block-section__readmore {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    margin-top: 24px;
}

.text-block-section__readmore-label {
    font-family: var(--font-body, 'Lato'), sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: #006373;
    text-decoration: underline;
}

.text-block-section__readmore .icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: #006373;
    transition: transform 0.3s ease;
}

.text-block-section__text.is-expanded + .text-block-section__readmore .icon,
.seo-text-section__body.is-expanded + .text-block-section__readmore .icon,
.collapsible-group.is-expanded + .text-block-section__readmore .icon {
    transform: rotate(180deg);
}

@media (max-width: 600px) {
    .text-block-section__heading {
        font-size: 24px;
        line-height: 1.15;
    }

    .text-block-section__text {
        font-size: 15px;
    }

    .text-block-section__readmore-label {
        font-size: 15px;
    }

    .text-block-section__inner {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}

/* Boxed variant — block centered on the page, text stays left-aligned.
   Used for the team member detail pages (full text, no "Meer lezen"). */
.text-block-section--boxed .text-block-section__inner {
    max-width: 667px;
    margin-left: auto;
    margin-right: auto;
}

.text-block-section--boxed .text-block-section__heading,
.text-block-section--boxed .text-block-section__text {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: left !important;
}

/* Legacy "Vorige/Volgende medewerker" nav embedded in the migrated text.
   Add breathing room above it and space the two links out. The nav lives in
   a Bootstrap-style .row that follows the body paragraphs with no gap. */
.text-block-section--boxed .row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid rgba(18, 18, 18, .1);
}

.text-block-section--boxed .previous-employee-link {
    margin-right: auto;
}

.text-block-section--boxed .next-employee-link {
    text-align: right;
    margin-left: auto;
}

.text-block-section--boxed .previous-employee-link a,
.text-block-section--boxed .next-employee-link a {
    font-weight: 700;
    color: #006373;
    text-decoration: none;
}

.text-block-section--boxed .previous-employee-link a:hover,
.text-block-section--boxed .next-employee-link a:hover {
    text-decoration: underline;
}

/* ================================================================
   CTA Container Section — Two side-by-side CTA blocks
   (Figma node 417:15348)
   ================================================================ */

.cta-container-section {
    width: 100%;
}

.cta-container-section__inner {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.cta-container-block {
    position: relative;
    background: #6D7C25;
    border-radius: 12px;
    overflow: hidden;
    padding: 48px;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.cta-container-block__image-wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.cta-container-block__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cta-container-block__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, rgba(6, 59, 67, 0.78) 0%, rgba(6, 59, 67, 0.35) 100%);
}

.cta-container-block__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 520px;
}

.cta-container-block__title {
    font-family: 'Museo', serif;
    font-size: 26px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: white;
    margin: 0;
}

.cta-container-block__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: white;
    margin: 0;
}

.cta-container-block__actions {
    display: flex;
    gap: 12px;
    align-items: center;
}

@media (max-width: 900px) {
    .cta-container-section__inner {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .cta-container-block {
        padding: 32px 24px;
        min-height: 180px;
    }

    .cta-container-block__title {
        font-size: 22px;
    }
}


/* ================================================================
   Contact Form Section — "Contactformulier"
   (Figma node 400:39710)
   ================================================================ */

.contact-form-section {
    width: 100%;
}

.contact-form-section__inner {
    max-width: 748px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.contact-form-section__header {
    text-align: center;
    margin-bottom: 48px;
}

.contact-form-section__heading {
    font-family: 'Museo', serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0 0 16px;
}

.contact-form-section__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 150%;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

/* Form fields grid */
.contact-form__fields {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-bottom: 32px;
}

.contact-form__field--half {
    flex: 1 1 calc(50% - 12px);
    min-width: 200px;
}

.contact-form__field--full {
    flex: 1 1 100%;
}

/* Input wrapper — floating label support */
.contact-form__input-wrap {
    position: relative;
}

.contact-form__input,
.contact-form__textarea {
    width: 100%;
    background-color: #F7F7F7;
    border: none;
    border-bottom: 2px solid #ECECEC;
    border-radius: 4px 4px 0 0;
    padding: 24px 16px 8px;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #121212;
    outline: none;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.contact-form__input {
    height: 56px;
}

.contact-form__textarea {
    min-height: 200px;
    resize: vertical;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
    border-bottom-color: #006373;
}

.contact-form__input.is-error,
.contact-form__textarea.is-error {
    border-bottom-color: #C51212;
}

/* Floating label */
.contact-form__label {
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #6D6D6D;
    pointer-events: none;
    transition: all 0.2s ease;
}

.contact-form__input-wrap--textarea .contact-form__label {
    top: 20px;
    transform: none;
}

/* Float label up when input has value or focus */
.contact-form__input:focus ~ .contact-form__label,
.contact-form__input:not(:placeholder-shown) ~ .contact-form__label {
    top: 8px;
    transform: none;
    font-size: 12px;
    color: #6D6D6D;
}

.contact-form__textarea:focus ~ .contact-form__label,
.contact-form__textarea:not(:placeholder-shown) ~ .contact-form__label {
    top: 8px;
    font-size: 12px;
    color: #6D6D6D;
}

.contact-form__required {
    color: #C51212;
}

/* reCAPTCHA */
.contact-form__recaptcha {
    margin-bottom: 32px;
}

/* Submit button */
.contact-form__submit {
    display: flex;
}

/* Form messages */
.contact-form__message {
    border-radius: 8px;
    padding: 16px 20px;
    font-family: 'Lato', sans-serif;
    font-size: 15px;
    line-height: 150%;
    margin-bottom: 24px;
}
.contact-form__message--success {
    background-color: var(--green-tint, #F2F9EA);
    color: #2D5016;
    border: 1px solid #A3C585;
}
.contact-form__message--error {
    background-color: #FFF0F0;
    color: #9C3035;
    border: 1px solid #E8A0A4;
}

/* Field-level error text */
.contact-form__field-error {
    display: block;
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    color: #C51212;
    margin-top: 4px;
    padding-left: 16px;
}

@media (max-width: 600px) {
    .contact-form-section__inner {
        padding: 0 16px;
    }

    .contact-form__field--half {
        flex: 1 1 100%;
    }

    .contact-form-section__heading {
        font-size: 26px;
    }
}

/* ═══════════════════════════════════════════════════════════
   LOCATION INTRO SECTION
   Narrow centered column with about text, CTA, travel info
   ═══════════════════════════════════════════════════════════ */

.location-intro-section {
    width: 100%;
    display: flex;
    justify-content: center;
}

.location-intro-section__inner {
    width: 100%;
    max-width: 668px;
    display: flex;
    flex-direction: column;
    gap: 56px;
    padding: 0 24px;
}

.location-intro-section__text-block {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.location-intro-section__heading {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: #121212;
    margin: 0;
}

.location-intro-section__description {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
}

.location-intro-section__description p {
    margin: 0 0 16px;
}

.location-intro-section__description p:last-child {
    margin-bottom: 0;
}

.location-intro-section__cta {
    display: flex;
    gap: 12px;
    align-items: center;
}

/* Travel directions */
.location-intro-section__travel {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.location-intro-section__travel-block {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.location-intro-section__travel-title {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.2px;
    color: #121212;
    margin: 0;
}

.location-intro-section__travel-text {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    margin: 0;
}

@media (max-width: 768px) {
    .location-intro-section__inner {
        gap: 48px;
        padding: 0 16px;
    }

    .location-intro-section__text-block {
        gap: 24px;
    }

    .location-intro-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }

    .location-intro-section__description {
        font-size: 15px;
    }

    .location-intro-section__cta {
        width: 100%;
    }

    .location-intro-section__cta .btn {
        width: 100%;
        justify-content: center;
    }

    .location-intro-section__travel {
        gap: 32px;
    }

    .location-intro-section__travel-block {
        gap: 20px;
    }

    .location-intro-section__travel-title {
        font-size: 18px;
        line-height: 1.2;
        letter-spacing: 0.18px;
    }

    .location-intro-section__travel-text {
        font-size: 15px;
    }
}


/* ═══════════════════════════════════════════════════════════
   LOCATION COURSES SECTION
   Grey background grid of courses at this location
   ═══════════════════════════════════════════════════════════ */

.location-courses-section {
    width: 100%;
    background: #F7F7F7;
    padding: 80px var(--container-padding);
}

.location-courses-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.location-courses-section__header {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 668px;
}

.location-courses-section__heading {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: #121212;
    margin: 0;
}

.location-courses-section__subtitle {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
}

.location-courses-section__subtitle p {
    margin: 0;
}

.location-courses-section__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    align-content: center;
}

.location-courses-section__grid .course-card {
    width: 322px;
    flex-shrink: 0;
}

.location-courses-section__empty {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #6D6D6D;
    font-style: italic;
}

.location-courses-section__footer {
    display: flex;
    flex-direction: column;
    gap: 32px;
    align-items: flex-start;
}

.location-courses-section__seo-text {
    font-family: 'Lato', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    max-width: 668px;
}

.location-courses-section__seo-text a {
    color: #6D7C25;
    text-decoration: underline;
}

.location-courses-section__seo-text a:hover {
    color: #5a6a1e;
}

@media (max-width: 1024px) {
    .location-courses-section {
        padding: 60px 24px;
    }

    .location-courses-section__grid .course-card {
        width: calc(50% - 12px);
    }
}

@media (max-width: 600px) {
    .location-courses-section {
        padding: 40px 16px;
    }

    .location-courses-section__heading {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }

    .location-courses-section__subtitle {
        font-size: 15px;
    }

    .location-courses-section__grid {
        gap: 16px;
    }

    .location-courses-section__grid .course-card {
        width: 100%;
        flex: 0 0 100%;
    }
}

/* ==========================================================================
   404 ERROR PAGE
   ========================================================================== */

.error-404-section {
    background-color: var(--green-tint, #F2F9EA);
    min-height: 636px;
    padding: 169px var(--container-padding);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
}

.error-404__content {
    position: relative;
    z-index: 2;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.error-404__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 80px;
    line-height: 1;
    color: var(--green, #6D7C25);
    margin: 0;
    letter-spacing: 0.8px;
}

.error-404__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: var(--green, #6D7C25);
    margin: 0;
}

.error-404__illustration {
    position: absolute;
    bottom: 0;
    right: -28px;
    z-index: 1;
    width: 792px;
    height: 619px;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
}

.error-404__illustration svg,
.error-404__illustration img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom right;
}

@media (max-width: 1024px) {
    .error-404-section {
        padding: 100px var(--container-padding);
        min-height: 500px;
    }

    .error-404__title {
        font-size: 56px;
    }

    .error-404__illustration {
        width: 500px;
        height: 400px;
    }
}

@media (max-width: 768px) {
    .error-404-section {
        padding: 80px 20px;
        min-height: 400px;
    }

    .error-404__title {
        font-size: 40px;
    }

    .error-404__illustration {
        display: none;
    }
}

/* ==========================================================================
   PAYMENT STATUS PAGE (Mollie / Pronamic result pages)
   ========================================================================== */

.payment-status-section {
    min-height: 60vh;
    padding: 96px var(--container-padding);
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #EAF4F6;
}

.payment-status-section--error {
    background-color: #FBEEEC;
}

.payment-status__content {
    max-width: 560px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 24px;
}

.payment-status__icon {
    width: 72px;
    height: 72px;
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
}

.payment-status__icon svg {
    width: 36px;
    height: 36px;
}

.payment-status__icon--success {
    background-color: #006373;
    color: #fff;
}

.payment-status__icon--error {
    background-color: #9C3035;
    color: #fff;
}

.payment-status__icon--neutral {
    background-color: #D5A000;
    color: #fff;
}

.payment-status__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 56px;
    line-height: 1.05;
    color: #123;
    margin: 0;
    letter-spacing: 0.4px;
}

.payment-status__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #123;
    opacity: 0.8;
    margin: 0;
    max-width: 440px;
}

.payment-status__lines {
    width: 100%;
    margin: 8px 0;
    font-family: var(--font-body);
    font-size: 15px;
    color: #123;
}

.payment-status__lines table {
    width: 100%;
    border-collapse: collapse;
}

.payment-status__lines th,
.payment-status__lines td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    text-align: left;
}

.payment-status__actions {
    margin-top: 8px;
}

@media (max-width: 768px) {
    .payment-status-section {
        padding: 64px 20px;
    }

    .payment-status__title {
        font-size: 36px;
    }
}

/* ==========================================================================
   NEWS CARD COMPONENT
   ========================================================================== */

.news-card {
    background: var(--white, #fff);
    border: 1px solid var(--grey-03, #ECECEC);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: calc(33.333% - 16px);
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.news-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.news-card__link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.news-card__image-wrap {
    height: 320px;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
}

.news-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.news-card:hover .news-card__image {
    transform: scale(1.03);
}

.news-card__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 24px;
    flex: 1;
}

.news-card__meta {
    display: flex;
    gap: 16px;
    align-items: center;
}

.news-card__label {
    background: var(--bg-grey, #F7F7F7);
    padding: 10px;
    border-radius: 5px;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    color: var(--blue, #006373);
}

.news-card__date {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.28px;
    color: #767676;
}

.news-card__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    letter-spacing: 0.26px;
    color: var(--black, #121212);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card__excerpt {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: var(--black, #121212);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card__read-more {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: var(--blue, #006373);
    text-decoration: underline;
    margin-top: auto;
}

/* Featured news card — larger, spans first position */
.news-card--featured {
    width: calc(66.666% - 8px);
    min-width: 0;
}

@media (max-width: 1024px) {
    .news-card {
        width: calc(50% - 12px);
    }

    .news-card--featured {
        width: 100%;
    }

    .news-card__image-wrap {
        height: 240px;
    }
}

@media (max-width: 768px) {
    .news-card {
        width: 100%;
    }

    .news-card--featured {
        width: 100%;
    }

    .news-card__title {
        font-size: 22px;
    }

    .news-card__image-wrap {
        height: 200px;
    }
}

/* ==========================================================================
   NEWS GRID SECTION (OVERVIEW)
   ========================================================================== */

.news-grid-section {
    background: var(--bg-grey, #F7F7F7);
    padding: 48px var(--container-padding);
}

.news-grid-section__container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: center;
}

.news-grid-section__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.news-grid-section__heading-wrap {
    display: flex;
    gap: 12px;
    align-items: baseline;
}

.news-grid-section__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: var(--black, #121212);
    margin: 0;
}

.news-grid-section__count {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: var(--grey-01, #6D6D6D);
}

.news-grid-section__sort {
    position: relative;
    display: flex;
    align-items: center;
}

.news-grid-section__sort-select {
    appearance: none;
    -webkit-appearance: none;
    background: var(--white, #fff);
    border: 1px solid var(--grey-03, #ECECEC);
    border-radius: 6px;
    padding: 14px 40px 14px 16px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.28px;
    color: var(--black, #121212);
    cursor: pointer;
    min-width: 180px;
}

.news-grid-section__sort .icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.news-grid-section__posts {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    width: 100%;
}

.news-grid-section__empty {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--grey-01, #6D6D6D);
    text-align: center;
    padding: 48px 0;
    width: 100%;
}

/* Pagination */
.news-pagination {
    display: flex;
    justify-content: center;
}

.news-pagination ul {
    display: flex;
    gap: 5px;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.news-pagination li {
    margin: 0;
}

.news-pagination a,
.news-pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 21.88px;
    letter-spacing: 0.44px;
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
}

.news-pagination a {
    background: var(--white, #fff);
    border: 1.25px solid var(--grey-03, #ECECEC);
    color: var(--grey-01, #6D6D6D);
}

.news-pagination a:hover {
    background: var(--bg-grey, #F7F7F7);
}

.news-pagination .current {
    background: var(--green, #6D7C25);
    color: var(--white, #fff);
    border: none;
}

.news-pagination .dots {
    background: var(--white, #fff);
    color: var(--grey-01, #6D6D6D);
    border: none;
    cursor: default;
}

.news-pagination__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-pagination__arrow--prev {
    transform: rotate(180deg);
}

@media (max-width: 768px) {
    .news-grid-section {
        padding: 32px 16px;
    }

    .news-grid-section__header {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
    }

    .news-grid-section__heading {
        font-size: 26px;
    }

    .news-grid-section__sort-select {
        min-width: 100%;
    }
}

/* ==========================================================================
   NEWS INTRO SECTION (DETAIL PAGE)
   ========================================================================== */

.news-intro-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 0;
    position: relative;
}

.news-intro-section__hero {
    width: 100%;
    height: 424px;
    position: relative;
    overflow: hidden;
}

.news-intro-section__hero-image {
    width: 100%;
    height: 592px;
    background-size: cover;
    background-position: center;
    position: absolute;
    top: 0;
    left: 0;
}

.news-intro-section__hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}

.news-intro-section__breadcrumb {
    position: absolute;
    top: 40px;
    left: 40px;
    z-index: 2;
}

.news-intro-section__breadcrumb .breadcrumbs,
.news-intro-section__breadcrumb .breadcrumbs a,
.news-intro-section__breadcrumb .breadcrumbs span {
    color: #fff;
}

.news-intro-section__card {
    background: var(--white, #fff);
    border-radius: 12px;
    box-shadow:
        0px 35px 10px 0px rgba(0, 0, 0, 0),
        0px 23px 9px 0px rgba(0, 0, 0, 0.01),
        0px 13px 8px 0px rgba(0, 0, 0, 0.02),
        0px 6px 6px 0px rgba(0, 0, 0, 0.03),
        0px 1px 3px 0px rgba(0, 0, 0, 0.04);
    padding: 32px;
    width: 668px;
    max-width: calc(100% - 80px);
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: -200px;
    position: relative;
    z-index: 3;
}

.news-intro-section__meta {
    display: flex;
    gap: 16px;
    align-items: center;
}

.news-intro-section__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 36px;
    line-height: 1;
    letter-spacing: 0.36px;
    color: var(--blue, #006373);
    margin: 0;
}

.news-intro-section__subtitle {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    line-height: 1.5;
    color: var(--blue, #006373);
    margin: 0;
}

.news-intro-section__excerpt {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: var(--black, #121212);
}

.news-intro-section__excerpt p {
    margin: 0;
}

@media (max-width: 768px) {
    .news-intro-section {
        margin-bottom: 64px;
    }

    .news-intro-section__hero {
        height: 280px;
    }

    .news-intro-section__card {
        width: calc(100% - 32px);
        margin-top: -120px;
        padding: 24px;
    }

    .news-intro-section__title {
        font-size: 26px;
    }

    .news-intro-section__breadcrumb {
        top: 20px;
        left: 20px;
    }
}

/* ==========================================================================
   NEWS ARTICLE CONTENT (DETAIL PAGE)
   ========================================================================== */

.news-article {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 64px;
    padding: 38px var(--container-padding);
    max-width: 1440px;
    margin: 0 auto;
}

.news-article__content {
    width: 667px;
    max-width: 100%;
}

.news-article__content h2,
.news-article__content h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: var(--black, #121212);
    margin: 0 0 32px 0;
}

.news-article__content h3 {
    font-size: 26px;
    letter-spacing: 0.26px;
}

.news-article__content p {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: var(--black, #121212);
    margin: 0 0 16px 0;
}

.news-article__content img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    overflow: hidden;
    margin: 16px 0;
}

.news-article__content .wp-block-image {
    margin: 32px 0;
}

.news-article__content .wp-block-image img {
    border-radius: 10px;
}

.news-article__content ul,
.news-article__content ol {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--black, #121212);
    padding-left: 24px;
    margin: 0 0 16px 0;
}

.news-article__content ul {
    list-style: none;
}

.news-article__content ol {
    list-style-type: decimal;
}

.news-article__content li {
    position: relative;
    padding-left: 8px;
    margin-bottom: 8px;
}

.news-article__content ul > li::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}

.news-article__content blockquote {
    border-left: 4px solid var(--blue, #006373);
    padding: 16px 24px;
    margin: 24px 0;
    font-style: italic;
    color: var(--grey-01, #6D6D6D);
}

.news-article__cta-row {
    display: flex;
    gap: 12px;
    align-items: center;
    width: 667px;
    max-width: 100%;
}

@media (max-width: 768px) {
    .news-article {
        padding: 0 16px 64px;
        gap: 40px;
    }

    .news-article__content {
        width: 100%;
    }

    .news-article__content h2 {
        font-size: 26px;
    }

    .news-article__cta-row {
        width: 100%;
        flex-direction: column;
    }

    .news-article__cta-row .btn {
        width: 100%;
    }
}

/* ==========================================================================
   NEWS SHARE SECTION
   ========================================================================== */

.news-share {
    background: var(--green-tint, #F2F9EA);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    width: 668px;
    max-width: 100%;
    margin: 0 auto;
}

.news-share__accent {
    width: 10px;
    background: var(--green, #6D7C25);
    flex-shrink: 0;
}

.news-share__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 32px;
}

.news-share__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.2px;
    color: var(--green, #6D7C25);
    margin: 0;
}

.news-share__buttons {
    display: flex;
    gap: 16px;
    align-items: center;
}

.news-share__btn {
    width: 64px;
    height: 64px;
    border-radius: 100px;
    border: 1px solid var(--grey-03, #ECECEC);
    background: var(--white, #fff);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    transition: background 0.2s;
    position: relative;
}

.news-share__btn:hover {
    background: var(--bg-grey, #F7F7F7);
}

.news-share__btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.news-share__btn-icon svg {
    width: 24px;
    height: 24px;
}

.news-share__btn-label {
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.12px;
    color: var(--green, #6D7C25);
    text-align: center;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .news-share {
        width: 100%;
        border-radius: 8px;
    }
    .news-share__content {
        padding: 24px;
        gap: 20px;
    }
    .news-share__title {
        font-size: 18px;
        line-height: 1.2;
    }
    .news-share__buttons {
        gap: 12px;
    }
    .news-share__btn {
        width: 56px;
        height: 56px;
        border-width: 0.875px;
    }
    .news-share__btn-label {
        display: none;
    }
}

/* ==========================================================================
   NEWS RELATED SECTION
   ========================================================================== */

.news-related-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    padding: 0 var(--container-padding) 64px;
    max-width: 1440px;
    margin: 0 auto;
    width: 100%;
}

.news-related-section__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: var(--black, #121212);
    margin: 0;
}

.news-related-section__grid {
    display: flex;
    gap: 24px;
    width: 100%;
    justify-content: center;
}

.news-related-section__grid .news-card {
    width: 437px;
    flex-shrink: 0;
}

@media (max-width: 1024px) {
    .news-related-section__grid .news-card {
        width: calc(50% - 12px);
        flex-shrink: 1;
    }

    .news-related-section__grid .news-card:nth-child(3) {
        display: none;
    }
}

@media (max-width: 768px) {
    .news-related-section {
        padding: 0 16px 40px;
        gap: 24px;
    }

    .news-related-section__heading {
        font-size: 26px;
    }

    .news-related-section__grid {
        flex-direction: column;
    }

    .news-related-section__grid .news-card {
        width: 100%;
    }

    .news-related-section__grid .news-card:nth-child(3) {
        display: flex;
    }
}

/* ════════════════════════════════════════════════════════════
   STANDAARD PAGINA  (legal / standard content pages)
   ════════════════════════════════════════════════════════════ */
.standaard-content {
    padding: 48px var(--container-padding) 80px;
    background-color: var(--color-white);
}

.standaard-content__inner {
    max-width: 667px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* English-please button row */
.standaard-content__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ── Typography inside WYSIWYG body ───────────────────────── */
.standaard-content__body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--color-black);
}

.standaard-content__body h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: var(--color-black);
    margin: 0 0 32px;
}

.standaard-content__body h3 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 26px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: var(--color-black);
    margin: 32px 0 16px;
}

.standaard-content__body h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 22px;
    line-height: 120%;
    letter-spacing: 0.01em;
    color: var(--color-black);
    margin: 24px 0 12px;
}

.standaard-content__body p {
    margin: 0 0 16px;
}

.standaard-content__body p:last-child {
    margin-bottom: 0;
}

.standaard-content__body ul,
.standaard-content__body ol {
    margin: 0 0 16px;
    padding-left: 24px;
}

.standaard-content__body ul {
    list-style: none;
}

.standaard-content__body ol {
    list-style-type: decimal;
}

.standaard-content__body li {
    margin-bottom: 8px;
    position: relative;
    padding-left: 8px;
}

.standaard-content__body ul > li::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}

.standaard-content__body a {
    color: var(--color-secondary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.standaard-content__body hr {
    border: none;
    border-top: 1px solid var(--color-primary-light, rgba(109, 124, 37, 0.25));
    margin: 48px 0;
}

.standaard-content__body a:hover {
    color: var(--color-blue-dark);
}

.standaard-content__body strong,
.standaard-content__body b {
    font-weight: 700;
}

.standaard-content__body blockquote {
    border-left: 4px solid var(--color-secondary);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--color-bg-light);
    font-style: italic;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 768px) {
    .standaard-content {
        padding: 32px 20px 64px;
    }

    .standaard-content__body h2 {
        font-size: 26px;
        margin-bottom: 24px;
    }

    .standaard-content__body h3 {
        font-size: 22px;
        margin-top: 24px;
    }
}

/* ════════════════════════════════════════════════════════════
   ENROLLMENT HERO  (solid dark-blue, centered — Figma 675:19933)
   ════════════════════════════════════════════════════════════ */
.enrollment-hero {
    position: relative;
    width: 100%;
    height: 212px;
    background-color: var(--color-blue-dark, #032F36);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 0 var(--container-padding);
}

.enrollment-hero__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 100%;
    max-width: 1440px;
    color: #fff;
}

.enrollment-hero__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 42px;
    line-height: 100%;
    letter-spacing: 0.01em;
    color: #FFFFFF;
    text-align: center;
    margin: 0;
}

/* Breadcrumb overrides inside enrollment hero */
.enrollment-hero .breadcrumbs {
    margin: 0;
    padding: 0;
}

.enrollment-hero .breadcrumbs__list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
    text-transform: lowercase;
}

.enrollment-hero .breadcrumbs__item {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    line-height: 150%;
    letter-spacing: 0.02em;
}

.enrollment-hero .breadcrumbs__item a {
    color: rgba(255, 255, 255, 0.8);
    text-decoration: none;
}

.enrollment-hero .breadcrumbs__item a:hover {
    color: #fff;
}

.enrollment-hero .breadcrumbs__item + .breadcrumbs__item::before {
    content: '/';
    margin-right: 8px;
    color: rgba(255, 255, 255, 0.4);
}

.enrollment-hero .breadcrumbs__item--current {
    color: #fff;
}

/* ── Narrow form variant (enrollment pages) ─────────────── */
.contact-form-section__inner--narrow {
    max-width: 668px;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 768px) {
    .enrollment-hero {
        height: 180px;
        padding: 0 20px;
    }

    .enrollment-hero__title {
        font-size: 28px;
    }
}

/* ════════════════════════════════════════════════════════════
   GLOBAL WYSIWYG LIST STYLE RESTORE
   The design-system reset strips list-style from all ul/ol.
   Re-enable bullets & numbers inside any rich-text content area.
   ════════════════════════════════════════════════════════════ */
.entry-content ul,
.wp-block-list ul,
.the-content ul { list-style: none; }

.entry-content ol,
.wp-block-list ol,
.the-content ol { list-style-type: decimal; }

.entry-content ul,
.entry-content ol,
.wp-block-list ul,
.wp-block-list ol,
.the-content ul,
.the-content ol {
    padding-left: 24px;
    margin: 0 0 16px;
}

.entry-content li,
.wp-block-list li,
.the-content li {
    position: relative;
    padding-left: 8px;
    margin-bottom: 8px;
}

.entry-content ul > li::before,
.wp-block-list ul > li::before,
.the-content ul > li::before {
    content: '';
    position: absolute;
    left: -16px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background-color: var(--color-primary);
}

/* ════════════════════════════════════════════════════════════
   GLOBAL WYSIWYG TYPOGRAPHY
   Covers all rich-text content output by WordPress (the_content).
   Scoped to common content wrappers so it never leaks into
   navigation, widgets, or component markup.
   ════════════════════════════════════════════════════════════ */
.standaard-content__body,
.news-article__content,
.cd-block__text,
.entry-content,
.the-content {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* ── hr ─────────────────────────────────────────────────── */
.standaard-content__body hr,
.news-article__content hr,
.cd-block__text hr,
.entry-content hr,
.the-content hr {
    border: none;
    border-top: 1px solid rgba(109, 124, 37, 0.25);
    margin: 48px 0;
}

/* ── Tables ─────────────────────────────────────────────── */
.standaard-content__body table,
.news-article__content table,
.entry-content table,
.the-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.5;
}

.standaard-content__body th,
.news-article__content th,
.entry-content th,
.the-content th {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-black);
    background: var(--color-primary-bg, #F2F9EA);
    text-align: left;
    padding: 12px 16px;
    border-bottom: 2px solid var(--color-primary);
}

.standaard-content__body td,
.news-article__content td,
.entry-content td,
.the-content td {
    padding: 10px 16px;
    border-bottom: 1px solid #E8E8E8;
    vertical-align: top;
}

.standaard-content__body tr:last-child td,
.news-article__content tr:last-child td,
.entry-content tr:last-child td,
.the-content tr:last-child td {
    border-bottom: none;
}

.standaard-content__body caption,
.news-article__content caption,
.entry-content caption,
.the-content caption {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--color-text-light, #6D6D6D);
    text-align: left;
    margin-bottom: 8px;
    caption-side: top;
}

/* ── Images & figures ───────────────────────────────────── */
.standaard-content__body img,
.news-article__content img,
.entry-content img,
.the-content img {
    max-width: 100%;
    height: auto;
    border-radius: 6px;
    margin: 16px 0;
}

.standaard-content__body figure,
.news-article__content figure,
.entry-content figure,
.the-content figure {
    margin: 24px 0;
    max-width: 100%;
}

.standaard-content__body figcaption,
.news-article__content figcaption,
.entry-content figcaption,
.the-content figcaption {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--color-text-light, #6D6D6D);
    margin-top: 8px;
    text-align: center;
}

/* ── Embeds / iframes (video, maps) ─────────────────────── */
.standaard-content__body iframe,
.news-article__content iframe,
.entry-content iframe,
.the-content iframe {
    max-width: 100%;
    border: none;
    border-radius: 6px;
    margin: 24px 0;
}

/* ── Inline text styles ─────────────────────────────────── */
.standaard-content__body em,
.standaard-content__body i,
.news-article__content em,
.news-article__content i,
.entry-content em,
.entry-content i,
.the-content em,
.the-content i {
    font-style: italic;
}

.standaard-content__body u,
.news-article__content u,
.entry-content u,
.the-content u {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.standaard-content__body sup,
.news-article__content sup,
.entry-content sup,
.the-content sup {
    font-size: 0.75em;
    vertical-align: super;
    line-height: 0;
}

.standaard-content__body sub,
.news-article__content sub,
.entry-content sub,
.the-content sub {
    font-size: 0.75em;
    vertical-align: sub;
    line-height: 0;
}

.standaard-content__body mark,
.news-article__content mark,
.entry-content mark,
.the-content mark {
    background: var(--color-primary-bg, #F2F9EA);
    padding: 2px 4px;
    border-radius: 2px;
}

/* ── h5 / h6  ───────────────────────────────────────────── */
.standaard-content__body h5,
.news-article__content h5,
.entry-content h5,
.the-content h5 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 120%;
    letter-spacing: 0.01em;
    color: var(--color-black);
    margin: 24px 0 8px;
}

.standaard-content__body h6,
.news-article__content h6,
.entry-content h6,
.the-content h6 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 120%;
    letter-spacing: 0.01em;
    color: var(--color-text-light, #6D6D6D);
    text-transform: uppercase;
    margin: 24px 0 8px;
}

/* ── Blockquote (global) ────────────────────────────────── */
.news-article__content blockquote,
.entry-content blockquote,
.the-content blockquote {
    border-left: 4px solid var(--color-primary);
    padding: 16px 24px;
    margin: 24px 0;
    background: var(--color-primary-bg, #F2F9EA);
    font-style: italic;
    font-size: 17px;
    line-height: 1.6;
    color: var(--color-black);
}

/* ── Pre / code ─────────────────────────────────────────── */
.standaard-content__body pre,
.news-article__content pre,
.entry-content pre,
.the-content pre {
    background: #F5F5F5;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    padding: 16px 20px;
    margin: 24px 0;
    overflow-x: auto;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 14px;
    line-height: 1.6;
}

.standaard-content__body code,
.news-article__content code,
.entry-content code,
.the-content code {
    background: #F5F5F5;
    padding: 2px 6px;
    border-radius: 3px;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 0.9em;
}

.standaard-content__body pre code,
.news-article__content pre code,
.entry-content pre code,
.the-content pre code {
    background: none;
    padding: 0;
}

/* ── Responsive table scroll ────────────────────────────── */
@media (max-width: 768px) {
    .standaard-content__body table,
    .news-article__content table,
    .entry-content table,
    .the-content table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* ═══════════════════════════════════════════════════════════
   PROEFLES PAGE
   ═══════════════════════════════════════════════════════════ */

/* ── Intro ─────────────────────────────────────────────── */
.proefles-intro {
    padding: 0 0 48px;
}

.proefles-intro__inner {
    max-width: 800px;
    margin: 0 auto;
    text-align: left;
}

.proefles-intro__heading {
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 16px;
}

.proefles-intro__text {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: #4a4a4a;
    margin-bottom: 12px;
}

.proefles-intro__text strong {
    color: var(--color-primary);
    font-weight: 700;
}

.proefles-intro__cta-text {
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 600;
    color: var(--color-dark);
    margin-top: 24px;
}

/* ── Location cards grid ───────────────────────────────── */
.proefles-locations {
    padding: 0 0 48px;
}

.proefles-locations__inner {
    max-width: 1200px;
    margin: 0 auto;
}

.proefles-locations__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* ── Location card ─────────────────────────────────────── */
.proefles-location-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--color-border);
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.proefles-location-card:hover {
    box-shadow: 0 8px 32px rgba(3, 47, 54, 0.10);
    transform: translateY(-2px);
}

.proefles-location-card__header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 20px 24px;
    background: var(--color-dark);
    color: #fff;
}

.proefles-location-card__pin {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: var(--color-primary);
}

.proefles-location-card__city {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    margin: 0;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.proefles-location-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.proefles-location-card__item {
    border-bottom: 1px solid var(--color-border);
}

.proefles-location-card__item:last-child {
    border-bottom: none;
}

.proefles-location-card__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 24px;
    text-decoration: none;
    color: var(--color-dark);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.proefles-location-card__flag {
    flex-shrink: 0;
    font-size: 20px;
    line-height: 1;
}

.proefles-location-card__link:hover {
    background: #f0f7f8;
    color: var(--color-secondary);
}

.proefles-location-card__link:hover .proefles-location-card__arrow {
    transform: translateX(3px);
    color: var(--color-secondary);
}

.proefles-location-card__course-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.proefles-location-card__course-name {
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.proefles-location-card__arrow {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: #6D6D6D;
    transition: transform 0.2s ease, color 0.2s ease;
}

/* ── Contact help card ─────────────────────────────────── */
.proefles-contact {
    padding: 0;
}

.proefles-contact__inner {
    max-width: 800px;
    margin: 0 auto;
}

.proefles-contact__card {
    background: linear-gradient(135deg, #f0f7f8 0%, #e8f4f0 100%);
    border-radius: 16px;
    padding: 40px 48px;
    text-align: center;
    border: 1px solid rgba(0, 99, 115, 0.08);
}

.proefles-contact__heading {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 12px;
}

.proefles-contact__text {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    color: #4a4a4a;
    margin: 0 0 24px;
}

.proefles-contact__text a {
    color: var(--color-secondary);
    font-weight: 600;
    text-decoration: none;
}

.proefles-contact__text a:hover {
    text-decoration: underline;
}

.proefles-contact__card .btn {
    margin: 0 auto;
}

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 1024px) {
    .proefles-locations__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .proefles-intro__heading {
        font-size: 26px;
    }

    .proefles-locations__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .proefles-location-card__header {
        padding: 16px 20px;
    }

    .proefles-location-card__link {
        padding: 12px 20px;
    }

    .proefles-contact__card {
        padding: 28px 24px;
    }

    .proefles-contact__heading {
        font-size: 20px;
    }
}

/* ═══════════════════════════════════════════════════════════
   STUDENTEN VERTELLEN — Intro + Video Cards
   ═══════════════════════════════════════════════════════════ */

.studenten-vertellen-intro {
    width: 100%;
}
.studenten-vertellen-intro__inner {
    max-width: 1440px;
    margin: 0 auto;
    text-align: left;
    padding: 0 var(--container-padding);
}
.studenten-vertellen-intro__heading {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 36px;
    line-height: 1;
    letter-spacing: 0.01em;
    color: #121212;
    margin: 0 0 20px;
}
.studenten-vertellen-intro__text {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    opacity: 0.8;
    margin: 0;
}

/* ── Student text quotes slider ─────────────────────────── */
.student-quotes-section {
    width: 100%;
    background: #F7F7F7;
    padding: 80px 0;
}

.student-quotes-section__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

.student-quotes-section__heading {
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 700;
    color: var(--color-dark, #032F36);
    margin: 0 0 48px 0;
    text-align: center;
}

.student-quotes-section__slider {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.student-quotes-section__card {
    background: #fff;
    border-radius: 16px;
    padding: 32px;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.student-quotes-section__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.student-quotes-section__quote {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: #121212;
    margin: 0;
    font-style: italic;
}

.student-quotes-section__cite {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary, #006373);
    font-style: normal;
}

@media (max-width: 1024px) {
    .student-quotes-section__slider {
        grid-template-columns: repeat(2, 1fr);
    }
    .student-quotes-section__heading {
        font-size: 32px;
    }
}

@media (max-width: 640px) {
    .student-quotes-section {
        padding: 48px 0;
    }
    .student-quotes-section__inner {
        padding: 0 20px;
    }
    .student-quotes-section__slider {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .student-quotes-section__heading {
        font-size: 28px;
        margin-bottom: 32px;
    }
    .student-quotes-section__card {
        padding: 24px;
    }
}

/* Video cards section */
.student-videos-section {
    width: 100%;
}
.student-videos-section__inner {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.student-videos-section__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Individual video card */
.student-video-card {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    min-height: 400px;
    overflow: hidden;
}
.student-video-card--right {
    direction: rtl;
}
.student-video-card--right > * {
    direction: ltr;
}

/* Media side */
.student-video-card__media {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 400px;
}
.student-video-card__embed {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.student-video-card__embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.student-video-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}
.student-video-card__play {
    position: relative;
    z-index: 2;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, background 0.3s ease;
    color: #121212;
}
.student-video-card__play:hover {
    transform: scale(1.1);
    background: white;
}

/* Content side */
.student-video-card__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    padding: 48px 56px;
    color: white;
}
.student-video-card__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.student-video-card__name {
    font-family: 'Museo', serif;
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    color: white;
    margin: 0;
}
.student-video-card__role {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.85);
}
.student-video-card__company {
    font-family: 'Lato', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
}
.student-video-card__quote {
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.95);
    margin: 0;
    font-style: normal;
}

@media (max-width: 768px) {
    .student-video-card {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .student-video-card--right {
        direction: ltr;
    }
    .student-video-card__media {
        min-height: 240px;
    }
    .student-video-card__content {
        padding: 32px 24px;
    }
    .student-video-card__name {
        font-size: 24px;
    }
    .studenten-vertellen-intro__inner {
        padding: 0 20px;
    }
    .studenten-vertellen-intro__heading {
        font-size: 28px;
    }
}

/* ═══════════════════════════════════════════════════════════
   STUDENTEN HUB PAGE
   ═══════════════════════════════════════════════════════════ */

.studenten-hub {
    padding: 0 var(--gutter);
}

.studenten-hub__inner {
    max-width: 667px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 64px;
}

/* ── Collapsible Block ─────────────────────────────────── */

.studenten-hub__block {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.studenten-hub__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-align: left;
    -webkit-appearance: none;
    appearance: none;
}

.studenten-hub__toggle:focus-visible {
    outline: 2px solid var(--color-secondary);
    outline-offset: 4px;
    border-radius: 4px;
}

.studenten-hub__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--color-text);
    margin: 0;
}

.studenten-hub__heading--lg {
    font-size: 32px;
}

.studenten-hub__chevron {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-fast);
}

.studenten-hub__toggle[aria-expanded="false"] .studenten-hub__chevron {
    transform: rotate(-90deg);
}

/* ── Collapsible Body ──────────────────────────────────── */

.studenten-hub__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 24px;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.25s ease, padding-top 0.35s ease;
    will-change: max-height, opacity;
}

.studenten-hub__body[aria-hidden="true"] {
    max-height: 0 !important;
    opacity: 0;
    padding-top: 0;
    pointer-events: none;
}

.studenten-hub__text {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--color-text);
}

.studenten-hub__text a {
    color: var(--color-secondary);
    text-decoration: underline;
}

.studenten-hub__text a:hover {
    color: rgba(0, 143, 166, 1);
}

/* ── Media Blocks (inline video players) ───────────────── */

.studenten-hub__media-list {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.studenten-hub__media-block {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}

.studenten-hub__media-caption {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    color: var(--color-text, #1a1a1a);
}

.studenten-hub__media-video {
    display: block;
    width: 100%;
    max-width: 480px;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    border-radius: 10px;
    background: #000;
}

/* ── Button Row ────────────────────────────────────────── */

.studenten-hub__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
}

/* ── Responsive ────────────────────────────────────────── */

@media (max-width: 768px) {
    .studenten-hub__inner {
        gap: 48px;
    }

    .studenten-hub__heading--lg {
        font-size: 28px;
    }

    .studenten-hub__heading {
        font-size: 22px;
    }

    .studenten-hub__media-block {
        gap: 8px;
    }

    .studenten-hub__media-video {
        aspect-ratio: 16 / 10;
    }

    .studenten-hub__buttons {
        gap: 12px;
    }

    .studenten-hub__buttons .btn {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .studenten-hub__inner {
        gap: 40px;
    }

    .studenten-hub__heading--lg {
        font-size: 24px;
    }

    .studenten-hub__heading {
        font-size: 20px;
    }
}

/* ── Reduced Motion ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.course-grid-section__card-wrap {
    display: flex;
    flex: 0 0 calc(25% - 18px); /* 4 items */
    min-width: 0;
    scroll-snap-align: start;
}

@media (max-width: 1200px) {
    .course-grid-section__card-wrap {
        flex: 0 0 calc(50% - 12px); /* 2 items */
    }
}

@media (max-width: 768px) {
    .course-grid-section__card-wrap {
        flex: 0 0 85%; /* 1 item peeking */
    }
}

.course-grid-section__cards, .course-grid-section__panel--active {
    scroll-snap-type: x mandatory;
}

/* Spacer Component - scale down on mobile */
.spacer {
    display: block;
    width: 100%;
    /* height is set inline via style="--spacer-height: XXpx; height: XXpx;" */
}
@media (max-width: 768px) {
    .spacer {
        height: calc(var(--spacer-height, 0px) * 0.5) !important;
    }
}

/* Spacer Component */
.spacer-section {
    display: block;
    width: 100%;
    height: var(--spacer-height, 64px);
    background: transparent;
}
@media (max-width: 768px) {
    .spacer-section {
        height: calc(var(--spacer-height, 64px) * 0.5) !important;
    }

    .student-stories-section + .spacer-section {
        height: 24px !important;
    }
}

@media (max-width: 1024px) {
    .archive-filters {
        padding: 0 !important;
        margin: 0 !important;
        background: transparent !important;
        height: 0 !important;
        overflow: visible;
    }

    .archive-filters__tags {
        display: none !important;
    }

    .archive-filters__dropdowns:not(.is-open) {
        display: none !important;
    }
}

@media (max-width: 1024px) {
    .archive-grid__header {
        align-items: center;
        margin-bottom: 24px;
        gap: 12px;
    }

    .archive-grid {
        padding-top: 16px !important;
    }
}

/* ════════════════════════════════════════════════════════════
   VACATURES PAGE  (Figma 867:16215 desktop / 867:16680 mobile)
   ════════════════════════════════════════════════════════════ */

/* Dark intro hero */
.vacatures-intro {
    width: 100%;
    background-color: #032F36;
    padding: 48px 0;
}

.vacatures-intro__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 24px;
    color: #fff;
}

.vacatures-intro__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 42px;
    line-height: 1;
    letter-spacing: 0.42px;
    margin: 0;
    color: #fff;
}

.vacatures-intro .breadcrumbs,
.vacatures-intro .breadcrumbs a,
.vacatures-intro .breadcrumbs span {
    color: rgba(255, 255, 255, 0.85);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.28px;
    text-decoration: none;
}

.vacatures-intro .breadcrumbs a:hover {
    color: #fff;
    text-decoration: underline;
}

/* Grid section */
.vacatures-grid {
    width: 100%;
    background: var(--color-bg-grey, #f7f7f7);
    padding: 48px 0;
}

.vacatures-grid__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: center;
}

.vacatures-grid__header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.vacatures-grid__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: #121212;
    margin: 0;
    display: inline-flex;
    align-items: baseline;
    gap: 12px;
}

.vacatures-grid__count {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    color: var(--color-grey-01, #6d6d6d);
    line-height: 1.5;
}

.vacatures-grid__actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.vacatures-grid__post-btn .icon {
    color: #fff;
}

.vacatures-grid__list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.vacatures-grid__empty {
    width: 100%;
    text-align: center;
    color: var(--color-grey-01, #6d6d6d);
    padding: 48px 0;
}

/* Vacature card */
.vacature-card {
    background: #fff;
    border: 1px solid var(--color-grey-03, #ececec);
    border-radius: 10px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 40px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.vacature-card:hover {
    border-color: var(--color-secondary, #006373);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.vacature-card__body {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.vacature-card__meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.vacature-card__label {
    background: var(--color-bg-grey, #f7f7f7);
    color: var(--color-secondary, #006373);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    padding: 10px;
    border-radius: 5px;
}

.vacature-card__date {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    line-height: 1.5;
    letter-spacing: 0.28px;
    color: rgba(18, 18, 18, 0.5);
}

.vacature-card__company {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 18px;
    line-height: 1;
    color: #000;
    margin: 0;
}

.vacature-card__summary {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vacature-card__link {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.3;
    color: var(--color-secondary, #006373);
    text-decoration: underline;
    align-self: flex-start;
}

.vacature-card__link:hover {
    text-decoration: none;
}

/* Pagination (Figma 867:16559) */
.vacatures-pagination {
    display: flex;
    justify-content: center;
}

.vacatures-pagination ul,
.vacatures-pagination ul.page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 5px;
    align-items: center;
}

.vacatures-pagination li {
    display: block;
}

.vacatures-pagination a,
.vacatures-pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    border: 1.25px solid var(--color-grey-03, #ececec);
    background: #fff;
    color: var(--color-grey-01, #6d6d6d);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 18px;
    text-decoration: none;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.vacatures-pagination a:hover {
    border-color: var(--color-secondary, #006373);
    color: var(--color-secondary, #006373);
}

.vacatures-pagination .current {
    background: #6d7c25;
    color: #fff;
    border-color: #6d7c25;
}

.vacatures-pagination .dots {
    border: none;
    background: transparent;
}

.vacatures-pagination__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
}

.vacatures-pagination__arrow--prev {
    transform: rotate(180deg);
}

/* Single vacature fallback */
.vacature-single {
    background: #fff;
    padding: 64px 0;
}

.vacature-single__inner {
    max-width: 668px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.vacature-single__company {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 28px;
    line-height: 1.1;
    color: #000;
    margin: 0;
}

.vacature-single__body {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
}

.vacature-single__body p { margin: 0 0 16px; }

/* ── Tablet ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .vacatures-grid__list {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Mobile (Figma 867:16680) ───────────────────────────── */
@media (max-width: 768px) {
    .vacatures-intro {
        padding: 32px 0;
    }
    .vacatures-intro__inner {
        padding: 0 16px;
        gap: 16px;
    }
    .vacatures-intro__title {
        font-size: 24px;
        line-height: 1.15;
        letter-spacing: 0.24px;
    }

    .vacatures-grid {
        padding: 32px 0;
    }
    .vacatures-grid__inner {
        padding: 0 16px;
        gap: 24px;
    }

    .vacatures-grid__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    .vacatures-grid__heading {
        font-size: 22px;
        letter-spacing: 0.22px;
    }
    .vacatures-grid__actions {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 8px;
    }
    .vacatures-grid__actions .btn {
        width: 100%;
        justify-content: center;
    }

    .vacatures-grid__list {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .vacature-card {
        padding: 20px;
        gap: 32px;
    }
    .vacature-card__body { gap: 16px; }
    .vacature-card__company { font-size: 16px; line-height: 1.2; }
    .vacature-card__summary { font-size: 15px; }

    .vacature-single { padding: 32px 0; }
    .vacature-single__inner { padding: 0 16px; }
}

/* ════════════════════════════════════════════════════════════
   VACATURE DETAIL PAGE  (Figma 867:17185)
   ════════════════════════════════════════════════════════════ */

.vacature-detail { background: #fff; }

/* ── Intro: dark hero + overlapping white card ──────────── */
.vacature-detail__intro {
    position: relative;
    width: 100%;
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}

.vacature-detail__intro-bg {
    background: #032F36;
    height: 424px;
    width: 100%;
    padding: 40px;
    box-sizing: border-box;
}

.vacature-detail__breadcrumb {
    max-width: 1440px;
    margin: 0 auto;
}

.vacature-detail__breadcrumb .breadcrumbs,
.vacature-detail__breadcrumb .breadcrumbs a,
.vacature-detail__breadcrumb .breadcrumbs span {
    color: rgba(255,255,255,0.85);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.28px;
    text-decoration: none;
}
.vacature-detail__breadcrumb .breadcrumbs a:hover {
    color: #fff;
    text-decoration: underline;
}

/* White overlapping card */
.vacature-detail__card {
    width: 100%;
    max-width: 1440px;
    margin: -200px auto 0;
    padding: 0 var(--container-padding);
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 2;
}

.vacature-detail__card-inner {
    background: #fff;
    border-radius: 10px;
    padding: 32px;
    width: 100%;
    max-width: 668px;
    box-shadow:
        0 1px 3px rgba(0,0,0,0.04),
        0 6px 6px rgba(0,0,0,0.03),
        0 13px 8px rgba(0,0,0,0.02),
        0 23px 9px rgba(0,0,0,0.01);
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.vacature-detail__head {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.vacature-detail__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 36px;
    line-height: 1;
    letter-spacing: 0.36px;
    color: var(--color-secondary, #006373);
    margin: 0;
}

.vacature-detail__company {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    line-height: 1.5;
    color: var(--color-secondary, #006373);
    margin: 0;
}

.vacature-detail__meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Detail icons */
.vacature-detail__details {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.vacature-detail__detail {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #032F36;
}

.vacature-detail__detail-icon {
    display: inline-flex;
    width: 20px;
    height: 20px;
    color: #032F36;
}
.vacature-detail__detail-icon svg { width: 100%; height: 100%; }

.vacature-detail__cta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.vacature-detail__cta .btn--secondary {
    border-radius: 10px;
    padding: 16px 24px;
    height: 56px;
    font-size: 16px;
    letter-spacing: 0.16px;
}

/* ── Body section ───────────────────────────────────────── */
.vacature-detail__body {
    width: 100%;
    background: #fff;
    padding: 64px 0;
    display: flex;
    justify-content: center;
}

.vacature-detail__body-inner {
    max-width: 668px;
    width: 100%;
    padding: 0 var(--container-padding);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.vacature-detail__block {
    display: flex;
    flex-direction: column;
    gap: 32px;
    color: #121212;
}

.vacature-detail__h {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 26px;
    line-height: 1;
    letter-spacing: 0.26px;
    color: #121212;
    margin: 0;
}

.vacature-detail__rich,
.vacature-detail__address {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    font-style: normal;
}

.vacature-detail__rich p { margin: 0 0 16px; }
.vacature-detail__rich p:last-child { margin-bottom: 0; }
.vacature-detail__rich ul,
.vacature-detail__rich ol { margin: 0 0 16px; padding-left: 0; list-style-position: inside; }
.vacature-detail__rich li { margin: 0 0 8px; }
.vacature-detail__rich li:last-child { margin-bottom: 0; }
.vacature-detail__rich h1,
.vacature-detail__rich h2,
.vacature-detail__rich h3,
.vacature-detail__rich h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    color: #121212;
    margin: 32px 0 16px;
    line-height: 1.15;
    letter-spacing: 0.26px;
}
.vacature-detail__rich h2 { font-size: 26px; }
.vacature-detail__rich h3 { font-size: 22px; }
.vacature-detail__rich h4 { font-size: 18px; }
.vacature-detail__rich > :first-child { margin-top: 0; }
.vacature-detail__rich > :last-child { margin-bottom: 0; }
.vacature-detail__rich a {
    color: var(--color-secondary, #006373);
    text-decoration: underline;
}

.vacature-detail__address a {
    color: var(--color-secondary, #006373);
    text-decoration: underline;
}

/* ── Share box (groen) ──────────────────────────────────── */
.vacature-share {
    display: flex;
    align-items: stretch;
    background: #f2f9ea;
    border-radius: 4px;
    overflow: hidden;
    width: 100%;
}

.vacature-share__accent {
    width: 10px;
    background: #6d7c25;
    flex-shrink: 0;
}

.vacature-share__content {
    flex: 1;
    padding: 32px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.vacature-share__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.2px;
    color: #6d7c25;
    margin: 0;
}

.vacature-share__buttons {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.vacature-share__btn {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid var(--color-grey-03, #ececec);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #6d7c25;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    padding: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.vacature-share__btn:hover {
    border-color: #6d7c25;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.vacature-share__btn-icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    color: #6d7c25;
}
.vacature-share__btn-icon svg { width: 100%; height: 100%; }

.vacature-share__btn-label {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 12px;
    color: #6d7c25;
    letter-spacing: 0.12px;
    white-space: nowrap;
}

/* ── Contact / Solliciteer block ────────────────────────── */
.vacature-contact {
    width: 100%;
    background: #f2f9ea;
    padding: 80px var(--container-padding);
    box-sizing: border-box;
    display: flex;
    justify-content: center;
}

.vacature-contact__inner {
    width: 100%;
    max-width: 644px;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.vacature-contact__head {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.vacature-contact__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 36px;
    line-height: 1;
    letter-spacing: 0.36px;
    color: #121212;
    margin: 0;
}

.vacature-contact__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    margin: 0;
}

.vacature-contact__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.vacature-contact__tab {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--color-grey-03, #ececec);
    border-radius: 10px;
    padding: 32px;
    text-decoration: none;
    box-shadow: inset 0 -4px 0 0 rgba(0,0,0,0.18);
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.vacature-contact__tab:hover {
    border-color: #6d7c25;
    transform: translateY(-2px);
}

.vacature-contact__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.vacature-contact__value {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    letter-spacing: 0.2px;
    color: #6d7c25;
    word-break: break-word;
}

.vacature-contact__label {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: rgba(18,18,18,0.8);
}

.vacature-contact__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #6d7c25;
    color: #fff;
    flex-shrink: 0;
}
.vacature-contact__icon svg { width: 22px; height: 22px; }

/* ── Related vacatures ──────────────────────────────────── */
.vacature-related {
    width: 100%;
    padding: 132px var(--container-padding);
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    background: #fff;
}

.vacature-related__inner {
    width: 100%;
    max-width: 1440px;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.vacature-related__head {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.vacature-related__title {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0.32px;
    color: #121212;
    margin: 0;
}

.vacature-related__subtitle {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #121212;
    margin: 0;
}

/* ── Tablet ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .vacature-detail__intro-bg { height: 320px; padding: 32px; }
    .vacature-detail__card { margin-top: -150px; padding: 0 24px; }
}

/* ── Mobile ─────────────────────────────────────────────── */
@media (max-width: 768px) {
    .vacature-detail__intro-bg { height: 200px; padding: 16px; }
    .vacature-detail__card { margin-top: -100px; padding: 0 16px; }
    .vacature-detail__card-inner { padding: 24px; gap: 24px; }
    .vacature-detail__title { font-size: 24px; letter-spacing: 0.24px; }
    .vacature-detail__head { gap: 16px; }
    .vacature-detail__cta .btn { width: 100%; justify-content: center; }

    .vacature-detail__body { padding: 40px 0; }
    .vacature-detail__body-inner { padding: 0 16px; gap: 32px; }
    .vacature-detail__block { gap: 20px; }
    .vacature-detail__h { font-size: 22px; letter-spacing: 0.22px; }

    .vacature-share__content { padding: 24px; gap: 20px; }
    .vacature-share__btn { width: 56px; height: 56px; }

    .vacature-contact { padding: 48px 16px; }
    .vacature-contact__title { font-size: 24px; letter-spacing: 0.24px; }
    .vacature-contact__head { gap: 16px; }
    .vacature-contact__tab { padding: 20px; gap: 12px; }
    .vacature-contact__value { font-size: 18px; }
    .vacature-contact__icon { width: 48px; height: 48px; }
    .vacature-contact__icon svg { width: 20px; height: 20px; }

    .vacature-related { padding: 64px 16px; }
    .vacature-related__inner { gap: 24px; }
    .vacature-related__title { font-size: 22px; letter-spacing: 0.22px; }
}

/* ════════════════════════════════════════════════════════════
   GRAVITY FORMS — match theme contact-form design
   (gray-fill inputs, floating labels, teal underline, secondary
    teal submit button with chevron)
   ════════════════════════════════════════════════════════════ */
.horeca-gform-block { width: 100%; }

.horeca-gform-block .gform_wrapper {
    font-family: 'Lato', sans-serif;
    color: #121212;
}

.horeca-gform-block .gform_wrapper .gform_heading,
.horeca-gform-block .gform_wrapper .gform_title,
.horeca-gform-block .gform_wrapper .gform_description {
    font-family: var(--font-heading);
    color: #121212;
    margin-bottom: 16px;
}

/* Field grid — matches contact-form's flex 50/50 */
.horeca-gform-block .gform_wrapper .gform_fields {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.horeca-gform-block .gform_wrapper .gfield {
    flex: 1 1 calc(50% - 12px);
    min-width: 200px;
    padding: 0;
    margin: 0;
}

.horeca-gform-block .gform_wrapper .gfield--width-full,
.horeca-gform-block .gform_wrapper .gfield.gf_full,
.horeca-gform-block .gform_wrapper .gfield--type-textarea,
.horeca-gform-block .gform_wrapper .gfield--type-html,
.horeca-gform-block .gform_wrapper .gfield--type-section,
.horeca-gform-block .gform_wrapper .gfield--type-captcha {
    flex: 1 1 100%;
}

/* Default: show labels above fields */
.horeca-gform-block .gform_wrapper .gfield_label {
    display: block;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 14px;
    line-height: 1.3;
    color: #121212;
    margin: 0 0 8px;
}

/* Hide labels only for plain text inputs / selects / textareas where the placeholder carries the label */
.horeca-gform-block .gform_wrapper .gfield--type-text > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-email > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-phone > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-website > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-number > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-date > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-textarea > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-select > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-name > .gfield_label,
.horeca-gform-block .gform_wrapper .gfield--type-address > .gfield_label {
    display: none;
}

/* Floating-label wrapper trick using placeholder */
.horeca-gform-block .gform_wrapper .ginput_container {
    position: relative;
}

.horeca-gform-block .gform_wrapper input[type="text"],
.horeca-gform-block .gform_wrapper input[type="email"],
.horeca-gform-block .gform_wrapper input[type="tel"],
.horeca-gform-block .gform_wrapper input[type="url"],
.horeca-gform-block .gform_wrapper input[type="number"],
.horeca-gform-block .gform_wrapper input[type="password"],
.horeca-gform-block .gform_wrapper input[type="date"],
.horeca-gform-block .gform_wrapper select,
.horeca-gform-block .gform_wrapper textarea {
    width: 100%;
    box-sizing: border-box;
    background-color: #F7F7F7;
    border: none;
    border-bottom: 2px solid #ECECEC;
    border-radius: 4px 4px 0 0;
    padding: 16px 16px;
    height: 56px;
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #121212;
    outline: none;
    transition: border-color 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.horeca-gform-block .gform_wrapper textarea {
    min-height: 200px;
    height: auto;
    resize: vertical;
    padding: 16px;
}

.horeca-gform-block .gform_wrapper input::placeholder,
.horeca-gform-block .gform_wrapper textarea::placeholder {
    color: #6D6D6D;
}

.horeca-gform-block .gform_wrapper input:focus,
.horeca-gform-block .gform_wrapper select:focus,
.horeca-gform-block .gform_wrapper textarea:focus {
    border-bottom-color: #006373;
    background-color: #F7F7F7;
}

/* Required marker */
.horeca-gform-block .gform_wrapper .gfield_required,
.horeca-gform-block .gform_wrapper .gfield_required_text {
    color: #C51212;
    margin-left: 2px;
}

/* Description below field */
.horeca-gform-block .gform_wrapper .gfield_description {
    font-size: 13px;
    color: #6b6b6b;
    margin-top: 4px;
    padding-left: 16px;
}

/* Validation */
.horeca-gform-block .gform_wrapper .gfield_validation_message,
.horeca-gform-block .gform_wrapper .validation_message {
    color: #C51212;
    font-size: 13px;
    margin-top: 4px;
    padding-left: 16px;
}

.horeca-gform-block .gform_wrapper .gfield.gfield_error input,
.horeca-gform-block .gform_wrapper .gfield.gfield_error select,
.horeca-gform-block .gform_wrapper .gfield.gfield_error textarea {
    border-bottom-color: #C51212;
}

.horeca-gform-block .gform_wrapper .gform_validation_errors {
    background-color: #FFF0F0;
    color: #9C3035;
    border: 1px solid #E8A0A4;
    padding: 16px 20px;
    border-radius: 8px;
    margin-bottom: 24px;
}

.horeca-gform-block .gform_wrapper .gform_confirmation_message {
    background-color: #F2F9EA;
    color: #2D5016;
    border: 1px solid #A3C585;
    padding: 16px 20px;
    border-radius: 8px;
}

/* Checkboxes & radios */
.horeca-gform-block .gform_wrapper .gchoice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.horeca-gform-block .gform_wrapper input[type="checkbox"],
.horeca-gform-block .gform_wrapper input[type="radio"] {
    accent-color: #006373;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    flex-shrink: 0;
    background-color: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    -webkit-appearance: auto;
    -moz-appearance: auto;
    appearance: auto;
}

/* CAPTCHA — don't inherit the gray input-field box */
.horeca-gform-block .gform_wrapper .gfield--type-captcha .ginput_container,
.horeca-gform-block .gform_wrapper .gfield--type-captcha input[type="text"] {
    background: transparent !important;
    border: none !important;
}
.horeca-gform-block .gform_wrapper .gfield--type-captcha input[type="text"] {
    width: auto !important;
    max-width: 200px !important;
    background-color: #F7F7F7 !important;
    border-bottom: 2px solid #ECECEC !important;
}
.horeca-gform-block .gform_wrapper .gfield--type-captcha img {
    border-radius: 6px;
    margin-bottom: 8px;
}

/* HTML / description field — shouldn't get the input gray box either */
.horeca-gform-block .gform_wrapper .gfield--type-html {
    background: transparent !important;
    color: #121212;
    font-size: 15px;
    line-height: 1.5;
}

/* Submit button — matches .btn--secondary (teal, white text, lg, chevron) */
.horeca-gform-block .gform_wrapper .gform_footer,
.horeca-gform-block .gform_wrapper .gform_page_footer {
    margin-top: 8px;
    padding: 0;
    display: flex;
}

.horeca-gform-block .gform_wrapper .gform_button,
.horeca-gform-block .gform_wrapper input[type="submit"],
.horeca-gform-block .gform_wrapper button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 100%;
    padding: 20px 24px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    background-color: var(--color-secondary);
    color: #fff;
    box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.18);
    transition: background-color var(--transition-fast);
    -webkit-appearance: none;
    appearance: none;
    height: auto;
    width: auto;
}

.horeca-gform-block .gform_wrapper .gform_button:hover,
.horeca-gform-block .gform_wrapper input[type="submit"]:hover,
.horeca-gform-block .gform_wrapper button[type="submit"]:hover {
    background-color: rgba(0, 143, 166, 1);
    color: #fff;
}

/* Chevron right icon after submit text */
.horeca-gform-block .gform_wrapper .gform_footer::after,
.horeca-gform-block .gform_wrapper .gform_page_footer::after {
    /* nothing — icon embedded via pseudo on button */
}
.horeca-gform-block .gform_wrapper .gform_button::after,
.horeca-gform-block .gform_wrapper input[type="submit"]::after,
.horeca-gform-block .gform_wrapper button[type="submit"]::after {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='9 6 15 12 9 18'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
}
/* input[type=submit] cannot have ::after — but we now render <button> via gform_submit_button filter; keep this as no-op fallback */
.horeca-gform-block .gform_wrapper input[type="submit"] {
    /* fallback only — most cases use the .btn render */
}
.horeca-gform-block .gform_wrapper input[type="submit"]::after { display: none; }

/* When the submit button renders as a .btn it already contains its own
   .btn__icon chevron — suppress the pseudo-element to avoid a double chevron. */
.horeca-gform-block .gform_wrapper .gform_button.btn::after,
.horeca-gform-block .gform_wrapper button.btn[type="submit"]::after {
    content: none;
    display: none;
}

@media (max-width: 600px) {
    .horeca-gform-block .gform_wrapper .gfield { flex: 1 1 100%; }
}

/* ════════════════════════════════════════════════════════════
   FORM PAGE TEMPLATE (template-form.php) — centered Gravity Form
   ════════════════════════════════════════════════════════════ */
.form-page {
    background: #fff;
    padding: 80px 24px 96px;
    scroll-margin-top: 100px;
}

html {
    scroll-behavior: smooth;
}

.form-page__inner {
    max-width: 720px;
    margin: 0 auto;
    box-sizing: border-box;
}

.form-page__header { text-align: center; margin-bottom: 32px; }

.form-page__heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: 1px;
    color: var(--color-text);
    margin: 0 0 16px;
}

.form-page__intro {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    color: var(--color-text);
}
.form-page__intro p { margin: 0 0 12px; }

.form-page__form {
    margin-top: 24px;
    width: 100%;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* Hard-cap GF wrapper inside the form page so the orbital theme can't bleed */
.form-page__form .gform_wrapper,
.form-page__form .gform_wrapper form,
.form-page__form .gform_wrapper .gform-body,
.form-page__form .gform_wrapper .gform_body {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

.form-page__missing {
    text-align: center;
    color: #b42318;
    background: #fef3f2;
    border: 1px solid #fecdca;
    padding: 16px;
    border-radius: 10px;
}

@media (max-width: 640px) {
    .form-page { padding: 48px 16px 64px; }
    .form-page__heading { font-size: 24px; }
}

/* ════════════════════════════════════════════════════════════
   GRAVITY FORMS — design-system overrides (beats orbital theme)
   ════════════════════════════════════════════════════════════ */

/* Submit footer — center the .btn we render via gform_submit_button filter */
.horeca-gform-block .gform_wrapper .gform_footer,
.horeca-gform-block .gform_wrapper .gform_page_footer {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin-top: 24px !important;
    padding: 0 !important;
    border: none !important;
}

/* Reset orbital's leftover styling on our themed submit .btn */
.horeca-gform-block .gform_wrapper .gform_button.btn {
    background-image: none !important;
    box-shadow: inset 0 -4px 0 rgba(0,0,0,0.18) !important;
}

/* Beat orbital's .gform_button blue background — force theme button colors */
.horeca-gform-block .gform_wrapper .gform_button.btn.btn--primary-green,
.horeca-gform-block .gform_wrapper button.gform_button.btn--primary-green {
    background-color: #6D7C25 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    line-height: 100% !important;
    padding: 20px 24px !important;
    height: auto !important;
    width: auto !important;
    text-transform: none !important;
}
.horeca-gform-block .gform_wrapper .gform_button.btn.btn--primary-green:hover,
.horeca-gform-block .gform_wrapper button.gform_button.btn--primary-green:hover {
    background-color: #5C6A1F !important;
    color: #fff !important;
}
.horeca-gform-block .gform_wrapper .gform_button.btn .btn__label { color: inherit !important; }
.horeca-gform-block .gform_wrapper .gform_button.btn .btn__icon svg { stroke: currentColor !important; }

/* Select dropdown — readable text + custom chevron + room on the right */
.horeca-gform-block .gform_wrapper select {
    padding: 16px 44px 16px 16px !important;
    height: 56px !important;
    line-height: 1.5 !important;
    font-family: 'Lato', sans-serif !important;
    font-size: 16px !important;
    color: #121212 !important;
    background-color: #F7F7F7 !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236D6D6D' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

.horeca-gform-block .gform_wrapper select option {
    color: #121212;
    background: #fff;
    padding: 8px;
}

/* Section headers inside Gravity Forms — drop the orbital underline */
.horeca-gform-block .gform_wrapper .gsection,
.horeca-gform-block .gform_wrapper .gfield--type-section {
    border: none !important;
    padding: 8px 0 0 !important;
    margin: 16px 0 0 !important;
}
.horeca-gform-block .gform_wrapper .gsection_title,
.horeca-gform-block .gform_wrapper .gfield--type-section .gfield_label {
    display: block !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    color: var(--color-text) !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 0 4px !important;
    text-decoration: none !important;
}
.horeca-gform-block .gform_wrapper .gsection_description {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: #6b6b6b !important;
    margin: 0 !important;
    border: none !important;
}

/* Kill any default GF underline / divider on field labels too */
.horeca-gform-block .gform_wrapper .gfield > .gfield_label {
    border: none !important;
    text-decoration: none !important;
}

/* ════════════════════════════════════════════════════════════
   TEMPLATE FORMS — Figma node 921:19670
   Clinics / Trainingen / Cursussen / Skills inschrijfformulier.
   Targets only forms whose pages render with the .cltpl-* classes
   (added via the GF form's field cssClass + a body marker class).
   ════════════════════════════════════════════════════════════ */

/* Center & cap form container width — matches Figma 668px */
body.page-template-template-form .form-page__form,
.horeca-gform-block:has(.cltpl-section) {
    max-width: 668px;
    margin: 0 auto;
}

/* When a template form is on the page, tighten the section spacing */
.horeca-gform-block:has(.cltpl-section) .gform_wrapper .gform_fields {
    gap: 16px 24px;
    margin-bottom: 32px;
}

/* Section header — small uppercase-style label, big spacing above */
.horeca-gform-block .gform_wrapper .gfield--type-section.cltpl-section {
    margin: 32px 0 8px !important;
    padding: 0 !important;
    flex: 1 1 100% !important;
}
.horeca-gform-block .gform_wrapper .gfield--type-section.cltpl-section .gfield_label {
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;
    color: #032F36 !important;
    text-transform: none !important;
    margin: 0 !important;
}

/* Top-of-form divider above each Adres/Betaling/Vragen section, like the Figma 1px rectangles */
.horeca-gform-block .gform_wrapper .gfield--type-section.cltpl-section--payment,
.horeca-gform-block .gform_wrapper .gfield--type-section + .gfield + .gfield + .gfield + .gfield--type-section {
    border-top: 1px solid rgba(0, 0, 0, 0.10) !important;
    padding-top: 32px !important;
    margin-top: 32px !important;
}

/* Inputs — match Figma "Filter dropdown" / Input style.
   Solid white box, light border, larger radius (8px), no underline accent */
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="text"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="email"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="tel"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="url"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="number"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="date"],
.horeca-gform-block:has(.cltpl-section) .gform_wrapper select,
.horeca-gform-block:has(.cltpl-section) .gform_wrapper textarea {
    background-color: #FFFFFF;
    border: 1px solid #E1E4E5;
    border-radius: 8px;
    height: 56px;
    padding: 16px 18px;
    font-size: 15px;
    color: #032F36;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.horeca-gform-block:has(.cltpl-section) .gform_wrapper select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23032F36' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    padding-right: 44px;
}
.horeca-gform-block:has(.cltpl-section) .gform_wrapper textarea {
    height: auto;
    min-height: 200px;
    padding: 16px 18px;
}
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input:focus,
.horeca-gform-block:has(.cltpl-section) .gform_wrapper select:focus,
.horeca-gform-block:has(.cltpl-section) .gform_wrapper textarea:focus {
    border-color: #006373;
    box-shadow: 0 0 0 3px rgba(0, 99, 115, 0.12);
}

/* Field-level label (shown above input, since Figma puts "Selecteer een training" etc. above the dropdown) */
.horeca-gform-block .gform_wrapper .cltpl-dropdown > .gfield_label {
    display: block !important;
    font-family: var(--font-body) !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    color: #032F36 !important;
    opacity: 0.7;
    margin: 0 0 8px !important;
    text-transform: none !important;
}

/* 2-column grid helper (firstname/lastname etc) */
.horeca-gform-block .gform_wrapper .cltpl-col-2 {
    flex: 1 1 calc(50% - 12px) !important;
    min-width: 0 !important;
}

/* Inline radio rows */
.horeca-gform-block .gform_wrapper .cltpl-radio-inline .gfield_radio,
.horeca-gform-block .gform_wrapper .cltpl-radio-inline .ginput_container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
}
.horeca-gform-block .gform_wrapper .cltpl-radio-inline .gchoice {
    margin: 0;
}
.horeca-gform-block .gform_wrapper .cltpl-radio-inline .gfield_label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    opacity: 0.7;
    margin-bottom: 10px !important;
}
.horeca-gform-block .gform_wrapper .cltpl-radio-inline .gfield_description {
    padding-left: 0;
    margin-top: 10px;
    font-size: 13px;
    color: #6b6b6b;
}

/* Price summary — right-aligned compact 3-row block (Figma 115px col) */
.horeca-gform-block .cltpl-price-summary {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 240px;
    margin: 0 0 16px auto;
    padding: 0;
    background: transparent;
    text-align: right;
}
.horeca-gform-block .cltpl-price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    font-family: var(--font-body);
    font-size: 13px;
    color: #032F36;
}
.horeca-gform-block .cltpl-price-row__label {
    font-weight: 500;
    opacity: 0.75;
}
.horeca-gform-block .cltpl-price-row__value {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.horeca-gform-block .cltpl-price-row--total {
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    padding-top: 10px;
    font-size: 15px;
}
.horeca-gform-block .cltpl-price-row--total .cltpl-price-row__label,
.horeca-gform-block .cltpl-price-row--total .cltpl-price-row__value {
    font-weight: 700;
    opacity: 1;
}

/* Helper notes (under Betaling: Cinces / iDeal) */
.horeca-gform-block .cltpl-note {
    font-size: 13px;
    color: #6b6b6b;
    line-height: 1.55;
    margin: 0 0 8px;
}
.horeca-gform-block .cltpl-note + .cltpl-note { margin-top: 4px; }
.horeca-gform-block .cltpl-note strong { color: #032F36; }

/* Terms checkbox row — tighter */
.horeca-gform-block .gform_wrapper .cltpl-tc .gfield_label {
    font-size: 13px !important;
    font-weight: 500 !important;
    opacity: 0.7;
    margin-bottom: 10px !important;
}
.horeca-gform-block .gform_wrapper .cltpl-tc .gchoice {
    align-items: flex-start;
    gap: 12px;
}
.horeca-gform-block .gform_wrapper .cltpl-tc .gchoice label {
    font-size: 14px;
    line-height: 1.5;
}

/* Submit button — Figma 162px x 56px (left-aligned, single button) */
.horeca-gform-block:has(.cltpl-section) .gform_wrapper .gform_footer {
    margin-top: 16px;
    justify-content: flex-start;
}
.horeca-gform-block:has(.cltpl-section) .gform_wrapper .gform_button,
.horeca-gform-block:has(.cltpl-section) .gform_wrapper input[type="submit"] {
    min-width: 162px;
    height: 56px;
    padding: 16px 28px;
    border-radius: 12px;
    font-size: 15px;
}

/* Date picker — replace GF's externally-positioned calendar trigger with a
   background-icon inside the input itself */
.horeca-gform-block .gform_wrapper .ginput_container_date {
    position: relative;
}
.horeca-gform-block .gform_wrapper .ginput_container_date input.datepicker,
.horeca-gform-block .gform_wrapper .ginput_container_date input[type="text"] {
    padding-right: 48px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23032F36' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 16px center !important;
    background-size: 18px 18px !important;
}
/* Nuke every visual descendant inside the date field except the actual input
   (GF injects an <img> / <button> / <a> for its native calendar trigger at runtime) */
.horeca-gform-block .gform_wrapper .gfield--type-date img,
.horeca-gform-block .gform_wrapper .gfield--type-date button,
.horeca-gform-block .gform_wrapper .gfield--type-date a.ui-datepicker-trigger,
.horeca-gform-block .gform_wrapper .gfield--input-type-datepicker img,
.horeca-gform-block .gform_wrapper .gfield--input-type-datepicker button,
.horeca-gform-block .gform_wrapper .ui-datepicker-trigger,
.horeca-gform-block .gform_wrapper img.ui-datepicker-trigger,
.horeca-gform-block .gform_wrapper button.ui-datepicker-trigger {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Responsive — collapse 2-col on small screens */
@media (max-width: 640px) {
    .horeca-gform-block .gform_wrapper .cltpl-col-2 {
        flex: 1 1 100% !important;
    }
    .horeca-gform-block .cltpl-price-summary {
        max-width: 100%;
    }
}
