.villr-header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin-bottom: 8px

}



.villr-title {

  font-weight: 600

}

.villr-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.villr-month-select {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  padding: 4px 8px;
  min-width: 130px;
}
.villr-month-select-wrap {position: relative;display:inline-block;}

.villr-month-select-wrap:after{
	position:absolute;
	right:5px;
	top:50%;
	transform:translateY(-50%) rotate(-90deg);
	display:inline-block;
	width:10px;height:10px;
	line-height:10px;
	content:"";
	background-image: url("../img/chevron-left.svg");
	background-repeat: no-repeat;
	background-position:center center;
	background-size:10px 10px;
	
}

.villr-year-label {
  font-weight: 600;
  min-width: 3ch;

}



.villr-weekdays,

.villr-calendar-grid {

  display: grid;

  grid-template-columns: repeat(7, 1fr);

  gap: 4px

}



.villr-wd {

  font-size: 12px;

  text-align: center;

  color: #7a7a7a;

}



.villr-day {

  background: #fff;

  border: 1px solid #e5e7eb;

  border-radius: 8px;

  min-height: 56px;

  display: flex;

  align-items: flex-start;

  justify-content: flex-start;

  padding: 6px;

  cursor: pointer;

  position: relative;

  flex-direction: column

}



.villr-day.disabled {

  opacity: .55;

  cursor: not-allowed;
	
	 background: repeating-linear-gradient(
        45deg,
        rgba(0,0,0,0.08) 0px,
        rgba(0,0,0,0.08) 4px,
        transparent 4px,
        transparent 8px
    );

}



.villr-day .num {

  font-weight: 600

}



.villr-loading {

  opacity: .6;

  pointer-events: none;
	
	position:relative;

}


.villr-loading:after{
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	transform: translate(-50%, -50%);
	width: 40px;
  aspect-ratio: 4;
  --_g: no-repeat radial-gradient(circle closest-side,#999 90%,#9990);
  background: 
    var(--_g) 0%   50%,
    var(--_g) 50%  50%,
    var(--_g) 100% 50%;
  background-size: calc(100%/3) 100%;
  animation: l7 1s infinite linear;
}
.villr-spinner:after {
	content:"";
	position:absolute;
	transform: translate(-50%, -50%);
  width: 40px;
  aspect-ratio: 4;
  --_g: no-repeat radial-gradient(circle closest-side,#999 90%,#9990);
  background: 
    var(--_g) 0%   50%,
    var(--_g) 50%  50%,
    var(--_g) 100% 50%;
  background-size: calc(100%/3) 100%;
  animation: l7 1s infinite linear;
}
@keyframes l7 {
    33%{background-size:calc(100%/3) 0%  ,calc(100%/3) 100%,calc(100%/3) 100%}
    50%{background-size:calc(100%/3) 100%,calc(100%/3) 0%  ,calc(100%/3) 100%}
    66%{background-size:calc(100%/3) 100%,calc(100%/3) 100%,calc(100%/3) 0%  }
}

.villr-nav {

  border: 1px solid #e5e7eb;

  background: #fff;

  border-radius: 8px;

  padding: 6px 10px;

  cursor: pointer

}



/* Modal */

.villr-modal {

  position: fixed;

  inset: 0;

  background:rgba(83,88,90,0.8);

  display: none;

  align-items: center;

  justify-content: center;

  z-index: 9999

}



.villr-modal[hidden] {

  display: none !important

}



.villr-modal:not([hidden]) {

  display: flex

}

#villr-global-lock {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  background: rgba(255, 255, 255, .82);
  z-index: 2147483000;
  pointer-events: all;
  cursor: wait;
}

#villr-global-lock.is-active {
  display: flex;
}

#villr-global-lock .villr-global-lock__spinner {
  position: relative;
  width: 56px;
  aspect-ratio: 4;
  --_g: no-repeat radial-gradient(circle closest-side, #88b4a5 90%, #88b4a500);
  background:
    var(--_g) 0% 50%,
    var(--_g) 50% 50%,
    var(--_g) 100% 50%;
  background-size: calc(100%/3) 100%;
  animation: l7 1s infinite linear;
}

#villr-global-lock .villr-global-lock__label {
  color: #1b251f;
  font-weight: 600;
  font-size: 14px;
}

body.villr-is-busy {
  cursor: wait;
}



.villr-modal__dialog {

  background: #fff;

  max-width: 780px;

  width: 92%;
	
  box-shadow: 0 10px 40px rgba(0, 0, 0, .2);
	position:relative;
}



.villr-modal__header {

  display: flex;

  align-items: center;

  justify-content: space-between;

  padding: 10px 18px;
	
  height:50px;

  border-bottom: 1px solid #eee

}

.villr-modal__header h3 {font-size:22px;color:#88b4a5;margin:0 !important;line-height:30px;}

.villr-modal__content {

  padding: 0 18px 0 18px;
margin: 15px 0;
	max-height:calc(95vh - 80px) !important;
	overflow-y: auto;
	overflow-x:hidden;
}

.villr-modal__body {
  position: relative;
}

.villr-step-preload {
  position: absolute;
  inset: 0;
  z-index: 30;
  background: rgba(255, 255, 255, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
}

.villr-btn-loading {
  opacity: .8;
  pointer-events: none;
}

.villr-slot-arrival-note {
  display: inline-block;
  margin-top: 2px;
  font-size: 0.92em;
  font-style: italic;
  opacity: 0.9;
}



.villr-modal__close {

  

  background: transparent;
	box-sizing:border-box;
  font-size: 26px;
	font-family: Sans-serif !important;
  cursor: pointer;
  text-align:center;
  border: 2px solid #88b4a5 !important;
  line-height:26px !important;
	width:30px !important;
	height:30px !important;
	padding:0 !important;
}



.villr-modal__footer {

  display: flex;

  gap: 10px;

  justify-content: flex-end;

  margin-top: 10px;
	margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px;border-top:1px solid #eee;padding-top:5px;

}



.villr-btn {


  padding: 10px 14px;

  border: 1px solid #e5e7eb;

  background: #fff;

  cursor: pointer;
	
	line-height:1.1;

}



.villr-btn-primary {

  background: #88b4a5;

  color: #fff !important;

  border-color: #88b4a5;

}
.villr-btn-primary:hover,.villr-btn-primary:focus {
	color: #fff !important;
	background-color: #1b251f !important;
	border-color:#1b251f !important;
}



.villr-btn-muted {

  color: #374151;

}



.villr-spinner {

  padding: 24px;

  text-align: center

}



/* Dots */

.villr-dots {

  display: flex;

  gap: 4px;

  width: calc(100% + 12px);
  margin: auto -6px -6px -6px;

  padding-top: 3px;

  flex-wrap: wrap;
	flex-direction: row;
}



.villr-dot {

flex-grow: 1;
	
  width: 14px;

  height: 8px;

  display: inline-block;

}



.villr-dot-more {

  font-size: 10px;

  line-height: 1;

  opacity: .75;

  padding-left: 2px

}



/* Event list */

.villr-event-list {

  list-style: none;

  padding: 0;

  margin: 8px 0 0;

  display: flex;

  flex-direction: column;

  gap: 8px

}



.villr-event-card {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 12px;

  border: 1px solid #e5e7eb;

  border-radius: 10px;

  padding: 10px 12px 10px 30px;

  background: #fff;
	
	position:relative;

}



.villr-event-info {

  display: flex;

  align-items: center;

  gap: 10px

}



.villr-event-dot {

  width: 9px;

  min-height: 24px;

  border-radius: 0;

  display: inline-block;

  border: none;

}

.villr-event-card .villr-event-info .villr-event-dot {position:absolute;top:-1px;bottom:-1px;left:0;}


.villr-event-text {

  display: flex;

  flex-direction: column

}



.villr-event-title {

  font-weight: 600

}



.villr-event-summary {

  font-size: 12px;

  color: #7a7a7a;

  margin-top: 2px

}



.villr-event-cta .villr-btn {

  white-space: nowrap

}



/* Booking UI */

.villr-slot-line {

  display: flex;

  align-items: center;

  justify-content: space-between;

  margin: 8px 0

}



.villr-table {

  width: 100%;

  border-collapse: collapse;

  margin-top: 6px

}



.villr-table th,

.villr-table td {

  border-bottom: 1px solid #eee;

  padding: 8px

}

.villr-table td small{font-size:1.2em !important;opacity:1 !important;color:#88b4a5;font-weight:600;}

.villr-grid2 {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 8px;

  margin-top: 8px

}



.villr-spinner-qty {

  display: flex;

  align-items: center;

  gap: 8px

}



.villr-spinner-qty .qty {

  width: 56px;

  text-align: center

}



.villr-spinner-qty .minus,

.villr-spinner-qty .plus {

  border: 1px solid #e5e7eb;

  background: #fff;

  border-radius: 8px;

  width: 34px;

  height: 34px;

  line-height: 32px;

  text-align: center;

  cursor: pointer;
	
  padding: 0 !important;

}

@media (max-width:767px){
	.villr-spinner-qty .minus, .villr-spinner-qty .plus {width:24px;height:43;}
	.villr-spinner-qty .minus{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-1px;}
	.villr-spinner-qty .plus {border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px;}
	.villr-spinner-qty .qty{height:43;}
	.villr-modal__content {padding: 0 8px 0 8px;}
	.villr-modal__footer button{font-size:0.9rem;}
	.villr-table th, .villr-table td{padding:5;line-height:1.4;}
	.villr-spinner-qty{gap:0;}
}

.ta-r {

  text-align: right;

}



.villr-inline-error {

  display: block;

  margin: 12px 0 16px;

  padding: 10px 12px;

  border: 1px solid #e1a4a4;

  background: #ffecec;

  color: #b00020;

  /* rosso leggibile */

  border-radius: 6px;

  line-height: 1.4;

}



.villr-inline-error strong {

  color: #9b0000;

}



.villr-date-list .villr-btn {

  border-radius: .6rem;

  border: 1px solid rgba(0, 0, 0, .08);

  min-height: 88px;

  height: 100%;

  justify-content: center;

}



.villr-date-list li {

  display: flex;

}



.villr-date-list .villr-btn:hover {

  transform: translateY(-1px);

}

.villr-calendar{border:1px solid #88b4a5;padding:4px;min-height:380px;}
.villr-calendar button.villr-day{border:none !important;}
.villr-calendar .villr-day.empty{cursor:not-allowed;background-color:#f6f6f6;}

button.villr-nav {
	border:none !important;
	background-color:transparent !important;
	color:rgba(255,255,255,0) !important;
	position:relative;
	box-shadow: none !important;
}
button.villr-nav:before {
	position:absolute;
    display:block;
	top:0;
	bottom:0;
	left:0;
	right:0;
    content:"";
	background-position:center center;
	background-size:20px 20px;
	background-repeat:no-repeat;
	opacity:0.7;
}
button.villr-nav:disabled {opacity:0.3}
button.villr-nav:hover:before,button.villr-nav:focus:before {opacity:1}
button.villr-nav.villr-next:before { background-image: url("../img/chevron-right.svg");}
button.villr-nav.villr-prev:before { background-image: url("../img/chevron-left.svg");}

.villr-modal__dialog {border-radius:0 !important;}

.villr-btn.villr-cancel {font-size:14px;padding:7px 14px;}

.villr-summary-title{color:#1b251f;font-size:1.2em;font-weight:600;}

body.modal-open{
    overflow:hidden;
    width: 100%;
	height:100%;
}
body .wrap-villr-modal-open {z-index:99999 !important;}
.villr-check-cart {
    display:inline-block;
    padding:.4rem .75rem;
    background:#88b4a5;
    color:#fff !important;
    border-radius:3rem;
    text-decoration:none;
    font-weight:600;
	line-height:1.1;
	border:none !important;
	font-size: 1rem;;
}
.villr-check-cart:hover {
    opacity:0.8;
}
