/* Chaib's Menu Manager — frontend styling
   Exacte tokens overgenomen uit de live Elementor-kit ("Resta") en de
   price-list widgets op /ons-menu/: kleuren, fonts, kaart-achtergrond,
   scheidingslijn en stippellijn-kleur. Hoeken zijn bewust recht (90°).
   Geen achtergrondkleur achter de pagina — alleen de kaarten zelf met
   hun eigen schaduw vallen op tegen de (witte) paginabackground. */

@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Poppins:wght@400;500;600;700&display=swap');

.chaibs-menu {
	max-width: 1140px;
	margin: 0 auto;
	padding: 40px 20px;
	color: #444444;
	font-family: 'Poppins', sans-serif;
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.chaibs-menu-category {
	scroll-margin-top: 20px;
}

/* De kaart: wit, met de originele achtergrondtextuur (resta-img64.jpg) op
   zeer lage sterkte, dezelfde schaduw als het Elementor-origineel, rechte
   hoeken (geen border-radius). Dit is het enige visuele "vlak" — de
   pagina eromheen heeft bewust geen eigen achtergrondkleur. */
.chaibs-menu-card {
	position: relative;
	background-color: #fff;
	background-image:
		linear-gradient(rgba(255,255,255,0.96), rgba(255,255,255,0.96)),
		url('https://chaibsrotterdam.nl/wp-content/uploads/2024/11/resta-img64.jpg');
	background-repeat: repeat;
	background-size: 320px auto;
	border-radius: 0;
	box-shadow: 0 0 35px rgba(0,0,0,0.15);
	padding: 44px;
}

.chaibs-menu-category__header {
	text-align: center;
	margin-bottom: 32px;
}

.chaibs-menu-category__title {
	font-family: 'Marcellus', serif;
	font-weight: 500;
	font-size: 35px;
	line-height: 1.3;
	color: #060F14;
	margin: 0;
}

.chaibs-menu-category__subtitle {
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
	font-size: 16px;
	color: #444444;
	margin: 4px 0 0;
}

.chaibs-menu-category__swirl {
	display: block;
	width: 25%;
	max-width: 150px;
	height: auto;
	margin: 4px auto 0;
}

.chaibs-menu-subcategory {
	margin-top: 44px;
}

.chaibs-menu-subcategory__title {
	font-family: 'Marcellus', serif;
	font-weight: 500;
	font-size: 28px;
	line-height: 1.3;
	color: #060F14;
	text-align: center;
	margin: 0 0 24px;
}

.chaibs-menu-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 48px;
}

.chaibs-menu-column {
	min-width: 0;
}

.chaibs-menu-column--divided {
	padding-left: 24px;
	border-left: 1px solid #E27B6042;
}

.chaibs-menu-items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.chaibs-menu-item {
	display: flex;
	gap: 12px;
	padding: 0 0 16px;
}

/* Vaste padding-bottom i.p.v. margin-top op het volgende item: zo is de
   afstand na élk gerecht bedoeld als exact gelijk, ongeacht of eronder
   een omschrijving staat. */
.chaibs-menu-item:last-child {
	padding-bottom: 0;
}

.chaibs-menu-item__photo img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 0;
	flex-shrink: 0;
}

.chaibs-menu-item__body {
	flex: 1;
	min-width: 0;
}

/* Belangrijk: de rij zelf mag NOOIT wrappen (flex-wrap: nowrap). Bij een
   lange naam wrapt anders de hele rij, waardoor de prijs los op een
   nieuwe regel links komt te staan i.p.v. rechts uitgelijnd. In plaats
   daarvan: de stippellijn krimpt het eerst, en pas als dat niet genoeg is,
   wrapt alleen de náám zelf (intern, binnen zijn eigen kolom) — de prijs
   blijft altijd op zijn vaste plek rechts, op één regel. */
.chaibs-menu-item__row {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	flex-wrap: nowrap;
}

.chaibs-menu-item__name {
	font-family: 'Marcellus', serif;
	font-weight: 500;
	font-size: 17px;
	line-height: 1.25;
	color: #060F14;
	flex: 0 1 auto;
	min-width: 0;
}

.chaibs-menu-item__dots {
	flex: 1 1 auto;
	min-width: 8px;
	border-bottom: 1px dotted #E6C300;
	margin: 0 2px 3px;
}

.chaibs-menu-item__price {
	font-family: 'Marcellus', serif;
	flex: 0 0 auto;
	font-weight: 500;
	font-size: 17px;
	line-height: 1;
	color: #060F14;
	white-space: nowrap;
}

.chaibs-menu-item__description {
	font-family: 'Poppins', sans-serif;
	font-weight: 400;
	font-size: 13px;
	line-height: 1.25;
	color: #787878;
	margin-top: 5px !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
}

.chaibs-menu-item__badge {
	display: inline-block;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #fff;
	background: #987D3B;
	border-radius: 4px;
	padding: 2px 6px;
	margin-left: 2px;
	vertical-align: middle;
}

.chaibs-menu-empty {
	text-align: center;
	font-family: 'Poppins', sans-serif;
	color: #787878;
	padding: 40px 0;
}

/* ---------- Tablet (bv. iPad staand/liggend) ---------- */
@media (max-width: 1024px) {
	.chaibs-menu {
		padding: 32px 20px;
		gap: 36px;
	}
	.chaibs-menu-card {
		padding: 34px;
	}
	.chaibs-menu-columns {
		column-gap: 32px;
	}
	.chaibs-menu-column--divided {
		padding-left: 16px;
	}
	.chaibs-menu-category__title,
	.chaibs-menu-subcategory__title {
		font-size: 30px;
	}
}

/* ---------- Mobiel (telefoon) ---------- */
@media (max-width: 700px) {
	.chaibs-menu {
		padding: 24px 14px;
		gap: 28px;
	}
	.chaibs-menu-card {
		padding: 24px 20px;
	}
	.chaibs-menu-category__header {
		margin-bottom: 24px;
	}
	.chaibs-menu-columns {
		grid-template-columns: 1fr;
		row-gap: 0;
	}
	.chaibs-menu-column--divided {
		border-left: none;
		border-top: 1px solid #E27B6042;
		padding-left: 0;
		padding-top: 24px;
		margin-top: 24px;
	}
	.chaibs-menu-item {
		padding-bottom: 12px;
	}
	.chaibs-menu-subcategory {
		margin-top: 32px;
	}
	.chaibs-menu-subcategory__title {
		margin-bottom: 18px;
	}
	.chaibs-menu-category__title,
	.chaibs-menu-subcategory__title {
		font-size: 25px;
	}
	.chaibs-menu-category__subtitle {
		font-size: 14px;
	}
	.chaibs-menu-item__name,
	.chaibs-menu-item__price {
		font-size: 15.5px;
	}
	.chaibs-menu-item__photo img {
		width: 42px;
		height: 42px;
	}
	.chaibs-menu-category__swirl {
		max-width: 110px;
	}
}

/* ---------- Zeer smalle schermen ---------- */
@media (max-width: 380px) {
	.chaibs-menu-card {
		padding: 20px 16px;
	}
	.chaibs-menu-category__title,
	.chaibs-menu-subcategory__title {
		font-size: 22px;
	}
	.chaibs-menu-item__name,
	.chaibs-menu-item__price {
		font-size: 14.5px;
	}
}
