/********************************************************/
/*
/*      Site content CSS
/*
/********************************************************/
.wp-site-blocks > main {
	flex-grow: 2;
	position: relative;
	
	&, & > .wp-block-post-content {
		display: contents;
	}
	
	& > .wp-block-post-content {
		& > * {
			/* Do not apply scrollsnap style to blog article singles */
			body:not(.single-cke_blogue) & {
				grid-column: 1;
				align-self: center;
				height: max-content;
				/* max-height: calc(100svh - (var(--wp--custom--outer-pad) * 3)); */
				box-sizing: border-box;
				
				/* &:not(.wp-block-group.multi-screen-span, .wp-block-cover, .wp-block-cke-cruises, .wp-block-cke-entertainers, .wp-block-cke-partners, .wp-block-cke-promotions, .wp-block-cke-team-members, .wp-block-cke-blog, .wp-block-cke-faq, .cruise-infobox-and-images, .wp-block-cke-tabs) {
					margin-block: calc(var(--wp--custom--outer-pad) * 1) calc(var(--wp--custom--outer-pad) * 2);
				} */
			}
			
			& + * {
				margin-block-start: 10vw;
			}
			
			&:last-child {
				margin-block-end: 15vw;
			}
			
			/**** Content widths ****/
			&.alignwide {
				width: 100%;
				max-width: var(--wp--style--global--wide-size);
			}
			
			&.alignfull {
				max-width: var(--wp--custom--viewport-width);
				
				/* Override Gutenberg default style */
				margin-left: unset !important;
				margin-right: unset !important;
			}
			
			/**** Content alignments ****/
			&:not(.is-content-justification-left, .is-content-justification-right) {
				justify-self: center;
				
				&.alignfull {
					justify-self: stretch;
				}
			}
			
			&.is-content-justification-left {
				justify-self: start;
			}
			
			&.is-content-justification-right {
				justify-self: end;
			}
		}
		
		/* Force center vertical alignment */
		/* & > .wp-block-group.center-vertically,
		& > .wp-block-group:has(> :is(.wp-block-image, .wp-block-video, iframe):not(.limited-height, :only-child)):not(.multi-screen-span) {
			display: flex;
			flex-direction: column;
			justify-content: center;
			height: 100svh;
			max-height: 100svh;
			padding-block: calc(var(--wp--custom--outer-pad) * 1) calc(var(--wp--custom--outer-pad) * 2);
			margin-block: unset;
			box-sizing: border-box; */
			
			/* Adapt image/video/iframe height when available space has to be shared with other elements */
			/* & > :is(.wp-block-image, .wp-block-video, iframe) {
				width: 100%;
				height: 100%;
				aspect-ratio: unset;
				
				:is(img, video) {
					position: absolute;
					inset: 0;
					width: 100%;
					height: 100%;
					object-fit: cover;
				}
			}
		} */
		
		/* Multi-screen class applicable to groups that take up multiple viewport heights but are all linked to the same anchor */
		& > .wp-block-group.multi-screen-span {
			grid-row: span var(--item-count, 1);
			display: grid;
			grid-template-columns: 100%;
			/* grid-auto-rows: 100svh; */
			grid-auto-rows: max-content;
			align-items: center;
			row-gap: 0;
			width: 100%;
			/* height: calc(100svh * var(--item-count, 1)) !important;	 */
			/* max-height: calc(100svh * var(--item-count, 1)) !important;	 */
			
			/* & > :not(.wp-block-cke-anchor, .wp-block-cke-cruises, .wp-block-cke-entertainers, .wp-block-cke-partners, .wp-block-cke-promotions, .wp-block-cke-team-members, .wp-block-cke-blog, .wp-block-cke-faq) {
				max-height: calc(100svh - (var(--wp--custom--outer-pad) * 3));
				margin-block: var(--wp--custom--outer-pad) calc(var(--wp--custom--outer-pad) * 2);
				
				&:is(figure) {
					height: calc(100svh - (var(--wp--custom--outer-pad) * 3));
					
					img {
						object-fit: cover;
					}
				}
			} */
			
			& > :not(.wp-block-cke-anchor) + * {
				margin-block-start: 150px;
			}
			
			/* & > :is(.wp-block-cke-cruises, .wp-block-cke-entertainers, .wp-block-cke-partners, .wp-block-cke-promotions, .wp-block-cke-team-members, .wp-block-cke-blog, .wp-block-cke-faq) {
				margin-block: unset;
			} */
		}
		
		/* Prevent blocks with width constraints on children from being too small */
		[class*="wp-block"].is-layout-constrained:not(.alignfull):not(.wp-block-post-content, .wp-block-cover, .wp-block-columns, .wp-block-column) {
			&:not(:not(.wp-block-post-content).is-layout-constrained > &) {
				width: var(--wp--custom--min-wide-size) !important;
				min-width: var(--wp--custom--min-wide-size) !important;
				margin-inline-start: calc((var(--wp--custom--min-wide-size) - var(--wp--custom--viewport-width)) * -1 / 2) !important;
				
				.multi-screen-span > & {
					margin-inline-start: calc((var(--wp--custom--min-wide-size) - 100%) * -1 / 2) !important;
				}
				
				&:not(.alignwide) {
					width: var(--wp--custom--min-content-size) !important;
					min-width: var(--wp--custom--min-content-size) !important;
					margin-inline-start: calc((var(--wp--custom--min-content-size) - var(--wp--custom--viewport-width)) * -1 / 2) !important;
					
					.multi-screen-span > & {
						margin-inline-start: calc((var(--wp--custom--min-content-size) - 100%) * -1 / 2) !important;
					}
				}
				
				& > * {
					width: calc(var(--wp--custom--viewport-width) - (var(--wp--custom--outer-pad) * 2));
					
					&.wp-block-image {
						display: flex;
					}
				}
			}
		}
		
		/* @media (width <= 1200px) {
			& > .wp-block-group.multi-screen-span {				
				& > :not(.wp-block-cke-anchor, .wp-block-cke-cruises, .wp-block-cke-entertainers, .wp-block-cke-partners, .wp-block-cke-promotions, .wp-block-cke-team-members, .wp-block-cke-blog, .wp-block-cke-faq) {
					max-height: calc(100svh - (var(--wp--custom--outer-pad) * 4));
					margin-block: var(--wp--custom--outer-pad) calc(var(--wp--custom--outer-pad) * 3);
					
					&:is(figure) {
						height: calc(100svh - (var(--wp--custom--outer-pad) * 4));
					}
				}
			}
		}
		
		@media (width <= 750px) {
			& > .wp-block-group.multi-screen-span {				
				& > :not(.wp-block-cke-anchor, .wp-block-cke-cruises, .wp-block-cke-entertainers, .wp-block-cke-partners, .wp-block-cke-promotions, .wp-block-cke-team-members, .wp-block-cke-blog, .wp-block-cke-faq) {
					max-height: calc(100svh - (var(--wp--custom--outer-pad) * 5));
					margin-block: var(--wp--custom--outer-pad) calc(var(--wp--custom--outer-pad) * 4);
					
					&:is(figure) {
						height: calc(100svh - (var(--wp--custom--outer-pad) * 5));
					}
				}
			}
		} */
	}
}

/************************************************************/
/* Templates
/************************************************************/
/******************************/
/* Singles
/******************************/
/**** Blog single ****/
body.single-cke_blogue .wp-site-blocks > main > .wp-block-post-content {
	& > * {
		justify-self: start;
		text-align: start;
		margin-block: unset;
		
		&:not(.alignfull) {
			margin-inline: var(--wp--custom--content-pad) auto !important;
		}
		
		& + * {
			margin-block-start: 2em;
		}
	}
	
	/* Blog single-specific style, because they do not have the scrollsnap style and functionalities */
	& > .wp-block-cover:first-child {
		min-height: 620px;
		margin-block-start: calc(var(--wp--custom--header-height) * -1) !important;
		
		& + * {
			margin-block-start: calc(100svh - 620px);
		}
		
		.article-date {
			/* margin-block-start: -1em; */
		}
	}
}

/**** Cruise single ****/
body.single-cke_croisiere .wp-site-blocks > main > .wp-block-post-content {
	& > .cruise-description {
		width: calc(var(--wp--style--global--content-size) * .4);
		text-align: center;
		margin-block-start: 250px;
	}
	
	& > .cruise-infobox-and-images {
		display: grid;
		grid-template-columns: 27.5% 22.5% 27.5%;
		grid-template-rows: 100svh;
		justify-content: space-between;
		column-gap: var(--wp--preset--spacing--2);
		width: 100%;
		max-width: var(--wp--style--global--wide-size);
		height: 100svh;
		max-height: 100svh;
		margin-block: unset;
		
		& > * {
			grid-row: 1;
		}
		
		/* Images */
		figure {
			align-self: center;
			position: relative;
			height: calc(100svh * (2/3));
			margin: unset;
			border-radius: var(--wp--custom--border-radius--medium);
			overflow: clip;
			pointer-events: none;
			
			&:first-of-type {
				grid-column: 1;
			}
			
			&:last-of-type {
				grid-column: 3;
			}
			
			img {
				display: block;
				position: absolute;
				inset: 0;
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
		
		& > .cruise-images.mobile-only {
			display: none;
			
			& > div {
				display: grid;
				grid-template-columns: 100%;
				grid-template-rows: repeat(2, minmax(0, 1fr));
				row-gap: var(--wp--custom--outer-pad);
				margin-block: calc(100svh / 6);
				
				figure {
					grid-column: 1;
					height: 100%;
				}
			}
		}
		
		/* Infobox */
		& > .cruise-infobox {
			grid-column: 2;
			align-self: center;
			display: flex;
			flex-direction: column;
			align-items: center;
			position: relative;
			height: max-content;
			max-height: calc(100svh * (2/3));
			text-align: center;
			margin-block-start: calc(100svh / 6);
			
			* {
				margin-block: unset;
			}
			
			& > h6:first-child {
				margin-block-start: calc((1em + var(--wp--preset--spacing--1)) * -1);
			}
			
			& > :is(.cruise-title, .cruise-price) {
				margin-block-start: var(--wp--preset--spacing--1);
			}
			
			& > [class*="cruise-details"] {
				--items-per-row: 3;
				--col-gap: var(--wp--preset--spacing--3);
				
				display: flex;
				align-items: end;
				/* display: grid;
				grid-template-columns: repeat(var(--items-per-row), 25%); */
				justify-content: center;
				column-gap: var(--col-gap);
				row-gap: var(--wp--preset--spacing--1-5);
				width: calc((var(--wp--style--global--wide-size) * .45) - (var(--wp--preset--spacing--2) * 2));
				margin-block-start: var(--wp--preset--spacing--1-5);
				
				& > * {
					align-self: start;
					display: flex;
					flex-direction: column;
					align-items: center;
					gap: var(--wp--preset--spacing--0-25);
					/* max-width: calc((100% - (var(--col-gap) * (var(--items-per-row) - 1))) / var(--items-per-row)); */
					font-size: var(--wp--preset--font-size--medium);
					color: var(--wp--custom--color--default--text--main);
					
					&::before {
						content: '';
						width: 25px;
						height: auto;
						min-height: 45px;
						aspect-ratio: 1;
						color: inherit;
						background-repeat: no-repeat;
						background-position: center;
						background-color: var(--wp--custom--color--default--text--headings);
						
						-webkit-mask: var(--svg, unset);
						mask: var(--svg, unset);
						mask-repeat: no-repeat;
						mask-position: center;
					}
					
					&.cruise-duration::before {
						--svg: url(../images/em-icon-captains-wheel.svg);
						
						width: 45px;
						aspect-ratio: 1;
					}
					
					&.cruise-meal::before {
						--svg: url(../images/em-icon-meal.svg);
						
						width: 22px;
						aspect-ratio: 23/47;
					}
					
					&.cruise-cocktail::before {
						--svg: url(../images/em-icon-cocktail.svg);
						
						width: 13px;
						aspect-ratio: 14/43;
					}
					
					&.cruise-entertainment::before {
						--svg: url(../images/em-icon-entertainment.svg);
						
						width: 38px;
						aspect-ratio: 39/43;
					}
					
					&.cruise-other::before {
						--svg: url(../../assets/images/em-lettrine.svg);
						
						width: 38px;
						aspect-ratio: 245/199;
						mask-size: contain;
					}
					
					& > span {
						max-width: 150px;
					}
				}
			}
			
			& > .disclaimer {
				max-width: 80%;
				margin-block-start: var(--wp--preset--spacing--5);
			}
		}
	}
	
	/******************************/
	/* Responsive
	/******************************/
	@media (width <= 1600px) {
		& > .cruise-infobox-and-images {
			grid-template-columns: 27.5% 35% 27.5%;
			
			& > .cruise-infobox {
				& > .cruise-disclaimer {
					max-width: 90%;
				}
			}
		}
	}
	
	@media (width <= 1200px) {
		& > .cruise-infobox-and-images {
			grid-template-columns: 25% 40% 25%;
			
			& > .cruise-infobox {
				& > [class*="cruise-details"] {
					--col-gap: var(--wp--preset--spacing--1);
					
					width: 100%;
				}
				
				& > .cruise-disclaimer {
					max-width: 100%;
				}
			}
		}
	}
	
	@media (width <= 1000px) {
		& > .cruise-description {
			width: 100%;
		}
		
		& > .cruise-infobox-and-images {
			grid-template-columns: 55% 40%;
			
			& > .cruise-image {
				display: none;
			}
			
			& > .cruise-images.mobile-only {
				display: grid;
				grid-column: 2;
			}
			
			& > .cruise-infobox {
				grid-column: 1;
			}
		}
	}
	
	@media (width <= 600px) {
		& > .cruise-infobox-and-images {
			grid-template-columns: 100%;
			
			& > .cruise-images {
				display: none !important;
			}
			
			& > .cruise-infobox {
				margin-block: auto !important;
			}
		}
	}
	
	/**** Height queries ****/
	@media (height < 900px) {
		& > .cruise-infobox-and-images {
			& > .cruise-images.mobile-only {
				& > div {
					margin-block: 12.5svh;
				}
				
				figure {
					height: 75svh;
				}
			}
			
			& > .cruise-infobox {
				max-height: 75svh;
				margin-block-start: 12.5svh;
			}
		}
	}
	
	@media (height < 750px) {
		& > .cruise-infobox-and-images {
			& > .cruise-images.mobile-only {
				& > div {
					margin-block: 5svh;
				}
				
				figure {
					height: 90svh;
				}
			}
			
			& > .cruise-infobox {
				max-height: 90svh;
				margin-block-start: 5svh;
			}
		}
	}
}

/******************************/
/* 404 error
/******************************/
body.error404 .wp-site-blocks > main {
	display: flex;
	justify-content: center;
	align-items: center;
}

/************************************************************/
/* Shortcode elements
/************************************************************/
/* Coordinates */
.coordinates {
	display: flex;
	flex-direction: column;
	
	/* Margins */
	div, p {
		margin-block: unset;
		
		& + div {
			margin-block-start: var(--wp--preset--spacing--2);
		}
	}
	
	/* Text style */
	p {
		width: max-content;
		font-family: var(--wp--preset--font-family--national-2);
		font-size: var(--wp--preset--font-size--medium-large);
		line-height: 1.35;
		font-weight: 400;
		letter-spacing: 1.5px;
		text-align: center;
		text-transform: uppercase;
		color: var(--wp--custom--color--default--text--headings);
		
		a {
			font-family: inherit;
			font-size: inherit;
			line-height: inherit;
			font-weight: inherit;
			color: inherit;
			letter-spacing: inherit;
			text-align: inherit;
			text-transform: inherit;
			text-decoration: none;
			transition: color var(--wp--custom--speed--fast);
			
			&:is(:hover, :focus, :active) {
				color: var(--wp--custom--color--default--focus);
			}
		}
	}
}

/* Opening hours */
.opening-hours {
	& > p {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		margin-block: 0;
		
		& > span.days {
			font-weight: 700;
		}
	}
}

/************************************************************/
/* Plugin style overrides
/************************************************************/
/* GDPR Cookie Consent banner/modal/button */
:is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal, #moove_gdpr_save_popup_settings_button) {
	z-index: 4 !important;
	
	.mgbutton,
	.moove_gdpr_text,
	.moove-gdpr-cookie-notice > p {
		color: var(--wp--preset--color--dove-white) !important;
	}
	
	&:is(#moove_gdpr_cookie_info_bar, #moove_gdpr_cookie_modal) {
		* {
			-webkit-font-smoothing: auto !important;
			letter-spacing: 1px !important;
		}	
	}
	
	&#moove_gdpr_cookie_info_bar {	
		background-color: var(--wp--preset--color--nebula-blue) !important;
		border: 2px solid var(--wp--preset--color--dove-white) !important;
		
		:is(.moove-gdpr-infobar-allow-all, .moove-gdpr-infobar-reject-btn) {
			color: var(--wp--preset--color--dove-white) !important;
			background-color: var(--wp--preset--color--dark-buff-brown) !important;
			box-shadow: unset !important;
			/* box-shadow: inset 0 0 0 1px currentColor !important; */
			
			&:is(:hover, :focus, :active) {
				color: var(--wp--preset--color--nebula-blue) !important;
				background-color: var(--wp--preset--color--prism-blue) !important;
			}
		}
		
		.moove-gdpr-infobar-settings-btn {
			color: var(--wp--preset--color--dove-white) !important;
			background-color: transparent !important;
			
			&:is(:hover, :focus, :active) {
				color: var(--wp--preset--color--nebula-blue) !important;
				background-color: var(--wp--preset--color--prism-blue) !important;
			}
		}
	}
	
	&#moove_gdpr_cookie_modal {
		.moove-gdpr-company-logo-holder img {
			height: 150px;
			object-fit: contain;
			filter: var(--wp--custom--color--nebula-blue--filter);
		}
		
		#moove-gdpr-menu li,
		.cookie-switch {
			&::before,
			&::after {
				display: none;
			}
		}
		
		:is(.mgbutton, .moove-gdpr-modal-close):is(:hover, :focus, :active) {
			&, & > span {
				color: var(--wp--preset--color--dark-buff-brown) !important;
				background-color: var(--wp--preset--color--dove-white) !important;
				box-shadow: unset !important;
			}
		}
	}
	
	&#moove_gdpr_save_popup_settings_button {
		bottom: var(--wp--preset--spacing--1) !important;
		left: calc(var(--wp--custom--outer-pad) / 2) !important;
		background-color: var(--wp--preset--color--dark-buff-brown) !important;
		border: 1px solid  var(--wp--preset--color--dove-white) !important;
		box-sizing: content-box;
		cursor: pointer;
		
		span.moove_gdpr_icon {
			position: relative;
			
			&::after {
				content: '';
				position: absolute;
				top: 50%;
				left: 50%;
				width: calc(100% *  (2/3));
				height: calc(100% *  (2/3));
				background: url(../images/privacy.svg) no-repeat center;
				background-size: contain;
				filter: var(--wp--custom--color--dove-white--filter);
				translate: -50% -50%;
			}
			
			svg {
				display: none;
			}
		}
	}
	
	/******************************/
	/* Responsive
	/******************************/
	@media (width <= 600px) {
		&#moove_gdpr_save_popup_settings_button {
			left: var(--wp--preset--spacing--0-50) !important;
			
			&, & > .moove_gdpr_icon {
				min-width: 32px !important;
				height: 32px !important;
			}
		}
	}
}

/* WP Go Maps */
/**** Map ****/
.wpgmza_map {
	position: relative;
	border-radius: var(--wp--custom--border-radius--medium);
	overflow: clip;
	
	&::after {
		content: '';
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		background-color: var(--wp--custom--color--default--focus);
		mix-blend-mode: color;
		pointer-events: none;
	}
	
	& > div {
		filter: saturate(0);
	}
}
