:root{
    --cozy-ink:#152f2b;
    --cozy-muted:#65736b;
    --cozy-cream:#fbf8ee;
    --cozy-sage:#e9eee3;
    --cozy-line:#d8d2c4;
    --cozy-olive:#586845;
    --cozy-rust:#a14d2f;
    --cozy-white:#fffdf7;
    --cozy-shadow:0 20px 50px rgba(21,47,43,.12);
}
.stays-hero,.checkout-hero,.result-hero{background:linear-gradient(120deg,var(--cozy-cream),#fffdf8);border-bottom:1px solid var(--cozy-line)}
.stays-hero-grid,.checkout-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.55fr);gap:48px;align-items:end;padding:82px 0 64px}
.stays-hero h1,.checkout-hero h1,.result-hero h1{font-family:var(--font-cormorant),Georgia,serif;color:var(--cozy-ink);font-size:clamp(48px,7vw,86px);line-height:.9;margin:10px 0 18px;letter-spacing:-.04em}
.checkout-hero h1,.result-hero h1{font-size:clamp(42px,5vw,70px)}
.stays-hero p,.checkout-hero p,.result-hero p{max-width:650px;color:var(--cozy-muted);font-size:17px;line-height:1.8}
.stays-search-card{background:var(--cozy-white);border:1px solid var(--cozy-line);box-shadow:var(--cozy-shadow);padding:22px;display:grid;gap:14px}
.stays-search-card label,.booking-widget-form label,.trip-edit-form label,.checkout-form label{display:grid;gap:7px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--cozy-olive)}
.stays-search-card input,.booking-widget-form input,.trip-edit-form input,.checkout-form input,.checkout-form textarea{width:100%;border:1px solid var(--cozy-line);background:#fff;color:var(--cozy-ink);padding:12px 13px;font:inherit;text-transform:none;letter-spacing:0;font-size:14px}
.stays-search-card button,.booking-widget-form button[type=submit],.checkout-form button,.trip-edit-form button,.button{border:0;background:var(--cozy-rust);color:white;text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:12px;padding:14px 20px;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px}
.checkout-form button:disabled{opacity:.45;cursor:not-allowed}
.stays-intro{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:34px 0;color:var(--cozy-muted)}
.stays-intro p{max-width:650px;margin:0;line-height:1.7}.stays-grid{padding-top:28px}.empty-card{grid-column:1/-1;border:1px solid var(--cozy-line);padding:40px;background:var(--cozy-white)}
.stays-grid .property-card{background:var(--cozy-white);border:1px solid var(--cozy-line);box-shadow:0 10px 30px rgba(21,47,43,.07);overflow:hidden}
.stays-grid .property-photo{height:280px;background:#e8e1d3;display:block;position:relative}.stays-grid .property-photo img{width:100%;height:100%;object-fit:cover;display:block}.stays-grid .property-rate{position:absolute;left:14px;bottom:14px;background:rgba(255,253,247,.93);color:var(--cozy-ink);padding:9px 12px;font-weight:800;font-size:12px;letter-spacing:.04em}.stays-grid .property-amenities{display:flex;gap:10px;flex-wrap:wrap;padding:0;margin:14px 0;list-style:none}.stays-grid .property-amenities li{border:1px solid var(--cozy-line);border-radius:999px;padding:7px 10px;font-size:12px;color:var(--cozy-ink);background:#fbfaf5}.stays-grid .property-content p{color:var(--cozy-muted);line-height:1.65}.text-link,.outline-link{color:var(--cozy-ink);font-weight:800;text-decoration:none;border-bottom:1px solid currentColor}.outline-link{border:1px solid var(--cozy-olive);padding:12px 18px;display:inline-flex;background:transparent}.stay-detail-hero{background:var(--cozy-cream);padding:54px 0 34px;border-bottom:1px solid var(--cozy-line)}.stay-title-row{display:flex;justify-content:space-between;gap:28px;align-items:end}.stay-title-row h1{font-family:var(--font-cormorant),Georgia,serif;color:var(--cozy-ink);font-size:clamp(38px,5vw,64px);line-height:.98;margin:8px 0 10px;letter-spacing:-.035em}.stay-location{color:var(--cozy-muted);margin:0}.share-button{border:1px solid var(--cozy-olive);border-radius:999px;background:#fff;padding:10px 18px;color:var(--cozy-ink);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.1em}.gallery-mosaic{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:180px 180px;gap:8px;margin-top:34px}.gallery-mosaic-item{display:block;overflow:hidden;background:#e4ded2}.gallery-mosaic-item.is-featured{grid-row:span 2}.gallery-mosaic-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.gallery-mosaic-item:hover img{transform:scale(1.03)}.show-all-photos{position:absolute;right:16px;bottom:16px;background:#fff;color:var(--cozy-ink);border:1px solid var(--cozy-line);padding:10px 14px;text-decoration:none;font-weight:800;font-size:12px}.stay-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;padding:44px 0 76px}.stay-main-column{min-width:0}.stay-section{border-bottom:1px solid var(--cozy-line);padding:32px 0}.stay-section:first-child{padding-top:0}.stay-section h2{font-family:var(--font-cormorant),Georgia,serif;color:var(--cozy-ink);font-size:clamp(28px,3vw,42px);line-height:1;margin:0 0 18px}.stay-section h3{font-family:var(--font-cormorant),Georgia,serif;color:var(--cozy-ink);font-size:22px;margin:0 0 12px}.host-section{display:flex;justify-content:space-between}.host-section p,.about-copy,.stay-section p{color:var(--cozy-ink);line-height:1.75}.read-more-copy{max-height:260px;overflow:hidden;position:relative}.stay-detail-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stay-detail-cards article,.sleep-card-grid article,.policy-grid article,.calendar-month,.result-card,.checkout-card{border:1px solid var(--cozy-line);background:var(--cozy-white);border-radius:10px;padding:18px}.stay-detail-cards span{display:block;color:var(--cozy-olive);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;margin-bottom:8px}.stay-detail-cards strong{color:var(--cozy-ink);font-size:15px}.sleep-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sleep-card-grid strong{display:block;color:var(--cozy-ink);margin-bottom:8px}.sleep-card-grid p{margin:0}.amenities-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 30px;list-style:none;margin:0 0 20px;padding:0}.amenities-preview li{color:var(--cozy-ink);position:relative;padding-left:24px}.amenities-preview li:before{content:'✓';position:absolute;left:0;color:var(--cozy-olive);font-weight:900}.amenities-details summary{cursor:pointer;display:inline-flex;border:1px solid var(--cozy-olive);padding:12px 18px;color:var(--cozy-ink);font-weight:800}.amenity-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.amenity-group-grid ul{padding-left:18px;margin:0;color:var(--cozy-muted);line-height:1.7}.policy-grid ul{padding-left:18px;margin:0;color:var(--cozy-ink);line-height:1.7}.availability-calendars{display:flex;gap:16px;flex-wrap:wrap}.calendar-month{width:280px}.calendar-month h3{text-align:center;font-family:var(--font-manrope),Arial,sans-serif;font-size:14px;font-weight:800}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-week span{min-height:32px;display:grid;place-items:center;color:var(--cozy-ink);font-size:12px;border-radius:999px}.calendar-head span{min-height:auto;color:var(--cozy-muted);font-weight:800;font-size:10px;text-transform:uppercase}.calendar-week span.blocked{background:#f7dbe0;color:#9c2f3e;text-decoration:line-through}.calendar-week span.faded{opacity:.35}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.review-grid blockquote{margin:0;background:#123d2b;color:#fff;padding:24px;border-radius:4px}.review-grid p{color:#fff;margin-top:0}.review-grid cite{font-style:normal;font-weight:800}.stay-map{width:100%;height:360px;border:0;background:#e8e6de}.stay-map-placeholder{height:320px;background:#e6e4dc;display:grid;place-items:center;color:var(--cozy-muted)}.policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stay-booking-card{position:sticky;top:96px;align-self:start;border:1px solid var(--cozy-line);background:var(--cozy-white);box-shadow:var(--cozy-shadow);border-radius:14px;padding:22px}.stay-booking-card strong{display:block;font-size:24px;color:var(--cozy-ink);margin-bottom:16px}.stay-booking-card strong span{font-size:14px;color:var(--cozy-muted);font-weight:500}.booking-widget-form{display:grid;gap:14px}.widget-date-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--cozy-line)}.widget-date-grid label{padding:10px}.widget-date-grid label+label{border-left:1px solid var(--cozy-line)}.widget-date-grid input{border:0;padding:0}.guests-selector{position:relative}.guest-trigger{width:100%;border:1px solid var(--cozy-line)!important;background:#fff!important;color:var(--cozy-ink)!important;justify-content:space-between}.guest-popover{position:absolute;left:0;right:0;z-index:4;background:#fff;border:1px solid var(--cozy-line);box-shadow:var(--cozy-shadow);padding:14px;margin-top:6px}.guest-popover div{display:grid;grid-template-columns:1fr 36px 36px 36px;gap:8px;align-items:center;margin-bottom:10px}.guest-popover button{border:1px solid var(--cozy-line);background:#fff;color:var(--cozy-ink);border-radius:999px;height:32px}.booking-widget-note,.request-mode,.fine-print{font-size:12px;color:var(--cozy-muted);line-height:1.55}.checkout-hero-grid{padding:58px 0 42px;align-items:center}.checkout-layout{grid-template-columns:minmax(0,1fr) 380px;padding:42px 0 76px}.checkout-main{display:grid;gap:22px}.checkout-card h2,.checkout-summary-card h2,.result-card h2{font-family:var(--font-cormorant),Georgia,serif;color:var(--cozy-ink);font-size:32px;line-height:1;margin:0 0 18px}.trip-edit-form,.checkout-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.trip-edit-form button,.full-row{grid-column:1/-1}.checkout-form textarea{min-height:110px;resize:vertical}.form-alert,.booking-mode-note{border:1px solid var(--cozy-line);background:#fff7ee;padding:16px;color:var(--cozy-ink)}.form-alert span,.booking-mode-note strong{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:900;color:var(--cozy-olive);margin-bottom:6px}.checkout-summary-card img{width:100%;height:210px;object-fit:cover;border-radius:10px;margin-bottom:16px}.summary-lines p,.quote-breakdown p,.result-card p,.result-card dl div{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--cozy-line);padding:12px 0;margin:0;color:var(--cozy-muted)}.summary-lines span,.quote-breakdown span,.result-card span,.result-card dt{color:var(--cozy-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.summary-lines strong,.quote-breakdown strong,.result-card dd{color:var(--cozy-ink);font-weight:800;margin:0;text-align:right}.quote-total{font-size:18px}.result-hero .inner-container{padding:72px 0 54px}.result-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:44px 0 76px}.result-trip-card{grid-column:1/-1;display:grid;grid-template-columns:280px 1fr;gap:24px}.result-trip-card img{width:100%;height:220px;object-fit:cover;border-radius:10px}.result-wide{grid-column:1/-1}.result-fallback{margin-top:42px;margin-bottom:76px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-photo{position:relative;min-height:260px;overflow:hidden}.gallery-photo img{width:100%;height:100%;object-fit:cover}.gallery-photo span{position:absolute;left:14px;bottom:14px;background:rgba(255,253,247,.92);padding:9px 12px;color:var(--cozy-ink);font-weight:800;font-size:12px}
@media (max-width: 980px){.stays-hero-grid,.checkout-hero-grid,.stay-detail-layout,.checkout-layout{grid-template-columns:1fr}.stay-booking-card,.checkout-summary-card{position:static}.gallery-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:260px 150px 150px}.gallery-mosaic-item.is-featured{grid-column:1/-1;grid-row:auto}.policy-grid{grid-template-columns:1fr}.stay-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.result-trip-card{grid-template-columns:1fr}.result-layout{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.stays-hero-grid,.checkout-hero-grid{padding:50px 0 40px}.stays-intro,.stay-title-row{display:block}.gallery-mosaic{grid-template-columns:1fr;grid-template-rows:none}.gallery-mosaic-item{height:210px}.gallery-mosaic-item:nth-child(n+4){display:none}.stay-detail-layout,.checkout-layout{padding-top:28px}.stay-detail-cards,.sleep-card-grid,.amenities-preview,.amenity-group-grid,.review-grid,.trip-edit-form,.checkout-form{grid-template-columns:1fr}.widget-date-grid{grid-template-columns:1fr}.widget-date-grid label+label{border-left:0;border-top:1px solid var(--cozy-line)}.calendar-month{width:100%}.gallery-grid{grid-template-columns:1fr}.stays-grid .property-photo{height:230px}}

/* === Booking widget: calendar fields, live quote (final-task) === */
.stay-booking-card .widget-date-grid input[readonly]{cursor:pointer;background:#fff}
.bw-clear{align-self:flex-start;margin:-4px 0 6px;padding:0;border:0;background:none;color:var(--cozy-olive,#7a8560);font-size:12px;font-weight:700;letter-spacing:.04em;text-decoration:underline;cursor:pointer}
.bw-quote{display:grid;gap:8px;margin:14px 0 4px;padding-top:14px;border-top:1px solid var(--line,#e6e3da)}
.bw-quote p{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;color:var(--muted,#666b5c);font-size:14px}
.bw-quote p strong{color:var(--ink,#1f211c);font-weight:700}
.bw-quote .bw-quote-total{margin-top:6px;padding-top:12px;border-top:1px solid var(--line,#e6e3da);font-size:16px}
.bw-quote .bw-quote-total span,.bw-quote .bw-quote-total strong{color:var(--ink,#1f211c);font-weight:800}
.bw-quote .bw-quote-error{color:var(--terracotta,#a34f2e);font-size:13px;justify-content:flex-start}
#bw-next[disabled]{opacity:.5;cursor:not-allowed}
.easepick-wrapper{z-index:1200!important}

/* === Stays listing: 3-up card grid (overrides the homepage carousel .stays-grid flex track) === */
.property-grid.stays-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;overflow:visible;scroll-snap-type:none;padding:28px 0 72px}
.stays-grid .property-card{display:flex;flex-direction:column;min-width:0}
.stays-grid .property-photo{height:auto;aspect-ratio:16/10}
.stays-grid .property-content{display:flex;flex-direction:column;flex:1;gap:10px;padding:16px 16px 18px}
.stays-grid .property-location{order:1;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--cozy-olive)}
.stays-grid .property-content h2{order:2;margin:0;font-family:var(--font-cormorant),Georgia,serif;font-size:1.45rem;line-height:1.15;color:var(--cozy-ink)}
.stays-grid .property-content h2:after{content:'';display:block;width:36px;height:2px;margin-top:10px;background:var(--cozy-olive)}
.stays-grid .property-content p{order:3;margin:0;font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.stays-grid .property-amenities{order:4;margin:2px 0 6px;gap:6px;border:0}
.stays-grid .property-amenities li{padding:5px 9px;font-size:11px;border-radius:4px}
.stays-grid .property-cta{order:5;margin-top:auto;min-height:42px;padding:11px 16px;color:#fff}
@media (max-width:1000px){.property-grid.stays-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.property-grid.stays-grid{grid-template-columns:1fr;gap:20px}}

@media (max-width: 980px) {
    .stay-detail-layout,
    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .stay-detail-layout > .stay-booking-aside,
    .checkout-layout > .checkout-booking-card {
        order: -1;
    }

    .stay-detail-layout > .stay-main-column,
    .checkout-layout > .checkout-sections {
        order: 1;
    }
}

@media (max-width: 640px) {
    .host-section {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    .availability-calendars {
        flex-direction: column;
    }

    .calendar-month {
        width: 100%;
        max-width: none;
        flex: 1 1 auto;
    }

    .bw-quote p {
        flex-wrap: wrap;
    }

    .bw-quote p strong {
        white-space: normal;
    }
}

.stays-hero--media{position:relative;overflow:hidden;isolation:isolate;background:#11140e}
.stays-hero--media .stays-hero-grid{position:relative;z-index:1}
.stays-hero.stays-hero--media h1,.stays-hero.stays-hero--media .eyebrow,.stays-hero.stays-hero--media .stays-hero-grid > div > p{color:#fffdf8}
.stays-hero--media .stays-search-card{position:relative;z-index:1}
