@import url("Zm9udHM/QW1zdGVyUHJvLU5lZ3Jh.css");
@import url("Zm9udHM/QW1zdGVyUHJvLU5lZ3JhSXRhbGljYQ.css");
@import url("Zm9udHM/QW1zdGVyUHJvLUdyaXM.css");
@import url("Zm9udHM/QW1zdGVyUHJvLUZpbmFJdGFsaWNh.css");

:root {
	--placeholder-purple: #35215c;
	--placeholder-gold: #f5a623;
	--placeholder-gold-soft: #ede2b1;
	--placeholder-ink: #35215c;
	--placeholder-heavy: "QW1zdGVyUHJvLU5lZ3Jh", Georgia, serif;
	--placeholder-italic: "QW1zdGVyUHJvLU5lZ3JhSXQ", Georgia, serif;
	--placeholder-regular: "QW1zdGVyUHJvLUdyaXM", Georgia, serif;
	--placeholder-light: "QW1zdGVyUHJvLUdyaXM", Georgia, serif;
	--placeholder-info-width: clamp(300px, 25vw, 430px);
	--placeholder-info-bottom: clamp(96px, 10vh, 132px);
	--placeholder-info-top: calc(100% - var(--placeholder-info-bottom) - 66px);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body {
	min-height: 100%;
	margin: 0;
}

body.restauro-placeholder-page {
	background: var(--placeholder-purple);
	color: var(--placeholder-gold);
	font-family: var(--placeholder-heavy);
}

.placeholder {
	min-height: 100vh;
	min-height: 100svh;
	background: var(--placeholder-purple);
}

.placeholder__screen {
	position: relative;
	display: grid;
	overflow: hidden;
	min-height: 100vh;
	min-height: 100svh;
	padding: clamp(32px, 5vw, 88px) clamp(24px, 6.8vw, 132px);
}

.placeholder__title {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.placeholder__brand {
	align-self: center;
	justify-self: center;
	width: min(48vw, 640px);
	margin-top: -6vh;
	text-align: center;
}

.placeholder__logo {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

.placeholder__tagline {
	margin: clamp(38px, 4.7vh, 66px) 0 0;
	color: var(--placeholder-gold);
	font-size: 32px;
	font-weight: normal;
	line-height: 1.08;
	letter-spacing: 0;
}

.placeholder__tagline-light {
	font-family: var(--placeholder-light);
	font-feature-settings: "salt" 1, "ss01" 1;
}

.placeholder__tagline-heavy {
	font-family: var(--placeholder-heavy);
}

.placeholder__swash {
	font-family: var(--placeholder-light);
}

.placeholder__address,
.placeholder__reservation {
	position: absolute;
	top: var(--placeholder-info-top);
}

.placeholder__address {
	right: clamp(24px, 6.8vw, 132px);
	width: var(--placeholder-info-width);
	max-width: calc(100vw - 48px);
	margin: 0;
	font-family: var(--placeholder-light);
	font-style: normal;
	font-size: 28px;
	line-height: 1.18;
	text-align: right;
	letter-spacing: 0;
	white-space: normal;
	transform: none;
}

.placeholder__address span {
	display: inline;
}

.placeholder__address span + span::before {
	content: " ";
}

.placeholder__reservation {
	left: clamp(24px, 6.8vw, 132px);
	width: var(--placeholder-info-width);
	text-align: left;
}

.placeholder__season {
	margin: 0;
	font-family: var(--placeholder-heavy);
	font-size: 28px;
	line-height: 1.18;
	letter-spacing: 0;
}

.placeholder__season span {
	display: inline;
}

.placeholder__button {
	position: absolute;
	top: calc(100% + clamp(14px, 1.8vh, 24px));
	left: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 0.07em 0.72em 0.17em;
	border: 0;
	border-radius: 10px;
	background: var(--placeholder-gold);
	color: var(--placeholder-ink);
	cursor: pointer;
	font-family: var(--placeholder-heavy);
	font-size: 28px;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	letter-spacing: 0;
	transform-origin: center center;
	transition: transform 180ms ease;
}

.placeholder__button:hover {
	transform: scale(1.1);
}

.placeholder__button:focus-visible {
	outline: 3px solid var(--placeholder-gold-soft);
	outline-offset: 5px;
}

.reservation-modal-is-open {
	overflow: hidden;
}

.reservation-modal[hidden] {
	display: none;
}

.reservation-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
}

.reservation-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 12, 38, 0.78);
}

.reservation-modal__panel {
	position: relative;
	z-index: 1;
	width: min(720px, calc(100vw - 32px));
	height: min(1020px, calc(100vh - 16px));
	overflow: hidden;
	border: 1px solid rgba(245, 166, 35, 0.28);
	border-radius: 8px;
	background: #ffffff;
	padding-top: 40px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.42);
}

.reservation-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 50%;
	background: var(--placeholder-purple);
	color: var(--placeholder-gold);
	cursor: pointer;
	font-family: Arial, sans-serif;
	font-size: 30px;
	line-height: 1;
}

.reservation-modal__close:focus-visible {
	outline: 3px solid var(--placeholder-gold);
	outline-offset: 3px;
}

.reservation-modal__frame {
	display: block;
	width: 100%;
	height: calc(100% - 40px);
	border: 0;
	background: #ffffff;
}

@media (max-width: 767px) {
	.placeholder__screen {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		overflow-x: hidden;
		padding: clamp(40px, 7vh, 80px) 24px clamp(44px, 6vh, 72px);
		text-align: center;
	}

	.placeholder__brand {
		width: min(72vw, 390px);
		margin-top: clamp(190px, 25vh, 310px);
	}

	.placeholder__tagline {
		margin-top: clamp(54px, 7.6vh, 86px);
		font-size: 32px;
		white-space: nowrap;
	}

	.placeholder__reservation,
	.placeholder__address {
		position: static;
		top: auto;
	}

	.placeholder__reservation {
		width: min(82vw, 360px);
		margin-top: clamp(100px, 14vh, 150px);
		text-align: center;
	}

	.placeholder__season {
		margin-bottom: 18px;
		font-size: 28px;
		line-height: 1.18;
	}

	.placeholder__button {
		position: static;
		min-width: 0;
		border-radius: 9px;
		font-size: clamp(29px, 7.4vw, 40px);
		margin-top: 18px;
	}

	.reservation-modal {
		padding: 8px;
	}

	.reservation-modal__panel {
		width: 100%;
		height: calc(100vh - 16px);
	}

	.placeholder__address {
		margin-top: clamp(140px, 19vh, 210px);
		width: min(82vw, 360px);
		max-width: calc(100vw - 48px);
		font-size: 28px;
		line-height: 1.18;
		text-align: center;
		transform: none;
	}
}

@media (max-width: 480px) {
	.placeholder__brand {
		margin-top: 150px;
	}

	.placeholder__reservation {
		margin-top: 76px;
	}

	.placeholder__address {
		margin-top: 92px;
	}
}

@media (min-width: 768px) and (max-height: 760px) {
	.placeholder__brand {
		width: min(42vw, 560px);
		margin-top: -12vh;
	}

	.placeholder__tagline {
		margin-top: 36px;
	}

	.placeholder__address,
	.placeholder__reservation {
		bottom: 42px;
	}
}
