.cc-nb-main-container {
    z-index: 2147483645;
    position: fixed;
    left: 24px;
    bottom: 24px;
    top: auto;
    right: auto;
    transform: none;
    width: 400px;
    max-width: calc(100vw - 48px);
    max-height: calc(100vh - 48px);
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
    padding: 22px 24px !important;
    background: #fff;
    border: 1px solid #e6e9ea;
    border-top: 3px solid #088395;
    border-radius: 16px;
    box-shadow: 0 12px 34px rgba(8, 51, 68, 0.16);
    font-family: 'Montserrat', sans-serif;
    outline: none;
}

.termsfeed-com---nb .cc-nb-title {
    margin: 0 0 8px !important;
    color: #083344 !important;
    font-family: 'Montserrat Alternates', sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}

.termsfeed-com---nb .cc-nb-text {
    margin: 0 !important;
    color: #566369 !important;
    font-size: 13.5px !important;
    line-height: 1.6 !important;
}

.termsfeed-com---nb .cc-nb-text a,
.cc-nb-text a {
    color: #088395 !important;
    text-decoration: underline !important;
}

.cc-nb-title-container,
.cc-nb-text-container {
    width: 100% !important;
}

.cc-nb-buttons-container {
    display: flex !important;
    width: 100% !important;
    margin-top: 18px;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

.cc-nb-okagree,
.cc-nb-reject {
    flex: 1 1 auto !important;
    padding: 11px 20px !important;
    border: 1.5px solid #083344 !important;
    border-radius: 10px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease !important;
}

.cc-nb-okagree {
    color: #fff !important;
    background-color: #083344 !important;
}

.cc-nb-okagree:hover {
    border-color: #0d4a5e !important;
    background-color: #0d4a5e !important;
}

.cc-nb-reject {
    color: #083344 !important;
    background-color: #fff !important;
}

.cc-nb-reject:hover {
    background-color: #eef4f5 !important;
}

.cc-nb-changep {
    flex: 0 0 100% !important;
    padding: 6px 4px !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: #6b7880 !important;
    background: transparent !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    text-align: center !important;
    text-decoration: underline !important;
    cursor: pointer !important;
    transition: color .2s ease !important;
}

.cc-nb-changep:hover {
    color: #083344 !important;
}

.termsfeed-com---palette-light .cc-cp-foot-save {
    border-color: #083344 !important;
    color: #fff !important;
    background: #083344 !important;
}

.termsfeed-com---palette-light .cc-cp-foot-byline,
.termsfeed-com---pc-dialog .cc-cp-foot-byline {
    display: none !important;
}

.termsfeed-com---pc-dialog .cc-cp-foot {
    justify-content: end !important;
}

.termsfeed-com---palette-light .cc-pc-head-close:active,
.termsfeed-com---palette-light .cc-pc-head-close:focus {
    border: 2px solid #088395 !important;
}

.termsfeed-com---palette-light .cc-pc-head-lang select:focus {
    box-shadow: 0 0 0 2px #088395 !important;
}

.cc-nb-okagree:focus-visible,
.cc-nb-reject:focus-visible,
.cc-nb-changep:focus-visible {
    outline: 3px solid rgba(8, 131, 149, .35) !important;
    outline-offset: 2px !important;
}

@media (max-width: 768px) {
    .cc-nb-main-container {
        left: 12px;
        right: auto;
        bottom: 12px;
        width: calc(100vw - 84px);
        max-width: 360px;
        padding: 20px !important;
    }
}

@media (max-width: 991px) {
    body.ot-property-detail-page .cc-nb-main-container {
        bottom: calc(88px + env(safe-area-inset-bottom, 0px));
    }
}
/* ---------------------------------------------------------------------------
   Spin & Win landing page — slim bottom strip variant.

   Paid traffic lands on /spin-the-wheel/. The shared banner is a 400px card
   pinned bottom-left, which measured 30.9% of viewport height on desktop (with
   the spin button 57% covered and unclickable) and 48.1% at 360px (email field
   56% covered, unclickable). The banner must never block the ad landing
   experience, so this page gets a slim full-width strip instead.

   Scoped with :has(#wheel) rather than a body class so no page markup changes
   are needed — /spin-the-wheel/ and the preview both carry #wheel, and nothing
   else on the domain does. Browsers without :has() simply keep the shared card,
   which is a degraded layout, never a broken or missing banner.

   NOT changed: the banner still appears, still blocks all non-essential
   storage until an explicit choice, and the Meta pixel still fires only after
   consent (PECR). This is presentation only.
   --------------------------------------------------------------------------- */

body:has(#wheel) .cc-nb-main-container {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    padding: 10px 16px !important;
    border: 0 !important;
    border-top: 2px solid #088395 !important;
    border-radius: 0 !important;
    box-shadow: 0 -2px 12px rgba(8, 51, 68, .12) !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px 14px !important;
    overflow: visible !important;
}

/* Title is redundant in a one-line strip; the text carries the meaning. */
body:has(#wheel) .cc-nb-title-container {
    display: none !important;
}

body:has(#wheel) .cc-nb-text-container {
    width: auto !important;
    flex: 1 1 320px !important;
    min-width: 0 !important;
}

body:has(#wheel) .cc-nb-text {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
}

body:has(#wheel) .cc-nb-buttons-container {
    width: auto !important;
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
}

/* Equal weight: identical fill, border, colour, size and typography, so
   neither choice is visually privileged. */
body:has(#wheel) .cc-nb-okagree,
body:has(#wheel) .cc-nb-reject {
    flex: 0 0 auto !important;
    min-width: 104px !important;
    padding: 9px 18px !important;
    border: 1.5px solid #083344 !important;
    border-radius: 9px !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #083344 !important;
    background-color: #fff !important;
}

body:has(#wheel) .cc-nb-okagree:hover,
body:has(#wheel) .cc-nb-reject:hover {
    background-color: #eef4f5 !important;
    border-color: #0d4a5e !important;
}

body:has(#wheel) .cc-nb-changep {
    flex: 0 0 auto !important;
    width: auto !important;
    padding: 4px 8px !important;
    font-size: 12px !important;
}

@media (max-width: 768px) {
    body:has(#wheel) .cc-nb-main-container {
        left: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-width: none !important;
        padding: 8px 12px !important;
        gap: 4px 8px !important;
    }

    body:has(#wheel) .cc-nb-text {
        font-size: 11.5px !important;
        line-height: 1.35 !important;
    }

    body:has(#wheel) .cc-nb-text-container {
        flex: 1 1 100% !important;
    }

    body:has(#wheel) .cc-nb-buttons-container {
        width: 100% !important;
        flex: 1 1 100% !important;
        justify-content: center !important;
    }

    body:has(#wheel) .cc-nb-okagree,
    body:has(#wheel) .cc-nb-reject {
        flex: 1 1 0 !important;
        min-width: 96px !important;
        padding: 8px 10px !important;
    }

    body:has(#wheel) .cc-nb-changep {
        flex: 0 0 100% !important;
        padding: 2px 4px !important;
    }
}

/* Reserve scroll space while the strip is on screen, so every control can be
   scrolled clear of it. At 360px the page already scrolls (1158px of content
   in a 780px viewport) and the email field straddles the fold before any
   banner exists, so without this the last control on the page could sit under
   the strip at maximum scroll with no way to reach it.

   Scoped to :has(.cc-nb-main-container) so the reserved space disappears with
   the banner once a choice is made. */
body:has(#wheel):has(.cc-nb-main-container) {
    padding-bottom: 96px !important;
}

@media (max-width: 768px) {
    body:has(#wheel):has(.cc-nb-main-container) {
        padding-bottom: 132px !important;
    }
}
