/* En-tête et pied de page des sites .pro (includes/habillage.php).
   Couleurs de la vitrine : --avt-couleur, --avt-couleur-fonce, --avt-couleur-clair. */
.avt-entete, .avt-pied { --avt-encre:#15181d; --avt-gris:#5b6470; --avt-ligne:#e6e8ec; font-family:inherit; line-height:1.4; }
.avt-entete *, .avt-pied * { box-sizing:border-box; }
.avt-wrap { max-width:1200px; margin:0 auto; padding:0 20px; display:flex; align-items:center; gap:20px; }
.avt-ico { flex:none; }
.avt-entete a, .avt-pied a { text-decoration:none; color:inherit; }

/* Bandeau */
.avt-bandeau { background:var(--avt-couleur-fonce); color:#fff; font-size:13px; }
.avt-bandeau .avt-wrap { justify-content:center; gap:32px; min-height:36px; }
.avt-bandeau span { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.avt-bandeau .avt-ico { width:17px; height:17px; opacity:.9; }

/* Barre principale */
.avt-entete { position:sticky; top:0; z-index:100; }
.admin-bar .avt-entete { top:32px; }
.avt-barre { background:#fff; border-bottom:1px solid var(--avt-ligne); box-shadow:0 1px 8px rgba(16,24,40,.04); }
.avt-barre .avt-wrap { min-height:76px; }
.avt-marque { flex:none; display:flex; align-items:center; }
.avt-logo img { display:block; max-height:52px; width:auto; height:auto; max-width:230px; }
.avt-logo-texte { font-size:22px; font-weight:700; letter-spacing:-.01em; color:var(--avt-encre); }
.avt-pro { display:inline-block; margin-left:6px; padding:2px 7px; border-radius:6px; background:var(--avt-couleur); color:#fff; font-size:.55em; font-weight:700; text-transform:uppercase; letter-spacing:.06em; vertical-align:middle; }
.avt-nav { display:flex; align-items:center; gap:4px; margin-left:12px; }
.avt-nav a { padding:9px 14px; border-radius:8px; font-size:15px; font-weight:500; color:var(--avt-encre); }
.avt-nav a:hover { background:var(--avt-couleur-clair); color:var(--avt-couleur-fonce); }
.avt-nav-mobile { display:none; }
.avt-actions { margin-left:auto; display:flex; align-items:center; gap:6px; }
.avt-tel { display:inline-flex; align-items:center; gap:8px; margin-right:8px; padding:9px 14px; border:1px solid var(--avt-ligne); border-radius:999px; font-weight:600; font-size:14.5px; color:var(--avt-encre); white-space:nowrap; }
.avt-tel .avt-ico { color:var(--avt-couleur); width:18px; height:18px; }
.avt-tel:hover { border-color:var(--avt-couleur); }
.avt-action { position:relative; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:10px; color:var(--avt-encre); cursor:pointer; }
.avt-action:hover { background:var(--avt-couleur-clair); color:var(--avt-couleur-fonce); }
.avt-action .avt-ico { width:23px; height:23px; }
.avt-panier-n { position:absolute; top:3px; right:1px; min-width:19px; height:19px; padding:0 5px; border-radius:10px; background:var(--avt-couleur); color:#fff; font-size:11.5px; font-weight:700; line-height:19px; text-align:center; }
.avt-panier-n[hidden] { display:none; }
.avt-burger { display:none; }

/* Pied de page */
.avt-pied { background:#15181d; color:#c9ced6; font-size:14.5px; margin-top:0; }
.avt-pied-cols { display:grid; grid-template-columns:1.4fr 1.1fr 1fr 1fr; gap:40px; align-items:start; padding-top:52px; padding-bottom:44px; }
.avt-pied-racine { grid-template-columns:2fr 1fr; }
.avt-pied p { margin:0 0 10px; }
.avt-pied-marque { font-size:20px; font-weight:700; color:#fff; }
.avt-pied-note { font-size:13px; color:#8d95a1; }
.avt-pied-titre { font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#fff; margin-bottom:14px !important; }
.avt-pied ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.avt-pied-infos li, .avt-pied-horaires { display:flex; gap:10px; align-items:flex-start; }
.avt-pied .avt-ico { width:18px; height:18px; margin-top:1px; color:var(--avt-couleur-clair); }
.avt-pied a:hover { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.avt-pied-bas { border-top:1px solid rgba(255,255,255,.1); font-size:13px; color:#8d95a1; }
.avt-pied-bas .avt-wrap { justify-content:space-between; flex-wrap:wrap; min-height:56px; gap:10px 24px; }
.avt-pied-legal { display:flex; flex-wrap:wrap; gap:6px 20px; }

/* Le thème ajoute des marges autour des parties de modèle : on les neutralise. */
.wp-site-blocks > .avt-pied, .wp-site-blocks > footer:has(.avt-pied) { margin-block-start:0; }

@media (max-width:1000px) {
  .avt-pied-cols { grid-template-columns:1fr 1fr; }
  .avt-bandeau-3 { display:none !important; }
  .avt-tel span { display:none; }
  .avt-tel { padding:0; width:44px; height:44px; justify-content:center; border:0; margin:0; }
  .avt-tel .avt-ico { width:23px; height:23px; }
}
@media (max-width:760px) {
  .avt-wrap { padding:0 16px; gap:10px; }
  .avt-bandeau-2 { display:none !important; }
  .avt-barre .avt-wrap { min-height:64px; flex-wrap:wrap; }
  .avt-logo img { max-height:40px; max-width:170px; }
  .avt-burger { display:inline-flex; }
  .avt-compte { display:none; }
  .avt-nav { display:none; order:10; flex-basis:100%; flex-direction:column; align-items:stretch; margin:0 0 12px; border-top:1px solid var(--avt-ligne); padding-top:8px; }
  .avt-nav-case:checked ~ .avt-nav { display:flex; }
  .avt-nav-mobile { display:block; }
  .avt-pied-cols { grid-template-columns:1fr; gap:28px; padding-top:40px; }
  .admin-bar .avt-entete { top:0; }
}

/* ---------------- Pied complet des thèmes de vitrine (avt_theme_pied, theme.php) ----------------
   Mise en page commune ; couleurs et polices dans assets/themes/<thème>.css. */
.avt-tp { --tp-ligne:rgba(127,127,127,.24); --tp-accent:var(--avt-couleur, #bf4040); font-size:14px; line-height:1.55; }
.avt-tp * { box-sizing:border-box; }
.avt-tp a { color:inherit; text-decoration:none; }
.avt-tp a:hover { text-decoration:underline; text-underline-offset:3px; }
.avt-tp p, .avt-tp ul, .avt-tp dl { margin:0; }
.avt-tp-in { max-width:1280px; margin:0 auto; padding:0 40px; }
.avt-tp-cols { display:grid; grid-template-columns:1.35fr 1fr 1.1fr 1fr; gap:40px; padding-top:56px; padding-bottom:40px; }
.avt-tp-logo { display:inline-flex; background:#fff; border-radius:8px; padding:8px 10px; margin-bottom:16px; }
.avt-tp-logo img { max-height:48px; max-width:170px; width:auto; height:auto; display:block; }
.avt-tp-nom { font-size:19px; font-weight:700; margin-bottom:8px !important; }
.avt-tp-texte { max-width:340px; opacity:.86; }
.avt-tp-google { display:inline-flex; align-items:center; gap:8px; margin-top:18px; padding:9px 14px; border:1px solid var(--tp-ligne); border-radius:999px; font-weight:600; font-size:13.5px; }
.avt-tp-google:hover { text-decoration:none !important; border-color:currentColor; }
.avt-tp-google .avt-ico { width:16px; height:16px; color:#f5a623; }
.avt-tp-titre { font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; opacity:.72; margin-bottom:16px !important; }
.avt-tp-infos, .avt-tp-liens, .avt-tp-garanties { list-style:none; padding:0; }
.avt-tp-infos li { display:flex; gap:11px; margin:0 0 13px; }
.avt-tp-infos .avt-ico, .avt-tp-garanties .avt-ico { width:18px; height:18px; flex:none; margin-top:2px; color:var(--tp-accent); }
.avt-tp-iti { display:block; margin-top:5px; font-size:13px; font-weight:600; }
.avt-tp-horaires > div { display:flex; justify-content:space-between; gap:14px; padding:7px 0; border-bottom:1px solid var(--tp-ligne); }
.avt-tp-horaires > div:first-child { padding-top:0; }
.avt-tp-horaires dt { font-weight:600; }
.avt-tp-horaires dd { margin:0; text-align:right; white-space:nowrap; }
.avt-tp-horaires .is-ferme dd { opacity:.55; }
.avt-tp-liens li { margin:0 0 11px; }
.avt-tp-garanties { display:flex; flex-wrap:wrap; gap:12px 34px; padding:20px 0; border-top:1px solid var(--tp-ligne); }
.avt-tp-garanties li { display:flex; align-items:center; gap:10px; margin:0; font-weight:600; font-size:13.5px; }
.avt-tp-garanties .avt-ico { margin-top:0; }
.avt-tp-bas { border-top:1px solid var(--tp-ligne); }
.avt-tp-bas .avt-tp-in { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; padding-top:18px; padding-bottom:18px; font-size:13px; opacity:.85; }
.avt-tp-legal { display:flex; flex-wrap:wrap; gap:6px 18px; }
.avt-tp-legal a { text-decoration:underline; text-underline-offset:3px; }
.avt-tp-host { font-family:'JetBrains Mono', ui-monospace, monospace; font-size:12px; }
.avt-tp-alsagom { background:#000; color:#fff; font-size:12.5px; line-height:1.5; }
.avt-tp-alsagom .avt-tp-in { display:flex; flex-wrap:wrap; gap:4px 12px; padding-top:13px; padding-bottom:13px; }
.avt-tp .avt-tp-alsagom a { color:#fff !important; font-weight:600; }
.avt-tp-alsagom-note { color:#cfcfcf; }
.avt-tp-dev { margin-left:auto; color:#cfcfcf; }
@media (max-width:600px) { .avt-tp-dev { margin-left:0; } }
@media (max-width:1000px) { .avt-tp-cols { grid-template-columns:1fr 1fr; gap:32px 40px; } }
@media (max-width:640px) {
  .avt-tp-in { padding:0 20px; }
  .avt-tp-cols { grid-template-columns:1fr; gap:28px; padding-top:40px; padding-bottom:28px; }
  .avt-tp-garanties { flex-direction:column; gap:10px; }
  .avt-tp-bas .avt-tp-in { flex-direction:column; }
}

/* ---------------- Carte d'accès réelle (avt_carte_html) ---------------- */
.avt-carte { position:relative; overflow:hidden; min-height:260px; background:#e8eaed; }
.avt-carte-fond { position:absolute !important; inset:0; width:100%; height:100%; z-index:0; }
.avt-carte .leaflet-container { font:inherit; background:#e8eaed; }
.avt-carte .leaflet-control-attribution { font-size:10.5px; }
.avt-carte-repere span { display:block; width:30px; height:30px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); border:3px solid #fff; box-shadow:0 4px 10px rgba(0,0,0,.35); }
.avt-carte-repere span::after { content:''; position:absolute; left:50%; top:50%; width:9px; height:9px; margin:-4.5px 0 0 -4.5px; border-radius:50%; background:#fff; }
.avt-carte-repere { position:relative; }
.avt-carte::before, .avt-carte::after { content:none !important; display:none !important; }
.avt-carte-lien { position:absolute; left:12px; bottom:12px; z-index:500; display:inline-flex; align-items:center; gap:7px; background:#fff; color:#15181d !important; padding:9px 14px; border-radius:8px; font-weight:700; font-size:13.5px; text-decoration:none !important; box-shadow:0 6px 18px -6px rgba(0,0,0,.35); }
.avt-carte-lien .avt-ico { width:16px; height:16px; color:var(--avt-couleur, #bf4040); }
.avt-carte-lien:hover { background:#f5f5f5; }

/* ---------------- Section avis des thèmes (avt_theme_avis_section) ---------------- */
.avt-tavis { padding:clamp(48px, 6vw, 80px) 0; }
.avt-tavis-in { max-width:1280px; margin:0 auto; padding:0 40px; }
.avt-tavis-tete { margin-bottom:28px; max-width:640px; }
.avt-tavis-sur { display:block; font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--avt-couleur, #bf4040); margin-bottom:8px; }
.avt-tavis-tete h2 { margin:0 0 8px; font-size:clamp(26px, 3vw, 34px); line-height:1.15; }
.avt-tavis-tete p { margin:0; opacity:.75; }
@media (max-width:640px) { .avt-tavis-in { padding:0 20px; } }
