.course-card {
    box-sizing: border-box;
    background-color: #fff;
    border-radius: 15px;
    padding: 29px 22px;
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.course-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0;
}

.course-card__level {
    box-sizing: border-box;
}

.course-card.available .course-card__level {
    border-radius: 80px;
    font-size: 20px;
    line-height: 29px;
    font-weight: 700;
    height: 31px;
    display: flex;
    align-items: center;
    padding: 0 18px;
    color: var(--green, #1FA238);
    background-color: var(--light-green, #DCF1E0);
}

.course-card.limited .course-card__level {
    border-radius: 80px;
    font-size: 20px;
    line-height: 29px;
    font-weight: 700;
    height: 31px;
    display: flex;
    align-items: center;
    padding: 0 18px;
    color: var(--orange, #f3950b);
    background-color: var(--light-orange, #fef3e0);
}

.course-card.full .course-card__level {
    border-radius: 80px;
    font-size: 20px;
    line-height: 29px;
    font-weight: 700;
    height: 31px;
    display: flex;
    align-items: center;
    padding: 0 18px;
    color: var(--pink, #e4087e);
    background-color: var(--light-pink, #fbdaec);
}

.course-card__title {
    font-size: 20px;
    line-height: 29px;
    font-weight: 700;
    margin: 0;
}

.course-card__title-link {
    color: var(--font-color, #0A2636);
    text-decoration: none;
    display: inline-block;
    transition: color 0.3s ease;
}

.course-card__title-link:hover,
.course-card__title-link:focus-visible,
.course-card__title-link:visited {
    color: var(--font-color, #0A2636);
    text-decoration: none;
}

.course-card__title-link:hover,
.course-card__title-link:focus-visible {
    color: var(--pink, #E4087E);
}

.course-card__availability {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.course-card__availability-indicator {
    box-sizing: content-box;
    width: 20px;
    height: 20px;
    border-radius: 9999px;
    border: 6px solid var(--grey, #DADEE1);
    background-color: transparent;
}

.course-card.available .course-card__availability-indicator {
    background-color: var(--green, #1FA238);
    border-color: var(--light-green, #DCF1E0);
}

.course-card.limited .course-card__availability-text {
    color: var(--orange, #f3950b);
}

.course-card.limited .course-card__availability-indicator {
    background-color: var(--orange, #f3950b);
    border-color: var(--light-orange, #fef3e0);
}

.course-card.full .course-card__availability-text {
    color: var(--pink, #e4087e);
}

.course-card.full .course-card__availability-indicator {
    background-color: var(--pink, #e4087e);
    border-color: var(--light-pink, #fbdaec);
}

.course-card__info {
    box-sizing: border-box;
    margin: 0;
    margin-top: auto;
    padding: 10px 16px;
    border-radius: 10px;
    background-color: rgb(221 234 245 / 50%);
    display: flex;
    flex-direction: column;
    gap: 0;
}

.course-card__info-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    align-items: baseline;
}

.course-card__info-label {
    margin: 0;
    font-weight: 700;
}

.course-card__info-value {
    margin: 0;
}

.course-card__info-value .woocommerce-Price-amount {
    white-space: nowrap;
}

.course-card__price-suffix {
    font-size: 12px;
    line-height: 20px;
}

.course-card__footer {
    margin-top: 0;
}

.course-card__footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 26px;
}

.course-card__link {
    text-decoration: none;
}

.course-card__link--more-info {
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.42px;
    color: var(--font-color, #0A2636);
    transition: color 0.3s ease;
}

.course-card__link--more-info:hover,
.course-card__link--more-info:focus-visible {
    color: var(--pink, #E4087E);
}

.course-card__link--sign-up {
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.42px;
    color: var(--font-color, #0A2636);
    border: 2px solid var(--font-color, #0A2636);
    padding: 12px 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 40px;
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

.course-card__link--sign-up:hover,
.course-card__link--sign-up:focus-visible {
    background-color: var(--pink, #E4087E);
    border-color: var(--pink, #E4087E);
    color: #fff;
}

.course-card__link--sign-up.is-loading {
    pointer-events: none;
    opacity: 0.65;
}

@media (max-width: 991px) {
    .course-card {
        padding: 29px 24px;
    }

    .course-card__footer-links {
        justify-content: space-between;
    }
}

@media (max-width: 767px) {
    .course-card__info-row--price {
        row-gap: 0;
    }

    .course-card__info-row--price .course-card__info-value {
        display: contents;
    }

    .course-card__info-row--price .course-card__price-suffix {
        grid-column: 1 / -1;
    }
}

/* ---------------------------------------------------------------------------
   List view.

   Stond eerst alleen in courses-page-overview.css. Nu het cursusblok op andere
   pagina's dezelfde weergave kan gebruiken, staan de regels hier: course-card.css
   wordt op beide plekken geladen, dus de opmaak leeft op een plek. Het
   cursusoverzicht wisselt met zijn eigen class (de JS-toggle blijft ongewijzigd),
   het VC-element gebruikt .tt-course-cards--list.
   --------------------------------------------------------------------------- */

/* List view: two columns — left: header, title, footer; right: details (spans rows). */
.courses-page-overview__course-grid--list-view .course-card,
.tt-course-cards--list .course-card {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-areas:
	"head details"
	"title details"
	"foot details";
	gap: 17px 40px;
	padding: 32px 29px;
}

.courses-page-overview__course-grid--list-view .course-card__header,
.tt-course-cards--list .course-card__header {
	grid-area: head;
	align-self: start;
}

.courses-page-overview__course-grid--list-view .course-card__title,
.tt-course-cards--list .course-card__title {
	grid-area: title;
	align-self: start;
}

.courses-page-overview__course-grid--list-view .course-card__info,
.tt-course-cards--list .course-card__info {
	grid-area: details;
	margin-top: 0;
	align-self: stretch;
	min-height: 0;
	height: 100%;
}

.courses-page-overview__course-grid--list-view .course-card__footer,
.tt-course-cards--list .course-card__footer {
	grid-area: foot;
	align-self: start;
}

.courses-page-overview__course-grid--list-view .course-card__footer-links,
.tt-course-cards--list .course-card__footer-links {
	justify-content: flex-start;
}

.courses-page-overview__course-grid--list-view .course-card__link--sign-up,
.tt-course-cards--list .course-card__link--sign-up {
	order: 1;
}

.courses-page-overview__course-grid--list-view .course-card__link--more-info,
.tt-course-cards--list .course-card__link--more-info {
	order: 2;
}

@media (max-width: 767px) {
	.courses-page-overview__course-grid--list-view .course-card,
.tt-course-cards--list .course-card {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
		"head"
		"title"
		"details"
		"foot";
	}
}

/* ---------------------------------------------------------------------------
   Kaartlinks binnen .entry-content.

   Staat een cursuskaart in de content van een pagina (via de shortcode), dan
   kleurt `.page-default-surface .entry-content a` uit page-default.css elke link
   roze. Die selector is specifieker dan de kaartregels hierboven, dus hij wint
   ook van de hover-varianten: de knop was roze in rust en werd roze-op-roze bij
   hover, waardoor de tekst onleesbaar was.

   Hier zetten we de kaartkleuren terug met genoeg gewicht. Beide toestanden,
   want de rusttoestand was net zo goed fout.
   --------------------------------------------------------------------------- */
.page-default-surface .entry-content a.course-card__link--sign-up,
.page-default-surface .entry-content a.course-card__link--more-info {
	color: var(--font-color, #0A2636);
}

.page-default-surface .entry-content a.course-card__link--sign-up:hover,
.page-default-surface .entry-content a.course-card__link--sign-up:focus-visible {
	color: #fff;
}

.page-default-surface .entry-content a.course-card__link--more-info:hover,
.page-default-surface .entry-content a.course-card__link--more-info:focus-visible {
	color: var(--pink, #E4087E);
}

/* Diezelfde paginaregel onderstreept links bij hover. Op een knop leest dat als
   een streep onder de tekst; die hoort er niet. */
.page-default-surface .entry-content a.course-card__link--sign-up:hover,
.page-default-surface .entry-content a.course-card__link--sign-up:focus-visible,
.page-default-surface .entry-content a.course-card__link--more-info:hover,
.page-default-surface .entry-content a.course-card__link--more-info:focus-visible {
	text-decoration: none;
}
