/*
 * Renzo modern: filters, dropdowns, buttons and the site font.
 * Loaded after renzo-refresh.css in resources/views/website/layouts/app.blade.php and uses its tokens.
 * Restyles existing classes only. Several pages ship their own inline <style> with !important,
 * so rules here are prefixed with "html body" to win over them.
 *
 *  1. Font                  6. Buttons
 *  2. Dropdowns (<select>)  7. Older filter sidebars (resales, offer trips)
 *  3. Open dropdown list    8. Mobile
 *  4. Filter cards          9. No motion
 *  5. Custom filter dropdowns (beds & baths, price...)
 * 10. Result cards (listing pages: .x-results-pane; home card sections: .x-home-cards)
 * 11. Pagination under the results (#pgLinks on first load, #pagination after filtering)
 * 12. No-results notices and empty states
 * 13. Section headers + Show All (/search results and the home card sections)
 * 14. Meeting and login modals (Meeting buttons on developers, projects, search...)
 * 15. Home: card section frames and the Meeting tab of the hero search (Buy / Rent untouched)
 * 16. /developers/request-meeting: the booking form card and the rest of the page
 * 17. Header: top bar, nav links, language / profile / login, chat, mobile menu
 * 18. Detail pages (/developers/{slug}, /projects/{slug}): banner, profile card, cards, about, map
 * 19. Static pages (.x-page): terms, privacy, contact, about
 * 20. Chat window (#chat-window in layouts/app.blade.php, filled by website/js/chat.js)
 */

:root {
    /* same family as the admin panel; Cairo covers both Arabic and Latin */
    --rf-font: 'Cairo', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --rf-control-h: 46px;
    --rf-control-radius: 10px;
    --rf-control-border: #e2e5ec;
    --rf-control-hover: #fdba74;
    --rf-label: #4b5262;
    --rf-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --rf-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5l3 3 6-7' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* 1. Font ------------------------------------------------------------------- */
/* the old stylesheets hard-code Roboto / Open Sans / Oswald / Cairo per component; icons are left alone */
html body,
html body :is(h1, h2, h3, h4, h5, h6, p, a, span, div, li, dt, dd, label, small, strong, b, em, td, th,
    input, select, textarea, button, option, section, article, nav, header, footer, blockquote, figcaption)
    :not(.fa):not([class*="fa-"]):not([class*="icon"]):not(.glyphicon) {
    font-family: var(--rf-font) !important;
}

html body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 2. Dropdowns (<select>) ------------------------------------------------------ */
/* light outline style shared with the admin panel; select2 / bootstrap-select keep their own widget */
html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden) {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 14px !important;
    padding-inline-end: 40px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background-color: var(--rf-surface) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%239a9caf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 14px 14px !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: calc(var(--rf-control-h) - 2px) !important;
    letter-spacing: 0 !important;
    cursor: pointer;
}

html[dir="rtl"] body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden) {
    background-position: left 14px center !important;
}

html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden):hover {
    border-color: var(--rf-control-hover) !important;
}

html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden):focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    outline: none;
}

/* placeholder option ("Select Area", "All") still selected, or no options yet: muted, like a hint */
html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden):not(:has(option:checked:not([value=""]):not([disabled]))) {
    color: var(--rf-muted) !important;
    font-weight: 500 !important;
}

html body select:is(.form-select, .form-control, .x-select, .filter-input) option {
    color: var(--rf-text);
    font-weight: 500;
}

html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):disabled {
    background-color: #f5f6f9 !important;
    color: var(--rf-muted) !important;
    cursor: not-allowed;
    opacity: 1;
}

/* in a filter, a dropdown with a value chosen is an active filter: tint it */
html body :is(.form-box, .x-home-search-card, .filter-sidebar, #xMobileFilter, .x-filter-scroll)
    select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):has(option:checked:not([value=""]):not([disabled])):not(:disabled) {
    border-color: var(--rf-control-hover) !important;
    background-color: var(--rf-orange-soft) !important;
    color: var(--rf-orange-dark) !important;
}

/* text / number fields inside filters line up with the dropdowns */
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll)
    input:is(.form-control, .filter-input):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
    height: var(--rf-control-h);
    min-height: var(--rf-control-h);
    padding: 0 14px;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text);
    font-size: 14.5px !important;
    font-weight: 500;
}

html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll)
    input:is(.form-control, .filter-input):focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    outline: none;
}

html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) ::placeholder {
    color: #9aa0ad;
    font-weight: 500;
    opacity: 1;
}

/* EGP / m² suffix keeps the attached look from renzo-refresh.css */
html body :is(.form-box, .x-filter-scroll) .input-group input.form-control {
    border-radius: var(--rf-control-radius) 0 0 var(--rf-control-radius) !important;
}

html[dir="rtl"] body :is(.form-box, .x-filter-scroll) .input-group input.form-control {
    border-radius: 0 var(--rf-control-radius) var(--rf-control-radius) 0 !important;
}

html body :is(.form-box, .x-filter-scroll) .input-group .input-group-text {
    border-color: var(--rf-control-border) !important;
    border-radius: 0 var(--rf-control-radius) var(--rf-control-radius) 0 !important;
}

html[dir="rtl"] body :is(.form-box, .x-filter-scroll) .input-group .input-group-text {
    border-radius: var(--rf-control-radius) 0 0 var(--rf-control-radius) !important;
}

/* 3. Open dropdown list (customizable select, Chrome/Edge 135+) ------------------ */
/* other browsers keep the native list; everything in section 2 still applies to them */
@supports (appearance: base-select) {
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden),
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden)::picker(select) {
        appearance: base-select;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden) {
        display: flex;
        align-items: center;
        gap: 8px;
        padding-inline-end: 14px !important;
        background-image: none !important; /* the ::picker-icon below replaces the chevron */
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):not(.select2-hidden-accessible):not(.bs-select-hidden)::picker-icon {
        content: '';
        flex: none;
        width: 14px;
        height: 14px;
        margin-inline-start: auto;
        background: currentColor;
        color: #9a9caf;
        -webkit-mask: var(--rf-chevron) center / contain no-repeat;
        mask: var(--rf-chevron) center / contain no-repeat;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):hover::picker-icon,
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):focus::picker-icon {
        color: var(--rf-orange);
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):open {
        border-color: var(--rf-orange) !important;
        box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]):open::picker-icon {
        rotate: 180deg;
        color: var(--rf-orange);
    }

    /* the list panel */
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size])::picker(select) {
        margin-block: 6px;
        padding: 6px;
        max-height: min(320px, 50vh);
        overflow-y: auto;
        border: 1px solid var(--rf-line);
        border-radius: 12px;
        background: var(--rf-surface);
        box-shadow: var(--rf-shadow-pop);
        scrollbar-width: thin;
        scrollbar-color: #dfe1ea transparent;
        opacity: 1;
    }


    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option {
        display: flex;
        align-items: center;
        gap: 10px;
        min-height: 38px;
        margin: 0; /* main.css gives ".form-box select option" a 40px margin, which spread the list out */
        padding: 8px 12px;
        border-radius: 8px;
        line-height: 1.4; /* the closed select centres its text with line-height; options must not inherit it */
        color: var(--rf-text);
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option + option {
        margin-top: 2px;
    }

    /* !important: special.css paints ".form-box select option:hover/:focus" solid orange with !important */
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option:is(:hover, :focus, :active) {
        background: #f7f8fb !important;
        color: var(--rf-orange-dark) !important;
        outline: none;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option:checked {
        background: var(--rf-orange-soft) !important;
        color: var(--rf-orange-dark) !important;
        font-weight: 700;
    }

    /* tick on the selected option, at the end of the row */
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option::checkmark {
        order: 1;
        margin-inline-start: auto;
        content: '';
        width: 14px;
        height: 14px;
        background: var(--rf-orange);
        -webkit-mask: var(--rf-check) center / contain no-repeat;
        mask: var(--rf-check) center / contain no-repeat;
    }

    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option[value=""],
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]) option:disabled {
        color: var(--rf-muted);
        font-weight: 500;
    }
}

/* 4. Filter cards ------------------------------------------------------------- */
/* the page card around the filter + results: soft line instead of the grey #b2b2b2 border */
html body .x-filter-above + .container-flauid.card {
    border-color: var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    box-shadow: var(--rf-shadow) !important;
}

/* one frame around the results: the .right-part box inside the card drew a second border
   (inset by the column padding on search, developers, projects and daily rental) */
html body .x-filter-above + .container-flauid.card .right-part {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* same inset for the cards on every page as on new properties (10px inside the card) */
html body .x-filter-above + .container-flauid.card .x-results-pane:not(#results):has(> #results) {
    padding: 25px 10px !important;
    overflow: visible !important;
}

/* projects' grid also carries the home section class, which narrowed it */
html body .x-filter-above + .container-flauid.card .x-results-pane > #results {
    width: auto !important;
    max-width: none !important;
    margin: -16px -8px 0 !important;
    padding: 0 !important;
}

/* the filters sit above that card (.x-filter-above); leave a gap before the results */
html body .x-filter-above {
    margin-bottom: 20px;
}

html body .x-filter-above > [class*="-filter-top"] {
    margin-top: 0 !important;
}

/* login.css lifts every .card on hover; the filter card stays put */
html body .form-box.card:hover {
    transform: none !important;
}

html body .form-box.card {
    padding: 0 !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: linear-gradient(180deg, #fffaf7 0%, var(--rf-surface) 64px) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
}

/* "Filter" heading: icon chip + title, with the same inset as the fields */
html body .form-box.card > h5 {
    display: flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 16px 20px 4px !important;
    color: var(--rf-text) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.3;
}

html body .form-box.card > h5 > i,
html body .filter-sidebar .filterh5 > i,
html body .top-heading-filter h1 > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 34px;
    height: 34px;
    margin: 0 !important;
    border-radius: 10px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange) !important;
    font-size: 14px !important;
}

html body .form-box.card > h5 + [class*="p-3"] {
    padding: 12px 20px 20px !important;
}

/* field labels */
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll) :is(label, .form-label) {
    margin-bottom: 6px !important;
    color: var(--rf-label) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em;
}

/* home hero search */
html body .renzo-home-hero .x-home-search-card {
    border-color: rgba(255, 255, 255, 0.6) !important;
    border-radius: 20px !important;
}

html body .renzo-home-hero .x-home-search-field label,
html body .renzo-home-hero .x-home-main-search-label {
    margin-bottom: 6px;
    color: var(--rf-label);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.01em;
}

html body .renzo-home-hero .x-home-search-input {
    height: 54px !important;
    border-color: var(--rf-control-border) !important;
    border-radius: 14px !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    font-size: 15px;
    font-weight: 500;
}

html body .renzo-home-hero .x-home-search-input:hover {
    border-color: var(--rf-control-hover) !important;
}

html body .renzo-home-hero .x-home-search-input:focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
}

html body .renzo-home-hero .x-search-hint {
    font-size: 13px !important;
}

/* Buy / Rent / Meeting switch */
html body .renzo-home-hero .x-home-search-tabs {
    gap: 4px;
    padding: 5px;
    border-color: var(--rf-line);
}

html body .renzo-home-hero .x-home-search-tab {
    min-height: 40px;
    padding: 8px 20px;
    color: #4b5262;
    font-weight: 700;
}

html body .renzo-home-hero .x-home-search-tab:hover,
html body .renzo-home-hero .x-home-search-tab:focus-visible {
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
}

html body .renzo-home-hero .x-home-search-tab.active {
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 60%, var(--rf-orange-dark) 100%);
    box-shadow: 0 6px 14px rgba(234, 80, 28, 0.28);
    color: #fff;
}

html body .renzo-home-hero .x-home-search-grid {
    gap: 14px;
}

/* 5. Custom filter dropdowns (beds & baths, price, guests) ----------------------- */
/* the toggle buttons look exactly like the <select>s next to them */
html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle) {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 14px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-muted) !important;
    font-size: 14.5px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-align: start;
}

html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle) > span {
    overflow: hidden;
    min-width: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* chevron icon: same weight and colour as the select arrow */
html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle) > i {
    flex: none;
    color: #9a9caf !important;
    font-size: 12px !important;
}

html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle):hover {
    border-color: var(--rf-control-hover) !important;
}

html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle):hover > i {
    color: var(--rf-orange) !important;
}

html body :is(.x-home-filter-toggle, .x-newprops-dropdown-toggle, .x-rental-dropdown-toggle):focus-visible,
html body .x-home-filter-toggle:has(+ .x-home-filter-menu.open),
html body :is(.x-newprops-dropdown, .x-rental-dropdown):is(.open, .is-open) > :is(.x-newprops-dropdown-toggle, .x-rental-dropdown-toggle) {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    outline: none;
}

html body .x-home-filter-toggle:has(+ .x-home-filter-menu.open) > i,
html body :is(.x-newprops-dropdown, .x-rental-dropdown):is(.open, .is-open) > :is(.x-newprops-dropdown-toggle, .x-rental-dropdown-toggle) > i {
    rotate: 180deg;
    color: var(--rf-orange) !important;
}

/* the pop-up panel: same as the open <select> list */
html body :is(.x-home-filter-menu, .x-newprops-dropdown-menu, .x-rental-dropdown-menu) {
    margin-top: 0;
    padding: 14px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: 12px !important;
    background: var(--rf-surface) !important;
    box-shadow: var(--rf-shadow-pop) !important;
}

html body .renzo-home-hero .x-home-filter-menu {
    top: calc(100% + 6px);
}

/* group titles ("Bedrooms", "Bathrooms") */
html body :is(.x-home-filter-group > span, .x-newprops-pill-label) {
    display: block;
    margin-bottom: 8px !important;
    color: var(--rf-label) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
}

html body .x-home-filter-group + .x-home-filter-group,
html body .x-newprops-pill-group + .x-newprops-pill-group {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--rf-line);
}

html body :is(.x-home-filter-pills, .x-newprops-pills) {
    display: flex;
    flex-wrap: wrap;
    gap: 6px !important;
}

/* number choices: rounded squares that fill orange-soft when chosen */
html body :is(.x-home-filter-pill, .x-newprops-pill) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 12px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: 9px !important;
    background: var(--rf-surface) !important;
    color: var(--rf-text) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

html body :is(.x-home-filter-pill, .x-newprops-pill):hover {
    border-color: var(--rf-control-hover) !important;
    color: var(--rf-orange) !important;
}

html body :is(.x-home-filter-pill, .x-newprops-pill):is(.active, .is-active) {
    border-color: var(--rf-orange) !important;
    background: var(--rf-orange-soft) !important;
    box-shadow: inset 0 0 0 1px var(--rf-orange);
    color: var(--rf-orange-dark) !important;
    font-weight: 700 !important;
}

/* min / max price inputs inside the panels */
html body :is(.x-home-filter-menu, .x-newprops-dropdown-menu, .x-rental-dropdown-menu) .form-control {
    height: 42px;
    min-height: 42px;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    font-size: 14px;
}

html body :is(.x-home-filter-menu, .x-newprops-dropdown-menu, .x-rental-dropdown-menu) .form-control:focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
}

/* checkbox lists (guests, amenities) */
html body .x-rental-dropdown-menu .form-check-input:checked {
    border-color: var(--rf-orange);
    background-color: var(--rf-orange);
}

html body .x-rental-dropdown-menu .form-check-input:focus {
    border-color: var(--rf-orange);
    box-shadow: 0 0 0 3px var(--rf-orange-ring);
}

/* 6. Buttons --------------------------------------------------------------------- */
/* primary filter / search actions */
html body :is(.requestbtn, .x-home-search-submit, .myfilterbutton, .filter-btn, .x-home-apply-price) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 20px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    white-space: nowrap;
}

html body :is(.requestbtn, .x-home-search-submit, .myfilterbutton, .filter-btn, .x-home-apply-price):hover {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    color: #fff !important;
    filter: brightness(1.05);
}


html body :is(.requestbtn, .x-home-search-submit, .myfilterbutton, .filter-btn, .x-home-apply-price):focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--rf-orange-ring), 0 6px 16px rgba(234, 80, 28, 0.26) !important;
}

html body :is(.requestbtn, .filter-btn, .x-home-search-submit):disabled {
    filter: grayscale(0.4);
    opacity: 0.7;
}

/* the "Filter" buttons are text only: give them the sliders icon (the home "Search" already has one) */
html body :is(.requestbtn, .filter-btn)::before {
    content: '\f1de';
    font-family: 'Font Awesome 6 Free';
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
}

/* /search applies with "Search": the magnifier instead of the sliders */
html body .requestbtn.x-search-submit-btn::before {
    content: '\f002';
}

html body .x-home-apply-price {
    height: 42px !important;
    min-height: 42px !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

/* 7. Older filter sidebars (resales, offer trips) ---------------------------------- */
html body .filter-sidebar {
    overflow: hidden;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: var(--rf-shadow) !important;
}

/* white header with the icon chip instead of the solid orange bar */
html body .filter-sidebar .filter-header {
    padding: 16px 20px 6px !important;
    border: 0 !important;
    background: linear-gradient(180deg, #fffaf7 0%, var(--rf-surface) 100%) !important;
}

html body .filter-sidebar .filterh5 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--rf-text) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}

html body .filter-sidebar .filter-content {
    padding: 10px 20px 20px !important;
}

html body .filter-sidebar .filter-group {
    margin-bottom: 14px;
}

html body .filter-sidebar .filter-btn {
    width: 100%;
}

/* price / area range sliders (jQuery UI) */
html body .filter-sidebar .ui-slider {
    height: 6px;
    margin: 14px 10px 10px;
    border: 0 !important;
    border-radius: 999px;
    background: #eceef3 !important;
}

html body .filter-sidebar .ui-slider .ui-slider-range {
    border-radius: 999px;
    background: var(--rf-orange) !important;
}

html body .filter-sidebar .ui-slider .ui-slider-handle {
    top: -7px;
    width: 20px;
    height: 20px;
    margin-inline-start: -10px;
    border: 2px solid var(--rf-orange) !important;
    border-radius: 50%;
    background: #fff !important;
    box-shadow: 0 2px 6px rgba(17, 24, 39, 0.18);
    cursor: grab;
    outline: none;
}

html body .filter-sidebar .filter-group p.text-muted {
    margin-top: 6px;
    color: var(--rf-muted) !important;
    font-size: 13px;
    font-weight: 600;
}

/* offer trips: a Bootstrap 3 "collapse navbar-collapse" kept the whole form hidden under Bootstrap 5 */
html body .form-box:has(> .top-heading-filter) {
    overflow: hidden;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: var(--rf-shadow) !important;
}

html body .form-box > .top-heading-filter {
    display: flex;
    align-items: center;
    padding: 16px 20px 6px !important;
    border: 0 !important;
    background: linear-gradient(180deg, #fffaf7 0%, var(--rf-surface) 100%) !important;
    box-shadow: none !important;
}

html body .top-heading-filter h1 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--rf-text) !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}

html body .form-box > .top-heading-filter .navbar-toggle {
    display: none !important;
}

html body .form-box > .form-area-filter.collapse {
    display: block !important;
    padding: 10px 20px 20px !important;
    border: 0 !important;
    background: transparent !important;
}

html body .form-area-filter .form-group {
    margin-bottom: 14px;
}

html body .form-area-filter .btn-all {
    width: 100%;
}

/* 8. Mobile ---------------------------------------------------------------------- */
@media (max-width: 767.98px) {
    html body .form-box.card > h5 {
        padding: 14px 16px 2px !important;
    }

    html body .form-box.card > h5 + [class*="p-3"] {
        padding: 10px 16px 16px !important;
    }

    html body .renzo-home-hero .x-home-search-input {
        height: 50px !important;
    }

    /* 16px stops iOS zooming into a field when it is tapped */
    html body select:is(.form-select, .form-control, .x-select, .filter-input):not([multiple]):not([size]),
    html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll) input.form-control,
    html body .renzo-home-hero .x-home-search-input {
        font-size: 16px !important;
    }
}

/* 9. No motion ------------------------------------------------------------------- */
/* filters change state instantly: no fades, slides or hover lifts (older stylesheets add some too) */
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card),
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) *,
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) *::before,
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) *::after,
html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) select::picker(select) {
    animation: none !important;
    transition: none !important;
}

html body :is(.form-box, .filter-sidebar, #xMobileFilter, .x-filter-scroll, .x-home-search-card) :is(button, .btn):hover {
    transform: none !important;
}

/* 10. Result cards ---------------------------------------------------------------- */
/* .x-prop-card: projects, developers, daily & long rental, search. .x-newprop-card: new properties. */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-card, .x-newprop-card) {
    display: flex !important;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

/* hover: the card lifts with a warmer border and a deeper shadow, as before */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-card, .x-newprop-card):hover {
    border-color: #fbd3c2 !important;
    box-shadow: 0 14px 32px rgba(17, 24, 39, 0.09) !important;
    transform: translateY(-3px) !important;
}

/* photo: same 16:10 frame everywhere, no inner border or rounding */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-media, .x-newprop-media) {
    position: relative;
    display: block !important;
    flex: none;
    margin: 0 !important;
    overflow: hidden;
    border: 0 !important;
    border-radius: 0 !important;
    background: #f1f2f5;
    aspect-ratio: 16 / 10;
    height: auto !important;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-media, .x-newprop-media) > img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: cover;
    transition: transform 0.35s ease !important;
}

/* and the photo zooms in slightly inside its frame */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-card, .x-newprop-card):hover :is(.x-prop-media, .x-newprop-media) > img {
    transform: scale(1.04) !important;
}

@media (prefers-reduced-motion: reduce) {
    html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-card, .x-newprop-card),
    html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-media, .x-newprop-media) > img {
        transition: none !important;
    }
}

/* body: column with the footer pinned to the bottom so a row of cards lines up */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-body, .x-newprop-body) {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 10px;
    padding: 16px !important;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-body, .x-newprop-body) > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* project cards: title, chips, developer row, buttons (the developer row comes first in the markup) */
html body :is(.x-results-pane, .x-home-cards) .x-home-launch-title-link { order: 1; }
html body :is(.x-results-pane, .x-home-cards) .x-launch-specs { order: 2; }
html body :is(.x-results-pane, .x-home-cards) .x-launch-meta-row { order: 3; }
html body :is(.x-results-pane, .x-home-cards) .x-launch-bottom { order: 4; }

/* title: two lines at most */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-title, .x-newprop-title) {
    display: -webkit-box !important;
    margin: 0 !important;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--rf-text) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    white-space: normal !important;
}

/* titles and descriptions follow their own language: English text on the Arabic site keeps
   its "…" at the end of the line instead of the start */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-title, .x-newprop-title, .x-prop-desc) {
    unicode-bidi: plaintext;
    text-align: left;
}

html[dir="rtl"] body :is(.x-results-pane, .x-home-cards) :is(.x-prop-title, .x-newprop-title, .x-prop-desc) {
    text-align: right; /* stay on the page's side even when the text itself is English */
}

/* developer names stay on one line next to the logo */
html body :is(.x-results-pane, .x-home-cards) .x-dev-card-name .x-prop-title {
    display: block !important;
    -webkit-line-clamp: unset;
    text-overflow: ellipsis;
    white-space: nowrap !important;
}

html body :is(.x-results-pane, .x-home-cards) a:has(> :is(.x-prop-title, .x-newprop-title)):hover :is(.x-prop-title, .x-newprop-title) {
    color: var(--rf-orange) !important;
}

/* "Area, City" line above the title */
html body :is(.x-results-pane, .x-home-cards) .x-prop-breadcrumb {
    order: -1;
    color: var(--rf-muted) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-breadcrumb::before {
    content: '\f3c5';
    margin-inline-end: 6px;
    color: var(--rf-orange);
    font-family: 'Font Awesome 6 Free';
    font-size: 12px;
    font-weight: 900;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-desc {
    display: -webkit-box !important;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    color: var(--rf-muted) !important;
    font-size: 13.5px !important;
    line-height: 1.6 !important;
}

/* spec chips (beds, baths, years, down payment, type, area) */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-specs, .x-newprop-bedbath-row) {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px !important;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-specs .x-spec, .x-launch-spec-pill, .x-newprop-bedbath-pill) {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    height: 28px;
    margin: 0 !important;
    padding: 0 10px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: 8px !important;
    background: var(--rf-surface-alt) !important;
    box-shadow: none !important;
    color: #3b4250 !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    white-space: nowrap;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-specs .x-spec, .x-launch-spec-pill, .x-newprop-bedbath-pill) i {
    margin: 0 !important;
    color: var(--rf-orange) !important;
    font-size: 12px !important;
}

/* finishing chip: soft amber instead of the bright yellow block */
html body :is(.x-results-pane, .x-home-cards) .x-newprop-bedbath-pill.finshingb {
    border-color: #fde3a7 !important;
    background: #fff8e6 !important;
    color: #9a5b00 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-bedbath-pill.finshingb i {
    color: #d48a00 !important;
}

/* developer rating row on developer cards: stars + projects count */
html body :is(.x-results-pane, .x-home-cards) .x-prop-specs .fa-star {
    font-size: 12px !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-specs .x-spec.ms-auto {
    margin-inline-start: auto !important;
}

/* location / size line on new-property cards */
html body :is(.x-results-pane, .x-home-cards) .x-newprop-info-row {
    display: flex !important;
    flex-wrap: wrap;
    gap: 4px 14px !important;
    margin: 0 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-info-item {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    padding: 0 !important;
    border: 0 !important;
    color: var(--rf-muted) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-info-item i {
    color: var(--rf-orange) !important;
    font-size: 12px !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-separator {
    display: none !important;
}

/* developer line on project cards (logo, name, "Starting from") */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-devline, .x-launch-meta-row) {
    margin: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: var(--rf-surface-alt) !important;
    box-shadow: none !important;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-dev-avatar, .x-dev-card-logo img) {
    width: 32px !important;
    height: 32px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: 50% !important;
    background: #fff;
    object-fit: contain;
}

html body :is(.x-results-pane, .x-home-cards) .x-dev-card-head {
    display: flex !important;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

html body :is(.x-results-pane, .x-home-cards) .x-dev-card-name {
    min-width: 0;
}

/* footer: price on the start side, actions on the end side, pinned to the bottom */
html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-footer, .x-newprop-price-frame) {
    margin-top: auto !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-footer {
    display: flex !important;
    flex-wrap: nowrap; /* price and actions share one row; a long price wraps inside its own box */
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 0 0 !important;
    border-top: 1px solid #f0f1f5 !important;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-price, .x-price) {
    color: var(--rf-text) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.3;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-price, .x-price) {
    min-width: 0;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-price small {
    display: block;
}

html body :is(.x-results-pane, .x-home-cards) :is(.x-prop-price, .x-price) :is(small, span.opacity-75) {
    color: var(--rf-muted) !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    opacity: 1 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-price {
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-price i {
    color: var(--rf-orange) !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-price:empty {
    display: none;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta {
    display: flex !important;
    flex: none;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px !important;
    margin-inline-start: auto;
}

/* the project cards' CTA row has two buttons and no price: share the row */
html body :is(.x-results-pane, .x-home-cards) .x-prop-footer:has(> .x-prop-price:empty) .x-prop-cta {
    flex: 1 1 100%;
    flex-wrap: wrap;
    margin: 0;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-footer:has(> .x-prop-price:empty) .x-prop-cta > :is(.btn, a, button) {
    flex: 1 1 0;
}

/* Chat / Meeting buttons */
html body :is(.x-results-pane, .x-home-cards) .x-prop-cta :is(.start-chat-button, .broker-start-chat-button, .x-btn-meeting, .btn-success) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    white-space: nowrap;
    transform: none !important;
    transition: none !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta :is(.start-chat-button, .broker-start-chat-button, .x-btn-meeting, .btn-success) i {
    margin: 0 !important;
    color: inherit !important;
    font-size: 13px !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta :is(.start-chat-button, .broker-start-chat-button, .btn-success) {
    border: 1px solid #b7ebc9 !important;
    background: #ecfbf2 !important;
    color: #15803d !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta :is(.start-chat-button, .broker-start-chat-button, .btn-success):hover {
    border-color: #16a34a !important;
    background: #16a34a !important;
    color: #fff !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta .x-btn-meeting {
    border: 0 !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    color: #fff !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-prop-cta .x-btn-meeting:hover {
    filter: brightness(1.05);
    color: #fff !important;
}

/* call / WhatsApp: soft round icon buttons that fill on hover */
html body :is(.x-results-pane, .x-home-cards) .x-icon-round {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    font-size: 15px !important;
    transform: none !important;
    transition: none !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-icon-round.x-call {
    border: 1px solid #fbd3c2 !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-icon-round.x-call:hover {
    background: var(--rf-orange) !important;
    color: #fff !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-icon-round.x-wa {
    border: 1px solid #b7ebc9 !important;
    background: #ecfbf2 !important;
    color: #15803d !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-icon-round.x-wa:hover {
    background: #16a34a !important;
    color: #fff !important;
}

/* new properties: developer badge on the photo and the price box */
html body :is(.x-results-pane, .x-home-cards) .x-newprop-dev-badge {
    top: 12px !important;
    inset-inline-start: 12px !important;
    gap: 7px !important;
    max-width: calc(100% - 24px);
    padding: 4px 12px 4px 4px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 4px 14px rgba(17, 24, 39, 0.14) !important;
    color: var(--rf-text) !important;
}

html[dir="rtl"] body :is(.x-results-pane, .x-home-cards) .x-newprop-dev-badge {
    padding: 4px 4px 4px 12px !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-dev-badge span {
    overflow: hidden;
    color: var(--rf-text) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-dev-logo {
    width: 26px !important;
    height: 26px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: 50% !important;
    background: #fff !important;
    object-fit: contain;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-price-frame {
    display: flex !important;
    align-items: center;
    gap: 10px;
    min-height: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid #fde1d5 !important;
    border-radius: 12px !important;
    background: var(--rf-orange-soft) !important;
    box-shadow: none !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-price-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 32px !important;
    height: 32px !important;
    border-radius: 9px !important;
    background: var(--rf-orange) !important;
    color: #fff !important;
    font-size: 13px !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-newprop-price-value {
    color: var(--rf-orange-dark) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

/* card columns: equal-height rows */
html body :is(.x-results-pane, .x-home-cards) [class*="col-"]:has(> :is(.x-prop-card, .x-newprop-card)) {
    display: flex;
}

html body :is(.x-results-pane, .x-home-cards) [class*="col-"] > :is(.x-prop-card, .x-newprop-card) {
    width: 100%;
}

/* 11. Pagination ------------------------------------------------------------------ */
/* scrolling to the results after a page change stops below the sticky header */
html body :is(.x-results-pane #results, #results.x-results-pane) {
    scroll-margin-top: 110px;
}

/* #pagination is itself a ul.pagination and the JS puts another ul.pagination inside it */
html body :is(#pgLinks, #pagination) {
    display: flex;
    justify-content: center;
    margin: 28px 0 8px !important;
    padding: 0 !important;
}

html body :is(#pgLinks, #pagination):empty {
    display: none;
}

html body :is(#pgLinks, #pagination) ul.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
}

html body :is(#pgLinks, #pagination) .page-item .page-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important; /* an older rule fixed the width, which broke "10" onto two lines */
    min-width: 40px;
    height: 40px;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: 10px !important;
    white-space: nowrap;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: #3b4250 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

html body :is(#pgLinks, #pagination) .page-item:not(.active):not(.disabled) .page-link:hover {
    border-color: var(--rf-control-hover) !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange-dark) !important;
}

html body :is(#pgLinks, #pagination) .page-item.active .page-link {
    border-color: transparent !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 14px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
}

/* previous / next when there is no page that way, and the "…" gap */
html body :is(#pgLinks, #pagination) .page-item.disabled .page-link {
    background: var(--rf-surface-alt) !important;
    box-shadow: none !important;
    color: #b4b8c3 !important;
    cursor: default;
}

html body :is(#pgLinks, #pagination) .page-item.disabled .page-link:not([aria-hidden]) {
    min-width: 28px;
    padding: 0 4px !important;
    border-color: transparent !important;
    background: transparent !important;
    color: var(--rf-muted) !important;
}

@media (max-width: 575.98px) {
    html body :is(#pgLinks, #pagination) .page-item .page-link {
        min-width: 36px;
        height: 36px;
        padding: 0 10px !important;
        font-size: 13.5px !important;
    }
}

/* 12. No-results notices and empty states ------------------------------------------ */
/* "No results found — showing all …" above the fallback results: a soft orange notice */
html body .x-results-pane :is(.alert.alert-warning, .list-view > p.alert) {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start !important;
    gap: 10px 12px;
    margin: 0 0 6px !important;
    padding: 14px 16px !important;
    border: 1px solid #fde1d5 !important;
    border-radius: 12px !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-text) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.5;
}

html body .x-results-pane :is(.alert.alert-warning, .list-view > p.alert)::before {
    content: '\f05a';
    flex: none;
    color: var(--rf-orange);
    font-family: 'Font Awesome 6 Free';
    font-size: 18px;
    font-weight: 900;
}

html body .x-results-pane .alert.alert-warning .opacity-75 {
    color: var(--rf-muted) !important;
    font-weight: 600;
    opacity: 1 !important;
}

/* its "Show All" button: orange outline instead of the grey Bootstrap one */
html body .x-results-pane :is(#xShowAllAjax, #xShowAllSSR, .alert .btn-outline-secondary) {
    display: inline-flex;
    align-items: center;
    height: 34px;
    margin-inline-start: auto;
    padding: 0 14px !important;
    border: 1px solid var(--rf-orange) !important;
    border-radius: 9px !important;
    background: var(--rf-surface) !important;
    box-shadow: none !important;
    color: var(--rf-orange) !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
}

html body .x-results-pane :is(#xShowAllAjax, #xShowAllSSR, .alert .btn-outline-secondary):hover {
    background: var(--rf-orange) !important;
    color: #fff !important;
}

/* nothing at all to show (developers): a centred empty state with an icon */
html body .x-results-pane #results > .col-12 > p.text-center.text-muted {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 4px 0 0;
    padding: 48px 16px;
    border: 1px dashed #dfe3ea;
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface-alt);
    color: #3b4250 !important;
    font-size: 16px;
    font-weight: 700;
}

html body .x-results-pane #results > .col-12 > p.text-center.text-muted::before {
    content: '\f002';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-family: 'Font Awesome 6 Free';
    font-size: 20px;
    font-weight: 900;
}

/* 13. Search page section headers ---------------------------------------------------- */
/* "Project Results" had no orange bar: renzo-ui.css lists the developer and property titles only */
html body :is(.x-results-pane, .x-home-cards) :is(.x-devs-title, .x-proj-title, .x-props-title, .x-daily-title) {
    position: relative;
    margin: 0 !important;
    padding-inline-start: 14px !important;
    color: var(--rf-text) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
}

html body :is(.x-results-pane, .x-home-cards) .x-proj-title::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.18em;
    bottom: 0.18em;
    width: 4px;
    border-radius: 99px;
    background: var(--rf-orange);
}

/* "Show All" (home, search, brokers): outlined like the links on the detail pages (.x-detail-link),
   filled orange on hover */
html body :is(.x-devs-all, .x-proj-all, .x-props-all, .x-daily-all) {
    display: inline-flex !important;
    flex: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 16px !important;
    border: 1px solid var(--rf-orange) !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-surface) !important;
    box-shadow: none !important;
    color: var(--rf-orange) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap;
    transform: none !important;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body :is(.x-devs-all, .x-proj-all, .x-props-all, .x-daily-all):hover {
    background: var(--rf-orange) !important;
    color: #fff !important;
    filter: none;
}

html body :is(.x-devs-all, .x-proj-all, .x-props-all, .x-daily-all) i {
    margin: 0 !important;
    color: inherit !important;
    font-size: 12px !important;
}

/* the no-results notice's "Show All" (section 12) gets the same radius */
html body .x-results-pane :is(#xShowAllAjax, #xShowAllSSR, .alert .btn-outline-secondary) {
    border-radius: var(--rf-control-radius) !important;
}

/* 14. Meeting and login modals ------------------------------------------------------------ */
html body .x-home-login-modal-dialog {
    width: min(520px, 100%);
    padding: 28px 28px 24px !important;
    border: 0 !important;
    border-radius: 20px !important;
    box-shadow: 0 30px 80px rgba(17, 24, 39, 0.3) !important;
}

html body .x-home-login-modal-close {
    width: 36px !important;
    height: 36px !important;
    border-color: var(--rf-line) !important;
    color: var(--rf-muted) !important;
}

html body .x-home-login-modal-close:hover {
    border-color: #fbd3c2 !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body .x-home-login-modal-head {
    gap: 6px !important;
    margin-bottom: 20px !important;
}

html body .x-home-login-modal-icon {
    width: 52px !important;
    height: 52px !important;
    border-radius: 14px !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body .x-home-login-modal-head h2 {
    color: var(--rf-text) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
}

html body .x-home-login-modal-head p {
    color: var(--rf-muted) !important;
    font-size: 14px;
}

/* who the meeting is with */
html body .x-meeting-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 18px;
    padding: 10px;
    border: 1px solid #fde1d5;
    border-radius: 14px;
    background: var(--rf-orange-soft);
}

html body .x-meeting-summary[hidden],
html body .x-meeting-summary__item[hidden] {
    display: none;
}

html body .x-meeting-summary__item {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--rf-surface);
}

html body .x-meeting-summary__item > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 13px;
}

html body .x-meeting-summary__item > div {
    display: grid;
    min-width: 0;
}

html body .x-meeting-summary__item small {
    color: var(--rf-muted);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
}

html body .x-meeting-summary__item span {
    overflow: hidden;
    color: var(--rf-text);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* fields: same controls as the filters */
html body .x-home-login-form {
    gap: 14px !important;
}

html body .x-home-login-field label {
    margin-bottom: 6px !important;
    color: var(--rf-label) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body .x-home-login-input-wrap > i {
    color: var(--rf-orange) !important;
    font-size: 13px;
    pointer-events: none;
}

html body .x-home-login-input-wrap .form-control {
    /* logical padding works in both directions; renzo-ui.css flipped it again for RTL, so Arabic text ran under the icon */
    padding-inline: 44px 14px !important;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background-color: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
}

html body .x-home-login-input-wrap .form-control:hover {
    border-color: var(--rf-control-hover) !important;
}

html body .x-home-login-input-wrap .form-control:focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    outline: none;
}

html body .x-home-login-input-wrap .form-control::placeholder {
    color: #9aa0ad;
    font-weight: 500;
}

/* date and time share a row when there is room */
html body .x-meeting-when {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 420px) {
    html body .x-meeting-when {
        grid-template-columns: 1fr;
    }
}

/* the visible flatpickr inputs open a picker: show a pointer */
html body .x-meeting-when .form-control[readonly] {
    cursor: pointer;
}

/* submit: the same orange button as Filter */
html body .x-home-login-submit {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px !important;
    min-height: 48px !important;
    margin-top: 4px;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

html body .x-home-login-submit:hover {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    filter: brightness(1.05);
}

html body .x-home-login-submit i {
    font-size: 14px;
}

html body .x-home-login-meta a,
html body .x-home-login-register a {
    color: var(--rf-orange) !important;
}

@media (max-width: 575.98px) {
    html body .x-home-login-modal-dialog {
        padding: 22px 18px 18px !important;
        border-radius: 18px !important;
    }

    html body .x-home-login-input-wrap .form-control {
        font-size: 16px !important; /* no iOS zoom on focus */
    }

    /* full developer / project names, one under the other */
    html body .x-meeting-summary {
        grid-template-columns: 1fr;
    }
}

/* date / time pickers opened from the meeting modal */
html body .flatpickr-calendar.x-meeting-picker {
    z-index: 100000;
    padding: 0 0 6px;
    border: 1px solid var(--rf-line);
    border-radius: 14px;
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow-pop);
    font-family: var(--rf-font);
}

html body .flatpickr-calendar.x-meeting-picker::before,
html body .flatpickr-calendar.x-meeting-picker::after {
    display: none;
}

html body .x-meeting-picker .flatpickr-months {
    align-items: center;
    padding: 4px 0 6px;
}

html body .x-meeting-picker .flatpickr-current-month {
    padding-top: 6px;
    color: var(--rf-text);
    font-size: 15px;
    font-weight: 700;
}

html body .x-meeting-picker .flatpickr-current-month :is(.flatpickr-monthDropdown-months, input.cur-year) {
    color: var(--rf-text);
    font-family: var(--rf-font);
    font-size: 15px;
    font-weight: 700;
}

html body .x-meeting-picker :is(.flatpickr-prev-month, .flatpickr-next-month) {
    top: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border-radius: 9px;
}

html body .x-meeting-picker :is(.flatpickr-prev-month, .flatpickr-next-month):hover {
    background: var(--rf-orange-soft);
}

html body .x-meeting-picker :is(.flatpickr-prev-month, .flatpickr-next-month) svg {
    width: 12px;
    height: 12px;
    fill: var(--rf-muted);
}

html body .x-meeting-picker :is(.flatpickr-prev-month, .flatpickr-next-month):hover svg {
    fill: var(--rf-orange);
}

html body .x-meeting-picker :is(.flatpickr-prev-month, .flatpickr-next-month).flatpickr-disabled {
    display: none;
}

html body .x-meeting-picker .flatpickr-weekday {
    color: var(--rf-muted);
    font-size: 12px;
    font-weight: 700;
}

html body .x-meeting-picker .flatpickr-day {
    height: 36px;
    border: 0;
    border-radius: 9px;
    color: var(--rf-text);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 36px;
}

html body .x-meeting-picker .flatpickr-day:hover:not(.flatpickr-disabled):not(.selected) {
    background: var(--rf-orange-soft);
    color: var(--rf-orange-dark);
}

html body .x-meeting-picker .flatpickr-day.today:not(.selected) {
    box-shadow: inset 0 0 0 1px var(--rf-orange);
    color: var(--rf-orange-dark);
}

html body .x-meeting-picker .flatpickr-day:is(.selected, .selected:hover) {
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
    box-shadow: 0 4px 10px rgba(234, 80, 28, 0.26);
    color: #fff;
}

/* days outside the bookable 30 days and the neighbouring months' days */
html body .x-meeting-picker .flatpickr-day:is(.flatpickr-disabled, .flatpickr-disabled:hover) {
    background: transparent;
    color: #c9ccd4;
    font-weight: 500;
    text-decoration: line-through;
    cursor: not-allowed;
}

html body .x-meeting-picker .flatpickr-day:is(.prevMonthDay, .nextMonthDay):not(.flatpickr-disabled) {
    color: #9aa0ad;
}

/* time picker: hour : minute AM/PM */
html body .x-meeting-picker.noCalendar {
    width: 240px;
}

html body .x-meeting-picker .flatpickr-time {
    height: 52px;
    max-height: 52px;
    border: 0 !important;
    line-height: 52px;
}

html body .x-meeting-picker .flatpickr-time :is(input, .flatpickr-am-pm) {
    height: 52px;
    border-radius: 9px;
    color: var(--rf-text);
    font-family: var(--rf-font);
    font-size: 17px;
    font-weight: 700;
}

html body .x-meeting-picker .flatpickr-time :is(input, .flatpickr-am-pm):is(:hover, :focus) {
    background: var(--rf-orange-soft);
    color: var(--rf-orange-dark);
}

html body .x-meeting-picker .flatpickr-time .flatpickr-time-separator {
    color: var(--rf-muted);
    font-weight: 700;
}

html body .x-meeting-picker .numInputWrapper span.arrowUp::after {
    border-bottom-color: var(--rf-orange);
}

html body .x-meeting-picker .numInputWrapper span.arrowDown::after {
    border-top-color: var(--rf-orange);
}

/* 15. Home ------------------------------------------------------------------------------ */
/* "New Real Estate Launches" frame: plain like the other home sections (no orange top line or tint) */
html body .x-home-cards.x-home-launches-section .x-home-launches-shell {
    border-color: var(--rf-line) !important;
    background: var(--rf-surface) !important;
}

/* space between the home sections: the 48px margin + 28px padding on each side left ~100px between boxes */
html body section.x-home-cards {
    margin-top: 56px !important;
    margin-bottom: 56px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* cards in a home slider row share one height (a card whose chips wrap no longer sticks out) */
html body .x-home-cards .swiper-slide {
    display: flex;
    height: auto !important;
}

html body .x-home-cards .swiper-slide > :is(.x-prop-card, .x-newprop-card) {
    width: 100%;
}

html body .x-home-cards.x-home-launches-section .x-home-launches-shell::before {
    display: none !important;
}

html body .x-home-cards .x-home-launches-head {
    align-items: center;
}

/* Meeting tab: same card, fields and button as the meeting modal */
html body .renzo-home-hero .x-home-meeting-panel .x-meet-card {
    padding: 22px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
}

/* icon beside the title and subtitle, all aligned to the start (the subtitle was centred) */
html body .renzo-home-hero .x-home-meeting-panel .x-meet-head {
    margin-bottom: 18px !important;
    text-align: start !important;
}

html body .renzo-home-hero .x-home-meeting-panel :is(.x-meet-title, .x-meet-sub) {
    grid-column: 2;
    text-align: start !important;
    justify-self: start !important;
}

/* rows were ~50px apart: each field had its own bottom margin on top of the row gap */
html body .renzo-home-hero .x-home-meeting-panel .x-meet-form {
    gap: 4px !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-field {
    margin: 0 !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-error {
    margin-top: 4px !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-btn-submit {
    margin-top: 8px;
}

html body .renzo-home-hero .x-home-meeting-panel .x-meet-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-meet-title {
    color: var(--rf-text) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-meet-sub {
    color: var(--rf-muted) !important;
    font-size: 14px !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-label {
    margin-bottom: 6px !important;
    color: var(--rf-label) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-label .req {
    color: var(--rf-orange) !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-input {
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 14px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-input::placeholder {
    color: #9aa0ad;
    font-weight: 500;
}

html body .renzo-home-hero .x-home-meeting-panel .x-input:hover:not(:disabled) {
    border-color: var(--rf-control-hover) !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-input:focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    outline: none;
}

/* date / time open a picker */
html body .renzo-home-hero .x-home-meeting-panel :is(#date, #time) {
    padding-inline-start: 40px !important;
    background-repeat: no-repeat !important;
    background-position: left 14px center !important;
    background-size: 14px 14px !important;
    cursor: pointer;
}

html body .renzo-home-hero .x-home-meeting-panel #date {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ea501c' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='2' y='3' width='12' height='11' rx='2'/%3E%3Cpath d='M2 6.5h12M5.5 1.5v3M10.5 1.5v3'/%3E%3C/svg%3E") !important;
}

html body .renzo-home-hero .x-home-meeting-panel #time {
    text-transform: none !important; /* an older rule lowercased it, so the placeholder read "select a time" */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ea501c' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='M8 4.8V8l2.2 1.6'/%3E%3C/svg%3E") !important;
}

html[dir="rtl"] body .renzo-home-hero .x-home-meeting-panel :is(#date, #time) {
    background-position: right 14px center !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-error {
    min-height: 16px !important;
    color: #d92d20 !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
}

/* Submit: the Filter-style button */
html body .renzo-home-hero .x-home-meeting-panel .x-btn-submit {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100% !important;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 24px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

html body .renzo-home-hero .x-home-meeting-panel .x-btn-submit::before {
    content: '\f1d8';
    font-family: 'Font Awesome 6 Free';
    font-size: 14px;
    font-weight: 900;
}

html body .renzo-home-hero .x-home-meeting-panel .x-btn-submit:hover:not(:disabled) {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    filter: brightness(1.05);
}

/* guests: the "Login to request a meeting" card over the blurred form */
html body .renzo-home-hero .x-home-meeting-lock-card {
    padding: 24px 28px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: var(--rf-shadow-pop) !important;
}

html body .renzo-home-hero .x-home-meeting-lock-card > i {
    border-radius: 14px !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body .renzo-home-hero .x-home-meeting-lock-card p {
    color: var(--rf-text) !important;
    font-weight: 700 !important;
}

html body .renzo-home-hero .x-meeting-login-trigger {
    min-width: 160px;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
    font-weight: 700 !important;
}

@media (max-width: 575.98px) {
    html body .renzo-home-hero .x-home-meeting-panel .x-meet-card {
        padding: 16px !important;
    }

    html body .renzo-home-hero .x-home-meeting-panel .x-btn-submit {
        width: 100%;
    }

    html body .renzo-home-hero .x-home-meeting-panel .x-input {
        font-size: 16px !important;
    }
}

/* Buy / Rent search suggestions: the same pop-up as the filter menus. Rows are built by
   suggestionRowHtml() in website/js/search.js: icon chip, label (typed part bolded), meta line, type tag */
html body .renzo-home-hero .x-home-suggest {
    top: calc(100% + 8px) !important;
    max-height: min(420px, 60vh);
    margin: 0;
    padding: 6px !important;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--rf-line) !important;
    border-radius: 14px !important;
    background: var(--rf-surface) !important;
    box-shadow: var(--rf-shadow-pop) !important;
    animation: rf-pop 140ms ease-out;
    scrollbar-width: thin;
    scrollbar-color: #d6d9e0 transparent;
}

html body .renzo-home-hero .x-home-suggest .x-suggestion-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 54px;
    padding: 8px 10px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: var(--rf-text);
    cursor: pointer;
    transition: background var(--rf-ease);
}

html body .renzo-home-hero .x-home-suggest .x-suggestion-item + .x-suggestion-item {
    margin-top: 2px;
}

html body .renzo-home-hero .x-home-suggest .x-suggestion-item:is(:hover, .active) {
    background: var(--rf-orange-soft) !important;
}

/* icon in a tinted square; fills orange on the row under the mouse / keyboard */
html body .renzo-home-hero .x-suggestion-icon {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--rf-surface-alt);
    color: var(--rf-muted);
    font-size: 15px;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body .renzo-home-hero .x-suggestion-item[data-kind="area"] .x-suggestion-icon,
html body .renzo-home-hero .x-suggestion-item[data-kind="city"] .x-suggestion-icon {
    background: #eef6ff;
    color: #2f6fd6;
}

html body .renzo-home-hero .x-suggestion-item[data-kind="developer"] .x-suggestion-icon {
    background: #f3f0ff;
    color: #6d4fd8;
}

html body .renzo-home-hero .x-suggestion-item:is([data-kind="project"], [data-kind="property"]) .x-suggestion-icon {
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
}

html body .renzo-home-hero .x-suggestion-item:is(:hover, .active) .x-suggestion-icon {
    background: var(--rf-orange) !important;
    color: #fff !important;
}

html body .renzo-home-hero .x-suggestion-text {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
}

html body .renzo-home-hero .x-suggestion-label {
    overflow: hidden;
    color: var(--rf-text);
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body .renzo-home-hero .x-suggestion-label mark {
    padding: 0;
    background: none;
    color: var(--rf-orange);
    font-weight: 800;
}

html body .renzo-home-hero .x-suggestion-meta {
    overflow: hidden;
    color: var(--rf-muted);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body .renzo-home-hero .x-suggestion-type {
    flex: none;
    padding: 4px 10px;
    border: 1px solid var(--rf-line);
    border-radius: 99px;
    background: var(--rf-surface);
    color: var(--rf-muted);
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.2;
}

html body .renzo-home-hero .x-suggestion-item:is(:hover, .active) .x-suggestion-type {
    border-color: #ffc9b4;
    color: var(--rf-orange);
}

@media (max-width: 575.98px) {
    html body .renzo-home-hero .x-home-suggest .x-suggestion-item {
        gap: 10px;
        min-height: 50px;
    }

    html body .renzo-home-hero .x-suggestion-icon {
        width: 34px;
        height: 34px;
        font-size: 14px;
    }

    html body .renzo-home-hero .x-suggestion-type {
        padding: 3px 8px;
        font-size: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body .renzo-home-hero .x-home-suggest {
        animation: none;
    }
}

/* 16. Request-meeting page form --------------------------------------------------------- */
html body .x-meeting-form-card {
    padding: 44px 32px !important; /* taller: the photo beside it takes the same height */
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
}

html body .x-meeting-form-head {
    align-items: center !important;
    gap: 14px !important;
    margin-bottom: 18px !important;
}

html body .x-meeting-form-head > span {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
    font-size: 18px;
}

html body .x-meeting-form-head h2 {
    color: var(--rf-text) !important;
    font-size: 20px !important;
    font-weight: 800 !important;
}

html body .x-meeting-form-head p {
    color: var(--rf-muted) !important;
    font-size: 14px !important;
}

html body .x-meeting-form {
    gap: 4px !important;
}

html body .x-meeting-form-grid.two {
    gap: 12px !important;
}

html body .x-meeting-field label {
    margin-bottom: 6px !important;
    color: var(--rf-label) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body .x-meeting-field label b {
    color: var(--rf-orange) !important;
}

/* text inputs (the developer <select> gets the dropdown style from section 2) */
html body .x-meeting-field input {
    height: var(--rf-control-h) !important;
    padding: 0 14px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background-color: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text) !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
}

html body .x-meeting-field input::placeholder {
    color: #9aa0ad;
    font-weight: 500;
}

html body .x-meeting-field input:hover {
    border-color: var(--rf-control-hover) !important;
}

html body .x-meeting-field input:focus {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
}

/* date / time: icon inside the field, opens the picker */
html body .x-meeting-form :is(#date, #time) {
    padding-inline-start: 40px !important;
    background-repeat: no-repeat !important;
    background-position: left 14px center !important;
    background-size: 14px 14px !important;
    text-transform: none !important; /* the page lowercased #time, so the placeholder read "select a time" */
    cursor: pointer;
}

html body .x-meeting-form #date {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ea501c' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='2' y='3' width='12' height='11' rx='2'/%3E%3Cpath d='M2 6.5h12M5.5 1.5v3M10.5 1.5v3'/%3E%3C/svg%3E") !important;
}

html body .x-meeting-form #time {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23ea501c' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='6'/%3E%3Cpath d='M8 4.8V8l2.2 1.6'/%3E%3C/svg%3E") !important;
}

html[dir="rtl"] body .x-meeting-form :is(#date, #time) {
    background-position: right 14px center !important;
}

html body .x-meeting-form .x-error {
    min-height: 16px !important;
    margin-top: 4px !important;
    color: #d92d20 !important;
    font-size: 12.5px !important;
    font-weight: 600;
}

/* submit: the Filter-style button, full width */
html body .x-meeting-form .x-meeting-submit {
    width: 100% !important;
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    margin-top: 8px !important;
    padding: 0 24px !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

html body .x-meeting-form .x-meeting-submit:hover {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    filter: brightness(1.05);
    transform: none !important;
}

/* error / success notices above the form */
html body .x-meeting-form-card .x-meeting-alert {
    padding: 12px 14px !important;
    border-radius: 12px !important;
    font-size: 13.5px !important;
}

html body .x-meeting-form-card .x-meeting-alert.is-error {
    border: 1px solid #f8cdd3;
    background: #fdecee !important;
    color: #b42318 !important;
}

html body .x-meeting-form-card .x-meeting-alert.is-success {
    border: 1px solid #b7ebc9;
    background: #ecfbf2 !important;
    color: #15803d !important;
}

@media (max-width: 575.98px) {
    html body .x-meeting-form-card {
        padding: 22px 20px !important;
    }

    html body .x-meeting-field input {
        font-size: 16px !important;
    }
}

/* the rest of the request-meeting page */
html body .x-meeting-page .x-meeting-page-card {
    border-color: var(--rf-line) !important;
    border-radius: 20px !important;
    box-shadow: var(--rf-shadow) !important;
}

/* page title: the same size as the other page headings (it was up to 40px) */
html body .x-meeting-page .x-meeting-hero {
    padding: 8px 0 22px !important;
    border-bottom-color: var(--rf-line) !important;
}

html body .x-meeting-page .x-meeting-hero h1 {
    margin-bottom: 8px !important;
    color: var(--rf-text) !important;
    font-size: clamp(22px, 2.2vw, 28px) !important;
    font-weight: 800 !important;
}

html body .x-meeting-page .x-meeting-hero p {
    color: var(--rf-muted) !important;
    font-size: 14.5px !important;
    line-height: 1.7 !important;
}

/* "Total price ~100 EGP~ FREE": soft orange card instead of the dark block */
html body .x-meeting-page .x-meeting-free-card {
    gap: 4px !important;
    border: 1px solid #fde1d5 !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-text) !important;
}

html body .x-meeting-page .x-meeting-free-card span {
    color: var(--rf-muted) !important;
    font-size: 12px !important;
    font-weight: 600;
}

html body .x-meeting-page .x-meeting-free-card del {
    color: #9aa0ad !important;
    font-size: 12.5px !important;
}

html body .x-meeting-page .x-meeting-free-card strong {
    color: var(--rf-orange) !important;
    font-size: 26px !important;
    font-weight: 800 !important;
}

html body .x-meeting-page .x-meeting-free-card small {
    color: #15803d !important;
    font-size: 11px !important;
    font-weight: 700;
}

/* photo + form row */
html body .x-meeting-page .x-meeting-main-row {
    gap: 20px !important;
    margin-top: 22px !important;
}

html body .x-meeting-page .x-meeting-media-card {
    border: 0 !important;
    border-radius: var(--rf-radius-lg) !important;
    box-shadow: var(--rf-shadow) !important;
}

/* side by side, the photo takes the form's height (it had a fixed 540px, taller than the form) */
@media (min-width: 992px) {
    html body .x-meeting-page .x-meeting-media-card {
        position: relative;
        min-height: 0 !important;
    }

    html body .x-meeting-page .x-meeting-media-card > img,
    html body .x-meeting-page .x-meeting-media-card > .x-meeting-video-frame {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100% !important;
        min-height: 0 !important;
        object-fit: fill !important; /* the whole picture, stretched to the box: nothing cropped, no empty sides */
    }
}

/* light behind the photo instead of the dark #111827 (shows only while it loads) */
html body .x-meeting-page .x-meeting-media-card {
    background: var(--rf-surface-alt) !important;
}

html body .x-meeting-page .x-meeting-media-card > img {
    object-fit: fill !important;
}

/* spacing between the page parts (was 80px) */
html body .x-meeting-page .x-meeting-section {
    margin-top: 32px !important;
}

/* featured project strip */
html body .x-meeting-page .x-meeting-featured-card {
    padding: 16px !important;
    border-color: var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
}

html body .x-meeting-page .x-meeting-featured-media {
    border-radius: 12px !important;
}

html body .x-meeting-page .x-meeting-featured-title {
    color: var(--rf-text) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

html body .x-meeting-page .x-meeting-featured-title span {
    display: inline-flex !important;
    align-items: center;
    height: 22px;
    margin-inline-end: 8px !important;
    padding: 0 8px;
    border-radius: 6px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    vertical-align: middle;
}

html body .x-meeting-page :is(.x-meeting-featured-location, .x-meeting-featured-devname) {
    color: var(--rf-muted) !important;
    font-weight: 600;
}

/* chips like the result cards */
html body .x-meeting-page .x-meeting-featured-chips {
    gap: 6px !important;
}

html body .x-meeting-page .x-meeting-featured-chip {
    height: 28px;
    padding: 0 10px !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: 8px !important;
    background: var(--rf-surface-alt) !important;
    color: #3b4250 !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
}

/* section titles with the orange bar, like the other sections */
html body .x-meeting-page .x-meeting-section-head h2 {
    position: relative;
    margin-bottom: 16px !important;
    padding-inline-start: 14px;
    color: var(--rf-text) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

html body .x-meeting-page .x-meeting-section-head h2::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.18em;
    bottom: 0.18em;
    width: 4px;
    border-radius: 99px;
    background: var(--rf-orange);
}

html body .x-meeting-page :is(.x-meeting-logos-section, .x-meeting-seo-section) {
    padding: 20px !important;
    border-color: var(--rf-line) !important;
    border-radius: var(--rf-radius-lg) !important;
    background: var(--rf-surface) !important;
}

/* developer logo tiles */
html body .x-meeting-page .x-dev-logo-card {
    border-color: var(--rf-line) !important;
    border-radius: 12px !important;
    background: var(--rf-surface-alt) !important;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

html body .x-meeting-page .x-dev-logo-card:hover {
    border-color: #fbd3c2 !important;
    background: var(--rf-surface) !important;
}

/* closing section */
html body .x-meeting-page .x-meeting-seo-image {
    border-radius: 12px !important;
}

html body .x-meeting-page .x-meeting-seo-copy h2 {
    color: var(--rf-text) !important;
    font-size: clamp(20px, 2vw, 26px) !important;
    font-weight: 800 !important;
}

html body .x-meeting-page .x-meeting-seo-copy p {
    color: var(--rf-muted) !important;
    font-size: 14.5px;
}

html body .x-meeting-page .x-meeting-primary-btn {
    height: var(--rf-control-h) !important;
    min-height: var(--rf-control-h) !important;
    padding: 0 22px !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

html body .x-meeting-page .x-meeting-primary-btn:hover {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    filter: brightness(1.05);
    transform: none !important;
}

html body .x-meeting-page .x-meeting-benefits span {
    height: 30px;
    padding: 0 10px;
    border: 1px solid #b7ebc9;
    border-radius: 8px;
    background: #ecfbf2;
    color: #15803d !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
}


/* 17. Header ----------------------------------------------------------------------------- */
/* top bar, nav, controls and the mobile menu in the same language as the filters and cards:
   10px controls, soft line borders, orange-soft tints, the gradient button for Login.
   Also holds the layout rules that used to sit in an inline <style> in layouts/header.blade.php;
   overrides the older header rules in renzo-ui.css. */
:root {
    --rf-header-h: 76px;
    --rf-header-h-scrolled: 64px;
}

/* top bar: the button gradient, square-ish icon chips */
/* z-index level with the sticky header (renzo-ui.css has 1031): the mobile menu lives inside the
   header's stacking context, so a higher top bar would cover the top of the open menu */
html body .x-topbar {
    position: relative;
    z-index: 1030;
    padding: 0 !important;
    border-bottom: 0 !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    font-size: 13.5px;
}

html body .x-topbar .x-topbar-inner {
    min-height: 40px;
}

html body .x-topbar a {
    text-decoration: none !important;
}

html body .x-topbar .x-topbar-phone {
    gap: 8px;
    font-weight: 700;
    letter-spacing: 0.02em;
    direction: ltr;
}

html body .x-topbar .x-topbar-phone i {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.18);
    font-size: 12px;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body .x-topbar .x-topbar-phone:hover i {
    background: #fff;
    color: var(--rf-orange);
}

html body .x-topbar :is(.x-topbar-icon, .x-topbar-store) {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    border: 0 !important;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.16);
    font-size: 13px;
    transform: none !important;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body .x-topbar :is(.x-topbar-icon, .x-topbar-store):hover {
    background: #fff;
    color: var(--rf-orange) !important;
    opacity: 1;
}

html body .x-topbar .x-topbar-sep {
    width: 1px;
    height: 18px;
    background: rgba(255, 255, 255, 0.3);
}

/* phones: icon-only phone, Facebook + Instagram + the two stores */
@media (max-width: 575.98px) {
    html body .x-topbar .x-topbar-inner {
        gap: 8px;
    }

    html body .x-topbar .x-topbar-phone-text {
        display: none;
    }

    html body .x-topbar .x-topbar-right {
        gap: 6px !important;
        margin-inline-start: auto;
    }

    html body .x-topbar :is(.x-topbar-social, .x-topbar-stores) {
        display: flex !important;
        gap: 6px !important;
    }

    html body .x-topbar .x-topbar-social .x-topbar-icon {
        display: none;
    }

    html body .x-topbar .x-topbar-social :is(.x-social-facebook, .x-social-instagram) {
        display: inline-grid;
    }
}

/* nav bar: white with a soft line; gets shorter with a deeper shadow once the page scrolls
   (.is-scrolled is toggled by the script under the header) */
html body #header.renzo-site-header .x-main-nav {
    min-height: var(--rf-header-h);
    padding: 0 !important;
    border-bottom: 1px solid var(--rf-line);
    background: rgba(255, 255, 255, 0.92) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    -webkit-backdrop-filter: saturate(1.6) blur(14px);
    backdrop-filter: saturate(1.6) blur(14px);
    transition: min-height var(--rf-ease), box-shadow var(--rf-ease);
}

html body #header.renzo-site-header .x-main-nav-inner {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 16px;
    min-height: var(--rf-header-h);
    transition: min-height var(--rf-ease);
}

/* pages start right under the header: new.css gave header a 5px bottom margin and special.css
   gave .navbar 2px, which left a strip of the grey body between the two */
html body #header.renzo-site-header,
html body #header.renzo-site-header .x-main-nav {
    margin-bottom: 0 !important;
}

/* the page card (.newbackgrounds: listings, details) meets the header square instead of
   rounding away from it; its inner padding still spaces the breadcrumb */
html body #header.renzo-site-header ~ .content-body.newbackgrounds {
    margin-top: 0 !important;
    border-start-start-radius: 0 !important;
    border-start-end-radius: 0 !important;
}

html body #header.renzo-site-header.is-scrolled :is(.x-main-nav, .x-main-nav-inner) {
    min-height: var(--rf-header-h-scrolled);
}

html body #header.renzo-site-header.is-scrolled .x-main-nav {
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 10px 30px rgba(17, 24, 39, 0.08) !important;
}

html body #header.renzo-site-header .navbar-brand img {
    height: 48px !important;
    padding: 7px 10px !important;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    transition: height var(--rf-ease);
}

html body #header.renzo-site-header.is-scrolled .navbar-brand img {
    height: 42px !important;
}

/* desktop links from 1300px; below that they live in the mobile menu.
   Bootstrap's .navbar-expand-lg .navbar-collapse (display: flex !important from 992px)
   outranked a plain .x-desktop-menu rule, so the id-level selector is needed */
@media (max-width: 1299.98px) {
    html body #header.renzo-site-header .x-desktop-menu {
        display: none !important;
    }
}

@media (min-width: 1300px) {
    html body #header.renzo-site-header .x-desktop-menu {
        display: flex !important;
    }

    html body #header.renzo-site-header .x-mobile-toggle {
        display: none !important;
    }
}

/* desktop links: plain text; an orange line grows under the hovered link and stays under the current one */
html body #header.renzo-site-header .x-desktop-nav {
    align-items: center;
    gap: 4px;
}

html body #header.renzo-site-header .x-desktop-nav .nav-link {
    position: relative;
    min-height: 46px;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--rf-text) !important;
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: -0.005em;
    transform: none !important;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body #header.renzo-site-header .x-desktop-nav .nav-link::after {
    content: "";
    position: absolute;
    inset-inline: 16px;
    bottom: 6px;
    height: 2px;
    border-radius: 2px;
    background: var(--rf-orange);
    transform: scaleX(0);
    transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

html body #header.renzo-site-header .x-desktop-nav .nav-link:hover {
    background: var(--rf-surface-alt) !important;
    color: var(--rf-orange) !important;
}

html body #header.renzo-site-header .x-desktop-nav .nav-link:hover::after {
    transform: scaleX(0.5);
}

html body #header.renzo-site-header .x-desktop-nav .nav-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
    color: var(--rf-orange) !important;
}

html body #header.renzo-site-header .x-desktop-nav .nav-link.active {
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
    font-weight: 800;
}

html body #header.renzo-site-header .x-desktop-nav .nav-link.active::after {
    transform: scaleX(1);
}

/* 1300-1439px: six links + language + login only just fit at full size */
@media (min-width: 1300px) and (max-width: 1439.98px) {
    html body #header.renzo-site-header .x-desktop-nav {
        gap: 0;
    }

    html body #header.renzo-site-header .x-desktop-nav .nav-link {
        padding: 0 11px !important;
        font-size: 15.5px;
    }

    html body #header.renzo-site-header .x-desktop-nav .nav-link::after {
        inset-inline: 11px;
    }
}

/* right side: chat, language, profile / login, menu toggle */
html body #header.renzo-site-header .x-header-actions {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 8px;
    margin-inline-start: auto;
}

html body #header.renzo-site-header .chatandlang {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
}

html body #header.renzo-site-header :is(.chat-dropdown, .x-lang-switch, .x-user-menu, .x-login-link) {
    margin: 0 !important;
}

/* language / profile / login sit in the mobile menu below 992px */
@media (max-width: 991.98px) {
    html body #header.renzo-site-header :is(.x-lang-switch, .x-user-menu, .x-login-link) {
        display: none !important;
    }
}

@media (min-width: 992px) {
    html body #header.renzo-site-header :is(.x-lang-switch, .x-user-menu) {
        display: block !important;
    }

    html body #header.renzo-site-header .x-login-link {
        display: inline-flex !important;
    }
}

/* language / profile: outlined like the dropdowns in the filters */
html body #header.renzo-site-header .x-header-control {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

html body #header.renzo-site-header .x-header-control:not(.x-login-link) {
    height: 44px;
    min-height: 44px;
    max-width: 200px;
    padding: 0 12px !important;
    border: 1px solid var(--rf-control-border) !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-surface) !important;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04) !important;
    color: var(--rf-text) !important;
    font-size: 15px;
    font-weight: 700;
}

html body #header.renzo-site-header .x-header-control:not(.x-login-link):hover,
html body #header.renzo-site-header .x-header-control:not(.x-login-link).show {
    border-color: var(--rf-control-hover) !important;
    background: var(--rf-surface) !important;
    color: var(--rf-text) !important;
}

html body #header.renzo-site-header .x-header-control.show {
    border-color: var(--rf-orange) !important;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
}

/* flag / avatar: renzo-ui.css gives every img min-height: 100%, which stretched them to the button height */
html body #header.renzo-site-header :is(.x-header-control, .dropdown-item, .x-mobile-menu .nav-link) img {
    flex: none;
    width: 22px;
    height: 22px;
    min-height: 0;
    border-radius: 50%;
    object-fit: cover;
}

html body #header.renzo-site-header .x-user-menu .x-header-control img {
    width: 28px;
    height: 28px;
}

/* Bootstrap's caret: the same chevron as the selects */
html body #header.renzo-site-header .x-header-control.dropdown-toggle::after {
    width: 12px;
    height: 12px;
    margin: 0;
    border: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%239a9caf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
    transition: transform var(--rf-ease);
}

html body #header.renzo-site-header .x-header-control.dropdown-toggle.show::after {
    transform: rotate(180deg);
}

/* Login: the primary gradient button */
html body #header.renzo-site-header .x-login-link {
    align-items: center;
    gap: 8px;
    height: 44px;
    min-height: 44px;
    padding: 0 20px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
    font-size: 15.5px;
    font-weight: 700;
}

/* the extra .x-header-control outranks renzo-refresh.css's .x-header-control:hover / renzo-ui.css's .active,
   which swapped the gradient for orange-soft and turned the text orange (white on pale, orange on orange) */
html body #header.renzo-site-header .x-header-control.x-login-link:hover,
html body #header.renzo-site-header .x-header-control.x-login-link:focus {
    border-color: transparent !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    color: #fff !important;
    filter: brightness(1.05);
}

/* on the login page: "you are here", not a button (the link has no href there) */
html body #header.renzo-site-header .x-header-control.x-login-link.active,
html body #header.renzo-site-header .x-header-control.x-login-link.active:hover {
    border: 1px solid #ffc9b4 !important;
    background: var(--rf-orange-soft) !important;
    box-shadow: none !important;
    color: var(--rf-orange) !important;
    filter: none;
    cursor: default;
    pointer-events: none;
}

html body #header.renzo-site-header .x-mobile-menu .nav-link.active[aria-disabled="true"] {
    cursor: default;
    pointer-events: none;
}

html body #header.renzo-site-header .x-login-link:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--rf-orange-ring), 0 6px 16px rgba(234, 80, 28, 0.26) !important;
}

/* chat + menu toggle: the orange icon chip, filled on hover */
html body #header.renzo-site-header :is(.chat-icon, .x-mobile-toggle) {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 0 !important;
    border: 1px solid #ffd9cb !important;
    border-radius: var(--rf-control-radius) !important;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
    font-size: 18px;
    transition: background var(--rf-ease), color var(--rf-ease), border-color var(--rf-ease), box-shadow var(--rf-ease);
}

/* the toggle is a plain button below 1300px (Bootstrap only shows .navbar-toggler under 992px) */
@media (max-width: 1299.98px) {
    html body #header.renzo-site-header .x-mobile-toggle {
        display: inline-grid !important;
    }
}

html body #header.renzo-site-header :is(.chat-icon, .x-mobile-toggle):hover,
html body #header.renzo-site-header .chat-icon.show {
    border-color: var(--rf-orange) !important;
    background: var(--rf-orange) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
}

html body #header.renzo-site-header :is(.chat-icon, .x-mobile-toggle):focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--rf-orange-ring) !important;
}

html body #header.renzo-site-header .chat-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    display: inline-grid;
    place-items: center;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border: 2px solid #fff;
    border-radius: 99px;
    background: var(--rf-orange);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

html[dir="rtl"] body #header.renzo-site-header .chat-badge {
    right: auto;
    left: -6px;
}

/* chat list: the same pop-up as the profile menu. Rows are built by loadDeveloperList() in chat.js:
   li.developer-item > button.start-chat-button (or .broker-start-chat-button) > avatar + name + project.
   renzo-ui.css paints the row button dark and the name white; these rules undo that. */
html body #header.renzo-site-header .chat-menu {
    width: 340px;
    min-width: 280px;
    max-width: calc(100vw - 24px);
    max-height: min(460px, calc(100vh - 120px));
    overflow-y: auto;
    margin-top: 10px !important;
    padding: 0 6px 6px;
    border: 1px solid var(--rf-line);
    border-radius: 16px;
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow-pop);
    scrollbar-width: thin;
    scrollbar-color: #d6d9e0 transparent;
}

/* "Messages" title, kept at the top while the list scrolls */
html body #header.renzo-site-header .chat-menu::before {
    content: "Messages";
    position: sticky;
    top: 0;
    z-index: 1;
    display: block;
    margin: 0 -6px 6px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--rf-line);
    background: var(--rf-surface);
    color: var(--rf-text);
    font-size: 15px;
    font-weight: 800;
}

html[lang="ar"] body #header.renzo-site-header .chat-menu::before {
    content: "المحادثات";
}

html body #header.renzo-site-header .chat-menu .developer-item {
    display: block !important;
    padding: 0;
    border-radius: 12px;
}

html body #header.renzo-site-header .chat-menu .developer-item + .developer-item {
    margin-top: 2px;
}

html body #header.renzo-site-header .chat-menu .developer-item > .project-chat {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 10px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--rf-text) !important;
    letter-spacing: 0 !important; /* login.css spaces .start-chat-header text out */
    text-align: start;
    transition: background var(--rf-ease);
}

html body #header.renzo-site-header .chat-menu .developer-item > .project-chat * {
    letter-spacing: 0 !important;
}

html body #header.renzo-site-header .chat-menu .developer-item > .project-chat:hover,
html body #header.renzo-site-header .chat-menu .developer-item > .project-chat:focus-visible {
    background: var(--rf-orange-soft) !important;
    outline: 0;
}

html body #header.renzo-site-header .chat-menu .developer-item > .project-chat > div {
    gap: 12px;
    width: 100%;
    min-width: 0;
}

html body #header.renzo-site-header .chat-menu .developer-avatar {
    flex: none;
    width: 44px !important;
    height: 44px !important;
    min-height: 0;
    margin: 0;
    padding: 3px;
    border: 1px solid var(--rf-line);
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

html body #header.renzo-site-header .chat-menu .developer-info {
    flex: 1 1 auto;
    min-width: 0;
}

/* name on the start side, unread count pushed to the end */
html body #header.renzo-site-header .chat-menu .developer-name {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: none;
    color: var(--rf-text) !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
}

html body #header.renzo-site-header .chat-menu .developer-sub {
    overflow: hidden;
    margin-top: 2px;
    color: var(--rf-muted);
    font-size: 12.5px !important;
    line-height: 1.35;
    opacity: 1 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body #header.renzo-site-header .chat-menu .unread-badge {
    display: inline-grid;
    place-items: center;
    flex: none;
    min-width: 20px;
    height: 20px;
    margin-inline-start: auto;
    padding: 0 6px !important;
    border-radius: 99px;
    background: var(--rf-orange);
    color: #fff;
    font-size: 11px !important;
    font-weight: 800;
}

/* a conversation with unread messages: tinted row, bolder name */
html body #header.renzo-site-header .chat-menu .developer-item:has(.unread-badge) > .project-chat {
    background: #fffaf7 !important;
}

html body #header.renzo-site-header .chat-menu .developer-item:has(.unread-badge) .developer-name {
    font-weight: 800;
}

/* loading / "No chat history found." / error rows */
html body #header.renzo-site-header .chat-menu > li.text-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 26px 16px !important;
    color: var(--rf-muted);
    font-size: 13.5px;
}

html body #header.renzo-site-header .chat-menu > li.text-center::before {
    content: '\f086';
    display: inline-grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-family: 'Font Awesome 6 Free';
    font-size: 19px;
    font-weight: 900;
}

html body #header.renzo-site-header .chat-menu > li.text-center strong {
    color: var(--rf-label);
    font-weight: 700;
}

/* language menu: mark the language in use */
html body #header.renzo-site-header .x-lang-switch .dropdown-item.active {
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
}

/* mobile menu ------------------------------------------------------------------ */
/* full height and above the sticky header and its backdrop */
html body #header.renzo-site-header .x-mobile-menu.offcanvas {
    top: 0 !important;
    width: min(86vw, 360px);
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    z-index: 12050 !important;
}

html body .offcanvas-backdrop {
    z-index: 12040 !important;
}

html body .offcanvas-backdrop.show {
    opacity: 0.4;
}

html body #header.renzo-site-header .x-mobile-menu .offcanvas-header {
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 68px;
    padding: 0 16px;
    border-bottom: 1px solid var(--rf-line);
    background: var(--rf-surface);
}

html body #header.renzo-site-header .x-mobile-menu .offcanvas-title {
    color: var(--rf-text);
    font-size: 19px;
    font-weight: 800;
}

html body #header.renzo-site-header .x-mobile-menu .btn-close {
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border-radius: var(--rf-control-radius);
    background-color: var(--rf-surface-alt);
    background-size: 12px;
    opacity: 1;
}

html body #header.renzo-site-header .x-mobile-menu .btn-close:hover {
    background-color: var(--rf-orange-soft);
}

html body #header.renzo-site-header .x-mobile-menu .offcanvas-body {
    padding: 12px;
    overflow-y: auto;
}

html body #header.renzo-site-header .x-mobile-menu .navbar-nav {
    gap: 2px;
}

/* the older stylesheets pad every li by 10px, which spread the rows apart */
html body #header.renzo-site-header .x-mobile-menu .nav-item {
    padding: 0 !important;
}

html body #header.renzo-site-header .x-mobile-menu .nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 50px;
    margin: 0 !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-radius: var(--rf-control-radius) !important;
    background: transparent !important;
    color: var(--rf-text) !important;
    font-size: 16px;
    font-weight: 700;
}

/* icon in a small tinted square, as in the profile menu */
html body #header.renzo-site-header .x-mobile-menu .nav-link > i {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--rf-surface-alt);
    color: var(--rf-muted);
    font-size: 14px;
}

html body #header.renzo-site-header .x-mobile-menu .nav-link:hover,
html body #header.renzo-site-header .x-mobile-menu .nav-link.active {
    background: var(--rf-orange-soft) !important;
    color: var(--rf-orange) !important;
}

html body #header.renzo-site-header .x-mobile-menu .nav-link:is(:hover, .active) > i {
    background: #ffe2d6;
    color: var(--rf-orange);
}

html body #header.renzo-site-header .x-mobile-menu .nav-link.active > i {
    background: var(--rf-orange);
    color: #fff;
}

/* account and language groups start with a thin divider */
html body #header.renzo-site-header .x-mobile-menu .x-mobile-group-start {
    margin-top: 8px !important;
    padding-top: 8px !important;
    border-top: 1px solid var(--rf-line);
}

/* language: two side-by-side choices */
html body #header.renzo-site-header .x-mobile-menu .x-mobile-langs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

html body #header.renzo-site-header .x-mobile-menu .x-mobile-langs .nav-link {
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    border: 1px solid var(--rf-control-border) !important;
    font-size: 15px;
}

html body #header.renzo-site-header .x-mobile-menu .x-mobile-langs .nav-link.active {
    border-color: #ffc9b4 !important;
}

@media (max-width: 575.98px) {
    :root {
        --rf-header-h: 66px;
        --rf-header-h-scrolled: 60px;
    }

    html body #header.renzo-site-header .navbar-brand img,
    html body #header.renzo-site-header.is-scrolled .navbar-brand img {
        height: 42px !important;
    }

    html body #header.renzo-site-header :is(.chat-icon, .x-mobile-toggle) {
        width: 42px;
        height: 42px;
        min-width: 42px;
    }

    html body #header.renzo-site-header .x-mobile-menu.offcanvas {
        width: min(90vw, 360px);
    }
}

@media (prefers-reduced-motion: reduce) {
    html body #header.renzo-site-header,
    html body #header.renzo-site-header *,
    html body #header.renzo-site-header *::after,
    html body .x-topbar * {
        transition: none !important;
    }
}

/* 18. Detail pages ---------------------------------------------------------------------- */
/* shared by /developers/{slug} and /projects/{slug} (.x-detail on the page): banner with the profile
   card overlapping it, listing cards in .x-home-cards (section 10), an About card that clips long text.
   Behaviour (banner swiper, "Read more") is in website/js/renzo-detail.js */
html body .x-detail .x-detail-shell {
    width: 100%;
    margin-inline: auto;
    padding-inline: clamp(16px, 2.5vw, 38px);
}

html body .x-detail .x-detail-hero {
    margin-top: 14px;
}

/* banner: project photos edge to edge, rounded, dots over the photo */
html body .x-detail .x-detail-banner {
    position: relative;
    height: clamp(260px, 38vw, 500px);
    overflow: hidden;
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface-alt);
    box-shadow: var(--rf-shadow);
}


html body .x-detail .x-detail-banner--empty {
    height: clamp(140px, 16vw, 200px);
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, 0.22), transparent 55%),
        linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
}

/* photos show whole (contain) in the part of the banner the profile card does not cover;
   a blurred, darkened copy of the same photo fills the space around it */
html body .x-detail .x-detail-banner {
    --x-detail-overlap: 64px;
}

html body .x-detail .x-detail-banner:not(.x-detail-banner--empty) {
    background: #1f2430;
}

/* slide content is all absolutely positioned, so the wrapper and slides take the banner height */
html body .x-detail .x-detail-banner :is(.swiper-wrapper, .swiper-slide) {
    height: 100% !important;
}

html body .x-detail .x-detail-banner .swiper-slide {
    position: relative;
    overflow: hidden;
}

html body .x-detail .x-detail-banner .x-detail-slide-bg {
    position: absolute;
    inset: -24px;
    background-position: center;
    background-size: cover;
    filter: blur(22px) brightness(0.7) saturate(1.1);
    transform: scale(1.08);
}

html body .x-detail .x-detail-banner .swiper-slide img {
    position: absolute;
    inset: 0 0 var(--x-detail-overlap);
    display: block;
    width: 100%;
    height: calc(100% - var(--x-detail-overlap));
    min-height: 0;
    object-fit: contain;
    filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.28));
}

/* login.css hides every swiper arrow and makes the dots position: relative (the old empty strip under the photo) */
html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next) {
    display: flex !important;
    align-items: center;
    justify-content: center;
    z-index: 4;
    width: 42px;
    height: 42px;
    margin-top: -21px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 6px 16px rgba(17, 24, 39, 0.16);
    color: var(--rf-text);
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next)::after {
    font-size: 15px;
    font-weight: 900;
}

html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next):hover {
    background: var(--rf-orange);
    color: #fff;
}

/* the dots sit above the profile card's overlap */
html body .x-detail .x-detail-banner .swiper-pagination {
    position: absolute !important;
    z-index: 3;
    bottom: calc(var(--x-detail-overlap) + 12px) !important;
}

/* arrows sit in the photo area above the profile card */
html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next) {
    top: calc(50% - var(--x-detail-overlap) / 2);
}

html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next) svg {
    width: 14px;
    height: 14px;
}

html body .x-detail .x-detail-banner .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: #fff;
    opacity: 0.6;
}

html body .x-detail .x-detail-banner .swiper-pagination-bullet-active {
    width: 22px;
    border-radius: 99px;
    opacity: 1;
}

/* profile card: overlaps the bottom of the banner */
html body .x-detail .x-detail-profile {
    position: relative;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin: -64px clamp(12px, 2.5vw, 32px) 0;
    padding: 22px 24px;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow-pop);
}

html body .x-detail .x-detail-logo {
    flex: none;
    width: 104px;
    height: 104px;
    padding: 10px;
    border: 1px solid var(--rf-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(17, 24, 39, 0.08);
    object-fit: contain;
}

html body .x-detail .x-detail-identity {
    flex: 1 1 auto;
    min-width: 0;
}

html body .x-detail .x-detail-eyebrow {
    display: inline-block;
    margin-bottom: 2px;
    color: var(--rf-orange);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

html body .x-detail .x-detail-name {
    margin: 0 0 10px !important;
    overflow-wrap: anywhere;
    color: var(--rf-text) !important;
    font-size: clamp(22px, 2.4vw, 30px) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

html body .x-detail .x-detail-facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

html body .x-detail :is(.x-detail-rating, .x-detail-chip) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border-radius: 99px;
    font-size: 13.5px;
    font-weight: 600;
    white-space: nowrap;
}

html body .x-detail .x-detail-rating {
    border: 1px solid #fde6a3;
    background: #fff9e8;
    color: #8a6a12;
}

html body .x-detail .x-detail-stars {
    display: inline-flex;
    gap: 2px;
    color: #f5b301;
    font-size: 12px;
}

html body .x-detail .x-detail-rating strong {
    color: var(--rf-text);
    font-weight: 800;
}

html body .x-detail .x-detail-chip {
    border: 1px solid var(--rf-line);
    background: var(--rf-surface-alt);
    color: var(--rf-label);
}

html body .x-detail .x-detail-chip i {
    color: var(--rf-orange);
    font-size: 12.5px;
}

html body .x-detail .x-detail-chip strong {
    color: var(--rf-text);
    font-weight: 800;
}

/* actions: Meeting is the primary gradient button, Request Call a soft green one */
html body .x-detail .x-detail-actions {
    display: flex;
    flex: 0 0 280px;
    flex-direction: column;
    gap: 10px;
}

html body :is(.x-detail, .x-page) .x-detail-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    height: var(--rf-control-h);
    padding: 0 16px !important;
    border-radius: var(--rf-control-radius) !important;
    font-size: 14.5px !important;
    font-weight: 700 !important;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    transition: box-shadow var(--rf-ease), background var(--rf-ease), color var(--rf-ease), filter var(--rf-ease);
}

html body :is(.x-detail, .x-page) .x-detail-btn--primary {
    border: 0 !important;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%) !important;
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26) !important;
    color: #fff !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--primary:hover {
    box-shadow: 0 10px 22px rgba(234, 80, 28, 0.32) !important;
    color: #fff !important;
    filter: brightness(1.05);
}

html body :is(.x-detail, .x-page) .x-detail-btn--call {
    border: 1px solid #b7ebc9 !important;
    background: #ecfbf2 !important;
    color: #15803d !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--call:hover {
    border-color: #16a34a !important;
    background: #16a34a !important;
    color: #fff !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 4px var(--rf-orange-ring) !important;
}

/* sections: projects + about */
html body .x-detail .x-detail-section {
    margin-top: 36px;
}

html body .x-detail .x-detail-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

html body .x-detail .x-detail-section-title {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    padding-inline-start: 14px;
    color: var(--rf-text) !important;
    font-size: clamp(19px, 1.8vw, 23px) !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

html body .x-detail .x-detail-section-title::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.2em;
    bottom: 0.2em;
    width: 4px;
    border-radius: 99px;
    background: var(--rf-orange);
}

html body .x-detail .x-detail-count {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    height: 26px;
    padding: 0 8px;
    border-radius: 99px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 13px;
    font-weight: 800;
}

html body .x-detail .x-detail-section-sub {
    margin: 6px 0 0 !important;
    padding-inline-start: 14px;
    color: var(--rf-muted) !important;
    font-size: 14.5px;
}

html body :is(.x-detail, .x-page) .x-detail-link {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 16px;
    border: 1px solid var(--rf-orange);
    border-radius: var(--rf-control-radius);
    background: var(--rf-surface);
    color: var(--rf-orange) !important;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body :is(.x-detail, .x-page) .x-detail-link:hover {
    background: var(--rf-orange);
    color: #fff !important;
}

/* every card is this developer's: drop the repeated logo + name row (a price in it stays) */
html body .x-detail .x-detail-cards .x-launch-dev-info {
    display: none !important;
}

html body .x-detail .x-detail-cards .x-launch-meta-row:not(:has(.x-launch-price)) {
    display: none !important;
}

/* about */
html body .x-detail .x-detail-about {
    padding: clamp(18px, 2.4vw, 30px);
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
}

html body .x-detail .x-detail-about-intro {
    margin: 14px 0 18px !important;
    padding: 14px 16px;
    border-inline-start: 3px solid var(--rf-orange);
    border-radius: 10px;
    background: var(--rf-surface-alt);
    color: var(--rf-label) !important;
    font-size: 14.5px;
    line-height: 1.75;
}

html body .x-detail .x-detail-about-body {
    position: relative;
    color: #3b4250 !important;
    font-size: 15.5px;
    line-height: 1.85;
}

html body .x-detail .x-detail-about-body :is(p, div, span, li) {
    color: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

html body .x-detail .x-detail-about-body :is(h1, h2, h3, h4, h5, h6, strong, b) {
    color: var(--rf-text) !important;
    font-weight: 800 !important;
}

html body .x-detail .x-detail-about-body :is(h1, h2, h3, h4) {
    margin: 18px 0 8px !important;
    font-size: 17px !important;
}

html body .x-detail .x-detail-about-body :is(p, ul, ol) {
    margin: 0 0 12px !important;
}

html body .x-detail .x-detail-about-body a {
    color: var(--rf-orange) !important;
}

html body .x-detail .x-detail-about-body img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
}

/* clipped until "Read more": fades out at the bottom */
html body .x-detail .x-detail-about-body.is-clipped:not(.is-open) {
    max-height: 280px;
    overflow: hidden;
}

html body .x-detail .x-detail-about-body.is-clipped:not(.is-open)::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 96px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff);
}

html body .x-detail .x-detail-more {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--rf-orange);
    font-size: 14.5px;
    font-weight: 800;
}

html body .x-detail .x-detail-more[hidden] {
    display: none;
}

html body .x-detail .x-detail-more i {
    font-size: 12px;
    transition: transform var(--rf-ease);
}

html body .x-detail .x-detail-more[aria-expanded="true"] i {
    transform: rotate(180deg);
}

/* developer name above a project title links to the developer page */
html body .x-detail a.x-detail-eyebrow-link {
    text-decoration: none !important;
}

html body .x-detail a.x-detail-eyebrow-link:hover {
    text-decoration: underline !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--chat {
    border: 1px solid #b7ebc9 !important;
    background: #ecfbf2 !important;
    color: #15803d !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--chat:hover {
    border-color: #16a34a !important;
    background: #16a34a !important;
    color: #fff !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--outline {
    border: 1px solid var(--rf-control-border) !important;
    background: var(--rf-surface) !important;
    color: var(--rf-text) !important;
}

html body :is(.x-detail, .x-page) .x-detail-btn--outline:hover {
    border-color: var(--rf-orange) !important;
    color: var(--rf-orange) !important;
}

/* payment plan at a glance: a row of tiles across the bottom of the profile card */
html body .x-detail .x-detail-stats {
    display: grid;
    flex: 1 1 100%;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
    margin: 4px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--rf-line);
}

html body .x-detail .x-detail-stat {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 12px 14px;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius);
    background: var(--rf-surface-alt);
}

html body .x-detail .x-detail-stat-ic {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 16px;
}

html body .x-detail .x-detail-stat dt {
    margin: 0;
    color: var(--rf-muted);
    font-size: 12.5px;
    font-weight: 600;
}

html body .x-detail .x-detail-stat dd {
    margin: 0;
    overflow: hidden;
    color: var(--rf-text);
    font-size: 16px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* units: every card is in this project, so the developer badge on the photo is dropped in the markup */
html body .x-detail .x-detail-subtitle {
    margin: 26px 0 12px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--rf-text) !important;
    font-size: 16.5px !important;
    font-weight: 800 !important;
}

html body .x-detail .x-detail-amenities {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

html body .x-detail .x-detail-amenities li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 14px;
    border: 1px solid var(--rf-line);
    border-radius: 99px;
    background: var(--rf-surface-alt);
    color: var(--rf-text);
    font-size: 14px;
    font-weight: 600;
}

html body .x-detail .x-detail-amenities li i {
    color: #16a34a;
}

/* brochures: file rows with a PDF icon and a download arrow */
html body .x-detail .x-detail-files {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}

html body .x-detail .x-detail-file {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius);
    background: var(--rf-surface);
    color: var(--rf-text) !important;
    text-decoration: none !important;
    transition: border-color var(--rf-ease), background var(--rf-ease);
}

html body .x-detail .x-detail-file:hover {
    border-color: #ffc9b4;
    background: var(--rf-orange-soft);
}

html body .x-detail .x-detail-file-ic {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: #fdecee;
    color: #d7263d;
    font-size: 18px;
}

html body .x-detail .x-detail-file strong {
    display: block;
    font-size: 14.5px;
    font-weight: 700;
}

html body .x-detail .x-detail-file small {
    color: var(--rf-muted);
    font-size: 12.5px;
}

html body .x-detail .x-detail-file-go {
    margin-inline-start: auto;
    color: var(--rf-orange);
}

html body .x-detail .x-detail-map {
    width: 100%;
    height: clamp(300px, 36vw, 440px);
    overflow: hidden;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface-alt);
}

/* unit price above the actions */
html body .x-detail .x-detail-price {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 14px;
    border: 1px solid #ffd9cb;
    border-radius: var(--rf-radius);
    background: var(--rf-orange-soft);
}

html body .x-detail .x-detail-price span {
    color: var(--rf-label);
    font-size: 12.5px;
    font-weight: 600;
}

html body .x-detail .x-detail-price strong {
    color: var(--rf-orange);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}

html body .x-detail .x-detail-price small {
    font-size: 13px;
    font-weight: 700;
}

/* photo count on a gallery */
html body .x-detail .x-detail-photo-count {
    position: absolute;
    top: 14px;
    inset-inline-end: 14px;
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border-radius: 99px;
    background: rgba(17, 24, 39, 0.6);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

/* rental (/properties/{slug}) ------------------------------------------------------------ */
/* no logo for a rental: an icon tile in its place */
html body .x-detail .x-detail-logo--icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 38px;
}

html body .x-detail .x-detail-actions-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* favourite heart in the card corner (toggled by the .propertyFavorite script) */
html body .x-detail .x-detail-fav {
    position: absolute;
    top: 14px;
    inset-inline-end: 14px;
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--rf-line);
    border-radius: 50%;
    background: var(--rf-surface);
    color: var(--rf-muted);
    font-size: 17px;
    cursor: pointer;
    transition: border-color var(--rf-ease), color var(--rf-ease), background var(--rf-ease);
}

html body .x-detail .x-detail-fav:hover,
html body .x-detail .x-detail-fav.text-danger {
    border-color: #f8cdd3;
    background: #fdecee;
    color: #d7263d !important;
}

html body .x-detail--rental .x-detail-actions {
    margin-top: 34px; /* clear of the heart */
}

html body .x-detail .x-detail-rules li i {
    color: #6d4fd8;
}

/* details on the start side, booking on the end side (sticky below the header) */
html body .x-detail .x-detail-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    align-items: start;
    gap: 24px;
}

html body .x-detail .x-detail-main > .x-detail-section:first-child {
    margin-top: 36px;
}

html body .x-detail .x-detail-booking {
    position: sticky;
    top: 84px;
    margin-top: 36px;
    padding: 20px;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow);
    scroll-margin-top: 90px;
}

html body .x-detail .x-detail-booking-head {
    display: grid;
    gap: 14px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--rf-line);
}

html body .x-detail .x-detail-booking-head > div:first-child span {
    display: block;
    color: var(--rf-muted);
    font-size: 13px;
    font-weight: 600;
}

html body .x-detail .x-detail-booking-head strong {
    color: var(--rf-text);
    font-size: 24px;
    font-weight: 800;
}

html body .x-detail .x-detail-booking-head strong small {
    color: var(--rf-muted);
    font-size: 13px;
    font-weight: 600;
}

html body .x-detail .x-detail-host {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--rf-radius);
    background: var(--rf-surface-alt);
}

html body .x-detail .x-detail-host img {
    flex: none;
    width: 40px;
    height: 40px;
    min-height: 0;
    border-radius: 50%;
    object-fit: cover;
}

html body .x-detail .x-detail-host small {
    display: block;
    color: var(--rf-muted);
    font-size: 12px;
}

html body .x-detail .x-detail-host b {
    color: var(--rf-text);
    font-size: 14.5px;
}

/* the booking form (ids/names unchanged): two date fields side by side, then phone and guests */
html body .x-detail-booking .x-rental-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

html body .x-detail-booking .x-rental-field:nth-child(n + 3) {
    grid-column: 1 / -1;
}

html body .x-detail-booking .x-rental-field .form-label {
    margin-bottom: 6px !important;
    color: var(--rf-label) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

html body .x-detail-booking .x-rental-field .input-group {
    flex-wrap: nowrap;
    height: var(--rf-control-h);
    overflow: hidden;
    border: 1px solid var(--rf-control-border);
    border-radius: var(--rf-control-radius);
    background: var(--rf-surface);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    transition: border-color var(--rf-ease), box-shadow var(--rf-ease);
}

html body .x-detail-booking .x-rental-field .input-group:hover {
    border-color: var(--rf-control-hover);
}

html body .x-detail-booking .x-rental-field .input-group:focus-within {
    border-color: var(--rf-orange);
    box-shadow: 0 0 0 3px var(--rf-orange-ring);
}

html body .x-detail-booking .x-rental-field .input-group-text {
    padding: 0 0 0 12px;
    border: 0 !important;
    background: transparent !important;
    color: var(--rf-orange);
}

html[dir="rtl"] body .x-detail-booking .x-rental-field .input-group-text {
    padding: 0 12px 0 0;
}

html body .x-detail-booking .x-rental-field .form-control {
    height: 100%;
    padding: 0 12px;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--rf-text);
    font-size: 14.5px;
    font-weight: 600;
}

html body .x-detail-booking .x-rental-order-summary {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 14px;
    border: 1px dashed #ffc9b4;
    border-radius: var(--rf-radius);
    background: #fffaf7;
}

html body .x-detail-booking .x-rental-order-summary > strong {
    color: var(--rf-text);
    font-size: 14px;
    font-weight: 800;
}

html body .x-detail-booking .x-rental-order-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: var(--rf-label);
    font-size: 13.5px;
}

html body .x-detail-booking .x-rental-order-summary > div:last-child {
    padding-top: 8px;
    border-top: 1px solid #ffe2d6;
    color: var(--rf-text);
    font-weight: 700;
}

html body .x-detail-booking .x-rental-order-summary > div:last-child .fw-bold {
    color: var(--rf-orange);
}

html body .x-detail-booking .x-rental-inline-message {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 600;
}

html body .x-detail-booking .x-rental-inline-message.is-success {
    border: 1px solid #b7ebc9;
    background: #ecfbf2;
    color: #15803d;
}

html body .x-detail-booking .x-rental-inline-message.is-error {
    border: 1px solid #f8cdd3;
    background: #fdecee;
    color: #b42318;
}

html body .x-detail-booking .x-rental-submit-wrap {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}

html body .x-detail-booking .x-rental-submit {
    width: 100%;
}

/* the generic .requestbtn rule (section 6) adds a sliders icon; this button has its own */
html body .x-detail-booking .x-rental-submit::before {
    content: none;
}

html body .x-detail-booking .x-rental-safe-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--rf-muted);
    font-size: 12.5px;
}

html body .x-detail-booking .x-rental-safe-note i {
    color: #16a34a;
}

/* favourite saved / removed */
html body .x-fav-toast {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-width: 260px;
    max-width: min(92vw, 420px);
    padding: 14px 18px;
    border-radius: 18px;
    background: rgba(17, 24, 39, 0.96);
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.25);
    color: #fff;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(0.96);
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

html body .x-fav-toast.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1);
}

html body .x-fav-toast-icon {
    display: inline-flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: rgba(234, 80, 28, 0.18);
    color: var(--rf-orange);
}

html body .x-fav-toast-text {
    font-size: 14px;
    font-weight: 800;
}

@media (max-width: 1199.98px) {
    html body .x-detail .x-detail-split {
        grid-template-columns: minmax(0, 1fr) 340px;
    }
}

/* phones / tablets: booking right after the card, details after it */
@media (max-width: 991.98px) {
    html body .x-detail .x-detail-split {
        grid-template-columns: 1fr;
        gap: 0;
    }

    html body .x-detail .x-detail-booking {
        position: static;
        order: -1;
    }

    html body .x-detail--rental .x-detail-actions {
        margin-top: 0;
    }
}

@media (max-width: 991.98px) {
    html body .x-detail .x-detail-profile {
        flex-wrap: wrap;
    }

    html body .x-detail .x-detail-identity {
        flex-basis: calc(100% - 126px);
    }

    html body .x-detail .x-detail-actions {
        flex: 1 1 100%;
        flex-direction: row;
    }
}

@media (max-width: 575.98px) {
    html body .x-detail .x-detail-hero {
        margin-top: 8px;
    }

    html body .x-detail .x-detail-banner:not(.x-detail-banner--empty) {
        --x-detail-overlap: 96px;
        height: 330px;
    }

    /* the centred logo covers the bottom of the photo: dots go to the top */
    html body .x-detail .x-detail-banner .swiper-pagination {
        top: 12px !important;
        bottom: auto !important;
    }

    /* phones swipe; the dots stay */
    html body .x-detail .x-detail-banner :is(.swiper-button-prev, .swiper-button-next) {
        display: none !important;
    }

    html body .x-detail .x-detail-profile {
        flex-direction: column;
        align-items: center;
        gap: 14px;
        margin: -48px 8px 0;
        padding: 18px 16px;
        text-align: center;
    }

    html body .x-detail .x-detail-logo {
        width: 88px;
        height: 88px;
        margin-top: -62px;
    }

    html body .x-detail .x-detail-identity {
        flex-basis: auto;
        width: 100%;
    }

    html body .x-detail .x-detail-facts {
        justify-content: center;
    }

    html body .x-detail .x-detail-actions {
        flex-direction: column;
        width: 100%;
    }

    /* two tiles per row, text aligned like the rest of the page instead of centred */
    html body .x-detail .x-detail-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
        text-align: start;
    }

    html body .x-detail .x-detail-stat {
        gap: 10px;
        padding: 10px;
    }

    html body .x-detail .x-detail-stat-ic {
        width: 34px;
        height: 34px;
        font-size: 14px;
    }

    html body .x-detail .x-detail-stat dd {
        font-size: 15px;
    }

    html body .x-detail .x-detail-btn {
        white-space: normal;
    }

    html body .x-detail .x-detail-section {
        margin-top: 28px;
    }

    html body .x-detail .x-detail-section-head {
        flex-direction: column;
        align-items: stretch;
    }

    html body .x-detail .x-detail-link {
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body .x-detail * {
        transition: none !important;
    }
}

/* 19. Static pages ----------------------------------------------------------------------- */
/* .x-page: /terms, /privacy (website/partials/legal-page.blade.php), /contacts/create, /about-us */
html body .x-page .x-page-shell {
    width: 100%;
    margin-inline: auto;
    padding-inline: clamp(16px, 2.5vw, 38px);
}

/* page header: icon tile, title, one-line intro */
html body .x-page .x-page-head {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 18px;
    margin-bottom: 26px;
}

html body .x-page .x-page-head-ic {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
    box-shadow: 0 8px 20px rgba(234, 80, 28, 0.25);
    color: #fff;
    font-size: 22px;
}

html body .x-page .x-page-title {
    margin: 0 0 4px !important;
    color: var(--rf-text) !important;
    font-size: clamp(24px, 2.6vw, 32px) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

html body .x-page .x-page-intro {
    max-width: 720px;
    margin: 0 !important;
    color: var(--rf-muted) !important;
    font-size: 15px;
    line-height: 1.6;
}

/* terms / privacy: links between the legal pages on the start side, the text in a reading card */
html body .x-page .x-legal {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    align-items: start;
    gap: 24px;
    padding-bottom: 40px;
}

html body .x-page .x-legal-side {
    position: sticky;
    top: 84px;
    display: grid;
    gap: 14px;
}

html body .x-page .x-legal-nav {
    display: grid;
    gap: 4px;
    padding: 8px;
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
}

html body .x-page .x-legal-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 10px;
    color: var(--rf-text) !important;
    font-size: 14.5px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body .x-page .x-legal-nav a i {
    width: 18px;
    color: var(--rf-muted);
    text-align: center;
}

html body .x-page .x-legal-nav a:hover {
    background: var(--rf-surface-alt);
}

html body .x-page .x-legal-nav a.is-active {
    background: var(--rf-orange-soft);
    color: var(--rf-orange) !important;
}

html body .x-page .x-legal-nav a.is-active i {
    color: var(--rf-orange);
}

html body .x-page .x-legal-help {
    padding: 16px;
    border: 1px solid #ffd9cb;
    border-radius: var(--rf-radius-lg);
    background: var(--rf-orange-soft);
}

html body .x-page .x-legal-help strong {
    display: block;
    color: var(--rf-text);
    font-size: 15px;
    font-weight: 800;
}

html body .x-page .x-legal-help p {
    margin: 4px 0 12px !important;
    color: var(--rf-label) !important;
    font-size: 13.5px;
}

/* the CMS text arrives with inline fonts, sizes and spacing: one reading style for all of it */
html body .x-page .x-legal-body {
    padding: clamp(20px, 3vw, 40px);
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    color: #3b4250;
    font-size: 15.5px;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

html body .x-page .x-legal-body * {
    max-width: 100%;
    color: inherit !important;
    font-size: inherit !important;
    font-family: inherit !important;
    line-height: inherit !important;
    letter-spacing: normal !important;
    background: transparent !important;
}

html body .x-page .x-legal-body :is(p, div, ul, ol) {
    margin: 0 0 14px !important;
}

html body .x-page .x-legal-body :is(b, strong, h1, h2, h3, h4, h5, h6) {
    color: var(--rf-text) !important;
    font-weight: 800 !important;
}

/* "1. Definitions"-style headings are bold paragraphs in the CMS text: give them room and size */
html body .x-page .x-legal-body :is(h1, h2, h3, h4, h5, h6),
html body .x-page .x-legal-body :is(p, div) > :is(b, strong):only-child {
    display: block;
    margin: 22px 0 8px !important;
    font-size: 17px !important;
}

html body .x-page .x-legal-body a {
    color: var(--rf-orange) !important;
    text-decoration: underline;
}

/* contact: ways to reach us in a brand panel beside the form */
html body .x-page .x-contact {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: stretch;
    gap: 24px;
    padding-bottom: 40px;
}

html body .x-page .x-contact-info {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px);
    border-radius: var(--rf-radius-lg);
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(255, 255, 255, 0.18), transparent 55%),
        linear-gradient(150deg, #f26a35 0%, var(--rf-orange) 50%, var(--rf-orange-dark) 100%);
    box-shadow: 0 14px 34px rgba(234, 80, 28, 0.25);
    color: #fff;
}

html body .x-page .x-contact-info h2 {
    margin: 0 0 4px !important;
    color: #fff !important;
    font-size: 22px !important;
    font-weight: 800 !important;
}

html body .x-page .x-contact-info > p {
    margin: 0 0 20px !important;
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 14.5px;
}

html body .x-page .x-contact-rows {
    display: grid;
    gap: 10px;
}

html body .x-page .x-contact-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--rf-radius);
    background: rgba(255, 255, 255, 0.12);
    color: #fff !important;
    text-decoration: none !important;
    transition: background var(--rf-ease), border-color var(--rf-ease);
}

html body .x-page .x-contact-row:hover {
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.2);
}

html body .x-page .x-contact-row-ic {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #fff;
    color: var(--rf-orange);
    font-size: 17px;
}

html body .x-page .x-contact-row-txt {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

html body .x-page .x-contact-row-txt small {
    color: rgba(255, 255, 255, 0.8);
    font-size: 12.5px;
    font-weight: 600;
}

html body .x-page .x-contact-row-txt strong {
    overflow: hidden;
    color: #fff;
    font-size: 15.5px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html body .x-page .x-contact-row-txt em {
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    font-style: normal;
}

html body .x-page .x-contact-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
}

html body .x-page .x-contact-tags span {
    padding: 5px 12px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 99px;
    font-size: 12.5px;
    font-weight: 700;
}

html body .x-page .x-contact-form {
    padding: clamp(22px, 3vw, 34px);
    border: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow);
}

html body .x-page .x-contact-form h2 {
    margin: 0 0 4px !important;
    color: var(--rf-text) !important;
    font-size: 21px !important;
    font-weight: 800 !important;
}

html body .x-page .x-contact-form > p {
    margin: 0 0 20px !important;
    color: var(--rf-muted) !important;
    font-size: 14.5px;
}

html body .x-page .x-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

html body .x-page .x-contact-field.is-full {
    grid-column: 1 / -1;
}

html body .x-page .x-contact-field label {
    display: block;
    margin-bottom: 6px;
    color: var(--rf-label);
    font-size: 13px;
    font-weight: 700;
}

/* one bordered field with the icon inside (was an icon box beside a bordered input) */
html body .x-page .x-contact-input {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: var(--rf-control-h);
    padding: 0 14px;
    border: 1px solid var(--rf-control-border);
    border-radius: var(--rf-control-radius);
    background: var(--rf-surface);
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    transition: border-color var(--rf-ease), box-shadow var(--rf-ease);
}

html body .x-page .x-contact-input:hover {
    border-color: var(--rf-control-hover);
}

html body .x-page .x-contact-input:focus-within {
    border-color: var(--rf-orange);
    box-shadow: 0 0 0 3px var(--rf-orange-ring);
}

html body .x-page .x-contact-input i {
    flex: none;
    color: var(--rf-orange);
    font-size: 14px;
}

html body .x-page .x-contact-input :is(input, textarea) {
    flex: 1 1 auto;
    min-width: 0;
    height: calc(var(--rf-control-h) - 2px);
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--rf-text);
    font-size: 14.5px;
    font-weight: 600;
}

html body .x-page .x-contact-input :is(input, textarea)::placeholder {
    color: #9aa0ad;
    font-weight: 500;
}

html body .x-page .x-contact-input.is-textarea {
    align-items: flex-start;
    padding-top: 13px;
}

html body .x-page .x-contact-input textarea {
    height: auto;
    min-height: 120px;
    resize: vertical;
    line-height: 1.6;
}

html body .x-page .x-contact-error {
    display: block;
    margin-top: 6px;
    color: #b42318;
    font-size: 12.5px;
    font-weight: 600;
}

html body .x-page .x-contact-submit {
    margin-top: 20px;
}

html body .x-page .x-contact-note {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 12px 0 0 !important;
    color: var(--rf-muted) !important;
    font-size: 12.5px;
}

html body .x-page .x-contact-note i {
    color: #16a34a;
}

/* about (.x-about-page, its own styles are inline in about-us.blade.php) */
/* a global stylesheet makes h2 inline-block, which put "RENZO" / "Quick Guide" on the heading's line */
html body .x-about-page :is(.x-about-section-head, .x-about-faq-intro, .x-about-intro-copy) h2 {
    display: block !important;
    margin-top: 10px !important;
    text-align: inherit !important;
}

/* hero text lines up with the content below instead of a narrower centred box */
html body .x-about-page .x-about-hero-content {
    max-width: none;
}

html body .x-about-page .x-about-hero-content p {
    max-width: 680px;
}

/* labels: the orange dash + text, same in every section */
html body .x-about-page .x-about-label {
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
}

/* the CMS block under the FAQs (map + text): full width card with the map edge to edge */
html body .x-about-page .x-about-unique-section {
    padding-top: 56px;
}

html body .x-about-page .x-about-unique-content {
    max-width: none;
    padding: clamp(20px, 3vw, 32px);
    border: 1px solid var(--rf-line);
    border-top: 1px solid var(--rf-line);
    border-radius: var(--rf-radius-lg);
    box-shadow: var(--rf-shadow);
}

html body .x-about-page .x-about-unique-content :is(h1, h2, h3, h4, h5, h6, b, strong) {
    position: relative;
    display: block;
    margin: 0 0 16px !important;
    padding-inline-start: 14px;
    color: var(--rf-text) !important;
    font-size: clamp(18px, 1.8vw, 22px) !important;
    font-weight: 800 !important;
}

html body .x-about-page .x-about-unique-content :is(h1, h2, h3, h4, h5, h6, b, strong)::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0.2em;
    bottom: 0.2em;
    width: 4px;
    border-radius: 99px;
    background: var(--rf-orange);
}

html body .x-about-page .x-about-unique-content iframe {
    display: block;
    width: 100% !important;
    height: clamp(300px, 36vw, 440px) !important;
    border: 1px solid var(--rf-line) !important;
    border-radius: var(--rf-radius);
}

@media (max-width: 991.98px) {
    html body .x-page :is(.x-legal, .x-contact) {
        grid-template-columns: 1fr;
    }

    html body .x-page .x-legal-side {
        position: static;
        order: 2;
    }

    html body .x-page .x-legal-nav {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 575.98px) {
    html body .x-page .x-page-head {
        align-items: flex-start;
        gap: 12px;
        margin-top: 10px;
    }

    html body .x-page .x-page-head-ic {
        width: 46px;
        height: 46px;
        border-radius: 14px;
        font-size: 18px;
    }

    html body .x-page .x-legal-body {
        font-size: 15px;
        line-height: 1.8;
    }

    html body .x-page .x-contact-grid {
        grid-template-columns: 1fr;
    }

    /* 16px stops iOS zooming into a field when it is tapped */
    html body .x-page .x-contact-input :is(input, textarea) {
        font-size: 16px;
    }

    html body .x-page .x-legal-nav a {
        gap: 8px;
        padding: 0 10px;
        font-size: 13.5px;
        white-space: nowrap;
    }
}

/* 20. Chat window ------------------------------------------------------------------------ */
/* #chat-window (layouts/app.blade.php, filled by website/js/chat.js), restyled from the dark theme in
   chat.css to the site's light one. On the website the visitor's own messages are .received-message and
   the developer's are .sent-message: the visitor's go on the end side in orange, the developer's on the
   start side in white. */
/* chat.css pins it with top/right !important at some widths; logical sides keep it on the end side in Arabic */
html body #chat-window.chat-window {
    top: auto !important;
    bottom: 16px !important;
    inset-inline-start: auto !important;
    inset-inline-end: 16px !important;
    z-index: 2000 !important;
    width: 460px !important;
    height: min(640px, calc(100vh - 32px));
    overflow: hidden;
    border: 1px solid var(--rf-line);
    border-radius: 18px;
    background: var(--rf-surface);
    box-shadow: 0 24px 60px rgba(17, 24, 39, 0.22), 0 2px 8px rgba(17, 24, 39, 0.08);
}

html body #chat-window .chat-container {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    background: var(--rf-surface);
}

/* header: [logo][meeting] ........ [x] (close comes first in the markup) */
html body #chat-window .headerchats {
    flex-direction: row-reverse;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--rf-line);
    background: var(--rf-surface);
}

html body #chat-window .headerchats > div {
    flex-direction: row-reverse;
    gap: 10px;
    min-width: 0;
}

html body #chat-window .this_developer_logo {
    width: 42px;
    height: 42px;
    min-height: 0;
    margin: 0;
    padding: 2px;
    border: 1px solid var(--rf-line);
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
}

html body #chat-window .meeting-button {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #ffd9cb;
    border-radius: 99px;
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

html body #chat-window .meeting-button:hover {
    border-color: var(--rf-orange);
    background: var(--rf-orange);
    color: #fff;
}

html body #chat-window .close_chat_button {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border-radius: 50%;
    background: var(--rf-surface-alt);
    color: var(--rf-label);
    font-size: 20px;
    line-height: 1;
}

html body #chat-window .close_chat_button:hover {
    background: #fdecee;
    color: #d7263d;
}

html body #chat-window .chat-date-header {
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
    font-size: 12.5px;
    font-weight: 700;
}

/* conversation */
html body #chat-window .chat-messages {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0;
    padding: 16px 14px;
    border: 0;
    background: #f6f7f9 none;
    scrollbar-width: thin;
    scrollbar-color: #d6d9e0 transparent;
}

html body #chat-window ::-webkit-scrollbar-thumb {
    border-color: #f6f7f9;
    background-color: #d6d9e0;
}

html body #chat-window ::-webkit-scrollbar-track {
    background-color: transparent;
}

html body #chat-window .date-separator {
    margin: 12px auto;
    padding: 4px 12px;
    border-radius: 99px;
    background: #e8eaef;
    color: var(--rf-label);
    font-size: 12px;
    font-weight: 700;
}

html body #chat-window .message {
    position: relative;
    float: none;
    max-width: 82%;
    margin-bottom: 10px;
    padding: 9px 12px 6px !important;
    border-radius: 16px;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.06);
    line-break: auto;
    overflow-wrap: anywhere;
}

/* the visitor */
html body #chat-window .message.received-message {
    align-self: flex-end;
    border-end-end-radius: 4px;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 70%);
    color: #fff;
}

/* the developer / agent */
html body #chat-window .message.sent-message {
    align-self: flex-start;
    border: 1px solid var(--rf-line);
    border-end-start-radius: 4px;
    background: var(--rf-surface);
    color: var(--rf-text);
}

/* Renzo admin replies: tinted so they read as the platform, not the developer */
html body #chat-window .message.adminmessage {
    border-color: #ffd9cb;
    background: var(--rf-orange-soft) !important;
    color: var(--rf-text);
}

html body #chat-window .message.assignmentmessage {
    border-color: var(--rf-line);
    background: #eef0f4 !important;
    color: var(--rf-label);
}

html body #chat-window .message.meeting-message,
html body #chat-window .message.request-meeting-message {
    width: auto;
    border: 1px solid #c9dcff;
    background: #eef4ff;
    color: #1e3a8a;
}

html body #chat-window .meeting-message p a {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 99px;
    background: #2563eb;
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
}

html body #chat-window .message :is(p, .english, .arabic, .meeting-text, .meetingtext) {
    margin: 0 0 2px !important;
    padding: 0;
    border: 0;
    color: inherit !important;
    font-family: var(--rf-font) !important;
    font-size: 14.5px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.55 !important;
    /* each message follows its own language: English on the Arabic site keeps its punctuation in place */
    text-align: start !important;
    unicode-bidi: plaintext;
}

html body #chat-window .message .time,
html body #chat-window .message-timestamp {
    display: block;
    margin-top: 2px;
    color: inherit;
    font-size: 11px;
    opacity: 0.7;
    text-align: end;
}

/* attachments inside bubbles */
html body #chat-window .message :is(.thumbnail, .img-thumbnail) {
    max-width: 100%;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: transparent;
}

html body #chat-window .pdfsec {
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--rf-line);
    border-radius: 12px;
    background: #fff;
}

html body #chat-window .pdfimg {
    max-width: 34px !important;
    max-height: 34px !important;
}

html body #chat-window .pdf-link {
    color: var(--rf-orange);
    font-family: var(--rf-font);
    font-weight: 700;
}

html body #chat-window :is(.agent-avatar, .user-avatar, .admin-avatar) {
    width: 34px;
    height: 34px;
    min-height: 0;
    margin: 0 6px;
}

/* file preview before sending */
html body #chat-window .chat-preview {
    height: auto;
    background: #f6f7f9;
}

html body #chat-window #remove-file-button {
    border-radius: 99px;
    background: #fdecee;
    color: #d7263d;
    font-weight: 700;
}

/* composer: rounded field, round icon buttons, orange Send */
html body #chat-window .chat-input {
    gap: 6px;
    padding: 10px 12px;
    border-top: 1px solid var(--rf-line);
    background: var(--rf-surface);
}

html body #chat-window .chat-input input {
    height: 42px;
    padding: 0 16px;
    border: 1px solid var(--rf-control-border);
    border-radius: 99px;
    background: var(--rf-surface-alt);
    color: var(--rf-text);
    font-size: 14.5px;
    transition: border-color var(--rf-ease), box-shadow var(--rf-ease), background var(--rf-ease);
}

html body #chat-window .chat-input input::placeholder {
    color: #9aa0ad;
}

html body #chat-window .chat-input input:focus {
    border-color: var(--rf-orange);
    background: #fff;
    box-shadow: 0 0 0 3px var(--rf-orange-ring);
}

html body #chat-window .chat-input :is(#voice-button, #upload-button) {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    background: var(--rf-surface-alt);
    color: var(--rf-label);
    font-size: 15px;
    transition: background var(--rf-ease), color var(--rf-ease);
}

html body #chat-window .chat-input :is(#voice-button, #upload-button):hover {
    background: var(--rf-orange-soft);
    color: var(--rf-orange);
}

html body #chat-window .chat-input #send-button {
    flex: none;
    height: 40px;
    padding: 0 16px;
    border-radius: 99px;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
    box-shadow: 0 4px 12px rgba(234, 80, 28, 0.25);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

html body #chat-window .chat-input #send-button:hover {
    filter: brightness(1.05);
}

/* voice recording bar */
html body #chat-window #recording-bar {
    min-width: 0;
    padding: 6px 10px !important;
    border: 1px solid #ffd9cb !important;
    border-radius: 99px;
    background: var(--rf-orange-soft);
    color: var(--rf-text);
}

html body #chat-window :is(#delete-recording, #pause-recording, #resume-recording) {
    color: var(--rf-orange);
    font-size: 16px;
}

html body #chat-window #delete-recording:hover {
    color: #d7263d;
}

html body #chat-window .progress-time {
    padding: 2px 10px;
    box-shadow: none;
    color: var(--rf-label);
}

html body #chat-window .wave {
    background-color: var(--rf-orange);
}

/* "Request a Video Meeting" panel (built by setupMeetingPopup() in chat.js, replaces the conversation) */
/* flatpicks.css centres it in a dark 620px box; here it starts at the top of the conversation area */
html body #chat-window .chat-preview-meeting {
    flex: 1 1 auto;
    align-items: flex-start;
    justify-content: flex-start;
    height: auto;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 16px;
    background: #f6f7f9;
}

/* the panel's text is written in English by chat.js: left to right even on the Arabic site */
html body #chat-window .chat-preview-meeting .popup-content {
    display: grid;
    gap: 14px;
    margin: 0;
    direction: ltr;
    text-align: left;
    padding: 20px;
    border: 1px solid var(--rf-line);
    border-radius: 16px;
    background: var(--rf-surface);
    box-shadow: var(--rf-shadow);
    color: var(--rf-text);
}

html body #chat-window .chat-preview-meeting h2 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 !important;
    color: var(--rf-text) !important;
    font-size: 19px !important;
    font-weight: 800 !important;
}

html body #chat-window .chat-preview-meeting h2::before {
    content: '\f03d';
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
    box-shadow: 0 6px 14px rgba(234, 80, 28, 0.25);
    color: #fff;
    font-family: 'Font Awesome 6 Free';
    font-size: 16px;
    font-weight: 900;
}

/* "Meeting with: X - Project: Y" (inline margin / opacity in the markup) */
html body #chat-window .chat-preview-meeting .popup-content > p {
    margin: 0 !important;
    padding: 12px 14px;
    border: 1px solid #ffd9cb;
    border-radius: 12px;
    background: var(--rf-orange-soft);
    color: var(--rf-label);
    font-size: 13.5px;
    line-height: 1.7;
    opacity: 1 !important;
}

html body #chat-window .chat-preview-meeting .popup-content > p strong {
    color: var(--rf-text);
    font-weight: 800;
}

html body #chat-window .chat-preview-meeting .popup-label {
    display: block;
    margin: 2px 0 -6px;
    color: var(--rf-label);
    font-size: 13px;
    font-weight: 700;
}

/* date and time side by side, the help line under both */
html body #chat-window .chat-preview-meeting #picker-section {
    grid-template-columns: 1fr 1fr;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
}

html body #chat-window .chat-preview-meeting #picker-section :is(input[type="hidden"], small) {
    grid-column: 1 / -1;
}

html body #chat-window .chat-preview-meeting .x-input {
    width: 100%;
    height: var(--rf-control-h);
    padding: 0 12px;
    padding-inline-start: 40px;
    border: 1px solid var(--rf-control-border);
    border-radius: var(--rf-control-radius);
    background: var(--rf-surface) no-repeat 14px center / 16px;
    box-shadow: 0 1px 2px rgba(17, 24, 39, 0.04);
    color: var(--rf-text);
    font-size: 14.5px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--rf-ease), box-shadow var(--rf-ease);
}

html body #chat-window .chat-preview-meeting .x-input::placeholder {
    color: #9aa0ad;
    font-weight: 500;
}

html body #chat-window .chat-preview-meeting .x-input:hover {
    border-color: var(--rf-control-hover);
}

html body #chat-window .chat-preview-meeting .x-input:focus {
    border-color: var(--rf-orange);
    outline: 0;
    box-shadow: 0 0 0 3px var(--rf-orange-ring);
}

html body #chat-window .chat-preview-meeting #meeting-date-ui {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea501c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}

html body #chat-window .chat-preview-meeting #meeting-time-ui {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea501c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

html body #chat-window .chat-preview-meeting #meeting-help {
    display: block;
    color: var(--rf-muted);
    font-size: 12.5px;
    line-height: 1.5;
    opacity: 1 !important;
}

html body #chat-window .chat-preview-meeting :is(#send-meeting-request, #close-popup-meeting) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: var(--rf-control-h);
    margin: 0;
    padding: 0 16px;
    border-radius: var(--rf-control-radius);
    font-size: 14.5px;
    font-weight: 700;
    cursor: pointer;
    transition: filter var(--rf-ease), background var(--rf-ease), color var(--rf-ease), border-color var(--rf-ease);
}

html body #chat-window .chat-preview-meeting #send-meeting-request {
    margin-top: 4px;
    border: 0;
    background: linear-gradient(135deg, #f26a35 0%, var(--rf-orange) 55%, var(--rf-orange-dark) 100%);
    box-shadow: 0 6px 16px rgba(234, 80, 28, 0.26);
    color: #fff;
}

html body #chat-window .chat-preview-meeting #send-meeting-request::before {
    content: '\f1d8';
    font-family: 'Font Awesome 6 Free';
    font-size: 13px;
    font-weight: 900;
}

html body #chat-window .chat-preview-meeting #send-meeting-request:hover {
    filter: brightness(1.05);
}

html body #chat-window .chat-preview-meeting #send-meeting-request:disabled {
    filter: grayscale(0.4);
    opacity: 0.7;
}

html body #chat-window .chat-preview-meeting #close-popup-meeting {
    margin-top: -6px;
    border: 1px solid var(--rf-control-border);
    background: var(--rf-surface);
    color: var(--rf-label);
}

html body #chat-window .chat-preview-meeting #close-popup-meeting:hover {
    border-color: #f8cdd3;
    background: #fdecee;
    color: #d7263d;
}

/* the calendars open above the chat window */
html body .flatpickr-calendar.x-meeting-picker.open {
    z-index: 2100;
}

/* phones and small tablets: full screen */
@media (max-width: 767.98px) {
    html body #chat-window.chat-window {
        inset: 0 !important;
        width: 100% !important;
        height: auto !important;
        border: 0;
        border-radius: 0;
    }

    html body #chat-window .meeting-button {
        padding: 0 12px;
        font-size: 12.5px;
    }

    html body #chat-window .chat-input input {
        font-size: 16px; /* stops iOS zooming into the field */
    }
}

@media (prefers-reduced-motion: reduce) {
    html body #chat-window .wave {
        animation: none;
    }
}
