/* =========================================================
   MVT ACTIVITEITEN
   ========================================================= */

.mvt-activities {
	--mvt-pink: #e6007e;
	--mvt-pink-dark: #c4006b;
	--mvt-blue: #8daccd;
	--mvt-blue-dark: #376c9b;
	--mvt-blue-light: #edf6fc;
	--mvt-dark: #10172e;
	--mvt-text: #283852;
	--mvt-border: #dce8f2;

	width: 100%;

	color: var(--mvt-text);
}


.mvt-activities *,
.mvt-activities *::before,
.mvt-activities *::after,
.activity-modal *,
.activity-modal *::before,
.activity-modal *::after {
	box-sizing: border-box;
}


.mvt-activities .container {
	width: min(100% - 32px, 1200px);
	margin-inline: auto;
}


/* =========================================================
   GROEPEN
   ========================================================= */

.activity-group {
	margin-bottom: clamp(50px, 7vw, 85px);
}


.activity-group__header {
	display: flex;
	align-items: center;

	gap: 15px;

	margin-bottom: 23px;
}


.activity-group__header h2 {
	margin: 0 0 2px;

	color: var(--mvt-dark);

	font-size: clamp(27px, 3vw, 38px);
	line-height: 1.1;
}


.activity-group__header p {
	margin: 0;

	font-size: 15px;
	line-height: 1.4;
}


.activity-group__icon {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 42px;
	height: 48px;

	color: var(--mvt-pink);
}


.activity-group__icon svg {
	width: 100%;
	height: 100%;

	fill: currentColor;
}


.activity-group__icon--star {
	font-size: 38px;
	line-height: 1;
}


/* =========================================================
   GRID
   ========================================================= */

.activity-grid {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap: 20px;
}


/* =========================================================
   CARD
   ========================================================= */

.activity-card {
	display: flex;
	flex-direction: column;

	min-width: 0;

	overflow: hidden;

	border: 1px solid var(--mvt-border);
	border-radius: 15px;

	background: #fff;

	box-shadow:
		0 4px 14px rgba(23, 50, 75, .04),
		0 12px 30px rgba(23, 50, 75, .04);

	transition:
		transform .2s ease,
		box-shadow .2s ease,
		border-color .2s ease;
}


@media (hover: hover) {

	.activity-card:hover {
		transform: translateY(-4px);

		border-color: #bad4e8;

		box-shadow:
			0 10px 25px rgba(23, 50, 75, .08),
			0 20px 40px rgba(23, 50, 75, .07);
	}

}


.activity-card__body {
	flex: 1;

	padding: 23px 22px 25px;
}


.activity-card__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;

	gap: 12px;

	margin-bottom: 22px;
}


.activity-card h3 {
	margin: 0 0 5px;

	color: var(--mvt-dark);

	font-size: clamp(17px, 2.2vw, 20px);
	line-height: 1.25;

	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}


.activity-card__extra {
	margin: 0;

	font-size: 14px;
	font-weight: 600;
	line-height: 1.45;
}


.activity-card__arrow {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	width: 34px;
	height: 34px;

	border-radius: 50%;

	background: var(--mvt-blue-light);
	color: var(--mvt-blue-dark);

	font-size: 21px;
}


/* =========================================================
   DETAILS
   ========================================================= */

.activity-card__details {
	display: flex;
	flex-direction: column;

	gap: 20px;
}


.activity-detail {
	display: grid;

	grid-template-columns: 34px 1fr;

	gap: 12px;
}


.activity-detail__icon {
	display: flex;
	align-items: flex-start;
	justify-content: center;

	width: 29px;
	height: 29px;

	color: var(--mvt-pink);
}


.activity-detail__icon svg {
	width: 26px;
	height: 26px;

	fill: currentColor;
}


.activity-detail > div {
	display: flex;
	flex-direction: column;
}


.activity-detail strong {
	margin-bottom: 3px;

	color: var(--mvt-pink);

	font-size: 14px;
	font-weight: 700;
}


.activity-detail span {
	font-size: 14px;
	line-height: 1.45;
}


/* =========================================================
   CARD BUTTON
   ========================================================= */

.activity-card__button {
	display: flex;
	align-items: center;
	justify-content: center;

	gap: 15px;

	width: calc(100% - 12px);

	margin: 0 6px 6px;
	padding: 14px 20px;

	border: 0;
	border-radius: 9px;

	background: var(--mvt-pink);
	color: #fff;

	font: inherit;
	font-size: 15px;
	font-weight: 700;

	cursor: pointer;
}


.activity-card__button span:last-child {
	margin-left: auto;

	font-size: 20px;
}


.activity-card__button:hover,
.activity-card__button:focus {
	background: var(--mvt-pink-dark);
	color: #fff;
}


/* =========================================================
   POPUP
   ========================================================= */

.activity-modal {
	position: fixed;
	z-index: 99999;

	inset: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 30px 20px;

	visibility: hidden;

	background: rgba(15, 31, 51, .76);

	opacity: 0;

	transition:
		opacity .25s ease,
		visibility .25s ease;
}


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


.activity-modal__dialog {
	position: relative;

	width: min(100%, 820px);
	max-height: calc(100vh - 60px);

	overflow-y: auto;

	padding: 28px;

	border-radius: 24px;

	background: #fff;

	box-shadow:
		0 25px 80px rgba(0, 0, 0, .28);
}


.activity-modal__close {
	position: absolute;
	z-index: 10;

	top: 18px;
	right: 18px;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 42px;
	height: 42px;

	padding: 0;

	border: 0;
	border-radius: 50%;

	background: #edf6fc;
	color: #10172e;

	font-size: 29px;
	line-height: 1;

	cursor: pointer;
}


.activity-modal__close:hover,
.activity-modal__close:focus {
	background: #8daccd;
	color: #fff;
}


/* =========================================================
   SAMENVATTING
   ========================================================= */

.mvt-eyebrow {
	display: block;

	margin-bottom: 8px;

	color: #8daccd;

	font-size: 14px;
	font-weight: 700;

	letter-spacing: .09em;
	text-transform: uppercase;
}


.activity-modal__summary {
	padding: clamp(30px, 5vw, 45px);

	border-radius: 22px;

	background:
		linear-gradient(
			135deg,
			#fff0f7 0%,
			#fff7fb 100%
		);
}


.activity-modal__summary h2 {
	margin: 0 55px 15px 0;

	color: var(--mvt-dark);

	font-size: clamp(26px, 5vw, 44px);
	line-height: 1.1;

	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}


.activity-modal__extra {
	margin: -3px 0 18px;

	color: var(--mvt-dark);

	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
}


.activity-modal__text {
	color: var(--mvt-text);

	font-size: 18px;
	line-height: 1.65;
}


/* =========================================================
   POPUP INFO
   ========================================================= */

.activity-modal__info {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap: 18px;

	margin-top: 22px;
}


.activity-modal__info-item {
	display: grid;

	grid-template-columns: 46px 1fr;

	gap: 16px;

	padding: 24px;

	border: 1px solid var(--mvt-border);
	border-radius: 15px;

	background: #fff;
}


.activity-modal__info-icon {
	display: flex;
	align-items: flex-start;
	justify-content: center;

	color: var(--mvt-pink);
}


.activity-modal__info-icon svg {
	width: 34px;
	height: 34px;

	fill: currentColor;
}


.activity-modal__info-item > div {
	display: flex;
	flex-direction: column;

	min-width: 0;
}


.activity-modal__info-item strong {
	margin-bottom: 7px;

	color: var(--mvt-pink);

	font-size: 17px;
	font-weight: 700;
}


.activity-modal__info-item span {
	font-size: 16px;
	line-height: 1.45;
}


/* =========================================================
   MAPS BUTTON
   ========================================================= */

#activity-modal a.mvt-popup-maps,
#activity-modal a.mvt-popup-maps:link,
#activity-modal a.mvt-popup-maps:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: space-between !important;

	gap: 10px !important;

	width: auto !important;

	margin: 15px 0 0 !important;
	padding: 10px 15px !important;

	border: 2px solid #8daccd !important;
	border-radius: 8px !important;

	background: #edf6fc !important;
	background-image: none !important;

	color: #376c9b !important;

	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;

	text-decoration: none !important;

	box-shadow: none !important;
}


#activity-modal a.mvt-popup-maps span {
	color: inherit !important;
	text-decoration: none !important;
}


#activity-modal a.mvt-popup-maps:hover,
#activity-modal a.mvt-popup-maps:focus,
#activity-modal a.mvt-popup-maps:active {
	border-color: #376c9b !important;

	background: #376c9b !important;
	background-image: none !important;

	color: #fff !important;

	text-decoration: none !important;
}


/* =========================================================
   ACTIEKNOPPEN
   ========================================================= */

#activity-modal .activity-modal__actions {
	display: flex !important;
	align-items: center;
	flex-wrap: wrap;

	gap: 12px;

	margin-top: 24px;
}


#activity-modal a.mvt-popup-button,
#activity-modal a.mvt-popup-button:link,
#activity-modal a.mvt-popup-button:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: space-between !important;

	gap: 28px !important;

	min-width: 210px !important;
	width: auto !important;

	margin: 0 !important;
	padding: 14px 18px !important;

	border-radius: 8px !important;

	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;

	text-decoration: none !important;

	background-image: none !important;

	box-shadow: none !important;
}


#activity-modal a.mvt-popup-button span {
	color: inherit !important;
	text-decoration: none !important;
}


#activity-modal a.mvt-popup-button[hidden] {
	display: none !important;
}


/* LEES MEER */

#activity-modal a.mvt-popup-button--more,
#activity-modal a.mvt-popup-button--more:link,
#activity-modal a.mvt-popup-button--more:visited {
	border: 2px solid #8daccd !important;

	background: #edf6fc !important;
	color: #376c9b !important;
}


#activity-modal a.mvt-popup-button--more:hover,
#activity-modal a.mvt-popup-button--more:focus,
#activity-modal a.mvt-popup-button--more:active {
	border-color: #376c9b !important;

	background: #376c9b !important;
	color: #fff !important;
}


/* INSCHRIJVEN */

#activity-modal a.mvt-popup-button--register,
#activity-modal a.mvt-popup-button--register:link,
#activity-modal a.mvt-popup-button--register:visited {
	border: 2px solid #e6007e !important;

	background: #e6007e !important;
	color: #fff !important;
}


#activity-modal a.mvt-popup-button--register:hover,
#activity-modal a.mvt-popup-button--register:focus,
#activity-modal a.mvt-popup-button--register:active {
	border-color: #c4006b !important;

	background: #c4006b !important;
	color: #fff !important;
}


/* =========================================================
   BODY
   ========================================================= */

body.activity-modal-open {
	overflow: hidden;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 950px) {

	.activity-grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}


/* =========================================================
   MOBIEL
   ========================================================= */

@media (max-width: 650px) {

	.mvt-activities .container {
		width: min(100% - 24px, 1200px);
	}


	.activity-grid {
		grid-template-columns: 1fr;
	}


	.activity-group__header {
		align-items: flex-start;
	}


	.activity-modal {
		align-items: flex-end;

		padding: 12px;
	}


	.activity-modal__dialog {
		width: 100%;
		max-height: calc(100vh - 24px);

		padding: 16px;

		border-radius: 20px;
	}


	.activity-modal__summary {
		padding: 27px 20px;
	}


	.activity-modal__summary h2 {
		margin-right: 35px;

		font-size: 29px;
	}


	.activity-modal__info {
		grid-template-columns: 1fr;
	}


	#activity-modal a.mvt-popup-maps {
		width: 100% !important;
	}


	#activity-modal .activity-modal__actions {
		flex-direction: column;
		align-items: stretch;
	}


	#activity-modal a.mvt-popup-button {
		width: 100% !important;
		min-width: 0 !important;
	}

@media (max-width: 650px) {
	
	.activity-modal__close {
	position: sticky;
	top: 0;
	float: right;

	z-index: 20;
}

	.activity-modal {
		align-items: flex-end;

		padding: 10px;
	}

	.activity-modal__dialog {
		width: 100%;
		max-height: calc(100dvh - 20px);

		overflow-y: auto;

		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;

		padding: 14px;

		border-radius: 20px;
	}

	.activity-modal__summary {
		padding: 24px 18px;
	}

	.activity-modal__summary h2 {
		margin-right: 40px;

		font-size: clamp(23px, 7vw, 29px);
	}

	.activity-modal__text {
		font-size: clamp(15px, 4.5vw, 17px);
		line-height: 1.55;
	}

}

@media (max-width: 480px) {

	.activity-card h3 {
		font-size: clamp(16px, 5vw, 18px);
	}

	.activity-modal__summary h2 {
		font-size: clamp(24px, 7vw, 29px);
	}

}}