/* Booking request form ---------------------------------------------------- */

.efv-book {
	background: #fff;
	border: 1px solid var(--border, #e2e4e0);
	border-radius: 10px;
	padding: clamp(20px, 3vw, 34px);
	margin-top: 32px;
}

.efv-book-title {
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	margin: 0 0 4px;
	color: var(--ink, #26271f);
}

.efv-book-sub {
	margin: 0 0 22px;
	font-size: .9rem;
	color: var(--muted, #6f7168);
}

.efv-book-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 18px;
}

.efv-span2 { grid-column: 1 / -1; }

.efv-field { margin: 0; display: flex; flex-direction: column; gap: 6px; }

.efv-field label {
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted, #6f7168);
}

.efv-field span { color: var(--gold, #c9a96a); }

.efv-book input,
.efv-book select,
.efv-book textarea {
	width: 100%;
	font: inherit;
	font-size: .95rem;
	color: var(--ink, #26271f);
	background: var(--bone, #f7f6f2);
	border: 1px solid var(--border, #e2e4e0);
	border-radius: 5px;
	padding: 11px 12px;
	transition: border-color .18s ease, box-shadow .18s ease;
	-webkit-appearance: none;
	appearance: none;
}

.efv-book textarea { resize: vertical; min-height: 92px; }

.efv-book select {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f7168' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 11px center;
	background-size: 16px;
	padding-right: 34px;
}

.efv-book input:focus,
.efv-book select:focus,
.efv-book textarea:focus {
	outline: none;
	border-color: var(--gold, #c9a96a);
	box-shadow: 0 0 0 3px rgba(201, 169, 106, .2);
}

.efv-book-actions {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 22px;
}

.efv-book-actions .btn { border: 0; cursor: pointer; font: inherit; }

.efv-book-alt {
	font-size: .88rem;
	color: var(--green, #1f4a2c);
	border-bottom: 1px solid var(--gold, #c9a96a);
}

.efv-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.efv-note {
	border-radius: 6px;
	padding: 13px 16px;
	margin-bottom: 20px;
	font-size: .92rem;
	line-height: 1.5;
}

.efv-note-ok {
	background: #eef3ea;
	border-left: 3px solid var(--green, #1f4a2c);
	color: #1c3a24;
}

.efv-note-bad {
	background: #fbf1e8;
	border-left: 3px solid #b4703a;
	color: #6d3f1c;
}

/* Booking page layout ----------------------------------------------------- */

.booking-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr);
	gap: 30px;
	align-items: start;
	margin-top: 10px;
}

.booking-layout .efv-book { margin-top: 22px; }

.booking-aside {
	background: var(--bone, #f7f6f2);
	border: 1px solid var(--border, #e2e4e0);
	border-radius: 10px;
	padding: 24px;
	margin-top: 22px;
}

.booking-aside h3 {
	font-size: 1.15rem;
	margin: 0 0 12px;
	color: var(--green, #1f4a2c);
}

.booking-aside p {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-size: .93rem;
}

.booking-aside .ic { width: 17px; height: 17px; color: var(--green, #1f4a2c); flex: none; }

.booking-aside a { color: var(--ink, #26271f); border-bottom: 1px solid var(--gold, #c9a96a); }

.booking-rooms { list-style: none; margin: 0; padding: 0; }

.booking-rooms li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 0;
	border-bottom: 1px solid var(--border, #e2e4e0);
	font-size: .9rem;
}

.booking-rooms li:last-child { border-bottom: 0; }
.booking-rooms span { color: var(--muted, #6f7168); }

@media (max-width: 900px) {
	.booking-layout { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.efv-book-grid { grid-template-columns: 1fr; }
	.efv-span2 { grid-column: auto; }
}

/* Search box and ghost button --------------------------------------------- */

.efv-search { display: flex; gap: 10px; flex-wrap: wrap; max-width: 520px; }

.efv-search input[type="search"] {
	flex: 1 1 220px;
	font: inherit;
	font-size: .95rem;
	color: var(--ink, #26271f);
	background: #fff;
	border: 1px solid var(--border, #e2e4e0);
	border-radius: 5px;
	padding: 11px 13px;
	-webkit-appearance: none;
	appearance: none;
}

.efv-search input[type="search"]:focus {
	outline: none;
	border-color: var(--gold, #c9a96a);
	box-shadow: 0 0 0 3px rgba(201, 169, 106, .2);
}

.efv-search .btn { border: 0; cursor: pointer; font: inherit; }

.btn-ghost {
	background: transparent;
	color: var(--green, #1f4a2c);
	border: 1px solid var(--green, #1f4a2c);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
