/*
 * HivePress — habillage complet « clair & acidulé » (framboise + or, liquid glass).
 * Réhabille les composants HivePress (fiche annonce, catalogue, formulaires,
 * modales, profils) par-dessus la grille fournie par ListingHive.
 * Chargé sur tout le site. Tokens depuis style.css.
 */

/* ===================== Respiration des pages internes ===================== */
.site-content{padding-block:0}
.hp-page{padding:54px 0 80px}
.hp-page__content{min-width:0}
@media(max-width:768px){.hp-page{padding:32px 0 56px}}

/* Liens HivePress */
.hp-link{color:var(--rasp-deep);transition:color var(--transition)}
.hp-link:hover{color:var(--rasp)}

/* ===================== Boutons HivePress ===================== */
.hp-form__button,button.hp-form__button,.hp-button,.button{
  font-family:var(--sans)!important;font-weight:600!important;border:none!important;border-radius:var(--pill)!important;
  background:linear-gradient(120deg,var(--rasp-br),var(--rasp) 60%,var(--rasp-deep))!important;color:#fff!important;
  padding:.85em 1.6em!important;box-shadow:0 6px 20px rgba(230,62,126,.32)!important;transition:transform var(--transition),box-shadow var(--transition)!important;cursor:pointer}
.hp-form__button:hover,.hp-button:hover,.button:hover{transform:translateY(-2px)!important;box-shadow:0 12px 30px rgba(230,62,126,.45)!important;color:#fff!important}
.hp-button--secondary,a.hp-button--secondary{background:rgba(255,255,255,.7)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1.5px var(--border)!important}
.hp-button--secondary:hover{box-shadow:inset 0 0 0 1.5px var(--rasp)!important;color:var(--rasp-deep)!important}

/* ===================== Champs de formulaire ===================== */
.hp-field input[type=text],.hp-field input[type=email],.hp-field input[type=password],
.hp-field input[type=search],.hp-field input[type=number],.hp-field input[type=tel],
.hp-field input[type=url],.hp-field input[type=date],.hp-field select,.hp-field textarea,
input.hp-field,select.hp-field,textarea.hp-field{
  background:#fff;border:1.5px solid var(--border);border-radius:var(--r-sm);padding:.7em 1em;color:var(--ink);font-family:var(--sans);transition:border-color var(--transition),box-shadow var(--transition)}
.hp-field input:focus,.hp-field select:focus,.hp-field textarea:focus,input.hp-field:focus,select.hp-field:focus,textarea.hp-field:focus{
  border-color:var(--rasp);box-shadow:0 0 0 3px rgba(230,62,126,.15);outline:none}
.hp-field__label,.hp-form__label{font-weight:600;color:var(--ink);font-size:.92rem}
.hp-field__description{color:var(--ink-2);font-size:.85rem}

/* ===================== FICHE ANNONCE (view-page) ===================== */
.hp-listing--view-page .hp-listing__categories,.hp-listing__category{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rasp)}
.hp-listing__title{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.02em;color:var(--ink);margin:8px 0 12px}
.hp-listing__details{color:var(--ink-2);font-size:.95rem}
.hp-listing__location{display:inline-flex;align-items:center;gap:6px}
.hp-listing__location .hp-icon{color:var(--rasp)}

/* Galerie d'images */
.hp-listing__images{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);margin:8px 0 28px}
.hp-listing__images img{border-radius:var(--r-lg)}

/* Topbar / onglets */
.hp-page__topbar{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:0}
.hp-menu--tabbed .hp-menu__item{position:relative;font-weight:600;color:var(--ink-2);padding-bottom:12px}
.hp-menu--tabbed .hp-menu__item--current,.hp-menu--tabbed .hp-menu__item:hover{color:var(--rasp)}
.hp-menu--tabbed .hp-menu__item--current::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--rasp),var(--gold))}

/* Description */
.hp-listing__description{color:var(--ink);line-height:1.75;font-size:1.02rem}
.hp-listing__description h1,.hp-listing__description h2,.hp-listing__description h3{font-family:var(--serif)}

/* Attributs secondaires = chips */
.hp-listing__attributes--secondary{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 28px}
.hp-listing__attributes--secondary .hp-listing__attribute{font-size:.85rem;color:var(--rasp-deep);
  background:rgba(230,62,126,.09);border:1px solid rgba(230,62,126,.26);border-radius:var(--pill);padding:.4em .9em;margin:0!important}

/* Sidebar : widget des attributs primaires (prix + détails) */
.hp-page__sidebar .hp-widget,.hp-listing__attributes--primary{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:24px 22px;margin-bottom:22px}
.hp-listing__attributes--primary .hp-listing__attribute{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);color:var(--ink);font-size:.96rem}
.hp-listing__attributes--primary .hp-listing__attribute:last-child{border-bottom:none}
.hp-listing__attributes--primary .hp-listing__attribute--prix-nuit{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--rasp-deep);border-bottom:2px solid var(--border);padding-bottom:14px;margin-bottom:4px}

/* Sidebar : actions (Message / avis / signaler) */
.hp-listing__actions--primary{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:22px;display:flex;flex-direction:column;gap:12px}
.hp-listing__action--message{width:100%;justify-content:center;text-align:center}
.hp-listing__actions--secondary{display:flex;gap:10px}
.hp-listing__action--favorite,.hp-listing__action--review,.hp-listing__action--report{
  display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:.88rem;font-weight:500}
.hp-listing__action--favorite:hover{color:var(--rasp)}
.hp-listing__action--favorite .hp-icon{color:var(--rasp)}

/* Carte */
.hp-listing__map,.hp-map{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border)}

/* ===================== CATALOGUE : cartes (view-block) ===================== */
.hp-listing--view-block{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.hp-listing--view-block:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.hp-listing--view-block .hp-listing__image img{transition:transform .7s var(--ease)}
.hp-listing--view-block:hover .hp-listing__image img{transform:scale(1.05)}
.hp-listing--view-block .hp-listing__title,.hp-listing--view-block .hp-listing__title a{font-family:var(--serif);font-weight:600;font-size:1.18rem;color:var(--ink)}
/* Attributs de carte : en ligne, jamais cassés caractère par caractère */
.hp-listing--view-block .hp-listing__attributes{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 0}
.hp-listing--view-block .hp-listing__attribute{display:inline-flex!important;align-items:center;width:auto!important;max-width:none!important;flex:0 0 auto;white-space:nowrap;margin:0!important;color:var(--ink-2);font-size:.84rem}
.hp-listing--view-block .hp-listing__attribute--prix-nuit{color:var(--rasp-deep);font-weight:600;background:rgba(230,62,126,.1);border:1px solid rgba(230,62,126,.26);border-radius:var(--pill);padding:.26em .72em}
.hp-listing--view-block .hp-listing__attribute--couchages,.hp-listing--view-block .hp-listing__attribute--surface{background:var(--cream-2);border:1px solid var(--border);border-radius:var(--pill);padding:.26em .72em}

/* ===================== RECHERCHE & FILTRES ===================== */
.hp-form--listing-filter,.hp-form--listing-sort,.widget_hivepress_listing_filter{
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:22px}
.hp-form--listing-search{margin:0}

/* ===================== MODALES (connexion / inscription) ===================== */
.hp-modal__window,.hp-modal>div{border-radius:var(--r-lg)!important;overflow:hidden}
.hp-modal__title{font-family:var(--serif);font-weight:600;font-size:1.4rem;color:var(--ink)}
.hp-modal__close{color:var(--ink-2)}
.hp-form__action--user-register a,.hp-form__action--user-login a{color:var(--rasp-deep);font-weight:600}

/* ===================== VENDOR / PROFIL ===================== */
.hp-vendor__summary{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:28px 24px;text-align:center}
.hp-vendor--view-page .hp-vendor__image{width:112px;height:112px;margin:0 auto 16px;border-radius:50%;overflow:hidden;box-shadow:var(--shadow-sm);border:3px solid #fff;background:var(--cream-2)}
.hp-vendor--view-page .hp-vendor__image img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.hp-vendor__name,.hp-vendor__name a{font-family:var(--serif);font-weight:600;font-size:1.5rem;color:var(--ink);margin:0 0 4px}
.hp-vendor__details{color:var(--ink-2);font-size:.88rem;justify-content:center}
.hp-vendor__attributes--secondary{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0}
.hp-vendor__attribute{color:var(--ink-2);font-size:.9rem}
.hp-vendor__attribute--metier{font-weight:600;color:var(--rasp-deep);font-size:1rem;width:100%}
.hp-vendor__attribute--ville{display:inline-flex;align-items:center;gap:5px}
.hp-vendor__description{color:var(--ink);line-height:1.7;font-size:.96rem;margin-top:16px;text-align:left}
.hp-vendor__actions--primary{margin-top:16px}
.hp-vendor__action--message{width:100%;justify-content:center}

/* ===================== PAGINATION ===================== */
.hp-pagination{display:flex;gap:8px;justify-content:center;margin-top:40px}
.hp-pagination a,.hp-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--ink);font-weight:600}
.hp-pagination a:hover{border-color:var(--rasp);color:var(--rasp)}
.hp-pagination .current,.hp-pagination [aria-current]{background:linear-gradient(120deg,var(--rasp-br),var(--rasp));color:#fff;border-color:transparent}

/* ===================== Slider de plage (prix / surface) ===================== */
.hp-field--number-range .ui-slider{background:var(--border);height:4px;border:none;border-radius:4px;margin:14px 4px}
.hp-field--number-range .ui-slider-range{background:linear-gradient(90deg,var(--rasp),var(--gold))!important;border-radius:4px}
.hp-field--number-range .ui-slider-handle{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--rasp)!important;box-shadow:0 2px 8px rgba(230,62,126,.35);top:-8px;margin-left:-10px;cursor:grab}
.hp-field--number-range .ui-slider-handle:focus{outline:none;box-shadow:0 0 0 4px rgba(230,62,126,.2)}

/* Cases à cocher / radios cochés en framboise (filtres) */
.hp-field input[type=checkbox]:checked + span::before,.hp-field input[type=radio]:checked + span::after{background-color:var(--rasp)!important}

/* ===================== Carte OpenStreetMap (fiche) ===================== */
.li-map-wrap{margin:26px 0}
.li-map-title{font-family:var(--serif);font-size:1.35rem;font-weight:600;margin:0 0 14px;color:var(--ink)}
#li-map{height:340px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:1}
#li-map .leaflet-control-attribution{font-size:10px}

/* ===================== Ville (en évidence) ===================== */
.hp-listing__attribute--ville{font-weight:600;color:var(--ink)}
.hp-listing--view-page .hp-listing__attribute--ville{display:inline-flex;align-items:center;gap:6px;font-size:1rem;color:var(--rasp-deep)}
.hp-listing--view-block .hp-listing__attribute--ville{color:var(--ink-2);font-size:.9rem;font-weight:600}

/* ===================== Type d'arrangement (badge clair) ===================== */
.hp-listing__attribute--arrangement{display:inline-flex;align-items:center;font-size:.8rem;font-weight:600;color:var(--rasp-deep);
  background:linear-gradient(135deg,rgba(230,62,126,.16),rgba(230,62,126,.07));border:1px solid var(--rasp);border-radius:var(--pill);padding:.26em .8em;margin:0!important}

/* Catégorie (logement entier / chambre…) bien visible sur la fiche */
.hp-listing--view-page .hp-listing__categories .hp-listing__category,
.hp-listing--view-block .hp-listing__categories .hp-listing__category{font-weight:700;letter-spacing:.06em}

/* ===================== Badge de confiance (niveau_confiance) ===================== */
.hp-listing__attribute--niveau-confiance,.hp-vendor__attribute--niveau-confiance{
  display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--gold-deep);
  background:linear-gradient(135deg,rgba(224,166,60,.24),rgba(224,166,60,.1));border:1px solid var(--gold);border-radius:var(--pill);padding:.3em .8em}
