/* ---------- Special Dishes: two full-bleed halves, 800px tall at desktop ---------- */
.sv-special-dishes { padding: 0; background: var(--sv-bg); }
.sv-special-dishes__grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 800px; }

/* Left half: patterned panel with the card carousel centred in it */
.sv-special-dishes__panel { display: flex; align-items: center; justify-content: center; padding: 60px; }
.sv-special-dishes__carousel { position: relative; width: 350px; max-width: 100%; padding-bottom: 50px; text-align: center; }
.sv-special-dishes__track { display: grid; }
/* Slides stack in one grid cell and cross-fade */
.sv-special-dishes__slide {
	grid-area: 1 / 1;
	opacity: 0; visibility: hidden;
	transition: opacity .9s var(--sv-ease), visibility .9s;
}
.sv-special-dishes__slide.is-active { opacity: 1; visibility: visible; }

.sv-special-dishes__photo { position: relative; margin: 0 0 27px; aspect-ratio: 350 / 420; background: var(--sv-surface-2); }
.sv-special-dishes__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Gold hairline inset 15px; the 300px radius scales down with the smaller box so it follows the arch */
.sv-special-dishes__photo::after {
	content: ""; position: absolute; inset: 15px;
	border: 1px solid var(--sv-accent); border-radius: 300px 300px 0 0;
	pointer-events: none;
}

.sv-special-dishes__cat {
	display: block; margin-bottom: 9px;
	font-size: 14px; font-weight: 700; line-height: 17px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--sv-accent);
}
.sv-special-dishes__name {
	margin: 0 0 15px;
	font-family: var(--sv-body-font); font-size: 20px; font-weight: 600; line-height: 1.2; letter-spacing: 0; text-transform: uppercase;
	color: var(--sv-heading);
}
.sv-special-dishes__text { max-width: 340px; margin: 0 auto 15px; font-size: 16px; line-height: 1.8; color: var(--sv-heading); opacity: .7; }
.sv-special-dishes__prices { display: flex; justify-content: center; gap: 10px; font-size: 16px; line-height: 1.8; }
.sv-special-dishes__old { color: var(--sv-heading); opacity: .6; text-decoration: line-through; }
.sv-special-dishes__price { color: var(--sv-accent); font-weight: 600; }

.sv-special-dishes__dots { position: absolute; left: 0; right: 0; bottom: 10px; height: 29px; display: flex; align-items: center; justify-content: center; }
.sv-special-dishes__dots button {
	width: 8px; height: 8px; margin: 0 4px; padding: 0;
	border: 1px solid var(--sv-accent); border-radius: 50%; background: transparent;
	cursor: pointer; transition: width .3s var(--sv-ease), height .3s var(--sv-ease), background .3s;
}
.sv-special-dishes__dots button.is-active { width: 13px; height: 13px; background: var(--sv-accent); }
.sv-special-dishes__dots button:focus-visible { outline: 1px solid var(--sv-accent); outline-offset: 3px; }

/* Right half: cover photo with the vertical label box straddling the seam */
.sv-special-dishes__media { position: relative; }
img.sv-special-dishes__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-special-dishes__seam { position: absolute; left: 0; top: 0; bottom: 0; z-index: 2; display: flex; align-items: center; }
.sv-special-dishes__label {
	display: grid; place-items: center;
	min-height: 430px; margin-left: -45px; padding: 14px;
	background: var(--sv-bg); border: 1px solid var(--sv-line);
}
.sv-special-dishes__title {
	margin: 0;
	writing-mode: vertical-rl; transform: rotate(180deg);
	font-size: 60px; font-weight: 300; line-height: 60px; letter-spacing: 0; white-space: nowrap;
	color: var(--sv-heading);
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
	.sv-special-dishes__panel { padding: 60px 40px; }
}
@media (max-width: 991px) {
	.sv-special-dishes__grid { grid-template-columns: 1fr; min-height: 0; }
	.sv-special-dishes__panel { padding: 80px 24px; }
	.sv-special-dishes__media { display: flex; flex-direction: column; }
	img.sv-special-dishes__img { position: static; height: 420px; }
	.sv-special-dishes__seam { position: static; display: block; }
	.sv-special-dishes__label { min-height: 0; margin: 0; padding: 24px; border-width: 1px 0; text-align: center; }
	.sv-special-dishes__title { writing-mode: horizontal-tb; transform: none; font-size: 48px; line-height: 1.1; white-space: normal; }
}
@media (max-width: 767px) {
	.sv-special-dishes__panel { padding: 60px 24px; }
	.sv-special-dishes__carousel { width: 280px; }
	.sv-special-dishes__photo { aspect-ratio: 280 / 300; }
	.sv-special-dishes__title { font-size: 38px; }
}
