:root{--ocp-navy:#0f2c45;--ocp-blue:var(--oc-primary,#e67b4e);--ocp-blue-dark:var(--oc-primary-dark,#cf653a);--ocp-aqua:var(--oc-primary,#e67b4e);--ocp-primary-soft:var(--oc-primary-soft,#fff1eb);--ocp-primary-rgb:var(--oc-primary-rgb,230,123,78);--ocp-ink:#142536;--ocp-muted:#6f7d89;--ocp-line:#e6edf2;--ocp-soft:#f5f8fa;--ocp-white:#fff;--ocp-shadow:0 16px 45px rgba(23,45,65,.10)}
.ocp-directory,.ocp-featured,.ocp-single-property{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ocp-ink);box-sizing:border-box}.ocp-directory *,.ocp-featured *,.ocp-single-property *{box-sizing:border-box}.ocp-directory svg,.ocp-featured svg,.ocp-single-property svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ocp-directory{max-width:1320px;margin:36px auto;padding:0 22px}.ocp-directory__header{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px}.ocp-directory__header h2{font-size:clamp(30px,4vw,48px);line-height:1.07;letter-spacing:-.035em;margin:5px 0 10px;color:var(--ocp-navy)}.ocp-directory__header p{max-width:650px;margin:0;color:var(--ocp-muted);font-size:16px;line-height:1.65}.ocp-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--ocp-blue)}.ocp-result-count{min-width:120px;padding:14px 18px;border:1px solid var(--ocp-line);border-radius:14px;background:#fff;text-align:center;box-shadow:0 8px 28px rgba(25,55,80,.06)}.ocp-result-count strong{display:block;font-size:25px;color:var(--ocp-navy)}.ocp-result-count span{font-size:12px;color:var(--ocp-muted);text-transform:uppercase;letter-spacing:.08em}
.ocp-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;border:1px solid var(--ocp-line);border-radius:18px;padding:12px;margin:0 0 28px;box-shadow:0 10px 35px rgba(26,53,77,.07)}.ocp-filter{position:relative;flex:1 1 150px}.ocp-filter--search{flex-basis:250px}.ocp-filter--price{flex-basis:120px}.ocp-filter input,.ocp-filter select{width:100%;height:48px;border:0!important;outline:0;border-radius:12px;background:var(--ocp-soft);padding:0 14px;color:var(--ocp-ink);font:inherit;font-size:14px;box-shadow:none!important}.ocp-filter--search input{padding-left:44px}.ocp-filter__icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#8a98a4;display:flex}.ocp-button{appearance:none;border:0;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;min-height:48px;padding:0 20px;font-weight:750;font-size:14px;cursor:pointer;transition:.2s ease}.ocp-button--primary{background:var(--ocp-blue);color:#fff!important;box-shadow:0 8px 20px rgba(var(--ocp-primary-rgb),.24)}.ocp-button--primary:hover{background:var(--ocp-blue-dark);transform:translateY(-1px)}.ocp-button--secondary{background:#fff;color:var(--ocp-navy)!important;border:1px solid var(--ocp-line)}.ocp-button--full{width:100%}.ocp-clear-filters{padding:8px 10px;color:var(--ocp-muted);font-size:13px;text-decoration:none}.ocp-property-grid{display:grid;grid-template-columns:repeat(var(--ocp-columns,3),minmax(0,1fr));gap:22px}
.ocp-property-card{overflow:hidden;background:#fff;border:1px solid var(--ocp-line);border-radius:18px;box-shadow:0 10px 35px rgba(23,45,65,.07);transition:transform .25s ease,box-shadow .25s ease}.ocp-property-card:hover{transform:translateY(-5px);box-shadow:var(--ocp-shadow)}.ocp-property-card__media{position:relative;display:block;height:238px;overflow:hidden;background:linear-gradient(145deg,#dceff7,#edf7f8)}.ocp-property-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}.ocp-property-card:hover .ocp-property-card__media img{transform:scale(1.045)}.ocp-property-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,33,52,.28),transparent 55%)}.ocp-property-card__placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--ocp-blue)}.ocp-property-card__placeholder svg{width:58px;height:58px;opacity:.5}.ocp-badge{position:relative;display:inline-flex;align-items:center;border-radius:999px;background:var(--ocp-blue);color:#fff;font-size:11px;font-weight:800;line-height:1;padding:8px 11px;letter-spacing:.03em}.ocp-property-card__media>.ocp-badge{position:absolute;left:14px;top:14px}.ocp-property-card__media>.ocp-badge--featured{left:auto;right:14px;background:#fff;color:var(--ocp-blue)}.ocp-badge--outline{background:#fff;color:var(--ocp-navy);border:1px solid var(--ocp-line)}.ocp-badge--additional{background:var(--ocp-navy);color:#fff}.ocp-property-card__body{padding:18px}.ocp-card-location{display:flex;align-items:center;gap:6px;color:var(--ocp-muted);font-size:12px;min-height:20px}.ocp-card-location svg{width:15px;height:15px;color:var(--ocp-blue);flex:0 0 auto}.ocp-property-card h3{font-size:20px;line-height:1.25;letter-spacing:-.02em;margin:8px 0 7px}.ocp-property-card h3 a{color:var(--ocp-navy);text-decoration:none}.ocp-card-price{font-size:22px;line-height:1.2;font-weight:850;color:var(--ocp-navy);margin-bottom:16px}.ocp-property-card__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ocp-property-card__facts>span{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:7px;align-items:center;justify-content:start;background:var(--ocp-soft);border-radius:10px;padding:8px 9px;min-width:0}.ocp-property-card__facts svg{grid-row:1/3;width:18px;height:18px;color:var(--ocp-blue)}.ocp-property-card__facts b{font-size:13px;line-height:1}.ocp-property-card__facts small{font-size:9px;color:var(--ocp-muted);line-height:1.2;text-transform:uppercase}.ocp-property-card__footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px;padding-top:14px;border-top:1px solid var(--ocp-line);font-size:11px;color:var(--ocp-muted)}.ocp-property-card__footer a{display:inline-flex;align-items:center;gap:5px;color:var(--ocp-blue);font-weight:750;text-decoration:none}.ocp-property-card__footer svg{width:15px;height:15px}.ocp-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:32px}.ocp-pagination a,.ocp-pagination .current{display:flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--ocp-line);text-decoration:none;background:#fff;color:var(--ocp-navy)}.ocp-pagination .current{background:var(--ocp-blue);color:#fff;border-color:var(--ocp-blue)}.ocp-empty-state{text-align:center;background:#fff;border:1px solid var(--ocp-line);border-radius:18px;padding:50px 24px}.ocp-empty-state>svg{width:45px;height:45px;color:var(--ocp-blue)}.ocp-empty-state h3{font-size:25px;margin:12px 0 5px}.ocp-empty-state p{color:var(--ocp-muted);margin:0 0 20px}
.ocp-template-shell{background:#f5f8fa;padding:28px 0 70px}.ocp-single-property{max-width:1280px;margin:0 auto;padding:0 22px}.ocp-single-property__topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;color:var(--ocp-muted);font-size:13px}.ocp-single-property__topbar a{display:inline-flex;align-items:center;gap:8px;color:var(--ocp-navy);text-decoration:none;font-weight:700}.ocp-single-property__topbar svg{width:17px;height:17px}.ocp-single-header{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px}.ocp-single-header h1{font-size:clamp(32px,4vw,54px);letter-spacing:-.04em;line-height:1.04;margin:10px 0 9px;color:var(--ocp-navy)}.ocp-single-badges{display:flex;flex-wrap:wrap;gap:8px}.ocp-single-location{display:flex;align-items:center;gap:7px;color:var(--ocp-muted);margin:0}.ocp-single-location svg{width:18px;height:18px;color:var(--ocp-blue)}.ocp-single-price{text-align:right;white-space:nowrap}.ocp-single-price small{display:block;color:var(--ocp-muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700}.ocp-single-price strong{display:block;font-size:clamp(28px,3vw,42px);letter-spacing:-.03em;color:var(--ocp-navy)}
.ocp-gallery{margin-bottom:28px}.ocp-gallery{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:12px;height:520px}.ocp-gallery button{border:0;padding:0;cursor:pointer;overflow:hidden;background:#e7f0f4}.ocp-gallery button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.ocp-gallery button:hover img{transform:scale(1.025)}.ocp-gallery__main{position:relative;border-radius:20px 7px 7px 20px}.ocp-gallery__main>span{position:absolute;left:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);color:var(--ocp-navy);padding:10px 13px;border-radius:10px;font-weight:750;font-size:13px}.ocp-gallery__main>span svg{width:17px;height:17px}.ocp-gallery__side{display:grid;grid-template-rows:1fr 1fr;gap:12px}.ocp-gallery__side button:first-child,.ocp-gallery__placeholder:first-child{border-radius:7px 20px 7px 7px}.ocp-gallery__side button:last-child,.ocp-gallery__placeholder:last-child{border-radius:7px 7px 20px 7px}.ocp-gallery__placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#e2f1f7,#edf7f7);color:var(--ocp-blue)}.ocp-gallery__placeholder svg{width:55px;height:55px;opacity:.35}.ocp-gallery__empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(145deg,#e3f2f8,#f1f8f8);color:var(--ocp-blue)}.ocp-gallery__empty svg{width:70px;height:70px;opacity:.4}.ocp-gallery__empty span{font-weight:700;margin-top:10px}.ocp-lightbox{position:fixed;z-index:999999;inset:0;background:rgba(4,14,24,.94);display:none;align-items:center;justify-content:center;padding:40px}.ocp-lightbox[aria-hidden="false"]{display:flex}.ocp-lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}.ocp-lightbox button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;width:48px;height:48px;font-size:34px;line-height:1}.ocp-lightbox__close{right:22px;top:22px}.ocp-lightbox__prev{left:22px;top:50%;transform:translateY(-50%)}.ocp-lightbox__next{right:22px;top:50%;transform:translateY(-50%)}body.ocp-lightbox-open{overflow:hidden}
.ocp-single-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:26px;align-items:start}.ocp-single-main{display:grid;gap:22px}.ocp-facts-panel,.ocp-content-panel,.ocp-enquiry-card{background:#fff;border:1px solid var(--ocp-line);border-radius:18px;box-shadow:0 10px 35px rgba(23,45,65,.055)}.ocp-facts-panel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:18px}.ocp-fact{display:flex;align-items:center;gap:10px;padding:10px 14px;border-right:1px solid var(--ocp-line)}.ocp-fact:last-child{border-right:0}.ocp-fact__icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:#eaf6fb;color:var(--ocp-blue);flex:0 0 auto}.ocp-fact small,.ocp-fact strong{display:block}.ocp-fact small{font-size:10px;line-height:1.2;color:var(--ocp-muted);text-transform:uppercase;letter-spacing:.06em}.ocp-fact strong{font-size:15px;color:var(--ocp-navy);margin-top:3px}.ocp-content-panel{padding:26px}.ocp-content-panel h2,.ocp-enquiry-card h2{font-size:24px;letter-spacing:-.025em;color:var(--ocp-navy);margin:0 0 17px}.ocp-property-description{font-size:16px;line-height:1.8;color:#445563}.ocp-property-description>*:first-child{margin-top:0}.ocp-property-description>*:last-child{margin-bottom:0}.ocp-panel-heading{display:flex;justify-content:space-between;align-items:center}.ocp-panel-heading a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ocp-blue);font-weight:700;font-size:13px}.ocp-panel-heading svg{width:16px;height:16px}.ocp-map-placeholder{min-height:190px;border-radius:14px;background:linear-gradient(135deg,#edf6f8,#f5f8f9);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;color:var(--ocp-muted)}.ocp-map-placeholder svg{width:42px;height:42px;color:var(--ocp-blue);margin-bottom:10px}.ocp-map-placeholder strong{color:var(--ocp-navy);font-size:17px}.ocp-map-placeholder span{font-size:13px;margin-top:5px}
.ocp-enquiry-card{position:sticky;top:24px;padding:23px}.ocp-enquiry-card__heading{display:flex;gap:12px;margin-bottom:18px}.ocp-enquiry-card__icon{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:13px;background:#eaf6fb;color:var(--ocp-blue);flex:0 0 auto}.ocp-enquiry-card__heading h2{font-size:22px;margin:0 0 4px}.ocp-enquiry-card__heading p{font-size:13px;color:var(--ocp-muted);line-height:1.45;margin:0}.ocp-enquiry-form{display:grid;gap:13px}.ocp-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ocp-enquiry-form label>span{display:block;font-size:12px;font-weight:750;color:#4a5b68;margin-bottom:6px}.ocp-enquiry-form input[type="text"],.ocp-enquiry-form input[type="tel"],.ocp-enquiry-form input[type="email"],.ocp-enquiry-form input[type="date"],.ocp-enquiry-form textarea{width:100%;border:1px solid var(--ocp-line)!important;border-radius:11px;background:#f8fafb;padding:11px 12px;color:var(--ocp-ink);font:inherit;font-size:14px;outline:0;box-shadow:none!important}.ocp-enquiry-form input:focus,.ocp-enquiry-form textarea:focus{border-color:var(--ocp-blue)!important;background:#fff;box-shadow:0 0 0 3px rgba(var(--ocp-primary-rgb),.10)!important}.ocp-consent{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:8px}.ocp-consent input{margin-top:3px}.ocp-consent span{font-weight:500!important;color:var(--ocp-muted)!important;line-height:1.4}.ocp-form-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--ocp-muted);margin:0}.ocp-form-note svg{width:14px;height:14px}.ocp-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.ocp-notice{padding:12px 14px;border-radius:10px;font-size:13px;margin-bottom:14px}.ocp-notice--success{background:#eaf8f2;color:#196b4e;border:1px solid #c9eadc}.ocp-notice--error{background:#fff0f0;color:#9f3131;border:1px solid #f2cccc}.ocp-contact-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px;padding-top:17px;border-top:1px solid var(--ocp-line)}.ocp-contact-options a{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ocp-navy);background:var(--ocp-soft);border-radius:11px;padding:10px}.ocp-contact-options svg{width:19px;height:19px;color:var(--ocp-blue);flex:0 0 auto}.ocp-contact-options small,.ocp-contact-options span{display:block}.ocp-contact-options small{font-size:9px;color:var(--ocp-muted);text-transform:uppercase}.ocp-contact-options span{font-size:12px;font-weight:700;overflow-wrap:anywhere}
@media(max-width:1100px){.ocp-property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ocp-single-layout{grid-template-columns:1fr}.ocp-enquiry-card{position:static}.ocp-facts-panel{grid-template-columns:repeat(3,1fr)}.ocp-fact{border-right:0}.ocp-gallery{height:430px}}
@media(max-width:760px){.ocp-directory{padding:0 14px;margin:24px auto}.ocp-directory__header,.ocp-single-header{align-items:flex-start;flex-direction:column}.ocp-result-count{display:none}.ocp-filters{border-radius:15px}.ocp-filter,.ocp-filter--search,.ocp-filter--price{flex-basis:100%}.ocp-filters>.ocp-button{width:100%}.ocp-property-grid{grid-template-columns:1fr}.ocp-property-card__media{height:230px}.ocp-template-shell{padding-top:18px}.ocp-single-property{padding:0 14px}.ocp-single-property__topbar>span{display:none}.ocp-single-price{text-align:left}.ocp-gallery{height:420px;grid-template-columns:1fr;grid-template-rows:2fr 1fr}.ocp-gallery__main{border-radius:16px 16px 6px 6px}.ocp-gallery__side{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.ocp-gallery__side button:first-child,.ocp-gallery__placeholder:first-child{border-radius:6px 6px 6px 16px}.ocp-gallery__side button:last-child,.ocp-gallery__placeholder:last-child{border-radius:6px 6px 16px 6px}.ocp-facts-panel{grid-template-columns:repeat(2,1fr);padding:12px}.ocp-fact{padding:8px}.ocp-content-panel,.ocp-enquiry-card{padding:19px}.ocp-form-row{grid-template-columns:1fr}.ocp-lightbox{padding:15px}.ocp-lightbox button{width:42px;height:42px}.ocp-lightbox__prev{left:8px}.ocp-lightbox__next{right:8px}.ocp-lightbox__close{right:8px;top:8px}}
@media(max-width:420px){.ocp-property-card__facts{grid-template-columns:repeat(3,minmax(0,1fr))}.ocp-property-card__facts>span{padding:7px 6px}.ocp-facts-panel{grid-template-columns:1fr}.ocp-contact-options{grid-template-columns:1fr}.ocp-gallery{height:350px}}
.ocp-directory .screen-reader-text,.ocp-single-property .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.ocp-template-shell--archive .ocp-directory{margin-top:0;margin-bottom:0}

/* Version 0.2.0: warm modern palette, editable heading alignment and search tabs. */
.ocp-directory,
.ocp-featured,
.ocp-single-property {
    --ocp-navy: #26323b;
    --ocp-blue: var(--oc-primary, #e67b4e);
    --ocp-blue-dark: var(--oc-primary-dark, #cf653a);
    --ocp-aqua: var(--oc-primary, #e67b4e);
    --ocp-primary-soft: var(--oc-primary-soft, #fff1eb);
    --ocp-primary-rgb: var(--oc-primary-rgb, 230, 123, 78);
    --ocp-ink: #25313a;
    --ocp-muted: #7c858c;
    --ocp-line: #eceae7;
    --ocp-soft: #f7f7f5;
    --ocp-shadow: 0 16px 44px rgba(53, 43, 35, 0.10);
}

.ocp-directory__heading-copy {
    min-width: 0;
}

.ocp-directory--heading-center .ocp-directory__header {
    position: relative;
    justify-content: center;
    text-align: center;
}

.ocp-directory--heading-center .ocp-directory__heading-copy {
    width: min(760px, 100%);
    margin-inline: auto;
}

.ocp-directory--heading-center .ocp-directory__header p {
    margin-inline: auto;
}

.ocp-directory--heading-center .ocp-result-count {
    position: absolute;
    top: 0;
    right: 0;
}

.ocp-search-tabs {
    display: flex;
    margin: 0 0 12px;
}

.ocp-search-tabs--left {
    justify-content: flex-start;
}

.ocp-search-tabs--center {
    justify-content: center;
}

.ocp-search-tabs__inner {
    display: inline-grid;
    width: min(100%, var(--ocp-search-tabs-width, 420px));
    grid-template-columns: repeat(var(--ocp-tab-count, 3), minmax(78px, 1fr));
    align-items: center;
    gap: 3px;
    padding: 4px;
    border: 1px solid #efeeeb;
    border-radius: 15px;
    background: #f7f7f5;
}

.ocp-search-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 16px;
    border-radius: 11px;
    color: #70777c;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.ocp-search-tabs a svg {
    width: 15px;
    height: 15px;
}

.ocp-search-tabs a:hover,
.ocp-search-tabs a.is-active {
    background: #ffffff;
    color: var(--ocp-blue);
    box-shadow: 0 7px 18px rgba(72, 57, 45, .10);
}

.ocp-search-tabs a:hover {
    transform: translateY(-1px);
}

.ocp-filters {
    border-color: #eceae7;
    box-shadow: 0 12px 34px rgba(58, 48, 40, .06);
}

.ocp-filter input,
.ocp-filter select {
    background: #f7f7f5;
}

.ocp-button--primary {
    box-shadow: 0 8px 20px rgba(var(--ocp-primary-rgb), .23);
}

@media (max-width: 760px) {
    .ocp-directory--heading-center .ocp-directory__header {
        align-items: center;
        text-align: center;
    }

    .ocp-directory--heading-center .ocp-result-count {
        position: static;
    }

    .ocp-search-tabs,
    .ocp-search-tabs--left,
    .ocp-search-tabs--center {
        justify-content: center;
    }

    .ocp-search-tabs__inner {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ocp-search-tabs a {
        min-width: 0;
        padding-inline: 8px;
    }
}

/* Version 0.3.1: streamlined status tabs, result count in button, compact full-row filters. */
.ocp-directory__header {
    justify-content: flex-start;
}

.ocp-directory--heading-center .ocp-directory__header {
    justify-content: center;
}

.ocp-filters {
    display: grid;
    grid-template-columns:
        minmax(220px, 1.55fr)
        minmax(140px, .95fr)
        minmax(140px, .95fr)
        minmax(110px, .72fr)
        minmax(110px, .72fr)
        minmax(125px, .8fr)
        minmax(205px, 1.2fr);
    gap: 10px;
    align-items: stretch;
}

.ocp-filters > input[type="hidden"] {
    display: none;
}

.ocp-filters .ocp-filter,
.ocp-filters .ocp-filter--search,
.ocp-filters .ocp-filter--price,
.ocp-filters .ocp-filter--bedrooms {
    min-width: 0;
    flex: none;
}

.ocp-filter-actions {
    display: grid;
    grid-template-columns: minmax(132px, 1fr) auto;
    gap: 8px;
    min-width: 0;
}

.ocp-search-button {
    width: 100%;
    min-width: 0;
    padding-inline: 15px 10px;
    white-space: nowrap;
}

.ocp-search-button__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .20);
    color: inherit;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.ocp-filter-actions .ocp-clear-filters {
    min-width: 72px;
    padding-inline: 14px;
    color: var(--ocp-muted) !important;
    white-space: nowrap;
}

@media (max-width: 1120px) {
    .ocp-filters {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ocp-filter--search {
        grid-column: span 2;
    }

    .ocp-filter-actions {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .ocp-filters {
        grid-template-columns: 1fr;
    }

    .ocp-filter--search,
    .ocp-filter-actions {
        grid-column: auto;
    }

    .ocp-filter-actions {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

@media (max-width: 420px) {
    .ocp-filter-actions {
        grid-template-columns: 1fr;
    }

    .ocp-filter-actions .ocp-clear-filters {
        width: 100%;
    }
}


/* Version 0.3.2: inset rounded card images and simplified price search. */
.ocp-filters {
    grid-template-columns:
        minmax(240px, 1.65fr)
        minmax(145px, .95fr)
        minmax(145px, .95fr)
        minmax(125px, .78fr)
        minmax(125px, .82fr)
        minmax(205px, 1.2fr);
}

.ocp-property-card {
    padding-top: 10px;
}

.ocp-property-card__media {
    width: auto;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: 0 10px;
    border-radius: 14px;
}

.ocp-property-card__overlay {
    background: linear-gradient(to top, rgba(7, 33, 52, .16), transparent 48%);
}

.ocp-property-card__body {
    padding-top: 18px;
}

@media (max-width: 760px) {
    .ocp-property-card__media {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

/* Version 0.3.3: stable single-property layout and swipeable full gallery with thumbnails. */
.ocp-gallery {
    position: relative;
    clear: both;
    isolation: isolate;
}

.ocp-single-layout {
    position: relative;
    clear: both;
    z-index: 1;
    margin-top: 0;
}

/* Keep the viewing form in the document flow so it cannot cover gallery images or text. */
.ocp-enquiry-card {
    position: static;
    top: auto;
}

.ocp-lightbox {
    flex-direction: column;
    align-items: stretch;
    justify-content: stretch;
    gap: 10px;
    padding: 18px 70px 12px;
}

.ocp-lightbox__stage {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    touch-action: pan-y pinch-zoom;
    user-select: none;
    -webkit-user-select: none;
}

.ocp-lightbox .ocp-lightbox__image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100dvh - 145px);
    object-fit: contain;
    transition: opacity .12s ease;
    -webkit-user-drag: none;
}

.ocp-lightbox .ocp-lightbox__image.is-touching {
    opacity: .88;
}

.ocp-lightbox__counter {
    position: absolute;
    z-index: 2;
    top: 8px;
    left: 8px;
    padding: 6px 9px;
    border-radius: 8px;
    background: rgba(0, 0, 0, .48);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.ocp-lightbox .ocp-lightbox__close,
.ocp-lightbox .ocp-lightbox__prev,
.ocp-lightbox .ocp-lightbox__next {
    position: absolute;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 999px;
    background: rgba(0, 0, 0, .48);
    color: #fff;
    font-size: 34px;
    line-height: 1;
}

.ocp-lightbox .ocp-lightbox__close {
    top: 16px;
    right: 18px;
}

.ocp-lightbox .ocp-lightbox__prev {
    top: 50%;
    left: 12px;
    transform: translateY(-50%);
}

.ocp-lightbox .ocp-lightbox__next {
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
}

.ocp-lightbox__thumbs {
    position: relative;
    z-index: 3;
    display: flex;
    flex: 0 0 auto;
    width: 100%;
    max-width: 1260px;
    margin: 0 auto;
    gap: 7px;
    align-items: center;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 3px 5px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .35) transparent;
    -webkit-overflow-scrolling: touch;
}

.ocp-lightbox .ocp-lightbox__thumb {
    position: relative;
    display: block;
    flex: 0 0 92px;
    width: 92px;
    height: 60px;
    padding: 0;
    overflow: hidden;
    border: 2px solid transparent;
    border-radius: 7px;
    background: #161616;
    opacity: .68;
    cursor: pointer;
    transition: opacity .15s ease, border-color .15s ease, transform .15s ease;
}

.ocp-lightbox .ocp-lightbox__thumb:hover,
.ocp-lightbox .ocp-lightbox__thumb.is-active {
    opacity: 1;
    transform: translateY(-1px);
}

.ocp-lightbox .ocp-lightbox__thumb.is-active {
    border-color: var(--ocp-blue);
}

.ocp-lightbox .ocp-lightbox__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
}

@media (max-width: 760px) {
    .ocp-lightbox {
        gap: 8px;
        padding: 52px 10px 9px;
    }

    .ocp-lightbox .ocp-lightbox__image {
        max-height: calc(100dvh - 132px);
    }

    .ocp-lightbox .ocp-lightbox__close {
        top: 7px;
        right: 7px;
    }

    .ocp-lightbox .ocp-lightbox__prev,
    .ocp-lightbox .ocp-lightbox__next {
        width: 42px;
        height: 42px;
        background: rgba(0, 0, 0, .42);
    }

    .ocp-lightbox .ocp-lightbox__prev {
        left: 4px;
    }

    .ocp-lightbox .ocp-lightbox__next {
        right: 4px;
    }

    .ocp-lightbox__counter {
        top: 6px;
        left: 6px;
    }

    .ocp-lightbox .ocp-lightbox__thumb {
        flex-basis: 74px;
        width: 74px;
        height: 50px;
    }
}


/* Version 0.3.4: gallery occupies its own complete row before property information. */
.ocp-single-property > .ocp-gallery {
    display: block !important;
    position: relative !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 28px !important;
    overflow: visible !important;
    isolation: auto;
}

.ocp-gallery__display {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
    gap: 12px;
    width: 100%;
    height: 520px;
    min-height: 520px;
    overflow: hidden;
    border-radius: 20px;
}

.ocp-gallery__display > .ocp-gallery__main,
.ocp-gallery__display > .ocp-gallery__side {
    min-width: 0;
    min-height: 0;
}

.ocp-gallery__display .ocp-gallery__main {
    border-radius: 20px 7px 7px 20px;
}

.ocp-gallery__display .ocp-gallery__side {
    height: 100%;
}

.ocp-single-property > .ocp-single-layout {
    display: grid !important;
    position: relative !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    z-index: auto !important;
}

.ocp-single-property > .ocp-single-layout::before {
    content: "";
    display: table;
    clear: both;
}

@media (max-width: 1100px) {
    .ocp-gallery__display {
        height: 430px;
        min-height: 430px;
    }
}

@media (max-width: 760px) {
    .ocp-single-property > .ocp-gallery {
        margin-bottom: 20px !important;
    }

    .ocp-gallery__display {
        grid-template-columns: 1fr;
        grid-template-rows: minmax(0, 2fr) minmax(0, 1fr);
        height: 420px;
        min-height: 420px;
        border-radius: 16px;
    }

    .ocp-gallery__display .ocp-gallery__main {
        border-radius: 16px 16px 6px 6px;
    }
}

@media (max-width: 420px) {
    .ocp-gallery__display {
        height: 350px;
        min-height: 350px;
    }
}

/* Version 0.3.5: corrected property columns, sticky enquiry and mouse-drag gallery. */
.ocp-single-property > .ocp-single-layout::before {
    content: none !important;
    display: none !important;
}

.ocp-single-main,
.ocp-enquiry-card {
    min-width: 0;
}

@media (min-width: 981px) {
    .ocp-single-property > .ocp-single-layout {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 420px) !important;
        gap: 26px !important;
        align-items: start !important;
    }

    .ocp-single-property > .ocp-single-layout > .ocp-single-main {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    .ocp-single-property > .ocp-single-layout > .ocp-enquiry-card {
        grid-column: 2 !important;
        grid-row: 1 !important;
        position: sticky !important;
        top: calc(92px + var(--wp-admin--admin-bar--height, 0px)) !important;
        align-self: start !important;
        z-index: 2;
    }
}

@media (max-width: 980px) {
    .ocp-single-property > .ocp-single-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .ocp-single-property > .ocp-single-layout > .ocp-single-main,
    .ocp-single-property > .ocp-single-layout > .ocp-enquiry-card {
        grid-column: 1 !important;
        grid-row: auto !important;
    }

    .ocp-single-property > .ocp-single-layout > .ocp-enquiry-card {
        position: static !important;
        top: auto !important;
    }
}

.ocp-lightbox__stage {
    cursor: grab;
}

.ocp-lightbox__stage.is-dragging {
    cursor: grabbing;
}

.ocp-lightbox .ocp-lightbox__image {
    will-change: transform, opacity;
    transition: transform .16s ease, opacity .12s ease;
}

.ocp-lightbox__stage.is-dragging .ocp-lightbox__image {
    transition: none;
}

.ocp-lightbox__thumbs {
    display: block;
    width: 100%;
    max-width: 1260px;
    margin: 0 auto;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 3px 5px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.35) transparent;
    -webkit-overflow-scrolling: touch;
}

.ocp-lightbox__thumbs-inner {
    display: flex;
    width: max-content;
    min-width: 100%;
    gap: 7px;
    align-items: center;
    justify-content: center;
}


/* Version 0.3.6: property facts always fill their panel without unused columns. */
.ocp-facts-panel {
    grid-template-columns: repeat(var(--ocp-facts-columns, 1), minmax(0, 1fr)) !important;
    width: 100%;
}

.ocp-facts-panel--count-1 { --ocp-facts-columns: 1; }
.ocp-facts-panel--count-2 { --ocp-facts-columns: 2; }
.ocp-facts-panel--count-3 { --ocp-facts-columns: 3; }
.ocp-facts-panel--count-4 { --ocp-facts-columns: 4; }
.ocp-facts-panel--count-5 { --ocp-facts-columns: 5; }

.ocp-facts-panel .ocp-fact {
    min-width: 0;
}

.ocp-facts-panel .ocp-fact > span:last-child {
    min-width: 0;
}

@media (max-width: 760px) {
    .ocp-facts-panel--count-3 {
        --ocp-facts-columns: 3;
    }

    .ocp-facts-panel--count-4,
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
    }

    .ocp-facts-panel {
        gap: 0;
        padding: 12px !important;
    }

    .ocp-facts-panel .ocp-fact {
        width: auto !important;
        padding: 11px 9px !important;
        border-right: 0 !important;
    }
}

@media (max-width: 420px) {
    .ocp-facts-panel--count-2,
    .ocp-facts-panel--count-3,
    .ocp-facts-panel--count-4,
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
    }

    .ocp-facts-panel .ocp-fact__icon {
        width: 40px;
        height: 40px;
    }

    .ocp-facts-panel .ocp-fact {
        gap: 8px;
        padding: 10px 7px !important;
    }

    .ocp-facts-panel .ocp-fact small {
        font-size: 9px;
        letter-spacing: .045em;
    }

    .ocp-facts-panel .ocp-fact strong {
        font-size: 14px;
    }
}

/* Version 0.3.7: responsive search form without horizontal page overflow. */
.ocp-directory,
.ocp-filters,
.ocp-filters .ocp-filter,
.ocp-filter-actions {
    min-width: 0;
    max-width: 100%;
}

.ocp-filter input,
.ocp-filter select,
.ocp-search-button,
.ocp-filter-actions .ocp-clear-filters {
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 1120px) {
    .ocp-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: 100%;
    }

    .ocp-filters .ocp-filter--search,
    .ocp-filters .ocp-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 760px) {
    .ocp-directory {
        width: 100%;
        overflow: visible;
    }

    .ocp-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        padding: 12px;
        gap: 10px;
        overflow: hidden;
    }

    .ocp-filters .ocp-filter--search,
    .ocp-filters .ocp-filter-actions {
        grid-column: 1 / -1;
    }

    .ocp-filter-actions {
        grid-template-columns: minmax(0, 1fr) auto;
        width: 100%;
    }
}

@media (max-width: 360px) {
    .ocp-filters {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .ocp-filters .ocp-filter--search,
    .ocp-filters .ocp-filter-actions {
        grid-column: auto;
    }

    .ocp-filter-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .ocp-filter-actions .ocp-clear-filters {
        width: 100%;
    }
}


/* Version 0.3.8: compact, single-row listing-status tabs on small screens. */
@media (max-width: 760px) {
    .ocp-search-tabs {
        width: 100%;
        margin-bottom: 8px;
    }

    .ocp-search-tabs__inner {
        display: grid;
        width: 100%;
        max-width: none;
        grid-template-columns: repeat(var(--ocp-tab-count, 3), minmax(0, 1fr)) !important;
        gap: 2px;
        padding: 3px;
        border-radius: 13px;
    }

    .ocp-search-tabs a {
        width: 100%;
        min-width: 0;
        min-height: 34px;
        padding: 0 4px;
        gap: 3px;
        border-radius: 10px;
        font-size: clamp(10px, 3vw, 12px);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ocp-search-tabs a svg {
        width: 13px;
        height: 13px;
        flex: 0 0 auto;
    }
}

@media (max-width: 380px) {
    .ocp-search-tabs__inner {
        gap: 1px;
        padding: 2px;
    }

    .ocp-search-tabs a {
        min-height: 32px;
        padding-inline: 2px;
        font-size: 10px;
    }
}

/* Version 0.3.9: consistent custom filter dropdowns across browsers. */
.ocp-filters {
    position: relative;
    z-index: 20;
    overflow: visible !important;
}

.ocp-custom-select {
    position: relative;
    z-index: 1;
}

.ocp-custom-select.is-open {
    z-index: 90;
}

.ocp-custom-select__button,
.ocp-custom-select__menu {
    display: none;
}

.ocp-custom-select.is-enhanced .ocp-native-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.ocp-custom-select.is-enhanced .ocp-custom-select__button {
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 48px;
    min-width: 0;
    margin: 0;
    padding: 0 14px;
    border: 0 !important;
    border-radius: 12px;
    background: var(--ocp-soft);
    color: var(--ocp-ink);
    box-shadow: none !important;
    font: inherit;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    text-align: left;
    cursor: pointer;
    transition: background .18s ease, box-shadow .18s ease;
}

.ocp-custom-select.is-enhanced .ocp-custom-select__button:hover {
    background: #eef2f4;
}

.ocp-custom-select.is-enhanced .ocp-custom-select__button:focus-visible,
.ocp-custom-select.is-open .ocp-custom-select__button {
    outline: none;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(var(--ocp-primary-rgb), .24), 0 8px 24px rgba(24, 45, 62, .10) !important;
}

.ocp-custom-select__button > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ocp-custom-select__button svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-left: 10px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .18s ease;
}

.ocp-custom-select.is-open .ocp-custom-select__button svg {
    transform: rotate(180deg);
}

.ocp-custom-select.is-enhanced .ocp-custom-select__menu {
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    right: 0;
    display: block;
    min-width: 100%;
    max-height: 286px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid var(--ocp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(23, 45, 62, .18);
    scrollbar-width: thin;
    overscroll-behavior: contain;
}

.ocp-custom-select.is-enhanced .ocp-custom-select__menu[hidden] {
    display: none !important;
}

.ocp-custom-select__option {
    appearance: none;
    display: block;
    width: 100%;
    min-height: 39px;
    margin: 0;
    padding: 9px 11px;
    border: 0 !important;
    border-radius: 9px;
    background: transparent;
    color: var(--ocp-ink);
    box-shadow: none !important;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

.ocp-custom-select__option + .ocp-custom-select__option {
    margin-top: 2px;
}

.ocp-custom-select__option:hover,
.ocp-custom-select__option:focus-visible {
    outline: none;
    background: #f5f6f6;
    color: var(--ocp-ink);
}

.ocp-custom-select__option.is-selected,
.ocp-custom-select__option.is-selected:hover,
.ocp-custom-select__option.is-selected:focus-visible {
    background: var(--ocp-primary-soft);
    color: var(--ocp-blue);
    font-weight: 700;
}

@media (max-width: 760px) {
    .ocp-custom-select.is-enhanced .ocp-custom-select__menu {
        top: calc(100% + 5px);
        max-height: 240px;
        border-radius: 12px;
    }
}

/* Version 0.3.10: keep each property-card fact on one horizontal line. */
.ocp-property-card__facts > span {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
    white-space: nowrap;
}

.ocp-property-card__facts > span svg {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
}

.ocp-property-card__facts > span b,
.ocp-property-card__facts > span small {
    display: inline;
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

.ocp-property-card__facts > span b {
    font-size: 13px;
}

.ocp-property-card__facts > span small {
    font-size: 10px;
    text-transform: none;
    letter-spacing: 0;
}

@media (max-width: 420px) {
    .ocp-property-card__facts > span {
        gap: 4px;
        padding-inline: 5px;
    }

    .ocp-property-card__facts > span svg {
        width: 16px;
        height: 16px;
    }

    .ocp-property-card__facts > span b {
        font-size: 12px;
    }

    .ocp-property-card__facts > span small {
        font-size: 9px;
    }
}


/* Version 0.3.11: solid-black viewer and full-distance pointer swiping. */
.ocp-lightbox {
    background: #000 !important;
}

.ocp-lightbox__stage {
    background: #000;
    cursor: grab;
    overscroll-behavior: contain;
}

.ocp-lightbox__stage.is-dragging {
    cursor: grabbing;
}

.ocp-lightbox .ocp-lightbox__image {
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.ocp-lightbox__stage.is-dragging .ocp-lightbox__image {
    pointer-events: none;
}

.ocp-lightbox__thumbs {
    background: #000;
}

/* Version 0.3.12: continuous three-slide lightbox movement. */
.ocp-lightbox {
    background: #000 !important;
}

.ocp-lightbox__stage {
    position: relative;
    overflow: hidden;
    background: #000;
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}

.ocp-lightbox__stage.is-dragging {
    cursor: grabbing;
}

.ocp-lightbox__track {
    position: relative;
    display: flex;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    min-width: 100%;
    min-height: 0;
    will-change: transform;
    transform: translate3d(-100%, 0, 0);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.ocp-lightbox__slide {
    display: flex;
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #000;
}

.ocp-lightbox__slide img,
.ocp-lightbox .ocp-lightbox__image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(100dvh - 145px);
    object-fit: contain;
    transform: none !important;
    transition: none !important;
    opacity: 1 !important;
    pointer-events: none;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
}

.ocp-lightbox__counter,
.ocp-lightbox .ocp-lightbox__close,
.ocp-lightbox .ocp-lightbox__prev,
.ocp-lightbox .ocp-lightbox__next {
    z-index: 20;
}

.ocp-lightbox__thumbs {
    background: #000;
}

@media (max-width: 760px) {
    .ocp-lightbox__slide img,
    .ocp-lightbox .ocp-lightbox__image {
        max-height: calc(100dvh - 132px);
    }
}


/* Version 0.3.13: perfectly centred lightbox controls and no visible photo numbering. */
.ocp-lightbox__counter {
    display: none !important;
}

.ocp-lightbox .ocp-lightbox__close,
.ocp-lightbox .ocp-lightbox__prev,
.ocp-lightbox .ocp-lightbox__next {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
    text-indent: 0 !important;
}

.ocp-lightbox .ocp-lightbox__close svg,
.ocp-lightbox .ocp-lightbox__prev svg,
.ocp-lightbox .ocp-lightbox__next svg {
    display: block;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 0;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: none;
    pointer-events: none;
}

.ocp-lightbox .ocp-lightbox__close svg {
    width: 21px;
    height: 21px;
}

/* Version 0.3.14: image slider inside every property card. */
.ocp-card-slider {
    position: relative;
    display: block;
    isolation: isolate;
    touch-action: pan-y;
}

.ocp-card-slider__viewport {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    touch-action: pan-y;
    cursor: grab;
}

.ocp-card-slider__viewport.is-dragging {
    cursor: grabbing;
}

.ocp-card-slider__track {
    display: flex;
    width: 100%;
    height: 100%;
    transform: translate3d(0, 0, 0);
    transition: transform 300ms cubic-bezier(.22,.61,.36,1);
    will-change: transform;
}

.ocp-card-slider__slide {
    display: block;
    flex: 0 0 100%;
    width: 100%;
    height: 100%;
    min-width: 0;
    overflow: hidden;
}

.ocp-card-slider__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    user-select: none;
    -webkit-user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}

.ocp-property-card:hover .ocp-card-slider__slide img {
    transform: none;
}

.ocp-card-slider__placeholder-link {
    position: absolute;
    inset: 0;
    display: block;
}

.ocp-card-slider__placeholder-link .ocp-property-card__placeholder {
    height: 100%;
}

.ocp-card-slider__arrow {
    position: absolute;
    z-index: 8;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    margin: 0;
    transform: translateY(-50%);
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    color: var(--ocp-navy);
    box-shadow: 0 5px 18px rgba(7,33,52,.18);
    cursor: pointer;
    opacity: 0;
    transition: opacity .2s ease, transform .2s ease, background .2s ease;
}

.ocp-card-slider__arrow:hover,
.ocp-card-slider__arrow:focus-visible {
    background: #fff;
}

.ocp-card-slider__arrow--prev {
    left: 10px;
}

.ocp-card-slider__arrow--next {
    right: 10px;
}

.ocp-card-slider__arrow svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.ocp-card-slider:hover .ocp-card-slider__arrow,
.ocp-card-slider:focus-within .ocp-card-slider__arrow {
    opacity: 1;
}

.ocp-card-slider__arrow[disabled] {
    opacity: 0 !important;
    pointer-events: none;
}

.ocp-card-slider__dots {
    position: absolute;
    z-index: 7;
    left: 50%;
    bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: calc(100% - 110px);
    gap: 4px;
    transform: translateX(-50%);
    pointer-events: none;
}

.ocp-card-slider__dots span {
    display: block;
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 999px;
    background: rgba(255,255,255,.62);
    box-shadow: 0 0 0 1px rgba(0,0,0,.12);
    transition: width .2s ease, background .2s ease;
}

.ocp-card-slider__dots span.is-active {
    width: 14px;
    flex-basis: 14px;
    background: #fff;
}

.ocp-card-slider > .ocp-property-card__overlay,
.ocp-card-slider > .ocp-badge {
    z-index: 5;
    pointer-events: none;
}

@media (hover: none), (max-width: 760px) {
    .ocp-card-slider__arrow {
        width: 34px;
        height: 34px;
        opacity: .92;
    }
}


/* Version 0.3.15: display the live map directly below the Location heading. */
.ocp-location-panel .ocp-panel-heading {
    margin-bottom: 14px;
}

.ocp-location-panel .ocp-panel-heading h2 {
    margin-bottom: 0;
}

.ocp-map-embed {
    position: relative;
    width: 100%;
    min-height: 340px;
    overflow: hidden;
    border: 1px solid var(--ocp-line);
    border-radius: 14px;
    background: #eef3f5;
}

.ocp-map-embed iframe {
    display: block;
    width: 100%;
    height: 340px;
    border: 0;
}

@media (max-width: 760px) {
    .ocp-map-embed,
    .ocp-map-embed iframe {
        min-height: 290px;
        height: 290px;
    }
}


/* Version 0.3.18: balanced property facts at compact desktop widths and reliable card links. */
@media (min-width: 981px) and (max-width: 1200px) {
    .ocp-facts-panel--count-4,
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
    }

    .ocp-facts-panel--count-4 .ocp-fact,
    .ocp-facts-panel--count-5 .ocp-fact {
        padding: 12px 14px !important;
        border-right: 0 !important;
    }

    .ocp-facts-panel--count-4 .ocp-fact:nth-child(odd),
    .ocp-facts-panel--count-5 .ocp-fact:nth-child(odd) {
        border-right: 1px solid var(--ocp-line) !important;
    }

    .ocp-facts-panel--count-4 .ocp-fact:nth-child(-n+2),
    .ocp-facts-panel--count-5 .ocp-fact:nth-child(-n+2) {
        border-bottom: 1px solid var(--ocp-line);
    }
}

.ocp-card-slider__slide {
    cursor: pointer;
}

/* Version 0.3.19: remove all divider lines between property facts at every width. */
.ocp-facts-panel .ocp-fact,
.ocp-facts-panel .ocp-fact:nth-child(n),
.ocp-facts-panel--count-1 .ocp-fact,
.ocp-facts-panel--count-2 .ocp-fact,
.ocp-facts-panel--count-3 .ocp-fact,
.ocp-facts-panel--count-4 .ocp-fact,
.ocp-facts-panel--count-5 .ocp-fact {
    border-right: 0 !important;
    border-left: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
}


/* Version 0.3.20: all saved facts are shown; odd final items use the remaining row width. */
@media (min-width: 981px) and (max-width: 1200px) {
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: 1 / -1;
        justify-content: center;
    }
}

@media (max-width: 760px) {
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: 1 / -1;
        justify-content: center;
    }
}

@media (max-width: 420px) {
    .ocp-facts-panel--count-3 .ocp-fact:last-child,
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: 1 / -1;
        justify-content: center;
    }
}


/* Version 0.3.21: five facts use two balanced, full-width rows on compact screens. */
@media (max-width: 980px) {
    .ocp-facts-panel--count-5 {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }

    .ocp-facts-panel--count-5 .ocp-fact {
        grid-column: span 2 !important;
        justify-content: flex-start !important;
    }

    .ocp-facts-panel--count-5 .ocp-fact:nth-child(n+4),
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: span 3 !important;
        justify-content: flex-start !important;
    }

    .ocp-facts-panel--count-5 .ocp-fact strong {
        white-space: nowrap;
    }
}

@media (max-width: 420px) {
    .ocp-facts-panel--count-5 .ocp-fact__icon {
        width: 38px;
        height: 38px;
    }

    .ocp-facts-panel--count-5 .ocp-fact {
        gap: 7px;
        padding: 10px 5px !important;
    }
}

/* Version 0.3.22: predictable facts grid — three columns on compact screens and two columns on phones. */
@media (min-width: 761px) and (max-width: 1350px) {
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 3;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .ocp-facts-panel--count-5 .ocp-fact,
    .ocp-facts-panel--count-5 .ocp-fact:nth-child(n),
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: auto !important;
        justify-content: flex-start !important;
    }
}

@media (max-width: 760px) {
    .ocp-facts-panel--count-2,
    .ocp-facts-panel--count-3,
    .ocp-facts-panel--count-4,
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ocp-facts-panel--count-2 .ocp-fact,
    .ocp-facts-panel--count-3 .ocp-fact,
    .ocp-facts-panel--count-4 .ocp-fact,
    .ocp-facts-panel--count-5 .ocp-fact,
    .ocp-facts-panel--count-3 .ocp-fact:last-child,
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: auto !important;
        justify-content: flex-start !important;
    }
}

/* Version 0.3.23: use the available facts-column width, not only viewport width. */
.ocp-single-main {
    container-type: inline-size;
    container-name: ocp-single-main;
}

@container ocp-single-main (max-width: 620px) {
    .ocp-facts-panel--count-2,
    .ocp-facts-panel--count-3,
    .ocp-facts-panel--count-4,
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ocp-facts-panel--count-2 .ocp-fact,
    .ocp-facts-panel--count-3 .ocp-fact,
    .ocp-facts-panel--count-4 .ocp-fact,
    .ocp-facts-panel--count-5 .ocp-fact,
    .ocp-facts-panel--count-3 .ocp-fact:last-child,
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: auto !important;
        justify-content: flex-start !important;
    }
}

/* Fallback for browsers without container queries and narrow devices. */
@media (max-width: 760px) {
    .ocp-single-property .ocp-facts-panel--count-2,
    .ocp-single-property .ocp-facts-panel--count-3,
    .ocp-single-property .ocp-facts-panel--count-4,
    .ocp-single-property .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 2;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .ocp-single-property .ocp-facts-panel .ocp-fact,
    .ocp-single-property .ocp-facts-panel .ocp-fact:last-child {
        grid-column: auto !important;
        justify-content: flex-start !important;
    }
}


/* Version 0.3.24: keep multi-row facts layout through 1350px; use one row only above 1350px. */
@media (min-width: 1201px) and (max-width: 1350px) {
    .ocp-facts-panel--count-5 {
        --ocp-facts-columns: 3;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .ocp-facts-panel--count-5 .ocp-fact,
    .ocp-facts-panel--count-5 .ocp-fact:nth-child(n),
    .ocp-facts-panel--count-5 .ocp-fact:last-child {
        grid-column: auto !important;
        justify-content: flex-start !important;
    }
}

/* Version 0.3.29: allow long property-fact values to wrap inside their grid cell. */
.ocp-single-property .ocp-facts-panel .ocp-fact {
    min-width: 0;
}

.ocp-single-property .ocp-facts-panel .ocp-fact > span:not(.ocp-fact__icon) {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
}

.ocp-single-property .ocp-facts-panel .ocp-fact strong,
.ocp-single-property .ocp-facts-panel--count-5 .ocp-fact strong {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    max-width: 100%;
    line-height: 1.3;
}

/* Version 0.3.30: Land Registry Information panel below the property description. */
.ocp-land-registry-panel h2{
    margin-bottom:24px;
}
.ocp-land-registry-summary{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:18px 24px;
}
.ocp-land-registry-item{
    min-width:0;
}
.ocp-land-registry-item strong,
.ocp-land-registry-item span{
    display:block;
}
.ocp-land-registry-item strong{
    color:var(--ocp-navy);
    font-size:15px;
    line-height:1.25;
}
.ocp-land-registry-item span{
    margin-top:2px;
    color:#445563;
    font-size:16px;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.ocp-planning-zone-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px 32px;
    margin-top:26px;
    padding:24px 0 0;
}
.ocp-land-registry-summary + .ocp-planning-zone-list{
    border-top:1px solid var(--ocp-line);
}
.ocp-planning-zone h3{
    margin:0 0 3px;
    color:var(--ocp-navy);
    font-size:16px;
    line-height:1.35;
}
.ocp-planning-zone h3 span{
    font-weight:700;
}
.ocp-planning-zone h3 em{
    color:var(--ocp-blue);
    font-style:normal;
    font-weight:700;
}
.ocp-planning-zone-details{
    color:#445563;
    font-size:16px;
    line-height:1.45;
}
.ocp-planning-zone-details p{
    margin:0;
}
.ocp-planning-zone-details strong{
    color:#445563;
    font-weight:400;
}
@media(max-width:1050px){
    .ocp-land-registry-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ocp-planning-zone-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .ocp-land-registry-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
    .ocp-planning-zone-list{grid-template-columns:1fr;gap:24px;padding-top:20px}
}
@media(max-width:360px){
    .ocp-land-registry-summary{grid-template-columns:1fr}
}

@container ocp-single-main (max-width: 820px){
    .ocp-land-registry-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ocp-planning-zone-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container ocp-single-main (max-width: 540px){
    .ocp-land-registry-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ocp-planning-zone-list{grid-template-columns:1fr;gap:24px}
}

/* Version 0.3.33: repeat price summary in the offer panel and remove the vertical rule. */
.ocp-single-price__method{
    display:inline-flex;
    margin-top:8px;
    padding:6px 10px;
    border-radius:999px;
    background:var(--ocp-primary-soft);
    color:var(--ocp-blue);
    font-size:11px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.ocp-price-offer-panel__body{
    color:#445563;
    font-size:16px;
    line-height:1.65;
}
.ocp-price-offer-summary{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    margin:0 0 18px;
}
.ocp-price-offer-summary small{
    color:#697985;
    font-size:12px;
    font-weight:800;
    letter-spacing:.12em;
    line-height:1.4;
    text-transform:uppercase;
}
.ocp-price-offer-summary strong{
    color:var(--ocp-navy);
    font-size:clamp(27px,3vw,38px);
    font-weight:800;
    letter-spacing:-.03em;
    line-height:1.12;
}
.ocp-price-offer-panel__body>h3{
    margin:0 0 3px;
    color:var(--ocp-navy);
    font-size:17px;
}
.ocp-price-offer-panel__body>p{
    margin:4px 0;
}
.ocp-price-process{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px 28px;
    margin-top:22px;
    padding-top:20px;
    border-top:1px solid var(--ocp-line);
}
.ocp-price-process__item{
    min-width:0;
}
.ocp-price-process__item h3{
    margin:0 0 8px;
    color:var(--ocp-navy);
    font-size:17px;
}
.ocp-price-process__item p{
    margin:0 0 9px;
}
.ocp-price-process__item p:last-child{
    margin-bottom:0;
}
.ocp-price-process__item a{
    color:var(--ocp-blue);
    font-weight:700;
}
@media(max-width:620px){
    .ocp-price-process{grid-template-columns:1fr;gap:20px}
}

/* Version 0.4.0: imported characteristics and access fact. */
.ocp-additional-characteristics{margin-top:28px;padding-top:24px;border-top:1px solid var(--ocp-line,#eceae7)}
.ocp-additional-characteristics h3{margin:0 0 14px;font-size:1.08rem;color:var(--ocp-navy,#0d2942)}
.ocp-additional-characteristics ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:0;padding-left:20px}
.ocp-additional-characteristics li{overflow-wrap:anywhere}
@media(max-width:620px){.ocp-additional-characteristics ul{grid-template-columns:1fr}}

/* Version 0.4.4: property cards show the first three completed property facts. */
.ocp-property-card__facts > span b,
.ocp-property-card__facts > span small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ocp-property-card__facts > span b {
    max-width: 100%;
}

.ocp-property-card__facts > span small {
    flex: 0 1 auto;
}


/* Version 0.4.5: truncate the complete card fact only at its final edge. */
.ocp-property-card__facts > span {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
}
.ocp-property-card__facts > span svg {
    flex: 0 0 auto;
}
.ocp-property-card__facts .ocp-card-fact__text {
    display: block;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.ocp-property-card__facts .ocp-card-fact__text b,
.ocp-property-card__facts .ocp-card-fact__text small {
    display: inline;
    max-width: none;
    min-width: 0;
    overflow: visible;
    white-space: inherit;
    text-overflow: clip;
}
.ocp-property-card__facts .ocp-card-fact__text small {
    margin-left: 4px;
}

/* Version 0.4.6: share and one-page print actions. */
.ocp-single-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;position:relative}.ocp-single-reference{margin-right:4px;white-space:nowrap}.ocp-single-tool{appearance:none;border:1px solid var(--ocp-line)!important;background:#fff;color:var(--ocp-navy)!important;border-radius:10px;min-height:38px;padding:0 12px;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:12px;font-weight:750!important;line-height:1;text-decoration:none!important;cursor:pointer;box-shadow:0 5px 16px rgba(23,45,65,.05);transition:background .2s ease,border-color .2s ease,transform .2s ease}.ocp-single-tool:hover{background:var(--ocp-soft);border-color:#ddd8d2!important;transform:translateY(-1px)}.ocp-single-tool svg{width:16px!important;height:16px!important}.ocp-share-status{position:absolute;right:0;top:calc(100% + 6px);font-size:11px;font-weight:700;color:#247154;white-space:nowrap;min-height:14px}
@media(max-width:760px){.ocp-single-property__topbar{align-items:flex-start}.ocp-single-tools{justify-content:flex-end}.ocp-single-reference{width:100%;text-align:right;margin:0 0 2px}.ocp-share-status{top:100%}}
@media(max-width:460px){.ocp-single-property__topbar{gap:10px}.ocp-single-tool{padding:0 10px;min-height:36px}.ocp-single-tool span{display:none}.ocp-single-reference{font-size:11px}}


/* Version 0.5.1: configurable plugin palette and corrected status-tab centring. */
.ocp-search-tabs__inner{
    background:var(--ocp-tabs-bg,#f7f7f5);
    border-color:var(--ocp-line,#e6edf2);
}
.ocp-search-tabs a:hover,
.ocp-search-tabs a.is-active{
    background:var(--ocp-tab-active-bg,#fff);
}
.ocp-filters{
    background:var(--ocp-search-panel-bg,#fff);
    border-color:var(--ocp-line,#e6edf2);
}
.ocp-filter input,
.ocp-filter select,
.ocp-custom-select.is-enhanced .ocp-custom-select__button{
    background:var(--ocp-search-field-bg,#fff);
    color:var(--ocp-search-text,var(--ocp-ink));
}
.ocp-filter input::placeholder{
    color:var(--ocp-muted);
    opacity:1;
}
.ocp-custom-select.is-enhanced .ocp-custom-select__button:hover{
    background:var(--ocp-search-field-bg,#fff);
    filter:brightness(.98);
}
.ocp-custom-select.is-enhanced .ocp-custom-select__button:focus-visible,
.ocp-custom-select.is-open .ocp-custom-select__button{
    background:var(--ocp-search-field-bg,#fff);
}
.ocp-custom-select.is-enhanced .ocp-custom-select__menu{
    background:var(--ocp-search-panel-bg,#fff);
    border-color:var(--ocp-line,#e6edf2);
}
.ocp-custom-select__option{
    color:var(--ocp-search-text,var(--ocp-ink));
}
.ocp-custom-select__option:hover,
.ocp-custom-select__option:focus-visible{
    background:var(--ocp-soft,#f5f8fa);
    color:var(--ocp-search-text,var(--ocp-ink));
}
.ocp-button--primary,
.ocp-search-button{
    color:var(--ocp-button-text,#fff)!important;
}
.ocp-property-card,
.ocp-result-count,
.ocp-empty-state,
.ocp-pagination a,
.ocp-pagination .current{
    background:var(--ocp-property-card-bg,#fff);
}
.ocp-pagination .current{
    background:var(--ocp-blue);
}
.ocp-template-shell{
    background:var(--ocp-single-page-bg,#f5f8fa);
}
.ocp-facts-panel{
    background:var(--ocp-single-facts-bg,#fff);
}
.ocp-content-panel{
    background:var(--ocp-single-content-bg,#fff);
}
.ocp-enquiry-card{
    background:var(--ocp-single-enquiry-bg,#fff);
}
.ocp-fact__icon,
.ocp-enquiry-card__icon{
    background:var(--ocp-single-icon-bg,#eaf6fb);
}
.ocp-enquiry-form input[type="text"],
.ocp-enquiry-form input[type="tel"],
.ocp-enquiry-form input[type="email"],
.ocp-enquiry-form input[type="date"],
.ocp-enquiry-form textarea{
    background:var(--ocp-form-field-bg,#f8fafb);
}
.ocp-contact-options a,
.ocp-property-card__facts>span{
    background:var(--ocp-soft,#f5f8fa);
}


/* Version 0.5.2: disclaimer box and automatic similar properties. */
.ocp-disclaimer-panel{
    background:var(--ocp-disclaimer-bg,#fff8f2);
    border-left:4px solid var(--ocp-blue);
}
.ocp-disclaimer-panel h2{margin-bottom:12px}
.ocp-disclaimer-panel__text{color:var(--ocp-ink);font-size:14px;line-height:1.7}
.ocp-disclaimer-panel__text p{margin:0 0 10px}
.ocp-disclaimer-panel__text p:last-child{margin-bottom:0}
.ocp-disclaimer-panel__text a{color:var(--ocp-blue);font-weight:700}
.ocp-similar-properties{margin-top:38px;padding-bottom:8px}
.ocp-similar-properties__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.ocp-similar-properties__heading h2{margin:5px 0 0;color:var(--ocp-navy);font-size:clamp(26px,3vw,36px);line-height:1.12;letter-spacing:-.025em}
.ocp-similar-properties__heading>a{display:inline-flex;align-items:center;gap:7px;color:var(--ocp-blue);font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
.ocp-similar-properties__heading>a svg{width:17px;height:17px}
@media(max-width:620px){.ocp-similar-properties{margin-top:28px}.ocp-similar-properties__heading{align-items:flex-start;flex-direction:column;gap:10px}}

/* Version 0.5.3: clean disclaimer and responsive similar-properties carousel. */
.ocp-disclaimer-panel{
    border-left:0;
}
.ocp-similar-properties__actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:14px;
}
.ocp-similar-properties__actions>a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:var(--ocp-blue);
    font-size:13px;
    font-weight:750;
    text-decoration:none;
    white-space:nowrap;
}
.ocp-similar-properties__actions>a svg{
    width:17px;
    height:17px;
}
.ocp-similar-carousel__controls{
    display:flex;
    align-items:center;
    gap:8px;
}
.ocp-similar-carousel__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    padding:0;
    border:1px solid var(--ocp-line);
    border-radius:999px;
    background:var(--ocp-single-panel-bg,#fff);
    color:var(--ocp-navy);
    box-shadow:0 6px 18px rgba(31,43,51,.07);
    cursor:pointer;
    transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,opacity .18s ease;
}
.ocp-similar-carousel__button:hover:not(:disabled){
    border-color:var(--ocp-blue);
    background:var(--ocp-blue);
    color:var(--ocp-button-text,#fff);
    transform:translateY(-1px);
}
.ocp-similar-carousel__button:disabled{
    opacity:.35;
    cursor:default;
}
.ocp-similar-carousel__button svg{
    width:18px;
    height:18px;
}
.ocp-similar-carousel{
    position:relative;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
    touch-action:pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling:touch;
    cursor:grab;
}
.ocp-similar-carousel::-webkit-scrollbar{
    display:none;
}
.ocp-similar-carousel.is-dragging{
    cursor:grabbing;
    scroll-behavior:auto;
    user-select:none;
    -webkit-user-select:none;
}
.ocp-similar-carousel__track{
    --ocp-similar-gap:20px;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - (var(--ocp-similar-gap) * 2)) / 3);
    align-items:stretch;
    gap:var(--ocp-similar-gap);
    min-width:100%;
}
.ocp-similar-carousel__slide{
    min-width:0;
    scroll-snap-align:start;
    scroll-snap-stop:always;
}
.ocp-similar-carousel__slide>.ocp-property-card{
    height:100%;
}
@media(max-width:1100px){
    .ocp-similar-carousel__track{
        --ocp-similar-gap:18px;
        grid-auto-columns:calc((100% - var(--ocp-similar-gap)) / 2);
    }
}
@media(max-width:620px){
    .ocp-similar-properties__heading{
        flex-direction:column;
        align-items:stretch;
    }
    .ocp-similar-properties__actions{
        justify-content:space-between;
        width:100%;
    }
    .ocp-similar-carousel__track{
        --ocp-similar-gap:14px;
        grid-auto-columns:100%;
    }
}


/* Version 0.5.4: keep similar-property cards stationary on hover. */
.ocp-similar-carousel__slide > .ocp-property-card:hover {
    transform: none;
    box-shadow: 0 10px 35px rgba(23,45,65,.07);
}


/* Version 0.5.5: uniform disclaimer border and page-matched carousel background. */
.ocp-disclaimer-panel {
    border: 1px solid var(--ocp-line, #e6edf2);
}
.ocp-similar-properties,
.ocp-similar-carousel,
.ocp-similar-carousel__track,
.ocp-similar-carousel__slide {
    background: var(--ocp-single-page-bg, #f5f8fa);
}


/* Version 0.5.6: flat Similar Properties cards without shadows. */
.ocp-similar-carousel__slide > .ocp-property-card,
.ocp-similar-carousel__slide > .ocp-property-card:hover,
.ocp-similar-carousel__slide > .ocp-property-card:focus-within {
    box-shadow: none !important;
}


/* Version 0.5.9: standalone carousel typography/controls match Similar Properties, with native touch swiping. */
.ocp-shortcode-carousel{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ocp-ink);
    box-sizing:border-box;
}
.ocp-shortcode-carousel *,
.ocp-shortcode-carousel *::before,
.ocp-shortcode-carousel *::after{
    box-sizing:border-box;
}
.ocp-shortcode-carousel svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.ocp-shortcode-carousel .ocp-eyebrow{
    display:block;
    margin:0;
    color:var(--ocp-blue);
    font-family:inherit;
    font-size:12px;
    font-weight:800;
    line-height:1.3;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.ocp-shortcode-carousel .ocp-similar-properties__heading{
    align-items:flex-end;
}
.ocp-shortcode-carousel .ocp-similar-properties__heading h2{
    font-family:inherit;
}
.ocp-shortcode-carousel .ocp-similar-carousel__button{
    appearance:none;
    -webkit-appearance:none;
    font:inherit;
    line-height:1;
}
.ocp-shortcode-carousel .ocp-similar-properties__actions>a{
    font-family:inherit;
    line-height:1.3;
}
.ocp-similar-carousel{
    touch-action:pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling:touch;
}
@media(max-width:620px){
    .ocp-shortcode-carousel .ocp-similar-properties__heading{
        align-items:stretch;
    }
}

/* Version 0.5.10: transparent shortcode carousel and subtitle colour matching Similar Properties. */
.ocp-shortcode-carousel,
.ocp-shortcode-carousel .ocp-similar-carousel,
.ocp-shortcode-carousel .ocp-similar-carousel__track,
.ocp-shortcode-carousel .ocp-similar-carousel__slide {
    background: transparent !important;
}
.ocp-shortcode-carousel .ocp-eyebrow {
    color: var(--ocp-blue) !important;
}

/* Version 0.8.0: clean video support inside the original property lightbox. */
.ocp-video-preview{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    height:100%;
    color:#fff;
    background:linear-gradient(145deg,#101820,#263746);
}
.ocp-video-preview__play{
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#172432;
    box-shadow:0 5px 18px rgba(0,0,0,.22);
}
.ocp-video-preview__play svg{width:25px;height:25px;fill:currentColor;margin-left:3px}
.ocp-video-preview__label{font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.ocp-gallery__main>.ocp-video-preview+span{z-index:3}
.ocp-gallery__side button{position:relative}

.ocp-lightbox__media-slot{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    background:#000;
}
.ocp-lightbox__media-slot>img,
.ocp-lightbox__media-slot>.ocp-lightbox__image{
    display:block;
    width:auto;
    height:auto;
    max-width:100%;
    max-height:calc(100dvh - 145px);
    object-fit:contain;
    pointer-events:none;
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
}
.ocp-lightbox__video-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    width:min(68vw,720px);
    height:min(55vh,405px);
    max-width:100%;
    max-height:calc(100dvh - 145px);
    background:#0c0c0c;
}
.ocp-lightbox__video-playmark{
    display:grid;
    place-items:center;
    width:68px;
    height:68px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#111;
}
.ocp-lightbox__video-playmark svg{width:31px;height:31px;fill:currentColor;margin-left:4px}
.ocp-lightbox__video-wrap{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:100%;
    max-height:calc(100dvh - 145px);
    background:#000;
    cursor:default;
    touch-action:auto;
    isolation:isolate;
}
.ocp-lightbox__video-wrap--youtube,
.ocp-lightbox__video-wrap--vimeo{
    width:min(88vw,calc((100dvh - 145px) * 1.7777778));
    aspect-ratio:16/9;
}
.ocp-lightbox__video,
.ocp-lightbox__video-embed{
    position:relative;
    z-index:1;
    display:block;
    max-width:100%;
    max-height:calc(100dvh - 145px);
    border:0;
    background:#000;
    pointer-events:auto !important;
    touch-action:auto !important;
}
.ocp-lightbox__video{
    width:auto;
    height:auto;
}
.ocp-lightbox__video-embed{
    width:100%;
    height:100%;
}
.ocp-lightbox__video::-webkit-media-controls-fullscreen-button{display:none!important}
.ocp-lightbox__video::-webkit-media-controls-picture-in-picture-button{display:none!important}

.ocp-video-watermark{
    position:absolute;
    z-index:2;
    inset:0 0 64px 0;
    overflow:hidden;
    pointer-events:none !important;
    user-select:none;
}
.ocp-lightbox__video-wrap--youtube .ocp-video-watermark,
.ocp-lightbox__video-wrap--vimeo .ocp-video-watermark{inset:0}
.ocp-video-watermark span{
    position:absolute;
    left:50%;
    top:50%;
    color:rgba(255,255,255,.38);
    font-size:clamp(18px,2.1vw,34px);
    font-weight:800;
    line-height:1;
    white-space:nowrap;
    text-shadow:0 1px 2px rgba(0,0,0,.65);
    transform:translate(-50%,-50%) rotate(-28deg);
}
.ocp-video-watermark span:nth-child(1){left:18%;top:18%}
.ocp-video-watermark span:nth-child(2){left:52%;top:18%}
.ocp-video-watermark span:nth-child(3){left:84%;top:18%}
.ocp-video-watermark span:nth-child(4){left:32%;top:49%}
.ocp-video-watermark span:nth-child(5){left:68%;top:49%}
.ocp-video-watermark span:nth-child(6){left:18%;top:79%}
.ocp-video-watermark span:nth-child(7){left:72%;top:79%}

.ocp-lightbox__thumb--video{position:relative;background:#111!important}
.ocp-lightbox__thumb--video .ocp-video-preview{position:absolute;inset:0}
.ocp-lightbox__thumb--video .ocp-video-preview__play{width:30px;height:30px}
.ocp-lightbox__thumb--video .ocp-video-preview__play svg{width:15px;height:15px;margin-left:2px}
.ocp-lightbox__thumb--video .ocp-video-preview__label{display:none}

@media(max-width:760px){
    .ocp-lightbox__media-slot>img,
    .ocp-lightbox__media-slot>.ocp-lightbox__image,
    .ocp-lightbox__video-wrap,
    .ocp-lightbox__video,
    .ocp-lightbox__video-embed,
    .ocp-lightbox__video-placeholder{max-height:calc(100dvh - 132px)}
    .ocp-lightbox__video-wrap--youtube,
    .ocp-lightbox__video-wrap--vimeo{width:calc(100vw - 30px)}
}


/* Version 0.8.1: real video preview, desktop centre play and swipeable uploaded video. */
.ocp-video-preview{
    overflow:hidden;
    background:#000;
}
.ocp-video-preview__media{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover;
    display:block;
    pointer-events:none;
    transform:none!important;
}
.ocp-video-preview__shade{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(to bottom,rgba(0,0,0,.08),rgba(0,0,0,.34));
    pointer-events:none;
}
.ocp-video-preview__play,
.ocp-video-preview__label{position:relative;z-index:2}

.ocp-lightbox__video-swipe-layer{
    position:absolute;
    z-index:3;
    inset:0 0 64px 0;
    display:block;
    cursor:grab;
    touch-action:pan-y pinch-zoom;
    background:transparent;
}
.ocp-lightbox__stage.is-dragging .ocp-lightbox__video-swipe-layer{cursor:grabbing}

.ocp-lightbox__video-centre-play{
    position:absolute!important;
    z-index:5!important;
    left:50%!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    transform:translate(-50%,-50%)!important;
    display:grid!important;
    place-items:center;
    width:64px!important;
    height:64px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.94)!important;
    color:#172432!important;
    box-shadow:0 6px 22px rgba(0,0,0,.28)!important;
    cursor:pointer!important;
    opacity:1;
    visibility:visible;
    transition:opacity .16s ease,visibility .16s ease,transform .16s ease!important;
}
.ocp-lightbox__video-centre-play svg{
    width:30px;
    height:30px;
    fill:currentColor;
    margin-left:4px;
    pointer-events:none;
}
.ocp-lightbox__video-centre-play.is-hidden{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
}

/* Keep the native seek bar and other controls fully exposed. */
.ocp-lightbox__video{z-index:1}
.ocp-video-watermark{z-index:2}

@media(max-width:760px){
    .ocp-lightbox__video-swipe-layer{inset:0 0 62px 0}
    .ocp-lightbox__video-centre-play{width:72px!important;height:72px!important}
}


/* Version 0.8.3: persistent custom video controls; video taps toggle playback while swipe stays available. */
.ocp-lightbox__video-controls{
    position:absolute;
    z-index:7;
    left:0;
    right:0;
    bottom:0;
    display:grid;
    grid-template-columns:auto auto minmax(80px,1fr) auto;
    align-items:center;
    gap:10px;
    min-height:60px;
    padding:10px 12px 9px;
    color:#fff;
    background:linear-gradient(to top,rgba(0,0,0,.90),rgba(0,0,0,.60) 65%,rgba(0,0,0,0));
    pointer-events:auto!important;
    touch-action:manipulation!important;
    opacity:1!important;
    visibility:visible!important;
}
.ocp-lightbox__video-control-button{
    display:grid!important;
    place-items:center;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:999px!important;
    color:#fff!important;
    background:rgba(255,255,255,.12)!important;
    box-shadow:none!important;
    cursor:pointer!important;
}
.ocp-lightbox__video-control-button svg{width:19px;height:19px;fill:currentColor;pointer-events:none}
.ocp-lightbox__video-time{
    min-width:max-content;
    color:#fff;
    font-size:13px;
    font-weight:650;
    line-height:1;
    white-space:nowrap;
    text-shadow:0 1px 2px rgba(0,0,0,.8);
}
.ocp-lightbox__video-seek{
    appearance:none;
    -webkit-appearance:none;
    width:100%;
    height:22px;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    cursor:pointer;
    touch-action:manipulation!important;
}
.ocp-lightbox__video-seek::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:rgba(255,255,255,.55)}
.ocp-lightbox__video-seek::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.ocp-lightbox__video-seek::-moz-range-track{height:4px;border-radius:999px;background:rgba(255,255,255,.55)}
.ocp-lightbox__video-seek::-moz-range-thumb{width:16px;height:16px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.35)}

@media(max-width:760px){
    .ocp-lightbox__video-controls{
        grid-template-columns:auto minmax(0,1fr) auto;
        grid-template-areas:"play seek mute" "time time time";
        gap:4px 9px;
        min-height:62px;
        padding:7px 9px 6px;
    }
    .ocp-lightbox__video-control-play{grid-area:play}
    .ocp-lightbox__video-seek{grid-area:seek}
    .ocp-lightbox__video-control-mute{grid-area:mute}
    .ocp-lightbox__video-time{grid-area:time;font-size:12px;padding-left:2px}
    .ocp-lightbox__video-control-button{width:32px!important;height:32px!important;min-width:32px!important}
}


/* Version 0.8.4: unified always-visible controls and reliable tap/swipe video interaction. */
.ocp-lightbox__video-controls{
    position:absolute!important;
    z-index:8!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    display:grid!important;
    grid-template-columns:auto auto minmax(0,1fr) auto!important;
    grid-template-areas:
        "seek seek seek seek"
        "play time . mute"!important;
    align-items:center!important;
    gap:4px 9px!important;
    min-height:68px!important;
    padding:9px 10px 8px!important;
    margin:0!important;
    color:#fff!important;
    background:linear-gradient(to top,rgba(0,0,0,.94) 0%,rgba(0,0,0,.72) 58%,rgba(0,0,0,0) 100%)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    box-sizing:border-box!important;
}
.ocp-lightbox__video-control-button{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    display:grid!important;
    place-items:center!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
    box-shadow:none!important;
    line-height:1!important;
    cursor:pointer!important;
}
.ocp-lightbox__video-control-play{grid-area:play!important}
.ocp-lightbox__video-control-mute{grid-area:mute!important;justify-self:end!important}
.ocp-lightbox__video-time{
    grid-area:time!important;
    align-self:center!important;
    min-width:max-content!important;
    padding:0!important;
    margin:0!important;
    font-size:12px!important;
    line-height:1!important;
}
.ocp-lightbox__video-seek{
    grid-area:seek!important;
    position:static!important;
    width:100%!important;
    height:20px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
}
.ocp-lightbox__video-swipe-layer{
    inset:0 0 72px 0!important;
    z-index:4!important;
    touch-action:pan-y pinch-zoom!important;
}
.ocp-video-watermark{inset:0 0 72px 0!important}
.ocp-lightbox__video-centre-play{z-index:6!important}

@media(max-width:760px){
    .ocp-lightbox__video-controls{
        min-height:68px!important;
        padding:8px 9px 7px!important;
        gap:4px 8px!important;
    }
    .ocp-lightbox__video-control-button{
        width:32px!important;
        height:32px!important;
        min-width:32px!important;
    }
    .ocp-lightbox__video-time{font-size:12px!important}
    .ocp-lightbox__video-swipe-layer{inset:0 0 72px 0!important}
}


/* Version 0.8.5: keep all direct-video controls on one row and make mute state visible. */
.ocp-lightbox__video-controls{
    display:flex!important;
    grid-template-columns:none!important;
    grid-template-areas:none!important;
    align-items:center!important;
    gap:8px!important;
    min-height:50px!important;
    height:50px!important;
    padding:7px 10px!important;
    flex-wrap:nowrap!important;
}
.ocp-lightbox__video-control-play,
.ocp-lightbox__video-control-mute,
.ocp-lightbox__video-time,
.ocp-lightbox__video-seek{
    grid-area:auto!important;
}
.ocp-lightbox__video-control-play,
.ocp-lightbox__video-control-mute{
    flex:0 0 32px!important;
}
.ocp-lightbox__video-time{
    flex:0 0 auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
}
.ocp-lightbox__video-seek{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:50px!important;
    height:24px!important;
}
.ocp-lightbox__video-control-mute{
    margin-left:0!important;
    justify-self:auto!important;
}
.ocp-lightbox__video-swipe-layer{
    inset:0 0 50px 0!important;
}
.ocp-video-watermark{
    inset:0 0 50px 0!important;
}
@media(max-width:760px){
    .ocp-lightbox__video-controls{
        gap:6px!important;
        min-height:48px!important;
        height:48px!important;
        padding:6px 7px!important;
    }
    .ocp-lightbox__video-control-button{
        width:30px!important;
        height:30px!important;
        min-width:30px!important;
    }
    .ocp-lightbox__video-control-play,
    .ocp-lightbox__video-control-mute{
        flex-basis:30px!important;
    }
    .ocp-lightbox__video-time{
        font-size:11px!important;
    }
    .ocp-lightbox__video-seek{
        min-width:36px!important;
        height:22px!important;
    }
    .ocp-lightbox__video-swipe-layer{
        inset:0 0 48px 0!important;
    }
    .ocp-video-watermark{
        inset:0 0 48px 0!important;
    }
}


/* Version 0.8.6: playback is controlled by tapping/clicking the video; the persistent bar contains only time and timeline. */
.ocp-lightbox__video-controls{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    min-height:44px!important;
    height:44px!important;
    padding:7px 12px!important;
    grid-template-columns:none!important;
    grid-template-areas:none!important;
}
.ocp-lightbox__video-time{
    flex:0 0 auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    grid-area:auto!important;
}
.ocp-lightbox__video-seek{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:70px!important;
    height:24px!important;
    grid-area:auto!important;
}
.ocp-lightbox__video-swipe-layer{
    inset:0 0 44px 0!important;
}
.ocp-video-watermark{
    inset:0 0 44px 0!important;
}
@media(max-width:760px){
    .ocp-lightbox__video-controls{
        min-height:42px!important;
        height:42px!important;
        padding:6px 9px!important;
        gap:8px!important;
    }
    .ocp-lightbox__video-time{font-size:11px!important;}
    .ocp-lightbox__video-seek{min-width:50px!important;height:22px!important;}
    .ocp-lightbox__video-swipe-layer{inset:0 0 42px 0!important;}
    .ocp-video-watermark{inset:0 0 42px 0!important;}
}

/* Version 0.8.7: editable viewing consent and policy links. */
.ocp-consent-policies{margin:-7px 0 0;font-size:12px;line-height:1.45;color:var(--ocp-muted);text-align:center;width:100%;}
.ocp-consent-policies a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.ocp-consent-policies a:hover{color:var(--ocp-primary,var(--ocp-blue));}


/* Version 0.8.8.9: configurable desktop width for listing-status tabs; mobile stays full width. */
