/* ==========================================================================
   horizon-pages.css -- HABILLAGE "Horizon" : accorde au theme tout ce qui
   n'est pas une brique (resultats de recherche, tunnel, compte, contact,
   pages de contenu, page de point de retrait). Charge quand
   site_habillage = horizon (variants/habillage/horizon.json), apres base.css
   et css/horizon.css. Tout est prefixe body.hab-horizon (classe posee par
   entete/menu.html) : sans habillage, rien ne change.
   Memes codes que les briques Horizon : titres serres et graisses, cartes a
   filet vert pale et coins de 14px, bouton d'action couleur d'accent (celui
   de la carte de reservation), onglets et etiquettes en encre.
   ========================================================================== */

body.hab-horizon{background:#fff;color:var(--hz-ink)}

/* Titres de page : ceux des sections Horizon */
body.hab-horizon .page-contenu>h1,body.hab-horizon .fz-title,body.hab-horizon .accueil-edito h2,body.hab-horizon .pretrait-autres h2,
body.hab-horizon .rtl-avis-title,body.hab-horizon main>h1{font-family:var(--font-display);font-weight:800;letter-spacing:-.045em;line-height:1.12;color:var(--hz-ink)}
body.hab-horizon .page-contenu>h1,body.hab-horizon .fz-title,body.hab-horizon main>h1{font-size:clamp(34px,3.4vw,48px)}
body.hab-horizon .fz-title::after,body.hab-horizon .page-contenu>h1::after{background:var(--hz-lime);height:4px}
body.hab-horizon .edito-desc a,body.hab-horizon .page-contenu a:not([class]){color:var(--hz-green)}

/* Cartes */
body.hab-horizon .contact-card,body.hab-horizon .confirm-prod.cp,body.hab-horizon .confirm-prod.fz-recap,body.hab-horizon .fz-card,
body.hab-horizon #suiteresa>*:not(script),body.hab-horizon .compte-cmd,body.hab-horizon .rtl-avis-card{
  background:#fff;border:1px solid var(--hz-line);border-radius:14px;box-shadow:0 10px 30px color-mix(in srgb,var(--hz-ink) 6%,transparent)}
body.hab-horizon .confirm-prod.cp{border-top:4px solid var(--hz-lime)}
body.hab-horizon .contact-card h2,body.hab-horizon .contact-card h3,body.hab-horizon .fz-card h2,body.hab-horizon .cp h4,body.hab-horizon .fz-tunnel h2,body.hab-horizon .fz-tunnel h3,body.hab-horizon .compte-cmd h2,
body.hab-horizon .cp .conf_categ,body.hab-horizon .fz-recap .conf_categ{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;color:var(--hz-ink)}
body.hab-horizon .cp .conf_categ,body.hab-horizon .fz-recap .conf_categ{font-size:24px}

/* Resultats */
body.hab-horizon .cp-left .confirm-prod-auto{border-radius:10px}
body.hab-horizon .cp .carac-prod li{border-radius:40px;background:var(--hz-pale);border:1px solid var(--hz-line);font-weight:600}
body.hab-horizon .cp .promo{background:var(--hz-ink);color:#fff;border-radius:5px;text-transform:uppercase;letter-spacing:.06em;font-size:10px}
body.hab-horizon .cp .laststock{background:var(--hz-lime-pale);color:var(--hz-ink);border-radius:5px}
body.hab-horizon .cp .tarifstock{border-radius:5px;background:var(--hz-pale)}
body.hab-horizon .cp-right{background:linear-gradient(145deg,var(--hz-cream),var(--hz-mint));border-radius:12px;border:1px solid var(--hz-line)}
body.hab-horizon .cp .confirm-tarif{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;color:var(--hz-ink)}
body.hab-horizon .cp .carac-option li>span:first-child{background:var(--hz-green)}

/* Boutons d'action : celui de la carte de reservation Horizon */
body.hab-horizon .cp a.confirmresa,body.hab-horizon .fz-pay,body.hab-horizon .sr-vide-cta{
  background:var(--hz-lime);color:var(--hz-on-lime);border:0;border-radius:9px;box-shadow:none;font-family:var(--font-display);font-weight:800}
body.hab-horizon .cp a.confirmresa:hover,body.hab-horizon .fz-pay:hover,body.hab-horizon .sr-vide-cta:hover{background:color-mix(in srgb,var(--hz-lime) 78%,#fff);color:var(--hz-on-lime)}
/* Boutons secondaires (envoyer, se connecter, creer un compte) : encre */
body.hab-horizon .contact-submit,body.hab-horizon .compte .contact-submit,body.hab-horizon #modifier_compte.contact-submit{background:var(--hz-ink);color:#fff;border:0;border-radius:9px;box-shadow:none;font-family:var(--font-display);font-weight:800}
body.hab-horizon .contact-submit:hover,body.hab-horizon .compte .contact-submit:hover{background:color-mix(in srgb,var(--hz-ink) 82%,#fff);color:#fff}

/* Tunnel */
body.hab-horizon .fz-tab{border-radius:40px;font-weight:700}
body.hab-horizon .fz-tab.on{background:var(--hz-ink);color:#fff;border-color:var(--hz-ink)}
body.hab-horizon .fz-recap-img{border-radius:10px}

/* Champs */
body.hab-horizon .contact-field input,body.hab-horizon .contact-field textarea,body.hab-horizon .fz-form input[type=text],body.hab-horizon .fz-form input[type=email],
body.hab-horizon .fz-form input[type=tel],body.hab-horizon .fz-form input[type=password],body.hab-horizon .fz-form textarea,body.hab-horizon .fz-form select{border-radius:8px;border-color:color-mix(in srgb,var(--hz-green) 12%,#cdd3cd)}
body.hab-horizon .contact-field input:focus,body.hab-horizon .contact-field textarea:focus,body.hab-horizon .fz-form input:focus,body.hab-horizon .fz-form textarea:focus{border-color:var(--hz-green);box-shadow:0 0 0 2px color-mix(in srgb,var(--hz-green) 13%,transparent)}

/* Compte */
body.hab-horizon .compte-table th{background:var(--hz-pale);color:var(--hz-ink)}

/* Page de point de retrait */
body.hab-horizon .reassure-item,body.hab-horizon .paveaccueil{background:#fff;border:1px solid var(--hz-line);border-radius:14px;box-shadow:none}
body.hab-horizon .reassure-item b,body.hab-horizon .paveaccueil h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;color:var(--hz-ink)}
body.hab-horizon .paveaccueil b{background:var(--hz-ink);color:#fff}
body.hab-horizon .fblanc{background:none}
body.hab-horizon .pretrait-card,body.hab-horizon .pretrait-pastilles a{border:1px solid var(--hz-line);border-radius:40px;background:#fff}
body.hab-horizon .pretrait-card:hover,body.hab-horizon .pretrait-pastilles a:hover{border-color:var(--hz-green)}
body.hab-horizon .sr-reassurance{border-radius:14px;border-color:var(--hz-line)}

/* ───────── LARGEURS, TUNNEL, PAGES (27/09) ─────────
   Memes corrections que les autres themes : tout le contenu prend la
   largeur de l'en-tete et du hero Horizon (.hz-wrap : 1240 px), au lieu de
   la largeur de base du site (front_maxw) : resultats, tunnel, contact,
   compte, pages de contenu, page de point de retrait. */
body.hab-horizon #entour_infos{width:min(1240px,calc(100% - 64px));max-width:none;margin-left:auto;margin-right:auto;padding:0;box-sizing:border-box}
body.hab-horizon #entour_infos .largeur:not(.sr-vide){max-width:none;padding-left:0;padding-right:0}
body.hab-horizon :is(.accueil-edito.largeur,.pretrait-autres.largeur,main.largeur,.avisbas .rtl-avis.largeur,section.reassure.largeur){width:min(1240px,calc(100% - 64px));max-width:none;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;box-sizing:border-box}
/* recapitulatif "Votre location" : base.css le remonte de 34 px sur le hero
   du gabarit classique ; ici il se pose sous le hero */
body.hab-horizon .resa-recap{margin-top:24px}
/* tunnel affiche : le client finit sa reservation sans distraction, le
   contenu de la page (sections, texte, paves, autres points) est masque */
body.hab-horizon:has(#confirm_vehicule .fselection) :is(.hz-page,.accueil-edito,main.largeur:not(.contact):not(.compte),.pretrait-autres,.avisbas,section.reassure){display:none}
/* paves de reassurance : pas deux fois quand le hero les montre deja */
body.hab-horizon:has(#resa .hz-hero-inclusions span) section.reassure{display:none}
/* page de point de retrait : de l'air, titres a l'echelle */
body.hab-horizon .accueil-edito{padding-top:48px}
body.hab-horizon .accueil-edito h2{font-size:clamp(28px,3vw,40px);margin-bottom:22px}
body.hab-horizon .accueil-edito+main.largeur{padding-top:8px;padding-bottom:0}
body.hab-horizon .pretrait-autres{padding-top:40px;padding-bottom:64px}
body.hab-horizon .pretrait-autres h2{font-size:clamp(24px,2.4vw,32px);margin-bottom:18px}
body.hab-horizon .avisbas:not(:has(.rtl-avis-head)){display:none}
body.hab-horizon .accueil-edito .edito-desc:empty{display:none}
/* "Aucun vehicule disponible" : un avertissement compact */
body.hab-horizon .sr-vide{max-width:820px;margin:18px auto;padding:14px 18px;gap:14px;box-shadow:none;border:1px solid var(--hz-line);border-left:4px solid var(--hz-green);border-radius:12px}
body.hab-horizon .sr-vide-ic{width:38px;height:38px}
body.hab-horizon .sr-vide-cta{padding:10px 16px;font-size:13px}
/* resultats : le bloc prix reste en haut de sa colonne */
@media(min-width:981px){
  body.hab-horizon .cp-grid{align-items:start}
  body.hab-horizon .cp-right{justify-content:flex-start;position:sticky;top:110px}
}
/* page contact : texte d'introduction dans la couleur du texte */
body.hab-horizon .contact>.contact-intro,body.hab-horizon .contact>.contact-intro :is(p,li,span){color:color-mix(in srgb,var(--hz-ink) 82%,#fff);font-size:16px;line-height:1.65}
body.hab-horizon .contact>.contact-intro :is(b,strong){color:var(--hz-ink)}
@media(max-width:780px){
  body.hab-horizon #entour_infos,body.hab-horizon :is(.accueil-edito.largeur,.pretrait-autres.largeur,main.largeur,.avisbas .rtl-avis.largeur,section.reassure.largeur){width:calc(100% - 36px)}
}
