.price-notice {
  border-left: 4px solid var(--sun);
  background: var(--paper);
  padding: 1rem 1.1rem;
  margin-bottom: 1.25rem;
}
.price-notice summary{display:block;position:relative;padding-right:2rem;list-style:none;cursor:pointer;font-weight:700}
.price-notice summary::-webkit-details-marker{display:none}
.price-notice summary::after{content:"";position:absolute;right:.4rem;top:50%;width:.65rem;height:.65rem;border-right:2px solid var(--ocean);border-bottom:2px solid var(--ocean);transform:translateY(-65%) rotate(45deg);transition:transform .2s ease}
.price-notice[open] summary::after{transform:translateY(-25%) rotate(225deg)}
.price-notice summary:focus-visible{outline:2px solid var(--ocean);outline-offset:4px;border-radius:.3rem}
.price-notice-content{padding-top:.85rem}
.calendar-card .stay-tabs{display:flex;flex-direction:row;gap:.3rem;border-radius:.8rem}
.calendar-card .stay-tabs button{position:relative;display:grid;place-items:center;flex:1 1 0;min-width:0;min-height:4rem;padding:.25rem .1rem;color:var(--ink);white-space:nowrap}
.calendar-card .stay-tabs button img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.calendar-card .stay-tabs button span{position:relative;z-index:1;padding:.06rem .14rem;background:transparent;font:800 clamp(1.1rem,2.45vw,1.6rem)/1.1 "DM Sans",sans-serif;letter-spacing:-.04em}
.calendar-card .stay-tab-mobile-break{display:none}
.calendar-card .stay-tabs button.active{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ocean)}
.calendar-card .stay-tabs button.calendar-tour-focus{z-index:2;animation:calendar-tour-glow 2.25s ease-in-out both}
.calendar-card .calendar-grid.calendar-tour-focus{position:relative;z-index:1;animation:calendar-tour-glow 2.25s ease-in-out both}
@keyframes calendar-tour-glow{0%,100%{box-shadow:0 0 0 0 rgba(255,196,77,0),0 0 0 0 rgba(255,196,77,0)}35%,65%{box-shadow:0 0 0 3px rgba(255,196,77,.95),0 0 26px 10px rgba(255,196,77,.72)}}
@media(prefers-reduced-motion:reduce){.calendar-card .stay-tabs button.calendar-tour-focus,.calendar-card .calendar-grid.calendar-tour-focus{animation:none;outline:3px solid #ffc44d}}
.calendar-card .stay-tabs button:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
@media(max-width:560px){
  .calendar-card .stay-tabs{flex-direction:row;gap:.15rem;padding:.2rem}
  .calendar-card .stay-tabs button{min-height:4rem}
  .calendar-card .stay-tabs button span{font-size:clamp(.82rem,4.8vw,1rem);line-height:1.05;letter-spacing:-.04em}
  .calendar-card .stay-tab-mobile-break{display:initial}
}
.manage-booking-card{margin-top:2.2rem;padding:1.35rem;border:1px solid rgba(13,81,88,.25);border-radius:1.25rem;background:rgba(255,255,255,.72);box-shadow:0 16px 45px rgba(13,81,88,.08)}
.manage-booking-card summary{display:block;position:relative;padding-right:2rem;cursor:pointer;list-style:none}
.manage-booking-card summary::-webkit-details-marker{display:none}
.manage-booking-card summary .eyebrow{display:block;margin-bottom:.2rem}
.manage-booking-card .manage-summary-title{display:block;font:600 1.45rem/1.25 "Manrope",sans-serif;letter-spacing:-.035em}
.manage-booking-card summary::after{content:"";position:absolute;right:.45rem;top:50%;width:.65rem;height:.65rem;border-right:2px solid var(--ocean);border-bottom:2px solid var(--ocean);transform:translateY(-65%) rotate(45deg);transition:transform .2s ease}
.manage-booking-card[open] summary::after{transform:translateY(-25%) rotate(225deg)}
.manage-booking-card summary:focus-visible{outline:2px solid var(--ocean);outline-offset:4px;border-radius:.3rem}
.manage-booking-body{padding-top:1rem}
.manage-booking-body>p{font-size:.92rem;line-height:1.55}
.manage-booking-card h3{font-size:1.45rem;margin:.25rem 0 .7rem}.manage-booking-card>p:not(.eyebrow){font-size:.92rem;line-height:1.55}.manage-booking-card form{padding:0;background:transparent;color:var(--ink);border-radius:0}.manage-booking-card label{font-weight:700;margin:0}.manage-booking-card input{margin:.45rem 0 .65rem;background:#fff;color:var(--ink);border:1px solid rgba(19,42,43,.28)}.manage-booking-card button{width:100%;border:0;border-radius:999px;padding:.85rem 1rem;background:var(--ink);color:#fff;font:700 .9rem "DM Sans";cursor:pointer}.manage-conditions{margin-top:1.1rem;padding-top:1rem;border-top:1px solid rgba(19,42,43,.14);font-size:.82rem}.manage-conditions ul{margin:.55rem 0 0;padding-left:1.15rem}.manage-conditions li{margin:.32rem 0}
.loyalty-code-form{margin:0 0 1.25rem;padding:1rem 1.1rem;border:2px solid #d7a33d;border-radius:1rem;background:#fff8e8;color:var(--ink)}
.loyalty-code-disclosure{margin:0 0 1.25rem;border:2px solid #d7a33d;border-radius:1rem;background:#fff8e8;color:var(--ink)}
.loyalty-code-disclosure summary{display:block;position:relative;padding:1rem 3rem 1rem 1.1rem;list-style:none;cursor:pointer;font-weight:700}
.loyalty-code-disclosure summary::-webkit-details-marker{display:none}
.loyalty-code-disclosure summary::after{content:"";position:absolute;right:1.35rem;top:50%;width:.65rem;height:.65rem;border-right:2px solid var(--ocean);border-bottom:2px solid var(--ocean);transform:translateY(-65%) rotate(45deg);transition:transform .2s ease}
.loyalty-code-disclosure[open] summary::after{transform:translateY(-25%) rotate(225deg)}
.loyalty-code-disclosure summary:focus-visible{outline:2px solid var(--ocean);outline-offset:3px;border-radius:.3rem}
.loyalty-code-disclosure .loyalty-code-form{margin:0;padding:0 1.1rem 1rem;border:0;border-radius:0;background:transparent}
.loyalty-code-form label{font-weight:700;margin:0 0 .45rem}.loyalty-code-form>div{display:grid;grid-template-columns:minmax(7rem,10rem) auto;gap:.55rem}.loyalty-code-form input{margin:0;background:#fff;color:var(--ink);border:1px solid #a77b27;text-align:center;font-size:1.25rem;font-weight:700;letter-spacing:.35em}.loyalty-code-form button{border:0;border-radius:.65rem;padding:.75rem 1rem;background:var(--ink);color:#fff;font:700 .9rem "DM Sans";cursor:pointer}.loyalty-code-status{margin:.55rem 0 0;font-size:.82rem;color:#5e522f}
.loyalty-code-form .loyalty-code-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}
.loyalty-code-actions button{min-width:0;min-height:2.8rem;padding:.45rem .3rem;font-size:clamp(.74rem,1.15vw,.87rem);line-height:1.15}
.loyalty-code-actions #loyaltyCodeApply.is-applied{background:#18784e;color:#fff}
.loyalty-recovery{margin:0 1.1rem 1rem;padding:.8rem 0 0;border-top:1px solid #dfc58e;font-size:.85rem}
.loyalty-recovery p{margin:.15rem 0 .7rem}
.loyalty-recovery form{margin:.5rem 0;padding:0;background:transparent;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem;align-items:end}
.loyalty-recovery form[hidden]{display:none}
.loyalty-recovery label{grid-column:1/-1;font-weight:600}
.loyalty-recovery input{min-width:0;background:#fff;color:var(--ink);border:1px solid #a77b27;border-radius:.5rem;padding:.6rem}
.loyalty-recovery button{background:var(--ink);color:#fff;border:0;border-radius:.5rem;padding:.68rem .85rem;cursor:pointer}
.loyalty-recovery button:disabled{opacity:.55;cursor:wait}
.loyalty-house-ban #availability .calendar-grid,.loyalty-house-ban #availability .stay-tabs,.loyalty-house-ban #availability .price-notice,.loyalty-house-ban #availability a[href^="/booking"]{display:none!important}
@media(max-width:420px){.loyalty-recovery form{grid-template-columns:1fr}.loyalty-recovery button{justify-self:start}}
.price-notice p { font-size: .85rem; margin: .35rem 0 0; }
.calendar-grid{gap:0}
.calendar-grid .day {
  min-height: 4.1rem;
  aspect-ratio: auto;
  position:relative;
  overflow:visible;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.calendar-grid .day small { font-size: .7rem; font-weight: 700; }
.calendar-grid .day-number{position:absolute;top:.3rem;left:.42rem;z-index:4;font-weight:700}
.calendar-grid .day-price{position:absolute;bottom:.28rem;right:.38rem;z-index:4}
.calendar-grid .day-price-discount{display:flex;flex-direction:column;align-items:flex-end;gap:.05rem;line-height:1.05;white-space:nowrap}
.calendar-grid .day-price-discount strong{font-size:.7rem}
.calendar-grid .day-price-discount del{font-size:.59rem;font-weight:500;opacity:.72}
.calendar-status:empty{display:none}
.calendar-grid .day.available { background: #edf8f3; color: #17654e; border-color: #8bc6af; }
.calendar-grid .day.busy { background: #f4e8e6; color: #94524c; text-decoration: line-through; }
.calendar-grid .day.unavailable{background:#d9dddc;color:#687475;border-color:#c1c8c6;text-decoration:none}
.calendar-grid .day.booking-day{background:#fff;color:#172d34;border-color:#b9c7ca;border-radius:0}
.calendar-grid .day.available.booking-day{background:#edf8f3;color:#17654e;border-color:#8bc6af}
.calendar-grid .day.past{background:#b8463d;color:#fff;border-color:#8d2f29;text-decoration:none}
.calendar-grid .day.past .booking-segment{background:transparent;color:#fff}
.calendar-grid .booking-segment{position:absolute;top:50%;height:1.05rem;transform:translateY(-50%);left:-1px;right:-1px;z-index:2;display:flex;align-items:center;padding:0 .24rem;line-height:1;text-align:left;white-space:nowrap;text-decoration:none;overflow:visible}
.calendar-grid .booking-segment.arrival{left:66.666%;right:-1px;border-radius:.55rem 0 0 .55rem}
.calendar-grid .booking-segment.departure{left:-1px;right:66.666%;border-radius:0 .55rem .55rem 0}
.calendar-grid .booking-segment.stay{left:-1px;right:-1px}
.calendar-grid .booking-segment.segment-label{z-index:3}
.calendar-grid .booking-segment.reserved{background:#4b8fcb;color:#fff}
.calendar-grid .booking-segment.confirmed{background:#d8a83f;color:#2b210b}
.calendar-grid .day.assistant-date-range { outline:3px solid #ffc44d; outline-offset:-3px; box-shadow:0 0 0 2px rgba(255,196,77,.35); font-weight:700; }
.calendar-grid .day.available[role="button"]{cursor:pointer}.calendar-grid .day.calendar-selected-range{box-shadow:inset 0 0 0 999px rgba(13,81,88,.12)}.calendar-grid .day.calendar-selected-start,.calendar-grid .day.calendar-selected-end{outline:3px solid #0d5158;outline-offset:-3px;box-shadow:0 0 0 2px rgba(13,81,88,.22)}
.legend .reserved{background:#4b8fcb}.legend .confirmed{background:#d8a83f}
@media(max-width:560px){.loyalty-code-form>div{grid-template-columns:1fr}.loyalty-code-form button{width:100%}}

.calendar-grid .day.unavailable.booking-day{background:#d9dddc;color:#687475;border-color:#c1c8c6}

.calendar-grid .day.checkout-day{background:linear-gradient(to right,#edf8f3 0%,#edf8f3 33.333%,#f4e8e6 33.333%,#f4e8e6 100%);color:#17654e;border-color:#8bc6af;text-decoration:none;cursor:pointer}
