/* ==========================================================================
   Prime Suite — surcouche du thème Renstate
   Parti pris : design à plat (aucune ombre), bordures fines, icônes partout.
   ========================================================================== */

/* Charte noir et blanc : on remplace l'orange du thème partout où il passe par ses variables */
:root {
    --main-color: #111111;
    --second-color: #f2f2f2;

    --ps-ink: #111111;
    --ps-muted: #6b6b6b;
    --ps-line: #e6e6e6;
    --ps-soft: #f5f5f5;
    --ps-accent: #111111;
    --ps-accent-soft: #f0f0f0;
    --ps-success: #1f7a4f;
    --ps-danger: #c43c3c;
    --ps-radius: 14px;
}

/* Les quelques dégradés orange codés en dur dans le thème */
.main-register_bg:after, .gradient-bg, .agent-preofile-header-bg, .api-wrap-bg:before {
    background: linear-gradient(180deg, #3a3a3a 0%, #111 60%, #3a3a3a 100%) !important;
}
::selection { background: #111; color: #fff; }

/* --- À plat : on neutralise les ombres du thème --------------------------- */
.main-header, .header-btn, .show-reg-form, .geodir-category-listing, .listing-item, .boxed-content,
.list-searh-input-wrap, .box_list-searh-input-wrap, .commentssubmit, .gallery-filters, .breadcrumbs-list,
.ps-facts-item, .testi-item, .city-carousel-item, .api-container, .main-register-wrap, .wish-list-wrap,
.hero_home_search, .cs-intputwrap, .nice-select, .pagination a, .sb-container, .fixed-form,
.geodir_save-btn, .like-btn, .hero-opt-btnns a, .property-contacts-item, .list-main-wrap-header {
    box-shadow: none !important;
}
.geodir-category-listing, .boxed-content, .list-main-wrap-header, .breadcrumbs-list { border: 1px solid var(--ps-line); }

/* --- Logo ----------------------------------------------------------------- */
.ps-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.ps-logo_mark {
    width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;
    background: var(--ps-accent); color: #fff; font-size: 16px; transform: rotate(-8deg);
}
.ps-logo_text { font-size: 19px; color: var(--ps-ink); letter-spacing: -.3px; }
.ps-logo_text strong { color: var(--ps-accent); font-weight: 700; }

.ps-account-link {
    float: right; display: flex; align-items: center; gap: 8px; height: 42px; margin: 24px 14px 0 0;
    padding: 0 16px; border: 1px solid var(--ps-line); border-radius: 30px; color: var(--ps-ink); font-weight: 500; font-size: 13px;
}
.ps-account-link i { color: var(--ps-accent); }

/* --- Avatars typographiques (remplacent les photos de démo) --------------- */
.ps-avatar {
    width: 36px; height: 36px; border-radius: 50%; display: inline-grid; place-items: center; flex: none;
    background: var(--ps-accent-soft); color: var(--ps-accent); font-weight: 700; font-size: 13px; text-transform: uppercase;
}
.ps-avatar_lg { width: 56px; height: 56px; font-size: 20px; }
.gcf-company { display: flex; align-items: center; gap: 10px; }

/* --- Cartes de biens ------------------------------------------------------ */
.geodir-category-content_price small { font-size: 13px; color: var(--ps-muted); font-weight: 400; }
.ps-unit-chip span { text-transform: capitalize; }
.geodir_save-btn.ps-saved span, .like-btn.ps-saved { background: var(--ps-accent) !important; color: #fff !important; }
.geodir_save-btn.ps-saved i, .like-btn.ps-saved i { color: #fff !important; font-weight: 900; }
.cat-opt { cursor: default; }

/* --- Champs : le thème ne stylise que text / email / password ------------- */
.custom-form input[type="date"], .custom-form input[type="number"], .custom-form input[type="tel"] {
    border: 1px solid #eee; background: #f9f9f9; height: 56px; width: 100%;
    padding: 17px 14px 17px 50px; border-radius: 4px; color: #222; font-size: 12px;
    outline: none; font-family: var(--main-font); font-weight: 500;
}
.custom-form input[type="date"]:focus, .custom-form input[type="number"]:focus, .custom-form input[type="tel"]:focus { background: #fff; }
.custom-form input[type="date"]::-webkit-calendar-picker-indicator { opacity: .5; cursor: pointer; }
.custom-form textarea { height: auto; min-height: 110px; resize: vertical; }

/* --- Recherche ------------------------------------------------------------ */
.ps-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ps-active-filters a {
    display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 20px;
    background: var(--ps-accent-soft); color: var(--ps-accent); font-size: 12px; font-weight: 500;
}
.ps-sort { display: flex; flex-wrap: wrap; gap: 6px; }
.ps-sort a { padding: 8px 14px; border: 1px solid var(--ps-line); border-radius: 30px; font-size: 12px; color: var(--ps-ink); }
.ps-sort a.active { background: var(--ps-ink); border-color: var(--ps-ink); color: #fff; }

.ps-empty-state { text-align: center; padding: 70px 20px; border: 1px dashed var(--ps-line); border-radius: var(--ps-radius); }
.ps-empty-state i { font-size: 46px; color: var(--ps-accent); margin-bottom: 18px; display: block; }
.ps-empty-state h3 { font-size: 20px; margin-bottom: 8px; }
.ps-empty-state p { color: var(--ps-muted); margin-bottom: 20px; }
.ps-empty { padding: 30px 20px; color: var(--ps-muted); text-align: center; }

/* --- Fiche du bien -------------------------------------------------------- */
.ps-facts-wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 20px; }
.ps-facts-wrapper .ps-facts-item { width: auto; float: none; margin: 0; border: 1px solid var(--ps-line); }
.ps-richtext p { margin-bottom: 14px; line-height: 1.8; color: #4b5563; text-align: left; }
.ps-richtext ul { padding-left: 0; list-style: none; text-align: left; }
.ps-richtext li { padding: 6px 0 6px 26px; position: relative; color: #4b5563; }
.ps-richtext li::before { content: ''; position: absolute; left: 4px; top: 15px; width: 8px; height: 8px; border-radius: 2px; background: var(--ps-accent); transform: rotate(45deg); }

.ps-rates { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.ps-rate { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 18px; text-align: left; }
.ps-rate i { font-size: 22px; color: var(--ps-accent); display: block; margin-bottom: 10px; }
.ps-rate_unit { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--ps-muted); }
.ps-rate strong { display: block; font-size: 19px; color: var(--ps-ink); margin: 4px 0; }
.ps-rate small { color: var(--ps-muted); font-size: 12px; }
.ps-rate-notes { list-style: none; padding: 0; margin: 18px 0 0; text-align: left; }
.ps-rate-notes li { padding: 6px 0; color: #4b5563; font-size: 13px; }
.ps-rate-notes i { color: var(--ps-accent); width: 22px; }

.ps-map { border-radius: var(--ps-radius); overflow: hidden; border: 1px solid var(--ps-line); height: 340px; }
.ps-map iframe { width: 100%; height: 100%; border: 0; }
.ps-map-note { margin-top: 12px; font-size: 13px; color: var(--ps-muted); text-align: left; }

/* --- Module de réservation ------------------------------------------------ */
.ps-booking .boxed-content-item { text-align: left; }
.ps-calendar { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 14px; margin-bottom: 18px; }
.ps-calendar_head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ps-calendar_head strong { text-transform: capitalize; font-size: 14px; }
.ps-calendar_head button { width: 32px; height: 32px; border: 1px solid var(--ps-line); border-radius: 50%; background: #fff; cursor: pointer; color: var(--ps-ink); }
.ps-calendar_grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ps-cal-wd { font-size: 11px; text-align: center; color: var(--ps-muted); padding: 4px 0; }
.ps-cal-day {
    aspect-ratio: 1; border: 0; border-radius: 8px; background: var(--ps-soft); color: var(--ps-ink);
    font-size: 12px; cursor: pointer; font-family: inherit; transition: background .15s;
}
.ps-cal-day:hover:not(:disabled) { background: var(--ps-accent-soft); }
.ps-cal-day.is-past { background: transparent; color: #c9c9c9; cursor: default; }
.ps-cal-day.is-busy { background: repeating-linear-gradient(45deg, #f1f1f1, #f1f1f1 4px, #e4e4e4 4px, #e4e4e4 8px); color: #aaa; text-decoration: line-through; cursor: not-allowed; }
.ps-cal-day.is-selected { background: var(--ps-accent-soft); color: var(--ps-accent); font-weight: 600; }
.ps-cal-day.is-start, .ps-cal-day.is-end { background: var(--ps-accent); color: #fff; font-weight: 700; }
.ps-calendar_legend { display: flex; gap: 14px; margin-top: 12px; font-size: 11px; color: var(--ps-muted); }
.ps-dot { display: inline-block; width: 10px; height: 10px; border-radius: 3px; vertical-align: -1px; margin-right: 4px; }
.ps-dot_free { background: var(--ps-soft); border: 1px solid var(--ps-line); }
.ps-dot_busy { background: #e4e4e4; }
.ps-dot_sel { background: var(--ps-accent); }
.ps-calendar_hint { font-size: 12px; color: var(--ps-muted); margin: 10px 0 0; }

.ps-quote { border: 1px dashed var(--ps-accent); border-radius: var(--ps-radius); padding: 14px 16px; margin-bottom: 16px; background: #fafafa; }
.ps-quote ul { list-style: none; margin: 0; padding: 0; }
.ps-quote li { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 13px; color: #4b5563; }
.ps-quote li strong { color: var(--ps-ink); white-space: nowrap; }
.ps-quote_total { border-top: 1px solid var(--ps-line); margin-top: 6px; padding-top: 10px !important; font-size: 15px !important; color: var(--ps-ink) !important; font-weight: 600; }
.ps-quote_total strong { color: var(--ps-accent) !important; }
.ps-quote_muted { opacity: .75; }
.ps-quote_note { font-size: 12px; color: var(--ps-muted); margin: 10px 0 0; }
.ps-booking_error { background: #f7eaea; color: var(--ps-danger); border-radius: 10px; padding: 10px 14px; font-size: 13px; margin-bottom: 14px; text-align: left; }
.ps-booking_secure { font-size: 12px; color: var(--ps-muted); margin-top: 12px; text-align: center; }
.commentssubmit:disabled { opacity: .5; cursor: not-allowed; }

/* --- Modale : choix du type de compte ------------------------------------ */
.ps-account-type { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.ps-account-type input { display: none; }
.ps-account-type label {
    border: 1px solid var(--ps-line); border-radius: 12px; padding: 12px; font-size: 12px; cursor: pointer;
    display: flex; flex-direction: column; gap: 6px; align-items: center; text-align: center; color: var(--ps-ink);
}
.ps-account-type label i { font-size: 20px; color: var(--ps-muted); }
.ps-account-type input:checked + label { border-color: var(--ps-accent); background: var(--ps-accent-soft); }
.ps-account-type input:checked + label i { color: var(--ps-accent); }

/* --- Pages éditoriales ---------------------------------------------------- */
.ps-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 30px; }
.ps-stats > div { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 24px; text-align: left; }
.ps-stats i { font-size: 26px; color: var(--ps-accent); }
.ps-stats strong { display: block; font-size: 30px; margin: 12px 0 2px; color: var(--ps-ink); }
.ps-stats span { color: var(--ps-muted); font-size: 13px; }

.ps-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
    background: var(--ps-ink); color: #fff; border-radius: var(--ps-radius); padding: 30px 36px; margin-top: 30px; text-align: left; }
.ps-cta-band h3 { color: #fff; font-size: 22px; margin-bottom: 6px; }
.ps-cta-band p { color: rgba(255, 255, 255, .7); margin: 0; }

.ps-contact-cards { display: grid; gap: 10px; }
.ps-contact-cards > * { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 12px;
    border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 16px; text-align: left; color: var(--ps-ink); background: #fff; }
.ps-contact-cards i { grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--ps-accent-soft); color: var(--ps-accent); font-size: 18px; }
.ps-contact-cards span { font-size: 12px; color: var(--ps-muted); }
.ps-contact-cards strong { font-size: 14px; }
.ps-contact-cards a:hover { border-color: var(--ps-accent); }

.ps-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 30px; }
.ps-step { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 24px; text-align: left; position: relative; }
.ps-step_num { position: absolute; top: 18px; right: 20px; font-size: 32px; font-weight: 700; color: var(--ps-soft); }
.ps-step i { font-size: 28px; color: var(--ps-accent); margin-bottom: 14px; display: block; }
.ps-step h4 { font-size: 16px; margin-bottom: 8px; }
.ps-step p { color: var(--ps-muted); font-size: 13px; margin: 0; }
.ps-feature-list ul li { cursor: default; }
.ps-owner-box .boxed-content-item { text-align: left; }
.ps-small { font-size: 13px; color: var(--ps-muted); margin: 6px 0 12px; }
.ps-btn-outline { background: #fff !important; color: var(--ps-ink) !important; border: 1px solid var(--ps-ink) !important; }

.ps-owner-cta { display: flex; align-items: center; gap: 40px; padding: 50px; }
.ps-owner-cta_icons { display: grid; grid-template-columns: repeat(3, 70px); gap: 10px; flex: none; }
.ps-owner-cta_icons span { width: 70px; height: 70px; border-radius: 18px; display: grid; place-items: center; background: var(--ps-accent-soft); color: var(--ps-accent); font-size: 26px; }
.ps-owner-cta_icons span:nth-child(2) { transform: translateY(16px); background: #111; color: #fff; }

.ps-footer-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.ps-footer-badges span { font-size: 12px; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, .15); border-radius: 20px; color: rgba(255, 255, 255, .75); }
.ps-footer-badges i { color: var(--ps-accent); margin-right: 4px; }

.ps-articles { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.ps-article { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); overflow: hidden; color: var(--ps-ink); text-align: left; padding-bottom: 18px; }
.ps-article img { width: 100%; height: 180px; object-fit: cover; }
.ps-article_date, .ps-article h3, .ps-article p { padding: 0 18px; display: block; }
.ps-article_date { font-size: 12px; color: var(--ps-accent); margin-top: 16px; }
.ps-article h3 { font-size: 17px; margin: 6px 0; }
.ps-article p { color: var(--ps-muted); font-size: 13px; }

@media (max-width: 991px) {
    .ps-owner-cta { flex-direction: column; padding: 30px 20px; }
    .ps-account-link span { display: none; }
}

/* --- Barre de réservation mobile (fiche d'un bien) ------------------------ */
.ps-mobile-cta { display: none; }
@media (max-width: 991px) {
    .ps-mobile-cta {
        display: flex; align-items: center; justify-content: space-between; gap: 12px;
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
        padding: 12px 16px; background: #fff; border-top: 1px solid var(--ps-line); text-align: left;
    }
    .ps-mobile-cta strong { font-size: 16px; color: var(--ps-ink); }
    .ps-mobile-cta span { font-size: 12px; color: var(--ps-muted); }
    .ps-mobile-cta .commentssubmit { margin: 0; padding: 0 22px; height: 46px; line-height: 46px; }
    body { padding-bottom: 70px; }
}

/* --- En-tête de la fiche d'un bien ---------------------------------------- */
.ps-head { display: flex; align-items: stretch; gap: 24px; padding: 30px; text-align: left; margin-bottom: 20px; }
.ps-head_main { flex: 1; min-width: 0; }
.ps-head h1 { font-size: 30px; line-height: 1.2; font-weight: 600; color: var(--ps-ink); margin: 0 0 10px; }
.ps-head_address { font-size: 14px; color: var(--ps-muted); margin: 0 0 16px; }
.ps-head_address i { margin-right: 6px; }
.ps-head_meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ps-head_meta li { font-size: 12px; padding: 6px 12px; border: 1px solid var(--ps-line); border-radius: 30px; color: var(--ps-ink); }
.ps-head_meta i { margin-right: 4px; }
.ps-head_price {
    flex: none; min-width: 210px; display: flex; flex-direction: column; justify-content: center;
    background: var(--ps-ink); color: #fff; border-radius: var(--ps-radius); padding: 20px 24px;
}
.ps-head_price span { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; opacity: .7; }
.ps-head_price strong { font-size: 24px; font-weight: 700; margin: 6px 0 2px; white-space: nowrap; }
.ps-head_price small { font-size: 13px; opacity: .7; }
@media (max-width: 767px) {
    .ps-head { flex-direction: column; padding: 22px; }
    .ps-head h1 { font-size: 22px; }
    .ps-head_price { min-width: 0; }
}

/* --- Page connexion / inscription ----------------------------------------- */
.ps-access { display: grid; grid-template-columns: 5fr 7fr; border: 1px solid var(--ps-line); border-radius: 20px; overflow: hidden; background: #fff; text-align: left; margin: 10px 0 40px; }
.ps-access_aside { background: var(--ps-ink); color: #fff; padding: 48px 40px; }
.ps-access_aside .ps-logo_mark { background: #fff; color: var(--ps-ink); width: 46px; height: 46px; font-size: 18px; margin-bottom: 28px; }
.ps-access_aside h2 { color: #fff; font-size: 26px; line-height: 1.25; margin-bottom: 14px; }
.ps-access_aside p { color: rgba(255, 255, 255, .7); line-height: 1.8; margin-bottom: 26px; }
.ps-access_aside ul { list-style: none; padding: 0; margin: 0; }
.ps-access_aside li { padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .9); font-size: 14px; }
.ps-access_aside li i { width: 26px; }
.ps-access_form { padding: 40px; }
.ps-access_tabs { display: flex; gap: 6px; margin-bottom: 24px; }
.ps-access_tabs a { flex: 1; text-align: center; padding: 12px; border: 1px solid var(--ps-line); border-radius: 12px; color: var(--ps-ink); font-weight: 500; font-size: 13px; }
.ps-access_tabs a.active { background: var(--ps-ink); border-color: var(--ps-ink); color: #fff; }
.ps-access_tabs i { margin-right: 6px; }
.ps-access_row { display: flex; justify-content: space-between; align-items: center; margin: 4px 0 18px; font-size: 13px; }
.ps-access_row a, .ps-access_switch a { color: var(--ps-ink); text-decoration: underline; }
.ps-access_switch { margin-top: 18px; font-size: 13px; color: var(--ps-muted); }
@media (max-width: 991px) { .ps-access { grid-template-columns: 1fr; } .ps-access_aside, .ps-access_form { padding: 28px 22px; } }

/* --- Espace client --------------------------------------------------------- */
.ps-account-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; text-align: left; }
.ps-account-head h1 { font-size: 28px; font-weight: 600; margin: 8px 0 6px; color: var(--ps-ink); }
.ps-account-head p { color: var(--ps-muted); margin: 0; }
.ps-account-head_actions { display: flex; gap: 8px; flex-wrap: wrap; }
.ps-account-head_actions form { margin: 0; }
.ps-account-head_actions .commentssubmit { margin: 0; }
.ps-account-head_actions i, .ps-panel .commentssubmit i { margin-right: 6px; }

.ps-panel { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); background: #fff; padding: 22px 24px; margin-bottom: 20px; text-align: left; }
.ps-panel_title { font-weight: 600; font-size: 15px; color: var(--ps-ink); margin-bottom: 14px; }
.ps-panel_title i { width: 22px; }
.ps-panel_alert { border-color: var(--ps-ink); background: #fafafa; }

.ps-pay-row { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px dashed var(--ps-line); }
.ps-panel_title + .ps-pay-row { border-top: 0; }
.ps-pay-row > div { flex: 1; min-width: 0; }
.ps-pay-row > div strong { display: block; font-size: 14px; color: var(--ps-ink); }
.ps-pay-row > div span { font-size: 12px; color: var(--ps-muted); }
.ps-pay-row_amount { white-space: nowrap; color: var(--ps-ink); }
.ps-pay-row .commentssubmit { margin: 0; height: 40px; line-height: 40px; padding: 0 20px; }

.ps-order-row { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px dashed var(--ps-line); color: var(--ps-ink); }
.ps-panel_title + .ps-order-row { border-top: 0; }
.ps-order-row img { width: 72px; height: 56px; border-radius: 10px; object-fit: cover; flex: none; }
.ps-order-row_main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ps-order-row_main strong { font-size: 14px; }
.ps-order-row_main span { font-size: 12px; color: var(--ps-muted); }
.ps-order-row_ref { font-family: ui-monospace, monospace; }
.ps-order-row_side { text-align: right; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.ps-order-row:hover strong { text-decoration: underline; }

.ps-status { display: inline-block; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; border: 1px solid var(--ps-ink); color: var(--ps-ink); }
.ps-status_confirmed, .ps-status_paid { background: #111; color: #fff; }
.ps-status_cancelled, .ps-status_expired { border-color: #bbb; color: #888; }

.ps-next-stay { display: grid; grid-template-columns: 240px 1fr; border: 1px solid var(--ps-line); border-radius: var(--ps-radius); overflow: hidden; margin-bottom: 20px; color: var(--ps-ink); text-align: left; background: #fff; }
.ps-next-stay_img { background-size: cover; background-position: center; min-height: 180px; }
.ps-next-stay_body { padding: 22px 24px; }
.ps-next-stay_label { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--ps-muted); }
.ps-next-stay h3 { font-size: 19px; margin: 6px 0; }
.ps-next-stay p { color: var(--ps-muted); font-size: 13px; margin: 0 0 14px; }
.ps-next-stay_dates { display: flex; align-items: center; gap: 18px; }
.ps-next-stay_dates span { display: block; font-size: 11px; color: var(--ps-muted); }
.ps-next-stay_dates strong { text-transform: capitalize; }
.ps-next-stay_compact { grid-template-columns: 1fr; }
.ps-next-stay_compact .ps-next-stay_img { min-height: 160px; }

.ps-lines { list-style: none; margin: 0; padding: 0; }
.ps-lines li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 14px; color: #444; }
.ps-lines li strong { color: var(--ps-ink); white-space: nowrap; }
.ps-lines li.is-total { border-top: 1px solid var(--ps-ink); margin-top: 6px; padding-top: 12px; font-weight: 600; color: var(--ps-ink); }
.ps-lines li.is-muted { opacity: .65; }
.ps-empty-state_sm { padding: 30px 16px; border: 0; }
.ps-empty-state_sm i { font-size: 32px; }
@media (max-width: 767px) { .ps-next-stay { grid-template-columns: 1fr; } .ps-pay-row { flex-wrap: wrap; } }

/* ==========================================================================
   STANDING — Direction « grand luxe » en noir et blanc
   Titres à empattements, gras et grands ; petites capitales espacées ;
   angles nets, filets fins, beaucoup d'air.
   ========================================================================== */
:root {
    --ps-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --ps-radius: 4px;
    --ps-tracking: .22em;
}

/* --- Titres ----------------------------------------------------------------- */
.hero-section-title h2, .section-title h2, .listing-grid_heroheader h3, .half-carousel-title h2,
.about-title h2, .parallax-section-content h3, .api-text h3, .ps-head h1, .ps-account-head h1,
.ps-access_aside h2, .ps-cta-band h3, .list-main-wrap-title h2, .city-carousel-content h3,
.ps-next-stay h3, .boxed-content-title h3, .geodir-category-content h3, .geodir-category-content h3 a,
.testi-header h3, .ps-step h4, .services-opions li h4, .process-item h4, .ps-empty-state h3,
.footer-widget-title, .wish-list-title, .mr_title h4, .ps-panel_title, .about-img-hotifer h4 {
    font-family: var(--ps-display) !important;
    letter-spacing: -.01em;
    color: var(--ps-ink);
}

/* Hero : très grand, très gras */
.hero-section-title h2 { font-size: 64px !important; line-height: 1.05 !important; font-weight: 800 !important; color: #fff; }
.home-hero-section .hero-section-title h2 { font-size: 72px !important; }
.hero-section_sin .hero-section-title h2 { font-size: 68px !important; }
.hero-section-title h5 { font-size: 16px !important; font-weight: 300 !important; letter-spacing: .02em; opacity: .9; }
.hero-section-title h2 a { color: #fff; }

/* Titres de sections */
.section-title h2, .half-carousel-title h2, .about-title h2 { font-size: 46px !important; font-weight: 700 !important; line-height: 1.1 !important; }
.listing-grid_heroheader h3 { font-size: 38px !important; font-weight: 700 !important; }
.parallax-section-content h3, .api-text h3, .ps-cta-band h3 { font-size: 38px !important; font-weight: 700 !important; line-height: 1.15 !important; }
.list-main-wrap-title h2 { font-size: 32px !important; font-weight: 700 !important; }
.boxed-content-title h3, .ps-panel_title { font-size: 24px !important; font-weight: 700 !important; }
.ps-head h1, .ps-account-head h1 { font-size: 44px !important; font-weight: 800 !important; line-height: 1.08 !important; }
.ps-access_aside h2 { font-size: 36px !important; font-weight: 700 !important; color: #fff !important; }
.city-carousel-content h3 { font-size: 30px !important; font-weight: 700 !important; }
.city-carousel-content h3 a, .ps-cta-band h3, .parallax-section-content h3 { color: #fff !important; }
.footer-widget-title { font-size: 20px !important; font-weight: 600 !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important; }
.ps-panel_title i { display: none; }

/* Cartes de biens */
.geodir-category-content h3, .geodir-category-content h3 a { font-size: 22px !important; font-weight: 700 !important; line-height: 1.25 !important; }
.geodir-category-content_price { font-family: var(--ps-display); font-size: 20px !important; font-weight: 600 !important; color: var(--ps-ink) !important; }
.geodir-category-content_price small { font-family: var(--main-font); }

/* Prix de la fiche */
.ps-head_price strong { font-family: var(--ps-display); font-size: 32px !important; font-weight: 700; }
.ps-rate strong { font-family: var(--ps-display); font-size: 24px !important; }
.ps-kpi_value, .ps-stats strong { font-family: var(--ps-display); }

/* --- Petites capitales espacées ------------------------------------------- */
.hero-section-title_sub, .ps-head_price span, .ps-rate_unit, .ps-next-stay_label, .hc-counter,
.section-title h4, .ps-step_num, .cat-opt, .hero-section_categories a, .ps-access_tabs a,
.breadcrumbs-list a, .breadcrumbs-list span, .main-menu nav ul li a, .header-btn span,
.gallery-filter, .gid_link span, .ps-sort a, .ps-status {
    letter-spacing: var(--ps-tracking) !important;
    text-transform: uppercase;
}
.hero-section-title_sub { font-size: 12px !important; font-weight: 500 !important; }
.section-title h4 { font-size: 12px !important; font-weight: 500 !important; color: var(--ps-muted) !important; }
.main-menu nav ul li a { font-size: 11px !important; font-weight: 500 !important; }

/* --- Angles nets, filets fins -------------------------------------------- */
.geodir-category-listing, .geodir-category-img, .geodir-category-img_item, .geodir-category-img .bg,
.boxed-content, .list-searh-input-wrap, .box_list-searh-input-wrap, .breadcrumbs-list, .list-main-wrap-header,
.ps-panel, .ps-next-stay, .ps-rate, .ps-step, .ps-stats > div, .ps-contact-cards > *, .ps-access,
.ps-calendar, .ps-quote, .ps-head_price, .ps-map, .fw-carousel .swiper-slide img, .testi-item, .city-carousel-item,
.about-img img, .api-container, .ps-empty-state, .ps-article, .ps-order-row img, .ps-cta-band,
.cs-intputwrap input, .cs-intputwrap textarea, .nice-select, .custom-form input, .custom-form textarea,
.header-search-radio, .header-search-radio label, .ps-account-type label, .ps-access_tabs a, .ps-sort a,
.hero-carousel_item, .gallery-filters, .ps-head_meta li, .pp-single-features ul li a {
    border-radius: var(--ps-radius) !important;
}
.ps-cal-day { border-radius: 2px !important; }

/* Boutons : noirs, angles vifs, capitales espacées */
.commentssubmit, .header-btn, .gid_link, .ps-mobile-cta .commentssubmit, .api-text-links a {
    border-radius: 0 !important;
    letter-spacing: var(--ps-tracking) !important;
    text-transform: uppercase;
    font-weight: 500 !important;
}
.commentssubmit:not(.ps-btn-outline) { background: #111 !important; color: #fff !important; }
.commentssubmit:not(.ps-btn-outline):hover { background: #333 !important; }
.ps-btn-outline:hover { background: #111 !important; color: #fff !important; }

/* Logo : monogramme sobre */
.ps-logo_mark { border-radius: 0; transform: none; width: 34px; height: 34px; font-size: 14px; }
.ps-logo_text { font-family: var(--ps-display); font-size: 22px; letter-spacing: .02em; }
.ps-logo_text strong { color: var(--ps-ink); font-weight: 800; }

/* Respiration */
.listing-grid_heroheader { padding-bottom: 30px !important; margin-bottom: 30px !important; }
.section-title { margin-bottom: 50px !important; }
.geodir-category-content { padding-top: 26px !important; }
.ps-head { padding: 40px !important; }

@media (max-width: 991px) {
    .hero-section-title h2, .home-hero-section .hero-section-title h2, .hero-section_sin .hero-section-title h2 { font-size: 40px !important; }
    .section-title h2, .half-carousel-title h2, .about-title h2, .listing-grid_heroheader h3 { font-size: 32px !important; }
    .ps-head h1, .ps-account-head h1 { font-size: 30px !important; }
    .parallax-section-content h3, .api-text h3, .ps-cta-band h3 { font-size: 28px !important; }
}

/* Titres posés sur fond sombre */
.half-carousel-title h2, .dark-bg .section-title h2, .hero-section-title h2 { color: #fff !important; }

/* Champs de date dans les colonnes étroites (réservation, recherche rapide) */
.ps-booking .custom-form input[type="date"], .hero_home_search .custom-form input[type="date"] { padding-left: 40px; padding-right: 6px; font-size: 11px; }
.ps-booking .cs-intputwrap i, .hero_home_search .cs-intputwrap i { left: 16px; }

/* ==========================================================================
   LISIBILITÉ — contrastes garantis
   ========================================================================== */

/* --- Slider d'accueil ------------------------------------------------------ */
/* Photo toujours peinte (le réglage du thème la laissait parfois noire) */
.hero-blur-container .bg { background-origin: border-box !important; background-repeat: no-repeat !important; background-size: cover !important; }
/* Voile : texte blanc lisible même sur une façade blanche */
.hero-blur-container_item::after {
    content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.62) 45%, rgba(0,0,0,.30) 100%);
}
.hero-section_sin .bg-wrap::after {
    content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: rgba(0,0,0,.55);
}
/* Changement de diapositive : léger fondu au lieu d'un écran noir */
.hero-blur-container.hideblur:before { background: rgba(0,0,0,.35) !important; }
/* La diapositive précédente ne déborde plus sur le titre */
.hero-slider, .hero-slider .swiper-container { overflow: hidden !important; }
.hero-section-title .geodir-category-location, .hero-section-title .geodir-category-location span,
.hero-section-title .geodir-category-location a, .hero-section-title p, .hero-section-title h5 { color: rgba(255,255,255,.88) !important; }
.hero-section-title_sub { background: rgba(0,0,0,.55) !important; border-color: rgba(255,255,255,.35) !important; color: #fff !important; }
.hero-notifer { color: #fff !important; }
.hero-notifer a { background: #fff !important; color: #111 !important; border-color: #fff !important; }

/* --- Zones sombres : l'accent et le texte passent en blanc ---------------- */
.hero-section, .dark-bg, .half-carousel-container, .parallax-section-wrap, .api-container, .main-footer,
.ps-cta-band, .ps-access_aside, .ps-head_price, .about-img-hotifer, .process-item, .testi-footer, .ps-mobile-cta_dark {
    --main-color: #ffffff;
    --ps-ink: #ffffff;
    --ps-muted: rgba(255,255,255,.72);
    --ps-line: rgba(255,255,255,.18);
}
/* … sauf les îlots clairs posés dessus */
.hero_home_search, .list-searh-input-wrap, .main-register-wrap, .testi-item .testimonilas-text, .ps-panel {
    --main-color: #111111;
    --ps-ink: #111111;
    --ps-muted: #555555;
    --ps-line: #e6e6e6;
}
.api-text h3, .parallax-section-content h3, .half-carousel-title h2, .process-item h4, .about-img-hotifer h4,
.about-img-hotifer h5, .about-img-hotifer p, .api-text p, .parallax-section-content p, .half-carousel-title p,
.process-item p, .process-count, .city-carousel-content p { color: #fff !important; }
.api-text p, .parallax-section-content p, .half-carousel-title p, .process-item p, .about-img-hotifer p { opacity: .85; }

/* Boutons sur fond sombre : blancs, texte noir */
.hero-section .hero-section-title .commentssubmit, .half-carousel-title .commentssubmit, .parallax-section-content .commentssubmit,
.api-text-links a, .ps-cta-band .commentssubmit, .main-footer .footer-widget-content-link {
    background: #fff !important; color: #111 !important; border: 1px solid #fff !important;
}
.hero-section .hero-section-title .commentssubmit:hover, .half-carousel-title .commentssubmit:hover, .parallax-section-content .commentssubmit:hover,
.api-text-links a:hover, .ps-cta-band .commentssubmit:hover { background: transparent !important; color: #fff !important; }
.api-text-links a i, .api-text-links a span { color: inherit !important; }

/* Contrôles ronds (flèches, retour en haut, numéros) : fond noir, icône blanche */
.tc-button, .csc-button, .cc-button, .hs-slider-button, .slider-button, .to-top, .breadcrumbs-list_dec,
.testi-number, .fw-carousel-button-prev, .fw-carousel-button-next {
    background: #111 !important; color: #fff !important; border-color: #111 !important;
}
.tc-button i, .csc-button i, .cc-button i, .hs-slider-button i, .slider-button i, .to-top i, .breadcrumbs-list_dec i { color: #fff !important; }
.hs-slider-button { background: transparent !important; }
.to_top-btn-wrap .to-top span { color: #fff !important; }

/* --- Étiquettes posées sur les photos ------------------------------------- */
.list-single-opt_header_cat .cat-opt, .geodir-category-location a, .geodir-category-listing_media-list span,
.hc-counter {
    background: rgba(0,0,0,.62) !important; color: #fff !important; backdrop-filter: blur(4px);
}
.geodir-category-location a { padding: 4px 10px; border-radius: 2px; }
.geodir-category-location a i, .geodir-category-listing_media-list i { color: #fff !important; }

/* --- Textes secondaires : au-dessus du seuil de lisibilité ---------------- */
:root { --ps-muted: #555555; }
.gcf-company span, .geodir-category-content p, .ps-small, .ps-calendar_hint, .ps-booking_secure, .ps-map-note,
.ps-head_address, .ps-rate small, .ps-order-row_main span { color: #555 !important; }
.ps-avatar { color: #111 !important; background: #ececec !important; }
.footer-widget-content p, .footer-contacts li span, .copyright, .footer-social-title { color: rgba(255,255,255,.75) !important; }
.footer-list li a, .footer-contacts li a { color: #fff !important; }

/* Jours occupés : estompés et barrés, mais la date reste lisible */
.ps-cal-day.is-busy { color: #6f6f6f !important; }
/* Numéros d'étapes : chiffres au trait, décoratifs mais visibles */
.ps-step_num { font-family: var(--ps-display); font-size: 44px !important; font-weight: 700; color: transparent !important; -webkit-text-stroke: 1px #9a9a9a; top: 14px !important; }

/* ==========================================================================
   Slider : la photo d'abord. Voile très léger, lisibilité portée par le texte
   (contour sombre fin + halo), plus marquée pour les petits textes.
   ========================================================================== */
.hero-blur-container_item::after {
    background: linear-gradient(90deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.12) 50%, rgba(0,0,0,0) 100%) !important;
}
.hero-section_sin .bg-wrap::after { background: rgba(0,0,0,.18) !important; }
.bg-parallax-wrap-gradien:before { background: linear-gradient(rgba(0,0,0,0) 55%, rgba(0,0,0,.35) 100%) !important; }

/* Grands titres : contour fin + halo */
.hero-section-title h2, .hero-section-title h2 a {
    text-shadow:
        0 0 1px rgba(0,0,0,.55),
        0 1px 2px rgba(0,0,0,.45),
        0 4px 24px rgba(0,0,0,.45) !important;
}
/* Petits textes : contour plus serré (on lit les lettres même sur une façade blanche) */
.hero-section-title h5, .hero-section-title p, .hero-section-title .geodir-category-location span,
.hero-section-title .geodir-category-location a, .hero-notifer {
    color: #fff !important;
    text-shadow:
        -1px -1px 0 rgba(0,0,0,.55), 1px -1px 0 rgba(0,0,0,.55),
        -1px 1px 0 rgba(0,0,0,.55), 1px 1px 0 rgba(0,0,0,.55),
        0 2px 10px rgba(0,0,0,.6) !important;
    font-weight: 500 !important;
}
.hero-notifer a { text-shadow: none !important; }

/* ==========================================================================
   Palette : noir, blanc et gris. Tout ce qui n'est ni noir ni blanc
   est un dégradé de gris clair.
   ========================================================================== */
:root {
    --ps-gray-50: #f6f6f6;
    --ps-gray-100: #eeeeee;
    --ps-gray-200: #e2e2e2;
    --ps-gray-400: #a3a3a3;
    --ps-gray-600: #6b6b6b;
    --ps-gray-grad: linear-gradient(180deg, #fafafa 0%, #e9e9e9 100%);
    --ps-gray-grad-hover: linear-gradient(180deg, #f1f1f1 0%, #dcdcdc 100%);
}

/* --- Slider : moins d'effets sur le texte, plus de taille ------------------ */
.hero-section-title h5, .hero-section-title p, .hero-section-title .geodir-category-location span,
.hero-section-title .geodir-category-location a, .hero-notifer {
    text-shadow: none !important;
}
.hero-section-title h2, .hero-section-title h2 a {
    text-shadow: 0 2px 18px rgba(0,0,0,.28) !important;
}
.home-hero-section .hero-section-title p,
.home-hero-section .hero-section-title h5 {
    font-size: 19px !important; line-height: 1.6 !important; font-weight: 400 !important;
    max-width: 640px; color: #fff !important; opacity: 1 !important;
}
.home-hero-section .hero-section-title .geodir-category-location,
.home-hero-section .hero-section-title .geodir-category-location span {
    font-size: 16px !important; font-weight: 500 !important; letter-spacing: .02em; color: #fff !important;
}
.home-hero-section .hero-section-title .geodir-category-location i { font-size: 15px; margin-right: 8px; color: #fff !important; }
.hero-section_sin .hero-section-title h5 { font-size: 18px !important; font-weight: 400 !important; color: #fff !important; opacity: 1 !important; }

/* Halo sous le texte : dégradé doux qui s'efface sur les bords, avec un relief de fines rayures */
.home-hero-section .hero-section-title.hs_align-title,
.hero-section_sin .hero-section-title { position: relative; isolation: isolate; }
.home-hero-section .hero-section-title.hs_align-title::before,
.hero-section_sin .hero-section-title::before {
    content: ''; position: absolute; z-index: -1; pointer-events: none;
    inset: -70px -140px -70px -90px;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 1px, rgba(255,255,255,0) 1px 9px),
        radial-gradient(ellipse 60% 62% at 42% 52%, rgba(0,0,0,.52) 0%, rgba(0,0,0,.34) 48%, rgba(0,0,0,0) 100%);
    -webkit-mask-image: radial-gradient(ellipse 62% 64% at 42% 52%, #000 55%, transparent 100%);
            mask-image: radial-gradient(ellipse 62% 64% at 42% 52%, #000 55%, transparent 100%);
}
.hero-section_sin .hero-section-title::before { inset: -50px -120px; }

/* Étiquette du prix au-dessus du titre : gris clair */
.hero-section-title_sub {
    background: var(--ps-gray-grad) !important; color: #111 !important; border: 0 !important;
    padding: 9px 16px !important; border-radius: 2px !important;
}

/* --- Étiquettes posées sur les photos des cartes --------------------------- */
.list-single-opt_header_cat .cat-opt, .geodir-category-location a, .geodir-category-listing_media-list span, .hc-counter {
    background: var(--ps-gray-grad) !important; color: #111 !important; backdrop-filter: none !important;
    border-radius: 2px !important; box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 6px 16px rgba(0,0,0,.14) !important;
}
.geodir-category-location a i, .geodir-category-listing_media-list i, .hc-counter i { color: #111 !important; }
.geodir-category-location a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px !important; font-size: 12px; font-weight: 500; }
.geodir-category-location a i { margin: 0 !important; }
/* Nombre de photos : vraie marge intérieure, icône et chiffre espacés */
.geodir-category-listing_media-list { bottom: 22px !important; right: 22px !important; font-size: 12px !important; }
.geodir-category-listing_media-list span {
    display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; font-weight: 600; line-height: 1;
}
.geodir-category-listing_media-list span i { margin: 0 !important; font-size: 12px; }
.list-single-opt_header_cat .cat-opt { padding: 7px 14px !important; font-size: 10px !important; font-weight: 600 !important; }

/* --- Gris dans l'interface ------------------------------------------------- */
.breadcrumbs-list { background: var(--ps-gray-grad) !important; border-color: var(--ps-gray-200) !important; }
.header-btn { background: var(--ps-gray-grad) !important; color: #111 !important; border: 1px solid var(--ps-gray-200) !important; }
.header-btn:hover { background: var(--ps-gray-grad-hover) !important; }
.geodir-category-footer { background: var(--ps-gray-50) !important; border-top: 1px solid var(--ps-gray-100) !important; }
.gid_link { background: var(--ps-gray-grad) !important; color: #111 !important; border: 1px solid var(--ps-gray-200) !important; }
.geodir-category-content-details li, .ps-head_meta li, .pp-single-features ul li a {
    background: var(--ps-gray-grad) !important; border: 1px solid var(--ps-gray-200) !important; color: #111 !important;
}
.gallery-filters, .ps-sort a, .header-search-radio label { background: var(--ps-gray-grad) !important; }
.gallery-filter.gallery-filter-active, .ps-sort a.active, .header-search-radio input:checked + label {
    background: #111 !important; color: #fff !important;
}
.main-content.ms_vir_height, .content-section { background: var(--ps-gray-50); }
.ps-rate, .ps-step, .ps-stats > div, .ps-contact-cards > * { background: linear-gradient(180deg, #ffffff 0%, var(--ps-gray-50) 100%) !important; }
.ps-cal-day { background: var(--ps-gray-grad) !important; }
.ps-cal-day.is-selected { background: var(--ps-gray-200) !important; color: #111 !important; }
.ps-cal-day.is-start, .ps-cal-day.is-end { background: #111 !important; color: #fff !important; }
.ps-cal-day.is-past { background: transparent !important; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.footer-social-wrap a { background: linear-gradient(180deg, #2a2a2a 0%, #1b1b1b 100%) !important; }

/* Blocs noirs : leur fond ne doit pas dépendre de --ps-ink (redéfinie en blanc dans les zones sombres) */
.ps-head_price, .ps-cta-band, .ps-access_aside { background: linear-gradient(160deg, #1d1d1d 0%, #0d0d0d 100%) !important; color: #fff !important; }
.ps-head_price strong, .ps-head_price span, .ps-head_price small { color: #fff !important; }
.ps-access_aside .ps-logo_mark { background: var(--ps-gray-grad) !important; color: #111 !important; }
.ps-access_aside .ps-logo_mark i { color: #111 !important; }

/* ==========================================================================
   Carte des quartiers
   ========================================================================== */
.ps-areas { display: grid; grid-template-columns: 340px 1fr; gap: 20px; text-align: left; }
.ps-areas_list { border: 1px solid var(--ps-line); border-radius: var(--ps-radius); background: #fff; max-height: 680px; overflow: auto; }
.ps-areas_head { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--ps-line);
    background: var(--ps-gray-grad); position: sticky; top: 0; z-index: 2; }
.ps-areas_head span { font-family: var(--ps-display); font-size: 20px; font-weight: 700; color: #111; }
.ps-areas_head a { font-size: 11px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: #111; }
.ps-area { width: 100%; display: flex; align-items: center; gap: 14px; padding: 14px 20px; border: 0; border-bottom: 1px solid var(--ps-gray-100);
    background: #fff; cursor: pointer; text-align: left; font-family: var(--main-font); transition: background .15s; }
.ps-area:hover, .ps-area.active { background: var(--ps-gray-grad); }
.ps-area.active { box-shadow: inset 3px 0 0 #111; }
.ps-area_img { width: 58px; height: 46px; flex: none; background-size: cover; background-position: center; border-radius: 2px; }
.ps-area_body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ps-area_body strong { font-family: var(--ps-display); font-size: 17px; color: #111; }
.ps-area_body small { font-size: 11px; color: #555; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ps-area_count { width: 30px; height: 30px; flex: none; display: grid; place-items: center; background: #111; color: #fff; font-size: 12px; font-weight: 600; border-radius: 50%; }

.ps-areas_map #ps-map { height: 680px; border-radius: var(--ps-radius); border: 1px solid var(--ps-line); background: var(--ps-gray-100); z-index: 1; }
.ps-areas_map .ps-map-note { margin-top: 12px; }

/* Repères : pastille noire + nom du quartier */
.ps-pin { background: none; border: 0; }
.ps-pin_dot { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #111; color: #fff;
    font-family: var(--ps-display); font-size: 17px; font-weight: 700; border: 3px solid #fff; box-shadow: 0 6px 18px rgba(0,0,0,.28); transition: transform .15s; }
.ps-pin:hover .ps-pin_dot { transform: scale(1.1); }
.ps-pin_label { position: absolute; left: 50%; top: 48px; transform: translateX(-50%); white-space: nowrap; padding: 4px 10px;
    background: var(--ps-gray-grad); color: #111; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
    border: 1px solid var(--ps-gray-200); border-radius: 2px; }

/* Fenêtre d'un quartier */
.leaflet-popup-content-wrapper { border-radius: 4px !important; padding: 0 !important; box-shadow: 0 12px 34px rgba(0,0,0,.18) !important; }
.leaflet-popup-content { margin: 0 !important; }
.ps-pop_head { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 16px; background: #111; color: #fff; }
.ps-pop_head strong { font-family: var(--ps-display); font-size: 18px; }
.ps-pop_head span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.ps-pop_item { display: flex; gap: 12px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--ps-gray-100); color: #111 !important; text-decoration: none; }
.ps-pop_item:hover { background: var(--ps-gray-50); }
.ps-pop_item img { width: 64px; height: 48px; object-fit: cover; border-radius: 2px; flex: none; }
.ps-pop_item span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ps-pop_item strong { font-size: 13px; line-height: 1.3; }
.ps-pop_item small { font-size: 11px; color: #555; }
.ps-pop_all { display: block; padding: 12px 16px; text-align: center; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
    background: var(--ps-gray-grad); color: #111 !important; text-decoration: none; }
.leaflet-popup-close-button { color: #fff !important; top: 8px !important; right: 8px !important; }
.leaflet-control-zoom a { border-radius: 2px !important; color: #111 !important; }
.leaflet-container { font-family: var(--main-font); }

@media (max-width: 991px) {
    .ps-areas { grid-template-columns: 1fr; }
    .ps-areas_list { max-height: none; order: 2; }
    .ps-areas_map #ps-map { height: 460px; }
}

/* Carte : fond OpenStreetMap passé en noir et blanc, légèrement éclairci */
.ps-areas_map .leaflet-tile-pane { filter: grayscale(1) contrast(1.05) brightness(1.04); }
/* Groupes de quartiers : pastille plus grande, gris clair cerclé de noir */
.ps-pin_cluster .ps-pin_dot { width: 54px; height: 54px; font-size: 19px; background: var(--ps-gray-grad); color: #111; border: 3px solid #111; }
/* Noms de quartiers : seulement au zoom suffisant */
.ps-pin_label { display: none; }
.ps-map_labels .ps-pin_label { display: block; }

/* ==========================================================================
   Slider : ombre générale sur TOUTE l'image (plus de halo derrière le texte seul)
   Dégradé léger en haut, plus dense en bas et côté texte, avec un relief de fines rayures.
   ========================================================================== */
.home-hero-section .hero-section-title.hs_align-title::before,
.hero-section_sin .hero-section-title::before { content: none !important; }

.hero-blur-container_item::after {
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, rgba(255,255,255,0) 1px 9px),
        linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.18) 55%, rgba(0,0,0,.10) 100%),
        linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.05) 40%, rgba(0,0,0,.45) 100%) !important;
}
.hero-section_sin .bg-wrap::after {
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, rgba(255,255,255,0) 1px 9px),
        linear-gradient(180deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.32) 55%, rgba(0,0,0,.50) 100%) !important;
}

/* ==========================================================================
   Textes courants plus grands (les titres ne changent pas)
   ========================================================================== */
body { font-size: 14px !important; }
p, .ps-richtext p, .ps-richtext li { font-size: 15px !important; line-height: 1.75 !important; }
.geodir-category-content p { font-size: 14px !important; line-height: 1.7 !important; }
.geodir-category-content_price small, .geodir-category-content-details li span { font-size: 13px !important; }
.geodir-category-content-details li { font-size: 13px !important; }
.services-opions li p, .process-item p, .testimonilas-text-item p, .half-carousel-title p,
.parallax-section-content p, .api-text p, .about-img-hotifer p, .ps-step p, .ps-access_aside p { font-size: 15px !important; line-height: 1.75 !important; }
.footer-widget-content p, .footer-list li a, .footer-contacts li, .footer-contacts li a { font-size: 14px !important; line-height: 1.8 !important; }
.gcf-company span, .ps-small, .ps-calendar_hint, .ps-booking_secure, .ps-map-note, .ps-rate small,
.ps-rate-notes li, .ps-head_address, .ps-head_meta li, .ps-order-row_main span, .ps-pay-row > div span,
.ps-lines li, .ps-quote li, .ps-area_body small, .ps-pop_item small, .ps-contact-cards span, .ps-stats span { font-size: 14px !important; }
.ps-head_meta li { font-size: 13px !important; }
.custom-form input, .custom-form textarea, .nice-select, .nice-select .current, .nice-select .option,
.cs-intputwrap input, .cs-intputwrap textarea { font-size: 14px !important; }
.custom-form input::placeholder, .custom-form textarea::placeholder { font-size: 14px; }
.list-single-opt_header_cat .cat-opt { font-size: 11px !important; }
.geodir-category-location a, .geodir-category-listing_media-list span { font-size: 13px !important; }
.filter-tags label, .ps-account-type label, .ps-access_row, .ps-access_switch { font-size: 14px !important; }
.ps-pop_item strong, .ps-area_body strong + small { font-size: 14px !important; }
.wish-list-descr h4 a, .wish-list-price { font-size: 14px !important; }

/* --- Déconnexion dans le header -------------------------------------------- */
.ps-logout { float: right; margin: 24px 6px 0 0; }
.ps-logout button {
    width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--ps-gray-200);
    background: var(--ps-gray-grad); color: #111; cursor: pointer; display: grid; place-items: center; font-size: 15px;
}
.ps-logout button:hover { background: #111; color: #fff; border-color: #111; }

/* Ombre générale du slider : voile uniforme sur toute l'image, renforcé côté texte et en bas */
.hero-blur-container_item::after {
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, rgba(255,255,255,0) 1px 9px),
        linear-gradient(90deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,.06) 60%, rgba(0,0,0,0) 100%),
        linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.30) 100%),
        rgba(0,0,0,.24) !important;
}
.ps-logout { margin-right: 28px !important; margin-left: 4px; }
.ps-account-link span { max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ==========================================================================
   Menu : page courante bien visible (filet noir sous le lien)
   ========================================================================== */
.nav-holder nav li a { position: relative; color: #6b6b6b !important; }
.nav-holder nav li a:hover { color: #111 !important; }
.nav-holder nav li a.act-link { color: #111 !important; font-weight: 700 !important; }
.nav-holder nav li a.act-link::after {
    content: ''; position: absolute; left: 10px; right: 10px; bottom: 2px; height: 2px; background: #111;
}
@media (max-width: 1064px) {
    .nav-holder nav li a.act-link::after { left: 0; right: auto; width: 24px; }
}

/* Logo : monogramme légèrement incliné, coins arrondis */
.ps-logo_mark { border-radius: 9px !important; transform: rotate(-8deg) !important; transition: transform .25s ease; }
.ps-logo:hover .ps-logo_mark { transform: rotate(0deg) !important; }

/* Tri des résidences : liste déroulante */
.ps-sort-form { display: flex; align-items: center; gap: 12px; margin: 0; }
.ps-sort-form .price-opt-title { margin: 0; white-space: nowrap; font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: #6b6b6b; }
.ps-sort-form .cs-intputwrap { width: 230px; }
.ps-sort-form .nice-select { background: var(--ps-gray-grad) !important; height: 46px; line-height: 46px; }

/* ==========================================================================
   PARCOURS DE RÉSERVATION — structure inspirée des plateformes de réservation
   (barre de recherche, résultats en liste + filtres, fiche à onglets),
   habillée aux couleurs du thème : noir, blanc, gris.
   ========================================================================== */
.ps-home, .ps-results, .ps-prop, .ps-block, .ps-search-head, .ps-host-grid { text-align: left; }

/* --- Barre de recherche d'un séjour ----------------------------------------- */
.ps-staybar {
    display: grid; grid-template-columns: 1.6fr 1fr 1fr .8fr auto; align-items: stretch;
    background: #fff; border: 3px solid #111; border-radius: var(--ps-radius); text-align: left;
    max-width: 1080px; margin: 36px auto 0; position: relative; z-index: 6;
}
.ps-staybar_field {
    display: flex; align-items: center; gap: 12px; padding: 10px 16px; margin: 0; cursor: text;
    border-right: 1px solid var(--ps-gray-200); min-width: 0;
}
.ps-staybar_field > i { font-size: 18px; color: #111; flex: none; }
.ps-staybar_field > span { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ps-staybar_field small {
    font-size: 10px !important; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: var(--ps-gray-600); font-weight: 500;
}
.ps-staybar input {
    border: 0 !important; background: transparent !important; padding: 2px 0 !important; height: 28px !important;
    font-size: 15px !important; font-weight: 600; color: #111; outline: none; width: 100%; font-family: var(--main-font);
    border-radius: 0 !important;
}
.ps-staybar input::placeholder { color: var(--ps-gray-400); font-weight: 400; }
.ps-staybar input[type="date"]::-webkit-calendar-picker-indicator { opacity: .5; cursor: pointer; }
.ps-staybar_field:focus-within { background: var(--ps-gray-50); }
.ps-staybar_submit.commentssubmit { margin: 0 !important; height: auto !important; min-height: 64px; padding: 0 34px !important; font-size: 13px !important; }
.ps-staybar_compact { margin: 0 auto; max-width: none; }
.ps-staybar_compact .ps-staybar_submit.commentssubmit { min-height: 56px; }

/* Accueil : la barre est posée sous le titre du hero */
.ps-home-hero .hero-section-title { max-width: none !important; width: 100%; }
.ps-home-hero .hero-section-title h2, .ps-home-hero .hero-section-title h5 { text-align: center; margin-inline: auto; max-width: 900px; }
.ps-home-hero .hs-scroll-down-wrap { display: none; }
.ps-hero-cta.commentssubmit { margin-top: 30px; background: #fff !important; color: #111 !important; display: inline-block; float: none; }

/* Bandeau gris de la page de résultats */
.ps-search-head { background: var(--ps-gray-grad); border-bottom: 1px solid var(--ps-gray-200); padding: 24px 0; }

/* --- Blocs de l'accueil ----------------------------------------------------- */
.ps-home { padding-bottom: 40px; }
.ps-block { padding: 40px 0 10px; }
.ps-block_head { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 20px; row-gap: 4px; margin-bottom: 22px; }
.ps-block_head h2 { font-family: var(--ps-display); font-size: 32px; font-weight: 700; color: #111; margin: 0; flex-basis: 100%; letter-spacing: -.01em; }
.ps-block_head p { color: var(--ps-gray-600); margin: 0 !important; flex: 1; }
.ps-block_more { font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: #111; font-weight: 600; white-space: nowrap; }
.ps-block_more:hover { text-decoration: underline; }

/* Types d'hébergement : vignettes défilantes */
.ps-types { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: 16px; overflow-x: auto; padding-bottom: 8px; scroll-snap-type: x mandatory; }
.ps-type { display: flex; flex-direction: column; gap: 2px; color: #111; scroll-snap-align: start; }
.ps-type_img { aspect-ratio: 4 / 3; background: var(--ps-gray-100) center / cover; border-radius: var(--ps-radius); margin-bottom: 10px; filter: grayscale(.15); transition: filter .2s; }
.ps-type:hover .ps-type_img { filter: none; }
.ps-type strong { font-size: 16px; }
.ps-type small { color: var(--ps-gray-600); font-size: 13px; }

/* Destinations : 2 grandes + 3 petites */
.ps-dests { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.ps-dest {
    grid-column: span 2; height: 240px; position: relative; overflow: hidden; border-radius: var(--ps-radius);
    background: var(--ps-gray-200) center / cover; color: #fff;
}
.ps-dest_lg { grid-column: span 3; height: 300px; }
.ps-dest::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 55%); transition: background .2s; }
.ps-dest:hover::before { background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.1) 70%); }
.ps-dest_body { position: absolute; top: 20px; left: 22px; display: flex; flex-direction: column; }
.ps-dest_body strong { font-family: var(--ps-display); font-size: 28px; font-weight: 700; line-height: 1.1; }
.ps-dest_body strong { display: block; }
.ps-dest_body small { display: block; font-size: 13px !important; line-height: 1.4; margin-top: 6px; opacity: .9; }

/* Grille de cartes (accueil, logements similaires) */
.ps-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ps-cards .listing-item { padding: 0; }

/* Idées de séjour */
.ps-ideas { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.ps-idea {
    display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid var(--ps-gray-200);
    background: var(--ps-gray-grad); border-radius: var(--ps-radius); color: #111; transition: background .2s;
}
.ps-idea:hover { background: #111; color: #fff; border-color: #111; }
.ps-idea i { font-size: 24px; margin-bottom: 10px; }
.ps-idea small { font-size: 13px; color: inherit; opacity: .7; }

/* Réassurance */
.ps-trust { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); }
.ps-trust > div { padding: 26px; border-right: 1px solid var(--ps-gray-200); }
.ps-trust > div:last-child { border-right: 0; }
.ps-trust i { font-size: 26px; color: #111; display: block; margin-bottom: 12px; }
.ps-trust strong { display: block; font-size: 16px; margin-bottom: 6px; color: #111; }
.ps-trust p { color: var(--ps-gray-600); margin: 0 !important; font-size: 14px !important; line-height: 1.6 !important; }
.ps-host-band { margin: 40px 0 20px; padding: 40px !important; }

/* --- Page de résultats ------------------------------------------------------ */
.ps-results { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 30px; align-items: start; }
.ps-filters_toggle { display: none; }
.ps-filters_map {
    display: grid; place-items: center; height: 130px; margin-bottom: 16px; border-radius: var(--ps-radius); border: 1px solid var(--ps-gray-200);
    background: repeating-linear-gradient(45deg, #f4f4f4 0 10px, #ececec 10px 20px);
}
.ps-filters_map span { background: #111; color: #fff; padding: 10px 18px; font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase; }
.ps-filters_form { border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); background: #fff; }
.ps-filters_title { padding: 16px 18px; font-family: var(--ps-display); font-size: 18px; font-weight: 700; color: #111; border-bottom: 1px solid var(--ps-gray-200); }
.ps-filter { border: 0; border-bottom: 1px solid var(--ps-gray-200); padding: 16px 18px; margin: 0; min-width: 0; }
.ps-filter legend { font-size: 14px; font-weight: 700; color: #111; margin-bottom: 10px; padding: 0; float: left; width: 100%; }
.ps-filter legend small { font-weight: 400; color: var(--ps-gray-600); }
.ps-check { display: flex; align-items: center; gap: 10px; padding: 5px 0; margin: 0; cursor: pointer; font-size: 14px; color: #222; clear: both; }
.ps-check input { width: 18px; height: 18px; accent-color: #111; flex: none; margin: 0; }
.ps-check i { width: 18px; color: var(--ps-gray-600); }
.ps-check[hidden] { display: none; }
.ps-filter_range { display: flex; align-items: center; gap: 8px; clear: both; }
.ps-filter_range input { width: 100%; height: 42px; border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); padding: 0 10px; font-size: 14px; background: #fff; }
.ps-filter_more { background: none; border: 0; padding: 6px 0 0; font-size: 13px; font-weight: 600; color: #111; text-decoration: underline; cursor: pointer; }
.ps-filters_apply.commentssubmit { margin: 0 !important; width: 100%; }
.js .ps-filters_apply { display: none; }

.ps-results_head { margin-bottom: 18px; }
.ps-results_head h1 { font-family: var(--ps-display); font-size: 30px; font-weight: 700; color: #111; margin: 0 0 6px; line-height: 1.2; }
.ps-results_head > p { color: var(--ps-gray-600); margin: 0 0 6px !important; }
.ps-active-filters_reset { border: 0 !important; background: none !important; text-decoration: underline; }
.ps-results .ps-sort { align-items: center; margin-top: 16px; padding: 10px 0; border-top: 1px solid var(--ps-gray-200); border-bottom: 1px solid var(--ps-gray-200); }
.ps-results .ps-sort > span { font-size: 12px; color: var(--ps-gray-600); margin-right: 6px; letter-spacing: var(--ps-tracking); text-transform: uppercase; }

/* Résultat en ligne */
.ps-result-list { display: flex; flex-direction: column; gap: 16px; }
.ps-result {
    display: grid; grid-template-columns: 250px minmax(0, 1fr) 220px; gap: 0; position: relative;
    border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); background: #fff; overflow: hidden; transition: border-color .2s;
}
.ps-result:hover { border-color: #111; }
.ps-result_img { position: relative; display: block; min-height: 230px; background: var(--ps-gray-100) center / cover; }
.ps-result_photos { position: absolute; left: 10px; bottom: 10px; background: rgba(0,0,0,.65); color: #fff; font-size: 12px; padding: 4px 9px; border-radius: 2px; }
.ps-result_save.geodir_save-btn { position: absolute; top: 10px; left: 202px; right: auto; border: 0; padding: 0; background: none; cursor: pointer; }
.ps-result_body { padding: 18px 22px; min-width: 0; }
.ps-result_kicker { font-size: 11px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: var(--ps-gray-600); margin-bottom: 4px; }
.ps-result_body h3 { font-family: var(--ps-display); font-size: 22px; font-weight: 700; line-height: 1.25; margin: 0 0 6px; }
.ps-result_body h3 a { color: #111; }
.ps-result_body h3 a:hover { text-decoration: underline; }
.ps-result_where { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; margin-bottom: 10px; }
.ps-result_where a { color: #111; text-decoration: underline; text-underline-offset: 2px; }
.ps-result_where a + a { color: var(--ps-gray-600); }
.ps-result_facts, .ps-result_amenities { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; padding: 0; margin: 0 0 10px; font-size: 13px; color: #222; }
.ps-result_facts i { color: var(--ps-gray-600); margin-right: 4px; }
.ps-result_body p { font-size: 14px !important; line-height: 1.6 !important; color: #444; margin: 0 0 10px !important; }
.ps-result_amenities li { color: var(--ps-success); }
.ps-result_host { font-size: 13px; color: var(--ps-gray-600); }
.ps-result_host strong { color: #111; }
.ps-result_side {
    display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 14px; text-align: right;
    padding: 18px 20px; border-left: 1px solid var(--ps-gray-100); background: linear-gradient(180deg, #fff 0%, var(--ps-gray-50) 100%);
}
.ps-result_badge { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid #111; padding: 4px 8px; color: #111; }
.ps-result_price { display: flex; flex-direction: column; margin-top: auto; }
.ps-result_price small { font-size: 12px; color: var(--ps-gray-600); }
.ps-result_price strong { font-family: var(--ps-display); font-size: 24px; font-weight: 700; color: #111; line-height: 1.2; }
.ps-result_price span { font-size: 12px; color: var(--ps-gray-600); }
.ps-result_cta.commentssubmit { margin: 0 !important; width: 100%; text-align: center; font-size: 11px !important; padding: 0 12px !important; }

/* --- Fiche logement ---------------------------------------------------------- */
.ps-tabs { position: sticky; top: 90px; z-index: 15; background: #fff; border-bottom: 1px solid var(--ps-gray-200); margin-top: 10px; }
.ps-tabs .container { display: flex; gap: 4px; overflow-x: auto; }
.ps-tabs a {
    padding: 16px 18px; white-space: nowrap; font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase;
    color: var(--ps-gray-600); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.ps-tabs a:hover, .ps-tabs a.active { color: #111; border-bottom-color: #111; font-weight: 600; }
.ps-prop { margin-top: 0; min-height: 0; }
.ps-prop_section { padding: 34px 0; border-bottom: 1px solid var(--ps-gray-200); scroll-margin-top: 150px; }
.ps-prop_section:last-of-type { border-bottom: 0; }
.ps-prop_head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.ps-prop_head h1 { font-family: var(--ps-display); font-size: 40px; font-weight: 800; line-height: 1.1; color: #111; margin: 4px 0 8px; }
.ps-prop_address { margin: 0 !important; font-size: 14px !important; color: #222; }
.ps-prop_address a { color: #111; text-decoration: underline; margin-left: 10px; font-weight: 600; }
.ps-prop_actions { display: flex; align-items: center; gap: 10px; }
.ps-prop_actions .like-btn {
    position: static; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid var(--ps-gray-200);
    border-radius: 50%; background: var(--ps-gray-grad); color: #111; font-size: 17px;
}
.ps-prop_actions .commentssubmit { margin: 0 !important; }

.ps-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; gap: 8px; }
.ps-gallery_item { position: relative; display: block; overflow: hidden; border-radius: var(--ps-radius); background: var(--ps-gray-100); }
.ps-gallery_item:first-child { grid-row: span 2; }
.ps-gallery_item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.ps-gallery_item:hover img { transform: scale(1.03); }
.ps-gallery_item[hidden] { display: none; }

.ps-gallery_more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0,0,0,.55); color: #fff; font-size: 15px; font-weight: 600; letter-spacing: .05em; }

.ps-prop_grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; margin-top: 30px; }
.ps-prop_text { max-width: 760px; }
.ps-prop_subtitle, .ps-prop_title { font-family: var(--ps-display); font-weight: 700; color: #111; letter-spacing: -.01em; }
.ps-prop_subtitle { font-size: 20px; margin: 26px 0 14px; }
.ps-prop_title { font-size: 28px; margin: 0 0 20px; }
.ps-amenity-row { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 0; }
.ps-amenity-row li { padding: 8px 14px; border: 1px solid var(--ps-gray-200); background: var(--ps-gray-grad); font-size: 14px; color: #111; border-radius: var(--ps-radius); }
.ps-amenity-row i, .ps-amenity-grid i { margin-right: 6px; }
.ps-amenity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; list-style: none; padding: 0; margin: 0; }
.ps-amenity-grid li { font-size: 15px; color: #111; padding: 8px 0; border-bottom: 1px solid var(--ps-gray-100); }

.ps-highlights { border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); padding: 22px; background: linear-gradient(180deg, #fff 0%, var(--ps-gray-50) 100%); }
.ps-highlights h3 { font-family: var(--ps-display); font-size: 20px; font-weight: 700; margin: 0 0 14px; color: #111; }
.ps-highlights ul { list-style: none; padding: 0; margin: 0 0 18px; }
.ps-highlights li { display: flex; gap: 12px; padding: 6px 0; font-size: 14px; color: #222; }
.ps-highlights li i { width: 18px; color: #111; margin-top: 3px; }
.ps-highlights_price { display: flex; flex-direction: column; padding: 14px 0; border-top: 1px solid var(--ps-gray-200); margin-bottom: 14px; }
.ps-highlights_price small, .ps-highlights_price span { font-size: 12px; color: var(--ps-gray-600); }
.ps-highlights_price strong { font-family: var(--ps-display); font-size: 26px; font-weight: 700; color: #111; }
.ps-highlights .commentssubmit { margin: 0 !important; }
.ps-host { display: flex; gap: 14px; align-items: center; margin-top: 16px; padding: 18px; border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); }
.ps-host div { display: flex; flex-direction: column; }
.ps-host small { font-size: 11px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: var(--ps-gray-600); }
.ps-host strong { font-size: 17px; color: #111; }
.ps-host span:not(.ps-avatar) { font-size: 13px; color: var(--ps-gray-600); }

.ps-rate-table { width: 100%; border-collapse: collapse; border: 1px solid var(--ps-gray-200); font-size: 14px; }
.ps-rate-table th { background: #111; color: #fff; text-align: left; padding: 12px 16px; font-size: 11px; font-weight: 500; letter-spacing: var(--ps-tracking); text-transform: uppercase; }
.ps-rate-table td { padding: 14px 16px; border-top: 1px solid var(--ps-gray-200); color: #222; vertical-align: middle; text-align: left; }
.ps-rate-table td strong { color: #111; }
.ps-rate-table td small { color: var(--ps-gray-600); }
.ps-rate-table tr:nth-child(even) td { background: var(--ps-gray-50); }
.ps-rate-table_note { margin: 10px 0 26px !important; color: var(--ps-gray-600); }

.ps-booking_wide { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: start; text-align: left; }
.ps-booking_wide .ps-calendar { margin: 0; }
.ps-booking_form { margin: 0; }
.ps-booking_dates { display: grid; grid-template-columns: 1fr 1fr .7fr; border: 2px solid #111; border-radius: var(--ps-radius); margin-bottom: 16px; }
.ps-booking_dates label { display: flex; flex-direction: column; padding: 8px 12px; margin: 0; border-right: 1px solid var(--ps-gray-200); text-align: left; }
.ps-booking_dates label:last-child { border-right: 0; }
.ps-booking_dates small { font-size: 10px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: var(--ps-gray-600); }
.ps-booking_dates input { border: 0 !important; background: none !important; height: 30px !important; padding: 0 !important; font-size: 14px !important; font-weight: 600; width: 100%; outline: none; }
.ps-booking_title { font-weight: 700; font-size: 15px; color: #111; margin: 4px 0 10px; }

.ps-rules { display: grid; grid-template-columns: 220px minmax(0, 1fr); margin: 0; border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); }
.ps-rules dt, .ps-rules dd { padding: 16px 20px; margin: 0; border-bottom: 1px solid var(--ps-gray-200); font-size: 14px; }
.ps-rules dt { font-weight: 700; color: #111; background: var(--ps-gray-50); }
.ps-rules dt i { width: 20px; margin-right: 6px; }
.ps-rules dd { color: #333; line-height: 1.6; }
.ps-rules dt:last-of-type, .ps-rules dd:last-of-type { border-bottom: 0; }

.ps-visit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; }
.ps-visit_links { display: flex; gap: 10px; flex-wrap: wrap; }
.ps-visit_links .commentssubmit { margin: 0 !important; }

/* --- Page hébergeurs ------------------------------------------------------- */
.ps-host-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; align-items: start; padding: 30px 0; }
.ps-faq details { border-bottom: 1px solid var(--ps-gray-200); }
.ps-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; font-size: 16px; font-weight: 600; color: #111; }
.ps-faq summary::-webkit-details-marker { display: none; }
.ps-faq details[open] summary i { transform: rotate(45deg); }
.ps-faq summary i { transition: transform .2s; }
.ps-faq p { margin: 0 0 18px !important; color: #444; }
.ps-separator { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--ps-gray-600); font-size: 12px; text-transform: uppercase; letter-spacing: var(--ps-tracking); }
.ps-separator::before, .ps-separator::after { content: ''; flex: 1; height: 1px; background: var(--ps-gray-200); }

/* --- Adaptations écran ------------------------------------------------------ */
@media (max-width: 1200px) {
    .ps-staybar { grid-template-columns: 1fr 1fr; }
    .ps-staybar_dest { grid-column: span 2; }
    .ps-staybar_field { border-bottom: 1px solid var(--ps-gray-200); }
    .ps-staybar_submit.commentssubmit { grid-column: span 2; min-height: 54px; }
    .ps-result { grid-template-columns: 210px minmax(0, 1fr); }
    .ps-result_save.geodir_save-btn { left: 162px; }
    .ps-result_side { grid-column: span 2; flex-direction: row; align-items: center; border-left: 0; border-top: 1px solid var(--ps-gray-100); }
    .ps-result_price { margin: 0 0 0 auto; }
    .ps-result_cta.commentssubmit { width: auto; padding: 0 22px !important; }
}
@media (max-width: 991px) {
    .ps-results { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .ps-filters_toggle {
        display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; border: 1px solid #111; background: #fff;
        font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase; color: #111; cursor: pointer;
    }
    .ps-filters_map { display: none; }
    .ps-filters_form { display: none; margin-top: 10px; }
    .ps-filters.is-open .ps-filters_form { display: block; }
    .js .ps-filters_apply { display: block; }
    .ps-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ps-dests { grid-template-columns: repeat(2, 1fr); }
    .ps-dest, .ps-dest_lg { grid-column: span 1; height: 200px; }
    .ps-dest_lg:first-child { grid-column: span 2; }
    .ps-prop_grid, .ps-booking_wide, .ps-visit, .ps-host-grid { grid-template-columns: minmax(0, 1fr); }
    .ps-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 260px 140px; }
    .ps-gallery_item:first-child { grid-column: span 2; grid-row: auto; }
    .ps-gallery_item:nth-child(n+4) { display: none; }
    .ps-prop_head h1 { font-size: 30px; }
    .ps-tabs { top: 80px; }
    .ps-trust > div { border-right: 0; border-bottom: 1px solid var(--ps-gray-200); }
}
@media (max-width: 640px) {
    .ps-staybar { grid-template-columns: minmax(0, 1fr); }
    .ps-staybar_dest, .ps-staybar_submit.commentssubmit { grid-column: auto; }
    .ps-staybar_field { border-right: 0; }
    .ps-result { grid-template-columns: minmax(0, 1fr); }
    .ps-result_img { min-height: 200px; }
    .ps-result_save.geodir_save-btn { left: auto; right: 10px; }
    .ps-result_side { grid-column: auto; flex-wrap: wrap; }
    .ps-cards { grid-template-columns: minmax(0, 1fr); }
    .ps-rules { grid-template-columns: 1fr; }
    .ps-rules dt { border-bottom: 0; padding-bottom: 4px; }
    .ps-booking_dates { grid-template-columns: 1fr 1fr; }
    .ps-booking_dates label:last-child { grid-column: span 2; border-top: 1px solid var(--ps-gray-200); }
    .ps-block_head h2 { font-size: 26px; }
    .ps-prop_actions .commentssubmit { flex: 1; text-align: center; }
}

/* Résultats : bouton et badge sur deux lignes sans s'étirer */
@media (min-width: 1201px) { .ps-result { grid-template-columns: 250px minmax(0, 1fr) 240px; } }
.ps-result_cta.commentssubmit { height: auto !important; line-height: 1.4 !important; padding: 14px 12px !important; white-space: normal; }
.ps-result_badge { white-space: nowrap; letter-spacing: .04em; font-size: 10px; }

/* Galerie : la mosaïque s'adapte quand il y a moins de cinq photos */
@media (min-width: 992px) {
    .ps-gallery_n1 { grid-template-columns: 1fr; grid-template-rows: 440px; }
    .ps-gallery_n2, .ps-gallery_n3 { grid-template-columns: 2fr 1fr; }
    .ps-gallery_n2 .ps-gallery_item:nth-child(2) { grid-row: span 2; }
    .ps-gallery_n4 .ps-gallery_item:nth-child(4) { grid-column: span 2; }
}
@media (max-width: 640px) {
    .ps-result_side { flex-direction: column; align-items: stretch; text-align: left; }
    .ps-result_price { margin: 0; }
    .ps-result_cta.commentssubmit { width: 100%; }
    .ps-results .ps-sort a { padding: 6px 10px; }
}

/* --- Accueil : « Pourquoi choisir PrimeSuite ? » ------------------------------ */
.ps-why_grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 30px; align-items: stretch; }
.ps-why_visual {
    position: relative; min-height: 460px; border-radius: var(--ps-radius); overflow: hidden;
    background: var(--ps-gray-200) center / cover;
}
.ps-why_visual::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.65) 100%); }
.ps-why_stats { position: absolute; left: 0; right: 0; bottom: 0; display: flex; list-style: none; margin: 0; padding: 0; }
.ps-why_stats li { flex: 1; padding: 22px 24px; color: #fff; border-right: 1px solid rgba(255,255,255,.2); }
.ps-why_stats li:last-child { border-right: 0; }
.ps-why_stats strong { display: block; font-family: var(--ps-display); font-size: 38px; font-weight: 700; line-height: 1; }
.ps-why_stats span { font-size: 12px; letter-spacing: var(--ps-tracking); text-transform: uppercase; opacity: .85; }
.ps-why_list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0;
    border: 1px solid var(--ps-gray-200); border-radius: var(--ps-radius); }
.ps-why_list li { display: flex; gap: 16px; padding: 26px; border-bottom: 1px solid var(--ps-gray-200); }
.ps-why_list li:nth-child(odd) { border-right: 1px solid var(--ps-gray-200); }
.ps-why_list li:nth-last-child(-n+2) { border-bottom: 0; }
.ps-why_list i {
    flex: none; width: 48px; height: 48px; display: grid; place-items: center; font-size: 20px; color: #111;
    background: var(--ps-gray-grad); border: 1px solid var(--ps-gray-200); border-radius: 50%;
}
.ps-why_list strong { display: block; font-size: 16px; color: #111; margin-bottom: 6px; }
.ps-why_list p { margin: 0 !important; font-size: 14px !important; line-height: 1.6 !important; color: var(--ps-gray-600); }

@media (max-width: 991px) {
    .ps-why_grid { grid-template-columns: minmax(0, 1fr); }
    .ps-why_visual { min-height: 300px; }
}
@media (max-width: 640px) {
    .ps-why_list { grid-template-columns: minmax(0, 1fr); }
    .ps-why_list li:nth-child(odd) { border-right: 0; }
    .ps-why_list li:nth-last-child(2) { border-bottom: 1px solid var(--ps-gray-200); }
    .ps-why_stats li { padding: 16px; }
    .ps-why_stats strong { font-size: 28px; }
}
