/*
 * Guest2Owner Professional Edition
 * Author: Brian Rolland
 * Version: 8.8.8
 * Build Date: 2026-07-11
 */
/*====================================================

Sea Escape Calendar Styling
Luxury Half-Day Calendar

====================================================*/

.flatpickr-calendar{
  border-radius:18px;
  border:none;
  box-shadow:0 25px 70px rgba(0,0,0,.18);
  font-family:Montserrat,Arial,sans-serif;
  overflow:hidden;
}

.flatpickr-months{
  background:#0b2239;
}

.flatpickr-current-month,
.flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year{
  color:#fff !important;
}

.flatpickr-weekdays{
  background:#0b2239;
}

span.flatpickr-weekday{
  color:#d4af37;
}

.flatpickr-day{
  position:relative;
  overflow:hidden;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
  background:#d4af37;
  border-color:#d4af37;
  color:#111;
}

.flatpickr-day.today{
  border-color:#1d4e89;
}

/* Fully booked */

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{
  color:#777 !important;
  background:#f6f6f6 !important;
  opacity:1 !important;
  cursor:not-allowed;
}

.flatpickr-day.flatpickr-disabled::after{
  content:"";
  position:absolute;
  inset:2px;
  background:repeating-linear-gradient(
      135deg,
      rgba(190,0,0,.50) 0px,
      rgba(190,0,0,.50) 2px,
      transparent 2px,
      transparent 7px
  );
  border-radius:50%;
}

/* Check-In Only */

.flatpickr-day.checkin-only{
    background:
        linear-gradient(
            135deg,
            #5b6570 0%,
            #5b6570 50%,
            #ffffff 50%,
            #ffffff 100%
        ) !important;
    color:#0b2239 !important;
    border-color:#d4af37;
    font-weight:600;
}

.flatpickr-day.checkin-only::after{
    content:"";
    position:absolute;
    inset:2px;
    background:
        linear-gradient(
            135deg,
            transparent 46%,
            rgba(220,0,0,.75) 47%,
            rgba(220,0,0,.75) 53%,
            transparent 54%
        );
    border-radius:50%;
}

/* Check-Out Only */

.flatpickr-day.checkout-only{
    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #ffffff 50%,
            #5b6570 50%,
            #5b6570 100%
        ) !important;
    color:#0b2239 !important;
    border-color:#d4af37;
    font-weight:600;
}

.flatpickr-day.checkout-only::after{
    content:"";
    position:absolute;
    inset:2px;
    background:
        linear-gradient(
            135deg,
            transparent 46%,
            rgba(220,0,0,.75) 47%,
            rgba(220,0,0,.75) 53%,
            transparent 54%
        );
    border-radius:50%;
}

/* Legend */

.calendar-legend{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:15px;
    font-size:14px;
}

.calendar-legend span{
    display:flex;
    align-items:center;
    gap:8px;
}

.legend-box{
    width:18px;
    height:18px;
    border-radius:4px;
    border:1px solid #ccc;
}

.legend-available{background:#fff;}

.legend-booked{
    background:repeating-linear-gradient(
      135deg,
      rgba(190,0,0,.55) 0px,
      rgba(190,0,0,.55) 2px,
      #f6f6f6 2px,
      #f6f6f6 7px
    );
}

.legend-checkin{
    background:#fff;
    position:relative;
    overflow:hidden;
}

.legend-checkin::before{
    content:"";
    position:absolute;
    inset:1px;
    border-radius:4px;
    background:repeating-linear-gradient(135deg,rgba(190,0,0,.50) 0px,rgba(190,0,0,.50) 2px,transparent 2px,transparent 6px);
    clip-path:polygon(0 0,100% 0,100% 100%);
}

.legend-checkin::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:145%;
    height:2px;
    background:rgba(71,85,105,.55);
    transform:translate(-50%,-50%) rotate(45deg);
}

.legend-checkout{
    background:linear-gradient(135deg,#fff 0%,#fff 50%,#5b6570 50%,#5b6570 100%);
}

.nights-count{
    margin-top:12px;
    font-weight:700;
    color:#0b2239;
}
/* PATCH - Calendar Click Fix */

/* Never let decorative overlays intercept mouse/touch events */
.flatpickr-day::before,
.flatpickr-day::after{
    pointer-events:none !important;
}

/* Keep the calendar interactive */
.flatpickr-calendar,
.flatpickr-days,
.dayContainer,
.flatpickr-months,
.flatpickr-innerContainer,
.flatpickr-rContainer{
    pointer-events:auto;
}

/* Ensure month navigation is always clickable */
.flatpickr-prev-month,
.flatpickr-next-month{
    z-index:100;
    pointer-events:auto !important;
    cursor:pointer;
}

/* Fully blocked */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover{
    color:#777 !important;
    background:#f6f6f6 !important;
    opacity:1 !important;
    cursor:not-allowed;
    position:relative;
}

.flatpickr-day.flatpickr-disabled::after{
    content:"";
    position:absolute;
    inset:2px;
    pointer-events:none !important;
    background:repeating-linear-gradient(
      135deg,
      rgba(190,0,0,.50) 0px,
      rgba(190,0,0,.50) 2px,
      transparent 2px,
      transparent 7px
    );
    border-radius:50%;
}

/* Check-in only */
.flatpickr-day.checkin-only{
    position:relative;
    background:linear-gradient(135deg,#5b6570 0%,#5b6570 50%,#fff 50%,#fff 100%) !important;
}

.flatpickr-day.checkin-only::after{
    content:"";
    position:absolute;
    inset:2px;
    pointer-events:none !important;
    background:linear-gradient(
      135deg,
      transparent 46%,
      rgba(220,0,0,.75) 47%,
      rgba(220,0,0,.75) 53%,
      transparent 54%
    );
    border-radius:50%;
}

/* Check-out only */
.flatpickr-day.checkout-only{
    position:relative;
    background:linear-gradient(135deg,#fff 0%,#fff 50%,#5b6570 50%,#5b6570 100%) !important;
}

.flatpickr-day.checkout-only::after{
    content:"";
    position:absolute;
    inset:2px;
    pointer-events:none !important;
    background:linear-gradient(
      135deg,
      transparent 46%,
      rgba(220,0,0,.75) 47%,
      rgba(220,0,0,.75) 53%,
      transparent 54%
    );
    border-radius:50%;
}


/* ====================================================
   Public Calendar Daily Rate Display
==================================================== */

.flatpickr-day.has-rate{
    line-height:1.15;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1px;
}

.flatpickr-day .day-rate{
    display:block;
    font-size:10px;
    line-height:1;
    font-weight:800;
    color:#1d4e89;
    position:relative;
    z-index:2;
    pointer-events:none;
}

.flatpickr-day.selected .day-rate,
.flatpickr-day.startRange .day-rate,
.flatpickr-day.endRange .day-rate{
    color:#111;
}

.flatpickr-day.flatpickr-disabled .day-rate{
    color:#777;
}

.flatpickr-day.checkin-only .day-rate,
.flatpickr-day.checkout-only .day-rate{
    color:#0b2239;
}

.nights-count{
    grid-column:1 / -1;
}


/* ====================================================
   Detailed Quote / Discount Display
   Discounts apply to nightly rates only.
   Cleaning fee is never discounted.
==================================================== */

.nights-count{
    grid-column:1 / -1;
    margin-top:14px;
    font-weight:400;
}

.quote-card{
    background:linear-gradient(135deg,#ffffff,#f8fafc);
    border:1px solid rgba(212,175,55,.55);
    border-radius:20px;
    padding:18px;
    box-shadow:0 18px 42px rgba(11,34,57,.13);
    color:#0b2239;
    overflow:hidden;
}

.quote-card-top{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    margin-bottom:14px;
}

.quote-card-top span{
    display:block;
    font-size:21px;
    font-weight:900;
    line-height:1.1;
}

.quote-card-top small{
    display:block;
    margin-top:5px;
    color:#64748b;
    font-size:13px;
    font-weight:600;
}

.quote-card-top em{
    background:#0b2239;
    color:#fff;
    padding:7px 11px;
    border-radius:999px;
    font-style:normal;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:1px;
    white-space:nowrap;
}

.quote-discount-banner{
    display:grid;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:12px;
    background:linear-gradient(135deg,#0b2239,#1d4e89);
    color:#fff;
    border-radius:17px;
    padding:14px;
    margin:12px 0 16px;
    position:relative;
    overflow:hidden;
}

.quote-discount-banner::after{
    content:"";
    position:absolute;
    width:110px;
    height:110px;
    right:-42px;
    top:-46px;
    border-radius:999px;
    background:rgba(212,175,55,.25);
}

.discount-pill{
    background:#d4af37;
    color:#111;
    padding:9px 11px;
    border-radius:999px;
    font-size:12px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.75px;
    white-space:nowrap;
    position:relative;
    z-index:1;
}

.quote-discount-banner strong{
    display:block;
    font-size:22px;
    line-height:1.1;
    position:relative;
    z-index:1;
}

.quote-discount-banner small{
    display:block;
    margin-top:3px;
    opacity:.92;
    position:relative;
    z-index:1;
}

.quote-section-title{
    margin:16px 0 7px;
    font-size:12px;
    font-weight:950;
    color:#1d4e89;
    text-transform:uppercase;
    letter-spacing:1.5px;
}

.quote-line{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    padding:10px 0;
    border-bottom:1px solid #e5e7eb;
    font-size:15px;
}

.quote-line span{
    color:#334155;
}

.quote-line span small{
    display:block;
    margin-top:2px;
    color:#64748b;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.7px;
}

.quote-line strong{
    font-size:16px;
    white-space:nowrap;
}

.quote-muted span,
.quote-muted strong{
    color:#64748b;
}

.quote-savings span,
.quote-savings strong{
    color:#166534;
    font-weight:900;
}

.quote-cleaning{
    background:#f8fafc;
    margin:0 -8px;
    padding:11px 8px;
    border-radius:10px;
    border-bottom:none;
}

.quote-cleaning span small{
    color:#991b1b;
}

.quote-total{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    margin-top:15px;
    padding:15px;
    border-radius:16px;
    background:#fff7df;
    border:1px solid rgba(212,175,55,.65);
}

.quote-total span{
    font-size:13px;
    font-weight:950;
    letter-spacing:1.2px;
    text-transform:uppercase;
}

.quote-total strong{
    font-size:30px;
    color:#0b2239;
    white-space:nowrap;
}

.quote-note{
    margin:11px 0 0;
    color:#64748b;
    font-size:12px;
    line-height:1.5;
    font-weight:500;
}

.quote-card-warning{
    border-color:#f59e0b;
    background:#fffaf0;
}

@media (max-width:560px){
    .quote-card{
        padding:15px;
    }

    .quote-card-top{
        flex-direction:column;
    }

    .quote-discount-banner{
        grid-template-columns:1fr;
    }

    .discount-pill{
        width:max-content;
    }

    .quote-total strong{
        font-size:24px;
    }
}
/* Quote details and public calendar pricing */
.flatpickr-day.has-rate{
    line-height:1.05;
}

.flatpickr-day .day-rate{
    display:block;
    font-size:10px;
    line-height:1;
    margin-top:2px;
    color:#1d4e89;
    font-weight:800;
}

.flatpickr-day.flatpickr-disabled .day-rate{
    color:#777;
}

.quote-details{
    margin:18px 0;
}

.quote-card{
    border:1px solid rgba(212,175,55,.45);
    background:#fffaf0;
    border-radius:18px;
    padding:18px;
    box-shadow:0 12px 28px rgba(11,34,57,.08);
}

.quote-card h3{
    margin:0 0 12px;
    color:#0b2239;
    font-size:22px;
}

.quote-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:9px 0;
    border-bottom:1px solid rgba(11,34,57,.10);
    color:#334155;
}

.quote-row:last-child{
    border-bottom:none;
}

.quote-row.small{
    font-size:13px;
    padding:5px 0;
    color:#64748b;
}

.quote-row.discount{
    color:#166534;
    font-weight:800;
}

.quote-row.muted{
    color:#64748b;
}

.quote-row.total{
    font-size:20px;
    color:#0b2239;
    font-weight:950;
    border-top:2px solid rgba(212,175,55,.55);
    margin-top:8px;
    padding-top:14px;
}

.quote-row em{
    font-size:12px;
    color:#64748b;
    font-style:normal;
}

.quote-nightly{
    margin:6px 0 10px;
    padding:8px 10px;
    background:white;
    border-radius:12px;
    border:1px solid #e5e7eb;
    max-height:180px;
    overflow:auto;
}

.quote-note{
    margin:12px 0 0;
    color:#64748b;
    font-size:12px;
    line-height:1.45;
}

.quote-warning,
.quote-error{
    border-radius:12px;
    padding:12px;
    font-weight:800;
    margin-top:10px;
}

.quote-warning{
    background:#fef3c7;
    color:#92400e;
}

.quote-error{
    background:#fee2e2;
    color:#991b1b;
}

/* Guest2Owner quote discount emphasis */
.quote-deal-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    margin:12px 0;
    border-radius:14px;
    background:linear-gradient(135deg,#e8fffb,#dff7ff);
    border:1px solid rgba(21,184,166,.35);
    color:#0f172a;
    font-weight:800;
}
.quote-deal-banner strong{
    color:#0f766e;
    font-size:1.05rem;
    white-space:nowrap;
}

.minimum-stay-note {
    margin: 6px 0 10px;
    font-size: 0.92rem;
    font-weight: 700;
    color: #0f3f47;
}


/* Customer-facing reservation request calendar: show unavailable checkout dates clearly even when selectable */
.flatpickr-day.g2o-booked-day:not(.flatpickr-disabled),
.flatpickr-day.g2o-blocked-day:not(.flatpickr-disabled){
  position:relative;
  color:#777 !important;
  background:#f6f6f6 !important;
  opacity:1 !important;
}
.flatpickr-day.g2o-booked-day:not(.flatpickr-disabled)::after,
.flatpickr-day.g2o-blocked-day:not(.flatpickr-disabled)::after{
  content:"";
  position:absolute;
  inset:2px;
  pointer-events:none !important;
  background:repeating-linear-gradient(135deg, rgba(190,0,0,.50) 0px, rgba(190,0,0,.50) 2px, transparent 2px, transparent 7px);
  border-radius:50%;
}

/* Checkout dates may be booked/blocked visually but still selectable in the departure picker */
.flatpickr-day.g2o-checkout-selectable{
    cursor:pointer !important;
    opacity:1 !important;
}
.flatpickr-day.g2o-checkout-selectable:hover{
    border-color:#0f766e !important;
    box-shadow:0 0 0 2px rgba(20,184,166,.25) inset;
}


/* Checkout-selectable dates in the reservation request departure calendar should look open/selectable, not blocked. */
.flatpickr-day.g2o-checkout-selectable{
    background:#ffffff !important;
    color:#0f172a !important;
    border-color:#94e2d8 !important;
}
.flatpickr-day.g2o-checkout-selectable::after{
    display:none !important;
    content:none !important;
}

/* Reservation picker: booked/blocked day immediately after an open day.
   Matches the Availability at a Glance "Checkout Only" diagonal treatment. */
.flatpickr-day.g2o-checkin-only-transition,
.flatpickr-day.g2o-checkin-only-transition.flatpickr-disabled,
.flatpickr-day.g2o-checkin-only-transition.g2o-checkout-selectable{
    position:relative;
    background:#ffffff !important;
    color:#0f172a !important;
    opacity:1 !important;
    overflow:hidden;
}

.flatpickr-day.g2o-checkin-only-transition::before{
    content:"";
    position:absolute;
    inset:2px;
    pointer-events:none !important;
    border-radius:50%;
    background:repeating-linear-gradient(135deg, rgba(190,0,0,.50) 0px, rgba(190,0,0,.50) 2px, transparent 2px, transparent 7px);
    clip-path:polygon(0 0, 100% 0, 100% 100%);
}

.flatpickr-day.g2o-checkin-only-transition::after{
    content:"" !important;
    display:block !important;
    position:absolute;
    top:50%;
    left:50%;
    width:145%;
    height:2px;
    pointer-events:none !important;
    border-radius:999px;
    background:rgba(71,85,105,.60) !important;
    transform:translate(-50%,-50%) rotate(45deg);
}

.flatpickr-day.g2o-not-bookable-day{opacity:.45;background:repeating-linear-gradient(45deg,#f4f4f4,#f4f4f4 5px,#e7e7e7 5px,#e7e7e7 10px)!important;color:#777!important;text-decoration:line-through;}

/* v6.0.8 desktop readability fix: browsers often render the native
   Flatpickr month dropdown menu with a white background. Force the
   popup option text to a dark color while preserving the closed month
   selector as white text on the navy calendar header. */
.flatpickr-monthDropdown-months option{
  background:#ffffff !important;
  color:#0b2239 !important;
}

/* ====================================================
   Guest2Owner Professional Edition v6.0.9
   Flatpickr Dropdown Contrast Audit Patch
   Keeps the closed month control readable on the navy header while making
   the browser-native dropdown options readable on white backgrounds.
   ==================================================== */
.flatpickr-current-month select.flatpickr-monthDropdown-months,
.flatpickr-current-month .flatpickr-monthDropdown-months{
  background-color:#0b2239 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.flatpickr-current-month input.cur-year{
  background-color:#0b2239 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.flatpickr-monthDropdown-months option,
.flatpickr-calendar option{
  background-color:#ffffff !important;
  color:#0b2239 !important;
  -webkit-text-fill-color:#0b2239 !important;
}
