/* ═══════════════════════════════════════════════════════════════════════
   JLMV Redesign — Phase 1
   Style Roamify : annotations manuscrites, cards arrondies, ombres douces.
   Charge APRÈS style.css du child theme — ne touche pas aux variables
   existantes, étend seulement.
   ═══════════════════════════════════════════════════════════════════════ */

:root {
    /* Variables étendues — réutilise les --jlmv-* existantes */
    --jlmv-radius-card:   22px;
    --jlmv-radius-pill:   999px;
    --jlmv-radius-input:  16px;
    --jlmv-radius-btn:    18px;

    --jlmv-shadow-card:   0 18px 40px -12px rgba(26,26,26,.08), 0 4px 10px rgba(26,26,26,.04);
    --jlmv-shadow-cta:    0 12px 28px -6px rgba(232,130,28,.55);
    --jlmv-shadow-hover:  0 24px 50px -16px rgba(26,26,26,.12);

    --jlmv-font-display:  'Anton', 'Impact', sans-serif;
    --jlmv-font-script:   'Caveat', 'Brush Script MT', cursive;
    --jlmv-font-body:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --jlmv-bg-cream:      linear-gradient(180deg, #f5f1e9 0%, #ede6d6 100%);
}

/* ═══════════════════════════════════════════════════════════════════════
   Annotation manuscrite — composant réutilisable
   Utilisation : <span class="jlmv-mark">mot</span>
   ═══════════════════════════════════════════════════════════════════════ */
.jlmv-mark {
    position: relative;
    display: inline-block;
    padding: 0 6px;
    color: var(--jlmv-ink);
}
.jlmv-mark::before {
    content: "";
    position: absolute;
    inset: -6px -2px -8px -2px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 80' preserveAspectRatio='none'><path d='M 18 42 C 16 18, 95 12, 145 14 C 185 16, 210 24, 208 44 C 206 64, 130 70, 70 67 C 28 65, 12 56, 16 42 C 18 32, 30 26, 50 23' fill='none' stroke='%23F4A02C' stroke-width='2.4' stroke-linecap='round'/></svg>");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: -1;
}

/* ═══════════════════════════════════════════════════════════════════════
   Cards listings (HivePress overrides) — structure réelle :
   <article.hp-listing--view-block>
     <header.hp-listing__header>
       .hp-listing__featured-badge | .hp-listing__image (img)
     </header>
     <div.hp-listing__content>
       <h4.hp-listing__title>
       .hp-listing__details--primary
       .hp-listing__attributes--secondary (Marque, Modèle...)
       .hp-listing__attributes--ternary
     </div>
     <footer.hp-listing__footer>
       .hp-listing__attributes--primary (PRIX)
       .hp-listing__actions--primary (heart, etc.)
     </footer>
   </article>
   ═══════════════════════════════════════════════════════════════════════ */
.hp-listing.hp-listing--view-block {
    border-radius: var(--jlmv-radius-card) !important;
    border: 0 !important;
    box-shadow: var(--jlmv-shadow-card) !important;
    overflow: hidden !important;
    background: #fff !important;
    transition: transform .25s ease, box-shadow .25s ease !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100%;
    margin-bottom: 0 !important;
}
.hp-listing.hp-listing--view-block:hover {
    transform: translateY(-3px);
    box-shadow: var(--jlmv-shadow-hover) !important;
}

/* Header = image, ratio fixe 16/10 */
.hp-listing--view-block .hp-listing__header {
    border-radius: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    aspect-ratio: 16 / 10 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f0ebe0;
    flex-shrink: 0;
}
.hp-listing--view-block .hp-listing__image {
    border-radius: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden !important;
}
.hp-listing--view-block .hp-listing__image a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}
.hp-listing--view-block .hp-listing__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    transition: transform .6s ease;
}
.hp-listing.hp-listing--view-block:hover .hp-listing__image img {
    transform: scale(1.04);
}

/* Badge "À la une" (featured) */
.hp-listing--view-block .hp-listing__badge,
.hp-listing--view-block .hp-listing__featured-badge {
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    padding: 4px 10px !important;
    border-radius: var(--jlmv-radius-pill) !important;
    background: rgba(255,255,255,.95) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--jlmv-ink) !important;
    z-index: 2;
    box-shadow: 0 2px 6px rgba(26,26,26,.08);
    border: 0 !important;
}

/* Verified badge (sur le titre) */
.hp-listing--view-block .hp-listing__verified-badge {
    color: var(--jlmv-orange) !important;
    margin-left: 4px;
}

/* Content = titre + meta + attributs */
.hp-listing--view-block .hp-listing__content {
    padding: 16px 18px 12px !important;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.hp-listing--view-block .hp-listing__title {
    font-size: 16px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    color: var(--jlmv-ink) !important;
    border: 0 !important;
}
.hp-listing--view-block .hp-listing__title a {
    color: var(--jlmv-ink) !important;
    text-decoration: none !important;
}
.hp-listing--view-block .hp-listing__title a:hover {
    color: var(--jlmv-orange-dark) !important;
}

/* Détails primaires (catégorie + date) */
.hp-listing--view-block .hp-listing__details--primary {
    font-size: 12px !important;
    color: var(--jlmv-text-soft) !important;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.hp-listing--view-block .hp-listing__details--primary > * {
    color: var(--jlmv-text-soft) !important;
}

/* Attributs secondaires (Marque, Modèle, Année, Transmission…) */
.hp-listing--view-block .hp-listing__attributes--secondary {
    margin: 8px 0 0 !important;
    padding: 8px 0 0 !important;
    border-top: 1px dashed rgba(26,26,26,.06);
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 4px 12px !important;
    font-size: 12px;
}
.hp-listing--view-block .hp-listing__attributes--secondary .hp-listing__attribute {
    color: var(--jlmv-text-muted) !important;
    font-size: 12px !important;
    line-height: 1.4;
    display: flex;
    align-items: baseline;
    gap: 4px;
}
.hp-listing--view-block .hp-listing__attributes--secondary .hp-listing__attribute strong,
.hp-listing--view-block .hp-listing__attributes--secondary .hp-listing__attribute b {
    color: var(--jlmv-ink) !important;
    font-weight: 600;
}

/* Attributs tertiaires (location, etc.) */
.hp-listing--view-block .hp-listing__attributes--ternary {
    margin: 6px 0 0 !important;
    padding: 0 !important;
}
.hp-listing--view-block .hp-listing__attribute--location {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    color: var(--jlmv-text-soft) !important;
    font-size: 12px !important;
}
.hp-listing--view-block .hp-listing__attribute--location::before {
    content: "";
    width: 12px;
    height: 12px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8821C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s-7-7-7-13a7 7 0 1 1 14 0c0 6-7 13-7 13z'/><circle cx='12' cy='9' r='2.5' fill='%23E8821C'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    flex-shrink: 0;
}

/* Footer = prix + actions (heart, etc.) */
.hp-listing--view-block .hp-listing__footer {
    padding: 0 18px 16px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    border: 0 !important;
}

/* Prix : pastille gradient orange */
.hp-listing--view-block .hp-listing__attributes--primary {
    margin: 0 !important;
    padding: 0 !important;
    flex: 1;
    min-width: 0;
}
.hp-listing--view-block .hp-listing__attributes--primary .hp-listing__attribute {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 4px !important;
    background: linear-gradient(135deg, var(--jlmv-orange) 0%, var(--jlmv-orange-dark) 100%) !important;
    color: #fff !important;
    padding: 8px 14px !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    box-shadow: 0 6px 14px -4px rgba(232,130,28,.4);
    line-height: 1.2;
}
.hp-listing--view-block .hp-listing__attributes--primary .hp-listing__attribute small {
    font-size: 11px !important;
    font-weight: 500;
    opacity: .85;
}

/* Actions footer (heart / share / etc.) */
.hp-listing--view-block .hp-listing__actions--primary {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    margin: 0 !important;
    padding: 0 !important;
}
.hp-listing--view-block .hp-listing__actions--primary > *,
.hp-listing--view-block .hp-listing__actions--primary a,
.hp-listing--view-block .hp-listing__actions--primary button {
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    background: var(--jlmv-cream) !important;
    color: var(--jlmv-ink) !important;
    border: 1.5px solid rgba(26,26,26,.08) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all .15s !important;
    cursor: pointer;
    padding: 0 !important;
    text-decoration: none !important;
}
.hp-listing--view-block .hp-listing__actions--primary > *:hover {
    border-color: var(--jlmv-orange) !important;
    color: var(--jlmv-orange-dark) !important;
    transform: scale(1.05);
}
.hp-listing--view-block .hp-listing__actions--primary .hp-favorite--active {
    background: rgba(255, 80, 80, .12) !important;
    color: #e23636 !important;
    border-color: transparent !important;
}

/* Header de page (archive listings) */
.hp-page__header {
    background: var(--jlmv-bg-cream) !important;
    padding: 28px 0 32px !important;
    border-radius: 0 0 32px 32px;
    margin-bottom: 24px;
}
.hp-page__title {
    font-family: var(--jlmv-font-display) !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-size: clamp(28px, 4vw, 42px) !important;
}

/* Pills catégories — quand HivePress affiche les filtres en haut */
.hp-listing-categories,
.hp-form--listing-filter .hp-form__field--checkboxes label {
    border-radius: var(--jlmv-radius-pill) !important;
}

/* Boutons primaires — gradient orange + lift on hover */
.hp-form__button--primary,
.hp-button--primary,
button[type="submit"]:not(.search-submit) {
    border-radius: var(--jlmv-radius-btn) !important;
    box-shadow: var(--jlmv-shadow-cta) !important;
    transition: transform .15s ease, box-shadow .25s ease !important;
    font-weight: 700 !important;
    letter-spacing: .2px !important;
}
.hp-form__button--primary:hover,
.hp-button--primary:hover,
button[type="submit"]:not(.search-submit):hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -8px rgba(232,130,28,.65) !important;
}

/* Inputs / formulaires */
.hp-form__field input[type="text"],
.hp-form__field input[type="email"],
.hp-form__field input[type="tel"],
.hp-form__field input[type="number"],
.hp-form__field input[type="search"],
.hp-form__field input[type="password"],
.hp-form__field select,
.hp-form__field textarea {
    border-radius: var(--jlmv-radius-input) !important;
    border-color: rgba(26,26,26,.1) !important;
    transition: border-color .15s, box-shadow .15s !important;
}
.hp-form__field input:focus,
.hp-form__field select:focus,
.hp-form__field textarea:focus {
    border-color: var(--jlmv-orange) !important;
    box-shadow: 0 0 0 3px rgba(244,160,44,.18) !important;
    outline: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   Vendor cards — même traitement
   ═══════════════════════════════════════════════════════════════════════ */
.hp-vendor.hp-vendor--view-block {
    border-radius: var(--jlmv-radius-card) !important;
    border: 0 !important;
    box-shadow: var(--jlmv-shadow-card) !important;
    overflow: hidden;
    transition: transform .25s, box-shadow .25s;
}
.hp-vendor.hp-vendor--view-block:hover {
    transform: translateY(-3px);
    box-shadow: var(--jlmv-shadow-hover) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   PAGE ARCHIVE LISTINGS — /listing/
   Refonte agressive : background crème, header hero, search form rounded,
   sidebar filters white card, grid cards Roamify.
   ═══════════════════════════════════════════════════════════════════════ */

/* Background body sur les pages d'archive listings */
body.post-type-archive-hp_listing,
body.tax-hp_listing_category,
body.tax-hp_listing_tags,
body.tax-hp_listing_region {
    background: var(--jlmv-bg-cream) !important;
}
body.post-type-archive-hp_listing::before,
body.tax-hp_listing_category::before {
    content: ""; position: fixed; inset: 0;
    background-image:
        radial-gradient(circle at 20% 10%, rgba(244,160,44,.06) 0%, transparent 40%),
        radial-gradient(circle at 80% 90%, rgba(26,26,26,.04) 0%, transparent 45%);
    pointer-events: none; z-index: 0;
}

/* Page wrapper above the radial bg */
.hp-page--listings,
.post-type-archive-hp_listing #site-content,
.post-type-archive-hp_listing main {
    position: relative;
    z-index: 1;
}

/* ─── Custom hero injecté avant la search form ─── */
.jlmv-listings-hero {
    text-align: center;
    max-width: 720px;
    margin: 0 auto 24px;
    padding: 8px 16px 0;
}
.jlmv-listings-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,.7);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    color: var(--jlmv-ink);
    margin-bottom: 16px;
    box-shadow: 0 2px 8px rgba(26,26,26,.04);
}
.jlmv-listings-dot {
    width: 8px; height: 8px;
    background: #2dbf63;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(45,191,99,.25);
    animation: jlmv-pulse 1.8s ease-in-out infinite;
}
@keyframes jlmv-pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(45,191,99,.25); }
    50%      { box-shadow: 0 0 0 6px rgba(45,191,99,.05); }
}
.jlmv-listings-title {
    font-family: var(--jlmv-font-display);
    font-weight: 400;
    font-size: clamp(34px, 5vw, 56px);
    line-height: 1.04;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin: 0 0 12px;
    color: var(--jlmv-ink);
}
.jlmv-listings-title .jlmv-mark {
    position: relative;
    display: inline-block;
    padding: 0 10px;
}
.jlmv-listings-title .jlmv-mark::before { display: none; }
.jlmv-listings-title .jlmv-mark-svg {
    position: absolute;
    inset: -8px -2px -12px -2px;
    width: calc(100% + 4px);
    height: calc(100% + 20px);
    pointer-events: none;
    overflow: visible;
}
.jlmv-listings-sub {
    color: var(--jlmv-text-muted);
    font-size: 15px;
    line-height: 1.55;
    margin: 0 auto;
    max-width: 540px;
}

/* ─── Hide HivePress default page title (we use our hero instead) ─── */
.post-type-archive-hp_listing .hp-page__title:not(.jlmv-listings-title),
.tax-hp_listing_category .hp-page__title:not(.jlmv-listings-title) {
    display: none !important;
}

/* ─── Page header — titre Anton + search hero ─── */
.post-type-archive-hp_listing .hp-page__header,
.tax-hp_listing_category .hp-page__header,
.hp-page--listings .hp-page__header {
    background: transparent !important;
    padding: 32px 0 28px !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    margin-bottom: 24px;
    text-align: center;
}
.post-type-archive-hp_listing .hp-page__title,
.tax-hp_listing_category .hp-page__title,
.hp-page--listings .hp-page__title {
    font-family: var(--jlmv-font-display) !important;
    font-weight: 400 !important;
    font-size: clamp(34px, 5vw, 56px) !important;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    line-height: 1.05 !important;
    margin: 0 0 6px !important;
    color: var(--jlmv-ink) !important;
}
.post-type-archive-hp_listing .hp-page__description,
.tax-hp_listing_category .hp-page__description {
    color: var(--jlmv-text-muted) !important;
    font-size: 15px;
    max-width: 540px;
    margin: 0 auto 18px !important;
    line-height: 1.55;
}

/* ─── Search form (en haut de la page archive) ─── */
.hp-form--listing-search {
    background: #fff !important;
    border-radius: 22px !important;
    padding: 18px 20px !important;
    box-shadow: var(--jlmv-shadow-card) !important;
    border: 0 !important;
    max-width: 880px;
    margin: 0 auto 28px !important;
}
.hp-form--listing-search .hp-form__fields,
.hp-form--listing-search .hp-form__container {
    align-items: end;
    gap: 12px !important;
}
.hp-form--listing-search .hp-form__field input,
.hp-form--listing-search .hp-form__field select {
    border: 1.5px solid rgba(26,26,26,.08) !important;
    border-radius: var(--jlmv-radius-input) !important;
    padding: 12px 14px !important;
    background: #fafaf7 !important;
    font-size: 14px !important;
    transition: border-color .15s, background .15s, box-shadow .15s !important;
}
.hp-form--listing-search .hp-form__field input:focus,
.hp-form--listing-search .hp-form__field select:focus {
    border-color: var(--jlmv-orange) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(244,160,44,.18) !important;
    outline: 0 !important;
}
.hp-form--listing-search .hp-form__field--location input {
    padding-left: 40px !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8821C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s-7-7-7-13a7 7 0 1 1 14 0c0 6-7 13-7 13z'/><circle cx='12' cy='9' r='2.5' fill='%23E8821C'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: 14px center !important;
    background-size: 16px !important;
}
.hp-form--listing-search .hp-form__button {
    border-radius: var(--jlmv-radius-input) !important;
    padding: 13px 28px !important;
    background: linear-gradient(135deg, var(--jlmv-orange) 0%, var(--jlmv-orange-dark) 100%) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: var(--jlmv-shadow-cta) !important;
    font-weight: 700 !important;
    transition: transform .15s, box-shadow .25s !important;
}
.hp-form--listing-search .hp-form__button:hover {
    transform: translateY(-2px);
}

/* ─── Page layout : sidebar + content ─── */
.hp-page__container {
    max-width: 1180px !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    display: grid !important;
    grid-template-columns: 280px 1fr !important;
    gap: 28px !important;
}
.hp-page--listings .hp-page__container {
    grid-template-columns: 280px 1fr !important;
}
@media (max-width: 960px) {
    .hp-page__container { grid-template-columns: 1fr !important; gap: 18px !important; }
}

.hp-page__sidebar {
    position: sticky;
    top: 24px;
    align-self: start;
    background: #fff;
    border-radius: var(--jlmv-radius-card);
    padding: 22px 20px;
    box-shadow: var(--jlmv-shadow-card);
    border: 0 !important;
}
.hp-page__sidebar > * + * { margin-top: 18px; }

.hp-page__sidebar h2,
.hp-page__sidebar h3 {
    font-family: var(--jlmv-font-display);
    font-weight: 400;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(26,26,26,.06);
}

/* Filter form fields */
.hp-form--listing-filter .hp-form__field {
    margin-bottom: 14px !important;
}
.hp-form--listing-filter .hp-form__label,
.hp-form--listing-filter .hp-field__label {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--jlmv-text-muted) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 6px !important;
}
.hp-form--listing-filter input[type="checkbox"],
.hp-form--listing-filter input[type="radio"] {
    accent-color: var(--jlmv-orange) !important;
    width: 16px;
    height: 16px;
}
.hp-form--listing-filter .hp-form__field--checkboxes label,
.hp-form--listing-filter .hp-form__field--radio label {
    display: flex !important;
    align-items: center;
    gap: 8px;
    padding: 6px 0;
    font-size: 14px;
    color: var(--jlmv-ink);
    cursor: pointer;
    border-radius: 8px;
    transition: background .15s;
}
.hp-form--listing-filter .hp-form__field--checkboxes label:hover {
    color: var(--jlmv-orange-dark);
}

/* Range slider price */
.hp-form--listing-filter .hp-form__field--number input {
    border-radius: 12px !important;
    border: 1.5px solid rgba(26,26,26,.08) !important;
    padding: 9px 12px !important;
    font-size: 13px !important;
    background: #fafaf7 !important;
}

/* ─── Listings grid : force colonnes même avec 1 listing ─── */
.hp-listings.hp-listings--view-block .hp-row {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 20px !important;
    margin: 0 !important;
}
.hp-listings.hp-listings--view-block .hp-row > [class*="hp-col"] {
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: unset !important;
}

/* ─── Toolbar (sort, results count) ─── */
.hp-page__topbar,
.hp-listings__filters,
.hp-results__topbar {
    background: #fff;
    border-radius: 16px;
    padding: 14px 18px;
    box-shadow: var(--jlmv-shadow-card);
    margin-bottom: 18px !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
.hp-page__topbar select,
.hp-results__topbar select {
    border-radius: 10px !important;
    border: 1.5px solid rgba(26,26,26,.1) !important;
    padding: 8px 12px !important;
    background: #fafaf7 !important;
    font-size: 13px !important;
    cursor: pointer;
}
.hp-page__topbar select:focus,
.hp-results__topbar select:focus {
    border-color: var(--jlmv-orange) !important;
    outline: 0 !important;
}

/* ─── Pagination ─── */
.hp-pagination {
    display: flex !important;
    justify-content: center;
    gap: 6px;
    padding: 32px 0;
    list-style: none;
    margin: 0;
}
.hp-pagination li,
.hp-pagination__item {
    display: inline-block;
}
.hp-pagination a,
.hp-pagination span,
.hp-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 12px;
    border-radius: 12px !important;
    background: #fff !important;
    color: var(--jlmv-ink) !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 14px;
    box-shadow: 0 2px 8px rgba(26,26,26,.04);
    transition: all .15s;
    border: 0 !important;
}
.hp-pagination a:hover,
.hp-pagination .page-numbers:hover {
    background: var(--jlmv-orange-light) !important;
    color: var(--jlmv-orange-dark) !important;
}
.hp-pagination .current,
.hp-pagination .page-numbers.current {
    background: var(--jlmv-ink) !important;
    color: #fff !important;
}

/* ─── Empty state / no results ─── */
.hp-no-results,
.hp-message--info {
    background: #fff;
    border-radius: var(--jlmv-radius-card);
    padding: 40px 24px;
    text-align: center;
    box-shadow: var(--jlmv-shadow-card);
    color: var(--jlmv-text-muted);
}

/* ─── Mobile filter toggle (HivePress) ─── */
.hp-listings__filter-toggle,
.hp-form__filter-button {
    background: var(--jlmv-ink) !important;
    color: #fff !important;
    border-radius: 999px !important;
    padding: 12px 22px !important;
    font-weight: 600 !important;
    border: 0 !important;
    box-shadow: 0 6px 18px rgba(26,26,26,.18) !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   VENDOR / ACCOUNT DASHBOARD — Roamify branding
   ═══════════════════════════════════════════════════════════════════════ */
body[class*="hp-template--vendor-"],
body[class*="hp-template--user-account"],
body[class*="hp-template--listing-edit"],
body.hp-template--listings-edit-page,
body.hp-template--booking-make-page,
body.hp-template--booking-make-details-page,
body.hp-template--booking-make-complete-page,
body.hp-template--booking-pay-complete-page,
body.hp-template--booking-pay-page,
body.hp-template--listing-calendar-page,
body.hp-template--vendor-calendar-page {
    background: linear-gradient(180deg, #f5f1e9 0%, #ede6d6 100%) !important;
    /* Force scrollbar permanent → empêche le décalage horizontal au hover
       (qui causait l'effet de "vibration" de la fenêtre) */
    overflow-y: scroll !important;
}

/* Page header (titres) en Anton uppercase */
body[class*="hp-template--vendor-"] .hp-page__title,
body[class*="hp-template--user-account"] .hp-page__title,
body[class*="hp-template--listing-edit"] .hp-page__title {
    font-family: 'Anton', sans-serif !important;
    font-weight: 400 !important;
    font-size: clamp(28px, 4vw, 40px) !important;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #1a1a1a !important;
    margin: 0 0 18px !important;
}

/* Sidebar : white card avec ombre douce */
body[class*="hp-template--vendor-"] .hp-page__sidebar,
body[class*="hp-template--user-account"] .hp-page__sidebar {
    background: #fff !important;
    border-radius: 22px !important;
    padding: 22px 18px !important;
    box-shadow: 0 18px 40px -12px rgba(26,26,26,.08), 0 4px 10px rgba(26,26,26,.04) !important;
    border: 0 !important;
}

/* Menu sidebar — items style pill */
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item a,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 11px 14px !important;
    margin-bottom: 4px;
    border-radius: 12px !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    /* Pas de transition sur transform — évite l'effet de vibration */
    transition: background-color .15s, color .15s !important;
    position: relative;
}
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item a:hover,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item a:hover {
    background: rgba(244,160,44,.1) !important;
    color: #E8821C !important;
}

/* Cache les triangles orange parasites du parent theme RentalHive sur les
   menu items (::before contenait un > orange mal placé) */
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item > a::before,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item > a::before,
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item::before,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item::before {
    display: none !important;
    content: none !important;
}

/* Badge notification (chiffre rouge à droite des items, ex: 3 réservations) */
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item .hp-counter,
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item .hp-link__counter,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item .hp-counter {
    background: #e23636 !important;
    color: #fff !important;
    border-radius: 999px !important;
    padding: 2px 8px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    margin-left: auto !important;
}
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item--current a,
body[class*="hp-template--vendor-"] .hp-page__sidebar .hp-menu__item.is-active a,
body[class*="hp-template--user-account"] .hp-page__sidebar .hp-menu__item--current a {
    background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%) !important;
    color: #fff !important;
    box-shadow: 0 6px 14px -4px rgba(26,26,26,.25);
}

/* Content area cards */
body[class*="hp-template--vendor-"] .hp-page__content > .hp-block,
body[class*="hp-template--vendor-"] .hp-page__content > .hp-form,
body[class*="hp-template--user-account"] .hp-page__content > .hp-block,
body[class*="hp-template--user-account"] .hp-page__content > .hp-form {
    background: #fff !important;
    border-radius: 22px !important;
    padding: 26px 28px !important;
    box-shadow: 0 18px 40px -12px rgba(26,26,26,.08), 0 4px 10px rgba(26,26,26,.04) !important;
    border: 0 !important;
    margin-bottom: 22px !important;
}

/* Stats / dashboard grids */
body[class*="hp-template--vendor-"] .hp-page__content .hp-grid,
body[class*="hp-template--user-account"] .hp-page__content .hp-grid {
    gap: 16px !important;
}
body[class*="hp-template--vendor-"] .hp-page__content .hp-grid__item {
    padding: 0 !important;
}

/* Inputs/forms : style cohérent Roamify */
body[class*="hp-template--vendor-"] input[type="text"],
body[class*="hp-template--vendor-"] input[type="email"],
body[class*="hp-template--vendor-"] input[type="number"],
body[class*="hp-template--vendor-"] input[type="tel"],
body[class*="hp-template--vendor-"] input[type="url"],
body[class*="hp-template--vendor-"] input[type="password"],
body[class*="hp-template--vendor-"] select,
body[class*="hp-template--vendor-"] textarea,
body[class*="hp-template--user-account"] input[type="text"],
body[class*="hp-template--user-account"] input[type="email"],
body[class*="hp-template--user-account"] input[type="number"],
body[class*="hp-template--user-account"] input[type="tel"],
body[class*="hp-template--user-account"] select,
body[class*="hp-template--user-account"] textarea {
    border-radius: 12px !important;
    border: 1.5px solid rgba(26,26,26,.08) !important;
    background: #fafaf7 !important;
    padding: 11px 14px !important;
    transition: border-color .15s, background .15s, box-shadow .15s !important;
}
body[class*="hp-template--vendor-"] input:focus,
body[class*="hp-template--vendor-"] select:focus,
body[class*="hp-template--vendor-"] textarea:focus,
body[class*="hp-template--user-account"] input:focus,
body[class*="hp-template--user-account"] select:focus,
body[class*="hp-template--user-account"] textarea:focus {
    outline: 0 !important;
    border-color: #F4A02C !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(244,160,44,.15) !important;
}

/* Boutons primaires */
body[class*="hp-template--vendor-"] .hp-form__button,
body[class*="hp-template--vendor-"] .button.alt,
body[class*="hp-template--user-account"] .hp-form__button,
body[class*="hp-template--user-account"] .button.alt {
    background: linear-gradient(135deg, #F4A02C 0%, #E8821C 100%) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 14px !important;
    padding: 14px 22px !important;
    font-weight: 700 !important;
    box-shadow: 0 10px 24px -6px rgba(232,130,28,.55) !important;
    transition: transform .15s !important;
    text-shadow: none !important;
}
body[class*="hp-template--vendor-"] .hp-form__button:hover,
body[class*="hp-template--user-account"] .hp-form__button:hover {
    /* Pas de translateY ici — éviterait vibration si bouton dans flex layout
       qui recalcule la hauteur */
    box-shadow: 0 14px 32px -8px rgba(232,130,28,.65) !important;
    color: #fff !important;
}

/* FullCalendar Roamify accent orange */
.fc-button-primary {
    background: #1a1a1a !important;
    border-color: #1a1a1a !important;
    border-radius: 8px !important;
    text-transform: capitalize !important;
}
.fc-button-primary:hover {
    background: #E8821C !important;
    border-color: #E8821C !important;
}
.fc-button-primary:disabled {
    background: #ccc !important;
    border-color: #ccc !important;
}
.fc-day-today { background: rgba(244,160,44,.08) !important; }
.fc-event-main, .fc-event { background: #F4A02C !important; border-color: #F4A02C !important; }
.fc-blocked { background: rgba(255,80,80,.15) !important; }
.fc-unblocked { background: rgba(45,191,99,.15) !important; }
.fc-toolbar-title { font-family: 'Anton', sans-serif !important; font-weight: 400 !important; text-transform: capitalize; letter-spacing: .5px; }

/* ═══════════════════════════════════════════════════════════════════════
   ACCOUNT PAGES — login / register / password (Roamify branding)
   ═══════════════════════════════════════════════════════════════════════ */
body.hp-template--user-login-page,
body.hp-template--user-register-page,
body.hp-template--user-password-request-page,
body.hp-template--user-password-reset-page {
    background: linear-gradient(180deg, #f5f1e9 0%, #ede6d6 100%) !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
    min-height: 100vh;
    position: relative;
}
body.hp-template--user-login-page::before,
body.hp-template--user-register-page::before,
body.hp-template--user-password-request-page::before {
    content: ""; position: fixed; inset: 0;
    background-image:
        radial-gradient(circle at 20% 10%, rgba(244,160,44,.06) 0%, transparent 40%),
        radial-gradient(circle at 80% 90%, rgba(26,26,26,.04) 0%, transparent 45%);
    pointer-events: none; z-index: 0;
}

/* Header de page (titre HivePress "Se connecter") */
body.hp-template--user-login-page .hp-page__header,
body.hp-template--user-register-page .hp-page__header,
body.hp-template--user-password-request-page .hp-page__header {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 40px 24px 22px !important;
    max-width: 480px !important;
    margin: 0 auto !important;
    text-align: center !important;
}
body.hp-template--user-login-page .hp-page__title,
body.hp-template--user-register-page .hp-page__title,
body.hp-template--user-password-request-page .hp-page__title {
    font-family: 'Anton', sans-serif !important;
    font-weight: 400 !important;
    font-size: clamp(32px, 5vw, 44px) !important;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    color: #1a1a1a !important;
    margin: 0 0 8px !important;
    line-height: 1.05;
}

/* Container central de la page */
body.hp-template--user-login-page .hp-page__container,
body.hp-template--user-register-page .hp-page__container,
body.hp-template--user-password-request-page .hp-page__container {
    max-width: 460px !important;
    margin: 0 auto !important;
    padding: 0 20px 50px !important;
    position: relative;
    z-index: 1;
}

/* Form login/register en card blanche */
body.hp-template--user-login-page .hp-form--user-login,
body.hp-template--user-register-page .hp-form--user-register,
body.hp-template--user-password-request-page .hp-form--user-password-request {
    background: #fff !important;
    border-radius: 22px !important;
    padding: 32px 28px !important;
    box-shadow: 0 24px 60px -16px rgba(26,26,26,.12), 0 4px 12px rgba(26,26,26,.05) !important;
    border: 1px solid rgba(26,26,26,.04);
}
body.hp-template--user-login-page .hp-form__field,
body.hp-template--user-register-page .hp-form__field,
body.hp-template--user-password-request-page .hp-form__field {
    margin-bottom: 16px !important;
}
body.hp-template--user-login-page .hp-field__label,
body.hp-template--user-register-page .hp-field__label,
body.hp-template--user-password-request-page .hp-field__label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    margin-bottom: 8px !important;
}

/* Inputs : Roamify-style */
body.hp-template--user-login-page input[type="text"],
body.hp-template--user-login-page input[type="email"],
body.hp-template--user-login-page input[type="password"],
body.hp-template--user-register-page input[type="text"],
body.hp-template--user-register-page input[type="email"],
body.hp-template--user-register-page input[type="password"],
body.hp-template--user-password-request-page input[type="text"],
body.hp-template--user-password-request-page input[type="email"] {
    width: 100% !important;
    padding: 14px 16px !important;
    border-radius: 14px !important;
    border: 1.5px solid rgba(26,26,26,.08) !important;
    background: #fafaf7 !important;
    font-family: inherit !important;
    font-size: 15px !important;
    color: #1a1a1a !important;
    transition: border-color .15s, background .15s, box-shadow .15s !important;
}
body.hp-template--user-login-page input:focus,
body.hp-template--user-register-page input:focus,
body.hp-template--user-password-request-page input:focus {
    outline: 0 !important;
    border-color: #F4A02C !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(244,160,44,.15) !important;
}

/* Show/hide password icon */
body.hp-template--user-login-page .hp-field--password,
body.hp-template--user-register-page .hp-field--password {
    position: relative;
}
body.hp-template--user-login-page .hp-field__icon,
body.hp-template--user-register-page .hp-field__icon {
    color: #888 !important;
}

/* Bouton submit */
body.hp-template--user-login-page .hp-form__button,
body.hp-template--user-register-page .hp-form__button,
body.hp-template--user-password-request-page .hp-form__button {
    width: 100% !important;
    padding: 16px 22px !important;
    background: linear-gradient(135deg, #F4A02C 0%, #E8821C 100%) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 14px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: .3px !important;
    cursor: pointer !important;
    box-shadow: 0 10px 24px -6px rgba(232,130,28,.55) !important;
    transition: transform .15s, box-shadow .25s !important;
    text-shadow: none !important;
    margin-top: 6px !important;
}
body.hp-template--user-login-page .hp-form__button:hover,
body.hp-template--user-register-page .hp-form__button:hover,
body.hp-template--user-password-request-page .hp-form__button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px -8px rgba(232,130,28,.65) !important;
    color: #fff !important;
}
body.hp-template--user-login-page .hp-form__button span,
body.hp-template--user-register-page .hp-form__button span,
body.hp-template--user-password-request-page .hp-form__button span {
    color: #fff !important;
    font-weight: 700 !important;
}

/* Actions secondaires (mot de passe oublié, créer un compte) */
body.hp-template--user-login-page .hp-form__actions,
body.hp-template--user-register-page .hp-form__actions,
body.hp-template--user-password-request-page .hp-form__actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    align-items: stretch !important;
    margin-top: 22px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(26,26,26,.06) !important;
}
body.hp-template--user-login-page .hp-form__action,
body.hp-template--user-register-page .hp-form__action,
body.hp-template--user-password-request-page .hp-form__action {
    text-align: center !important;
}
body.hp-template--user-login-page .hp-form__action a,
body.hp-template--user-register-page .hp-form__action a,
body.hp-template--user-password-request-page .hp-form__action a {
    color: #777 !important;
    font-size: 13px !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: color .15s !important;
}
body.hp-template--user-login-page .hp-form__action a:hover,
body.hp-template--user-register-page .hp-form__action a:hover {
    color: #E8821C !important;
}

/* Messages (erreurs / succès) */
body.hp-template--user-login-page .hp-form__messages,
body.hp-template--user-register-page .hp-form__messages,
body.hp-template--user-password-request-page .hp-form__messages {
    margin-bottom: 14px !important;
}
body.hp-template--user-login-page .hp-message,
body.hp-template--user-register-page .hp-message {
    border-radius: 10px !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   Mobile (≤ 640px) — densité ajustée
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
    .hp-listing--view-block .hp-listing__content {
        padding: 14px 16px 16px !important;
    }
    .hp-listing--view-block .hp-listing__title {
        font-size: 15px !important;
    }
    .hp-page__header {
        padding: 22px 0 18px !important;
    }
    .hp-page__container {
        padding: 0 16px !important;
    }
    .hp-page__sidebar {
        position: static !important;
        margin-bottom: 16px;
    }
    .hp-form--listing-search {
        padding: 14px !important;
        border-radius: 18px !important;
    }
    .hp-form--listing-search .hp-form__container {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .hp-form--listing-search .hp-form__field {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
    .hp-form--listing-search .hp-form__button {
        width: 100% !important;
    }
}
