.aar-booking-widget {
	--aar-cream: #f8f1e8;
	--aar-sand: #eadbc8;
	--aar-rose: #e8c7c2;
	--aar-clay: #b96d63;
	--aar-wine: #5d352f;
	--aar-green: #7ca386;
	--aar-gold: #b98c3c;
	--aar-text: #2b1f1b;
	background: radial-gradient(circle at top right, rgba(233, 199, 194, 0.6), transparent 28%), linear-gradient(180deg, #fffdfa, #f6ede4);
	border: 1px solid #ead7c4;
	border-radius: 28px;
	padding: 32px;
	color: var(--aar-text);
	font-family: Georgia, "Times New Roman", serif;
	box-shadow: 0 22px 60px rgba(93, 53, 47, 0.12);
}

.aar-booking-widget * {
	box-sizing: border-box;
}

.aar-booking-widget__header,
.aar-booking-widget__grid,
.aar-calendar-nav,
.aar-legend,
.aar-calendar-selection,
.aar-form__row,
.aar-summary__row,
.aar-option {
	display: flex;
}

.aar-booking-widget__header,
.aar-legend,
.aar-booking-widget__grid {
	gap: 24px;
}

.aar-booking-widget__header,
.aar-calendar-nav,
.aar-calendar-selection,
.aar-summary__row,
.aar-option {
	justify-content: space-between;
}

.aar-booking-widget__header,
.aar-calendar-selection,
.aar-summary__row,
.aar-option {
	align-items: center;
}

.aar-booking-widget__header {
	margin-bottom: 24px;
}

.aar-booking-widget__header h2 {
	margin: 6px 0 10px;
	font-size: clamp(1.8rem, 3vw, 2.5rem);
	line-height: 1.1;
}

.aar-kicker {
	margin: 0;
	font-size: 0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--aar-clay);
}

.aar-times {
	display: grid;
	grid-template-columns: repeat(2, minmax(120px, 1fr));
	gap: 12px;
	min-width: 240px;
}

.aar-times div,
.aar-panel,
.aar-summary,
.aar-alert {
	border-radius: 20px;
}

.aar-times div {
	padding: 16px;
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid #ecd8c7;
	text-align: center;
}

.aar-times strong,
.aar-times span {
	display: block;
}

.aar-times strong {
	font-size: 0.8rem;
	color: var(--aar-clay);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 8px;
}

.aar-times span {
	font-size: 1.4rem;
}

.aar-legend {
	flex-wrap: wrap;
	margin-bottom: 20px;
}

.aar-legend__item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.95rem;
}

.aar-dot,
.aar-status {
	width: 14px;
	height: 14px;
	border-radius: 999px;
	display: inline-block;
}

.aar-dot--available,
.aar-status--available {
	background: #dfeee3;
}

.aar-dot--pending,
.aar-status--pending {
	background: #efad4d;
}

.aar-dot--reserved,
.aar-status--reserved {
	background: #c8968f;
}

.aar-dot--blocked,
.aar-status--blocked {
	background: #c9b39a;
}

.aar-booking-widget__grid {
	display: grid;
	grid-template-columns: 1.2fr 0.9fr;
}

.aar-panel {
	background: rgba(255, 255, 255, 0.86);
	border: 1px solid #ecd7c6;
	padding: 24px;
}

.aar-calendar-nav__button {
	border: 0;
	width: 42px;
	height: 42px;
	border-radius: 999px;
	background: #fff;
	color: var(--aar-wine);
	cursor: pointer;
	box-shadow: 0 8px 20px rgba(93, 53, 47, 0.1);
}

.aar-calendar-nav__title,
.aar-calendar-nav__subtitle {
	margin: 0;
	text-align: center;
}

.aar-calendar-nav__title {
	font-weight: 700;
}

.aar-calendar-nav__subtitle {
	font-size: 0.92rem;
	color: #73564e;
}

.aar-calendar-selection {
	padding: 16px 18px;
	margin: 20px 0;
	border: 1px solid #ead7c5;
	background: linear-gradient(135deg, rgba(248, 241, 232, 0.9), rgba(255, 255, 255, 0.95));
}

.aar-calendars {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.aar-month h3 {
	margin: 0 0 14px;
	text-transform: capitalize;
}

.aar-month__weekdays,
.aar-month__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 8px;
}

.aar-month__weekdays {
	margin-bottom: 10px;
	font-size: 0.8rem;
	color: #7a5c53;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.aar-day,
.aar-month__empty {
	min-height: 54px;
}

.aar-day {
	border: 0;
	border-radius: 16px;
	padding: 10px 6px;
	font: inherit;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.aar-day span {
	font-size: 0.96rem;
	font-weight: 600;
}

.aar-day--available {
	background: #eff7f1;
	color: #2f5a3a;
}

.aar-day--available:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgba(124, 163, 134, 0.22);
}

.aar-day--pending,
.aar-day--reserved,
.aar-day--blocked {
	cursor: not-allowed;
	color: #fff;
}

.aar-day--pending {
	background: #e49c39;
}

.aar-day--reserved {
	background: #b9756d;
}

.aar-day--blocked {
	background: #b7a28c;
}

.aar-day--range {
	box-shadow: inset 0 0 0 2px rgba(185, 140, 60, 0.5);
}

.aar-day--selected {
	background: var(--aar-wine);
	color: #fff;
}

.aar-form,
.aar-options-list {
	display: grid;
	gap: 10px;
}

.aar-form__row {
	gap: 14px;
}

.aar-form__row > div,
.aar-form label,
.aar-form input,
.aar-form select,
.aar-form textarea {
	width: 100%;
}

.aar-form label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.92rem;
	font-weight: 600;
}

.aar-field-label {
	display: block;
	margin-bottom: 8px;
	font-size: 0.92rem;
	font-weight: 600;
}

.aar-checkbox-toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 0;
	font-weight: 500;
	cursor: pointer;
}

.aar-checkbox-toggle input {
	width: auto;
	margin: 0;
}

.aar-field-help {
	margin: 0 0 8px;
	font-size: 0.84rem;
	line-height: 1.5;
	color: #73564e;
}

.aar-conditional-field[hidden] {
	display: none !important;
}

.aar-form input,
.aar-form select,
.aar-form textarea {
	border: 1px solid #dcc7b5;
	border-radius: 14px;
	padding: 13px 14px;
	background: rgba(255, 255, 255, 0.92);
	font: inherit;
	color: var(--aar-text);
}

.aar-options-list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aar-option-card {
	position: relative;
	display: grid;
	gap: 12px;
	padding: 12px;
	border: 1px solid #e7d5c4;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.82);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.aar-option-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 24px rgba(93, 53, 47, 0.1);
}

.aar-option-card input {
	position: absolute;
	top: 12px;
	left: 12px;
	width: 18px;
	height: 18px;
	z-index: 0;
}

.aar-option-card__visual {
	height: 80px;
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(184, 109, 99, 0.2), rgba(185, 140, 60, 0.15));
	display: flex;
	align-items: center;
	justify-content: center;
}

.aar-option-card__visual--placeholder::after {
	content: "Amour Azur";
	font-size: 0.9rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(93, 53, 47, 0.7);
}

.aar-option-card__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.aar-option-card__body {
	display: grid;
	gap: 8px;
	text-align: center;
}

.aar-option-card__title-row {
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 12px;
}

.aar-option-card__title-row strong {
	display: block;
	padding-right: 8px;
}

.aar-option-card__body em {
	font-style: normal;
	font-weight: 700;
	color: #f1999e;
}

.aar-option-card__info {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 999px;
	background: #f2e4d8;
	color: var(--aar-wine);
	font-size: 0.82rem;
	font-weight: 700;
	cursor: help;
}

.aar-option-card__tooltip {
	position: absolute;
	right: 0;
	bottom: calc(100% + 10px);
	width: 220px;
	padding: 10px 12px;
	border-radius: 12px;
	background: rgba(43, 31, 27, 0.96);
	color: #fff;
	font-size: 0.82rem;
	line-height: 1.4;
	opacity: 0;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.aar-option-card__info:hover .aar-option-card__tooltip,
.aar-option-card__info:focus .aar-option-card__tooltip {
	opacity: 1;
	transform: translateY(0);
}

.aar-option-card--selected {
	border-color: var(--aar-clay);
	box-shadow: 0 0 0 2px rgba(185, 109, 99, 0.2);
}

.aar-summary {
	background: #f1999e70;
	color: #383838;
	padding: 20px;
	display: grid;
	gap: 10px;
}

.aar-summary h3 {
	margin: 0 0 8px;
	font-size: 1.2rem;
}

.aar-summary__row {
	gap: 12px;
	font-size: 0.96rem;
}

.aar-summary__row--total,
.aar-summary__row--deposit {
	padding-top: 8px;
	border-top: 1px solid rgba(56, 56, 56, 0.14);
	font-size: 1rem;
}

.aar-summary__row--deposit {
	background-color: #fff;
	color: #383838;
	padding: 10px;
}

.aar-form__message {
	min-height: 24px;
	font-size: 0.94rem;
}

.aar-form__message--error {
	color: #a63636;
}

.aar-form__message--warning {
	color: #8d6518;
}

.aar-form__message--success,
.aar-form__message--info {
	color: #305b48;
}

.aar-submit {
	border: 0;
	border-radius: 16px;
	padding: 15px 18px;
	background: #496c49;
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 16px 30px rgba(93, 53, 47, 0.2);
}

.aar-submit:disabled {
	cursor: not-allowed;
	opacity: 0.5;
	box-shadow: none;
}

.aar-alert {
	margin-bottom: 20px;
	padding: 14px 18px;
	font-weight: 600;
}

.aar-alert--success {
	background: #e7f5eb;
	color: #245636;
}

.aar-alert--warning {
	background: #fff4dc;
	color: #7d5a11;
}

.aar-alert--error {
	background: #fde9e9;
	color: #8c2323;
}

@media (max-width: 980px) {
	.aar-booking-widget__grid {
		grid-template-columns: 1fr;
	}

	.aar-calendars {
		grid-template-columns: 1fr;
	}

	.aar-options-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.aar-booking-widget {
		padding: 20px;
	}

	.aar-booking-widget__header,
	.aar-form__row,
	.aar-calendar-nav,
	.aar-calendar-selection {
		flex-direction: column;
		align-items: stretch;
	}

	.aar-times {
		grid-template-columns: 1fr 1fr;
		min-width: 0;
	}

	.aar-options-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
