/********************************************************/
/*
/*      General CSS
/*
/********************************************************/

	/******************************/
	/* Modifier classes
	/******************************/
	/* Layout */
	.flex													{ display: flex; }
	.flex-column											{ flex-direction: column; }
	.justify-start											{ justify-content: start; }
	.justify-center											{ justify-content: center; }
	.justify-end											{ justify-content: end; }
	.justify-around											{ justify-content: space-around; }
	.justify-between										{ justify-content: space-between; }
	.justify-evenly											{ justify-content: space-evenly; }
	.align-start											{ align-items: start; }
	.align-center											{ align-items: center; }
	.align-end												{ align-items: end; }
	
	/* Color */
	.picton-blue,
	.focus-picton-blue:is(:hover, :focus, :active) 			{ color: var(--wp--preset--color--picton-blue); }
	.pastel-green,
	.focus-pastel-green:is(:hover, :focus, :active) 		{ color: var(--wp--preset--color--pastel-green); }
	.lavender,
	.focus-lavender:is(:hover, :focus, :active) 			{ color: var(--wp--preset--color--lavender); }
	.gold,
	.focus-gold:is(:hover, :focus, :active) 				{ color: var(--wp--preset--color--gold); }
	.salmon-pink,
	.focus-salmon-pink:is(:hover, :focus, :active) 			{ color: var(--wp--preset--color--salmon-pink); }
	.international-orange,
	.focus-international-orange:is(:hover, :focus, :active) { color: var(--wp--preset--color--international-orange); }
	.tuatara-black,
	.focus-tuatara-black:is(:hover, :focus, :active) 		{ color: var(--wp--preset--color--tuatara-black); }
	.mercury-gray,
	.focus-mercury-gray:is(:hover, :focus, :active) 		{ color: var(--wp--preset--color--mercury-gray); }
	.desert-storm-gray,
	.focus-desert-storm-gray:is(:hover, :focus, :active) 	{ color: var(--wp--preset--color--desert-storm-gray); }
	
	
	.bg-picton-blue											{ background-color: var(--wp--preset--color--picton-blue); }
	.bg-pastel-green										{ background-color: var(--wp--preset--color--pastel-green); }
	.bg-lavender											{ background-color: var(--wp--preset--color--lavender); }
	.bg-gold												{ background-color: var(--wp--preset--color--gold); }
	.bg-salmon-pink											{ background-color: var(--wp--preset--color--salmon-pink); }
	.bg-international-orange								{ background-color: var(--wp--preset--color--international-orange); }
	.bg-tuatara-black										{ background-color: var(--wp--preset--color--tuatara-black); }
	.bg-mercury-gray										{ background-color: var(--wp--preset--color--mercury-gray); }
	.bg-desert-storm-gray									{ background-color: var(--wp--preset--color--desert-storm-gray); }
	
	/* Text */
	.small													{ font-size: var(--wp--preset--font-size--small); }
	.medium-size											{ font-size: var(--wp--preset--font-size--medium); }
	.medium-large											{ font-size: var(--wp--preset--font-size--medium-large); }
	.large													{ font-size: var(--wp--preset--font-size--large); }
	.x-large												{ font-size: var(--wp--preset--font-size--x-large); }
	.omega													{ font-size: var(--wp--preset--font-size--omega); }
	.thin													{ font-weight: 100; }
	.extra-light											{ font-weight: 200; }
	.light													{ font-weight: 300; }
	.regular												{ font-weight: 400; }
	.medium-weight											{ font-weight: 500; }
	.semibold												{ font-weight: 600; }
	.bold													{ font-weight: 700; }
	.extra-bold												{ font-weight: 800; }
	.heavy													{ font-weight: 900; }
	.uppercase												{ text-transform: uppercase; }
	.lowercase												{ text-transform: lowercase; }
	.underline												{ text-decoration: underline; }
	.text-deco-none,
	.text-deco-none	a										{ text-decoration: none; }
	
	/* Images */
	.cover,
	.cover img												{ object-fit: cover; }
	.contain,
	.contain img											{ object-fit: contain; }
	
	/* Opacity */
	.opacity-full											{ opacity: 1; }
	.opacity-half											{ opacity: .5; }
	.opacity-zero											{ opacity: 0; }
	
	/* Other */
	.user-select-none										{ user-select: none; }
	
	/******************************/
	/* Buttons
	/******************************/
	.wp-block-button,
	body:not(.wp-admin, .login) .gfield--type-fileupload .ginput_container_fileupload,
	body:not(.wp-admin, .login) .gform_footer {
		--offset-h: 6px;
		--offset-v: 6px;
		
		/* Button accent color override */
		&:has(> .has-text-color.has-picton-blue-color) 			{ --btn-color: hsl(from var(--wp--preset--color--picton-blue) h s calc(l - 5)); }
		&:has(> .has-text-color.has-pastel-green-color) 		{ --btn-color: hsl(from var(--wp--preset--color--pastel-green) h s calc(l - 5)); }
		&:has(> .has-text-color.has-lavender-color) 			{ --btn-color: hsl(from var(--wp--preset--color--lavender) h s calc(l - 5)); }
		&:has(> .has-text-color.has-gold-color) 				{ --btn-color: hsl(from var(--wp--preset--color--gold) h s calc(l - 5)); }
		&:has(> .has-text-color.has-salmon-pink-color) 			{ --btn-color: hsl(from var(--wp--preset--color--salmon-pink) h s calc(l - 5)); }
		&:has(> .has-text-color.has-international-orange-color) { --btn-color: hsl(from var(--wp--preset--color--international-orange) h s calc(l - 5)); }
		&:has(> .has-text-color.has-tuatara-black-color) 		{ --btn-color: hsl(from var(--wp--preset--color--tuatara-black) h s calc(l - 5)); }
		&:has(> .has-text-color.has-mercury-gray-color) 		{ --btn-color: hsl(from var(--wp--preset--color--mercury-gray) h s calc(l - 5)); }
		&:has(> .has-text-color.has-desert-storm-gray-color) 	{ --btn-color: hsl(from var(--wp--preset--color--desert-storm-gray) h s calc(l - 5)); }
		
		position: relative;
		max-width: 100%;
		margin-block-end: var(--offset-v) !important;
		padding: 0px 0px var(--offset-v) var(--offset-h);
		filter: drop-shadow(3px 0 var(--btn-color, var(--wp--custom--color--default--accent)))
				drop-shadow(0 3px var(--btn-color, var(--wp--custom--color--default--accent)))
				drop-shadow(-3px 0 var(--btn-color, var(--wp--custom--color--default--accent)))
				drop-shadow(0 -3px var(--btn-color, var(--wp--custom--color--default--accent)));
		transition: filter var(--wp--custom--speed--medium), padding var(--wp--custom--speed--medium);
		
		&::after {
			content: '';
			position: absolute;
			top: var(--offset-v);
			left: 0;
			width: calc(100% - var(--offset-h));
			height: calc(100% - var(--offset-v));
			background-color: var(--btn-color, var(--wp--custom--color--default--accent));
			mask-image: url(../images/button-negative-mask-left.svg), url(../images/square.svg), url(../images/button-negative-mask-right.svg);
			mask-position: -1px, center, calc(100% + 1px);
			mask-size: auto 100%, cover, auto 100%;
			mask-repeat: no-repeat, no-repeat, no-repeat;
			mask-mode: alpha, alpha, alpha;
			mask-clip: border-box, padding-box, border-box;
			mask-composite: exclude;
			z-index: -1;
		}
		
		/* Helps reduce mask artifacts when visual editor is scaled */
		body.wp-admin &::after {
			clip-path: inset(0px round 9999px);
		}
		
		&:has(> :active) {
			padding: var(--offset-v) var(--offset-h) 0px 0px;
		}
		
		& > .wp-block-button__link,
		& > .gform_fileupload_rules::before,
		& > input[type="submit"] {
			width: max-content;
			max-width: 100%;
			height: 100%;
			padding: var(--wp--preset--spacing--0-75) var(--wp--preset--spacing--4) !important;
			mask-image: url(../images/button-negative-mask-left.svg), url(../images/square.svg), url(../images/button-negative-mask-right.svg);
			mask-position: -1px, center, calc(100% + 1px);
			mask-size: auto 100%, cover, auto 100%;
			mask-repeat: no-repeat, no-repeat, no-repeat;
			mask-mode: alpha, alpha, alpha;
			mask-clip: border-box, padding-box, border-box;
			mask-composite: exclude;
			clip-path: inset(0px round 9999px);
			user-select: none;
			transition: color var(--wp--custom--speed--medium), translate var(--wp--custom--speed--medium) !important;
			
			&:not(:hover, :focus, :active) {
				color: var(--wp--custom--color--default--text) !important;
			}
		}
	}
	
	/* Popup open/close buttons */
	button:is(.burger-popup-open, .burger-popup-close) {
		position: relative;
		width: 24px;
		height: 24px;
		background-color: transparent;
		padding: unset;
		border: unset;
		cursor: pointer;
		
		& > svg {
			width: 100%;
			height: 100%;
			fill: var(--wp--custom--color--default--text);
			transition: fill var(--wp--custom--speed--fast);
			
			.burger-popup-open > & {
				transform: skew(-10deg, 0);
			}
			
			.wp-site-blocks:has(.site-head + #burger-popup:not(:popover-open)) & {
				opacity: 1;
				transition: fill var(--wp--custom--speed--fast), opacity var(--wp--custom--speed--medium) var(--wp--custom--speed--fast);
			}
		}
		
		&:is(:hover, :focus, :active) {
			& > svg {
				fill: var(--wp--custom--color--default--focus);
			}
		}
	}
	
	/******************************/
	/* Forms & inputs
	/******************************/
	
	/******************************/
	/* Patterns
	/******************************/
	/* Footer CTA */
	.wp-site-blocks > footer > .wp-block-cke-cta {
		position: relative;
		z-index: -1;
		margin-block-start: var(--wp--preset--spacing--15);
	}
	
	/* Coordinates */
	.coordinates {
		display: flex;
		flex-direction: column;
		
		* {
			font-size: calc(var(--wp--preset--font-size--medium) * .95);
		}
		
		& > div,
		p {
			margin-block: unset;
		}
		
		& > div + div {
			margin-block-start: var(--wp--preset--spacing--3);
		}
		
		span.description {
			display: block;
			font-weight: 800;
		}
		
		a {
			text-decoration: none;
		}
		
		&.inherit-typo * {
			font-family: inherit !important;
			font-size: inherit !important;
			line-height: inherit !important;
			font-weight: inherit !important;
		}
		
		&:is(.use-accent-color) * {
			color: var(--wp--custom--color--default--accent) !important;
			
			&:is(:hover, :focus, :active) {
				color: var(--wp--custom--color--default--text) !important;
			}
		}
	}
	
	/* Opening hours */
	.opening-hours > p {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		margin-block: 0;
	}
	
	.opening-hours .days {
		font-weight: 700;
	}
	
	/******************************/
	/* ScrollTrigger animations
	/******************************/
	.st:not(.target-before, .target-after, .target-selector),
	.st:not(.target-selector).target-before::before,
	.st:not(.target-selector).target-after::after,
	.st.target-selector .target,
	.st.target-selector.target-before .target::before,
	.st.target-selector.target-after .target::after {
		opacity: var(--st-initial-opacity, 1) !important;
		transform: translate(var(--st-initial-translation-h, 0%), var(--st-initial-translation-v, 0%)) rotate(var(--st-initial-rotation, 0deg)) scale(var(--st-initial-scale, 1)) !important;
	}
	
	.st:not(.target-before, .target-after, .target-selector):not(.revealed),
	.st:not(.target-selector).target-before:not(.revealed)::before,
	.st:not(.target-selector).target-after:not(.revealed)::after,
	.st.target-selector:not(.revealed) .target,
	.st.target-selector.target-before:not(.revealed) .target::before,
	.st.target-selector.target-after:not(.revealed) .target::after {
		transition-property: unset !important;
		transition-duration: unset !important;
		transition-delay: unset !important;
		transition-timing-function: unset !important;
	}
	
	.st:not(.stay-visible):not(.target-before, .target-after, .target-selector),
	.st:not(.stay-visible):not(.target-selector).target-before::before,
	.st:not(.stay-visible):not(.target-selector).target-after::after,
	.st:not(.stay-visible).target-selector .target,
	.st:not(.stay-visible).target-selector.target-before .target::before,
	.st:not(.stay-visible).target-selector.target-after .target::after {
		visibility: hidden !important;
	}
	
	.st:not(.target-before, .target-after, .target-selector):is(.active, .revealed),
	.st:not(.target-selector).target-before:is(.active, .revealed)::before,
	.st:not(.target-selector).target-after:is(.active, .revealed)::after,
	.st.target-selector:is(.active, .revealed) .target,
	.st.target-selector.target-before:is(.active, .revealed) .target::before,
	.st.target-selector.target-after:is(.active, .revealed) .target::after {
		visibility: visible !important;
		opacity: var(--st-final-opacity, 1) !important;
		transform: translate(var(--st-final-translation-h, 0%), var(--st-final-translation-v, 0%)) rotate(var(--st-final-rotation, 0deg)) scale(var(--st-final-scale, 1)) !important;
	}
	
	.st:not(.target-before, .target-after, .target-selector).active,
	.st:not(.target-selector).target-before.active::before,
	.st:not(.target-selector).target-after.active::after,
	.st.target-selector.active .target,
	.st.target-selector.target-before.active .target::before,
	.st.target-selector.target-after.active .target::after {
		pointer-events: none !important;
		transition-property: opacity, transform !important;
		transition-duration: var(--st-duration, 1250ms) !important;
		transition-delay: var(--st-delay, 0ms) !important;
		transition-timing-function: var(--st-timing-function, cubic-bezier(0.5, 0, 0, 1)) !important;
	}
	
	/******************************/
	/* Other
	/******************************/
	/* Adaptive logo */
	.wp-block-site-logo.style-svg svg {
		fill: var(--wp--custom--color--default--accent);
	}
	
	/* Cookie banner/modal styling */
	#moove_gdpr_cookie_info_bar {
		background-color: var(--wp--preset--color--nepal-blue) !important;
		border: 1px solid var(--wp--preset--color--white) !important;
	}
	
	.moove-gdpr-info-bar-container *,
	#moove_gdpr_cookie_modal * {
		-webkit-font-smoothing: auto !important;
		letter-spacing: 1px !important;
	}	
	
	.moove-gdpr-cookie-notice > p,
	.moove-gdpr-infobar-settings-btn,
	.moove_gdpr_text {
		color: var(--wp--preset--color--white) !important;
	}
	
	:is(.moove-gdpr-infobar-allow-all, .moove-gdpr-infobar-reject-btn) {
		color: var(--wp--preset--color--nepal-blue) !important;
		background-color: var(--wp--preset--color--white) !important;
		box-shadow: inset 0 0 0 1px currentColor !important;
	}
	
	:is(.moove-gdpr-infobar-allow-all, .moove-gdpr-infobar-reject-btn):is(:hover, :focus, :active) {
		color: var(--wp--preset--color--white) !important;
		background-color: var(--wp--preset--color--nepal-blue) !important;
	}
	
	.moove-gdpr-infobar-settings-btn {
		color: var(--wp--preset--color--white) !important;
		background-color: transparent !important;
	}
	
	.moove-gdpr-infobar-settings-btn:is(:hover, :focus, :active) {
		color: var(--wp--preset--color--nepal-blue) !important;
		background-color: var(--wp--preset--color--white) !important;
	}
	
	.moove-gdpr-company-logo-holder img {
		object-fit: contain;
		filter: var(--wp--custom--color--filter--nepal-blue);
	}
	
	#moove-gdpr-menu li::before,
	#moove_gdpr_cookie_modal .cookie-switch::before,
	#moove_gdpr_cookie_modal .cookie-switch::after {
		display: none;
	}
	
	#moove_gdpr_save_popup_settings_button {
		background-color: var(--wp--preset--color--nepal-blue) !important;
		border: 1px solid  var(--wp--preset--color--white) !important;
		box-sizing: content-box;
		cursor: pointer;
	}
	
	#moove_gdpr_save_popup_settings_button span.moove_gdpr_icon {
		position: relative;	
	}
	
	#moove_gdpr_save_popup_settings_button span.moove_gdpr_icon::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--filter--white);
		translate: -50% -50%;
	}
	
	#moove_gdpr_save_popup_settings_button span.moove_gdpr_icon svg {
		display: none;
		/* translate: -.5px .5px; */
	}