/* Bellecour — Rendez-vous : formulaire de demande de visite. */

.brv-form-wrap {
	margin: 1.5rem 0;
}

.brv-intro {
	margin: 1rem 0;
}

.brv-field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0 0 1rem;
}

.brv-field label {
	font-size: .95em;
}

.brv-field input,
.brv-field textarea {
	width: 100%;
	max-width: 32rem;
	padding: .6rem .8rem;
	font-size: 1em;
	border: 1px solid rgba(0, 0, 0, .24);
	border-radius: .35rem;
	background: #fff;
}

.brv-consent {
	max-width: 32rem;
	margin: 0 0 1rem;
	font-size: .9em;
	line-height: 1.45;
}

.brv-consent label {
	display: flex;
	gap: .5rem;
	align-items: flex-start;
}

.brv-submit {
	width: auto;
	min-width: 0;
}

/* Honeypot: moved off-screen rather than display:none, which bots detect. */
.brv-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* ------------------------------------------------------------------ Modal */

.brv-open-wrap {
	margin: 1.25rem 0;
}

.brv-open {
	width: auto;
	min-width: 0;
}

.brv-modal {
	width: min(34rem, calc(100vw - 2rem));
	max-height: calc(100vh - 3rem);
	padding: 1.75rem;
	border: 0;
	border-radius: .5rem;
	background: #fff;
	color: inherit;
	overflow-y: auto;
	box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .25);
}

.brv-modal::backdrop {
	background: rgba(0, 0, 0, .55);
}

/* Fallback for browsers without <dialog>: centre it by hand. */
.brv-modal--fallback {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 99999;
}

.brv-modal-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.brv-modal-title {
	margin: 0;
	font-size: 1.25em;
	line-height: 1.3;
}

.brv-modal-close {
	padding: 0 .35rem;
	border: 0;
	background: none;
	font-size: 1.6em;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}

.brv-chosen {
	margin: 0 0 1rem;
	padding: .6rem .8rem;
	border-radius: .35rem;
	background: rgba(0, 0, 0, .05);
	font-size: .92em;
}

/* --------------------------------------------------------------- Calendar */

.brv-slots {
	margin: 0 0 1.25rem;
	padding: 0;
	border: 0;
}

.brv-slots legend {
	padding: 0;
	font-size: .95em;
	font-weight: 600;
}

.brv-slots-help {
	margin: .25rem 0 .75rem;
	font-size: .88em;
	opacity: .8;
}

.brv-cal {
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: .4rem;
	padding: .6rem;
}

.brv-cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	margin-bottom: .5rem;
}

.brv-cal-month {
	font-weight: 600;
	text-transform: capitalize;
}

.brv-cal-nav {
	padding: .1rem .55rem;
	border: 1px solid rgba(0, 0, 0, .18);
	border-radius: .3rem;
	background: none;
	font-size: 1.1em;
	line-height: 1.4;
	cursor: pointer;
	color: inherit;
}

.brv-cal-nav[disabled] {
	opacity: .3;
	cursor: default;
}

.brv-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.brv-cal-dow {
	padding: .3rem 0;
	text-align: center;
	font-size: .75em;
	text-transform: uppercase;
	opacity: .6;
}

.brv-cal-blank {
	display: block;
}

.brv-cal-day {
	padding: .5rem 0;
	border: 1px solid transparent;
	border-radius: .3rem;
	background: rgba(0, 0, 0, .04);
	font-size: .9em;
	cursor: pointer;
	color: inherit;
}

.brv-cal-day:hover:not([disabled]) {
	border-color: currentColor;
}

.brv-cal-day.is-disabled {
	background: none;
	opacity: .25;
	cursor: default;
}

.brv-cal-day.is-pending {
	border-color: currentColor;
	font-weight: 700;
}

.brv-cal-day.is-selected {
	background: #1a1a1a;
	color: #fff;
}

.brv-cal-half {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin-top: .6rem;
	padding-top: .6rem;
	border-top: 1px solid rgba(0, 0, 0, .12);
}

.brv-cal-half-label {
	font-size: .88em;
}

.brv-cal-half-btn {
	padding: .35rem .8rem;
	border: 1px solid rgba(0, 0, 0, .24);
	border-radius: .3rem;
	background: none;
	font-size: .88em;
	cursor: pointer;
	color: inherit;
}

.brv-cal-half-btn.is-taken {
	opacity: .35;
	cursor: default;
}

.brv-cal-notice {
	margin: .6rem 0 0;
	font-size: .85em;
}

.brv-cal-list {
	margin: .75rem 0 0;
	padding: 0;
	list-style: none;
}

.brv-cal-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: .4rem .6rem;
	margin-bottom: .3rem;
	border-radius: .3rem;
	background: rgba(0, 0, 0, .05);
	font-size: .9em;
}

.brv-cal-empty {
	font-size: .85em;
	opacity: .65;
}

.brv-cal-remove {
	padding: 0 .3rem;
	border: 0;
	background: none;
	font-size: 1.1em;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}
