:root {
	--bg-page: #faefd9;
}

body {
	background-color: var(--bg-page);
	color: #392523;
}

.mobile-break {
	display: none;
}

a:link,
a:visited {
	color: #13606f;
	background-color: transparent;
	text-decoration: none;
}

/* Divider lines */

.divider {
	border: none;
	border-top: 1px solid #13606f;
	width: 80%;
	margin: 40px auto;
}

.hero-divider {
	margin-top: 65px;
}

.menu-divider {
	margin: 70px auto;
}

p {
	margin: 0;
	text-align: center;
	font-family: "Jost", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.3vw;
}

/* Hero image + overlay text */

.hero {
	position: relative;
	overflow: hidden;
}

.hero-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	animation: hero-ken-burns 12s ease-in-out infinite alternate;
}

@keyframes hero-ken-burns {
	from {
		transform: scale(1.04);
	}
	to {
		transform: scale(1.22);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero-image,
	.hero-image-mobile {
		animation: none;
	}
}

.hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 48%;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0));
	pointer-events: none;
	z-index: 1;
}

.hero-content {
	position: absolute;
	bottom: 6%;
	left: 4%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	z-index: 2;
}

.hero-title {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	font-family: "Instrument Serif", serif;
	font-weight: 400;
	font-style: normal;
	font-size: 10.12vw;
	color: white;
	text-align: center;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55);
	width: 100%;
}

.hero-address {
	font-family: "Instrument Serif", serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.8vw;
	color: white;
	text-align: left;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85), 0 4px 14px rgba(0, 0, 0, 0.6);
}

.hero-logo {
	position: absolute;
	top: 5%;
	bottom: auto;
	left: 3%;
	width: clamp(40px, 6vw, 70px);
	height: auto;
	display: block;
	z-index: 2;
}

.hero-image-mobile {
	display: none;
}

/* Desktop only: smaller menu button, equal space above and below */
@media screen and (min-width: 814px) {

	.hero {
		height: 88.4vh;
	}

	.hero-image {
		margin-bottom: 30px;
	}

	.menu-link {
		font-size: 2.2vw;
	}

	p.menu-link {
		margin-top: calc(20vh - 90px);
		margin-bottom: 30px;
	}

}

/* Menu link */

.menu-link {
	text-align: center;
	font-family: "Roboto Flex", sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 5vw;
	line-height: 1.1;
	color: #000;
}

p.menu-link {
	display: block;
	margin-top: calc(20vh - 110px);
}

a.menu-link,
.reserve-fab-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	border: 1px solid #13606f;
	border-radius: 10px;
	padding: 0.2em 1em;
	justify-content: center;
	box-shadow: 0 3px 6px rgba(57, 37, 35, 0.12);
}

.reserve-fab-toggle {
	background-color: rgba(250, 239, 217, 0.9);
	cursor: pointer;
	padding: 0.7em 0.9em;
	border-radius: 6px;
	color: #13606f;
	font-family: "Roboto Flex", sans-serif;
}

.reserve-fab-toggle::before {
	content: "";
	display: inline-block;
	width: 0.4em;
	height: 0.4em;
	border-radius: 50%;
	background-color: #9e1f62;
	flex: 0 0 auto;
}

.menu-link-icon {
	width: 0.9em;
	height: 0.9em;
	flex: 0 0 auto;
}

/* Opening hours heading */

.hours-title {
	margin: 0 0 30px;
	text-align: center;
	font-family: "Roboto Flex", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 3vw;
	line-height: 1.1;
}

.hours-text {
	font-family: "Roboto Flex", sans-serif;
}

.hours-list {
	display: none;
}

/* Reservation text */

.reservation-text {
	margin: 0 0 20px;
	text-align: center;
	font-family: "Roboto Flex", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.3vw;
	line-height: 1.8;
}

/* About text */

.about-title {
	margin: 50px 0 15px;
	text-align: center;
	font-family: "Instrument Serif", serif;
	font-weight: 400;
	font-style: normal;
	font-size: 4vw;
	color: #13606f;
}

.about-text {
	max-width: 950px;
	margin: 0 auto 20px;
	text-align: center;
	font-family: "Roboto Flex", sans-serif;
	font-weight: 300;
	font-style: normal;
	font-size: 1.6vw;
	line-height: 1.7;
	color: #392523;
}

/* Latin Vibes banner */

.vibes-banner {
	text-align: center;
	color: white;
	font-family: "Instrument Serif", serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.3vw;
	background-color: #13606f;
}

/* Social icons */

.social-row {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	gap: 48px;
	margin-top: 20px;
	margin-bottom: 40px;
}

.social-row a {
	display: block;
	line-height: 0;
}

.social-icon {
	width: 130px;
	height: auto;
	display: block;
	filter: drop-shadow(0 3px 5px rgba(57, 37, 35, 0.15));
}

/* Floating reserve button */

.reserve-fab {
	position: absolute;
	right: 4%;
	bottom: 6%;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}

.reserve-fab-toggle {
	font-size: 23px;
}

.reserve-fab-menu {
	display: none;
	flex-direction: column;
	gap: 4px;
	min-width: 240px;
	background-color: var(--bg-page);
	border: 1px solid #13606f;
	border-radius: 10px;
	padding: 10px;
	box-shadow: 0 10px 25px rgba(57, 37, 35, 0.3);
}

.reserve-fab-menu.is-open {
	display: flex;
}

.reserve-fab-link {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 10px;
	border-radius: 6px;
	font-family: "Roboto Flex", sans-serif;
	font-size: 14px;
	color: #392523;
	text-decoration: none;
}

.reserve-fab-link:hover {
	background-color: rgba(19, 96, 111, 0.08);
}

.reserve-fab-link svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	color: #13606f;
}

/* Gallery slider (Swiper coverflow) */

.gallery-swiper {
	--swiper-theme-color: #e08d4b;
	--swiper-pagination-bullet-inactive-color: #392523;
	--swiper-pagination-bullet-inactive-opacity: 0.25;
	width: 100%;
	padding: 30px 0 60px;
}

.gallery-swiper .swiper-slide {
	width: 320px;
	height: 380px;
}

.gallery-swiper .swiper-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	box-shadow: 0 10px 25px rgba(57, 37, 35, 0.3);
	filter: brightness(0.55);
	transition: filter 0.3s ease;
}

.gallery-swiper .swiper-slide-active img {
	filter: brightness(1);
}

/* Menu page image (if used elsewhere) */

.menu-image {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: 65%;
}

/* Desserts */

.desserts-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 60px;
	margin: 55px 0 40px;
}

.drinks-row {
	margin-top: 100px;
}

.hours-section {
	margin: 100px 0;
}

.drinks-divider {
	margin-top: 100px;
}

.desserts-image {
	flex: 0 0 auto;
	width: 40%;
	max-width: 420px;
}

.desserts-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 10px 25px rgba(57, 37, 35, 0.3);
}

.desserts-text {
	flex: 0 0 auto;
	width: 40%;
	max-width: 460px;
}

.desserts-title {
	margin: 0 0 15px;
	text-align: left;
	font-family: "Instrument Serif", serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.4vw;
	color: #13606f;
}

.desserts-copy {
	margin: 0;
	text-align: left;
	font-family: "Roboto Flex", sans-serif;
	font-weight: 300;
	font-style: normal;
	font-size: 1.2vw;
	line-height: 1.7;
	color: #392523;
}


/* ============ Mobile ============ */

@media screen and (max-width: 813px) {

	.mobile-break {
		display: inline;
	}

	.hero-image {
		display: none;
	}

	.hero-title {
		top: calc(27% + 50px);
		font-size: 8.45vw;
		white-space: nowrap;
	}

	.hero-address {
		font-size: 3.8vw;
		white-space: nowrap;
	}

	.hero-content {
		bottom: 4%;
		left: 4%;
		gap: 6px;
	}

	.hero-logo {
		width: clamp(41px, 11.5vw, 70px);
		top: 4%;
		bottom: auto;
		left: 3%;
	}

	.hero-image-mobile {
		display: block;
		width: 100%;
		margin-bottom: 20px;
		animation: hero-ken-burns 12s ease-in-out infinite alternate;
	}

	.gallery-swiper {
		padding: 15px 0 40px;
	}

	.gallery-swiper .swiper-slide {
		width: 200px;
		height: 240px;
	}

	.gallery-swiper .swiper-slide img {
		border-radius: 8px;
	}

	.divider {
		width: 90%;
		margin: 25px auto;
	}

	.hero-divider {
		display: none;
	}

	.menu-divider {
		margin: 45px auto;
	}

	.social-icon {
		width: 80px;
		height: auto;
		display: block;
	}

	.social-row {
		gap: 43px;
		margin-top: 25px;
		margin-bottom: 10px;
	}

	.menu-link {
		font-family: "Roboto Flex", sans-serif;
		font-weight: 500;
		font-style: normal;
		font-size: 30px;
	}

	.reserve-fab {
		right: 4%;
		bottom: 4%;
	}

	.reserve-fab-toggle {
		font-size: 13px;
	}

	.reserve-fab-menu {
		min-width: 200px;
	}

	.hours-title {
		margin: 0 auto 16px;
		padding-bottom: 14px;
		font-size: 28px;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 1px;
		border-bottom: 1px solid #13606f;
		display: block;
		width: fit-content;
	}

	.hours-text {
		display: none;
	}

	.hours-list {
		display: block;
		width: 80%;
		max-width: 300px;
		margin: 0 auto;
	}

	.hours-row {
		display: flex;
		justify-content: space-between;
		padding: 8px 0;
		font-family: "Roboto Flex", sans-serif;
		font-size: 15px;
	}

	.hours-day {
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
	}

	.hours-time {
		font-weight: 400;
	}

	p {
		font-family: "Jost", sans-serif;
		font-weight: 400;
		font-style: normal;
		font-size: 20px;
	}

	.reservation-text {
		margin: 0;
		padding: 0;
		font-family: "Roboto Flex", sans-serif;
		font-weight: 400;
		font-style: normal;
		font-size: 20px;
		line-height: 1.8;
	}

	.about-title {
		font-size: 8vw;
		margin: 35px 0 8px;
	}

	.about-text {
		max-width: 100%;
		padding: 0 10px;
		font-size: 15px;
		line-height: 1.6;
	}

	.desserts-row {
		flex-direction: column;
		gap: 16px;
		margin: 35px 0 20px;
	}

	.drinks-row {
		margin-top: 50px;
	}

	.hours-section {
		margin: 50px 0;
	}

	.drinks-divider {
		margin-top: 50px;
	}

	.desserts-image {
		width: 70%;
		max-width: 260px;
	}

	.desserts-text {
		order: -1;
		width: 100%;
		max-width: 100%;
		padding: 0 24px;
		box-sizing: border-box;
	}

	.desserts-title {
		text-align: center;
		font-size: 4.6vw;
		white-space: nowrap;
	}

	.desserts-copy {
		text-align: center;
		font-size: 3.6vw;
		line-height: 1.5;
	}

	.menu-image {
		display: block;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
	}

	.vibes-banner {
		color: white;
		margin-top: 15px;
		font-family: "Instrument Serif", serif;
		font-weight: 400;
		font-style: normal;
		font-size: 6vw;
		background-color: #13606f;
	}

}