/*
Theme Name: AtypikHouse
Author: AtypikHouse
Version: 2.1.0 (Ultra-Premium Edition avec gestion Logo)
Text Domain: atypikhouse
*/

/* =========================================
   1. FONDATIONS & VARIABLES
========================================= */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@1,500;1,600&family=Lato:wght@300;400;700&family=Raleway:wght@400;500;700;800&display=swap');

:root {
    /* Charte Graphique Stricte */
    --color-navy: #1B3A5C;       
    --color-blue: #2E6DA4;       
    --color-light-blue: #F0F4F8; 
    --color-gold: #F4D06F;       
    
    /* Neutres Premium */
    --color-bg: #FFFFFF;
    --color-surface: #FAFAFA;
    --color-text: #2C3E50;
    --color-muted: #7F8C8D;
    --color-border: #E8ECEF;
    
    /* Typographie */
    --font-heading: 'Raleway', sans-serif;
    --font-body: 'Lato', sans-serif;
    --font-accent: 'Playfair Display', serif;

    /* Ombres & Transitions */
    --shadow-soft: 0 10px 30px rgba(27, 58, 92, 0.05);
    --shadow-hover: 0 15px 40px rgba(27, 58, 92, 0.12);
    --transition-smooth: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-navy);
    line-height: 1.2;
    margin-bottom: 0.5em;
}

a {
    color: inherit;
    text-decoration: none;
    transition: var(--transition-smooth);
}

/* =========================================
   2. HEADER (NAVIGATION BOUTIQUE-HÔTEL)
========================================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 999;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(27, 58, 92, 0.08);
    transition: var(--transition-smooth);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(1200px, calc(100% - 48px)); 
    min-height: 90px;
    margin: 0 auto;
}

/* --- LOGO TEXTE (Jeu typo Raleway + Playfair) --- */
.site-header__brand {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--color-navy);
    letter-spacing: -0.5px;
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.site-header__brand .brand-accent {
    font-family: var(--font-accent);
    font-style: italic;
    font-weight: 500;
    color: var(--color-blue);
    font-size: 1.7rem;
}

/* --- LOGO IMAGE WORDPRESS (Intégration propre) --- */
.site-header__brand img,
.custom-logo-link img {
    max-height: 55px; /* Hauteur parfaite pour garder le header élégant */
    width: auto;
    display: block;
    object-fit: contain;
    transition: var(--transition-smooth);
}

.site-header__brand img:hover,
.custom-logo-link img:hover {
    opacity: 0.85; /* Petit effet chic au survol de l'image */
    transform: scale(0.98);
}

/* --- NAVIGATION --- */
.site-header__menu {
    display: flex;
    align-items: center;
    gap: 32px; 
    list-style: none;
}

/* Liens du menu - Animation "Underline" Premium */
.site-header__menu a {
    position: relative;
    color: var(--color-navy);
    font-size: 0.9rem;
    font-weight: 600;
    font-family: var(--font-heading);
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 8px 0;
}

.site-header__menu a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-gold);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.site-header__menu a:hover,
.site-header__menu .current-menu-item > a {
    color: var(--color-blue);
}

.site-header__menu a:hover::after,
.site-header__menu .current-menu-item > a::after {
    transform: scaleX(1);
    transform-origin: left;
}

/* =========================================
   3. CONTENU PRINCIPAL
========================================= */
.site-main {
    width: min(1200px, calc(100% - 48px));
    margin: 0 auto;
    padding: 80px 0;
}

.site-main__content {
    max-width: 850px;
    margin: 0 auto;
}

.site-main__content h1 {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 800;
    letter-spacing: -1px;
    text-align: center;
    margin-bottom: 20px;
}

/* =========================================
   4. FOOTER DE LUXE (IMMERSION NAVY)
========================================= */
.ah-site-footer {
    background-color: var(--color-navy);
    background-image: radial-gradient(circle at 100% 0%, rgba(46, 109, 164, 0.15) 0%, transparent 50%);
    color: rgba(255, 255, 255, 0.85);
    padding: 100px 0 30px 0;
    border-top: 4px solid var(--color-gold);
}

.ah-footer-container {
    width: min(1200px, calc(100% - 48px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr; 
    gap: 60px;
    margin-bottom: 70px;
}

/* Typographie des Widgets */
.ah-footer-widget-area h2.widget-title,
.ah-footer-widget-area h3.widget-title {
    color: #FFFFFF;
    font-family: var(--font-heading);
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 30px;
}

/* Logo du footer */
.ah-footer-logo {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    font-weight: 800;
    color: #FFFFFF;
    margin-bottom: 20px;
    display: inline-block;
    letter-spacing: -1px;
}

.ah-footer-logo .brand-accent {
    font-family: var(--font-accent);
    font-style: italic;
    font-weight: 500;
    color: var(--color-gold);
}

.ah-footer-widget-area p {
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 20px;
    color: rgba(255, 255, 255, 0.7);
}

/* Liens du footer (Animation de translation) */
.ah-footer-widget-area ul {
    list-style: none;
}

.ah-footer-widget-area ul li {
    margin-bottom: 16px;
}

.ah-footer-widget-area a {
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
}

.ah-footer-widget-area a::before {
    content: '→';
    font-family: sans-serif;
    margin-right: 0px;
    opacity: 0;
    color: var(--color-gold);
    transform: translateX(-10px);
    transition: var(--transition-smooth);
    display: inline-block;
    width: 0;
    overflow: hidden;
}

.ah-footer-widget-area a:hover {
    color: #FFFFFF;
    transform: translateX(5px);
}

.ah-footer-widget-area a:hover::before {
    opacity: 1;
    width: 20px;
    transform: translateX(0);
}

/* Copyright Bar */
.ah-footer-bottom {
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 30px;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.5);
    font-weight: 300;
    letter-spacing: 0.5px;
}

/* =========================================
   5. RESPONSIVE DESIGN
========================================= */
@media (max-width: 992px) {
    .ah-footer-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }
}

@media (max-width: 768px) {
    .site-header__inner {
        flex-direction: column;
        padding: 20px 0;
        gap: 20px;
    }
    
    /* Fix pour le logo image sur mobile */
    .site-header__brand img,
    .custom-logo-link img {
        max-height: 45px;
    }
    
    .site-header__menu {
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px;
    }

    .ah-footer-container {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    .ah-footer-widget-area a:hover {
        transform: translateY(-3px);
    }
    
    .ah-footer-widget-area a::before {
        display: none; 
    }
}
/* ==================================================
   FICHE HÉBERGEMENT — ATYPIKHOUSE
   Refonte "style Airbnb" — responsive + UX/UI
================================================== */

.ah-stay-page {
    --ah-navy: #1b3a5c;
    --ah-blue: #2e6da4;
    --ah-light-blue: #d6e4f0;
    --ah-gold: #f4d06f;
    --ah-cream: #f7f3ea;
    --ah-white: #ffffff;
    --ah-text: #26394b;
    --ah-muted: #6d7c89;
    --ah-border: #dde5eb;
    --ah-radius-lg: 20px;
    --ah-radius-md: 14px;
    --ah-radius-sm: 10px;

    background: var(--ah-white);
    color: var(--ah-text);
    font-family: "Lato", Arial, sans-serif;
    padding-bottom: 90px; /* place pour la barre mobile fixe */
}

.ah-stay-page,
.ah-stay-page * {
    box-sizing: border-box;
}

/* ==================================================
   TOPBAR
================================================== */

.ah-listing__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;

    width: min(1240px, calc(100% - 48px));
    margin: 0 auto;
    padding: 24px 0 8px;
}

.ah-stay-back {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-decoration: none;
    text-transform: uppercase;

    transition: color 0.2s ease, transform 0.2s ease;
}

.ah-stay-back:hover {
    color: var(--ah-blue);
    transform: translateX(-3px);
}

.ah-listing__actions {
    display: flex;
    gap: 8px;
}

.ah-icon-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 8px 14px;

    border: 1px solid var(--ah-border);
    border-radius: 999px;
    background: var(--ah-white);
    cursor: pointer;

    color: var(--ah-text);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.78rem;
    font-weight: 700;

    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.ah-icon-btn:hover {
    background: var(--ah-light-blue);
    border-color: var(--ah-blue);
}

/* ==================================================
   HEADER (titre + note)
================================================== */

.ah-listing__header {
    width: min(1240px, calc(100% - 48px));
    margin: 0 auto;
    padding: 8px 0 22px;
}

.ah-stay-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 12px;

    color: var(--ah-blue);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.ah-stay-eyebrow::before {
    content: "";
    width: 35px;
    height: 1px;
    background: currentColor;
}

.ah-listing__title {
    margin: 0 0 14px;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: clamp(1.9rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1.5px;

    overflow-wrap: break-word;
    word-break: break-word;
}

.ah-listing__meta {
    display: flex;
    align-items: center;
    gap: 10px;

    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
}

.ah-rating-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--ah-navy);
}

.ah-rating-badge span[aria-hidden] {
    color: var(--ah-gold);
}

.ah-listing__meta-dot {
    color: var(--ah-muted);
}

.ah-listing__reviews-link {
    color: var(--ah-navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ah-listing__reviews-link:hover {
    color: var(--ah-blue);
}

/* ==================================================
   GALERIE — 1 grande + 4 petites, façon Airbnb
================================================== */

.ah-gallery {
    position: relative;

    width: min(1240px, calc(100% - 48px));
    margin: 0 auto 45px;

    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 8px;

    border-radius: var(--ah-radius-lg);
    overflow: hidden;
}

.ah-gallery__main {
    position: relative;
    min-height: 320px;
}

.ah-gallery__main img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    display: block;
}

.ah-gallery__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 8px;
}

.ah-gallery__item {
    position: relative;
    overflow: hidden;
}

.ah-gallery__item img {
    width: 100%;
    height: 100%;
    min-height: 156px;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.ah-gallery__item:hover img,
.ah-gallery__main:hover img {
    transform: scale(1.04);
}

.ah-gallery__more-btn {
    position: absolute;
    right: 20px;
    bottom: 20px;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 10px 18px;

    border: 1px solid var(--ah-navy);
    border-radius: 999px;
    background: var(--ah-white);
    cursor: pointer;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.8rem;
    font-weight: 800;

    box-shadow: 0 8px 20px rgba(27, 58, 92, 0.18);
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.ah-gallery__more-btn:hover {
    background: var(--ah-light-blue);
    transform: translateY(-2px);
}

/* ==================================================
   CORPS DE LA FICHE
================================================== */

.ah-stay-main {
    position: relative;
    background: var(--ah-white);
}

.ah-stay-main__inner {
    width: min(1240px, calc(100% - 48px));
    margin: 0 auto;
    padding: 0 0 70px;
}

.ah-stay-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 370px;
    column-gap: 70px;
    align-items: start;
}

.ah-stay-content > * {
    grid-column: 1;
    min-width: 0;
}

/* ==================================================
   BLOC HÔTE
================================================== */

.ah-host-row {
    display: flex;
    align-items: center;
    gap: 16px;

    padding: 28px 0;
}

.ah-host-avatar {
    flex-shrink: 0;

    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: var(--ah-navy);

    color: var(--ah-white);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 1.3rem;
    font-weight: 800;
}

.ah-host-info__title {
    margin: 0 0 4px;
    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
}

.ah-host-info__subtitle {
    margin: 0;
    color: var(--ah-muted);
    font-size: 0.88rem;
}

.ah-divider {
    border: 0;
    border-top: 1px solid var(--ah-border);
    margin: 0 0 28px;
}

/* ==================================================
   DESCRIPTION ÉDITORIALE
================================================== */

.ah-stay-content > h2,
.ah-stay-content > h3 {
    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
}

.ah-stay-content > h2 {
    position: relative;
    margin: 0 0 22px;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.8px;
}

.ah-stay-content > h3 {
    margin: 32px 0 14px;
    font-size: 1.1rem;
    font-weight: 800;
}

.ah-stay-content > p {
    max-width: 760px;
    margin: 0 0 18px;

    color: var(--ah-muted);
    font-size: 1rem;
    line-height: 1.85;
}

.ah-stay-content > ul {
    max-width: 760px;
    margin: 20px 0 40px;
    padding: 0;
    list-style: none;
}

.ah-stay-content > ul li {
    position: relative;
    margin-bottom: 12px;
    padding-left: 25px;
    color: var(--ah-muted);
    line-height: 1.7;
}

.ah-stay-content > ul li::before {
    content: "✦";
    position: absolute;
    top: 1px;
    left: 0;
    color: var(--ah-gold);
    font-size: 0.8rem;
}

/* ==================================================
   GALERIE INJECTÉE PAR LE PLUGIN
   -> masquée : remplacée par la galerie Airbnb en haut de page
================================================== */

.ah-stay-content .mphb-room-type-gallery-wrapper,
.ah-stay-content .mphb-room-type-images {
    display: none;
}

/* ==================================================
   TITRES MOTOPRESS
================================================== */

.ah-stay-content .mphb-room-type-attributes-title,
.ah-stay-content .mphb-availability-calendar-title,
.ah-stay-content .mphb-reservation-form-title {
    position: relative;
    margin: 40px 0 22px;
    padding-top: 15px;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: clamp(1.4rem, 2vw, 1.8rem);
    font-weight: 800;
    letter-spacing: -0.6px;
}

.ah-stay-content .mphb-room-type-attributes-title::before,
.ah-stay-content .mphb-availability-calendar-title::before,
.ah-stay-content .mphb-reservation-form-title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 45px;
    height: 3px;
    border-radius: 10px;
    background: var(--ah-gold);
}

/* ==================================================
   ÉQUIPEMENTS — liste à icônes, façon Airbnb
================================================== */

.ah-stay-content .mphb-single-room-type-attributes,
.ah-stay-content .mphb-room-type-attributes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    align-items: stretch;
    gap: 16px 28px;

    margin: 0 0 45px;
    padding: 0;
    border: 0;
    background: transparent;
}

.ah-stay-content .mphb-single-room-type-attributes > *,
.ah-stay-content .mphb-room-type-attributes > * {
    position: relative;
    height: 100%;
    min-height: 60px;

    /* FIX : display:flex + align-items:center écrasait le texte
       quand la valeur (ex. liste d'équipements) faisait plusieurs
       lignes — le label se retrouvait collé au milieu du bloc.
       On repasse en flux de bloc normal, avec l'icône positionnée
       en absolu en haut à gauche. */
    display: block;

    margin: 0;
    padding: 16px 16px 16px 44px;

    border: 0;
    border-bottom: 1px solid var(--ah-border);
    border-radius: 0;

    color: var(--ah-muted);
    background: transparent;

    font-size: 0.95rem;
    line-height: 1.6;
}

.ah-stay-content .mphb-single-room-type-attributes > *::before,
.ah-stay-content .mphb-room-type-attributes > *::before {
    content: "●";
    position: absolute;
    top: 18px;
    left: 14px;

    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--ah-blue);
    font-size: 0.55rem;

    background: var(--ah-light-blue);
    border-radius: 50%;
}

.ah-stay-content .mphb-single-room-type-attributes strong,
.ah-stay-content .mphb-room-type-attributes strong {
    /* FIX : le label ("Équipements :") passe sur sa propre ligne,
       au lieu de rester collé en inline devant une valeur qui peut
       s'étaler sur plusieurs lignes. */
    display: block;
    margin: 0 0 4px;
    color: var(--ah-navy);
}

/* Espace entre le label en gras et la valeur collée juste après */
.ah-stay-content .mphb-single-room-type-attributes strong::after,
.ah-stay-content .mphb-room-type-attributes strong::after {
    content: " ";
}

/* ==================================================
   PRIX — COLONNE DE DROITE (carte sticky)
================================================== */

.ah-stay-content .mphb-regular-price,
.ah-stay-content .mphb-room-type-price,
.ah-stay-content .mphb-price-wrapper {
    grid-column: 2;
    grid-row: 1;

    position: sticky;
    top: 24px;

    margin: 0;
    padding: 22px 24px 4px;

    border: 1px solid var(--ah-border);
    border-radius: var(--ah-radius-lg) var(--ah-radius-lg) 0 0;
    border-bottom: 0;

    color: var(--ah-muted);
    background: var(--ah-white);
}

.ah-stay-content .mphb-price {
    display: inline-block;
    margin: 0 4px 0 0;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 1.8rem;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.ah-stay-content .mphb-price-period {
    color: var(--ah-muted);
    font-size: 0.85rem;
}

.ah-stay-content .mphb-regular-price strong {
    color: var(--ah-blue);
}

/* NOTE — DEVISE ($/€) : le symbole vient du réglage MotoPress
   (Réglages > Général > Devise), pas du CSS/HTML. À corriger côté
   plugin, pas dans ce fichier. */

/* ==================================================
   FORMULAIRE DE RÉSERVATION — carte sticky Airbnb
================================================== */

.ah-stay-content .mphb-booking-form,
.ah-stay-content .mphb-reservation-form {
    grid-column: 2;
    grid-row: 2 / span 30;

    position: sticky;
    top: calc(24px + 90px); /* sous le bloc prix */

    margin: 0;
    padding: 24px;

    border: 1px solid var(--ah-border);
    border-top: 0;
    border-radius: 0 0 var(--ah-radius-lg) var(--ah-radius-lg);

    background: var(--ah-white);
    box-shadow: 0 18px 50px rgba(27, 58, 92, 0.1);
}

.ah-stay-content .mphb-booking-form p,
.ah-stay-content .mphb-reservation-form p {
    margin: 0 0 16px;
}

/* ==================================================
   BARRES SEGMENTÉES FAÇON AIRBNB
   Le formulaire MotoPress génère une suite de champs dans cet
   ordre : arrivée, départ, adultes, enfants, (bouton...).
   On les regroupe visuellement par paires côte à côte au lieu
   d'un empilement vertical classique.
================================================== */

.ah-stay-content .mphb-booking-form,
.ah-stay-content .mphb-reservation-form {
    display: flex;
    flex-wrap: wrap;
}

/* Paire 1 : dates (arrivée / départ) — paire 2 : voyageurs (adultes / enfants) */
.ah-stay-content .mphb-booking-form p:nth-of-type(1),
.ah-stay-content .mphb-booking-form p:nth-of-type(2),
.ah-stay-content .mphb-booking-form p:nth-of-type(3),
.ah-stay-content .mphb-booking-form p:nth-of-type(4),
.ah-stay-content .mphb-reservation-form p:nth-of-type(1),
.ah-stay-content .mphb-reservation-form p:nth-of-type(2),
.ah-stay-content .mphb-reservation-form p:nth-of-type(3),
.ah-stay-content .mphb-reservation-form p:nth-of-type(4) {
    display: flex;
    flex-direction: column;
    justify-content: center;

    width: 50%;
    margin: 0;
    padding: 12px 14px;

    border: 1px solid var(--ah-border);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

/* coins arrondis uniquement sur les bords extérieurs de chaque paire */
.ah-stay-content .mphb-booking-form p:nth-of-type(1),
.ah-stay-content .mphb-reservation-form p:nth-of-type(1) {
    border-radius: var(--ah-radius-sm) 0 0 var(--ah-radius-sm);
    border-right: 0;
}

.ah-stay-content .mphb-booking-form p:nth-of-type(2),
.ah-stay-content .mphb-reservation-form p:nth-of-type(2) {
    border-radius: 0 var(--ah-radius-sm) var(--ah-radius-sm) 0;
    margin-bottom: 12px;
}

.ah-stay-content .mphb-booking-form p:nth-of-type(3),
.ah-stay-content .mphb-reservation-form p:nth-of-type(3) {
    border-radius: var(--ah-radius-sm) 0 0 var(--ah-radius-sm);
    border-right: 0;
}

.ah-stay-content .mphb-booking-form p:nth-of-type(4),
.ah-stay-content .mphb-reservation-form p:nth-of-type(4) {
    border-radius: 0 var(--ah-radius-sm) var(--ah-radius-sm) 0;
}

.ah-stay-content .mphb-booking-form p:nth-of-type(1):focus-within,
.ah-stay-content .mphb-booking-form p:nth-of-type(2):focus-within,
.ah-stay-content .mphb-booking-form p:nth-of-type(3):focus-within,
.ah-stay-content .mphb-booking-form p:nth-of-type(4):focus-within,
.ah-stay-content .mphb-reservation-form p:nth-of-type(1):focus-within,
.ah-stay-content .mphb-reservation-form p:nth-of-type(2):focus-within,
.ah-stay-content .mphb-reservation-form p:nth-of-type(3):focus-within,
.ah-stay-content .mphb-reservation-form p:nth-of-type(4):focus-within {
    border-color: var(--ah-blue);
    box-shadow: 0 0 0 2px rgba(46, 109, 164, 0.14);
    position: relative;
    z-index: 1;
}

/* Icônes devant les labels : calendrier pour les dates, personnage
   pour les voyageurs — unicode uniquement, pas d'image externe */
.ah-stay-content .mphb-booking-form p:nth-of-type(1) label::before,
.ah-stay-content .mphb-booking-form p:nth-of-type(2) label::before,
.ah-stay-content .mphb-reservation-form p:nth-of-type(1) label::before,
.ah-stay-content .mphb-reservation-form p:nth-of-type(2) label::before {
    content: "📅 ";
}

.ah-stay-content .mphb-booking-form p:nth-of-type(3) label::before,
.ah-stay-content .mphb-booking-form p:nth-of-type(4) label::before,
.ah-stay-content .mphb-reservation-form p:nth-of-type(3) label::before,
.ah-stay-content .mphb-reservation-form p:nth-of-type(4) label::before {
    content: "👤 ";
}

/* Champs eux-mêmes : on retire la bordure individuelle puisque
   c'est le conteneur (le <p>) qui la porte désormais */
.ah-stay-content .mphb-booking-form p:nth-of-type(-n + 4) input,
.ah-stay-content .mphb-booking-form p:nth-of-type(-n + 4) select,
.ah-stay-content .mphb-reservation-form p:nth-of-type(-n + 4) input,
.ah-stay-content .mphb-reservation-form p:nth-of-type(-n + 4) select {
    min-height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    font-weight: 700;
}

.ah-stay-content .mphb-booking-form p:nth-of-type(-n + 4) label,
.ah-stay-content .mphb-reservation-form p:nth-of-type(-n + 4) label {
    margin-bottom: 2px;
}

/* Tout ce qui vient après les 4 champs (bouton, message, tip)
   repasse en pleine largeur, sous les 2 barres segmentées */
.ah-stay-content .mphb-booking-form p:nth-of-type(n + 5),
.ah-stay-content .mphb-reservation-form p:nth-of-type(n + 5) {
    width: 100%;
    margin: 16px 0 0;
}

.ah-stay-content .mphb-booking-form label,
.ah-stay-content .mphb-reservation-form label {
    display: block;
    margin-bottom: 6px;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.ah-stay-content .mphb-booking-form input,
.ah-stay-content .mphb-booking-form select,
.ah-stay-content .mphb-reservation-form input,
.ah-stay-content .mphb-reservation-form select {
    width: 100%;
    min-height: 48px;

    padding: 0 14px;

    border: 1px solid var(--ah-border);
    border-radius: var(--ah-radius-sm);
    outline: none;

    color: var(--ah-text);
    background: #f9fbfc;
    font: inherit;
}

.ah-stay-content .mphb-booking-form input:focus,
.ah-stay-content .mphb-booking-form select:focus,
.ah-stay-content .mphb-reservation-form input:focus,
.ah-stay-content .mphb-reservation-form select:focus {
    border-color: var(--ah-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.ah-stay-content .mphb-booking-form input[type="submit"],
.ah-stay-content .mphb-booking-form button,
.ah-stay-content .mphb-reservation-form input[type="submit"],
.ah-stay-content .mphb-reservation-form button,
.ah-stay-content .mphb-reserve-btn {
    width: 100%;
    min-height: 52px;

    margin-top: 6px;
    padding: 0 20px;

    border: 0;
    border-radius: 999px;

    color: var(--ah-white);
    background: linear-gradient(135deg, var(--ah-blue), var(--ah-navy));

    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 800;
    cursor: pointer;

    box-shadow: 0 12px 25px rgba(46, 109, 164, 0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ah-stay-content .mphb-booking-form input[type="submit"]:hover,
.ah-stay-content .mphb-booking-form button:hover,
.ah-stay-content .mphb-reservation-form input[type="submit"]:hover,
.ah-stay-content .mphb-reservation-form button:hover,
.ah-stay-content .mphb-reserve-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(46, 109, 164, 0.32);
}

.ah-stay-content .mphb-required-fields-tip {
    margin-top: 12px;
    color: var(--ah-muted);
    font-size: 0.76rem;
    text-align: center;
}

/* ==================================================
   CALENDRIER
================================================== */

.ah-stay-content .mphb-calendar {
    width: 100%;
    max-width: 760px;
    margin: 0 0 45px;
    overflow: hidden;

    border: 1px solid var(--ah-border);
    border-radius: var(--ah-radius-md);
    background: var(--ah-white);
    box-shadow: 0 10px 30px rgba(27, 58, 92, 0.06);
}

.ah-stay-content .datepick {
    width: 100% !important;
    border: 0;
}

.ah-stay-content .datepick-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 14px 18px;
    background: var(--ah-navy);
}

.ah-stay-content .datepick-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 32px;
    min-height: 32px;
    padding: 0 10px;

    border-radius: 999px;

    color: var(--ah-white);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;

    transition: background-color 0.15s ease;
}

.ah-stay-content .datepick-nav a:hover {
    background: rgba(255, 255, 255, 0.16);
}

.ah-stay-content .datepick-month-header {
    padding: 12px 9px;

    color: var(--ah-white);
    background: var(--ah-blue);

    font-family: "Raleway", Arial, sans-serif;
    font-weight: 800;
    letter-spacing: 0.3px;
}

.ah-stay-content .datepick-month {
    width: 50%;
    border: 0;
    padding: 10px 12px 16px;
}

.ah-stay-content .datepick-month table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 3px;
}

.ah-stay-content .datepick-month th {
    padding: 8px 3px;

    color: var(--ah-navy);
    background: var(--ah-light-blue);

    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.ah-stay-content .datepick-month td {
    text-align: center;
}

.ah-stay-content .datepick-month td a,
.ah-stay-content .datepick-month td span {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 36px;
    min-height: 36px;
    margin: 0 auto;
    padding: 0;

    border-radius: 10px;

    font-size: 0.88rem;
    font-weight: 600;

    transition: background-color 0.15s ease, transform 0.15s ease;
}

/* Jour disponible : cliquable, feedback visuel au survol */
.ah-stay-content .mphb-available-date {
    color: var(--ah-navy);
    background: rgba(244, 208, 111, 0.32);
    cursor: pointer;
}

.ah-stay-content .mphb-available-date:hover {
    background: var(--ah-gold);
    transform: translateY(-1px);
}

/* Jour indisponible : clairement neutralisé, pas de survol trompeur */
.ah-stay-content .mphb-unavailable-date {
    color: #c3c9ce;
    background: #f2f4f5;
    cursor: not-allowed;
}

/* Aujourd'hui, si le plugin l'indique avec cette classe */
.ah-stay-content .datepick-today {
    box-shadow: inset 0 0 0 2px var(--ah-blue);
}

/* Date sélectionnée par l'utilisateur */
.ah-stay-content .datepick-select {
    color: var(--ah-white) !important;
    background: var(--ah-navy) !important;
}

.ah-stay-content .mphb-errors-wrapper,
.ah-stay-content .mphb-error,
.ah-stay-content .mphb-message {
    padding: 14px 16px;
    border-radius: var(--ah-radius-sm);
}

.ah-stay-content .mphb-error,
.ah-stay-content .mphb-errors-wrapper {
    color: #862e2e;
    background: #fff1f1;
}

.ah-stay-content .mphb-message {
    color: #245b43;
    background: #edf8f2;
}

/* ==================================================
   SECTION AVIS
================================================== */

.ah-reviews {
    grid-column: 1;
    margin: 20px 0 55px;
    padding-top: 45px;
    border-top: 1px solid var(--ah-border);
}

.ah-reviews__title {
    display: flex;
    align-items: center;
    gap: 8px;

    margin: 0 0 28px;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: clamp(1.4rem, 2.2vw, 1.9rem);
    font-weight: 800;
}

.ah-reviews__title span[aria-hidden] {
    color: var(--ah-gold);
}

.ah-reviews__summary {
    display: flex;
    flex-direction: column;
    gap: 8px;

    max-width: 420px;
    margin: 0 0 40px;
}

.ah-rating-bar {
    display: grid;
    grid-template-columns: 46px 1fr;
    align-items: center;
    gap: 12px;
}

.ah-rating-bar__label {
    color: var(--ah-muted);
    font-size: 0.82rem;
    font-weight: 700;
}

.ah-rating-bar__track {
    height: 6px;
    border-radius: 999px;
    background: var(--ah-border);
    overflow: hidden;
}

.ah-rating-bar__fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--ah-gold);
}

.ah-reviews__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 40px;
}

.ah-review-card--hidden {
    display: none;
}

.ah-review-card__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}

.ah-review-avatar {
    flex-shrink: 0;

    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: var(--ah-light-blue);

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-weight: 800;
}

.ah-review-name {
    margin: 0;
    color: var(--ah-navy);
    font-weight: 800;
    font-size: 0.95rem;
}

.ah-review-date {
    margin: 0;
    color: var(--ah-muted);
    font-size: 0.78rem;
}

.ah-review-stars {
    margin-bottom: 8px;
    color: var(--ah-gold);
    font-size: 0.85rem;
    letter-spacing: 2px;
}

.ah-review-text {
    margin: 0;
    color: var(--ah-muted);
    font-size: 0.92rem;
    line-height: 1.65;
}

.ah-reviews__toggle {
    margin-top: 32px;
    padding: 12px 24px;

    border: 1px solid var(--ah-navy);
    border-radius: 999px;
    background: var(--ah-white);
    cursor: pointer;

    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 800;

    transition: background-color 0.2s ease, transform 0.2s ease;
}

.ah-reviews__toggle:hover {
    background: var(--ah-light-blue);
    transform: translateY(-2px);
}

/* ==================================================
   BARRE DE RÉSERVATION FIXE — MOBILE UNIQUEMENT
================================================== */

.ah-mobile-cta {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;

    align-items: center;
    justify-content: space-between;
    gap: 16px;

    padding: 14px 20px;
    padding-bottom: max(14px, env(safe-area-inset-bottom));

    background: var(--ah-white);
    border-top: 1px solid var(--ah-border);
    box-shadow: 0 -8px 24px rgba(27, 58, 92, 0.12);
}

.ah-mobile-cta__price {
    color: var(--ah-navy);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ah-mobile-cta__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 26px;

    border-radius: 999px;
    background: linear-gradient(135deg, var(--ah-blue), var(--ah-navy));

    color: var(--ah-white);
    font-family: "Raleway", Arial, sans-serif;
    font-size: 0.85rem;
    font-weight: 800;
    text-decoration: none;

    box-shadow: 0 10px 22px rgba(46, 109, 164, 0.28);
}

/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 980px) {
    .ah-gallery {
        grid-template-columns: 1fr;
    }

    .ah-gallery__main img {
        min-height: 260px;
    }

    .ah-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ah-stay-content {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .ah-stay-content > *,
    .ah-stay-content .mphb-regular-price,
    .ah-stay-content .mphb-room-type-price,
    .ah-stay-content .mphb-price-wrapper,
    .ah-stay-content .mphb-booking-form,
    .ah-stay-content .mphb-reservation-form,
    .ah-reviews {
        grid-column: 1;
        grid-row: auto;
    }

    .ah-stay-content .mphb-regular-price,
    .ah-stay-content .mphb-room-type-price,
    .ah-stay-content .mphb-price-wrapper {
        position: static;
        max-width: 760px;
        margin: 24px 0 0;
        border-radius: var(--ah-radius-lg) var(--ah-radius-lg) 0 0;
    }

    .ah-stay-content .mphb-booking-form,
    .ah-stay-content .mphb-reservation-form {
        position: static;
        max-width: 760px;
    }

    /* La carte prix + résa reste utilisable sans être sticky ;
       la barre fixe en bas prend le relais pour l'action rapide. */
    .ah-mobile-cta {
        display: flex;
    }
}

@media (max-width: 700px) {
    .ah-listing__title {
        font-size: 2.1rem;
        letter-spacing: -1px;
    }

    .ah-listing__topbar,
    .ah-listing__header,
    .ah-gallery,
    .ah-stay-main__inner {
        width: calc(100% - 30px);
    }

    .ah-gallery {
        border-radius: var(--ah-radius-md);
    }

    .ah-gallery__grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(2, 1fr);
    }

    .ah-gallery__item:nth-child(n + 3) {
        display: none; /* sur mobile : 1 grande + 2 petites suffisent */
    }

    .ah-stay-content .mphb-single-room-type-attributes,
    .ah-stay-content .mphb-room-type-attributes {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .ah-stay-content .mphb-single-room-type-attributes > *,
    .ah-stay-content .mphb-room-type-attributes > * {
        height: auto;
    }

    .ah-reviews__grid {
        grid-template-columns: 1fr;
    }

    .ah-stay-content .datepick-month {
        width: 100%;
    }

    /* Sur mobile, les barres dates/voyageurs passent en 1 colonne
       (plus lisible que 2 segments écrasés côte à côte) */
    .ah-stay-content .mphb-booking-form p:nth-of-type(-n + 4),
    .ah-stay-content .mphb-reservation-form p:nth-of-type(-n + 4) {
        width: 100%;
        border-radius: var(--ah-radius-sm) !important;
        border-right: 1px solid var(--ah-border) !important;
        margin-bottom: 10px !important;
    }

    .ah-stay-content .datepick-month td a,
    .ah-stay-content .datepick-month td span {
        min-width: 32px;
        min-height: 32px;
        font-size: 0.82rem;
    }
}

@media (max-width: 480px) {
    .ah-listing__title {
        font-size: 1.7rem;
    }

    .ah-host-row {
        gap: 12px;
        padding: 20px 0;
    }

    .ah-host-avatar {
        width: 46px;
        height: 46px;
        font-size: 1.1rem;
    }

    .ah-stay-content .mphb-booking-form,
    .ah-stay-content .mphb-reservation-form,
    .ah-stay-content .mphb-regular-price,
    .ah-stay-content .mphb-room-type-price,
    .ah-stay-content .mphb-price-wrapper {
        padding: 18px;
        border-radius: var(--ah-radius-md);
    }

    .ah-mobile-cta__btn {
        padding: 11px 20px;
    }
}
/* ==================================================
   PAGE LISTE DES HÉBERGEMENTS — shortcode [mphb_rooms]
   Carte "voyage" épurée : photo + prix en pastille + bouton
   rond GO qui mord sur la photo + titre + accroche tronquée.
   Nos couleurs (navy/bleu), nos vraies infos.
   Classes réelles confirmées via DevTools.
================================================== */

/* ---- Conteneur : grille centrée, cartes toutes identiques ---- */
.mphb-room-types {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    align-items: start; /* chaque carte garde sa propre hauteur naturelle,
                            pas d'étirement de toute la ligne si une carte
                            a un contenu inhabituel (ex. image en trop) */
    gap: 36px 32px;

    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px 60px;
}

/* ---- Carte ----
   display:grid avec le premier "rang" réservé à la photo : la
   vignette, le prix et le bouton GO partagent tous grid-row:1,
   donc ils se superposent exactement à la hauteur de la photo,
   peu importe la longueur du titre/texte en dessous (fini le
   position:absolute calé sur toute la carte qui décalait tout). */
.mphb-room-type {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 240px auto; /* hauteur du 1er rang fixée même
        sans photo, sinon le prix/le bouton GO (calés dessus) n'ont
        plus rien pour les ancrer et flottent hors de la carte */

    margin: 0;
    background: transparent;
    color: var(--color-text, #26394b);
    font-family: var(--font-body, "Lato", Arial, sans-serif);
}

/* ---- Pas de photo : vignette de secours (dégradé + pictogramme),
   même gabarit que la vraie photo pour que le prix et le bouton GO
   restent calés au même endroit ---- */
.mphb-room-type:not(:has(.mphb-loop-room-thumbnail))::before {
    content: "🏕";
    grid-row: 1;
    grid-column: 1;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 0 16px;

    border-radius: 24px;
    background: linear-gradient(135deg, var(--color-light-blue, #f0f4f8), var(--color-surface, #fafafa));
    box-shadow: 0 10px 26px rgba(27, 58, 92, 0.1);

    font-size: 3rem;
    filter: grayscale(0.3);
    opacity: 0.55;
}

/* ---- Une seule photo par carte, même si l'hébergement a une
   galerie complète (elle, réservée à la fiche détaillée) ----
   Version élargie : attrape aussi les images insérées via un
   bloc Gutenberg (qui a sa propre classe, ex. "wp-block-image"),
   pas seulement un <p> sans classe. On exclut explicitement les
   éléments qu'on garde volontairement. */
.mphb-room-type .mphb-loop-room-thumbnail img ~ img {
    display: none;
}

.mphb-room-type > *:has(img):not(.mphb-loop-room-thumbnail) {
    display: none;
}

/* ---- Vignette : carrée, coins arrondis, même taille partout ---- */
.mphb-room-type .mphb-loop-room-thumbnail {
    grid-row: 1;
    grid-column: 1;

    display: block;

    margin: 0 0 16px;
    line-height: 0;

    border-radius: 24px;
    overflow: hidden;

    box-shadow: 0 10px 26px rgba(27, 58, 92, 0.14);
    transition: box-shadow 0.25s ease;
}

.mphb-room-type:hover .mphb-loop-room-thumbnail {
    box-shadow: 0 16px 36px rgba(27, 58, 92, 0.22);
}

.mphb-room-type .mphb-loop-room-thumbnail img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.mphb-room-type:hover .mphb-loop-room-thumbnail img {
    transform: scale(1.05);
}

/* ---- Prix : pastille blanche flottante en haut à droite de la
   photo (comme "59€" sur le modèle) — superposée à la vignette
   via la grille (grid-row/column identiques), donc toujours
   calée sur la photo peu importe la hauteur du texte en dessous. */
.mphb-room-type .mphb-room-type-price,
.mphb-room-type .mphb-regular-price,
.mphb-room-type .mphb-price-wrapper {
    grid-row: 1;
    grid-column: 1;
    align-self: start;
    justify-self: end;
    z-index: 2;

    margin: 14px 14px 0 0;
    padding: 8px 16px;
    border-radius: 999px;

    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.mphb-room-type .mphb-room-type-price strong,
.mphb-room-type .mphb-regular-price strong,
.mphb-room-type .mphb-price-period {
    display: none; /* on cache "Prix à partir de :" et "par nuit" */
}

.mphb-room-type .mphb-price {
    margin: 0;

    font-family: var(--font-heading, "Raleway", Arial, sans-serif);
    font-size: 1rem;
    font-weight: 800;
    color: var(--color-navy, #1b3a5c);
}

/* ---- Bouton rond "GO" qui mord sur le coin de la photo ----
   Superposé à la vignette via la grille (même grid-row/column),
   donc toujours calé sur le coin bas-droit de LA PHOTO, pas de
   toute la carte. Réutilise le vrai lien "Voir les détails". */
.mphb-room-type .mphb-view-details-button-wrapper {
    grid-row: 1;
    grid-column: 1;
    align-self: end;
    justify-self: end;
    z-index: 3;

    margin: 0 16px -22px 0;
}

.mphb-room-type .mphb-view-details-button-wrapper a {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 5px solid var(--color-bg, #ffffff);

    background: var(--color-navy, #1b3a5c);
    box-shadow: 0 8px 20px rgba(27, 58, 92, 0.35);

    color: transparent; /* on masque "Voir les détails" ... */
    font-size: 0;
    text-decoration: none;

    transition: background-color 0.2s ease, transform 0.2s ease;
}

.mphb-room-type .mphb-view-details-button-wrapper a::after {
    content: "GO"; /* ... et on affiche "GO" à la place */

    color: #ffffff;
    font-family: var(--font-heading, "Raleway", Arial, sans-serif);
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.mphb-room-type .mphb-view-details-button-wrapper a:hover {
    background: var(--color-blue, #2e6da4);
    transform: scale(1.06);
}

/* ---- Le bouton "Réserver" séparé n'a plus lieu d'être dans ce
   format minimal : GO mène à la fiche complète, où se trouve le
   vrai formulaire de réservation fonctionnel ---- */
.mphb-room-type .mphb-to-book-btn-wrapper {
    display: none;
}

/* ---- Détails (Adultes / Équipements / Taille / Catégories) :
   pas dans ce format minimal, réservés à la fiche complète ---- */
.mphb-room-type .mphb-room-type-details-title,
.mphb-room-type .mphb-loop-room-type-attributes {
    display: none;
}

/* ---- Titre ---- */
.mphb-room-type .mphb-room-type-title {
    margin: 0 8px 6px 0;

    font-family: var(--font-heading, "Raleway", Arial, sans-serif);
    font-size: 1.3rem;
    font-weight: 800;
}

.mphb-room-type .mphb-room-type-title a {
    color: var(--color-navy, #1b3a5c);
    text-decoration: none;
}

.mphb-room-type .mphb-room-type-title a:hover {
    color: var(--color-blue, #2e6da4);
}

/* ---- Accroche : tronquée à 2 lignes, comme sur le modèle ---- */
.mphb-room-type > p:not([class]) {
    margin: 0;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

    color: var(--color-muted, #7f8c8d);
    font-size: 0.9rem;
    line-height: 1.5;
}

/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 720px) {
    .mphb-room-types {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 20px;
        padding: 0 20px 40px;
    }

    .mphb-room-type .mphb-loop-room-thumbnail {
        border-radius: 18px;
    }

    .mphb-room-type .mphb-view-details-button-wrapper a {
        width: 48px;
        height: 48px;
        border-width: 4px;
    }

    .mphb-room-type .mphb-room-type-title {
        font-size: 1.05rem;
    }
}

@media (max-width: 460px) {
    .mphb-room-types {
        grid-template-columns: 1fr;
    }
}
/* ==================================================
   PAGE RÉSULTATS DE RECHERCHE — [mphb_search_results]
   AtypikHouse — cartes premium + uniquement bouton GO

   Remplace entièrement l'ancien bloc CSS consacré aux résultats
   de recherche par celui-ci.
================================================== */

/* La page de résultats utilise toute la largeur disponible. */
.site-main__content:has(.mphb_sc_search_results-wrapper) {
    max-width: none;
}

.mphb_sc_search_results-wrapper {
    position: relative;

    width: min(1200px, calc(100vw - 48px));
    margin: 0 0 70px 50%;
    transform: translateX(-50%);

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 28px;

    color: var(--color-text, #2c3e50);
    font-family: var(--font-body, "Lato", Arial, sans-serif);
}

/* Titres et messages sur toute la largeur. */
.mphb_sc_search_results-wrapper > :not(.mphb-room-type) {
    grid-column: 1 / -1;
}

/* Conteneur de cartes éventuellement ajouté par MotoPress. */
.mphb_sc_search_results-wrapper .mphb-room-types {
    grid-column: 1 / -1;

    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;

    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 34px 28px;
}

/* ==================================================
   EN-TÊTE
================================================== */

.mphb_sc_search_results-title,
.mphb_sc_search_results-wrapper > h1,
.mphb_sc_search_results-wrapper > h2 {
    position: relative;

    margin: 0 0 10px;
    padding-top: 18px;

    color: var(--color-navy, #1b3a5c);
    font-family: var(--font-heading, "Raleway", Arial, sans-serif);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -1.5px;
    text-align: center;
}

.mphb_sc_search_results-title::before,
.mphb_sc_search_results-wrapper > h1::before,
.mphb_sc_search_results-wrapper > h2::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;

    width: 54px;
    height: 4px;
    border-radius: 999px;

    background: var(--color-gold, #f4d06f);
    transform: translateX(-50%);
}

/* Informations de recherche : dates et voyageurs. */
.mphb_sc_search_results-info {
    margin: 0 0 12px;
    padding: 16px 20px;

    border: 1px solid var(--color-border, #e8ecef);
    border-radius: 16px;
    background: var(--color-light-blue, #f0f4f8);

    color: var(--color-navy, #1b3a5c);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
}

/* ==================================================
   CARTES DES HÉBERGEMENTS
================================================== */

.mphb_sc_search_results-wrapper .mphb-room-type {
    min-width: 0;
    padding: 14px 14px 20px;

    border: 1px solid var(--color-border, #e8ecef);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: var(
        --shadow-soft,
        0 10px 30px rgba(27, 58, 92, 0.05)
    );

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.mphb_sc_search_results-wrapper .mphb-room-type:hover {
    transform: translateY(-6px);
    border-color: rgba(46, 109, 164, 0.24);
    box-shadow: var(
        --shadow-hover,
        0 15px 40px rgba(27, 58, 92, 0.12)
    );
}

.mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail {
    margin-bottom: 18px;
}

.mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail img {
    height: 250px;
}

.mphb_sc_search_results-wrapper .mphb-room-type-title {
    margin-left: 4px;
    padding-right: 58px;
}

.mphb_sc_search_results-wrapper .mphb-room-type > p:not([class]) {
    margin-right: 4px;
    margin-left: 4px;
}

/* ==================================================
   MASQUER LE RÉCAPITULATIF, LE TOTAL ET « RÉSERVER »
================================================== */

/* Bloc global généré par MotoPress : liste, total et réservation. */
.mphb_sc_search_results-wrapper .mphb-search-recommendations-wrapper,
.mphb_sc_search_results-wrapper .mphb-recommendation,
.mphb_sc_search_results-wrapper .mphb-reservation-cart,
.mphb_sc_search_results-wrapper .mphb-reservation-cart-wrapper,
.mphb_sc_search_results-wrapper .mphb-reservation-details,
.mphb_sc_search_results-wrapper .mphb-cart-total-price,
.mphb_sc_search_results-wrapper .mphb-total-price,
.mphb_sc_search_results-wrapper .mphb-confirm-reservation,
.mphb_sc_search_results-wrapper .mphb-recommendation-reserve-button {
    display: none !important;
}

/* Contrôles et boutons « Réserver » présents dans chaque carte. */
.mphb_sc_search_results-wrapper .mphb-reserve-room-section,
.mphb_sc_search_results-wrapper .mphb-rooms-quantity-wrapper,
.mphb_sc_search_results-wrapper .mphb-to-book-btn-wrapper,
.mphb_sc_search_results-wrapper .mphb-book-button,
.mphb_sc_search_results-wrapper .mphb-book-room-button,
.mphb_sc_search_results-wrapper .mphb-reserve-btn,
.mphb_sc_search_results-wrapper button.mphb-button,
.mphb_sc_search_results-wrapper input.mphb-button[type="submit"] {
    display: none !important;
}

/* ==================================================
   CONSERVER UNIQUEMENT LE BOUTON ROND « GO »
================================================== */

.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.mphb_sc_search_results-wrapper .mphb-view-details-button-wrapper a {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ==================================================
   ÉTATS VIDES ET MESSAGES
================================================== */

.mphb_sc_search_results-wrapper .mphb-error,
.mphb_sc_search_results-wrapper .mphb-errors-wrapper,
.mphb_sc_search_results-wrapper .mphb-message,
.mphb_sc_search_results-wrapper .mphb_sc_search_results-empty {
    padding: 22px 24px;
    border-radius: 18px;
    text-align: center;
}

.mphb_sc_search_results-wrapper .mphb-error,
.mphb_sc_search_results-wrapper .mphb-errors-wrapper,
.mphb_sc_search_results-wrapper .mphb_sc_search_results-empty {
    color: #862e2e;
    background: #fff1f1;
    border: 1px solid #f0caca;
}

.mphb_sc_search_results-wrapper .mphb-message {
    color: #245b43;
    background: #edf8f2;
    border: 1px solid #cbe7d8;
}

/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 980px) {
    .mphb_sc_search_results-wrapper,
    .mphb_sc_search_results-wrapper .mphb-room-types {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .mphb_sc_search_results-wrapper {
        width: calc(100vw - 30px);
        margin-bottom: 45px;
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .mphb_sc_search_results-wrapper .mphb-room-types {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .mphb_sc_search_results-wrapper .mphb-room-type {
        padding: 11px 11px 18px;
        border-radius: 22px;
    }

    .mphb_sc_search_results-wrapper .mphb-loop-room-thumbnail img {
        height: 230px;
    }
}
/* ==================================================
   PAGE MON COMPTE — habillage du vrai [mphb_account]
   .mphb_sc_account > nav.mphb-account-menu + .mphb-account-content
   S'applique aussi aux sous-pages auto-créées par MotoPress
   (mon-compte/dashboard, /bookings, /account-details).
================================================== */

.mphb_sc_account {
    max-width: 900px;
    margin: 40px auto 0;
    padding: 0 24px;
    font-family: var(--font-body);
}

/* ---- Menu du compte : pilule de tabs, cohérente avec le reste du site ---- */

.mphb-account-menu {
    display: block !important;
    float: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 24px;
    padding: 6px;

    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
}

.mphb-account-menu ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mphb-account-menu li {
    margin: 0;
}

.mphb-account-menu a {
    display: block;
    padding: 10px 16px;

    border-radius: 999px;
    text-align: center;

    color: var(--color-muted);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;

    transition: color 0.15s ease, background-color 0.15s ease;
}

.mphb-account-menu a:hover {
    color: var(--color-navy);
    background: rgba(27, 58, 92, 0.06);
}

/* Onglet actif : MotoPress ajoute souvent une classe sur le <li>
   courant (ex. "current", "active") — cette règle générique attrape
   les variantes les plus courantes sans dépendre d'un seul nom */
.mphb-account-menu li.current a,
.mphb-account-menu li.active a,
.mphb-account-menu li[class*="current"] a {
    color: #ffffff;
    background: var(--color-navy);
}

/* Dernier onglet = Déconnexion : accent discret pour le distinguer */
.mphb-account-menu li:last-child a {
    color: #b3261e;
}

.mphb-account-menu li:last-child a:hover {
    background: rgba(179, 38, 30, 0.08);
}

/* ---- Contenu ---- */

.mphb-account-content {
    color: var(--color-text);
    font-size: 0.95rem;
    line-height: 1.7;
}

.mphb-account-content strong {
    color: var(--color-navy);
    font-weight: 800;
}

.mphb-account-content a {
    color: var(--color-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.mphb-account-content a:hover {
    color: var(--color-navy);
}

/* Le message générique "Bonjour X (pas X ? Déconnexion)..." de l'onglet
   Tableau de bord fait doublon avec la carte de profil (nom réel,
   stats, réservations) juste en dessous — on le masque. Il se
   reconnaît car c'est le seul onglet à sortir de simples <p> sans
   classe (Réservations = tableau, Compte = formulaire classé). */
.mphb-account-content > p:not([class]) {
    display: none;
}

.mphb-data-success,
.mphb-data-incorrect {
    margin-bottom: 20px;
    padding: 14px 18px;

    border-radius: 10px;
    font-size: 0.88rem;
    font-weight: 700;
}

.mphb-data-success {
    background: rgba(45, 106, 79, 0.1);
    color: #2d6a4f;
}

.mphb-data-incorrect {
    background: rgba(225, 6, 19, 0.08);
    color: #b3261e;
}

/* ---- Onglet "Réservations" : tableau natif MotoPress ---- */

.mphb-account-bookings {
    width: 100%;
    margin-bottom: 20px;
    border-collapse: collapse;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
}

.mphb-account-bookings thead {
    background: var(--color-navy);
}

.mphb-account-bookings th {
    padding: 14px 16px;
    text-align: left;

    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.mphb-account-bookings td {
    padding: 14px 16px;
    border-top: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: 0.88rem;
}

.mphb-account-bookings tbody tr:nth-child(even) {
    background: var(--color-surface);
}

.mphb-account-bookings .booking-status {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 10px;

    border-radius: 999px;
    background: var(--color-light-blue);

    color: var(--color-navy);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.mphb-account-bookings .booking-actions a {
    color: var(--color-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.mphb-pagination {
    margin-bottom: 20px;
}

.mphb-pagination .mphb-nav-links {
    display: flex;
    gap: 6px;
}

.mphb-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;

    border-radius: 8px;
    background: var(--color-surface);

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.mphb-pagination a.page-numbers:hover {
    background: var(--color-light-blue);
}

.mphb-pagination span.page-numbers {
    background: var(--color-navy);
    color: #ffffff;
}

/* ---- Onglet "Compte" : formulaire de détails MotoPress ---- */

.mphb-account-details-form {
    max-width: 640px;
}

.mphb-account-details,
.mphb-account-change-password {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 20px;
}

.mphb-account-details p,
.mphb-account-change-password p {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    margin-bottom: 18px;
}

.mphb-account-details label,
.mphb-account-change-password label {
    margin-bottom: 6px;

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.mphb-account-details abbr[title],
.mphb-account-change-password abbr[title] {
    margin-left: 4px;
    margin-bottom: 6px;
    color: var(--color-muted);
    text-decoration: none;
    cursor: help;
}

.mphb-account-details input,
.mphb-account-details select,
.mphb-account-change-password input {
    flex-basis: 100%;
}

.mphb-account-details input,
.mphb-account-details select,
.mphb-account-change-password input {
    width: 100%;
    min-height: 46px;
    padding: 0 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.mphb-account-details input:read-only {
    opacity: 0.65;
}

.mphb-account-details input:focus,
.mphb-account-details select:focus,
.mphb-account-change-password input:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.mphb-account-change-password {
    margin-top: 4px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}

.mphb-account-change-password > p:first-child {
    grid-column: 1 / -1;
}

.mphb-account-change-password strong {
    display: block;
    margin-bottom: 4px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
}

.mphb-account-details-form input[type="submit"] {
    min-height: 52px;
    margin-top: 8px;
    padding: 0 32px;

    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-blue), var(--color-navy));

    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 800;
    cursor: pointer;

    box-shadow: 0 12px 25px rgba(46, 109, 164, 0.25);
    transition: var(--transition-smooth);
}

.mphb-account-details-form input[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(46, 109, 164, 0.32);
}

/* ---- Formulaire de connexion natif (invités sur des vues protégées) ---- */

.mphb-login-form-wrap {
    max-width: 420px;
    margin-bottom: 24px;
    padding: 24px;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
}

.mphb-login-form-wrap label {
    display: block;
    margin: 0 0 6px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.mphb-login-form-wrap input[type="text"],
.mphb-login-form-wrap input[type="password"] {
    width: 100%;
    min-height: 46px;
    margin-bottom: 16px;
    padding: 0 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.mphb-login-form-wrap input[type="submit"] {
    min-height: 46px;
    padding: 0 24px;

    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-blue), var(--color-navy));

    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 800;
    cursor: pointer;
}

/* ==================================================
   RESPONSIVE
================================================== */

@media (max-width: 640px) {
    .mphb-account-menu a {
        padding: 10px 10px;
        font-size: 0.7rem;
    }

    .mphb-account-details,
    .mphb-account-change-password {
        grid-template-columns: 1fr;
    }

    .mphb-account-bookings,
    .mphb-account-bookings thead,
    .mphb-account-bookings tbody,
    .mphb-account-bookings th,
    .mphb-account-bookings td,
    .mphb-account-bookings tr {
        display: block;
    }

    .mphb-account-bookings thead tr {
        display: none;
    }

    .mphb-account-bookings tr {
        margin-bottom: 12px;
        border: 1px solid var(--color-border);
        border-radius: 12px;
        padding: 8px;
    }

    .mphb-account-bookings td {
        border-top: 0;
        padding: 6px 8px;
    }

    .mphb-account-bookings td::before {
        content: attr(data-title) ": ";
        color: var(--color-navy);
        font-weight: 800;
    }
}

/* ==================================================
   CHECKOUT — RÉSERVATION (page "Confirmation de réservation")
================================================== */

.mphb_sc_checkout-wrapper {
    max-width: 760px;
    margin: 50px auto 90px;
    padding: 0 24px;
}

.mphb_sc_checkout-wrapper h2 {
    margin-bottom: 24px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 800;
}

.mphb-checkout-section {
    margin-bottom: 24px;
    padding: 28px;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
}

.mphb-checkout-section h3,
.mphb-checkout-section h4 {
    margin-bottom: 18px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
}

#mphb-booking-details p {
    margin-bottom: 10px;
    color: var(--color-text);
    font-size: 0.95rem;
}

#mphb-booking-details strong {
    color: var(--color-navy);
}

.mphb-checkout-section label {
    display: block;
    margin-bottom: 6px;

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.mphb-checkout-section input:not([type="submit"]),
.mphb-checkout-section select,
.mphb-checkout-section textarea {
    width: 100%;
    min-height: 46px;
    margin-bottom: 16px;
    padding: 0 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.mphb-checkout-section textarea {
    min-height: 90px;
    padding: 12px 14px;
    resize: vertical;
}

.mphb-checkout-section input:focus,
.mphb-checkout-section select:focus,
.mphb-checkout-section textarea:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.mphb-price-breakdown {
    width: 100%;
    border-collapse: collapse;
}

.mphb-price-breakdown td {
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    font-size: 0.92rem;
}

.mphb-price-breakdown a {
    color: var(--color-text);
    text-decoration: none;
}

.mphb-price-breakdown .mphb-table-price-column {
    text-align: right;
    color: var(--color-navy);
    font-weight: 700;
}

.mphb-total-price {
    margin-top: 6px;
    padding-top: 16px;

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 800;
    text-align: right;
}

.mphb-errors-wrapper {
    margin-bottom: 16px;
    padding: 14px 16px;

    border-radius: 10px;
    background: rgba(225, 6, 19, 0.08);

    color: #b3261e;
    font-size: 0.88rem;
    font-weight: 700;
}

.mphb_sc_checkout-submit-wrapper input[type="submit"] {
    width: 100%;
    min-height: 54px;

    margin-top: 8px;
    padding: 0 20px;

    border: 0;
    border-radius: 999px;

    color: #ffffff;
    background: linear-gradient(135deg, var(--color-blue), var(--color-navy));

    font-family: var(--font-heading);
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.3px;
    cursor: pointer;

    box-shadow: 0 12px 25px rgba(46, 109, 164, 0.25);
    transition: var(--transition-smooth);
}

.mphb_sc_checkout-submit-wrapper input[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(46, 109, 164, 0.32);
}

.mphb-required-fields-tip {
    margin-bottom: 16px;
    color: var(--color-muted);
    font-size: 0.8rem;
}

@media (max-width: 600px) {
    .mphb_sc_checkout-wrapper {
        margin: 30px auto 70px;
    }

    .mphb-checkout-section {
        padding: 20px;
    }
}

/* ==================================================
   CONFIRMATION DE RÉSERVATION (page "Réservation reçue")
================================================== */

.mphb_sc_booking_confirmation {
    max-width: 760px;
    margin: 50px auto 90px;
    padding: 0 24px;
}

.mphb-payment-messages {
    margin-bottom: 24px;
    padding: 20px 24px;

    border-radius: 16px;
    background: var(--color-light-blue);

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
}

.mphb-booking-details-section {
    margin-bottom: 24px;
    padding: 28px;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
}

.mphb-booking-details-title {
    margin-bottom: 18px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    font-weight: 800;
}

.mphb-booking-details {
    display: flex;
    flex-wrap: wrap;
    gap: 20px 32px;

    list-style: none;
}

.mphb-booking-details li {
    min-width: 120px;
}

.mphb-booking-details .label {
    display: block;
    margin-bottom: 4px;

    color: var(--color-muted);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.mphb-booking-details .value {
    color: var(--color-navy);
    font-weight: 700;
}

.mphb-booking-details-section p {
    color: var(--color-text);
}

@media (max-width: 600px) {
    .mphb_sc_booking_confirmation {
        margin: 30px auto 70px;
    }

    .mphb-booking-details-section {
        padding: 20px;
    }
}

/* ==================================================
   ESPACE PROPRIÉTAIRE
================================================== */

.ah-owner-space {
    max-width: 1000px;
    margin: 50px auto 90px;
    padding: 0 24px;
}

.ah-owner-space h1 {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.9rem;
    font-weight: 800;
}

.ah-owner-space h2 {
    margin: 40px 0 20px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.2rem;
    font-weight: 800;
}

.ah-owner-space__gate {
    max-width: 560px;
    margin: 40px auto;
    padding: 40px;

    border: 1px solid var(--color-border);
    border-radius: 20px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
    text-align: center;
}

.ah-owner-space__gate p {
    margin: 16px 0 28px;
    color: var(--color-muted);
    line-height: 1.7;
}

.ah-owner-space__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 50px;
    padding: 0 28px;

    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-blue), var(--color-navy));

    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;

    box-shadow: 0 12px 25px rgba(46, 109, 164, 0.25);
    transition: var(--transition-smooth);
}

.ah-owner-space__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(46, 109, 164, 0.32);
}

.ah-owner-space__notice {
    margin-bottom: 24px;
    padding: 16px 20px;

    border-radius: 12px;
    background: var(--color-light-blue);

    color: var(--color-navy);
    font-weight: 700;
}

.ah-owner-space__header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.ah-owner-space__stats {
    display: flex;
    gap: 16px;
    margin-top: 24px;
}

.ah-owner-space__stat {
    flex: 1;
    padding: 20px;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-surface);
    text-align: center;
}

.ah-owner-space__stat-value {
    display: block;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 800;
}

.ah-owner-space__stat-label {
    display: block;
    margin-top: 4px;
    color: var(--color-muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ah-owner-space__empty {
    padding: 24px;
    border: 1px dashed var(--color-border);
    border-radius: 14px;
    color: var(--color-muted);
}

.ah-owner-space__listings {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}

.ah-owner-listing {
    overflow: hidden;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
}

.ah-owner-listing__img {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
}

.ah-owner-listing__img--empty {
    background: var(--color-light-blue);
}

.ah-owner-listing__body {
    padding: 18px;
}

.ah-owner-listing__title {
    margin-bottom: 8px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
}

.ah-owner-listing__status {
    display: inline-block;
    padding: 3px 10px;

    border-radius: 999px;
    background: var(--color-surface);

    color: var(--color-muted);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.ah-owner-listing__status--publish {
    background: rgba(45, 106, 79, 0.12);
    color: #2d6a4f;
}

.ah-owner-listing__actions {
    display: flex;
    gap: 14px;
    margin-top: 14px;
}

.ah-owner-listing__actions a {
    color: var(--color-blue);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ah-owner-space__bookings-wrapper {
    overflow-x: auto;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: var(--shadow-soft);
}

.ah-owner-space__bookings {
    width: 100%;
    border-collapse: collapse;
}

.ah-owner-space__bookings th,
.ah-owner-space__bookings td {
    padding: 14px 18px;
    text-align: left;
    white-space: nowrap;
}

.ah-owner-space__bookings thead {
    background: var(--color-navy);
}

.ah-owner-space__bookings th {
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.ah-owner-space__bookings tbody tr {
    border-top: 1px solid var(--color-border);
}

.ah-owner-space__bookings tbody tr:nth-child(even) {
    background: var(--color-surface);
}

.ah-owner-space__bookings td {
    color: var(--color-text);
    font-size: 0.88rem;
}

@media (max-width: 600px) {
    .ah-owner-space {
        margin: 30px auto 70px;
    }

    .ah-owner-space__gate {
        padding: 28px 22px;
    }

    .ah-owner-space__stats {
        flex-direction: column;
    }
}

/* ==================================================
   COMPTE — EN-TÊTE
================================================== */

.site-header__account {
    display: flex;
    align-items: center;
    gap: 18px;
}

.site-header__account-link {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.site-header__account-link:hover {
    color: var(--color-blue);
}

.site-header__account-link--muted {
    color: var(--color-muted);
    font-weight: 600;
}

.site-header__account-link--cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;
    padding: 0 20px;

    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-blue), var(--color-navy));

    color: #ffffff;
}

.site-header__account-link--cta:hover {
    color: #ffffff;
    opacity: 0.9;
}

@media (max-width: 900px) {
    .site-header__account {
        gap: 10px;
    }

    .site-header__account-link--cta {
        padding: 0 14px;
        min-height: 36px;
        font-size: 0.74rem;
    }
}

/* Bouton CTA en contour (variante secondaire) */
.ah-owner-space__cta--outline {
    background: transparent;
    border: 2px solid var(--color-navy);
    color: var(--color-navy);
    box-shadow: none;
}

.ah-owner-space__cta--outline:hover {
    background: var(--color-navy);
    color: #ffffff;
}

.ah-checkout-gate__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

/* ==================================================
   CONNEXION / INSCRIPTION
================================================== */

.ah-auth {
    max-width: 480px;
    margin: 60px auto 100px;
    padding: 0 24px;
}

.ah-auth__card {
    padding: 40px;

    border: 1px solid var(--color-border);
    border-radius: 20px;
    background: var(--color-bg);
    box-shadow: var(--shadow-soft);
}

.ah-auth__card h1 {
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 800;
    text-align: center;
}

.ah-auth__subtitle {
    margin: 10px 0 28px;
    color: var(--color-muted);
    text-align: center;
}

.ah-auth__error {
    margin-bottom: 20px;
    padding: 14px 16px;

    border-radius: 10px;
    background: rgba(225, 6, 19, 0.08);

    color: #b3261e;
    font-size: 0.88rem;
    font-weight: 700;
    text-align: center;
}

.ah-auth__form label {
    display: block;
    margin-bottom: 6px;

    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.ah-auth__form input {
    width: 100%;
    min-height: 46px;
    margin-bottom: 18px;
    padding: 0 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.ah-auth__form input:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.ah-auth__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.ah-auth__form button {
    width: 100%;
    border: 0;
    cursor: pointer;
    margin-top: 8px;
}

.ah-auth__switch {
    margin-top: 22px;
    color: var(--color-muted);
    font-size: 0.88rem;
    text-align: center;
}

.ah-auth__switch a {
    color: var(--color-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 600px) {
    .ah-auth {
        margin: 30px auto 70px;
    }

    .ah-auth__card {
        padding: 28px 22px;
    }

    .ah-auth__row {
        grid-template-columns: 1fr;
    }
}

/* ==================================================
   FORMULAIRE HÉBERGEMENT (propriétaire)
================================================== */

.ah-listing-form {
    max-width: 720px;
    margin-top: 24px;
}

.ah-listing-form textarea {
    width: 100%;
    min-height: 130px;
    margin-bottom: 18px;
    padding: 12px 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;
    resize: vertical;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.ah-listing-form textarea:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.ah-listing-form input[type="file"] {
    margin-bottom: 18px;
}

.ah-listing-form__current-photo {
    display: block;
    width: 160px;
    height: 110px;
    margin-bottom: 12px;
    object-fit: cover;
    border-radius: 12px;
}

.ah-listing-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ah-listing-form__checkboxes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    margin-bottom: 6px;
}

.ah-listing-form__checkbox {
    display: flex !important;
    align-items: center;
    gap: 8px;

    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: 600 !important;
    font-family: var(--font-body) !important;
    color: var(--color-text) !important;
    font-size: 0.88rem !important;
}

.ah-listing-form__checkbox input {
    width: auto;
    min-height: auto;
    margin: 0;
}

.ah-owner-listing__delete {
    color: #b3261e !important;
}

@media (max-width: 600px) {
    .ah-listing-form__row {
        grid-template-columns: 1fr;
    }
}

/* ==================================================
   AJOUT D'UN AVIS
================================================== */

.ah-add-review {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid var(--ah-border, var(--color-border));
}

.ah-add-review__title {
    margin-bottom: 18px;
    color: var(--ah-navy, var(--color-navy));
    font-family: var(--font-heading);
    font-size: 1.15rem;
    font-weight: 800;
}

.ah-add-review__form label {
    display: block;
    margin-bottom: 6px;

    color: var(--ah-navy, var(--color-navy));
    font-family: var(--font-heading);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.7px;
    text-transform: uppercase;
}

.ah-add-review__stars {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 4px;
    margin-bottom: 20px;
}

.ah-add-review__stars input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.ah-add-review__stars label {
    margin: 0;
    color: var(--color-border);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    text-transform: none;
}

.ah-add-review__stars input:checked ~ label,
.ah-add-review__stars label:hover,
.ah-add-review__stars label:hover ~ label {
    color: var(--color-gold);
}

.ah-add-review__form textarea {
    width: 100%;
    min-height: 110px;
    margin-bottom: 18px;
    padding: 12px 14px;

    border: 1px solid var(--color-border);
    border-radius: 10px;
    outline: none;
    resize: vertical;

    color: var(--color-text);
    background: var(--color-surface);
    font: inherit;
}

.ah-add-review__form textarea:focus {
    border-color: var(--color-blue);
    box-shadow: 0 0 0 4px rgba(46, 109, 164, 0.12);
}

.ah-add-review__form button {
    border: 0;
    cursor: pointer;
}

/* ==================================================
   MON COMPTE — tableau de bord locataire (données réelles)
================================================== */

.ah-account {
    max-width: 900px;
    margin: 40px auto;
    padding: 0 24px;
    font-family: var(--font-body);
    color: var(--color-text);
}

.ah-account__header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 28px;
}

.ah-account__avatar {
    flex-shrink: 0;
    width: 62px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-navy);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 800;
}

.ah-account__name {
    margin: 0 0 4px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.4rem;
    font-weight: 800;
}

.ah-account__since {
    margin: 0;
    color: var(--color-muted);
    font-size: 0.88rem;
}

.ah-account__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.ah-account__stat {
    padding: 18px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-surface);
    text-align: center;
}

.ah-account__stat-value {
    display: block;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1.6rem;
    font-weight: 800;
}

.ah-account__stat-label {
    display: block;
    margin-top: 4px;
    color: var(--color-muted);
    font-size: 0.78rem;
}

.ah-account__tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--color-border);
}

.ah-account__tab {
    padding: 10px 18px;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--color-muted);
    font-family: var(--font-heading);
    font-size: 0.85rem;
    font-weight: 700;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.ah-account__tab:hover {
    color: var(--color-navy);
}

.ah-account__tab--active {
    color: var(--color-navy);
    border-bottom-color: var(--color-blue);
}

.ah-account__panel-title {
    margin: 24px 0 14px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}

.ah-account__panel-title:first-child {
    margin-top: 0;
}

.ah-booking-card {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    align-items: center;
    gap: 18px;
    padding: 14px;
    margin-bottom: 14px;

    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: #ffffff;
}

.ah-booking-card--past {
    opacity: 0.85;
}

.ah-booking-card__img {
    width: 100px;
    height: 80px;
    object-fit: cover;
    border-radius: 10px;
}

.ah-booking-card__img--empty {
    background: linear-gradient(135deg, var(--color-light-blue), var(--color-surface));
}

.ah-booking-card__status {
    display: inline-block;
    margin-bottom: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.ah-booking-card__status--upcoming {
    background: rgba(46, 109, 164, 0.12);
    color: var(--color-blue);
}

.ah-booking-card__status--done {
    background: var(--color-surface);
    color: var(--color-muted);
}

.ah-booking-card__title {
    margin: 0 0 4px;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 800;
}

.ah-booking-card__dates {
    margin: 0 0 4px;
    color: var(--color-muted);
    font-size: 0.85rem;
}

.ah-booking-card__price {
    margin: 0;
    color: var(--color-navy);
    font-weight: 800;
    font-size: 0.95rem;
}

.ah-booking-card__price span {
    color: var(--color-muted);
    font-weight: 400;
    font-size: 0.75rem;
}

.ah-booking-card__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.ah-booking-card__actions form {
    display: contents;
}

.ah-booking-card__link {
    color: var(--color-blue);
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

.ah-booking-card__btn {
    padding: 8px 16px;
    border: 0;
    border-radius: 999px;
    background: var(--color-blue);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: 0.76rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    display: inline-block;
}

.ah-booking-card__btn--outline {
    background: transparent;
    border: 1px solid var(--color-border);
    color: var(--color-muted);
}

.ah-booking-card__reviewed {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 700;
}

.ah-my-review {
    padding: 18px;
    margin-bottom: 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: #ffffff;
}

.ah-my-review__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.ah-my-review__title {
    margin: 0;
    color: var(--color-navy);
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 800;
}

.ah-my-review__title a {
    color: inherit;
    text-decoration: none;
}

.ah-my-review__title a:hover {
    color: var(--color-blue);
}

.ah-my-review__stars {
    color: var(--color-gold);
    font-size: 0.85rem;
    letter-spacing: 1px;
}

.ah-my-review__date {
    margin: 0 0 8px;
    color: var(--color-muted);
    font-size: 0.76rem;
}

.ah-my-review__text {
    margin: 0;
    color: var(--color-text);
    font-size: 0.88rem;
    line-height: 1.55;
}

@media (max-width: 640px) {
    .ah-account__stats {
        grid-template-columns: 1fr;
    }

    .ah-booking-card {
        grid-template-columns: 70px 1fr;
    }

    .ah-booking-card__img {
        width: 70px;
        height: 60px;
    }

    .ah-booking-card__actions {
        grid-column: 1 / -1;
        flex-direction: row;
        justify-content: space-between;
        margin-top: 10px;
    }
}
 