.rcal-wrapper button svg{
	fill:currentColor;
	vertical-align:bottom
}
.rcal-wrapper, .rcal-wrapper *{
	box-sizing:border-box
}
.rcal-card{
	max-width:48rem;
	margin:0 auto;
	border:.0625rem solid #33669d;
	border-radius:.5rem;
	overflow:hidden
}
.rcal-header{
	background:#fff;
	padding:2rem 2.5rem;
	text-align:center;
	position:relative;
	overflow:hidden
}
.rcal-header h2{
	font-size:clamp(1.4rem, 4vw, 2rem);
	font-weight:500;
	color:#33669d;
	margin:0 0 0.3rem;
	position:relative;
	letter-spacing:.02em
}
.rcal-header p{
	font-size:0.75rem;
	color:#33669d;
	opacity:.85;
	margin:0;
	letter-spacing:0.12em;
	text-transform:uppercase;
	position:relative;
	font-weight:300;
}
.rcal-body{
	display:block;
}
[data-rcal-step]:not(:first-of-type){
	border-top:.0625rem solid #33669d;
}
.rcal-nav{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:1.2rem;
}
.rcal-nav-btn{
	background:0;
	border:.0625rem solid #33669d;
	border-radius:50%;
	width:32px;
	height:32px;
	cursor:pointer;
	color:#33669d;
	padding:.125rem;
	font-size:1.125rem
}
.rcal-nav-btn:hover, .rcal-nav-btn:focus-visible{
	background:#fff;
	border-color:#33669d;
	color:#33669d;
	outline:none;
}
.rcal-month-title{
	font-size:1.15rem;
	font-weight:500;
	color:#33669d;
	letter-spacing:0.03em;
}
.rcal-grid{
	width:100%;
}
.rcal-grid th{
	font-size:0.66rem;
	font-weight:500;
	letter-spacing:0.1em;
	text-transform:uppercase;
	color:#33669d;
	padding:0.4rem 0;
	text-align:center;
}
.rcal-grid td{
	text-align:center;
	padding:2px;
}
.rcal-day{
	width:36px;
	height:36px;
	border-radius:50%;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:0.82rem;
	cursor:pointer;
	border:none;
	background:transparent;
	color:#33669d;
	position:relative;
	user-select:none;
	padding:0;
}
.rcal-day:hover:not([disabled]):not(.empty){
	background:#fff;
	color:#33669d;
}
.rcal-day.today::after{
	content:"";
	position:absolute;
	bottom:4px;
	left:50%;
	transform:translateX(-50%);
	width:4px;
	height:4px;
	border-radius:50%;
	background:#33669d;
	pointer-events:none;
}
.rcal-day.past, .rcal-day.closed, .rcal-day[disabled]{
	color:#33669d;
	cursor:not-allowed;
	opacity:0.5;
}
.rcal-day.disabled{
	background:repeating-linear-gradient(-45deg, transparent 0 3px, rgba(180, 155, 140, 0.2) 3px 4px);
	text-decoration:line-through;
}
.rcal-day.selected-start, .rcal-day.selected-end{
	background:#33669d;
	color:#fff;
	font-weight:500;
}
.rcal-day.selected-start{
	border-radius:50% 0 0 50%;
}
.rcal-day.selected-end{
	border-radius:0 50% 50% 0;
}
.rcal-day.selected-start.selected-end{
	border-radius:50%;
}
.rcal-day.in-range{
	background:#fff;
	color:#33669d;
	border-radius:0;
}
.rcal-day.checkout-only:not(.disabled)::before, .rcal-day.arrival-only:not(.disabled)::before{
	content:"";
	position:absolute;
	inset:0;
	border-radius:50%;
	pointer-events:none;
	z-index:-1;
}
.rcal-day.checkout-only:not(.disabled)::before{
	background:linear-gradient(135deg, #fff 50%, transparent 50%);
}
.rcal-day.arrival-only:not(.disabled)::before{
	background:linear-gradient(-45deg, #fff 50%, transparent 50%);
}
.rcal-legend{
	list-style:none;
	margin:1.2rem 0 0;
	padding:0;
	display:flex;
	gap:1rem;
	flex-wrap:wrap;
}
.rcal-legend li{
	display:flex;
	align-items:center;
	gap:0.4rem;
	font-size:0.68rem;
	color:#33669d;
	letter-spacing:0.04em;
}
.rcal-dot{
	width:12px;
	height:12px
}
.rcal-dot.available{
	border:.0625rem solid #33669d;
}
.rcal-dot.booked{
	background:repeating-linear-gradient(-45deg, transparent 0 2px, rgba(180, 155, 140, 0.4) 2px 3px);
	border:.0625rem solid #33669d;
}
.rcal-dot.selected{
	background:#33669d;
	border-radius:50%;
}
.rcal-dot.half{
	background:linear-gradient(135deg, #fff 50%, transparent 50%);
	border:.0625rem solid #33669d;
	border-radius:50%;
}
.rcal-ics-status{
	font-size:0.7rem;
	color:#33669d;
}
.rcal-nav-status{
	margin:.5rem 0 0;
	padding:.6rem .8rem;
	background:0;
	border-radius:.4rem;
	font-size:.8rem;
	color:#33669d
}
.rcal-nav-status:empty{
	display:none;
	margin:0;
	padding:0
}
.rcal-spinner{
	display:inline-block;
	width:12px;
	height:12px;
	border:2px solid #33669d;
	border-top-color:#33669d;
	border-radius:50%;
	animation:rcal-spin 0.8s linear infinite;
	flex-shrink:0;
}
@keyframes rcal-spin{
	to{
		transform:rotate(360deg);
	}
}
@media (prefers-reduced-motion:reduce){
	.rcal-spinner{
		animation-duration:2.4s
	}
}
.rcal-form-section, .rcal-calendar-section{
	padding:2rem
}
.rcal-form-section h3{
	margin:0 0 1.4rem;
	padding-bottom:0.8rem;
	border-bottom:.0625rem solid #33669d
}
.rcal-dates-summary{
	background: #fff;
	color:#33669d;
	border: .0625rem solid currentColor;
	border-radius: .5rem;
	padding: 0.75rem 1rem;
	font-size: small;
	display:flex;
	align-items:center;
	gap:0.75rem;
	flex-wrap:wrap;
}
.rcal-reset-btn{
	color:#33669d
}
.rcal-week-title{
	font-weight:600;
	color:inherit
}
.rcal-week-table{
	width:100%;
	border-collapse:collapse;
	background:#fff;
	font-size:0.9rem
}
.rcal-week-table th, .rcal-week-table td{
	border:.0625rem solid #33669d;
	text-align:center;
	padding:0
}
.rcal-week-table td:has(.rcal-slot-btn.available){
	border-block:0
}
.rcal-week-table thead th{
	padding:0.5rem 0.25rem;
	background:#fff;
	color:#33669d;
	font-weight:600;
	white-space:nowrap;
}
.rcal-week-table thead th.rcal-week-today{
	background:#33669d;
	color:#fff;
}
.rcal-week-table thead th.rcal-week-closed{
	opacity:0.45;
}
.rcal-week-dow{
	text-transform:capitalize;
}
.rcal-week-dom{
	font-weight:400;
	font-size:0.75rem;
	opacity:0.8;
}
.rcal-week-table tbody th{
	padding:0.35rem 0.6rem;
	font-weight:400;
	white-space:nowrap;
	background:#fafafa;
	vertical-align:top
}
.rcal-week-cell{
	position:relative;
	height:3.4rem;
	padding:0
}
.rcal-week-cell:has(.closed, .past), .rcal-week-cell:empty{
	background:repeating-linear-gradient(-45deg, #ddd 0 4px, #eee 4px 8px)
}
.rcal-week-empty{
	padding:1.5rem;
	color:#757575;
	font-style:italic;
	text-align:center;
}
.rcal-slot-btn{
	position:absolute;
	left:.1rem;
	right:.1rem;
	min-height:1.3rem;
	padding:.65rem 0 0;
	border:.0625rem solid #33669d;
	border-radius:0.3rem;
	background:rgba(0, 0, 0, 0.02);
	font:inherit;
	font-size:.72rem;
	cursor:pointer;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-start;
	line-height:1.15;
	gap:.05rem;
	box-sizing:border-box;
	overflow:hidden;
	z-index:1
}
.rcal-slot-btn:hover{
	z-index:2
}
.rcal-slot-start{
	font-weight:600
}
.rcal-slot-end{
	font-size:.65rem;
	opacity:.7
}
.rcal-slot-btn.available{
	z-index:1;
	background:#fff;
	color:#33669d;
}
.rcal-slot-btn.available:hover{
	z-index:2;
	background:#33669d;
	color:#fff
}
.rcal-slot-btn:is(.booked, .closed, .past, .unknown){
	cursor:not-allowed;
	opacity:unset;
	filter:unset
}
.rcal-slot-btn.booked{
	background:repeating-linear-gradient(135deg, #eee, #eee 4px, #f7f7f7 4px, #f7f7f7 8px);
	border-color:#ddd;
	color:#bbb
}
.rcal-slot-btn.past, .rcal-slot-btn.closed{
	background:transparent;
	border-color:#eee;
	color:#ddd
}
.rcal-slot-btn:is(.closed, .past){
	background:transparent;
	border-color:transparent;
	color:transparent
}
.rcal-slot-btn:is(.available.selected, .selected){
	z-index:2;
	background:#afb519;
	border-color:#afb519;
	color:#2d2f06;
}
.rcal-slot-btn:disabled{
	pointer-events:none
}
.rcal-summary-text{
	flex:1
}
.rcal-reset-btn{
	flex-shrink:0;
	background:0;
	border:0
}
.rcal-field{
	margin-bottom:.9rem
}
.rcal-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:0.75rem;
}
.rcal-row div{
	margin:0;
}
.rcal-hp{
	position:absolute;
	left:-200rem;
	width:.0625rem;
	height:.0625rem;
	overflow:hidden;
	opacity:0;
	pointer-events:none;
}
.rcal-options{
	margin-bottom:1rem;
}
.rcal-options-consents{
	margin-bottom:0
}
.rcal-options-group{
	border:.0625rem solid #33669d;
	padding:0.75rem 0.9rem;
	border-radius:.5rem
}
fieldset fieldset legend{
	font-size:smaller;
	font-weight:lighter
}
.rcal-options-secondary{
	border-color:rgba(212, 197, 176, 0.6);
	background:rgba(245, 240, 232, 0.4);
}
.rcal-option-item{
	display:flex;
	align-items:center;
	gap:0.65rem;
	padding:0.45rem 0;
	cursor:pointer;
	border-bottom:.0625rem solid rgba(212, 197, 176, 0.5);
}
.rcal-option-item:last-child{
	border-bottom:none;
	padding-bottom:0;
}
.rcal-option-item:has(input:checked) .rcal-option-name{
	background:#fff;
	border-radius:.5rem;
	padding:.125rem .5rem;
	border:.0625rem solid currentColor;
	color:currentColor
}
.rcal-option-desc{
	font-size:small;
	line-height:0
}
.rcal-option-price{
	flex-shrink:0;
	font-size:0.78rem;
	color:#33669d;
	background:rgba(107, 124, 92, 0.08);
	border:.0625rem solid rgba(107, 124, 92, 0.2);
	padding:0.1rem 0.6rem;
	white-space:nowrap;
}
.rcal-cf-radio{
	border:none;
	padding:0;
	margin:0 0 0.9rem;
}
.rcal-price-box{
	background:#fff;
	border:.0625rem solid #33669d;
	border-radius:.5rem;
	margin-bottom:1rem;
	overflow:hidden;
}
.rcal-price-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0.75rem 1rem;
}
.rcal-price-label{
	font-size:0.72rem;
	text-transform:uppercase;
	letter-spacing:0.1em;
	color:#33669d;
	font-weight:500;
}
.rcal-price-total{
	font-size:1.5rem;
	font-weight:500;
	color:#fff;
	letter-spacing:0.02em;
}
.rcal-price-service{
	margin:0;
	padding:.75rem 1rem;
	font-size:.85rem;
	color:#33669d
}
.rcal-price-toggle{
	display:block;
	width:100%;
	background:none;
	border:none;
	border-top:.0625rem solid #33669d;
	padding:0.4rem;
	font-size:0.7rem;
	color:#33669d;
	cursor:pointer;
	letter-spacing:0.04em;
}
.rcal-price-toggle:hover{
	background:rgba(212, 197, 176, 0.2);
}
.rcal-price-breakdown{
	padding:0 1rem 0.6rem;
}
.rcal-price-error{
	margin:0;
	padding:.6rem 1rem;
	background:#33669d;
	color:inherit;
	font-size:.78rem;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:.6rem
}
.rcal-price-retry{
	flex-shrink:0;
	background:inherit;
	color:#33669d;
	border:none;
	border-radius:.25rem;
	padding:.25rem .6rem;
	font-size:.72rem;
	font-weight:600;
	cursor:pointer
}
.rcal-price-retry:hover{
	opacity:.85
}
.rcal-bd-row{
	display:flex;
	justify-content:space-between;
	align-items:center;
	font-size:0.78rem;
	color:#33669d;
	padding:0.2rem 0;
	border-bottom:.0625rem dashed rgba(212, 197, 176, 0.5);
}
.rcal-bd-row:last-of-type{
	border-bottom:none;
}
.rcal-bd-opt{
	color:#33669d;
}
.rcal-bd-total{
	display:flex;
	justify-content:space-between;
	font-size:0.84rem;
	font-weight:600;
	color:#fff;
	padding:0.4rem 0 0.2rem;
	border-top:.0625rem solid #33669d;
	margin-top:0.3rem;
}
.rcal-submit{
	width:100%;
	background:#33669d;
	color:#fff;
	border:none;
	padding:0.9rem 1.5rem;
	font-size:0.82rem;
	font-weight:500;
	letter-spacing:0.06em;
	text-transform:uppercase;
	cursor:pointer;
	margin-top:0.5rem;
}
.rcal-submit:disabled{
	opacity:.6;
	cursor:not-allowed;
	transform:none
}
.rcal-service-list{
	display:flex;
	flex-direction:column;
	gap:.6rem
}
.rcal-service-card{
	display:flex;
	align-items:center;
	background:0;
	gap:0.75rem;
	border:.0625rem solid #33669d;
	border-radius:.5rem;
	padding:0.85rem 1rem;
	cursor:pointer;
}
.rcal-service-card:hover{
	background:#fff
}
.rcal-service-card:has(.rcal-service-radio:checked){
	background:#fff
}
.rcal-service-info{
	flex:1;
	display:flex;
	flex-direction:column;
	gap:0.15rem;
}
.rcal-service-price{
	flex-shrink:0;
	font-size:0.74rem;
	font-weight:500;
	color:#33669d;
	background:rgba(107, 124, 92, 0.08);
	border:.0625rem solid rgba(107, 124, 92, 0.2);
	padding:0.2rem 0.6rem;
	white-space:nowrap;
}
.rcal-steps-nav{
	display:flex;
	list-style:none;
	margin:0;
	padding:0.9rem 2rem;
	gap:0;
	border-bottom:.0625rem solid #33669d;
}
.rcal-steps-nav li{
	flex:1;
	display:flex;
	align-items:center;
	gap:0.5rem;
	font-size:0.72rem;
	color:#33669d;
	letter-spacing:0.03em;
	position:relative;
}
.rcal-steps-nav li:not(:last-child)::after{
	content:"";
	flex:1;
	height:.0625rem;
	background:#33669d;
	margin:0 0.6rem;
}
.rcal-step-num{
	width:1.5rem;
	padding:.25rem .45rem;
	height:1.5rem;
	border-radius:50%;
	border:.0625rem solid #33669d
}
.rcal-steps-nav li[data-rcal-current] .rcal-step-num{
	background:#afb519;
	border-color:#afb519;
	color:#2d2f06;
}
.rcal-steps-nav li[data-rcal-current]{
	color:#2d2f06;
	font-weight:600;
}
.rcal-steps-nav li[data-rcal-done] .rcal-step-num{
	background:#33669d;
	border-color:#33669d;
	color:#fff;
}
.rcal-steps-nav li[data-rcal-done]{
	cursor:pointer
}
.rcal-steps-nav li[data-rcal-done]:hover{
	color:#33669d;
	& .rcal-step-num{
		color:#33669d;
		border-color:#33669d;
		background:#fff;
	}
}
.rcal-step-actions{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:0.75rem;
	margin-top:1.2rem;
}
.rcal-step-actions .rcal-submit{
	margin-top:0;
	width:auto;
	flex:1;
}
.rcal-payment-note{
	font-size:.8rem;
	color:inherit;
	margin:0 0 .8rem
}
.rcal-consents-note{
	font-size:.74rem;
	line-height:1.5;
	color:inherit;
	margin:.6rem 0 0
}
.rcal-mini-recap{
	background:#fff;
	border-radius:.5rem;
	padding:0.6rem 0.9rem;
	margin-bottom:1.2rem;
	color:#fff;
	font-size:smaller
}
.rcal-footer{
	padding:0.9rem 2.5rem;
	border-top:.0625rem solid #33669d;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:1rem;
	flex-wrap:wrap;
	font-size:0.7rem;
	color:#33669d;
	letter-spacing:0.03em;
}
.rcal-editor-placeholder{
	padding:0!important;
	min-height:unset!important;
}
.rcal-placeholder{
	display:flex;
	align-items:center;
	gap:1rem;
	padding:1.25rem 1.5rem;
	background:#f5f0e8;
	border:2px dashed #d4c5b0;
}
.rcal-placeholder-icon{
	font-size:2rem;
	line-height:1;
	flex-shrink:0;
}
.rcal-placeholder-label{
	flex:1;
}
.rcal-placeholder-label strong{
	display:block;
	font-size:1rem;
	color:#4a3728;
}
.rcal-placeholder-label small{
	font-size:0.8rem;
	color:#8b6e5a;
	font-style:italic;
}
.rcal-placeholder-badges{
	display:flex;
	gap:0.5rem;
	flex-shrink:0;
}
.rcal-placeholder-badge{
	font-size:0.68rem;
	padding:0.2rem 0.6rem;
	letter-spacing:0.04em;
}
.rcal-placeholder-badge[data-state="ok"]{
	background:rgba(107, 124, 92, 0.12);
	border:.0625rem solid rgba(107, 124, 92, 0.3);
	color:#6b7c5c;
}
.rcal-placeholder-badge[data-state="off"]{
	background:rgba(184, 92, 56, 0.08);
	border:.0625rem solid rgba(184, 92, 56, 0.2);
	color:#b85c38;
}
.rcal-cgv-field{
	margin-bottom:1rem;
}
.rcal-consent-field{
	margin-bottom:0.6rem;
}
.rcal-cgv-label{
	display:flex;
	align-items:flex-start;
	gap:0.55rem;
	font-size:0.83rem;
	color:#33669d;
	cursor:pointer;
	line-height:1.5;
	text-transform:none;
	letter-spacing:0;
	font-weight:400;
}
.rcal-cgv-label a{
	color:#33669d;
	text-decoration:underline;
}
.rcal-cgv-label a:hover{
	color:#fff;
}
[hidden]{
	display:none
}
dialog{
	font-size:80%;
	font-weight:700;
	color:#fff;
	background:#33669d;
	border:0;
	border-radius:.425rem;
	box-shadow:none;
	transform:translateY(-1.5rem);
	&::backdrop{
		background:#63b6bd;
		backdrop-filter:blur(.15rem);
		pointer-events:none;
	}
	&[popover]{
		color:#fff;
		background:#33669d;
	}
	&[role=alertdialog]{
		color:#fff;
		background:#33669d;
	}
	&[role=alertdialog]::backdrop{
		background:#33669d;
		backdrop-filter:blur(.5rem);
	}
	&[aria-live=polite]::backdrop{
		background:0;
		backdrop-filter:none;
	}
	&, &::backdrop{
		opacity:0;
	}
	&[open], &:popover-open{
		opacity:1;
		transform:translateY(0);
		@starting-style{
			opacity:0;
			transform:translateY(1.5rem);
		}
	}
	&[open]::backdrop{
		opacity:.25;
		@starting-style{
			opacity:0;
		}
	}
}
:is(.rcal-service-desc, .rcal-service-info, .rcal-nav-btn, .rcal-step-back, .rcal-step-next) svg{
	width:24px;
	height:24px
}
@media (max-width:768px){
	.rcal-form-section, .rcal-calendar-section{
		padding:2rem .5rem
	}
	.rcal-steps-nav{
		padding:.75rem 1rem
	}
	.rcal-step-label{
		display:none
	}
	.rcal-week-table :is(th, td):first-of-type{
		width:1.5rem
	}
	.rcal-week-table :is(th, td):not(:first-of-type){
		width:4rem
	}
	.rcal-week-table tbody th{
		writing-mode:sideways-rl;
		text-orientation:mixed
	}
	.rcal-week-title{
		font-size:small
	}
	:is(.rcal-service-desc, .rcal-service-info, .rcal-nav-btn, .rcal-step-back, .rcal-step-next){
		font-size:smaller!important
	}
	:is(.rcal-service-desc, .rcal-service-info, .rcal-nav-btn, .rcal-step-back, .rcal-step-next) svg{
		width:18px;
		height:18px
	}
}
@media (max-width:480px){
	.rcal-header{
		padding:1.5rem
	}
	.rcal-day{
		width:30px;
		height:30px;
		font-size:.76rem
	}
	.rcal-footer{
		padding:.9rem 1.5rem
	}
	.rcal-placeholder{
		flex-wrap:wrap
	}
	.rcal-placeholder-badges{
		width:100%
	}
	.rcal-form-section, .rcal-calendar-section{
		padding:1.5rem
	}
	.rcal-row{
		grid-template-columns:1fr
	}
	.rcal-price-box{
		margin:0 1.5rem 1.5rem
	}
}
.rcal-wrapper :is(button, a, input, select, textarea, summary):focus-visible,.rcal-day:focus-visible{
	outline:.125rem solid #33669d;
	outline-offset:.125rem
}
@media (pointer:coarse){
	.rcal-nav-btn{
		min-width:44px;
		min-height:44px
	}
}
@media (prefers-reduced-motion:reduce){
	.rcal-wrapper *{
		animation-duration:.01ms!important;
		animation-iteration-count:1!important;
		transition-duration:.01ms!important
	}
}
.rcal-verify-note{
	margin:0 0 .75rem;
	font-size:.8125rem;
	line-height:1.5;
	color:#33669d
}
