/*
 * single-guesty-property.css  — WanderHome Single Property Page
 * Merged: single page + calendar widget styles
 * Typography: Canela (headings only) · Lato (everything else) — both via theme/Elementor
 * Elementor tokens used: --e-global-color-primary #132845
 *                        --e-global-color-secondary #91B6D9
 *                        --e-global-color-text #FFFFFF
 *                        --e-global-color-accent #525252
 *                        --e-global-color-8d39b28 #F5C142
 *                        --e-global-color-4719491 #F7F7F7
 * Radii: 16px sitewide · 8px for dropdowns/selects/small controls only
 * Body text: 20px, var(--e-global-color-accent) = #525252
 */
body:has(.nt-sp-wrap) header{
    background:#F7F7F7;
}


/* ─── Local tokens (mirror Elementor vars) ──────────────────────────── */
.nt-sp-wrap {
    --nt-primary:   var(--e-global-color-primary,   #132845);
    --nt-secondary: var(--e-global-color-secondary, #91B6D9);
    --nt-white:     var(--e-global-color-text,       #FFFFFF);
    --nt-accent:    var(--e-global-color-accent,     #525252);
    --nt-gold:      var(--e-global-color-8d39b28,    #F5C142);
    --nt-light-bg:  var(--e-global-color-4719491,    #F7F7F7);
    --nt-radius:    16px;
    --nt-radius-sm: 10px;
}

/* ─── Reset & base ──────────────────────────────────────────────────── */
.nt-sp-wrap *,
.nt-sp-wrap *::before,
.nt-sp-wrap *::after { box-sizing: border-box; }

/* Global font: Lato inherits from theme. Canela applied only to headings below. */
.nt-sp-wrap {
    font-family: inherit;   /* Lato from theme */
    font-size: 18px;
    font-weight: 400;
    color: var(--nt-accent);
    background: var(--nt-light-bg);
    line-height: 1.6;
}

.nt-sp-container {
    max-width: 1320px;
    margin: 0 auto;
    padding: 50px 20px 100px;
}

/* ─── Headings: Canela only ─────────────────────────────────────────── */
.nt-sp-wrap h1,
.nt-sp-wrap h2,
.nt-sp-wrap h3,
.nt-sp-wrap .nt-sp-title,
.nt-sp-wrap .nt-sp-tab-btn,
.nt-sp-wrap .nt-sp-acc-label,
.nt-sp-wrap .nt-sp-related-title {
    font-family: "Canela", Georgia, serif;
    font-weight: 400;
}

/* Everything else: Lato (inherits) */
.nt-sp-wrap h4,
.nt-sp-wrap h5,
.nt-sp-wrap p,
.nt-sp-wrap li,
.nt-sp-wrap span,
.nt-sp-wrap label,
.nt-sp-wrap button,
.nt-sp-wrap a,
.nt-sp-wrap select,
.nt-sp-wrap input {
    font-family: inherit; /* Lato */
}

/* ══════════════════════════════════════════════════════════════════════
   MAIN GRID
══════════════════════════════════════════════════════════════════════ */
.nt-sp-main-grid {
    display: grid;
    grid-template-columns: 58% 1fr;
    gap: 40px;
    align-items: start;
}
/* Prevents right column (calendar) from overflowing its grid cell */
.nt-sp-info-col  { padding-top: 0; min-width: 0; overflow: hidden; }

/* ══════════════════════════════════════════════════════════════════════
   GALLERY
══════════════════════════════════════════════════════════════════════ */
.nt-sp-gallery-col { text-align: center; }

.nt-sp-main-image {
    width: 100%;
    aspect-ratio: 4/3;
    overflow: hidden;
    cursor: pointer;
    background: var(--nt-light-bg);
    border-radius: var(--nt-radius);
}
.nt-sp-main-image img {
    width: 100%; height: 100%; object-fit: cover;
    display: block; transition: transform .35s ease;
}
.nt-sp-main-image:hover img { transform: scale(1.03); }

.nt-sp-thumb-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 12px;
}
.nt-sp-thumb-item {
    aspect-ratio: 4/3; overflow: hidden; cursor: pointer;
    background: var(--nt-light-bg); border-radius: var(--nt-radius);
}
.nt-sp-thumb-item img {
    width: 100%; height: 100%; object-fit: cover;
    display: block; transition: transform .3s ease;
}
.nt-sp-thumb-item:hover img { transform: scale(1.07); }

.nt-sp-show-all-btn { margin: 24px auto 0; display: block; width: fit-content; }

/* ══════════════════════════════════════════════════════════════════════
   INFO PANEL (right column)
══════════════════════════════════════════════════════════════════════ */

.nt-sp-subtitle {
    font-family: inherit; /* Lato */
    font-weight: 600;
    font-size: 18px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--nt-secondary);
    line-height: 1.4;
    margin: 0 0 8px;
}
.nt-sp-title {
    /* font-family set above via heading rule */
    font-size: 36px;
    font-weight: 400;
    color: var(--nt-primary);
    text-transform: none;
    line-height: 1.2;
    margin: 0 0 24px;
    word-break: break-word;       /* long titles wrap instead of overflowing */
    overflow-wrap: break-word;
}

/* ── Buttons ────────────────────────────────────────────────────────── */
.nt-sp-buttons {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}
.nt-sp-btn {
    font-family: inherit !important; /* Lato */
     padding: 14px 30px;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: .6px;
/*     line-height: 1.6em !important;*/
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border: none;
    border-radius: var(--nt-radius);
   cursor: pointer;
    transition: all .3s;
    white-space: nowrap;
    color: var(--e-global-color-text) !important; 
}
.nt-sp-btn-primary  { background: var(--nt-primary);   color: var(--nt-white) !important; }
.nt-sp-btn-secondary{ background: var(--nt-secondary); color: var(--nt-white) !important; }
.nt-sp-btn-primary:hover ,
.nt-sp-btn-primary:focus,
.nt-sp-btn-secondary:hover,
.nt-sp-btn-secondary:focus,
.nt-sp-desc-toggle:hover,
.nt-sp-desc-toggle:focus,
.nt-sp-amenities-toggle:hover,
.nt-sp-amenities-toggle:focus,
.nt-sp-rules-toggle:hover,
.nt-sp-rules-toggle:focus  { 
    background: var(--nt-gold) !important; 
    color: var(--nt-primary) !important; 
}

/* ══════════════════════════════════════════════════════════════════════
   MAP
══════════════════════════════════════════════════════════════════════ */
.nt-sp-map-section { margin: 100px 0 0; }
.nt-sp-map {
    width: 100%; height: 400px;
    background: var(--nt-light-bg);
    border-radius: var(--nt-radius);
    overflow: hidden;
}

/* ══════════════════════════════════════════════════════════════════════
   TABS
══════════════════════════════════════════════════════════════════════ */
.nt-sp-tabs { padding: 100px 0 0; }

.nt-sp-tab-nav {
    display: flex;
    gap: 32px;
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 50px;
    overflow-x: auto;
 /*   -webkit-overflow-scrolling: touch;
*/    padding-bottom: 0;
/*    scrollbar-width: none;*/
}
.nt-sp-tab-nav::-webkit-scrollbar { display: none; }

.nt-sp-tab-btn {
    /* font-family: Canela set via heading rule above */
    background: none !important;
    border: none;
    border-bottom: 3px solid transparent;
    padding: 0 0 16px !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    color: var(--nt-secondary) !important;
    cursor: pointer !important;
    white-space: nowrap;
    transition: color .2s, border-color .2s;
    text-transform: none !important;
    flex-shrink: 0;
    margin-bottom: -1px; /* sit on border-bottom of nav */
}
.nt-sp-tab-btn:hover { color: var(--nt-primary) !important; }
.nt-sp-tab-btn.active {
    color: var(--nt-primary) !important;
}

.nt-sp-tab-pane { display: none; }
.nt-sp-tab-pane.active { display: block; }

/* ── Tab content: all text 20px #525252 ────────────────────────────── */
.nt-sp-tab-pane p,
.nt-sp-tab-pane li,
.nt-sp-tab-pane span:not([class*="nt-sp-acc"]),
.nt-sp-tab-pane .nt-sp-desc-text,
.nt-sp-tab-pane .nt-sp-rule-row,
.nt-sp-tab-pane .nt-sp-amenity-item {
    font-size: 18px;
    color: var(--nt-accent);
    line-height: 1.6;
}

/* ══════════════════════════════════════════════════════════════════════
   ACCORDION
══════════════════════════════════════════════════════════════════════ */
.nt-sp-acc-list { margin: 0; }
.nt-sp-acc-list .nt-sp-acc-row:first-child{
    margin-top: 40px;
}
.nt-sp-acc-row {
    display: flex;
    flex-direction: column;
    margin-bottom: 15px;
    gap: 0px;
}

.nt-sp-acc-trigger {
    background: var(--nt-white);
    border: none;
    border-radius: var(--nt-radius);
    color: var(--nt-primary);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 20px;
    cursor: pointer;
    transition: background .15s;
}
.nt-sp-acc-row.nt-open .nt-sp-acc-trigger{
    border-radius:var(--nt-radius) var(--nt-radius) 0px 0px;
}
.nt-sp-acc-row.nt-open .nt-sp-acc-body{
    border-radius:0px 0px var(--nt-radius) var(--nt-radius);
}
.nt-sp-acc-label {
    /* font-family: Canela from heading rule */
    font-size: 22px !important;
    font-weight: 400;
    color: var(--nt-primary);
    margin: 0;
    text-transform: none;
}

.nt-sp-acc-body {
    height: 0;
    overflow: hidden;
    transition: height .3s ease;
    background: var(--nt-white);
    border-radius: var(--nt-radius);
}
.nt-sp-acc-body-inner {
    padding: 15px 20px;
    font-size: 18px;
    color: var(--nt-accent);
    line-height: 1.6;
}
.nt-sp-acc-body-inner p  { margin: 0 0 12px; }
.nt-sp-acc-body-inner li { margin-bottom: 6px; }
/* ul inside accordion — consistent indent */
.nt-sp-acc-body-inner ul,
.nt-sp-acc-body-inner ol {
    padding-left: 20px;
    margin: 0;
}

/* Plain list used in Things to Note (not inside accordion) */
.nt-sp-plain-list {
    padding-left: 20px;
    margin: 0 0 24px;
    font-size: 18px;
    color: var(--nt-accent);
    line-height: 1.6;
}
.nt-sp-plain-list li { margin-bottom: 8px; }

.nt-sp-acc-chevron { transition: transform .3s ease; flex-shrink: 0; }
.nt-sp-acc-chevron svg { fill: var(--nt-primary); width: 18px; height: 18px; display: block; }
.nt-sp-acc-row.nt-open .nt-sp-acc-chevron { transform: rotate(180deg); }

/* ══════════════════════════════════════════════════════════════════════
   DESCRIPTION TAB
══════════════════════════════════════════════════════════════════════ */
.nt-sp-desc-text {
    font-size: 18px;
    color: var(--nt-accent);
    line-height: 1.6;
}
.nt-sp-desc-text p { margin: 0 0 16px; }

.nt-sp-desc-hidden { display: none; }
.nt-sp-desc-hidden.nt-open { display: block; }

.nt-sp-desc-toggle { margin-top: 24px; }

.nt-sp-desc-list {
    padding-left: 20px;
    margin: 0;
}
.nt-sp-desc-list li { margin-bottom: 8px; }

.nt-sp-section-title { margin: 32px 0 16px; }

/* ══════════════════════════════════════════════════════════════════════
   HOUSE RULES TAB
══════════════════════════════════════════════════════════════════════ */
.nt-sp-rules-intro {
    font-size: 18px;
    color: var(--nt-accent);
    margin-bottom: 24px;
}

.nt-sp-rules-card {
    background: var(--nt-white);
    border-radius: var(--nt-radius);
    padding: 40px;
    margin-top: 50px;
}

.nt-sp-rules-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.nt-sp-rule-row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    font-size: 18px;
    color: var(--nt-accent);
    padding: 10px 0;
}
.nt-sp-rule-row:last-child { border-bottom: none; }

.nt-sp-rule-badge {
    width: 26px; height: 26px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0; margin-top: 2px;
}
.nt-sp-rule-badge img { width: 26px; height: 26px; object-fit: contain; display: block; }

/* Initially hide rule rows after 4th */
.nt-sp-rules-col .nt-sp-rule-row:nth-child(n+5) { display: none; }
.nt-sp-rules-grid.nt-expanded .nt-sp-rule-row   { display: flex; }

.nt-sp-rules-toggle { margin-top: 24px; }

/* ══════════════════════════════════════════════════════════════════════
   AMENITIES TAB
══════════════════════════════════════════════════════════════════════ */
.nt-sp-amenities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-bottom: 24px;
}
.nt-sp-amenity-item {
    display: flex; align-items: center; gap: 14px;
    font-size: 18px; color: var(--nt-accent);
    padding: 14px 0;
    border-bottom: 1px solid var(--nt-light-bg);
}
.nt-sp-amenity-item svg,
.nt-sp-amenity-item img { width: 32px; height: 32px; flex-shrink: 0; color: var(--nt-gold); }
.nt-sp-amenity-hidden { display: none; }
.nt-sp-amenities-grid.nt-expanded .nt-sp-amenity-hidden { display: flex; }
.nt-sp-amenities-toggle { margin-top: 24px; }

/* ══════════════════════════════════════════════════════════════════════
   THINGS TO NOTE / GETTING AROUND
══════════════════════════════════════════════════════════════════════ */
.nt-sp-note-subitem  { list-style: none; margin: 12px 0; }
.nt-sp-note-subtitle {
    font-size: 18px; font-weight: 600;
    color: var(--nt-accent); margin: 16px 0 8px;
}
.nt-sp-note-subcontent { font-size: 18px; color: var(--nt-accent); }
.nt-sp-nested-list { margin: 6px 0 0 20px; padding-left: 0; list-style: disc; }
.nt-sp-nested-list li { margin-bottom: 6px; }
.nt-sp-plain-para { font-size: 18px; color: var(--nt-accent); margin-bottom: 40px; }
.nt-sp-note-bullets { padding-left: 20px; }
.nt-sp-note-bullets li { margin-bottom: 6px; font-size: 18px; color: var(--nt-accent); }

/* ══════════════════════════════════════════════════════════════════════
   LIGHTBOX
══════════════════════════════════════════════════════════════════════ */
.nt-sp-lightbox {
    display: none; position: fixed; inset: 0; z-index: 99999;
    background: rgba(0,0,0,.96);
    flex-direction: column; overflow: hidden;
}
.nt-sp-lightbox.nt-open { display: flex; }

.nt-sp-lb-topbar {
    position: absolute; top: 0; left: 0; right: 0;
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; z-index: 10;
    background: linear-gradient(to bottom, rgba(0,0,0,.55) 0%, transparent 100%);
}
.nt-sp-lb-counter { color: rgba(255,255,255,.65); font-size: 14px; }

.nt-sp-lb-btn-close {
    width: 48px; height: 48px;
    background: rgba(255,255,255,.12) !important;
    border: 1.5px solid rgba(255,255,255,.22) !important;
    color: #fff !important; cursor: pointer !important;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s; flex-shrink: 0;
}
.nt-sp-lb-btn-close:hover { background: rgba(255,255,255,.25) !important; }
.nt-sp-lb-btn-close svg { 
    fill: #fff; 
    width: 20px; 
    height: 20px; 
    display: block;
    min-width: 20px;
    min-height: 20px;
     }

.nt-sp-lb-stage {
    flex: 1; min-height: 0;
    display: flex; align-items: center; justify-content: center;
    position: relative; padding: 60px 72px 0;
}
.nt-sp-lb-btn-nav {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 48px; height: 48px;
    background: rgba(255,255,255,.10) !important;
    border: 1.5px solid rgba(255,255,255,.22) !important;
    color: #fff !important; cursor: pointer !important;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s; z-index: 5;
}
.nt-sp-lb-btn-nav:hover { background: rgba(255,255,255,.22) !important; }
.nt-sp-lb-btn-nav svg  { 

    fill: #fff;
    display: block;
    width: 15px;
    height: 15px;
    min-width: 15px;

     display: block; }
.nt-sp-lb-btn-prev { left: 12px; }
.nt-sp-lb-btn-next { right: 12px; }

.nt-sp-lb-img-wrap {
    max-width: 100%; max-height: 100%;
    display: flex; align-items: center; justify-content: center;
}
.nt-sp-lb-img-wrap img {
    max-width: 100%; max-height: calc(100vh - 200px);
    width: auto; height: auto; object-fit: contain; display: block;
    border-radius: var(--nt-radius); user-select: none;
    transition: opacity .2s;
}
.nt-sp-lb-img-wrap img.nt-lb-loading { opacity: .35; }

.nt-sp-lb-caption {
    flex-shrink: 0; text-align: center; padding: 10px 20px 0;
    color: rgba(255,255,255,.5); font-size: 14px; min-height: 22px;
}

.nt-sp-lb-thumbs {
    flex-shrink: 0; display: flex; gap: 8px;
    padding: 12px 20px 16px; overflow-x: auto;
    scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent;
}
.nt-sp-lb-thumbs::-webkit-scrollbar { height: 4px; }
.nt-sp-lb-thumbs::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 2px; }

.nt-sp-lb-thumb {
    width: 68px; height: 52px; flex-shrink: 0;
    border-radius: 10px; overflow: hidden; cursor: pointer;
    opacity: .4; border: 2px solid transparent;
    transition: opacity .2s, border-color .2s;
}
.nt-sp-lb-thumb.nt-active { opacity: 1; border-color: #fff; }
.nt-sp-lb-thumb:hover     { opacity: .75; }
.nt-sp-lb-thumb img       { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ══════════════════════════════════════════════════════════════════════
   RELATED LISTINGS
══════════════════════════════════════════════════════════════════════ */
.nt-sp-related-list  { padding-top: 80px; }
.nt-sp-related-title {
    /* Canela via heading rule */
    font-size: 32px; color: var(--nt-primary);
    margin: 0 0 24px;
}

/* ══════════════════════════════════════════════════════════════════════
   CALENDAR WIDGET  (ntcal — merged from guesty-calendar-widget.css)
   All calendar-specific styles scoped under .ntcal-widget
══════════════════════════════════════════════════════════════════════ */
.ntcal-widget {
    --c-navy:   var(--nt-primary,   #132845);
    --c-sky:    var(--nt-secondary, #91B6D9);
    --c-white:  var(--nt-white,     #FFFFFF);
    --c-muted:  var(--nt-accent,    #525252);
    --c-bg:     var(--nt-light-bg,  #F7F7F7);
    --c-border: #E4EBF4;
    --c-range:  rgba(19,40,69,.08);
    --c-hover:  rgba(19,40,69,.05);
    --c-r:      var(--nt-radius,    16px);
    --c-r-sm:   var(--nt-radius-sm, 10px);

    font-family: inherit;
    font-size: 16px;
    color: var(--c-muted);
    width: 100%;
    display: flex; flex-direction: column; gap: 10px;
    margin-top: 24px;
}
.ntcal-widget *,
.ntcal-widget *::before,
.ntcal-widget *::after { box-sizing: border-box; font-family: inherit; }

/* Date summary */
.ntcal-summary { background: var(--c-white); border-radius: var(--c-r); padding: 20px; }
.ntcal-summary__bar {
    display: flex; align-items: center; justify-content: space-between; margin-bottom: 0;
}
.ntcal-summary__hint { font-size: 13px; color: var(--c-sky); font-weight: 500; }
.ntcal-reset-btn {
    display: flex; 
    align-items: center; 
    gap: 5px;
    background: none; 
    border: none; 
    padding: 8px 14px !important;
    font-size: 11px !important; 
    color: var(--c-muted);
    cursor: pointer; 
    transition: color .15s; 
    border-radius: var(--c-r-sm) !important;
}
.ntcal-reset-btn:hover,
.ntcal-reset-btn:active,
.ntcal-reset-btn:focus { 
    background: var(--nt-gold) !important;
    color: var(--c-navy) !important;
}
.ntcal-summary__cols {
    display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;
}
.ntcal-summary__col  { display: flex; flex-direction: column; gap: 4px; }
.ntcal-summary__lbl  {
    font-size: 13px; font-weight: 600; letter-spacing: .8px;
    text-transform: uppercase; color: var(--c-sky);
}
.ntcal-summary__val  { font-size: 18px; font-weight: 400; color: var(--c-navy); line-height: 1.15; white-space: nowrap; }
.ntcal-summary__val--nights { transition: color .2s; }

/* Message bar */
.ntcal-msg { border-radius: var(--c-r); padding: 12px 20px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.ntcal-msg--error { background:#fff0f0; border:1.5px solid #f5c6c6; color:#b83232; }
.ntcal-msg--info  { background:#eaf4ff; border:1.5px solid var(--c-sky); color:#1a4d7a; }

/* Calendar card */
.ntcal-cal-card {
    background: var(--c-white); border-radius: var(--c-r);
    padding: 20px; position: relative; overflow: hidden;
}
.ntcal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.ntcal-nav__label { font-size: 20px; font-weight: 400; color: var(--c-navy); font-family: "Canela", Georgia, serif; }
.ntcal-nav__btn {
    width: 36px; height: 36px;
    background: var(--c-navy) !important; border-radius: var(--c-r-sm) !important;
    display: flex; align-items: center; justify-content: center;
    color: var(--c-white) !important; cursor: pointer !important;
    padding: 4px 8px !important; border: none;
    transition: background .15s;
}
.ntcal-nav__btn:hover,
.ntcal-nav__btn:active { background: var(--nt-gold) !important; }
.ntcal-nav__btn:disabled { 
    opacity: .25; 
    cursor: default; 
    background: var(--c-muted) !important; 
}
.ntcal-nav__btn:disabled svg{
    fill: var(--c-white) !important;
}
.ntcal-nav__btn svg { fill: var(--c-white); width: 15px; height: 15px; }
.ntcal-nav__btn:hover svg { fill: var(--c-navy); }

.ntcal-dow { display: grid; grid-template-columns: repeat(7,1fr); margin-bottom: 6px; }
.ntcal-dow span {
    text-align: center; font-size: 13px; font-weight: 600;
    letter-spacing: .6px; text-transform: uppercase;
    color: var(--c-sky); padding-bottom: 8px;
}
.ntcal-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 1px; }

.ntcal-day {
    display: flex; align-items: center; justify-content: center;
    height: 44px; font-size: 14px; font-weight: 400;
    color: var(--c-navy); border-radius: var(--c-r-sm);
    user-select: none; position: relative; cursor: default;
}
.ntcal-day--empty   { pointer-events: none; }
.ntcal-day--past,
.ntcal-day--blocked { color: #d0d8e4; pointer-events: none; }
.ntcal-day--blocked::after {
    content: ''; position: absolute; left: 50%; top: 50%;
    transform: translate(-50%,-50%) rotate(-45deg);
    width: 55%; height: 1px; background: #d0d8e4;
}
.ntcal-day--avail   { cursor: pointer; font-weight: 600; }
.ntcal-day--co-only { cursor: pointer; color: #aab4c0; }
.ntcal-day--avail:hover,
.ntcal-day--co-only:hover { background: #e8f2fb; }
.ntcal-day--today:not(.ntcal-day--start):not(.ntcal-day--end) { font-weight: 600; color: var(--c-sky); }
.ntcal-day--today:not(.ntcal-day--start):not(.ntcal-day--end)::after {
    content: ''; position: absolute; bottom: 5px; left: 50%;
    transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%; background: var(--c-sky);
}
.ntcal-day--start,
.ntcal-day--end { background: var(--c-navy) !important; color: var(--c-white) !important; font-weight: 600; z-index: 1; }
.ntcal-day--start { border-radius: var(--c-r-sm) 0 0 var(--c-r-sm); }
.ntcal-day--end   { border-radius: 0 var(--c-r-sm) var(--c-r-sm) 0; }
.ntcal-day--start.ntcal-day--end { border-radius: var(--c-r-sm); }
.ntcal-day--in-range { background: var(--c-range); border-radius: 0; color: var(--c-navy); }
.ntcal-day--start.ntcal-day--in-range { border-radius: var(--c-r-sm) 0 0 var(--c-r-sm); }
.ntcal-day--end.ntcal-day--in-range   { border-radius: 0 var(--c-r-sm) var(--c-r-sm) 0; }
.ntcal-day.is-preview-range { background: var(--c-hover) !important; border-radius: 0; color: var(--c-navy); }
.ntcal-day.is-preview-end   { background: var(--c-navy) !important; color: var(--c-white) !important; border-radius: 0 var(--c-r-sm) var(--c-r-sm) 0; font-weight: 600; }

.ntcal-cal-loader {
    display: none; position: absolute; inset: 0; border-radius: var(--c-r);
    background: rgba(255,255,255,.88);
    align-items: center; justify-content: center; gap: 10px;
    font-size: 14px; color: var(--c-muted); backdrop-filter: blur(2px);
}
.ntcal-cal-loader.is-active { display: flex; }
.ntcal-spinner { width: 20px; height: 20px; border: 2.5px solid var(--c-border); border-top-color: var(--c-navy); border-radius: 50%; animation: ntcalSpin .7s linear infinite; flex: none; }
.ntcal-spinner--sm { width: 14px; height: 14px; border-width: 2px; }
@keyframes ntcalSpin { to { transform: rotate(360deg); } }

/* Selectors card */
.ntcal-sel-card { background: var(--c-white); border-radius: var(--c-r); padding: 8px; }
.ntcal-sel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.ntcal-sel-item {
    display: flex; flex-direction: column; gap: 4px;
    padding: 12px; border-radius: calc(var(--c-r) - 4px);
    transition: background .1s;
}
.ntcal-sel-item:hover { background: var(--c-bg); }
.ntcal-sel-item__label { font-size: 18px; font-weight: 600; color: var(--c-navy); cursor: default; line-height: 1.2; }
.ntcal-sel-item__sub   { font-size: 13px; font-weight: 500; color: var(--c-sky); line-height: 1; }
.ntcal-sel-item__note  { font-size: 11px; font-style: italic; color: var(--c-muted); line-height: 1.3; opacity: .8; }
.ntcal-sel-item__select-wrap { position: relative; margin-top: 6px; }
.ntcal-sel-item__select-wrap::after {
    content: ''; position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    width: 0; height: 0;
    border-left: 4px solid transparent; border-right: 4px solid transparent;
    border-top: 5px solid var(--c-navy); pointer-events: none;
}
.ntcal-sel-item__select {
    -webkit-appearance: none; appearance: none; width: 100%;
    padding: 8px 32px 8px 12px;
    background: var(--c-bg); border: 1px solid #ccc; border-radius: var(--c-r-sm);
    font-size: 16px; font-weight: 400; color: var(--c-navy);
    cursor: pointer; transition: border-color .15s;
}
.ntcal-sel-item__select:hover { background: #edf2f8; border-color: var(--c-sky); }
.ntcal-sel-item__select:focus { outline: none; border-color: var(--c-navy); background: var(--c-white); }

/* Price card */
.ntcal-price { background: var(--c-white); border-radius: var(--c-r); padding: 20px; }
.ntcal-price__top {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 10px; margin-bottom: 4px;
}
.ntcal-price__amount-wrap { display: flex; align-items: center; gap: 10px; }
.ntcal-price__amount { font-size: 32px; font-weight: 400; color: var(--c-navy); line-height: 1; transition: opacity .2s; }
.ntcal-price__spinner { display: none; align-items: center; }
.ntcal-price__meta    { display: block; font-size: 13px; font-weight: 600; color: var(--c-sky); text-transform: uppercase; letter-spacing: .4px; }
.ntcal-price__note    { font-size: 13px; color: var(--c-muted); margin: 0; line-height: 1.5; }
.ntcal-price__info-btn {
    width: 28px; height: 28px; background: none;
    display: flex; align-items: center; justify-content: center;
    color: var(--c-muted) !important; cursor: pointer !important;
    flex: none; padding: 4px !important; border-radius: var(--c-r-sm) !important; border: none;
    transition: background .15s;
}
.ntcal-price__info-btn:hover { background: var(--nt-gold) !important; }
.ntcal-price__info-btn svg   { width: 14px; height: 14px; }
.ntcal-price__info-btn svg *{
    stroke: #fff;
}
/* Action buttons */
.ntcal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }

/* Popup */
.ntcal-overlay { display: none; position: fixed; inset: 0; z-index: 99999; background: rgba(34,34,34,.4); align-items: flex-end; justify-content: center; }
.ntcal-overlay.is-open { display: flex; }
@media (min-width: 600px) { .ntcal-overlay { align-items: center; padding: 24px; } }
.ntcal-popup {
    background: #fff; border-radius:16px;
    width: 100%; max-width: 400px; padding: 20px;
    max-height: 88vh; overflow-y: auto; position: relative;
    animation: ntcalUp .22s cubic-bezier(.32,1,.6,1);
}
@media (min-width: 600px) { .ntcal-popup { animation: ntcalIn .18s ease; } }
.ntcal-popup::before {
    content: ''; display: block; width: 34px; height: 4px;
    background: #dde4ee; border-radius: 2px; margin: -14px auto 20px;
}
@media (min-width: 600px) { .ntcal-popup::before { display: none; } }
@keyframes ntcalUp { from{transform:translateY(100%)} to{transform:translateY(0)} }
@keyframes ntcalIn  { from{opacity:0;transform:scale(.97) translateY(6px)} to{opacity:1;transform:scale(1) translateY(0)} }
.ntcal-popup__head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #f2f2f2;
}
.ntcal-popup__title { margin: 0; font-family: "Canela", Georgia, serif; font-size: 22px; color: var(--c-navy); }
.ntcal-popup__close {
    width: 30px; height: 30px; background: #132845 !important;
    border: none; display: flex; align-items: center; justify-content: center;
    color: #fff !important; cursor: pointer !important;
    padding: 8px !important; border-radius: 10px !important; transition: background .15s;
}
.ntcal-popup__close svg { fill: #fff; width: 14px; height: 14px; }
.ntcal-popup__close:hover { background: #91B6D9 !important; }
.ntcal-popup__close:hover svg { fill: #132845; }

.ntcal-popup__stay { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; margin-bottom: 20px; background: #f7f7f7; border-radius: 16px; }
.ntcal-popup__stay-item { background: var(--c-bg); border-radius: 10px; padding: 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.ntcal-popup__stay-lbl { font-size: 13px; font-weight: 600; letter-spacing: .7px; text-transform: capitalize; color: #91B6D9; line-height: 1; }
.ntcal-popup__stay-val { font-size: 14px; font-weight: 700; color: var(--c-navy); line-height: 1; }

.ntcal-popup__rows { display: flex; flex-direction: column; }
.ntcal-popup__row  { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid #f2f2f2; font-size: 16px; color: var(--c-muted); }
.ntcal-popup__row:last-child { border-bottom: none; }
.ntcal-popup__row-label { flex: 1; }

.ntcal-popup__total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0 12px; border-top: 1px solid var(--c-navy); margin-top: 4px; margin-bottom: 14px; }
.ntcal-popup__total-label { font-size: 16px; font-weight: 400; color: #132845; }
.ntcal-popup__total-val   { font-size: 20px; font-weight: 400; color: #132845; }
.ntcal-popup__note  { font-size: 13px; color: var(--c-muted); line-height: 1.5; margin: 0; text-align: center; }
.ntcal-popup__empty { font-size: 14px; color: var(--c-muted); padding: 12px 0; }

/* Tax expand rows */
.ntcal-popup__row--tax { cursor: pointer; user-select: none; }
.ntcal-popup__row--tax:hover { background: var(--c-bg); border-radius: 10px; margin: 0 -4px; padding-left: 4px; padding-right: 4px; }
.ntcal-popup__tax-caret { display: inline-block; font-size: 10px; color: #132845; margin-right: 4px; transition: transform .2s; transform: rotate(-90deg); }
.ntcal-popup__tax-wrap.is-open .ntcal-popup__tax-caret { transform: rotate(0deg); }
.ntcal-popup__tax-sub   { display: none; overflow: hidden; }
.ntcal-popup__tax-wrap.is-open .ntcal-popup__tax-sub { display: block; }
.ntcal-popup__row--sub  { padding-left: 18px; font-size: 14px; color: var(--c-muted); border-bottom: 1px solid #f5f5f5; }
.ntcal-popup__row--sub:last-child { border-bottom: none; }


.nt-sp-container .nt-property-item-card,
.nt-sp-related .nt-property-item-card{
    background: #ffffff;
}
.nt-property-listing-wrapper {
    padding: 40px 0 0px;
}
/* ══════════════════════════════════════════════════════════════════════
   STICKY BAR + FLOATING BUTTON
   Fixed bottom · slides up from below · white card · 16px radius
   JS: guesty-listings.js  toggles .nt-sp-sticky-visible / .nt-sp-float-visible
══════════════════════════════════════════════════════════════════════ */

.nt-sp-sticky-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9990;
    padding: 20px 20px;
    padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    transform: translateY(110%);
    transition: transform .32s cubic-bezier(.4,0,.2,1);
    will-change: transform;
    pointer-events: none;
}
.nt-sp-sticky-bar.nt-sp-sticky-visible {
    transform: translateY(0);
    pointer-events: auto;
}
.nt-sp-sticky-card {
    display: flex;
    align-items: center;
    gap: 20px;
    max-width: 1280px;
    margin: 0 auto;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 -2px 12px rgba(0,0,0,.08), 0 4px 28px rgba(0,0,0,.14);
    padding: 14px 14px 14px 14px;
    box-sizing: border-box;
}

/* Thumbnail 120×120 */
.nt-sp-sticky-thumb {
    flex-shrink: 0;
    width: 150px;
    height: 120px;
    border-radius: 16px;
    overflow: hidden;
}
.nt-sp-sticky-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Info column — subtitle top, title, stars bottom */
.nt-sp-sticky-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-self: stretch;
    padding: 4px 0;                   /* top/bottom breathing room */
}

/* Subtitle — matches .nt-property-item-category */
.nt-sp-sticky-subtitle {
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--nt-secondary, #91B6D9);
    line-height: 1.6em;
    margin-bottom: 5px;
}

/* Title — h4, Canela */
.nt-sp-sticky-title {
   /* font-family: "Canela", Georgia, serif;
    font-size: 26px;
    font-weight: 400;*/
    color: var(--nt-primary, #132845);
    margin: 0 0 10px;
/*    line-height: 1.2;*/
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Stars — 5 star, bottom of info col */
.nt-sp-sticky-stars {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-top: auto;
}
.nt-sp-star {
    font-size: 18px;
    line-height: 1;
    display: inline-block;
}
.nt-sp-star--full  { color: var(--nt-gold, #F5C142); }
.nt-sp-star--half  { color: var(--nt-gold, #F5C142); opacity: .5; }
.nt-sp-star--empty { color: #dde0e6; }
.nt-sp-sticky-rating {
    font-size: 22px;
    font-weight: 400;
    color: var(--nt-primary, #132845);
    margin-left: 6px;
    font-family: "Canela", Georgia, serif !important;
}
.nt-sp-sticky-reviews {
    font-size: 14px;
    color: var(--nt-accent, #525252);
    margin-left: 6px;
}

/* Action buttons — SIDE BY SIDE, same size */
.nt-sp-sticky-actions {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.nt-sp-sticky-price,
.nt-sp-sticky-book {
    font-family: inherit !important;
    padding: 14px 30px;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    /* line-height: 1.6em !important; */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border: none;
    border-radius: var(--nt-radius);
    cursor: pointer;
    transition: all .3s;
    white-space: nowrap;
     box-sizing: border-box;
    cursor: default;
}
.nt-sp-sticky-price {
    background: var(--nt-gold, #F5C142);
    color: var(--nt-primary, #132845);
}
.nt-sp-sticky-book {
    background: var(--nt-primary, #132845);
    color: #ffffff;
    cursor: pointer;
    transition: background .2s, color .2s;
}
.nt-sp-sticky-book:hover,
.nt-sp-sticky-book:focus {
    background: var(--nt-gold, #F5C142);
    color: var(--nt-primary, #132845);
    outline: none;
}

/* Floating button — mobile only */
.nt-sp-float-btn {
    display: none;
    position: fixed;
    bottom: 24px;
    left: 50%;
    z-index: 9989;
    transform: translateX(-50%) translateY(100px);
    opacity: 0;
    align-items: center;
    gap: 8px;
    background: var(--nt-primary, #132845);
    color: #ffffff;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    text-decoration: none;
    padding: 16px 30px;
    border-radius: 16px;
    box-shadow: 0 6px 24px rgba(19,40,69,.32);
    white-space: nowrap;
    transition: transform .32s cubic-bezier(.4,0,.2,1), opacity .32s;
    box-sizing: border-box;
}

.nt-sp-float-btn svg { 
    width: 18px; height: 18px; flex-shrink: 0; 
    stroke: var(--nt-white);
}

.nt-sp-float-btn:hover{
    background: var(--nt-gold);
    color: var(--nt-primary);
}
.nt-sp-float-btn:hover svg{
    stroke: var(--nt-primary);
}

.nt-sp-float-btn.nt-sp-float-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* Responsive */
@media (max-width: 1024px) {
    .nt-sp-sticky-card  { gap: 14px; padding: 10px 14px; }
    .nt-sp-sticky-thumb { width: 110px; height: 90px; }
}
@media (max-width: 767px) {
    .nt-sp-sticky-bar   { display: none !important; }
    .nt-sp-float-btn    { display: inline-flex; }
}

/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════════════════ */

/* 1400px: calendar right column starts getting tight — reduce card padding */
@media (max-width: 1400px) {
    .ntcal-cal-card,
    .ntcal-summary,
    .ntcal-sel-card,
/*    .ntcal-price         { padding: 14px; }*/
    .ntcal-sel-item      { padding: 10px; }
    .ntcal-sel-grid      { gap: 2px; }
    .ntcal-widget        { gap: 8px; }
}

/* 1280px: container hits its max-width, add side padding buffer */
@media (max-width: 1280px) {
    .nt-sp-container{ padding-left: 20px; padding-right: 20px; }
}

/* 1024px: tighten grid, reduce font sizes slightly */
@media (max-width: 1024px) {
    .ntcal-sel-item__label { font-size: 16px; }
    /* Action buttons go single column when right panel is narrow */
    .ntcal-actions       { grid-template-columns: 1fr; }

    .nt-sp-main-grid        { grid-template-columns: 1fr; gap: 40px; }
    .nt-sp-info-col         { overflow: visible; } /* restore after stacking */
    .nt-sp-rules-grid       { grid-template-columns: 1fr; gap: 20px; }
    .nt-sp-rules-card       { padding: 20px; }
    .nt-sp-amenities-grid   { grid-template-columns: 1fr 1fr; }
    /* Calendar can use full width now — restore padding */
/*    .ntcal-cal-card,
    .ntcal-summary,
    .ntcal-sel-card,
    .ntcal-price            { padding: 20px; }*/
    .ntcal-actions          { grid-template-columns: 1fr 1fr; }

    .nt-sp-related-list{
        padding-top: 60px;
    }
    .nt-sp-container        { padding: 20px 20px 60px; }
    .nt-sp-show-all-btn {
        margin: 60px auto 20px;
    }
    .nt-sp-title{
            margin: 0 0 30px;
    }
    .nt-sp-map-section {
        margin: 60px 0 0;
    }
    .nt-sp-tabs {
        padding: 60px 0 0;
    }
    .nt-sp-desc-toggle {
        margin-top: 44px;
    }
    .nt-property-listing-wrapper{
        padding: 30px 0 40px;
    }
}

/* 640px: mobile */
@media (max-width: 767px) {


    .nt-sp-thumb-grid       { grid-template-columns: repeat(2, 1fr); }
    .nt-sp-tab-btn          { padding-bottom: 12px !important; }
    .nt-sp-tab-nav          { gap: 16px; }
    .nt-sp-rules-card       { padding: 20px 16px; }
    .nt-sp-amenities-grid   { grid-template-columns: 1fr; }
    .nt-sp-acc-trigger      { padding: 16px; }
    .nt-sp-acc-body-inner   { padding: 16px 16px 20px; }
    .nt-sp-acc-label        { font-size: 20px !important; }
    .nt-sp-tab-pane p,
    .nt-sp-tab-pane li,
    .nt-sp-plain-list li,
    .nt-sp-tab-pane .nt-sp-desc-text,
    .nt-sp-tab-pane .nt-sp-rule-row,
    .nt-sp-tab-pane .nt-sp-amenity-item{ font-size: 18px; }
    .nt-sp-tab-pane p, 
    .nt-sp-tab-pane li, 
    .nt-sp-tab-pane span:not([class*="nt-sp-acc"]), 
    .nt-sp-tab-pane .nt-sp-desc-text, 
    .nt-sp-tab-pane .nt-sp-rule-row, 
    .nt-sp-tab-pane .nt-sp-amenity-item{
        font-size: 16px;
    }
    .nt-sp-plain-para,
    .nt-sp-plain-list,
    .nt-sp-note-subcontent,
    .nt-sp-note-bullets li  { font-size: 16px; }
    /* Calendar mobile */
    .ntcal-summary__val     { font-size: 15px; }
    .ntcal-day              { height: 38px; font-size: 13px; }
    .ntcal-sel-item__label  { font-size: 16px; }
    .ntcal-price__amount    { font-size: 26px; }
    .ntcal-popup__row       { font-size: 14px; }
    .ntcal-actions          { grid-template-columns: 1fr; } /* single column on mobile */
    .nt-sp-btn.nt-sp-btn-primary.ntcal-btn--book,
    .nt-sp-btn.nt-sp-btn-secondary.ntcal-btn--inquiry,
    .nt-sp-btn { font-size: 13px !important; 
    }
    /* Lightbox mobile */
    .nt-sp-lb-stage         { padding: 56px 52px 0; }
    .nt-sp-lb-btn-nav,
    .nt-sp-lb-btn-close     { width: 40px !important; height: 40px !important; padding: 8px !important; }
    .nt-sp-lb-btn-prev      { left: 6px; }
    .nt-sp-lb-btn-next      { right: 6px; }
    .nt-sp-lb-img-wrap img  { max-height: calc(100vh - 180px); border-radius: 10px; }
    .nt-sp-lb-thumb         { width: 56px; height: 42px; }
}