/* AIRIS Villa Availability - interface styles. Scoped under .aval */
.aval{--ink:#1b1810;--ink-2:#5e5a4e;--ink-3:#8f8a7b;--hair:rgba(27,24,16,.14);--paper:#f3f1ea;--green:#32462e;--tint:#d6dfcf;--tint-2:#e6ebe2;--gold:#b4853d;--serif:'Libre Caslon Display','Libre Caslon Text',Georgia,'Times New Roman',serif;--sans:'Manrope','Helvetica Neue',Arial,sans-serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--fs-label:.6875rem;--fs-body:.9375rem;--fs-lead:1.375rem;--fs-title:1.75rem;--fs-price:clamp(2.75rem,2.1rem + 2.4vw,3.75rem)}
@supports (color:oklch(0 0 0)){.aval{--ink:oklch(.2 .015 90);--ink-2:oklch(.43 .02 90);--ink-3:oklch(.62 .02 90);--hair:oklch(.2 .015 90 / .14);--tint:oklch(.9 .035 135);--tint-2:oklch(.935 .022 135)}}

.aval{box-sizing:border-box;position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s7);max-width:1180px;margin:0 auto;min-height:32rem;font-family:var(--sans);font-size:var(--fs-body);line-height:1.5;color:var(--ink);text-align:left;-webkit-font-smoothing:antialiased}
.aval *,.aval *::before,.aval *::after{box-sizing:border-box}
@media (min-width:960px){.aval{grid-template-columns:minmax(0,1fr) 22.5rem;gap:clamp(48px,6vw,96px);align-items:start}}
.aval.is-failed{grid-template-columns:minmax(0,34rem);justify-content:center;min-height:0}
.aval.is-failed .aval__cal{display:none}
.aval p,.aval ul,.aval h3{margin:0;padding:0}
.aval ul{list-style:none}
.aval .aval__sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Calendar */
.aval .aval__cal{min-width:0;container-type:inline-size}
.aval .aval__months{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s7)}
.aval[data-months='2'] .aval__months{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,64px)}
.aval .aval__mhead{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:var(--s3)}
.aval .aval__mtitle{margin:0;font:400 var(--fs-title)/1.1 var(--serif);letter-spacing:-.01em;text-align:center;color:var(--ink)}
.aval .aval__nav-sp{display:block;width:44px;height:44px}
.aval .aval__nav{all:unset;box-sizing:border-box;display:grid;place-items:center;width:44px;height:44px;cursor:pointer;color:var(--ink)!important;background:transparent!important;border:1px solid var(--hair)!important;transition:background-color .2s,color .2s,border-color .2s}
.aval .aval__nav:hover:not(:disabled){background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important}
.aval .aval__nav:disabled{opacity:.3;cursor:default}
.aval .aval__nav:focus-visible,.aval .aval__day:focus-visible,.aval .aval__cta:focus-visible,.aval .aval__link:focus-visible,.aval .aval__alt-cta:focus-visible{outline:2px solid var(--ink)!important;outline-offset:2px}
.aval .aval__grid{width:100%;border-collapse:collapse;border-spacing:0;table-layout:fixed;border:0;margin:0}
.aval .aval__grid th{padding:var(--s3) 0!important;border:0!important;background:none!important;font:600 var(--fs-label)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-align:center}
.aval .aval__grid td{padding:0!important;border:0!important;background:none!important;text-align:center;vertical-align:middle;position:relative;height:auto}
.aval .aval__grid tr{background:none!important}

/* Days: colour lives on .aval__num so theme button states cannot interfere */
.aval .aval__day{all:unset;box-sizing:border-box;position:relative;display:grid;place-items:center;width:100%;height:48px;cursor:pointer;background:transparent!important;border:0!important;box-shadow:none!important;text-decoration:none!important;font:500 var(--fs-body)/1 var(--sans);font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent}
@container (min-width:640px){.aval .aval__day{height:56px}}
.aval .aval__num{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;color:var(--ink);transition:background-color .15s,color .15s,box-shadow .15s}
.aval .aval__day:not(.is-disabled):hover .aval__num{box-shadow:inset 0 0 0 1px var(--ink)}
.aval .aval__day::before{content:'';position:absolute;top:50%;left:0;right:0;height:40px;margin-top:-20px;z-index:0}
.aval .aval__day.is-in::before{background:var(--tint)}
.aval .aval__day.is-pv::before{background:var(--tint-2)}
.aval .aval__day.is-ci.has-band::before{background:var(--tint);left:50%}
.aval .aval__day.is-ci.has-band.band-pv::before{background:var(--tint-2)}
.aval .aval__day.is-co::before{background:var(--tint);right:50%}
.aval .aval__day.is-pv-end::before{background:var(--tint-2);right:50%}
.aval .aval__day.is-ci .aval__num,.aval .aval__day.is-co .aval__num{background:var(--green);color:var(--paper);font-weight:600;box-shadow:none!important}
.aval .aval__day.is-pv-end .aval__num{box-shadow:inset 0 0 0 1px var(--green)!important}
.aval .aval__day.is-unavail{cursor:not-allowed}
.aval .aval__day.is-unavail .aval__num{color:var(--ink-3)}
.aval .aval__day.is-unavail::after{content:'';position:absolute;top:50%;left:50%;width:30px;height:30px;margin:-15px 0 0 -15px;z-index:2;pointer-events:none;background:linear-gradient(to top right,transparent calc(50% - .5px),var(--ink-3) calc(50% - .5px),var(--ink-3) calc(50% + .5px),transparent calc(50% + .5px))}
.aval .aval__day.is-closed{cursor:default}
.aval .aval__day.is-closed .aval__num{color:var(--ink-3);opacity:.55}
.aval .aval__day.is-short{cursor:not-allowed}
.aval .aval__day.is-short .aval__num{color:var(--ink-3)}
.aval .aval__day.is-today .aval__num::after{content:'';position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--gold)}
.aval .aval__day.is-ci.is-today .aval__num::after,.aval .aval__day.is-co.is-today .aval__num::after{background:var(--paper)}

/* Loading skeleton */
.aval.is-loading .aval__day{pointer-events:none}
.aval.is-loading .aval__num{width:26px;height:26px;color:transparent;background:var(--hair);animation:aval-pulse 1.4s ease-in-out infinite}
@keyframes aval-pulse{0%,100%{opacity:.35}50%{opacity:.8}}

/* Legend and footnote */
.aval .aval__legend{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);margin:var(--s5) 0 0;padding:var(--s4) 0 0;border-top:1px solid var(--hair);font:600 var(--fs-label)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.aval .aval__legend li{display:flex;align-items:center;gap:var(--s2);margin:0}
.aval .aval__sw{position:relative;display:block;width:16px;height:16px}
.aval .aval__sw--free{box-shadow:inset 0 0 0 1px var(--ink-2)}
.aval .aval__sw--booked::after{content:'';position:absolute;inset:0;background:linear-gradient(to top right,transparent calc(50% - .5px),var(--ink-3) calc(50% - .5px),var(--ink-3) calc(50% + .5px),transparent calc(50% + .5px))}
.aval .aval__sw--sel{background:var(--green)}
.aval .aval__foot{margin:var(--s4) 0 0;max-width:46ch;color:var(--ink-2)}

/* Summary panel */
.aval .aval__panel{min-width:0;padding-top:var(--s5);border-top:1px solid var(--ink)}
@media (min-width:960px){.aval .aval__panel{position:sticky;top:96px;min-height:30rem}}
.aval .aval__swap{animation:aval-in .32s cubic-bezier(.22,1,.36,1) both}
@keyframes aval-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.aval .aval__eyebrow{margin:0 0 var(--s3);font:600 var(--fs-label)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.aval .aval__lead{margin:0;font:400 var(--fs-lead)/1.25 var(--serif);letter-spacing:-.01em;color:var(--ink)}
.aval .aval__lead.aval__ok{display:flex;align-items:center;gap:var(--s2);color:var(--green)}
.aval .aval__ic{flex:none}
.aval .aval__dates{display:grid;grid-template-columns:1fr 1fr;margin:var(--s5) 0 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.aval .aval__field{min-width:0;padding:var(--s3) 0}
.aval .aval__field+.aval__field{padding-left:var(--s4);border-left:1px solid var(--hair)}
.aval .aval__flabel{display:block;margin:0 0 var(--s1);font:600 var(--fs-label)/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.aval .aval__fvalue{display:block;font:600 var(--fs-body)/1.3 var(--sans);color:var(--ink)}
.aval .aval__fvalue.is-empty{font-weight:500;color:var(--ink-3)}
.aval .aval__price{margin:var(--s5) 0}
.aval .aval__plabel{margin:0 0 var(--s2);font:600 var(--fs-label)/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.aval .aval__total{margin:0;font:400 var(--fs-price)/1 var(--serif);letter-spacing:-.02em;font-variant-numeric:lining-nums tabular-nums;color:var(--ink)}
.aval .aval__psub{margin:var(--s2) 0 0;color:var(--ink-2)}
.aval .aval__tiers{margin:var(--s4) 0 0}
.aval .aval__tiers li{display:flex;justify-content:space-between;gap:var(--s4);margin:0;padding:var(--s2) 0;border-top:1px solid var(--hair);color:var(--ink-2);font-variant-numeric:tabular-nums}
.aval .aval__tiers li:last-child{border-bottom:1px solid var(--hair)}
.aval .aval__hint{margin:var(--s3) 0 0;color:var(--ink-2)}
.aval .aval__note{margin:var(--s4) 0 0;padding:var(--s3) var(--s4);background:var(--tint-2);color:var(--ink)}
.aval .aval__spacer{height:var(--s5)}

/* Actions */
.aval .aval__cta,.aval .aval__alt-cta{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--s3);width:100%;min-height:56px;margin:var(--s5) 0 0;padding:0 var(--s5)!important;background:var(--green)!important;color:var(--paper)!important;border:0!important;border-radius:0!important;box-shadow:none!important;font:600 12px/1 var(--sans)!important;letter-spacing:.22em;text-transform:uppercase;text-decoration:none!important;text-align:center;cursor:pointer;transition:background-color .2s}
.aval .aval__cta:hover,.aval .aval__alt-cta:hover{background:var(--ink)!important;color:var(--paper)!important}
.aval .aval__cta[aria-disabled='true']{background:var(--hair)!important;color:var(--ink-3)!important;cursor:not-allowed}
.aval .aval__fine{margin:var(--s3) 0 0;color:var(--ink-2)}
.aval .aval__alt{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);margin:var(--s5) 0 0}
.aval .aval__link{all:unset;box-sizing:border-box;display:inline;padding:0!important;margin:0;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--ink)!important;font:600 var(--fs-body)/1.4 var(--sans)!important;text-decoration:underline!important;text-decoration-thickness:1px!important;text-underline-offset:.25em;cursor:pointer}
.aval .aval__link:hover{color:var(--green)!important}

@media (prefers-reduced-motion:reduce){.aval .aval__swap,.aval.is-loading .aval__num{animation:none}.aval *{transition:none!important}}
#availability,#contact{scroll-margin-top:96px}