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

	html {
		overflow-x: clip;
		scroll-behavior: smooth;
		margin-block-start: 0 !important;
	}
	
	body {
		--config-base				: 8;		/* [PX] Base unit = 1rem */
		--config-step				: 6;
		--config-cols				: 12;
		--config-width				: 1800;		/* [PX] Max with of content (exclude external margin) */
		--config-gap				: var(--spacing);
		--config-spacing			: 1rem;
		
		--grid-width 				: calc( var(--config-width, 1440) / var(--config-base, 24) * 1rem );
		--grid-gap 					: var(--config-gap);
		--grid-pad					: calc( ( var(--viewport-width) - calc( var(--grid-gap, 1rem) * 2 ) - var(--grid-width, 60rem) ) * 0.5 );
		--grid-col 					: var(--config-cols);
		--grid-col-width 			: calc((var(--grid-width) - (var(--grid-gap) * 2) - (var(--grid-gap) * (var(--config-cols) + -1))) / var(--config-cols));
		
		--outer-grid				: [outer-start full-start] var(--grid-pad) [outer-end inner-start col-start] repeat(var(--grid-col, 12), 1fr [col-start col-end]) [outer-start inner-end col-end] var(--grid-pad) [outer-end full-end];
		--inner-grid				: [inner-start col-start] repeat(var(--grid-col, 12), 1fr [col-start col-end]) [inner-end col-end];
		
		--scrollbar-width			: 15px;
		--viewport-width			: calc(100vw - var(--scrollbar-width));
		
		display : flex;
		flex-direction : column;
		flex-wrap : nowrap;
	}
	
	body > .wp-site-blocks {
		flex-grow : 2;
		/* background-color: var(--color-light-gray); */
	}
	
	body > .wp-site-blocks:has([data-module="cta"]:not(.hidden)) {
		padding-bottom: 92px;
	}
	
	[data-grid="wrap"], [data-part="wrap"] {
		column-gap : var(--spacing);
		display : grid;
		grid-template-columns : var(--outer-grid);
	}
	
	[data-grid="outer"], [data-part="inner"] {
		display: flex;
		grid-column : inner-start / inner-end;
		grid-row: auto;
		column-gap : var(--spacing);
		position: relative;
	}
	
	/******************************/
	/* Header & menus
	/******************************/
	header:not(.woocommerce-products-header) {
		position: relative;
	}
	
	header:not(.woocommerce-products-header) li {
		list-style: none;
	}
	
	header:not(.woocommerce-products-header)>.utility,
	header:not(.woocommerce-products-header)>.main {
		grid-column: inner-start / inner-end;
		display: flex;
		justify-content: flex-start;
		align-items: baseline;
	}
	
	header:not(.woocommerce-products-header)>.utility {
		position: relative;
		/* border-bottom: solid 2px var(--color-main-1); */
		padding: calc(var(--padding-s) * 1.5) calc(var(--padding-m) * 1.5);
	}
	
	header:not(.woocommerce-products-header)>.utility::after {
		content: '';
		position: absolute;
		left: calc((var(--grid-pad) + var(--grid-gap)) * -1);
		bottom: 0;
		width: var(--viewport-width);
		height: 2px;
		background-color: var(--color-main-1);
	}
	
	header:not(.woocommerce-products-header)>.utility li:first-child {
		margin-left: auto;
		margin-right: var(--margin-xl);
	}
	
	header:not(.woocommerce-products-header)>.utility .wc-cart-count {
		margin-left: 5px;
		font-size: 14px;
	}
	
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before {
		position: relative;
		padding-left: 40px;
	}
	
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before::before,
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before::after {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		display: inline-block;
		background: url(../images/shopping_2.svg) no-repeat bottom right;
		width: 30px;
		height: 30px;
		opacity: 1;
		transition: opacity .4s;
	}
	
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before::before {
		filter: invert(96%) sepia(0%) saturate(407%) hue-rotate(194deg) brightness(117%) contrast(100%);
	}
	
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before::after {
		filter: brightness(0) saturate(100%) invert(17%) sepia(96%) saturate(4590%) hue-rotate(297deg) brightness(71%) contrast(103%);
	}
	
	header:not(.woocommerce-products-header)>.utility a.shopping-icon-before:not(:hover)::after {
		opacity: 0;
	}
	
	header:not(.woocommerce-products-header)>.main {
		padding: var(--padding-l) var(--padding-xl);
		gap: calc(var(--margin-m) * 2);
	}
	
	header:not(.woocommerce-products-header)>.main .logo {
		min-height: 80px;
		max-height: 80px;
		width: auto;
	}
	
	header:not(.woocommerce-products-header)>.main>li:first-of-type {
		margin-left: auto;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children {
		display: flex;
		align-items: center;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children:after {
		content: "";
		display: inline-block;
		background: url(../images/chevron_bas_light.svg) no-repeat center left;
		filter: invert(15%) sepia(62%) saturate(4701%) hue-rotate(295deg) brightness(90%) contrast(108%);
		width: 30px;
		height: 24px;
		margin-left: 5px;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu {
		position: absolute;
		display: flex;
		gap: var(--margin-l);
		background-color: var(--color-black);
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		padding: 0 calc(var(--grid-pad) + var(--grid-gap) + var(--padding-xl));
		z-index: 5;
	
		transition: max-height .6s .6s;
		max-height: 0;
		overflow: hidden;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children:hover>.sub-menu {
		max-height: 40vh;
		transition: max-height .6s;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu>li {
		padding: var(--padding-xl) 0;
		flex: 1;
	
		transition: opacity .6s;
		opacity: 0;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children:hover>.sub-menu>li {
		opacity: 1;
		transition: opacity .8s .6s;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu>li:first-of-type {
		flex: 3;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu a.label {
		display: flex;
		align-items: center;
		gap: var(--margin-l);
		color: var(--color-main-1);
		pointer-events: none;
		cursor: default;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu a.label::after {
		content: "";
		display: inline-block;
		height: 1px;
		width: 100%;
		background: var(--color-light-gray);
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu a.label>span {
		min-width: max-content;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu a.label.no-title {
		gap: 0;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu a.label.no-title>span {
		min-width: 0;
		max-width: 0;
		overflow: hidden;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu .sub-menu {
		margin-top: calc(var(--margin-m) * 1.5);
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu .sub-menu li {
		margin-bottom: 5px;
	}
	
	header:not(.woocommerce-products-header)>.main>.menu-item-has-children>.sub-menu>li:first-of-type .sub-menu {
		column-count: 3;
	}
	
	/* Woocommerce page header */
	
	body.home .woocommerce-products-header__title {
		display: none;
	}
	
	/******************************/
	/* Main
	/******************************/
	body:is(.woocommerce-shop, .archive)> .wp-site-blocks > main,
	#primary,
	.woocommerce-products-header,
	.page-description,
	.page-description>[data-part="wrap"],
	body:not(.woocommerce-shop, .archive) > .wp-site-blocks > main > [data-part="wrap"] {
		display: contents;
	}
	
	body:not(.woocommerce-shop, .archive) > .wp-site-blocks > main,
	main#main {
		column-gap: var(--spacing);
		display: grid;
		grid-template-columns: var(--outer-grid);
	}
	
	body:not(.woocommerce-shop, .archive) > .wp-site-blocks > main > *,
	main#main>* {
		grid-column: inner;
	}
	
	/******************************/
	/* Footer
	/******************************/
	footer [data-part="inner"] {
		justify-content: space-evenly;
		color: white;
		text-transform: uppercase;
		font: var(--stack-menu-m);
	}	
	
	footer menu,
	footer section {
		padding: var(--padding-xl) 0;
	}
	
	footer menu>span,
	footer section>span {
		color: var(--color-main-1);
	}
	
	footer [data-module="navbar"].navigation {
		grid-column: 3 / 6;
	}
	
	footer [data-module="navbar"] li:not(.social) {
		margin: 10px 0;
	}
	
	footer menu *:first-child,
	footer section *:not(img, h4):first-child,
	footer adress *:first-child {
		margin-top: 20px;
	}
	
	footer [data-module="navbar"].popular {
		grid-column: 6 / 9;
	}
	
	footer>[data-module="navbar"].info {
		grid-column: 10 / 13;
	}
	
	footer [data-module="navbar"].info adress>p:first-child {
		padding-bottom: var(--padding-m);
	}
	
	footer [data-module="navbar"].info adress>p:last-child {
		padding-bottom: var(--padding-l);
	}
	
	footer [data-module="navbar"].info adress>p:not(:first-child) {
		opacity: 0.6;
	}
	
	footer>[data-module="navbar"].info>div {
		display: block;
		padding: 0;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div p.openings_hours,
	footer > [data-part="inner"] > [data-module="navbar"].info>div:last-child h4 {
		color: var(--color-light-gray);
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social h4 {
		text-transform: initial;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social {
		margin-top: var(--margin-xl);
		display: flex;
		align-items: center;
		gap: var(--margin-m);
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social li {
		list-style: none;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social a::after {
		content: "";
		display: inline-block;
		width: 24px;
		height: 32px;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social a.fb::after {
		background: url(../images/facebook.svg) no-repeat bottom right;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social a.ig::after {
		background: url(../images/instagram.svg) no-repeat bottom right;
	}
	
	footer > [data-part="inner"] > [data-module="navbar"].info>div.social a span {
		display: none;
	}
	
	/* Footer credits section */
	section.site-credit [data-part="inner"] {
		grid-column: inner-start / inner-end;
		color: white;
		padding: var(--padding-m) var(--padding-xl);
	}
	
	section.site-credit menu,
	section.site-credit nav {
		display: flex;
		width: 100%;
	}
	
	section.site-credit li.copy {
		margin-right: var(--margin-xl);
	}
	
	section.site-credit li.copy a {
		font-family: 'Arial';
		font-weight: 300;
		text-transform: initial;
	}
	
	section.site-credit li:not(.copy) a:not(:hover) {
		color: var(--color-light-gray) !important;
	}
	
	section.site-credit li:not(:first-child):not(:last-child) {
		padding: 0 var(--padding-l);
		text-transform: uppercase;
	}
	
	section.site-credit li.cake {
		margin: 0 0 0 auto;
	}