/********************************************************/
/*
/*      Layout CSS
/*
/********************************************************/

	html {
		overflow-x: clip;
		overflow-y: scroll;
		scroll-behavior: smooth;
		margin-block-start: 0 !important;
	}

	body {
		--scrollspy-nav: 0px;
		
		width: 100%;
		max-width: var(--wp--custom--viewport-width);
	}
	
	body:not(.wp-admin) #wpadminbar {
		position: relative !important;
	}
	
	/* Required since Chrome's scrollbar-aware change (145+) */
	#vw-measurer {
		position: fixed;
		width: 100vw !important;
		min-width: 100vw !important;
		max-width: 100vw !important;
		height: 0 !important;
		min-height: 0 !important;
		max-height: 0 !important;
		margin: unset !important;
		padding: unset !important;
	}
	
	@media (max-width: 1200px) {
		body {
			--wp--preset--spacing--10: var(--wp--preset--spacing--7-5);
			--wp--preset--spacing--12: var(--wp--preset--spacing--7-5);
			--wp--preset--spacing--15: var(--wp--preset--spacing--7-5);
		}
	}
	
	@media (max-width: 800px) {
		body {
			--wp--preset--spacing--6: var(--wp--preset--spacing--5);
			--wp--preset--spacing--7-5: var(--wp--preset--spacing--5);
			--wp--preset--spacing--10: var(--wp--preset--spacing--5);
			--wp--preset--spacing--12: var(--wp--preset--spacing--5);
			--wp--preset--spacing--15: var(--wp--preset--spacing--5);
		}
		#wpadminbar { display: none !important; }
	}
	
	@media (max-width: 475px) {
		body {
			--wp--custom--header-height: 7.125rem;
		}
	}
	
	@media (max-width: 320px) {
		body {
			--wp--custom--header-height: 5rem;
		}
	}

	/******************************/
	/* Content grid
	/******************************/
	.wp-site-blocks {
		min-width: 100%;
		min-height: 100dvh;
		margin-inline: auto;
		display: flex; 
		flex-direction: column;
		overflow-x: clip;
	}
	
	.wp-site-blocks > * {
		margin-block-start: unset;
	}
	
	.wp-site-blocks > header {
		position: sticky;
		top: 0;
		width: 100%;
		max-height: var(--wp--custom--header-small-height);
		background-color: var(--wp--preset--color--off-white);
		padding-block: var(--wp--preset--spacing--1-5) var(--wp--preset--spacing--1);
		border-block-end: 1px solid transparent;
		margin-block-start: 0;
		transition: padding-block .3s, borrder-color .3s;
		z-index: 5;
	}
	
	.wp-site-blocks > header.stickied {
		padding-block: var(--wp--preset--spacing--0-50);
		border-color: var(--wp--preset--color--blue);
	}
	
	.wp-site-blocks main {
		flex-grow: 2;
	}
	
	.wp-site-blocks > main > .entry-content > * {
		box-sizing: border-box;
	}
	
	.wp-site-blocks > main > .entry-content > * + :is(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-cke-publications):not(.custom-spacing),
	:is(.edit-post-visual-editor, .editor-styles-wrapper) .is-root-container > * + :is(.wp-block-group, .wp-block-cover, .wp-block-columns, .wp-block-cke-publications):not(.custom-spacing) {
		padding-block-start: var(--wp--preset--spacing--7-5);
		padding-block-end: var(--wp--preset--spacing--7-5);
		margin-block-start: unset;
	}
	
	.wp-site-blocks > footer {
		z-index: 3;
	}
	
	/******************************/
	/* Header
	/******************************/
	.site-head {
		display: grid;
		grid-template-columns: max-content auto;
		grid-template-areas:
		'logo utility-nav'
		'logo main-nav';
		grid-auto-rows: max-content;
		justify-content: space-between;
		align-items: center;
		gap: var(--wp--preset--spacing--1);
		width: 100%;
		max-width: var(--wp--style--global--wide-size);
		margin-inline: auto;
	}
	
	.site-head > .wp-block-site-logo {
		grid-area: logo;	
	}
	
	.site-head > .wp-block-site-logo,
	.site-head > .wp-block-site-logo * {
		width: auto;
		height: 100px;
		aspect-ratio: 300/211;
	}
	
	.site-head > .site-nav {
		margin-block: unset;
	}
	
	.site-head > .site-nav.utility {
		grid-area: utility-nav;
	}
	
	.site-head > .site-nav.main {
		grid-area: main-nav;
	}
	
	@media (max-width: 950px) {
		.site-head { grid-template-columns: max-content 1fr auto; grid-template-areas: 'logo utility-nav main-nav'; }
	}
	
	/******************************/
	/* Footer
	/******************************/
	.site-foot {
		width: 100%;
		max-width: var(--wp--style--global--wide-size);
		margin-inline: auto;
	}
	
	.site-foot > .wp-block-group {
		margin-block: 0;
	}
	
	.site-foot > .has-background {
		position: relative;
	}
	
	.site-foot > .has-background::before {
		content: '';
		position: absolute;
		top: 0;
		left: calc((var(--wp--custom--viewport-width) - 100%) / 2 * -1);
		width: var(--wp--custom--viewport-width);
		height: 100%;
		background-color: inherit;
		z-index: -1;
	}
	
	/* Foot: main */
	.site-foot > .site-foot-main {
		display: grid;
		grid-template-columns: repeat(2, max-content) auto;
		grid-template-areas:
		'logo	footer-nav newsletter'
		'coords footer-nav newsletter'
		'coords footer-nav social-nav';
		grid-auto-rows: max-content;
		justify-content: space-between;
		column-gap: var(--wp--preset--spacing--7-5);
		position: relative;
	}
	
	.site-foot-main > .wp-block-site-logo {
		grid-area: logo;
		/* margin-block-start: calc(var(--wp--preset--spacing--4) * -2) !important; */
	}
	
	.site-foot-main > .wp-block-site-logo,
	.site-foot-main > .wp-block-site-logo * {
		width: auto;
		height: 225px;
		aspect-ratio: 300/211;
	}
	
	.site-foot-main > .coordinates {
		grid-area: coords;
		margin-block-start: var(--wp--preset--spacing--1-5);
	}
	
	.site-foot-main > .coordinates :is(h1, h2, h3, h4, h5, h6, p) {
		margin-block: unset;
	}
	
	.site-foot-main > .coordinates > .addresses {
		margin-block-start: var(--wp--preset--spacing--0-75);
	}
	
	.site-foot-main > .coordinates > :is(.phone-numbers, .emails) {
		margin-block-start: var(--wp--preset--spacing--2);
	}
	
	.site-foot-main > .coordinates > .emails a:not(:hover, :focus, :active) {
		color: var(--wp--custom--color--default--text);
	}
	
	.site-foot-main > .site-nav.footer {
		grid-area: footer-nav;
		margin-block-start: unset;
	}
	
	.site-foot-main > :is(.newsletter, .site-nav.social) {
		justify-self: end;
		width: min(420px, 50%);
		margin-inline-end: var(--wp--preset--spacing--10);
	}
	
	.site-foot-main > :is(.newsletter, .site-nav.social) > * {
		margin-block: unset;
	}
	
	.site-foot-main > :is(.newsletter, .site-nav.social) > p {
		margin-block-start: var(--wp--preset--spacing--1);
	}
	
	.site-foot-main > .newsletter {
		grid-area: newsletter;
		margin-block: 0 var(--wp--preset--spacing--2);
	}
	
	.site-foot-main > .newsletter > .wp-block-buttons {
		margin-block-start: var(--wp--preset--spacing--2);
	}
	
	.site-foot-main > .site-nav.social {
		grid-area: social-nav;
		margin-block-start: auto;
	}
	
	/* Page BG color specific style */
	body:is(.has-white-background-color,
			.has-off-white-background-color) .site-foot-main > .coordinates > .emails a:is(:hover, :focus, :active) {
		color: var(--wp--custom--color--default--accent);
	}
	
	@media (max-width: 1600px) {
		.site-foot-main > :is(.newsletter, .site-nav.social) { justify-self: start; width: auto; margin-inline-end: unset; }
	}
	
	@media (max-width: 1400px) {
		.site-foot > .site-foot-main { column-gap: var(--wp--preset--spacing--4); }
	}
	
	@media (max-width: 1100px) {
		.site-foot > .site-foot-main { grid-template-columns: max-content auto;
									   grid-template-areas: 'logo 	    footer-nav'
		  					   	  							'coords 	footer-nav'
							   								'social-nav newsletter'; }
		.site-foot-main > .newsletter { margin-block: var(--wp--preset--spacing--2) 0; }
		.site-foot-main > .site-nav.social { margin-block-start: var(--wp--preset--spacing--2); }
	}
	
	@media (max-width: 750px) {
		.site-foot > .site-foot-main { grid-template-columns: auto 1fr; column-gap: var(--wp--preset--spacing--2);
		   							   grid-template-areas: 'logo 		coords'
										  					'social-nav coords'
															'newsletter newsletter'; }
		.site-foot-main > .wp-block-site-logo,
		.site-foot-main > .wp-block-site-logo * { height: 150px; }
		.site-foot-main > .wp-block-site-logo { margin-block-start: unset !important; }
		.site-foot-main > .newsletter { margin-block: var(--wp--preset--spacing--1) 0; }
		.site-foot-main > .site-nav.social,
		.site-foot-main > .newsletter > .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--1); }
		.site-foot-main > .site-nav.footer { display: none; }
	}
	
	@media (max-width: 600px) {
		.site-foot > .site-foot-main { grid-template-columns: 100%; row-gap: var(--wp--preset--spacing--2);
		  							   grid-template-areas: 'logo'
									    					'coords'
														   	'social-nav'
														    'newsletter'; }
		.site-foot-main > .coordinates,
		.site-foot-main > .site-nav.social,
		.site-foot-main > .newsletter { margin-block-start: unset; }

	}
	
	/******************************/
	/* Menus
	/******************************/
	.site-nav {
		display: flex;
		align-items: start;
		gap: var(--wp--preset--spacing--2);
	}
	
	.site-nav a {
		text-decoration: none;
		transition: color .3s;
	}
	
	.site-nav .menu-item {
		position: relative;
		width: max-content;
		list-style: none;
	}
	
	.site-nav .menu-item:is(:hover, :focus, :active) > a {
		color: var(--wp--custom--color--default--focus);
	}
	
	.site-nav .menu-item-has-children > a::after {
		content: '';
		font-family: var(--wp--preset--font-family--fontawesome);
		font-size: .7em;
		margin-inline-start: .25rem;
	}
	
	/* Main & utility menu */
	.site-nav:is(.main, .utility) {
		justify-content: end;
	}
	
	.site-nav.main {
		gap: var(--wp--preset--spacing--3);
	}
	
	.site-nav.utility {
		gap: var(--wp--preset--spacing--1);
	}
	
	.site-nav.utility .menu-item.wp-block-button__link {
		padding: var(--wp--preset--spacing--0-25) var(--wp--preset--spacing--0-75) !important;
		
		&:not(:hover, :focus, :active, .current-menu-item, .current-menu-ancestor) {
			background-color: var(--wp--custom--color--default--focus);
			border-color: var(--wp--custom--color--default--focus);
			
			& > a {
				color: var(--wp--custom--color--default--text);	
			}
		}
		
		&:is(:hover, :focus, :active, .current-menu-item, .current-menu-ancestor) {
			background-color: var(--wp--custom--color--default--accent);
			
			& > a {
				color: var(--wp--custom--color--default--focus);
			}
		}
		
		&.light-blue {
			&:is(:hover, :focus, :active, .current-menu-item, .current-menu-ancestor) {
				background-color: var(--wp--custom--color--default--focus);
				border-color: var(--wp--custom--color--default--focus);
				
				& > a {
					color: var(--wp--custom--color--default--text);	
				}
			}
			
			&:not(:hover, :focus, :active, .current-menu-item, .current-menu-ancestor) {
				background-color: var(--wp--custom--color--default--accent);
				border-color: var(--wp--custom--color--default--accent);
				
				& > a {
					color: var(--wp--custom--color--default--focus);
				}
			}
		}
	}
	
	.site-nav:is(.main, .utility) .menu-item:not(.wp-block-button__link) > a {
		color: var(--wp--custom--color--default--focus);
	}

	.site-nav.main .menu-item > a {
		font-size: var(--wp--preset--font-size--small);
	}
	
	.site-nav.utility .menu-item > a {
		font-size: var(--wp--preset--font-size--x-small);
	}
	
	.site-nav:is(.main, .utility) .menu-item:is(:hover, :focus, :active, .current-menu-item, .current-menu-ancestor) > a {
		color: var(--wp--custom--color--default--accent);
	}
	
	.site-nav.main .burger {
		position: relative;
		cursor: pointer;
		z-index: 2;
	}
	
	.site-nav.main .burger::before,
	.site-nav.main .burger::after {
		font-family: var(--wp--preset--font-family--fontawesome);
		display: inline-block;
		font-size: 1.5em;
		color: var(--wp--custom--color--default--focus);
		opacity: 0;
		transition: color .3s, opacity .3s;
	}
	
	.site-nav.main .burger:hover::before,
	.site-nav.main .burger:hover::after {
		color: var(--wp--custom--color--default--accent) !important;
	}
	
	.site-nav.main .burger::before {
		content: '';
	}
	
	.site-nav.main .burger::after {
		content: '';
		position: absolute;
		left: 50%;
		top: 50%;
		translate: -50% -50%;
	}
	
	#burger-menu-toggle:not(:checked) ~ .site-head .site-nav.main .burger::before,
	#burger-menu-toggle:checked ~ .site-head .site-nav.main .burger::after {
		opacity: 1;
		transition: color .3s, opacity .3s .15s;
	}
	
	#burger-menu-toggle:checked ~ .site-head .site-nav.main .burger::before,
	#burger-menu-toggle:checked ~ .site-head .site-nav.main .burger::after {
		color: var(--wp--preset--color--white);
	}
	
	@media (max-width: 1100px) {
		.site-nav.main { gap: var(--wp--preset--spacing--2); }
	}
	
	@media (min-width: 951px) {
		.site-nav.main .burger { display: none; }
	}
	
	@media (max-width: 950px) {
		.site-nav.main .menu-item { display: none; }
		.site-nav.utility { margin-inline-end: var(--wp--preset--spacing--1); }
	}
	
	@media (max-width: 600px) {
		.site-nav.utility { display: none; }
	}
	
	/* Burger menu */
	.burger-menu {
		position: fixed;
		top: 0;
		left: 0;
		width: var(--wp--custom--viewport-width);
		height: 100dvh;
		background-color: var(--wp--preset--color--dark-blue);
		padding-inline: var(--wp--custom--outer-pad);
		opacity: 0;
		pointer-events: none;
		transition: opacity .3s;
	}
	
	#burger-menu-toggle:checked ~ .burger-menu {
		opacity: 1;
		pointer-events: all;
	}
	
	.burger-nav {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: start;
		gap: var(--wp--preset--spacing--2);
		max-width: var(--wp--style--global--content-size);
		height: 100%;
		margin-inline: auto;
	}
	
	.burger-nav .menu-item {
		font-size: var(--wp--preset--font-size--x-large);
		list-style: none;
	}
	
	.burger-nav .menu-item a {
		color: var(--wp--preset--color--white);
		text-decoration: none;
		transition: color .3s;
	}
	
	.burger-nav .menu-item a:hover {
		color: var(--wp--custom--color--default--focus);
	}
	
	.burger-nav .sub-menu {
		display: none;
	}
	
	@media (max-height: 720px) {
		.burger-nav .menu-item { font-size: var(--wp--preset--font-size--large); }
	}
	
	@media (max-height: 600px) {
		.burger-nav { gap: var(--wp--preset--spacing--1); }
	}
	
	@media (max-height: 500px) {
		.burger-nav { justify-content: end; gap: var(--wp--preset--spacing--0-75); padding-block-end: var(--wp--preset--spacing--2); box-sizing: border-box; }
	}
	
	@media (max-height: 400px) {
		.burger-nav { gap: var(--wp--preset--spacing--0-25); padding-block: var(--wp--preset--spacing--0-75) !important; }
		.burger-nav .menu-item { font-size: var(--wp--preset--font-size--medium); }
	}
	
	/* Footer menu */
	.site-nav.footer {
		flex-direction: column;
		align-items: start;
		gap: var(--wp--preset--spacing--0-50);
	}
	
	.site-nav.footer > .menu-item > a {
		font-size: var(--wp--preset--font-size--medium);
		line-height: 1.291;
		font-weight: 500;
	}
	
	.site-nav.footer > .menu-item > a:not(:hover, :focus, :active) {
		color: var(--wp--custom--color--default--text);
	}
	
	/* Social menu */
	.site-nav.social {
		display: flex;
		justify-content: start;
		align-items: center;
		gap: 1rem;
		height: max-content;
	}
	
	.site-nav.social > :not(.menu-item) {
		margin-block: 0;
	}
	
	.site-nav.social .menu-item a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 3rem;
		height: auto;
		aspect-ratio: 1;
		font-size: 0;
		color: transparent;
		background-color: transparent;
		border: 2px solid var(--wp--preset--color--gray);
		border-radius: 50%;
		transition: background-color .3s, border-color .3s;
	}
	
	.site-nav.social .menu-item a::after {
		display: block;
		position: absolute;
		top: 50%;
		left: 50%;
		font-family: var(--wp--preset--font-family--fontawesome);
		font-size: 1rem;
		line-height: 0;
		color: var(--wp--custom--color--default--text);
		translate: -50% -50%;
		transition: color .3s;
	}
	
	.site-nav.social .menu-item a:is(:hover, :focus, :active) {
		background-color: var(--wp--custom--color--default--accent);
		border-color: var(--wp--custom--color--default--accent);
	}
	
	.site-nav.social .menu-item a:is(:hover, :focus, :active)::after {
		color: var(--wp--custom--color--default--bg);
	}
	
	.site-nav.social .menu-item.fb a::after { content: ''; }
	.site-nav.social .menu-item.ig a::after { content: ''; }
	.site-nav.social .menu-item.in a::after { content: ''; }
	
	/* Page BG color specific style */
	body:is(.has-white-background-color,
			.has-off-white-background-color) .site-nav.footer > .menu-item > a:is(:hover, :focus, :active) {
		color: var(--wp--custom--color--default--accent);
	}
	
	/******************************/
	/* Patterns
	/******************************/
	
	/* Coordinates */
	.coordinates > p {
		line-height: 1.25;
		margin-block: 0;
	}
	
	.coordinates > p a {
		text-decoration: none;
	}
	
	.coordinates :is(.phone, .email) {
		margin-block-start: .8em;
	}
	
	/* Opening hours */
	.opening-hours > p {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		margin-block: 0;
	}
	
	.opening-hours .days {
		font-weight: 700;
	}