/* ============================================================
   QYLINE — styles de base des sites créés avec l'éditeur
   ------------------------------------------------------------
   Copiée dans chaque site publié (_qyline/qb.css). Toutes les
   règles visent les classes qb-… : un template importé garde son
   propre style, et une section ajoutée de la bibliothèque y
   apporte le sien sans rien déranger autour.

   Les couleurs, polices et l'arrondi viennent des réglages du
   site (variables --qb-…, écrites dans chaque page).
   Écrans : tablette ≤ 1024 px, mobile ≤ 767 px.
   ============================================================ */

/* ---------- Une page créée dans QYLINE (sans template) ---------- */
.qb-site{margin:0;font-family:var(--qb-police-texte);color:var(--qb-texte);background:var(--qb-fond);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.qb-site *,.qb-site *::before,.qb-site *::after{box-sizing:border-box}
/* Spécificité nulle : un bouton, un logo, une image réglée gardent leurs propres couleurs et tailles. */
:where(.qb-site) img{max-width:100%;height:auto}
:where(.qb-site) a{color:var(--qb-primaire)}

/* ---------- Sections ---------- */
.qb-section,.qb-entete{box-sizing:border-box;font-family:var(--qb-police-texte);color:var(--qb-texte);line-height:1.6}
.qb-section *,.qb-entete *{box-sizing:border-box}
.qb-section{position:relative;padding:clamp(56px,8vw,104px) 24px}
.qb-section-courte{padding-top:44px;padding-bottom:44px}
/* Sans priorité (:where) : dans une page de template, les titres, paragraphes et
   liens des éléments ajoutés prennent le style du template. */
:where(.qb-section,.qb-entete) :where(h1,h2,h3,h4,h5,h6){font-family:var(--qb-police-titres);line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;color:inherit}
:where(.qb-section) :where(h1){font-size:clamp(2.2rem,5.2vw,3.9rem);font-weight:800}
:where(.qb-section) :where(h2){font-size:clamp(1.75rem,3.4vw,2.6rem);font-weight:750}
:where(.qb-section) :where(h3){font-size:1.3rem;font-weight:700}
:where(.qb-section) :where(h4){font-size:1.02rem;font-weight:700}
:where(.qb-section) :where(p){margin:0 0 1em}
:where(.qb-section) :where(img){max-width:100%;height:auto}
:where(.qb-section) :where(a:not([class])){color:var(--qb-primaire)}
.qb-boite{max-width:1160px;margin-left:auto;margin-right:auto}
.qb-etroit{max-width:760px}
.qb-centre{text-align:center}
.qb-centre .qb-actions,.qb-actions.qb-centre{justify-content:center}
.qb-intro{max-width:720px;margin:0 0 clamp(32px,5vw,52px)}
.qb-intro.qb-centre{margin-left:auto;margin-right:auto}
.qb-intro :where(p:last-child){margin-bottom:0}
.qb-surtitre{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--qb-primaire);margin:0 0 .9em}
.qb-chapo{font-size:1.15rem;opacity:.86}
.qb-discret{opacity:.72;font-size:.95rem}
.qb-fond-doux{background:#f5f7fb;background:color-mix(in srgb,var(--qb-primaire) 5%,var(--qb-fond))}
.qb-fond-primaire{background:var(--qb-primaire);color:#fff}
.qb-fond-primaire .qb-surtitre,.qb-fond-image .qb-surtitre{color:inherit;opacity:.85}
.qb-fond-primaire .qb-bouton:not(.qb-bouton--contour):not(.qb-bouton--lien){background:#fff;color:var(--qb-primaire);border-color:#fff}
.qb-fond-primaire .qb-bouton--contour,.qb-fond-image .qb-bouton--contour{color:#fff;border-color:#fff}
.qb-fond-primaire .qb-carte{color:var(--qb-texte)}
.qb-fond-image{color:#fff;background-color:var(--qb-secondaire)}

/* ---------- En-tête et grand titre ---------- */
.qb-entete{position:relative;z-index:20;padding:14px 24px;background:var(--qb-fond);border-bottom:1px solid rgba(17,26,51,.07)}
.qb-entete-ligne{display:flex;align-items:center;gap:16px 28px}
.qb-entete-ligne .qb-menu{margin-left:auto}
.qb-hero{min-height:min(86vh,760px);display:flex;align-items:center}
.qb-hero>.qb-boite{width:100%}
.qb-hero-contenu{max-width:780px}
.qb-hero :where(h1){font-size:clamp(2.5rem,6vw,4.4rem)}
.qb-centre-v{display:flex;flex-direction:column;justify-content:center}

/* ---------- Logo ---------- */
.qb-logo{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-family:var(--qb-police-titres);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;line-height:1}
.qb-logo-img{display:block;height:44px;width:auto;max-width:none}

/* ---------- Menu ---------- */
.qb-menu{position:relative;font-family:var(--qb-police-texte)}
.qb-menu-liste,.qb-sous-menu{list-style:none;margin:0;padding:0}
.qb-menu-liste{display:flex;flex-wrap:wrap;align-items:center;gap:4px 24px}
.qb-menu-liste>li{position:relative}
.qb-menu a{display:inline-block;padding:8px 0;color:inherit;font-weight:600;text-decoration:none}
.qb-menu a:hover,.qb-menu .qb-actif>a{color:var(--qb-primaire)}
.qb-sous-menu{display:none;position:absolute;top:100%;left:-14px;min-width:210px;padding:8px;background:var(--qb-fond);color:var(--qb-texte);border-radius:var(--qb-rayon);box-shadow:0 14px 34px rgba(17,26,51,.16);z-index:30}
.qb-sous-menu a{display:block;padding:8px 12px;border-radius:6px;font-weight:500}
.qb-sous-menu a:hover{background:rgba(17,26,51,.05)}
.qb-a-sous-menu:hover>.qb-sous-menu,.qb-a-sous-menu:focus-within>.qb-sous-menu{display:block}
.qb-menu--vertical .qb-menu-liste{flex-direction:column;align-items:flex-start;gap:0}
.qb-menu--vertical a{padding:5px 0;font-weight:500}
.qb-menu--vertical .qb-sous-menu{position:static;display:block;padding:0 0 0 14px;background:none;box-shadow:none;color:inherit}
.qb-burger{display:none;flex-direction:column;justify-content:center;gap:5px;padding:10px;margin:0;background:none;border:0;color:inherit;cursor:pointer}
.qb-burger span{display:block;width:24px;height:2px;border-radius:2px;background:currentColor}

/* ---------- Boutons ---------- */
.qb-bouton{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border:2px solid var(--qb-primaire);border-radius:var(--qb-rayon);background:var(--qb-primaire);color:#fff;font:inherit;font-weight:650;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
.qb-bouton:hover{transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(17,26,51,.45)}
.qb-bouton--contour{background:transparent;color:var(--qb-primaire)}
.qb-bouton--lien{padding-left:0;padding-right:0;background:none;border-color:transparent;color:var(--qb-primaire);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}
.qb-bouton--lien:hover{box-shadow:none}
.qb-bouton--p{padding:9px 16px;font-size:.9rem}
.qb-bouton--g{padding:18px 34px;font-size:1.12rem}
.qb-bouton .qb-svg{flex:0 0 auto}
.qb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}

/* ---------- Mise en page ---------- */
.qb-colonnes{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,64px)}
.qb-colonne{flex:1 1 300px;min-width:0}
.qb-grille{display:grid;grid-template-columns:repeat(var(--qb-cols,3),minmax(0,1fr));gap:24px}

/* ---------- Cartes et petits blocs ---------- */
.qb-carte{padding:28px;background:var(--qb-fond);color:var(--qb-texte);border:1px solid rgba(17,26,51,.08);border-radius:calc(var(--qb-rayon) * 1.5)}
.qb-fond-doux .qb-carte{border-color:transparent;box-shadow:0 12px 32px -20px rgba(17,26,51,.3)}
.qb-carte :where(p:last-child){margin-bottom:0}
.qb-icone{display:inline-flex;align-items:center;justify-content:center;color:var(--qb-primaire);line-height:0;text-decoration:none}
.qb-icone-pastille{width:62px;height:62px;margin-bottom:18px;border-radius:var(--qb-rayon);background:rgba(36,72,201,.1);background:color-mix(in srgb,var(--qb-primaire) 12%,transparent)}
.qb-icone-accent{margin-bottom:10px}
.qb-prix{margin:.2em 0 .6em;font-family:var(--qb-police-titres);font-size:2.4rem;font-weight:800;line-height:1;color:var(--qb-primaire)}
.qb-liste{line-height:2}
.qb-auteur{margin-top:16px;font-size:.95rem}
.qb-portrait{display:block;width:124px;height:124px;margin:0 auto 18px;border-radius:50%;object-fit:cover}
.qb-chiffre{margin:0 0 .2em;font-family:var(--qb-police-titres);font-size:clamp(2.2rem,4vw,3.2rem);font-weight:800;line-height:1}
.qb-logo-partenaire{display:block;max-height:52px;width:auto;margin:0 auto;opacity:.65;filter:grayscale(1)}
.qb-ligne-icone{display:flex;align-items:center;gap:12px;margin:10px 0}
.qb-ligne-icone :where(p){margin:0}
.qb-coordonnees{margin-top:24px}
.qb-arrondi{border-radius:calc(var(--qb-rayon) * 1.5)}
img.qb-arrondi{display:block;width:100%}
.qb-ombre{box-shadow:0 30px 60px -30px rgba(17,26,51,.45)}
.qb-lien-image{display:block;line-height:0}

/* ---------- Questions fréquentes ---------- */
.qb-faq{display:flex;flex-direction:column;gap:12px}
.qb-faq-item{padding:0 22px;background:var(--qb-fond);border:1px solid rgba(17,26,51,.1);border-radius:var(--qb-rayon)}
.qb-faq-item>summary{position:relative;padding:18px 32px 18px 0;font-weight:650;cursor:pointer;list-style:none}
.qb-faq-item>summary::-webkit-details-marker{display:none}
.qb-faq-item>summary::after{content:"+";position:absolute;right:0;top:12px;font-size:1.5rem;line-height:1.4;color:var(--qb-primaire)}
.qb-faq-item[open]>summary::after{content:"\2013"}
.qb-faq-item>p{margin:0;padding:0 0 18px}

/* ---------- Formulaires ---------- */
.qb-formulaire{display:flex;flex-direction:column;gap:16px;text-align:left}
.qb-champ{display:flex;flex-direction:column;gap:6px}
.qb-champ>label{font-weight:600;font-size:.92rem}
.qb-champ :where(input,textarea,select){width:100%;padding:12px 14px;font:inherit;color:#1f2937;background:#fff;border:1.5px solid rgba(17,26,51,.18);border-radius:var(--qb-rayon)}
.qb-champ :where(input,textarea,select):focus{outline:none;border-color:var(--qb-primaire);box-shadow:0 0 0 3px rgba(36,72,201,.18)}
.qb-champ-case>label{display:flex;align-items:flex-start;gap:10px;font-weight:500}
.qb-champ-case input{width:auto;margin-top:4px}
.qb-requis{margin-left:3px;color:#c5281c}
.qb-formulaire>.qb-bouton{align-self:flex-start}
.qb-formulaire-ligne{flex-direction:row;flex-wrap:wrap;align-items:flex-end;justify-content:center;max-width:580px;margin:24px auto 0}
.qb-formulaire-ligne .qb-champ{flex:1 1 260px}
.qb-formulaire-ligne>.qb-bouton{align-self:auto}
.qb-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
/* ---------- Avis clients (élément « avis ») ----------
   Les notes : cinq formes d'un seul tenant, grises dessous, colorées dessus,
   coupées à la note (qb-e-90 : 4,5, la cinquième à moitié). Couleurs (qb-avis-k-…),
   cartes (qb-avis-s-…) et angles (qb-avis-a-…) se choisissent dans l'éditeur. */
.qb-avis{--qb-etoile:#f5b301;--qb-etoile-vide:rgba(128,138,160,.3);--qb-avis-r:calc(var(--qb-rayon) * 1.6);width:100%}
.qb-avis-k-orange{--qb-etoile:#ff8a00}
.qb-avis-k-rouge{--qb-etoile:#e5484d}
.qb-avis-k-vert{--qb-etoile:#16a34a}
.qb-avis-k-bleu{--qb-etoile:#2f6fed}
.qb-avis-k-site{--qb-etoile:var(--qb-primaire)}
.qb-avis-k-noir{--qb-etoile:#1f2430}
.qb-avis-a-carres{--qb-avis-r:0px}
.qb-avis-a-ronds{--qb-avis-r:26px}
.qb-etoiles{position:relative;display:inline-block;width:6.25em;height:1.25em;line-height:0;vertical-align:-.2em;flex:none}
.qb-etoiles svg{display:block;width:6.25em;height:1.25em;fill:currentColor}
.qb-etoiles-fond{display:block;color:var(--qb-etoile-vide)}
.qb-etoiles-plein{position:absolute;top:0;left:0;bottom:0;overflow:hidden;color:var(--qb-etoile)}
.qb-e-0 .qb-etoiles-plein{width:0%}.qb-e-2 .qb-etoiles-plein{width:2%}.qb-e-4 .qb-etoiles-plein{width:4%}.qb-e-6 .qb-etoiles-plein{width:6%}.qb-e-8 .qb-etoiles-plein{width:8%}.qb-e-10 .qb-etoiles-plein{width:10%}.qb-e-12 .qb-etoiles-plein{width:12%}.qb-e-14 .qb-etoiles-plein{width:14%}.qb-e-16 .qb-etoiles-plein{width:16%}.qb-e-18 .qb-etoiles-plein{width:18%}.qb-e-20 .qb-etoiles-plein{width:20%}.qb-e-22 .qb-etoiles-plein{width:22%}.qb-e-24 .qb-etoiles-plein{width:24%}.qb-e-26 .qb-etoiles-plein{width:26%}.qb-e-28 .qb-etoiles-plein{width:28%}.qb-e-30 .qb-etoiles-plein{width:30%}.qb-e-32 .qb-etoiles-plein{width:32%}.qb-e-34 .qb-etoiles-plein{width:34%}.qb-e-36 .qb-etoiles-plein{width:36%}.qb-e-38 .qb-etoiles-plein{width:38%}.qb-e-40 .qb-etoiles-plein{width:40%}.qb-e-42 .qb-etoiles-plein{width:42%}.qb-e-44 .qb-etoiles-plein{width:44%}.qb-e-46 .qb-etoiles-plein{width:46%}.qb-e-48 .qb-etoiles-plein{width:48%}.qb-e-50 .qb-etoiles-plein{width:50%}.qb-e-52 .qb-etoiles-plein{width:52%}.qb-e-54 .qb-etoiles-plein{width:54%}.qb-e-56 .qb-etoiles-plein{width:56%}.qb-e-58 .qb-etoiles-plein{width:58%}.qb-e-60 .qb-etoiles-plein{width:60%}.qb-e-62 .qb-etoiles-plein{width:62%}.qb-e-64 .qb-etoiles-plein{width:64%}.qb-e-66 .qb-etoiles-plein{width:66%}.qb-e-68 .qb-etoiles-plein{width:68%}.qb-e-70 .qb-etoiles-plein{width:70%}.qb-e-72 .qb-etoiles-plein{width:72%}.qb-e-74 .qb-etoiles-plein{width:74%}.qb-e-76 .qb-etoiles-plein{width:76%}.qb-e-78 .qb-etoiles-plein{width:78%}.qb-e-80 .qb-etoiles-plein{width:80%}.qb-e-82 .qb-etoiles-plein{width:82%}.qb-e-84 .qb-etoiles-plein{width:84%}.qb-e-86 .qb-etoiles-plein{width:86%}.qb-e-88 .qb-etoiles-plein{width:88%}.qb-e-90 .qb-etoiles-plein{width:90%}.qb-e-92 .qb-etoiles-plein{width:92%}.qb-e-94 .qb-etoiles-plein{width:94%}.qb-e-96 .qb-etoiles-plein{width:96%}.qb-e-98 .qb-etoiles-plein{width:98%}.qb-e-100 .qb-etoiles-plein{width:100%}
/* Le résumé : la note, les étoiles, la répartition */
.qb-avis-exemple{display:table;margin:0 auto 16px;padding:5px 14px;border-radius:99px;background:rgba(245,179,1,.18);font-size:.82em;font-weight:600}
.qb-avis-resume{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px 48px;margin:0 0 20px}
.qb-avis-score{display:flex;align-items:center;gap:14px;text-align:left}
.qb-avis-moyenne{font-size:3.4em;font-weight:800;line-height:1;letter-spacing:-.03em}
.qb-avis-score-d{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.qb-avis-score .qb-etoiles{font-size:1.4em}
.qb-avis-nb{font-size:.9em;opacity:.75}
.qb-avis-barres{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:min(280px,100%);font-size:.85em}
.qb-avis-barres li{display:grid;grid-template-columns:1em 1fr 2em;align-items:center;gap:10px;margin:0;padding:0}
.qb-avis-barres li::before{content:none}
.qb-avis-barre{position:relative;display:block;height:8px;border-radius:99px;background:var(--qb-etoile-vide);overflow:hidden}
.qb-avis-barre>span{position:absolute;top:0;left:0;bottom:0;border-radius:99px;background:var(--qb-etoile)}
.qb-b-0{width:0%}.qb-b-2{width:2%}.qb-b-4{width:4%}.qb-b-6{width:6%}.qb-b-8{width:8%}.qb-b-10{width:10%}.qb-b-12{width:12%}.qb-b-14{width:14%}.qb-b-16{width:16%}.qb-b-18{width:18%}.qb-b-20{width:20%}.qb-b-22{width:22%}.qb-b-24{width:24%}.qb-b-26{width:26%}.qb-b-28{width:28%}.qb-b-30{width:30%}.qb-b-32{width:32%}.qb-b-34{width:34%}.qb-b-36{width:36%}.qb-b-38{width:38%}.qb-b-40{width:40%}.qb-b-42{width:42%}.qb-b-44{width:44%}.qb-b-46{width:46%}.qb-b-48{width:48%}.qb-b-50{width:50%}.qb-b-52{width:52%}.qb-b-54{width:54%}.qb-b-56{width:56%}.qb-b-58{width:58%}.qb-b-60{width:60%}.qb-b-62{width:62%}.qb-b-64{width:64%}.qb-b-66{width:66%}.qb-b-68{width:68%}.qb-b-70{width:70%}.qb-b-72{width:72%}.qb-b-74{width:74%}.qb-b-76{width:76%}.qb-b-78{width:78%}.qb-b-80{width:80%}.qb-b-82{width:82%}.qb-b-84{width:84%}.qb-b-86{width:86%}.qb-b-88{width:88%}.qb-b-90{width:90%}.qb-b-92{width:92%}.qb-b-94{width:94%}.qb-b-96{width:96%}.qb-b-98{width:98%}.qb-b-100{width:100%}
.qb-avis-barre-n{font-weight:700;text-align:center}
.qb-avis-barre-c{text-align:right;opacity:.75}
.qb-avis-phrase{margin:0 0 24px;text-align:center;font-weight:600;opacity:.88}
.qb-avis-vide{margin:0 0 16px;text-align:center;opacity:.75}
/* Un avis : l'initiale et le nom, les étoiles, le texte */
.qb-avis-liste{display:grid;gap:20px}
.qb-avis-un{margin:0;display:flex;flex-direction:column;gap:12px;min-width:0;text-align:left}
.qb-avis-qui{display:flex;align-items:center;gap:12px;min-width:0}
.qb-avis-ini{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;font-weight:700;font-size:1.05em;flex:none;background:#5468ff}
.qb-avis-c0{background:#5468ff}
.qb-avis-c1{background:#e8590c}
.qb-avis-c2{background:#0c9d72}
.qb-avis-c3{background:#d6336c}
.qb-avis-c4{background:#1c7ed6}
.qb-avis-c5{background:#7048e8}
.qb-avis-id{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.qb-avis-nom{font-weight:700;overflow-wrap:anywhere}
.qb-avis-date{font-size:.84em;opacity:.62}
.qb-avis-un>.qb-etoiles{font-size:1.05em}
.qb-avis-texte{margin:0;line-height:1.65;overflow-wrap:anywhere}
/* Les cartes : cartes, carrousel, mur */
:where(.qb-avis--cartes,.qb-avis--carrousel,.qb-avis--mur) .qb-avis-un{padding:24px;border-radius:var(--qb-avis-r);background:var(--qb-fond);color:var(--qb-texte);border:1px solid rgba(17,26,51,.07);box-shadow:0 1px 2px rgba(17,26,51,.05),0 16px 36px -22px rgba(17,26,51,.38)}
.qb-avis-s-bordure:where(.qb-avis--cartes,.qb-avis--carrousel,.qb-avis--mur) .qb-avis-un{box-shadow:none;border:1.5px solid rgba(17,26,51,.16)}
.qb-avis-s-teinte:where(.qb-avis--cartes,.qb-avis--carrousel,.qb-avis--mur) .qb-avis-un{box-shadow:none;border-color:transparent;background:#f2f4fa;background:color-mix(in srgb,var(--qb-primaire) 8%,var(--qb-fond))}
.qb-avis-s-sombre:where(.qb-avis--cartes,.qb-avis--carrousel,.qb-avis--mur) .qb-avis-un{background:#161c30;color:#f2f3f8;border-color:transparent}
.qb-avis-s-sombre .qb-avis-un{--qb-etoile-vide:rgba(255,255,255,.22)}
.qb-avis-s-nu:where(.qb-avis--cartes,.qb-avis--carrousel,.qb-avis--mur) .qb-avis-un{background:none;color:inherit;box-shadow:none;border-color:transparent;padding:6px 0}
.qb-avis--cartes .qb-avis-liste{grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr))}
.qb-avis--carrousel .qb-avis-liste{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:20px;padding:6px 4px 18px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.qb-avis--carrousel .qb-avis-un{flex:0 0 min(360px,86%);scroll-snap-align:start}
.qb-avis--mur .qb-avis-liste{display:block;columns:3 260px;column-gap:20px}
.qb-avis--mur .qb-avis-un{break-inside:avoid;margin:0 0 20px}
/* La liste : des lignes séparées */
.qb-avis--liste .qb-avis-liste{gap:0}
.qb-avis--liste .qb-avis-un{display:grid;grid-template-columns:minmax(150px,220px) 1fr;grid-template-areas:"qui etoiles" "qui texte";gap:6px 24px;padding:22px 0;border-bottom:1px solid rgba(128,138,160,.28)}
.qb-avis--liste .qb-avis-un:last-child{border-bottom:0}
.qb-avis--liste .qb-avis-qui{grid-area:qui;align-self:start}
.qb-avis--liste .qb-avis-un>.qb-etoiles{grid-area:etoiles}
.qb-avis--liste .qb-avis-texte{grid-area:texte}
/* La grande citation */
.qb-avis--citation .qb-avis-liste{gap:48px}
.qb-avis--citation .qb-avis-un{align-items:center;max-width:780px;margin:0 auto;text-align:center;gap:16px}
.qb-avis--citation .qb-avis-texte{order:-1;font-size:1.5em;font-style:italic;line-height:1.5}
.qb-avis--citation .qb-avis-texte::before{content:"\201C";display:block;height:.55em;font-size:3em;line-height:1;font-style:normal;color:var(--qb-etoile)}
.qb-avis--citation .qb-avis-un>.qb-etoiles{order:-2}
.qb-avis--citation .qb-avis-qui{justify-content:center}
.qb-avis--citation .qb-avis-id{align-items:flex-start}
/* La note seule */
.qb-avis--resume{width:auto}
.qb-avis--resume .qb-avis-resume{margin:0;justify-content:flex-start}
/* Laisser un avis */
.qb-avis-donner{margin-top:28px;text-align:center}
.qb-avis-donner>summary{list-style:none;display:inline-flex}
.qb-avis-donner>summary::-webkit-details-marker{display:none}
.qb-avis-donner[open]>summary{margin-bottom:18px}
.qb-avis-donner-titre{margin:0 0 14px;font-weight:700;font-size:1.2em}
.qb-avis-form{display:grid;gap:16px;max-width:560px;margin:0 auto;padding:26px;text-align:left;background:var(--qb-fond);color:var(--qb-texte);border-radius:var(--qb-avis-r);border:1px solid rgba(17,26,51,.07);box-shadow:0 18px 40px -24px rgba(17,26,51,.4)}
.qb-avis-choix{border:0;margin:0;padding:0;min-width:0}
.qb-avis-choix legend{font-weight:700;font-size:1rem;margin:0 0 8px;padding:0}
.qb-avis-notes{display:inline-flex;flex-direction:row-reverse;gap:6px}
.qb-avis-notes input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.qb-avis-notes label{cursor:pointer;color:rgba(128,138,160,.38);line-height:0;border-radius:8px}
.qb-avis-notes label svg{width:36px;height:36px;fill:currentColor;transition:color .12s ease,transform .12s ease}
.qb-avis-notes label:hover svg{transform:scale(1.14)}
.qb-avis-notes label:hover,.qb-avis-notes label:hover~label,.qb-avis-notes input:checked~label{color:var(--qb-etoile)}
.qb-avis-notes input:focus-visible+label{outline:2px solid var(--qb-primaire);outline-offset:2px}
.qb-avis-suite{display:grid;gap:14px}
.qb-avis-suite>.qb-bouton{justify-self:start}
/* Dans le formulaire (fond clair), le bouton garde la couleur du site, même sur une section colorée. */
.qb-avis .qb-avis-form .qb-bouton:not(.qb-bouton--contour):not(.qb-bouton--lien){background:var(--qb-primaire);color:#fff;border-color:var(--qb-primaire)}
.qb-avis-mention{font-size:.85em;opacity:.7;margin:0}
/* « En cliquant les étoiles » : la suite paraît quand on a choisi sa note */
.qb-avis-form--etoiles{text-align:center}
.qb-avis-form--etoiles .qb-avis-notes label svg{width:46px;height:46px}
.qb-avis-form--etoiles .qb-avis-suite{display:none;text-align:left;margin-top:4px}
.qb-avis-form--etoiles.qb-avis-ouvert .qb-avis-suite,.qb-avis-form--etoiles:has(input[name="note"]:checked) .qb-avis-suite{display:grid}
@media (max-width:767px){
  .qb-avis--liste .qb-avis-un{grid-template-columns:1fr;grid-template-areas:"qui" "etoiles" "texte"}
  .qb-avis-moyenne{font-size:2.8em}
  .qb-avis--citation .qb-avis-texte{font-size:1.25em}
}

/* ---------- Médias ---------- */
.qb-video{position:relative;aspect-ratio:16/9;overflow:hidden;background:#0f172a;border-radius:var(--qb-rayon)}
.qb-video iframe,.qb-video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.qb-video-vide{display:flex;align-items:center;justify-content:center;min-height:100%;padding:24px;color:#94a3b8;font:500 .95rem/1.4 system-ui,sans-serif;text-align:center}
.qb-galerie{display:grid;grid-template-columns:repeat(var(--qb-cols,3),minmax(0,1fr));gap:14px}
.qb-galerie .qb-video-vide{grid-column:1/-1;min-height:160px;background:#f1f5f9;border-radius:var(--qb-rayon)}
.qb-galerie-item{margin:0;overflow:hidden;aspect-ratio:var(--qb-ratio,4/3);border-radius:var(--qb-rayon)}
.qb-galerie-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.qb-galerie-item:hover img{transform:scale(1.04)}
.qb-plan{height:380px;overflow:hidden;background:#e5e7eb;border-radius:var(--qb-rayon)}
.qb-plan iframe{display:block;width:100%;height:100%;border:0}
.qb-separateur{margin:32px 0;border:0;border-top:1px solid rgba(17,26,51,.15)}
.qb-espace{height:40px}
.qb-reseaux{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.qb-centre .qb-reseaux,.qb-reseaux.qb-centre{justify-content:center}
.qb-reseau{display:inline-flex;align-items:center;justify-content:center;color:inherit;text-decoration:none;transition:transform .15s ease,color .15s ease}
.qb-reseaux--rond .qb-reseau,.qb-reseaux--carre .qb-reseau{padding:10px;background:rgba(17,26,51,.06);background:color-mix(in srgb,currentColor 10%,transparent)}
.qb-reseaux--rond .qb-reseau{border-radius:50%}
.qb-reseaux--carre .qb-reseau{border-radius:6px}
.qb-reseau:hover{transform:translateY(-2px);color:var(--qb-primaire)}

/* ---------- Pied de page ---------- */
.qb-pied{background:var(--qb-secondaire);color:#d9dee8}
.qb-pied a{color:inherit}
.qb-pied :where(h4){margin-bottom:.9em;color:#fff;font-size:.95rem;letter-spacing:.03em}
.qb-pied .qb-logo{color:#fff}
.qb-pied .qb-menu a{font-weight:500}
.qb-pied .qb-reseaux{margin-top:14px}
.qb-pied-bas{margin:48px 0 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:.9rem;opacity:.72}

/* ---------- Formes ---------- */
.qb-forme{display:block;width:160px;height:160px;background-color:var(--qb-primaire)}
.qb-forme--arrondi{border-radius:24px}
.qb-forme--cercle{border-radius:50%}
.qb-forme--pilule{border-radius:999px}
.qb-forme--triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}
.qb-forme--losange{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.qb-forme--hexagone{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.qb-forme--etoile{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.qb-forme--goutte{border-radius:50% 0 50% 50%}
.qb-forme--vague{clip-path:polygon(0 42%,8% 32%,17% 26%,27% 27%,37% 35%,47% 46%,57% 55%,67% 59%,77% 56%,87% 47%,95% 37%,100% 32%,100% 100%,0 100%)}
.qb-forme--fleche{clip-path:polygon(0 30%,64% 30%,64% 0,100% 50%,64% 100%,64% 70%,0 70%)}
.qb-forme--bulle{border-radius:26px 26px 26px 4px}

/* ---------- Listes ---------- */
.qb-liste-points{display:flex;flex-direction:column;gap:10px;margin:0 0 1.2em;padding:0;list-style:none}
.qb-liste-points>li{display:flex;align-items:flex-start;gap:11px;line-height:1.5}
.qb-liste-icones .qb-svg{flex:0 0 auto;margin-top:2px;color:var(--qb-primaire)}
.qb-liste-puces>li::before{content:"";flex:0 0 auto;width:7px;height:7px;margin-top:.62em;border-radius:50%;background:var(--qb-primaire)}

/* ---------- Horaires ---------- */
.qb-horaires{max-width:460px}
.qb-horaires-titre{margin:0 0 12px;font-family:var(--qb-police-titres);font-size:1.15rem;font-weight:750}
.qb-horaires-liste{display:flex;flex-direction:column;margin:0}
.qb-horaires-jour{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid rgba(17,26,51,.1)}
.qb-horaires-jour dt{font-weight:600}
.qb-horaires-jour dd{margin:0;text-align:right}
.qb-horaires-jour.qb-ferme dd{opacity:.6}
.qb-horaires-jour.qb-aujourdhui{color:var(--qb-primaire);font-weight:700}
.qb-horaires-jour.qb-aujourdhui dt::after{content:" · aujourd\2019hui";font-size:.85em;font-weight:500}
.qb-horaires-note{margin:12px 0 0;font-size:.9rem;opacity:.75}
.qb-horaires--carte,.qb-horaires--sombre{padding:28px;border-radius:calc(var(--qb-rayon) * 1.5)}
.qb-horaires--carte{background:var(--qb-fond);box-shadow:0 18px 40px -18px rgba(17,26,51,.35)}
.qb-horaires--sombre{background:var(--qb-secondaire);color:#fff}
.qb-horaires--sombre .qb-horaires-jour{border-color:rgba(255,255,255,.14)}
.qb-horaires--sombre .qb-aujourdhui{color:#f5c518}
.qb-horaires--compact .qb-horaires-jour{padding:3px 0;border:0;font-size:.95rem}

/* ---------- Bouton déroulant ---------- */
.qb-deroulant{position:relative;display:inline-block;vertical-align:middle}
.qb-deroulant>summary{list-style:none;user-select:none}
.qb-deroulant>summary::-webkit-details-marker{display:none}
.qb-deroulant-fleche{flex:0 0 auto;transition:transform .18s ease}
.qb-deroulant[open]>summary .qb-deroulant-fleche{transform:rotate(180deg)}
.qb-deroulant-liste{position:absolute;z-index:35;top:calc(100% + 8px);left:0;min-width:230px;margin:0;padding:8px;list-style:none;background:var(--qb-fond);color:var(--qb-texte);border:1px solid rgba(17,26,51,.08);border-radius:var(--qb-rayon);box-shadow:0 16px 36px rgba(17,26,51,.18);text-align:left}
.qb-deroulant--droite .qb-deroulant-liste{left:auto;right:0}
.qb-deroulant-liste li{margin:0;padding:0}
.qb-deroulant-choix{display:block;padding:10px 12px;border-radius:calc(var(--qb-rayon) * .6);color:inherit;font-weight:600;line-height:1.3;text-decoration:none;white-space:nowrap}
.qb-deroulant-choix:hover,.qb-deroulant-choix:focus-visible{background:rgba(36,72,201,.08);background:color-mix(in srgb,var(--qb-primaire) 10%,transparent);color:var(--qb-primaire)}
.qb-libre>.qb-deroulant{position:absolute}

/* ---------- Placement libre ----------
   Sur ordinateur, chaque élément est posé au pixel près (left, top,
   largeur, plan). Sur tablette et sur mobile, tant qu'on ne les y a pas
   placés à la main (qb-libre-t, qb-libre-m), ils s'empilent dans l'ordre
   de lecture, et les formes décoratives s'effacent. */
.qb-libre{position:relative;isolation:isolate;box-sizing:border-box!important}
.qb-zone-libre{width:100%;min-height:80px}
.qb-libre>*{position:absolute!important;margin:0!important;box-sizing:border-box}
.qb-libre>a.qb-lien-image{display:contents!important;position:static!important}
.qb-libre>a.qb-lien-image>img{position:absolute!important;margin:0!important;box-sizing:border-box}
@media (min-width:768px) and (max-width:1024px){
  .qb-libre:not(.qb-libre-t){display:flex;flex-direction:column;align-items:flex-start;gap:18px;height:auto!important;min-height:0!important}
  .qb-libre:not(.qb-libre-t)>*{position:relative!important;left:auto!important;top:auto!important;max-width:100%!important;rotate:none!important;z-index:auto!important}
  .qb-libre:not(.qb-libre-t)>:not(.qb-plan):not(.qb-espace){height:auto!important}
  .qb-libre:not(.qb-libre-t)>.qb-forme{display:none!important}
  .qb-libre:not(.qb-libre-t)>a.qb-lien-image>img{position:relative!important;left:auto!important;top:auto!important;max-width:100%!important;z-index:auto!important;height:auto!important}
}
@media (max-width:767px){
  .qb-libre:not(.qb-libre-m){display:flex;flex-direction:column;align-items:flex-start;gap:16px;height:auto!important;min-height:0!important}
  .qb-libre:not(.qb-libre-m)>*{position:relative!important;left:auto!important;top:auto!important;max-width:100%!important;rotate:none!important;z-index:auto!important}
  .qb-libre:not(.qb-libre-m)>:not(.qb-plan):not(.qb-espace){height:auto!important}
  .qb-libre:not(.qb-libre-m)>.qb-forme{display:none!important}
  .qb-libre:not(.qb-libre-m)>a.qb-lien-image>img{position:relative!important;left:auto!important;top:auto!important;max-width:100%!important;z-index:auto!important;height:auto!important}
}

/* ---------- Mention « Créé avec QYLINE » ---------- */
.qb-mention{position:fixed;right:14px;bottom:14px;z-index:9999;padding:8px 13px;border-radius:999px;background:#121a33;color:#fff;font:500 12px/1 system-ui,sans-serif;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.qb-mention strong{color:#f5c518}

/* ---------- Animations à l'apparition ---------- */
.qb-js .qb-anim{opacity:0;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.qb-js .qb-anim-monter{transform:translateY(32px)}
.qb-js .qb-anim-zoom{transform:scale(.94)}
.qb-js .qb-anim-gauche{transform:translateX(-40px)}
.qb-js .qb-anim-droite{transform:translateX(40px)}
.qb-js .qb-anim.qb-vu{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.qb-js .qb-anim{opacity:1;transform:none;transition:none}}

/* ---------- Tablette ---------- */
@media (max-width:1024px){
  .qb-section{padding-left:22px;padding-right:22px}
}

/* ---------- Mobile ---------- */
@media (max-width:767px){
  .qb-section{padding-left:18px;padding-right:18px}
  .qb-colonnes{flex-direction:column}
  .qb-inverse-mobile{flex-direction:column-reverse}
  .qb-colonne{flex-basis:auto}
  .qb-entete{padding:10px 18px}
  .qb-entete-ligne{gap:12px}
  .qb-entete-ligne>.qb-bouton{padding:9px 14px;font-size:.88rem}
  .qb-menu .qb-burger{display:inline-flex}
  .qb-menu .qb-burger~.qb-menu-liste{display:none}
  .qb-menu.qb-ouvert .qb-burger~.qb-menu-liste{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;right:0;top:calc(100% + 8px);min-width:240px;padding:10px 14px;background:var(--qb-fond);color:var(--qb-texte);border-radius:var(--qb-rayon);box-shadow:0 18px 40px rgba(17,26,51,.18);z-index:40}
  .qb-menu.qb-ouvert .qb-sous-menu{position:static;display:block;padding:0 0 0 14px;box-shadow:none;background:none}
  .qb-actions .qb-bouton{flex:1 1 auto}
  .qb-formulaire>.qb-bouton{align-self:stretch}
  .qb-plan{height:300px}
}
