/* Thème vierge d'un site : à faire évoluer. Couleurs : --primaire et --secondaire posées par le gabarit. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1e2328;background:#fff;line-height:1.6}
img{max-width:100%;display:block}a{color:inherit}
.conteneur{max-width:1100px;margin:0 auto;padding:0 20px}
.entete{border-bottom:1px solid #e5e7eb;background:#fff}
.entete-ligne{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.marque{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none}.marque img{width:40px;height:40px;border-radius:8px}
.menu ul{list-style:none;display:flex;gap:4px}.menu li{position:relative}.menu a{display:block;padding:10px 12px;text-decoration:none;font-weight:600;border-radius:8px}
.menu li.actif>a,.menu a:hover{background:#f3f4f6}.menu li ul{display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;min-width:200px;padding:6px;flex-direction:column}
.menu li.parent:hover>ul{display:flex}
.hero{background:var(--primaire);color:#fff;padding:80px 0}.hero h1{font-size:2.4rem;line-height:1.15;margin-bottom:14px}.hero-texte{font-size:1.15rem;max-width:640px}
.bloc{padding:60px 0}.bloc h1,.bloc h2{margin-bottom:14px}.bloc p{margin-bottom:12px}.centre{text-align:center}
.bouton{display:inline-block;background:var(--secondaire);color:#fff;text-decoration:none;font-weight:700;padding:12px 20px;border-radius:10px}
.pied{background:#111827;color:#d1d5db;padding:40px 0;font-size:.9rem}.pied-ligne{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.pied ul{list-style:none}.pied a{color:#fff;text-decoration:none}
@media (max-width:760px){.entete-ligne{flex-wrap:wrap}.menu ul{flex-wrap:wrap}.pied-ligne{grid-template-columns:1fr}.hero h1{font-size:1.8rem}}
/* Module FAQ (modules/faq.tpl) */
.module-faq{padding:60px 0}.module-faq .module-titre{margin-bottom:20px}.faq-liste{display:grid;gap:10px}
.faq-item{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:0 18px}.faq-item[open]{border-color:var(--primaire)}
.faq-question{cursor:pointer;font-weight:700;padding:14px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-question::-webkit-details-marker{display:none}.faq-question::after{content:"+";font-size:1.4rem;line-height:1;color:var(--primaire);flex-shrink:0}.faq-item[open] .faq-question::after{content:"–"}
.faq-reponse{padding:0 0 16px;color:#374151}.faq-reponse p{margin-bottom:10px}
/* Module Comptes (modules/comptes-*.tpl) */
.cpt{max-width:520px}.cpt-form{display:grid;gap:14px;margin:16px 0 28px}.cpt-form label{display:grid;gap:6px;font-weight:600}
.cpt-form input[type=email],.cpt-form input[type=password],.cpt-form input[type=text]{font:inherit;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px}
.cpt-case{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important}.cpt-case input{margin-top:4px}
.cpt-piege{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.cpt-erreur{color:#b91c1c;font-size:.9rem;margin:-6px 0 0}.cpt-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 12px}
.cpt-succes{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:18px 20px}.cpt-petit{font-size:.85rem;color:#6b7280}
.cpt-regles{list-style:none;margin:-4px 0 0;padding:0;display:grid;gap:3px;font-size:.82rem;color:#6b7280}
.cpt-regles li::before{content:"○";display:inline-block;width:18px;color:#9ca3af}.cpt-regles li.ok{color:#15803d}.cpt-regles li.ok::before{content:"✓";color:#16a34a;font-weight:700}
.cpt-ligne{margin:12px 0 24px}.bouton.contour{background:transparent;border:1px solid var(--primaire);color:var(--primaire)}.cpt-danger{border-top:1px solid #e5e7eb;padding-top:18px}
/* Menu du visiteur connecté (module Comptes) */
.compte-menu{position:relative;margin-left:10px}.compte-avatar{width:38px;height:38px;border-radius:50%;border:0;background:var(--primaire);color:#fff;font-weight:800;cursor:pointer}
.compte-liste{display:none;position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:180px;padding:6px;list-style:none;box-shadow:0 12px 30px rgba(0,0,0,.12);z-index:20}
.compte-menu.ouvert .compte-liste,.compte-menu:focus-within .compte-liste{display:block}.compte-liste a,.compte-liste button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px;background:none;border:0;font:inherit;font-weight:600;color:#1e2328;text-decoration:none;cursor:pointer}
.compte-liste a:hover,.compte-liste button:hover{background:#f3f4f6}.compte-connexion{margin-left:10px;font-weight:700;text-decoration:none}

/* Module Comptes : afficher le mot de passe, correspondance des deux saisies */
.cpt-mdp{position:relative;display:grid}.cpt-mdp input{width:100%;box-sizing:border-box}.cpt-mdp input{padding-right:92px!important}
.cpt-oeil{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:28px;padding:0 10px;border-radius:8px;border:1px solid #d1d5db;background:#fff;font:inherit;font-size:.74rem;font-weight:700;color:#374151;cursor:pointer}
.cpt-oeil[aria-pressed=true]{background:#f3f4f6}.cpt-form input.cpt-differe{border-color:#ef4444!important}
/* Module Cartes digitales : raccourci dans Mon compte, pages pleine largeur pour les écrans de la carte. */
.cpt-cartes{margin-top:24px;padding:18px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.cpt-cartes h3{margin:0 0 6px}
.bloc.compte.large .conteneur{max-width:1200px}
