/********************************************************/
/*
/*      Menus CSS
/*
/********************************************************/
.wp-block-cke-menus {
	grid-row: span var(--item-count, 1);
	display: grid;
	grid-template-columns: 100%;
	grid-auto-rows: 100svh;
	row-gap: 0;
	height: calc(100svh * var(--item-count, 1)) !important;	
	max-height: calc(100svh * var(--item-count, 1)) !important;	
	
	/* Overwrite editor style */
	&:not(.alignfull, .alignwide, .wp-block-spacer):not(.alignfull, .alignwide, .wp-block-spacer):not(.alignfull, .alignwide, .wp-block-spacer) {
		width: 100% !important;
		max-width: min(var(--wp--style--global--wide-size), 100%) !important;	
	}
	
	& > .cruise-item {
		display: grid;
		grid-template-columns: calc(100% / 3) 50%;
		column-gap: 10%;
		height: 100svh;
		padding-block-end: calc(var(--wp--custom--outer-pad) * 1.5);
		margin: unset;
		box-sizing: border-box;
		
		& > * {
			grid-row: 1;
			margin-block-start: calc(var(--wp--custom--outer-pad) * 1.5);
			
			/* Cruise menu image */
			&.wp-block-image {
				grid-column: 1;
				
				flex: 1;
				position: relative;
				width: 100%;
				height: 100%;
				
				img {
					position: absolute;
					inset: 0;
					object-fit: cover;
				}
			}
			
			/* Cruise menu info */
			&:is(div) {
				grid-column: 2;
				display: flex;
				flex-direction: column;
				max-height: 100%;
				overflow-y: auto;
				
				& > * {
					margin-block: unset;	
				}
				
				& > h2 {
					margin-block-start: var(--wp--preset--spacing--1-5);
				}
				
				& > p {
					margin-block-start: var(--wp--preset--spacing--0-50);
				}
				
				/* Menu accordions */
				& > .wp-block-cke-accordions {
					max-height: 100%;
					padding-inline: 0 var(--wp--preset--spacing--1-5);
					margin-block-start: var(--wp--preset--spacing--5);
					overflow-y: scroll;
					scrollbar-color: var(--wp--custom--color--default--text--headings) transparent;
					scrollbar-width: thin;
					
					.wp-block-cke-accordion-body__inner > * {
						/* Category */
						&.category {
							&:not(:first-child) {
								margin-block-start: var(--wp--preset--spacing--3);
							}
						}
						
						/* Subcategory */
						&.subcategory {
							&:not(:first-child) {
								margin-block-start: var(--wp--preset--spacing--2-5);
							}
							
							.category + & {
								margin-block-start: unset;
							}
						}
						
						/* Menu item */
						&.menu-item {
							display: flex;
							flex-direction: column;
							width: 100%;
							
							& + .menu-item {
								margin-block-start: var(--wp--preset--spacing--3);
							}
							
							& > * {
								margin-block: unset;
							}
							
							&:has(> .item-price) {
								display: grid;
								grid-template-columns: minmax(auto, max-content) minmax(0, 1fr) max-content;
								justify-content: space-between;
								align-items: end;
								column-gap: var(--wp--preset--spacing--0-75);
								
								&::after {
									content: '';
									grid-row: 1;
									grid-column: 2;
									width: 100%;
									border-block-end: 2px dotted var(--wp--custom--color--default--accent);
									opacity: .5;
								}
								
								& > :is(.item-title, .item-price) {
									grid-row: 1;
									margin-block-end: calc(var(--wp--preset--spacing--0-50) * -1);
								}
								
								& > .item-title {
									grid-column: 1;
								}
								
								& > .item-price {
									grid-column: 3;
								}
								
								& > .item-description {
									grid-row: 2;
									grid-column: 1 / -1;
								}
							}
							
							&:has(> .item-description) {
								row-gap: var(--wp--preset--spacing--0-50);
							}
						}
					}
				}
			}
		}
	}
	
	/**** Cruise single-specific style ****/
	body:is(.single-cke_croisiere, .wp-admin.cke_croisiere) & {
		&,
		.cruise-item,
		.cruise-item > div,
		.wp-block-cke-accordions {
			display: contents;
		}
		
		.wp-block-group:has(> &) {
			display: flex;
			flex-direction: column;
			height: calc(100svh - (var(--wp--custom--outer-pad) * 3));
			justify-content: start;
			overflow-y: clip;
			
			& > *,
			:not(:checked) + .wp-block-cke-accordion-item {
				flex-shrink: 0;
			}
		}
		
		& > .cruise-item {
			& > * {
				margin-block-start: unset;
				
				/* Cruise menu image */
				&.wp-block-image {
					display: none;
				}
				
				/* Cruise menu info */
				&:is(div) {
					& > :is(h6, h2) {
						display: none;
					}
					
					& > p,
					& .wp-block-cke-accordion-item {
						align-self: center;
						width: 50%;
						max-width: calc(min(100%, var(--wp--custom--viewport-width)) - (var(--wp--custom--outer-pad) * 2));
					}
					
					& > p {
						text-align: center;
						margin-block: var(--wp--preset--spacing--2-5);
					}
					
					/* Menu accordions */
					& > .wp-block-cke-accordions {
						& > .wp-block-cke-accordion-item {
							padding-inline-end: var(--wp--preset--spacing--1);
							overflow-y: scroll;
							scrollbar-color: var(--wp--custom--color--default--text--headings) transparent;
							scrollbar-width: thin;
							
							& > .wp-block-cke-accordion-head .wp-block-heading {
								justify-content: center;
								position: relative;
								
								&::after {
									position: absolute;
									right: 0;
									top: 50%;
									translate: 0 -50%;
								}
							}
						}
					}
				}
			}
		}
	}
	
	/******************************/
	/* Backend style
	/******************************/
	:is(.edit-post-visual-editor, .editor-styles-wrapper) & {
		grid-auto-rows: calc(100svh - 64px - 25px);
		row-gap: var(--wp--preset--spacing--2);
		height: calc((100svh - 64px - 25px) * var(--item-count, 1)) !important;
		
		.wp-block-cke-accordion-head {
			pointer-events: none !important;
		}
	}
	
	/******************************/
	/* Responsive
	/******************************/
	@media (width <= 1600px) {
		& > .cruise-item {
			grid-template-columns: 35% 55%;
		}
	}
	
	@media (width <= 1200px) {
		& > .cruise-item {
			grid-template-columns: 35% 60%;
			column-gap: 5%;
		}
	}
	
	@media (width <= 1000px) {
		& > .cruise-item {
			& > * {
				&:is(div) {
					& > .wp-block-cke-accordions {
						& .wp-block-cke-accordion-body__inner > * {
							&.menu-item {
								&.category {
									&:not(:first-child) {
										margin-block-start: var(--wp--preset--spacing--2-5);
									}
								}
								
								& + .menu-item {
									margin-block-start: var(--wp--preset--spacing--2);
								}
							}
						}
					}
				}
			}
		}
	}
	
	@media (width <= 800px) {
		.wp-block-group:has(> &) {
			display: flex;
			flex-direction: column;
			height: calc(100svh - (var(--wp--custom--outer-pad) * 3));
			justify-content: start;
			overflow-y: clip;
			
			& > *,
			:not(:checked) + .wp-block-cke-accordion-item {
				flex-shrink: 0;
			}
		}
		
		& > .cruise-item {
			grid-template-columns: 100%;
			
			& > * {
				&.wp-block-image {
					display: none;
				}
				
				&:is(div) {
					grid-column: 1;
					
					& > :is(h6, h2, p),
					& .wp-block-cke-accordion-item {
						align-self: center;
						width: 100%;
						max-width: 100%;
						
						&:is(h6, h2, p) {
							text-align: center;
						}
					}
					
					& > p {
						margin-block: var(--wp--preset--spacing--2-5);
					}
					
					& > .wp-block-cke-accordions {
						display: contents;
						
						& > .wp-block-cke-accordion-item {
							padding-inline-end: var(--wp--preset--spacing--1);
							overflow-y: scroll;
							scrollbar-color: var(--wp--custom--color--default--text--headings) transparent;
							scrollbar-width: thin;
							
							& > .wp-block-cke-accordion-head .wp-block-heading {
								justify-content: center;
								position: relative;
								
								&::after {
									position: absolute;
									right: 0;
									top: 50%;
									translate: 0 -50%;
								}
							}
						}
					}
				}
			}
		}
	}
}