/* ==========================================================================
   Éléments communs aux sites vitrines et au site traiteur : avis clients,
   allergènes, pages légales, bandeau de consentement, carte à la demande.
   Couleurs : variables du thème (inc/theme.php). Source unique :
   sites/_template/assets/css/commun.css (recopié dans le site traiteur).
   ========================================================================== */

/* ── Avis clients ─────────────────────────────────────────────────────── */
.avis-bloc{padding:3.5rem 0}
.avis-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.6rem}
.avis-tete h2{margin-bottom:0}
.avis-note{display:flex;align-items:center;gap:.8rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:.7rem 1.1rem}
.avis-note-chiffre{font-family:var(--font-display);font-size:2.6rem;font-weight:700;line-height:1;color:var(--txt)}
.avis-note-detail{display:flex;flex-direction:column;gap:.15rem;font-size:.92rem;line-height:1.3}
.avis-note-detail small{color:var(--muted);font-size:.78rem}
.avis-etoiles{position:relative;display:inline-block;font-size:1.05rem;line-height:1;letter-spacing:.12em;white-space:nowrap}
.avis-etoiles::before{content:"★★★★★";color:rgba(127,127,127,.35)}
.avis-etoiles::after{content:"★★★★★";color:#f2a900;position:absolute;left:0;top:0;overflow:hidden;width:calc(var(--note,5) / 5 * 100%)}
.avis-grille{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.avis-carte{margin:0;display:flex;flex-direction:column;gap:.7rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.3rem 1.4rem;box-shadow:var(--shadow,none)}
.avis-carte blockquote{margin:0;font-size:1rem;line-height:1.6;flex:1}
.avis-carte figcaption{display:flex;flex-wrap:wrap;gap:.2rem .8rem;align-items:baseline;font-size:.88rem;color:var(--muted)}
.avis-carte figcaption strong{color:var(--txt);font-weight:700}
.avis-carte figcaption a{color:inherit}
.avis-transparence{margin:1.2rem 0 0;font-size:.82rem;color:var(--muted);max-width:70ch}
.avis-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0 0}

/* ── Allergènes ───────────────────────────────────────────────────────── */
.allergenes{margin:.3rem 0 0;font-size:.84rem;color:var(--muted);line-height:1.45}
.allergenes b{font-weight:600;color:inherit}
.allergenes-legende{margin:1.2rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.5}
.allergenes-legende strong{color:var(--txt)}

/* ── Pages légales ────────────────────────────────────────────────────── */
.legal{padding:1rem 0 4rem;max-width:860px}
.legal-bloc{margin:0 0 2.2rem}
.legal-bloc h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin:0 0 .7rem}
.legal-bloc p,.legal-bloc li{line-height:1.65}
.legal-liste{list-style:none;padding:0;margin:0 0 1rem}
.legal-liste li{padding:.35rem 0;border-bottom:1px dashed var(--line)}
.legal-liste span,.legal-etiquette{display:inline-block;min-width:13rem;font-weight:600}
.legal-tableau{overflow-x:auto;margin:0 0 1rem;border:1px solid var(--line);border-radius:var(--radius)}
.legal-tableau table{border-collapse:collapse;width:100%;min-width:640px;font-size:.9rem}
.legal-tableau th,.legal-tableau td{text-align:left;vertical-align:top;padding:.65rem .8rem;border-bottom:1px solid var(--line)}
.legal-tableau thead th{background:var(--bg-alt,rgba(127,127,127,.08));font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
.legal-tableau tbody tr:last-child th,.legal-tableau tbody tr:last-child td{border-bottom:0}
.legal-choix{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.legal-choix .btn,.legal-bloc .btn{padding:.5rem .95rem;font-size:.92rem}

/* ── Bandeau de consentement ─────────────────────────────────────────── */
.consentement{position:fixed;z-index:200;left:1rem;bottom:1rem;width:min(420px,calc(100% - 2rem));background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 18px 50px rgba(0,0,0,.28);padding:1.1rem 1.2rem}
.consentement[hidden]{display:none}
.consentement-titre{font-weight:700;font-size:1.02rem;margin:0 0 .35rem}
.consentement-texte{font-size:.9rem;line-height:1.5;margin:0 0 .8rem;color:var(--muted)}
.consentement-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.consentement-actions .btn{width:100%;justify-content:center;padding:.65rem .8rem;font-size:.95rem}
.consentement-lien{margin:.6rem 0 0;font-size:.82rem}
@media (max-width:1080px){.consentement{bottom:calc(84px + env(safe-area-inset-bottom))}}

/* ── Carte Google à la demande ───────────────────────────────────────── */
.map-differee{position:relative;display:grid;place-items:center;background:
  repeating-linear-gradient(45deg,rgba(127,127,127,.06) 0 12px,transparent 12px 24px),var(--bg-alt,rgba(127,127,127,.08))}
.map-placeholder{text-align:center;padding:2rem 1.5rem;max-width:30rem}
.map-placeholder p{margin:0 0 .6rem}
.map-placeholder .map-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1rem}

/* ── Fermetures exceptionnelles ──────────────────────────────────────── */
.fermeture-note{display:flex;gap:.6rem;align-items:flex-start;margin:.8rem 0 0;padding:.7rem .9rem;border-radius:var(--radius);background:rgba(231,76,60,.1);border:1px solid rgba(231,76,60,.35);font-size:.9rem;line-height:1.45}
.fermeture-note strong{display:block}

/* ── Signature du studio (inc/signature.php) ─────────────────────────── */
/* Le composant se place en position fixe par défaut : une règle de la page
   l'emporte sur :host et le range dans le pied de page. */
.signature-studio{display:flex;justify-content:center;margin:1.4rem 0 .2rem;min-height:44px}
.signature-studio monolith-sig{position:static;display:inline-block}
.monolith-credit{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}

@media print{.consentement,.avis-actions,.signature-studio{display:none}}
