
/* OHV Villas Directory — deliberately scoped and forceful to beat theme CSS */

.ohv-villas-shell,
.ohv-villas-shell * {
    box-sizing: border-box !important;
}

.ohv-villas-shell {
    --ohv-cream: #f7f4ed;
    --ohv-card: #ffffff;
    --ohv-text: #20312c;
    --ohv-muted: #69746f;
    --ohv-green: #284d43;
    --ohv-gold: #c79a5b;
    --ohv-teal: #258c96;
    --ohv-border: #e6e0d7;
    background: var(--ohv-cream) !important;
    color: var(--ohv-text) !important;
    width: 100% !important;
    max-width: none !important;
    padding: 64px 0 88px !important;
    margin: 0 !important;
    overflow: visible !important;
    font-family: Arial, Helvetica, sans-serif !important;
}

.ohv-villas-shell .ohv-villas-inner {
    width: min(1180px, calc(100% - 40px)) !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.ohv-villas-header {
    text-align: center !important;
    max-width: 800px !important;
    margin: 0 auto 34px !important;
}

.ohv-villas-eyebrow,
.ohv-estate-eyebrow {
    color: var(--ohv-gold) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
}

.ohv-villas-header h1 {
    color: var(--ohv-text) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(38px, 5vw, 56px) !important;
    line-height: 1.05 !important;
    font-weight: 500 !important;
    letter-spacing: -.025em !important;
    margin: 10px 0 12px !important;
    padding: 0 !important;
}

.ohv-villas-header p {
    color: var(--ohv-muted) !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}

.ohv-search-panel {
    background: #fff !important;
    border: 1px solid var(--ohv-border) !important;
    border-radius: 18px !important;
    padding: 22px !important;
    margin: 0 0 30px !important;
    box-shadow: 0 12px 32px rgba(31, 53, 46, .07) !important;
}

.ohv-search-heading {
    display: flex !important;
    justify-content: space-between !important;
    align-items: end !important;
    gap: 18px !important;
    margin: 0 0 16px !important;
}

.ohv-search-heading span {
    display: block !important;
    color: var(--ohv-gold) !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

.ohv-search-heading h2 {
    color: var(--ohv-text) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 28px !important;
    line-height: 1.15 !important;
    font-weight: 500 !important;
    margin: 5px 0 0 !important;
    padding: 0 !important;
}

.ohv-minimum-stay {
    color: var(--ohv-green) !important;
    background: #edf3ef !important;
    border-radius: 999px !important;
    padding: 8px 12px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

/* Search form */
.ohv-villas-shell .mphb_sc_search-form {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto !important;
    align-items: end !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ohv-villas-shell .mphb_sc_search-form > p {
    margin: 0 !important;
    padding: 0 !important;
}

.ohv-villas-shell .mphb_sc_search-form label {
    display: block !important;
    color: var(--ohv-text) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin: 0 0 6px !important;
}

.ohv-villas-shell .mphb_sc_search-form input:not([type="submit"]),
.ohv-villas-shell .mphb_sc_search-form select {
    display: block !important;
    width: 100% !important;
    min-height: 48px !important;
    height: 48px !important;
    max-height: 48px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    border: 1px solid #d9d3cb !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ohv-text) !important;
    -webkit-text-fill-color: var(--ohv-text) !important;
    font-size: 14px !important;
    box-shadow: none !important;
}

.ohv-villas-shell .mphb_sc_search-submit-button,
.ohv-villas-shell .mphb_sc_search-submit-button-wrapper input {
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: var(--ohv-gold) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.ohv-villas-shell .mphb_sc_search-submit-button:hover,
.ohv-villas-shell .mphb_sc_search-submit-button-wrapper input:hover {
    background: var(--ohv-teal) !important;
}

/* Toolbar */
.ohv-directory-toolbar {
    display: flex !important;
    justify-content: space-between !important;
    align-items: end !important;
    gap: 18px !important;
    margin: 0 0 18px !important;
}

.ohv-directory-toolbar strong {
    display: block !important;
    color: var(--ohv-text) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 26px !important;
    line-height: 1.15 !important;
    font-weight: 500 !important;
}

.ohv-directory-toolbar > div > span {
    display: block !important;
    color: var(--ohv-muted) !important;
    font-size: 13px !important;
    margin-top: 4px !important;
}

.ohv-sort-label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.ohv-sort-label > span {
    color: var(--ohv-muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.ohv-sort-label select {
    height: 42px !important;
    min-width: 175px !important;
    padding: 0 10px !important;
    border: 1px solid var(--ohv-border) !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: var(--ohv-text) !important;
    font-size: 13px !important;
}

/* Kill theme floats/columns that break MotoPress cards */
.ohv-motopress-output .mphb_sc_rooms-wrapper {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ohv-motopress-output .mphb_sc_rooms-wrapper::before,
.ohv-motopress-output .mphb_sc_rooms-wrapper::after {
    display: none !important;
    content: none !important;
}

/* Card */
.ohv-motopress-output .mphb-room-type {
    display: flex !important;
    flex-direction: column !important;
    float: none !important;
    clear: none !important;
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 0 20px !important;
    border: 1px solid var(--ohv-border) !important;
    border-radius: 18px !important;
    background: #fff !important;
    overflow: hidden !important;
    box-shadow: 0 10px 28px rgba(31, 53, 46, .07) !important;
    color: var(--ohv-text) !important;
}

/*
 * FULL-BLEED IMAGE SYSTEM
 * The image fills the full top section of the card with no cream side gaps.
 */
.ohv-motopress-output .mphb-room-type .ohv-image-frame {
    display: block !important;
    width: 100% !important;
    height: 320px !important;
    min-height: 320px !important;
    max-height: 320px !important;
    margin: 0 0 18px !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
}

.ohv-motopress-output .mphb-room-type .ohv-image-frame > * {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.ohv-motopress-output .mphb-room-type .ohv-image-frame img,
.ohv-motopress-output .mphb-room-type img[data-ohv-room-image="1"] {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 320px !important;
    max-height: 320px !important;
    object-fit: cover !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
}

/* Text: force visibility and sane sizing */
.ohv-motopress-output .mphb-room-type,
.ohv-motopress-output .mphb-room-type p,
.ohv-motopress-output .mphb-room-type li,
.ohv-motopress-output .mphb-room-type dt,
.ohv-motopress-output .mphb-room-type dd,
.ohv-motopress-output .mphb-room-type span {
    color: var(--ohv-muted) !important;
    -webkit-text-fill-color: currentColor !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
}

.ohv-motopress-output .mphb-room-type-title,
.ohv-motopress-output .mphb-room-type-title a,
.ohv-motopress-output .mphb-room-type h2,
.ohv-motopress-output .mphb-room-type h3 {
    display: block !important;
    color: var(--ohv-text) !important;
    -webkit-text-fill-color: var(--ohv-text) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 27px !important;
    line-height: 1.18 !important;
    font-weight: 500 !important;
    margin: 0 20px 8px !important;
    padding: 0 !important;
}

.ohv-motopress-output .mphb-room-type-excerpt,
.ohv-motopress-output .mphb-room-type-excerpt p,
.ohv-motopress-output .mphb-room-type-description,
.ohv-motopress-output .mphb-room-type-description p {
    color: var(--ohv-muted) !important;
    -webkit-text-fill-color: var(--ohv-muted) !important;
    margin: 0 20px 12px !important;
    padding: 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes,
.ohv-motopress-output .mphb-room-type-details {
    margin: 12px 20px !important;
    padding: 12px 0 !important;
    border-top: 1px solid var(--ohv-border) !important;
    border-bottom: 1px solid var(--ohv-border) !important;
    background: transparent !important;
}

.ohv-motopress-output .mphb-room-type-details-title {
    display: none !important;
}

.ohv-motopress-output .mphb-regular-price,
.ohv-motopress-output .mphb-room-type-price {
    display: block !important;
    margin: 14px 20px 4px !important;
    padding: 0 !important;
    color: var(--ohv-muted) !important;
    -webkit-text-fill-color: var(--ohv-muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.ohv-motopress-output .mphb-price,
.ohv-motopress-output .mphb-price *,
.ohv-motopress-output .mphb-currency {
    color: var(--ohv-green) !important;
    -webkit-text-fill-color: var(--ohv-green) !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 23px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
}

.ohv-motopress-output .mphb-view-details-button,
.ohv-motopress-output .mphb-book-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    height: auto !important;
    width: auto !important;
    margin: 12px 0 0 20px !important;
    padding: 11px 16px !important;
    border-radius: 10px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.ohv-motopress-output .mphb-view-details-button {
    background: #fff !important;
    color: var(--ohv-green) !important;
    -webkit-text-fill-color: var(--ohv-green) !important;
    border: 1px solid var(--ohv-green) !important;
}

.ohv-motopress-output .mphb-book-button {
    background: var(--ohv-gold) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: 1px solid var(--ohv-gold) !important;
}

.ohv-motopress-output .mphb-view-details-button:hover {
    background: var(--ohv-green) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}

.ohv-motopress-output .mphb-book-button:hover {
    background: var(--ohv-teal) !important;
    border-color: var(--ohv-teal) !important;
}

/* Whole property */
.ohv-estate-callout {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 28px !important;
    align-items: center !important;
    margin: 32px 0 0 !important;
    padding: 28px !important;
    border-radius: 18px !important;
    background: var(--ohv-green) !important;
}

.ohv-estate-callout h2 {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 32px !important;
    line-height: 1.12 !important;
    font-weight: 500 !important;
    margin: 7px 0 8px !important;
}

.ohv-estate-callout p {
    color: rgba(255,255,255,.78) !important;
    -webkit-text-fill-color: rgba(255,255,255,.78) !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

.ohv-estate-price {
    text-align: right !important;
    white-space: nowrap !important;
}

.ohv-estate-price > span,
.ohv-estate-price small {
    display: block !important;
    color: rgba(255,255,255,.72) !important;
    -webkit-text-fill-color: rgba(255,255,255,.72) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
}

.ohv-estate-price strong {
    display: block !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 32px !important;
    line-height: 1.1 !important;
    margin: 5px 0 !important;
}



/* Consistent vertical alignment across all villa cards */
.ohv-motopress-output .mphb-room-type-title,
.ohv-motopress-output .mphb-room-type-title a,
.ohv-motopress-output .mphb-room-type h2,
.ohv-motopress-output .mphb-room-type h3 {
    min-height: 64px !important;
}

.ohv-motopress-output .mphb-room-type-excerpt,
.ohv-motopress-output .mphb-room-type-description {
    min-height: 72px !important;
    max-height: 72px !important;
    overflow: hidden !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes,
.ohv-motopress-output .mphb-room-type-details {
    min-height: 88px !important;
}

.ohv-motopress-output .mphb-regular-price,
.ohv-motopress-output .mphb-room-type-price {
    margin-top: auto !important;
}

/* Hide MotoPress's unnecessary "Details" label but keep the actual room details. */
.ohv-motopress-output .mphb-room-type-details-title,
.ohv-motopress-output .mphb-loop-room-type-attributes-title,
.ohv-motopress-output .mphb-details-title {
    display: none !important;
}



/* v1.2 — customer-facing clean-up and table-style villa details */
.ohv-directory-toolbar--sort-only {
    justify-content: flex-end !important;
    margin-bottom: 18px !important;
}

/* Keep every piece of card copy aligned to the same left edge as the cottage name. */
.ohv-motopress-output .mphb-room-type-title,
.ohv-motopress-output .mphb-room-type-title a,
.ohv-motopress-output .mphb-room-type h2,
.ohv-motopress-output .mphb-room-type h3,
.ohv-motopress-output .mphb-room-type-excerpt,
.ohv-motopress-output .mphb-room-type-excerpt p,
.ohv-motopress-output .mphb-room-type-description,
.ohv-motopress-output .mphb-room-type-description p,
.ohv-motopress-output .mphb-loop-room-type-attributes,
.ohv-motopress-output .mphb-room-type-details,
.ohv-motopress-output .mphb-regular-price,
.ohv-motopress-output .mphb-room-type-price {
    margin-left: 22px !important;
    margin-right: 22px !important;
}

/* Remove bullets/markers completely. */
.ohv-motopress-output .mphb-loop-room-type-attributes ul,
.ohv-motopress-output .mphb-room-type-details ul,
.ohv-motopress-output .mphb-loop-room-type-attributes ol,
.ohv-motopress-output .mphb-room-type-details ol {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes li,
.ohv-motopress-output .mphb-room-type-details li {
    list-style: none !important;
    margin: 0 !important;
    padding: 9px 0 !important;
    border-top: 1px solid var(--ohv-border) !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes li:first-child,
.ohv-motopress-output .mphb-room-type-details li:first-child {
    border-top: 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes li::before,
.ohv-motopress-output .mphb-loop-room-type-attributes li::marker,
.ohv-motopress-output .mphb-room-type-details li::before,
.ohv-motopress-output .mphb-room-type-details li::marker {
    content: none !important;
    display: none !important;
}

/* Definition-list output gets the same refined table-row treatment. */
.ohv-motopress-output .mphb-loop-room-type-attributes dl,
.ohv-motopress-output .mphb-room-type-details dl {
    margin: 0 !important;
    padding: 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes dt,
.ohv-motopress-output .mphb-loop-room-type-attributes dd,
.ohv-motopress-output .mphb-room-type-details dt,
.ohv-motopress-output .mphb-room-type-details dd {
    margin: 0 !important;
    padding: 9px 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes dt,
.ohv-motopress-output .mphb-room-type-details dt {
    color: var(--ohv-text) !important;
    -webkit-text-fill-color: var(--ohv-text) !important;
    font-weight: 700 !important;
    border-top: 1px solid var(--ohv-border) !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes dt:first-child,
.ohv-motopress-output .mphb-room-type-details dt:first-child {
    border-top: 0 !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes dd,
.ohv-motopress-output .mphb-room-type-details dd {
    padding-top: 0 !important;
}

/* MotoPress often renders attributes as separate p/span rows rather than li/dl. */
.ohv-motopress-output .mphb-loop-room-type-attributes > p,
.ohv-motopress-output .mphb-room-type-details > p,
.ohv-motopress-output .mphb-loop-room-type-attributes > span,
.ohv-motopress-output .mphb-room-type-details > span {
    display: block !important;
    margin: 0 !important;
    padding: 9px 0 !important;
    border-top: 1px solid var(--ohv-border) !important;
}

.ohv-motopress-output .mphb-loop-room-type-attributes > p:first-child,
.ohv-motopress-output .mphb-room-type-details > p:first-child,
.ohv-motopress-output .mphb-loop-room-type-attributes > span:first-child,
.ohv-motopress-output .mphb-room-type-details > span:first-child {
    border-top: 0 !important;
}

/* Keep action buttons aligned with the same content edge. */
.ohv-motopress-output .mphb-view-details-button:first-of-type,
.ohv-motopress-output .mphb-book-button:first-of-type {
    margin-left: 22px !important;
}

@media (max-width: 900px) {
    .ohv-villas-shell .mphb_sc_search-form {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }

    .ohv-villas-shell .mphb_sc_search-submit-button-wrapper {
        grid-column: 1 / -1 !important;
    }

    .ohv-villas-shell .mphb_sc_search-submit-button-wrapper input {
        width: 100% !important;
    }
}

@media (max-width: 767px) {
    .ohv-villas-shell {
        padding: 38px 0 58px !important;
    }

    .ohv-villas-shell .ohv-villas-inner {
        width: min(100% - 24px, 1180px) !important;
    }

    .ohv-search-heading,
    .ohv-directory-toolbar {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .ohv-villas-shell .mphb_sc_search-form {
        grid-template-columns: 1fr !important;
    }

    .ohv-villas-shell .mphb_sc_search-submit-button-wrapper {
        grid-column: auto !important;
    }

    .ohv-sort-label {
        width: 100% !important;
    }

    .ohv-sort-label select {
        width: 100% !important;
    }

    .ohv-motopress-output .mphb_sc_rooms-wrapper {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .ohv-motopress-output .mphb-room-type .ohv-image-frame {
        height: 250px !important;
        min-height: 250px !important;
        max-height: 250px !important;
    }

    .ohv-motopress-output .mphb-room-type .ohv-image-frame img,
    .ohv-motopress-output .mphb-room-type img[data-ohv-room-image="1"] {
        min-height: 250px !important;
        max-height: 250px !important;
    }

    .ohv-estate-callout {
        grid-template-columns: 1fr !important;
    }

    .ohv-estate-price {
        text-align: left !important;
    }
}
