/* Villa Okeanos - availability panel. Extracted from the static v3 stylesheet. Every rule is scoped under .apanel: it keeps these styles from leaking into Elementor, and raises specificity above the theme reset that neutralises button borders and radii. Design tokens are redeclared because the theme defines none of them. */
.apanel{
  --bg:        #f4f5f2;
  --cream:     #e9ece9;
  --dark:      #123536;
  --body:      #5e5f5e;
  --teal:      #10bab5;
  --teal-ink:  #097370;
  --line:      #dcdfdb;
  --display:   "Cormorant", Georgia, serif;
  --sans:      "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ease:      cubic-bezier(.22,.61,.36,1);
  --sb:        rgba(18,53,54,.22);
  --sb-hover:  rgba(18,53,54,.45);
}
@keyframes aFade{ from{ opacity:0; } }
@keyframes aRise{ from{ opacity:0; transform:translate(-50%,-46%) scale(.97); } }
.apanel .eyebrow{ display:block; font-family:var(--sans); font-size:.8rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; margin-bottom:1.25rem; }
.apanel .on-dark .eyebrow{ color:var(--teal); }
.apanel .page-head .eyebrow{ margin-bottom:1rem; }
.apanel{ position:fixed; inset:0; z-index:100; display:none; }
.apanel.open{ display:block; }
.apanel .apanel__scrim{
  position:absolute; inset:0; background:rgba(9,30,32,.62);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  animation:aFade .35s var(--ease);
}
.apanel .apanel__card{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(1120px, calc(100vw - 32px));
  max-height:min(920px, calc(100vh - 32px));
  max-height:min(920px, calc(100dvh - 32px));
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--bg); border-radius:22px;
  box-shadow:0 40px 120px -30px rgba(6,28,30,.6);
  animation:aRise .45s var(--ease);
}
.apanel .apanel__head{
  flex:none;
  display:flex; align-items:flex-start; justify-content:space-between; gap:2rem;
  padding:clamp(20px,2.6vw,30px) clamp(22px,3vw,38px) 0;
}
.apanel .apanel__title{ font-family:var(--display); font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem); color:var(--dark); margin-top:.3rem; }
.apanel .apanel__sub{ margin-top:.4rem; color:var(--body); font-size:16px; }
.apanel .apanel__x{
  flex:none; width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--dark); cursor:pointer; display:grid; place-items:center;
  transition:background .3s ease, color .3s ease;
}
.apanel .apanel__x:hover{ background:var(--dark); color:#fff; }
.apanel .apanel__x svg{ width:18px; height:18px; }
.apanel .apanel__body{
  flex:1 1 auto; min-height:0; overflow:hidden;
  display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(20px,3vw,40px);
  padding:clamp(18px,2.4vw,28px) clamp(22px,3vw,38px) clamp(18px,2.4vw,26px);
}
.apanel .apanel__cal, .apanel .apanel__side{
  min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.apanel .apanel__cal{ padding-right:6px; }
.apanel .apanel__side{ padding-right:4px; }
.apanel .apanel__foot{
  flex:none;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
  padding:16px clamp(22px,3vw,38px);
  border-top:1px solid var(--line);
  background:var(--bg);
}
.apanel .foot__l{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.apanel .foot__l span{ font-family:var(--sans); font-size:12.5px; color:var(--body); }
.apanel .foot__l b{ font-family:var(--display); font-size:1.5rem; font-weight:600; color:var(--dark); }
.apanel .foot__r{ display:flex; align-items:center; gap:14px; }
.apanel .foot__r .aside__fine{ max-width:230px; text-align:left; margin:0; }
.apanel .apanel__foot .aside__go{ width:auto; white-space:nowrap; padding:15px 34px; }
.apanel .cal__nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.apanel .cal__label{ font-family:var(--sans); font-size:14px; font-weight:500; color:var(--body); }
.apanel .cal__arrow{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:#fff;
  color:var(--dark); cursor:pointer; display:grid; place-items:center; transition:all .3s ease;
}
.apanel .cal__arrow:hover{ background:var(--dark); color:#fff; border-color:var(--dark); }
.apanel .cal__arrow svg{ width:16px; height:16px; }
.apanel .cal__months{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(16px,2.4vw,32px); }
.apanel .cal__mh{ font-family:var(--display); font-size:1.15rem; color:var(--dark); text-align:center; margin-bottom:.7rem; }
.apanel .cal__dow{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; margin-bottom:6px; }
.apanel .cal__dow span{
  text-align:center; font-family:var(--sans); font-size:.64rem; font-weight:600;
  letter-spacing:.1em; color:var(--body); opacity:.65;
}
.apanel .cal__grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; }
.apanel .cal__pad{ aspect-ratio:1; }
.apanel .cal__day{
  position:relative; aspect-ratio:1; min-width:0; overflow:hidden;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1px;
  border:1px solid transparent; border-radius:10px; background:#fff; cursor:pointer;
  font-family:var(--sans); transition:background .18s ease, color .18s ease, border-color .18s ease;
}
.apanel .cal__day b{ font-size:14px; font-weight:500; color:var(--dark); line-height:1; }
.apanel .cal__day i{ font-style:normal; font-size:9.5px; line-height:1; letter-spacing:-.01em;
  color:var(--body); opacity:.85; font-variant-numeric:tabular-nums; white-space:nowrap; }
.apanel .cal__day i.q{ opacity:.45; }
.apanel .cal__day:hover:not(.is-off){ border-color:var(--dark); }
.apanel .cal__day:focus-visible{ outline:2px solid var(--teal); outline-offset:1px; }
.apanel .cal__day.tone-low{ background:rgba(94,95,94,.07); }
.apanel .cal__day.tone-carnival{ background:rgba(16,186,181,.13); }
.apanel .cal__day.tone-high{ background:rgba(18,53,54,.10); }
.apanel .cal__day.tone-festive{ background:rgba(29,74,75,.22); }
.apanel .cal__day.is-onreq{ background:repeating-linear-gradient(135deg,#fff 0 5px,#f4f5f2 5px 10px); }
.apanel .cal__day.is-off{ cursor:not-allowed; box-shadow:none; }
.apanel .cal__day.is-past{ background:transparent; border-color:transparent; }
.apanel .cal__day.is-past b{ color:var(--body); opacity:.3; }
.apanel .cal__day.is-taken{
  background:repeating-linear-gradient(135deg, #f0eeec 0 6px, #e7e4e1 6px 12px);
  border-color:transparent;
}
.apanel .cal__day.is-taken b{ color:var(--body); opacity:.55; text-decoration:line-through; }
.apanel .cal__day.is-taken i.bk{
  font-size:8px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--body); opacity:.6;
}
.apanel .cal__day.is-beyond{ background:transparent; border-color:transparent; }
.apanel .cal__day.is-beyond b{ color:var(--body); opacity:.22; }
.apanel .cal__day.is-pre{ background:rgba(16,186,181,.13); }
.apanel .cal__day.is-pre b{ color:var(--dark); }
.apanel .cal__day.is-mid{ background:rgba(16,186,181,.16); border-radius:0; }
.apanel .cal__day.is-ci, .apanel .cal__day.is-co{ background:var(--dark); border-color:var(--dark); }
.apanel .cal__day.is-ci b, .apanel .cal__day.is-co b, .apanel .cal__day.is-ci i, .apanel .cal__day.is-co i{ color:#fff; opacity:1; }
.apanel .cal__day.is-ci{ border-radius:10px 0 0 10px; }
.apanel .cal__day.is-co{ border-radius:0 10px 10px 0; }
.apanel .cal__legend{ display:flex; flex-wrap:wrap; gap:14px; margin-top:1.2rem; list-style:none; }
.apanel .cal__legend li{ display:flex; align-items:center; gap:7px; font-family:var(--sans); font-size:12.5px; color:var(--body); }
.apanel .cal__legend i{ width:11px; height:11px; border-radius:50%; flex:none; }
.apanel i.tone-low{ background:#5e5f5e; }
.apanel i.tone-carnival{ background:#10bab5; }
.apanel i.tone-high{ background:#123536; }
.apanel i.tone-festive{ background:#1d4a4b; }
.apanel .apanel__side > *{ margin-bottom:1rem; }
.apanel .apanel__side > *:last-child{ margin-bottom:0; }
.apanel .aside__guests{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; border:1px solid var(--line); border-radius:14px; background:#fff;
  font-family:var(--sans); font-size:15px; color:var(--dark);
}
.apanel .stepper{ display:flex; align-items:center; gap:6px; }
.apanel .stepper button{
  width:32px; height:32px; border-radius:50%; border:1px solid var(--line); background:#fff;
  color:var(--dark); font-size:16px; cursor:pointer; transition:all .25s ease;
}
.apanel .stepper button:hover{ background:var(--dark); color:#fff; border-color:var(--dark); }
.apanel .stepper output{ min-width:26px; text-align:center; font-size:15px; font-weight:500; color:var(--dark); }
.apanel .aside__sum{ padding:20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.apanel .sum__hint{ font-size:15px; color:var(--body); line-height:1.5; }
.apanel .sum__hint b{ color:var(--dark); }
.apanel .sum__no{ font-size:15px; color:#b4482f; line-height:1.5; }
.apanel .sum__dates{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.apanel .sum__dates b{ font-family:var(--display); font-size:1.3rem; color:var(--dark); }
.apanel .sum__dates span{ color:var(--body); }
.apanel .sum__dates em{ flex-basis:100%; font-style:normal; font-size:13px; color:var(--body); }
.apanel .sum__rows{ margin-top:14px; }
.apanel .sum__rows > div{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:7px 0; }
.apanel .sum__rows dt{ font-size:14px; color:var(--body); }
.apanel .sum__rows dd{ font-size:14px; color:var(--dark); font-variant-numeric:tabular-nums; }
.apanel .sum__total{ margin-top:8px; padding-top:12px !important; border-top:1px solid var(--line); }
.apanel .sum__total dt{ font-size:16px !important; color:var(--dark) !important; font-weight:500; }
.apanel .sum__total dd{ font-family:var(--display); font-size:1.7rem !important; color:var(--dark) !important; }
.apanel .sum__flag{ margin-top:10px; font-size:13px; line-height:1.5; color:var(--body); }
.apanel .aside__go{ width:100%; justify-content:center; text-align:center; }
.apanel .btn--solid{ background:var(--teal-ink); color:#fff; border-color:var(--teal-ink); }
.apanel .btn--solid:hover{ background:var(--dark); border-color:var(--dark); color:#fff; }
.apanel .aside__go.is-idle{ opacity:.45; pointer-events:none; }
.apanel .aside__fine{ font-size:12.5px; line-height:1.5; color:var(--body); text-align:center; }
@media (max-width:900px){
  .apanel .apanel__body{ grid-template-columns:1fr; overflow-y:auto; }
  .apanel .apanel__cal, .apanel .apanel__side{ overflow:visible; min-height:auto; padding-right:0; }
  .apanel .cal__months{ grid-template-columns:1fr; }
  .apanel .apanel__side{ display:contents; }
  .apanel .aside__guests{ order:-1; margin-bottom:1rem; }
  .apanel .aside__sum{ margin-top:1rem; }
  .apanel .apanel__card{
    border-radius:18px 18px 0 0; top:auto; bottom:0; transform:translateX(-50%);
    width:100%; max-height:94vh; max-height:94dvh;
    animation:aUp .45s var(--ease);
  }
  .apanel .apanel__foot{ flex-direction:column; align-items:stretch; gap:10px; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); }
  .apanel .foot__l{ flex-direction:column; align-items:flex-start; gap:1px; }
  .apanel .foot__l span{ font-size:11px; line-height:1.3; }
  .apanel .foot__l b{ font-size:1.2rem; white-space:nowrap; }
  .apanel .foot__r{ flex-direction:column; align-items:stretch; gap:6px; }
  .apanel .apanel__foot .aside__go{ width:100%; justify-content:center; padding:14px 24px; }
  .apanel .foot__r .aside__fine{ max-width:none; text-align:center; font-size:11px; line-height:1.4; }
}
@media (prefers-reduced-motion: reduce){
  .apanel .apanel__scrim, .apanel .apanel__card{ animation:none; }
}
.apanel .sum__clear{
  margin-top:14px; width:100%; padding:9px; border:1px solid var(--line); border-radius:10px;
  background:none; cursor:pointer; font-family:var(--sans); font-size:13px; color:var(--body);
  transition:all .25s ease;
}
.apanel .sum__clear:hover{ border-color:var(--dark); color:var(--dark); }
@media (max-width:900px){
  .apanel .cal__months .cal__m:last-child{ display:block; }
}
.apanel .apanel__cal, .apanel .apanel__side, .apanel .apanel__body, .apanel .drawer{
  scrollbar-width:thin;
  scrollbar-color:transparent transparent;
  
  overscroll-behavior:contain;
}
.apanel .apanel__cal:hover, .apanel .apanel__side:hover, .apanel .apanel__body:hover, .apanel .drawer:hover{
  scrollbar-color:var(--sb) transparent;
}
.apanel .apanel__cal::-webkit-scrollbar, .apanel .apanel__side::-webkit-scrollbar, .apanel .apanel__body::-webkit-scrollbar{ width:8px; }
.apanel .apanel__cal::-webkit-scrollbar-thumb, .apanel .apanel__side::-webkit-scrollbar-thumb, .apanel .apanel__body::-webkit-scrollbar-thumb{
  background-color:transparent; border:2px solid transparent; background-clip:content-box;
}
.apanel .apanel__cal:hover::-webkit-scrollbar-thumb, .apanel .apanel__side:hover::-webkit-scrollbar-thumb, .apanel .apanel__body:hover::-webkit-scrollbar-thumb{ background-color:var(--sb); }
.apanel .apanel__cal::-webkit-scrollbar-thumb:hover, .apanel .apanel__side::-webkit-scrollbar-thumb:hover, .apanel .apanel__body::-webkit-scrollbar-thumb:hover{ background-color:var(--sb-hover); }
.apanel .cal__day.is-short{ background:transparent; border-color:transparent; }
.apanel .cal__day.is-short b{ color:var(--body); opacity:.3; }
.apanel .cal__day.is-short i.mn{
  font-size:8px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color:var(--body); opacity:.45;
}
.apanel .cal__day.is-dead{ background:transparent; border-color:transparent; }
.apanel .cal__day.is-dead b{ color:var(--body); opacity:.22; }
.apanel .apanel__min{
  display:inline-flex; align-items:center; gap:7px; margin-top:.7rem;
  padding:6px 13px; border-radius:100px;
  background:rgba(16,186,181,.10); border:1px solid rgba(16,186,181,.28);
  font-family:var(--sans); font-size:12.5px; font-weight:500; color:var(--dark);
}
.apanel .apanel__min svg{ width:13px; height:13px; color:var(--teal-ink); }
.apanel .cal__day.is-capout{ background:rgba(16,186,181,.08); border:1px dashed rgba(16,186,181,.5); cursor:pointer; }
.apanel .cal__day.is-capout b{ color:var(--dark); opacity:1; text-decoration:none; }
.apanel .cal__day.is-capout i.co{
  font-size:8px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--teal);
}
