/* ============================================================
   HUZZAH KIT — feuille de style maison
   Palettes : définies dans huzzah-kit.php (variables --hz-*)
   Typographies auto-hébergées (RGPD) : Parkinsans, Inter
   ============================================================ */

@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-300-normal.woff2') format('woff2'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Parkinsans'; src: url('../uploads/huzzah-fonts/parkinsans/parkinsans-latin-800-normal.woff2') format('woff2'); font-weight: 800; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../uploads/huzzah-fonts/inter/inter-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../uploads/huzzah-fonts/inter/inter-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../uploads/huzzah-fonts/inter/inter-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Inter'; src: url('../uploads/huzzah-fonts/inter/inter-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-display: swap; }

/* ---------- Base ---------- */
body, body.ast-plain-container, .elementor-widget-text-editor {
  font-family: 'Inter', system-ui, sans-serif !important;
  font-size: 16.5px;
  line-height: 1.65;
}
h1, h2, h3, h4,
.elementor-heading-title {
  font-family: 'Parkinsans', 'Inter', sans-serif !important;
  line-height: 1.12;
  color: var(--hz-text);
}
::selection { background: var(--hz-accent); color: #fff; }

/* Grain papier subtil */
body::after {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 99;
  opacity: 0.05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Header ---------- */
.hz-header {
  position: sticky; top: 0; z-index: 50;
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--hz-bg) 82%, transparent);
  border-bottom: 1px solid var(--hz-line);
  transition: background 0.45s ease;
}
.hz-nav {
  max-width: 1176px; margin: 0 auto; padding: 15px 28px; box-sizing: border-box;
  display: flex; align-items: center; gap: 26px;
}
.hz-brand { margin-right: auto; display: inline-flex; align-items: center; }
.hz-brand svg { height: 34px; width: auto; display: block; }
.hz-logo-jour { display: none; }
[data-theme="clair"] .hz-logo-nuit { display: none; }
[data-theme="clair"] .hz-logo-jour { display: block; }

.hz-menu { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.hz-menu a {
  font-size: 15px; font-weight: 500; color: var(--hz-muted);
  text-decoration: none; transition: color 0.2s;
}
.hz-menu a:hover, .hz-menu .current-menu-item a { color: var(--hz-text); }

/* Toggle jour / nuit */
.hz-toggle {
  display: flex; align-items: center;
  border: 1.5px solid var(--hz-line); border-radius: 999px; padding: 3px;
}
.hz-toggle button {
  border: 0; background: transparent; cursor: pointer;
  width: 34px; height: 30px; border-radius: 999px;
  display: grid; place-items: center;
  color: var(--hz-muted); transition: background 0.25s, color 0.25s;
}
.hz-toggle button.active { background: var(--hz-bg-card); color: var(--hz-accent); }
.hz-toggle svg { width: 16px; height: 16px; }

/* ---------- Boutons ---------- */
a.hz-btn, .elementor-widget-button.hz-btn .elementor-button {
  display: inline-block;
  background: var(--hz-btn-bg); color: var(--hz-btn-text);
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 15px;
  padding: 12px 26px; border-radius: 999px; border: 0;
  text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s;
}
a.hz-btn:hover, .elementor-widget-button.hz-btn .elementor-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--hz-btn-bg) 32%, transparent);
  color: var(--hz-btn-text);
}
a.hz-btn-ghost, .elementor-widget-button.hz-btn-ghost .elementor-button {
  display: inline-block;
  background: transparent; border: 1.5px solid var(--hz-line);
  color: var(--hz-text); font-family: 'Inter', sans-serif; font-weight: 600; font-size: 15px;
  padding: 12px 26px; border-radius: 999px; text-decoration: none;
  transition: border-color 0.2s;
}
a.hz-btn-ghost:hover, .elementor-widget-button.hz-btn-ghost .elementor-button:hover { border-color: var(--hz-accent); color: var(--hz-text); }
.hz-cta-lg .elementor-button { padding: 16px 34px; font-size: 17px; }

/* ---------- Blocs éditoriaux ---------- */
.hz-baseline {
  font-size: 14px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--hz-muted);
}
.hz-baseline b, .hz-baseline strong { color: var(--hz-accent); font-weight: 600; }
.hz-kicker {
  font-size: 13.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--hz-accent);
}
.hz-h1 .elementor-heading-title {
  font-size: clamp(40px, 6.2vw, 64px); font-weight: 700; letter-spacing: -1px;
}
.hz-h2 .elementor-heading-title {
  font-size: clamp(30px, 4.2vw, 42px); font-weight: 700; letter-spacing: -0.6px;
}
.hz-intro, .hz-intro p { color: var(--hz-muted); font-size: 17.5px; }
.hz-lead, .hz-lead p { color: var(--hz-muted); font-size: 19px; }

/* Surligneur marqueur */
.hz-mark {
  position: relative; white-space: nowrap; z-index: 0;
}
.hz-mark::after {
  content: ''; position: absolute; left: -2%; right: -3%; bottom: 6%; height: 34%;
  background: var(--hz-accent); z-index: -1; transform: skew(-8deg) rotate(-0.6deg);
  border-radius: 3px; opacity: 0.75;
}

/* ---------- Hero ---------- */
.hz-hero { position: relative; overflow: hidden; }
.hz-hero::before {
  content: ''; position: absolute; border-radius: 50%; filter: blur(110px);
  width: 480px; height: 480px; top: -200px; right: -100px; pointer-events: none;
  background: radial-gradient(circle, color-mix(in srgb, var(--hz-accent) 26%, transparent), transparent 65%);
  opacity: 0.4;
}
[data-theme="clair"] .hz-hero::before { opacity: 0.18; }

/* Marquee */
.hz-marquee {
  border-block: 1.5px solid var(--hz-line);
  overflow: hidden; white-space: nowrap; padding: 13px 0;
}
.hz-marquee-inner { display: inline-block; animation: hz-slide 30s linear infinite; }
.hz-marquee span {
  font-family: 'Parkinsans', sans-serif; font-weight: 700;
  font-size: 18px; margin: 0 22px; letter-spacing: 0.02em; color: var(--hz-text);
}
.hz-marquee span:nth-child(even) { color: transparent; -webkit-text-stroke: 1px var(--hz-muted); }
.hz-marquee span::after { content: '·'; color: var(--hz-roof); margin-left: 44px; -webkit-text-stroke: 0; }
@keyframes hz-slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- Bande preuves ---------- */
.hz-proof-item {
  border: 1.5px solid var(--hz-line); border-radius: 16px; padding: 26px 28px;
  background: var(--hz-bg-alt); transition: background 0.45s ease;
}
.hz-proof-item .elementor-heading-title {
  font-size: 27px; font-weight: 700; color: var(--hz-accent); margin-bottom: 6px;
}
.hz-proof-item p { font-size: 15px; color: var(--hz-muted); margin: 0; }

/* ---------- Sections ---------- */
.hz-section-alt { background: var(--hz-bg-alt); transition: background 0.45s ease; }

/* ---------- Cards pourquoi ---------- */
.hz-card {
  background: var(--hz-bg-card); border: 1.5px solid var(--hz-line); border-radius: 16px;
  padding: 32px 30px !important;
  transition: transform 0.25s, background 0.45s ease, border-color 0.25s;
}
.hz-card:hover { transform: translateY(-5px); border-color: var(--hz-accent); }
.hz-card .elementor-icon-box-icon { margin-bottom: 20px; }
.hz-card .elementor-icon {
  width: 46px; height: 46px; border-radius: 12px;
  display: grid; place-items: center;
  background: color-mix(in srgb, var(--hz-accent) 14%, transparent);
  color: var(--hz-accent); font-size: 21px;
}
.hz-card .elementor-icon-box-title {
  font-size: 20px; font-weight: 700; margin-bottom: 10px; color: var(--hz-text);
}
.hz-card .elementor-icon-box-description { font-size: 15.5px; color: var(--hz-muted); }

/* ---------- Process ---------- */
.hz-steps { counter-reset: hz-step; }
.hz-step {
  position: relative; border: 1.5px solid var(--hz-line);
  border-radius: 16px; background: var(--hz-bg-card); overflow: hidden;
  padding: 30px 24px 26px !important;
  transition: background 0.45s ease;
}
.hz-step::before {
  counter-increment: hz-step; content: counter(hz-step);
  font-family: 'Parkinsans', sans-serif; font-weight: 800; font-size: 74px;
  line-height: 1; color: transparent;
  -webkit-text-stroke: 1.5px color-mix(in srgb, var(--hz-accent) 55%, transparent);
  position: absolute; top: 10px; right: 14px; user-select: none;
}
.hz-step .elementor-heading-title { font-size: 18px; font-weight: 700; margin: 34px 0 8px; }
.hz-step p { font-size: 14.5px; color: var(--hz-muted); margin: 0; }

/* ---------- Hub / carte ---------- */
.hz-map {
  position: relative; border-radius: 20px; border: 1.5px solid var(--hz-line);
  background:
    radial-gradient(circle at 30% 40%, color-mix(in srgb, var(--hz-accent) 7%, transparent), transparent 45%),
    radial-gradient(circle at 72% 62%, color-mix(in srgb, var(--hz-accent-3) 8%, transparent), transparent 45%),
    var(--hz-bg-card);
  aspect-ratio: 4 / 3.1; overflow: hidden; transition: background 0.45s ease;
}
.hz-map .hz-routes {
  position: absolute; inset: 0; opacity: 0.5;
  background-image:
    linear-gradient(var(--hz-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--hz-line) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(circle at 50% 50%, #000 30%, transparent 85%);
}
.hz-pin {
  position: absolute; width: 14px; height: 14px; border-radius: 50%;
  background: var(--hz-accent); border: 3px solid var(--hz-bg-card);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--hz-accent) 22%, transparent);
}
.hz-pin.alt2 { background: var(--hz-accent-3); box-shadow: 0 0 0 4px color-mix(in srgb, var(--hz-accent-3) 22%, transparent); }
.hz-pin-label {
  position: absolute; font-size: 12.5px; font-weight: 600; color: var(--hz-text);
  background: var(--hz-bg); border: 1.5px solid var(--hz-line); border-radius: 999px;
  padding: 5px 12px; transform: translate(14px, -34px); white-space: nowrap;
  transition: background 0.45s ease;
}
.hz-sticker {
  position: absolute; bottom: 9%; left: 8%;
  background: var(--hz-roof); color: #232323;
  font-family: 'Parkinsans', sans-serif; font-weight: 800; font-size: 15px;
  padding: 10px 18px; border-radius: 8px; transform: rotate(-5deg);
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
}
[data-theme="clair"] .hz-sticker { background: #232323; color: #F5EFE6; }

.hz-points .elementor-icon-list-item { color: var(--hz-muted); font-size: 16px; }
.hz-points .elementor-icon-list-icon { color: var(--hz-roof); }
.hz-points .elementor-icon-list-text strong { color: var(--hz-text); }
.hz-points .elementor-icon-list-text { color: var(--hz-muted); }

/* ---------- Footer ---------- */
.hz-footer { border-top: 1.5px solid var(--hz-line); padding: 46px 0 40px; background: var(--hz-bg); transition: background 0.45s ease; }
.hz-foot {
  max-width: 1176px; margin: 0 auto; padding: 0 28px; box-sizing: border-box;
  display: flex; align-items: flex-start; gap: 24px; flex-wrap: wrap;
  color: var(--hz-muted); font-size: 14px;
}
.hz-foot-brand { margin-right: auto; }
.hz-foot-brand svg { height: 26px; width: auto; }
.hz-foot-brand .hz-baseline { margin: 10px 0 0; font-size: 12px; }
.hz-foot a { color: var(--hz-muted); text-decoration: none; line-height: 2.4; }
.hz-foot a:hover { color: var(--hz-text); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .hz-menu { display: none; }
}

/* ---------- Grilles de mise en page (pilotées par le kit, contenu édité dans Elementor) ---------- */
.hz-sec { padding: 96px 28px !important; }
.hz-sec-sm { padding: 64px 28px !important; }
.hz-boxed > .e-con-inner { max-width: 1120px; }
.hz-grid-2 > .e-con-inner, .e-con-full.hz-grid-2 { display: grid !important; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.hz-grid-3 > .e-con-inner, .e-con-full.hz-grid-3 { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.hz-grid-4 > .e-con-inner, .e-con-full.hz-grid-4 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.hz-ctas { display: flex !important; flex-direction: row !important; gap: 16px; flex-wrap: wrap; }
.hz-center { text-align: center; }
.hz-center .e-con-inner { align-items: center; }
@media (max-width: 900px) {
  .hz-grid-2 > .e-con-inner, .hz-grid-3 > .e-con-inner, .hz-grid-4 > .e-con-inner,
  .e-con.hz-grid-2, .e-con.hz-grid-3, .e-con-full.hz-grid-4 { grid-template-columns: 1fr; }
  .hz-sec { padding: 72px 22px !important; }
}

/* ---------- Correctifs d'intégration ---------- */
body { background: var(--hz-bg) !important; color: var(--hz-text); }
.hz-brand svg.hz-logo-jour, .hz-foot-brand svg.hz-logo-jour { display: none; }
[data-theme="clair"] .hz-brand svg.hz-logo-nuit, [data-theme="clair"] .hz-foot-brand svg.hz-logo-nuit { display: none; }
[data-theme="clair"] .hz-brand svg.hz-logo-jour, [data-theme="clair"] .hz-foot-brand svg.hz-logo-jour { display: block; }
.hz-boxed > .e-con-inner { width: 100%; }
.hz-grid-2 > .e-con-inner, .hz-grid-3 > .e-con-inner, .hz-grid-4 > .e-con-inner { width: 100%; }
.elementor-widget-button.hz-btn .elementor-button {
  background: var(--hz-btn-bg) !important; color: var(--hz-btn-text) !important;
  border-radius: 999px !important; padding: 15px 30px !important;
  font-family: 'Inter', sans-serif !important; font-weight: 600 !important; font-size: 16px !important;
  border: 0 !important;
}
.elementor-widget-button.hz-btn-ghost .elementor-button {
  background: transparent !important; color: var(--hz-text) !important;
  border: 1.5px solid var(--hz-line) !important; border-radius: 999px !important;
  padding: 15px 30px !important;
  font-family: 'Inter', sans-serif !important; font-weight: 600 !important; font-size: 16px !important;
}
.elementor-widget-button.hz-btn-ghost .elementor-button:hover { border-color: var(--hz-accent) !important; }
.hz-cta-lg .elementor-button { padding: 17px 36px !important; font-size: 17px !important; }
.hz-card .elementor-icon-box-icon .elementor-icon,
.hz-card .elementor-icon-box-icon .elementor-icon i {
  color: var(--hz-accent) !important; fill: var(--hz-accent) !important;
}
.hz-card .elementor-icon-box-title, .hz-card .elementor-icon-box-title span { color: var(--hz-text) !important; }
.hz-card .elementor-icon-box-description { color: var(--hz-muted) !important; }
.hz-points .elementor-icon-list-icon i { color: var(--hz-roof) !important; font-size: 8px; }
.hz-points .elementor-icon-list-text { color: var(--hz-muted) !important; }
h1, h2, h3, .elementor-heading-title { color: var(--hz-text); }
.hz-ctas { padding: 10px 0 !important; }
.hz-points .elementor-icon-list-icon svg { fill: var(--hz-roof) !important; width: 8px; }
/* Numéros d'étapes : neutralise l'inset hérité du ::before des conteneurs Elementor */
.hz-step::before { inset: auto !important; top: 8px !important; right: 14px !important; left: auto !important; bottom: auto !important; width: auto !important; height: auto !important; background: none !important; }
/* Boutons : jamais étirés par le conteneur */
.elementor-widget-button.hz-btn, .elementor-widget-button.hz-btn-ghost { width: auto !important; max-width: none; }
.hz-center .elementor-widget-button { margin-inline: auto; }
.elementor-widget-button .elementor-button { width: auto; }

/* ---------- Correctifs v1.2 (retours Elsa) ---------- */
/* Bornes de sections garanties, sans dépendre du CSS généré par Elementor */
.hz-boxed > .e-con-inner { max-width: 1120px; margin-inline: auto; width: 100%; }
.e-con.e-con-boxed { max-width: none; }
/* Toggle : neutralise le padding des boutons hérité du thème */
.hz-toggle button { padding: 0 !important; min-height: 0 !important; line-height: 1 !important; display: grid !important; place-items: center !important; }
.hz-toggle svg { display: block; }
/* CTA centré quel que soit le contexte */
.hz-center .elementor-button-wrapper { text-align: center; }
.hz-center .elementor-widget-button { width: 100% !important; }
/* Carte Leaflet */
.hz-carte { height: 520px; border-radius: 20px; border: 1.5px solid var(--hz-line); overflow: hidden; }
.leaflet-popup-content-wrapper { border-radius: 12px; font-family: 'Inter', sans-serif; }
/* Formulaire de contact WPForms aux couleurs Huzzah */
.hz-form .wpforms-field input, .hz-form .wpforms-field textarea {
  background: var(--hz-bg-card) !important; color: var(--hz-text) !important;
  border: 1.5px solid var(--hz-line) !important; border-radius: 12px !important;
  padding: 13px 16px !important; font-family: 'Inter', sans-serif !important; font-size: 15.5px !important;
  width: 100% !important; max-width: 100% !important;
}
.hz-form .wpforms-field input:focus, .hz-form .wpforms-field textarea:focus { border-color: var(--hz-accent) !important; outline: none !important; }
.hz-form .wpforms-field-label { color: var(--hz-text) !important; font-weight: 600 !important; font-size: 14.5px !important; }
.hz-form .wpforms-field { padding: 10px 0 !important; }
.hz-form button[type=submit] {
  background: var(--hz-btn-bg) !important; color: var(--hz-btn-text) !important;
  border: 0 !important; border-radius: 999px !important; padding: 14px 30px !important;
  font-family: 'Inter', sans-serif !important; font-weight: 600 !important; font-size: 16px !important;
  transition: transform .18s, box-shadow .18s !important;
}
.hz-form button[type=submit]:hover { transform: translateY(-2px); box-shadow: 0 10px 24px color-mix(in srgb, var(--hz-btn-bg) 32%, transparent); }
/* Pages de contenu : listes lisibles */
.hz-intro ul { color: var(--hz-muted); }
/* Liens dans les textes */
.hz-lead a, .hz-intro a, .elementor-widget-text-editor a { color: var(--hz-accent); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--hz-accent) 45%, transparent); }
.hz-lead a:hover, .hz-intro a:hover, .elementor-widget-text-editor a:hover { border-bottom-color: var(--hz-accent); }
.hz-form .wpforms-field-description { color: var(--hz-muted) !important; font-size: 13px !important; margin-top: 6px !important; }
/* Pages classiques (mentions légales, confidentialité) : contenu borné et lisible */
.page-template-default .site-content, .page-template-default .ast-container { max-width: 860px; margin-inline: auto; }
.page-template-default .entry-content h2 { margin-top: 2em; }
/* Répertoire des lieux */
.hz-repertoire { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 8px; }
@media (max-width: 900px) { .hz-repertoire { grid-template-columns: 1fr; } }
.hz-lieu-card {
  border: 1.5px solid var(--hz-line); border-radius: 16px; padding: 24px 26px;
  background: var(--hz-bg-card); transition: border-color .25s, background .45s ease;
}
.hz-lieu-card:hover { border-color: var(--hz-accent); }
.hz-lieu-card h3 { font-size: 19px; font-weight: 700; margin: 0 0 12px; }
.hz-lieu-card h3 a { color: var(--hz-text); text-decoration: none; border-bottom: 1.5px solid color-mix(in srgb, var(--hz-accent) 45%, transparent); }
.hz-lieu-card h3 a:hover { border-bottom-color: var(--hz-accent); }
.hz-lieu-card p { color: var(--hz-muted); font-size: 15px; margin: 0; }
.hz-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.hz-tag {
  font-size: 12.5px; font-weight: 600; padding: 4px 12px; border-radius: 999px;
  border: 1.5px solid color-mix(in srgb, var(--hz-accent) 55%, transparent); color: var(--hz-accent);
}
.hz-tag-prog { border-color: color-mix(in srgb, var(--hz-roof) 65%, transparent); color: var(--hz-roof); }
[data-theme="clair"] .hz-tag-prog { color: #A96A2F; border-color: color-mix(in srgb, #D98E4A 65%, transparent); }

/* ---------- Carte v2 : popup Huzzah, empilement sous la topbar ---------- */
.hz-carte { position: relative; z-index: 1; }
.leaflet-popup-content-wrapper {
  background: var(--hz-bg-card) !important; color: var(--hz-text) !important;
  border: 1.5px solid var(--hz-line); border-radius: 14px !important;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3) !important;
}
.leaflet-popup-tip { background: var(--hz-bg-card) !important; }
.leaflet-popup-content {
  font-family: 'Inter', sans-serif !important; font-size: 14.5px; line-height: 1.5;
  margin: 15px 20px !important;
}
.leaflet-popup-content strong { font-family: 'Parkinsans', sans-serif; font-size: 15.5px; }
.leaflet-popup-content .hz-pop-ville { display: block; color: var(--hz-muted); font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin-top: 2px; }
.leaflet-popup-content em { display: block; color: var(--hz-muted); font-style: normal; font-size: 13px; margin: 6px 0 8px; }
.leaflet-popup-content a { color: var(--hz-accent) !important; font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--hz-accent) 45%, transparent); }
.leaflet-container a.leaflet-popup-close-button { color: var(--hz-muted) !important; font-size: 18px; padding: 6px 8px 0 0; }
.leaflet-container { font-family: 'Inter', sans-serif !important; }
.leaflet-bar a { background: var(--hz-bg-card) !important; color: var(--hz-text) !important; border-color: var(--hz-line) !important; }

/* ---------- Filtres du répertoire ---------- */
.hz-filtres { display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px; }
.hz-filtre-groupe { display: flex; flex-wrap: wrap; gap: 8px; }
button.hz-tag { background: transparent; cursor: pointer; font-family: 'Inter', sans-serif; transition: background 0.2s, color 0.2s, border-color 0.2s; }
button.hz-filtre:hover { border-color: var(--hz-accent); }
button.hz-filtre.active { background: var(--hz-accent); color: var(--hz-btn-text); border-color: var(--hz-accent); }
button.hz-filtre.hz-tag-prog:hover { border-color: var(--hz-roof); }
button.hz-filtre.hz-tag-prog.active { background: var(--hz-roof); color: #232323; border-color: var(--hz-roof); }
.hz-lieu-ville { color: var(--hz-muted) !important; font-size: 13px !important; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin: -6px 0 12px !important; }

/* ---------- Carte v3 : MapLibre ---------- */
.hz-dot { width: 16px; height: 16px; border-radius: 50%; border: 2.5px solid var(--hz-bg-card); cursor: pointer; }
.maplibregl-popup-content {
  background: var(--hz-bg-card) !important; color: var(--hz-text) !important;
  border: 1.5px solid var(--hz-line); border-radius: 14px !important;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.3) !important;
  font-family: 'Inter', sans-serif !important; font-size: 14.5px; line-height: 1.5;
  padding: 15px 20px !important; min-width: 180px;
}
.maplibregl-popup-content strong { font-family: 'Parkinsans', sans-serif; font-size: 15.5px; }
.maplibregl-popup-content .hz-pop-ville { display: block; color: var(--hz-muted); font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; margin-top: 2px; }
.maplibregl-popup-content em { display: block; color: var(--hz-muted); font-style: normal; font-size: 13px; margin: 6px 0 2px; }
.maplibregl-popup-content a, .leaflet-popup-content a { display: inline-block; margin-top: 8px; color: var(--hz-accent) !important; font-weight: 600; text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--hz-accent) 45%, transparent); }
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color: var(--hz-bg-card) !important; }
.maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: var(--hz-bg-card) !important; }
.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--hz-bg-card) !important; }
.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--hz-bg-card) !important; }
.maplibregl-popup-close-button { color: var(--hz-muted) !important; font-size: 17px; right: 6px; top: 4px; }
.maplibregl-cooperative-gesture-screen { font-family: 'Inter', sans-serif; border-radius: 20px; }

/* Pages classiques (mentions légales, confidentialité) : titres lisibles dans les deux modes */
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4,
.ast-single-entry-banner .entry-title, .entry-header .entry-title {
  color: var(--hz-text) !important;
}
.entry-content, .entry-content p, .entry-content li { color: var(--hz-muted); }
.entry-content a { color: var(--hz-accent); }

/* Confirmation du formulaire de contact aux couleurs Huzzah */
.wpforms-confirmation-container-full, div[submit-success] > .wpforms-confirmation-container-full {
  background: var(--hz-bg-card) !important;
  border: 1.5px solid color-mix(in srgb, var(--hz-accent) 55%, transparent) !important;
  border-radius: 16px !important;
  color: var(--hz-text) !important;
  padding: 26px 30px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px;
}
.wpforms-confirmation-container-full p { color: var(--hz-text) !important; margin: 0; }
.wpforms-confirmation-container-full p::before { content: '✓  '; color: var(--hz-accent); font-weight: 700; }

/* ---------- Page L'offre : packs et tarifs ---------- */
.hz-pack { position: relative; }
.hz-pack-badge {
  position: absolute; top: -14px; right: 20px;
  background: var(--hz-accent); color: var(--hz-btn-text);
  font-family: 'Parkinsans', sans-serif; font-weight: 700; font-size: 12.5px;
  padding: 5px 14px; border-radius: 999px; letter-spacing: 0.04em;
}
[data-theme="clair"] .hz-pack-badge { color: #F5EFE6; }
.hz-pack-prix .elementor-heading-title { font-size: 30px !important; font-weight: 800 !important; color: var(--hz-accent) !important; }
.hz-pack-prix .elementor-heading-title small { font-size: 14px; font-weight: 600; color: var(--hz-muted); display: block; letter-spacing: 0.06em; text-transform: uppercase; }
.hz-pack-cible, .hz-pack-cible p { color: var(--hz-muted) !important; font-size: 14.5px !important; font-style: italic; }
.hz-pack ul { list-style: none; margin: 14px 0 0; padding: 0; }
.hz-pack ul li { position: relative; padding-left: 22px; margin-bottom: 9px; color: var(--hz-muted); font-size: 14.8px; line-height: 1.5; }
.hz-pack ul li::before { content: '✓'; position: absolute; left: 0; color: var(--hz-accent); font-weight: 700; }
.hz-mini { padding: 18px 22px !important; }
.hz-mini .elementor-heading-title { font-size: 16.5px !important; font-weight: 700 !important; color: var(--hz-text) !important; margin-bottom: 4px; }
.hz-mini p { font-size: 13.5px !important; margin: 0; }
.hz-tarif-note, .hz-tarif-note p { color: var(--hz-muted); font-size: 14px !important; }
