/* ═══════════════════════════════════════════════════════════════
   PASSERELLE FRANCE-ASIE — style v1.0 du 13/10/2026 (base : style des sites modèles) (base : style Gardien v2.1)
   Fichier : media/templates/site/cassiopeia_passerelle/css/user.css
   POUR CHANGER LES COULEURS D'UN SITE : modifier SEULEMENT le bloc « THÈME » ci-dessous.
   Palettes prêtes à copier : voir le fichier palettes-couleurs.txt du kit.
   Toutes les classes maison commencent par « gds- ».
   ═══════════════════════════════════════════════════════════════ */

/* ════════ THÈME (les 9 couleurs du site) ════════ */
/* Couleurs de base de Cassiopeia : avant, écrites dans la page (<style>), ce que la sécurité CSP bloque. Mêmes valeurs. */
:root {
  --hue: 214;
  --template-bg-light: #f0f4fb;
  --template-text-dark: #495057;
  --template-text-light: #ffffff;
  --template-link-color: var(--link-color);
  --template-special-color: #001B4C;
}

:root {   /* palette PASSERELLE FRANCE-ASIE (bleu nuit + or + rouge laque) — 13/10/2026 */
  --gds-nuit: #12355b;           /* couleur principale : en-tête, titres, bas de page */
  --gds-nuit-2: #1d4e80;         /* principale, un peu plus claire (survols) */
  --gds-orange: #e0a526;         /* accent : or */
  --gds-orange-fonce: #a8321f;   /* accent foncé : boutons et liens (rouge laque, lisible sur blanc) */
  --gds-accent-survol: #8c2818;  /* bouton survolé */
  --gds-accent-ombre: #6b1d10;   /* petite ombre sous les boutons */
  --gds-accent-clair: #f4d06f;   /* accent clair, sur fond foncé */
  --gds-creme: #f6f8fb;          /* fond doux des sections */
  --gds-bord: #dfe5ee;           /* bordures fines */
}
/* ════════ FIN DU THÈME — ne rien changer en dessous ════════ */

:root {
  --gds-texte: #2c3148; --gds-gris: #5d6378;
  --cassiopeia-color-primary: var(--gds-nuit);
  --cassiopeia-color-hover: var(--gds-nuit-2);
  --cassiopeia-color-link: var(--gds-orange-fonce);
  --link-color: var(--gds-orange-fonce);
  --link-hover-color: var(--gds-accent-ombre);
}

body { font-family: system-ui, "Segoe UI", Roboto, Ubuntu, "DejaVu Sans", "Noto Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Noto Sans Thai", Tahoma, sans-serif; color: var(--gds-texte); line-height: 1.6; }

/* Chinois et thaï : polices adaptées en premier (lisibilité des caractères) */
html:lang(zh) body { font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif; }
html:lang(th) body { font-family: "Noto Sans Thai", "Leelawadee UI", Tahoma, system-ui, sans-serif; line-height: 1.75; }
h1, h2, h3, h4 { color: var(--gds-nuit); line-height: 1.2; }

/* ── En-tête ── */
.container-header { background: var(--gds-nuit) !important; background-image: none !important; box-shadow: none; }
.container-header .navbar-brand .brand-logo img { max-height: 46px; width: auto; }
.container-header .site-description { color: rgba(255,255,255,.8); font-size: .82rem; }
.container-header .mod-menu > li > a { color: #fff; opacity: .92; }
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li.current > a { border-bottom: 2px solid var(--gds-orange); text-decoration: none; }
.container-header .mod-menu__sub { background: var(--gds-nuit); border-radius: 8px; padding: .4rem .2rem; box-shadow: 0 10px 24px rgba(0,0,0,.25); }
.container-header .mod-menu__sub a { color: #fff !important; opacity: .95; display: block; padding: .25rem .8rem; }
.container-header .mod-menu__sub a:hover { color: var(--gds-accent-clair) !important; text-decoration: none; }

/* ── Boutons ── */
.gds-btn, a.gds-btn { display: inline-block; background: var(--gds-orange-fonce); color: #fff !important; text-decoration: none !important; font-weight: 600; padding: .75rem 1.4rem; border-radius: 8px; box-shadow: 0 3px 0 var(--gds-accent-ombre); border: 0; }
.gds-btn:hover { background: var(--gds-accent-survol); }
.gds-btn.gds-clair { background: #fff; color: var(--gds-nuit) !important; box-shadow: 0 3px 0 #c9cde0; }
.gds-lien { color: var(--gds-orange-fonce); font-weight: 600; text-decoration: none; }

/* ── Bandeau principal (module en position « banner », accueil seulement) ── */
.gds-heros { background: linear-gradient(135deg, var(--gds-nuit) 0%, var(--gds-nuit-2) 100%); color: #fff; padding: 3.5rem 1.5rem 4.2rem; position: relative; overflow: hidden; }
.gds-heros::after { content: ""; position: absolute; right: -120px; top: -80px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(232,119,46,.28), rgba(232,119,46,0) 70%); }
.gds-heros-grille { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1.25fr .75fr; gap: 2.5rem; align-items: center; position: relative; z-index: 1; }
.gds-surtitre { color: var(--gds-accent-clair); font-weight: 600; letter-spacing: .5px; text-transform: uppercase; font-size: .8rem; }
.gds-heros h1 { color: #fff; font-size: clamp(2rem, 4vw, 2.8rem); margin: .6rem 0 1rem; }
.gds-heros h1 em { font-style: normal; color: var(--gds-accent-clair); }
.gds-heros .gds-intro { font-size: 1.15rem; opacity: .93; max-width: 580px; margin: 0 0 1.6rem; }
.gds-actions { display: flex; gap: .9rem; flex-wrap: wrap; }
.gds-carte-garde { background: #fff; color: var(--gds-texte); border-radius: 14px; padding: 1.3rem 1.5rem; box-shadow: 0 18px 40px rgba(0,0,0,.25); }
.gds-carte-garde h3 { margin: 0 0 .6rem; font-size: 1rem; }
.gds-ligne { display: flex; justify-content: space-between; padding: .5rem 0; border-bottom: 1px dashed var(--gds-bord); font-size: .92rem; }
.gds-ligne:last-of-type { border-bottom: 0; }
.gds-ok { color: #1f8a4c; font-weight: 700; }
.gds-carte-garde small { color: var(--gds-gris); font-size: .75rem; }

/* ── Bande des 4 atouts ── */
.gds-confiance { background: var(--gds-creme); border-bottom: 1px solid var(--gds-bord); }
.gds-confiance-grille { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; padding: 1.4rem 1.5rem; }
.gds-atout { display: flex; gap: .75rem; align-items: flex-start; font-size: .92rem; }
.gds-pastille { flex: 0 0 38px; height: 38px; border-radius: 10px; background: var(--gds-nuit); color: #fff; display: grid; place-items: center; font-size: 1.1rem; }
.gds-atout b, .gds-atout strong { display: block; color: var(--gds-nuit); }

/* ── Sections de l'article d'accueil ── */
.gds-section { margin: 3.2rem 0; }
.gds-section h2 { font-size: 1.9rem; margin: 0 0 .4rem; }
.gds-chapo { color: var(--gds-gris); font-size: 1.05rem; margin: 0 0 1.8rem; max-width: 700px; }
.gds-fond { background: var(--gds-creme); border-radius: 18px; padding: 2.2rem; }

.gds-grille-2 { display: grid; grid-template-columns: 1.3fr .7fr; gap: 2rem; align-items: center; }
.gds-grille-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.gds-grille-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }

.gds-carte { border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.6rem; background: #fff; display: flex; flex-direction: column; position: relative; }
.gds-carte h3 { margin: 0 0 .5rem; font-size: 1.2rem; }
.gds-carte p { margin: 0 0 1rem; color: var(--gds-gris); flex: 1; }
.gds-icone { width: 52px; height: 52px; border-radius: 12px; background: var(--gds-creme); display: grid; place-items: center; font-size: 1.6rem; margin-bottom: .9rem; }
.gds-prix { font-size: 1.6rem; font-weight: 800; color: var(--gds-nuit); }
.gds-prix small { font-size: .85rem; font-weight: 500; color: var(--gds-gris); }
.gds-vedette { border: 2px solid var(--gds-orange); box-shadow: 0 10px 30px rgba(232,119,46,.15); }
.gds-badge { position: absolute; top: -12px; left: 22px; background: var(--gds-orange-fonce); color: #fff; font-size: .75rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; }

.gds-etapes { counter-reset: gds-e; }
.gds-etape { background: #fff; border-radius: 14px; padding: 1.3rem; border: 1px solid var(--gds-bord); }
.gds-etape::before { content: "✔"; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--gds-orange-fonce); color: #fff; font-weight: 800; margin-bottom: .6rem; }
.gds-etape b, .gds-etape strong { color: var(--gds-nuit); display: block; margin-bottom: .2rem; }
.gds-etape span { color: var(--gds-gris); font-size: .92rem; }

.gds-moi { display: grid; grid-template-columns: 120px 1fr; gap: 1.6rem; align-items: center; border: 1px solid var(--gds-bord); border-radius: 16px; padding: 1.6rem; }
.gds-moi img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; object-position: 35% 30%; border: 4px solid var(--gds-creme); box-shadow: 0 0 0 2px var(--gds-orange); }
.gds-moi h3 { margin: 0 0 .4rem; }
.gds-moi p { margin: 0 0 .5rem; color: var(--gds-gris); }
.gds-etiquettes { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.gds-etiquettes li, .gds-etiquettes span { background: var(--gds-creme); border: 1px solid var(--gds-bord); border-radius: 20px; padding: 2px 11px; font-size: .82rem; }

.gds-ecran { position: relative; aspect-ratio: 16/9; border-radius: 16px; overflow: hidden; background: linear-gradient(135deg, var(--gds-nuit), var(--gds-nuit-2)); box-shadow: 0 16px 40px rgba(31,42,90,.25); display: grid; place-items: center; }
.gds-ecran img { width: 90px; }
.gds-lecture { position: absolute; width: 84px; height: 84px; border-radius: 50%; background: var(--gds-orange-fonce); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(232,119,46,.25); }
.gds-lecture::after { content: ""; border-left: 26px solid #fff; border-top: 16px solid transparent; border-bottom: 16px solid transparent; margin-left: 6px; }
.gds-ecran .gds-st { position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.55); color: #fff; padding: 4px 12px; border-radius: 6px; font-size: .88rem; white-space: nowrap; }

.gds-conseil { padding: 0; overflow: hidden; }
.gds-conseil .gds-bandeau { height: 92px; display: grid; place-items: center; font-size: 2.3rem; }
.gds-conseil .gds-corps { padding: 1.1rem 1.25rem; flex: 1; display: flex; flex-direction: column; }
.gds-tag { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--gds-orange-fonce); }

.gds-msg { text-align: center; }
.gds-msg .gds-rond { width: 46px; height: 46px; border-radius: 50%; color: #fff; display: grid; place-items: center; font-weight: 800; margin: 0 auto .6rem; }
.gds-msg img { width: 118px; height: 118px; margin: 0 auto .8rem; display: block; }
.gds-msg a { display: inline-block; color: #fff !important; text-decoration: none; font-weight: 600; font-size: .9rem; padding: .5rem .9rem; border-radius: 8px; }
.gds-wa { background: #1f9e55; } .gds-li { background: #06a14a; } .gds-za { background: #0068ff; } .gds-fb { background: #1877f2; }

.gds-appel { background: linear-gradient(135deg, var(--gds-orange-fonce), var(--gds-orange)); color: #fff; border-radius: 18px; padding: 2.4rem 2.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.gds-appel h2 { color: #fff; margin: 0 0 .4rem; }
.gds-appel p { margin: 0; opacity: .95; }

/* ── Bulle de discussion (module en position « debug », toutes les pages) ── */
.gds-bulle { position: fixed; right: 22px; bottom: 22px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; z-index: 1000; }
.gds-bulle .gds-mini { display: flex; gap: 8px; }
.gds-bulle .gds-mini a { width: 42px; height: 42px; border-radius: 50%; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .85rem; text-decoration: none; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.gds-bulle .gds-principal { background: #1f9e55; color: #fff; border-radius: 30px; padding: .75rem 1.1rem; font-weight: 700; text-decoration: none; box-shadow: 0 6px 18px rgba(0,0,0,.25); }

/* ── Bas de page ── */
.container-footer { background: var(--gds-nuit) !important; background-image: none !important; }
.container-footer .mod-menu { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.container-footer .mod-menu > li + li::before { content: "·"; margin-right: 1.5rem; opacity: .6; }
.container-footer a { color: #fff; }

/* ── Ajouts v1.1 (09/10, après le premier essai sur le site) ── */
.container-header .brand-logo, .container-header .brand-logo:hover { text-decoration: none; color: #fff; }
.btn-primary, a.btn-primary { background: var(--gds-orange-fonce) !important; border-color: var(--gds-orange-fonce) !important; color: #fff !important; font-weight: 600; border-radius: 8px; box-shadow: 0 3px 0 var(--gds-accent-ombre); }
.btn-primary:hover { background: var(--gds-accent-survol) !important; border-color: var(--gds-accent-survol) !important; }
.com-content-article__body h2 { margin-top: 1.6rem; }
.table-striped > tbody > tr:nth-of-type(odd) > * { --bs-table-accent-bg: var(--gds-creme); }

.gds-grille-2.gds-egal { grid-template-columns: 1fr 1fr; align-items: stretch; }
.gds-grille-2.gds-haut { align-items: start; }

/* étapes numérotées seulement dans un bloc .gds-etapes ; ailleurs, une coche */
.gds-etapes .gds-etape::before { counter-increment: gds-e; content: counter(gds-e); }


/* ── Page Conseils (liste) ── */
.com-content-category .list-author, .com-content-category thead, .com-content-category .com-content-category__pagination-limit,
.com-content-category .btn-toolbar { display: none !important; }
.com-content-category table, .com-content-category table th, .com-content-category table td { border: 0 !important; background: transparent !important; --bs-table-accent-bg: transparent; }
.com-content-category tbody tr { border-bottom: 1px solid var(--gds-bord) !important; }
.com-content-category tbody th, .com-content-category tbody td { padding: .9rem .4rem !important; }
.com-content-category .list-title a { font-size: 1.15rem; font-weight: 600; text-decoration: none; }
.com-content-category .list-title a::before { content: "→ "; color: var(--gds-orange); }

/* ── Page Contact ── */
.com-contact > h2, .com-contact .com-contact__container { display: none; }
.com-contact .pfa-explication { font-size: 1.05rem; margin: .4rem 0 1.2rem; }
.com-contact .contact-form legend { font-size: 1.25rem; color: var(--gds-nuit); font-weight: 700; }
.com-contact .contact-form { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.6rem; }
.gds-promesses { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; list-style: none; padding: 0; margin: 1rem 0 0; }
.gds-promesses li { background: var(--gds-creme); border: 1px solid var(--gds-bord); border-radius: 20px; padding: 4px 14px; font-weight: 600; color: var(--gds-nuit); }

/* ── Téléphone et tablette ── */
@media (max-width: 900px) {
  .gds-heros-grille, .gds-grille-2 { grid-template-columns: 1fr; }
  .gds-grille-3 { grid-template-columns: 1fr; }
  .gds-grille-4, .gds-confiance-grille { grid-template-columns: 1fr 1fr; }
  .gds-appel { flex-direction: column; align-items: flex-start; }
  .gds-bulle .gds-principal span { display: none; }
}
@media (max-width: 520px) {
  .gds-grille-4, .gds-confiance-grille { grid-template-columns: 1fr; }
  .gds-moi { grid-template-columns: 1fr; text-align: center; justify-items: center; }
}

/* ── Ajout v2.1 (10/10) : questions de la FAQ et sous-titres simples, plus petits que les titres de partie ── */
.com-content-article__body .gds-section > h3 { font-size: 1.15rem; margin: 1.2rem 0 .35rem; }
.com-content-article__body .gds-section > h2 + h3 { margin-top: .6rem; }

/* prix jamais coupés dans les lignes de tarifs (v1.1, 10/10/2026) */
.gds-ligne > strong:last-child { white-space: nowrap; padding-left: .8rem; }
.gds-ligne > div small { color: var(--gds-gris); }

/* avis : étoiles dorées, cartes bien rangées (v1.2, 10/10/2026) */
.gds-carte p.gds-etoiles { flex: 0 0 auto; margin: 0 0 .5rem; color: var(--gds-orange); font-size: 1.2rem; letter-spacing: 2px; }
.gds-carte p.gds-qui { flex: 0 0 auto; margin: 0; color: var(--gds-texte); }

/* finitions (v1.2, 10/10/2026) : pas de cadre autour des modules main-top ; ligne « site de démonstration » */
.main-top.card { border: 0; background: transparent; box-shadow: none; }
.main-top.card > .card-body { padding: 0; }
.gds-demo { font-size: .8rem; opacity: .85; margin: .6rem 0 0; color: #fff; }
.gds-demo a { color: var(--gds-accent-clair) !important; }

/* ════ v1.3 (11/10/2026) — commun à tous les modèles ════ */
/* Police des titres réglable dans le THÈME (--gds-titres) ; sans réglage, la police normale */
h1, h2, h3, .gds-heros h1 { font-family: var(--gds-titres, inherit); }
/* Bandeau d'appel : dégradé foncé → contraste du texte blanc toujours ≥ 4,5 (WCAG) */
.gds-appel { background: linear-gradient(135deg, var(--gds-nuit), var(--gds-orange-fonce)); }
/* Section SOMBRE (alternance clair / sombre) */
.gds-sombre { background: var(--gds-nuit); color: #fff; border-radius: 18px; padding: 2.2rem; }
.gds-sombre h2, .gds-sombre h3, .gds-sombre strong, .gds-sombre b { color: #fff; }
.gds-sombre .gds-tag { color: var(--gds-accent-clair); }
.gds-sombre a:not(.gds-btn) { color: var(--gds-accent-clair); }
.gds-sombre p, .gds-sombre li { color: rgba(255,255,255,.9); }
.gds-sombre .gds-ligne { border-bottom-color: rgba(255,255,255,.18); }
.gds-sombre .gds-carte { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.15); }
.gds-sombre .gds-carte p { color: rgba(255,255,255,.85); }
/* Questions fréquentes : <details> lisibles */
.gds-faq details { border-bottom: 1px solid var(--gds-bord); padding: .9rem 0; }
.gds-faq summary { cursor: pointer; font-weight: 700; color: var(--gds-nuit); list-style: none; }
.gds-faq summary::after { content: " +"; color: var(--gds-orange-fonce); }
.gds-faq details[open] summary::after { content: " −"; }
.gds-faq details p { margin: .6rem 0 0; color: var(--gds-gris); }

/* ════ v1.4 (11/10/2026) — séquence numérotée en cercle (pages « déroulé d'un soin ») ════ */
.gds-deroule { counter-reset: gds-d; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.1rem; }
.gds-deroule > div { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.2rem; }
.gds-deroule > div::before { counter-increment: gds-d; content: counter(gds-d); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--gds-nuit); color: #fff; font-weight: 800; margin-bottom: .6rem; }
.gds-deroule b { display: block; color: var(--gds-nuit); margin-bottom: .25rem; }
.gds-deroule span { color: var(--gds-gris); font-size: .92rem; }
.gds-avertissement { border-left: 4px solid var(--gds-orange-fonce); background: var(--gds-creme); padding: 1rem 1.2rem; border-radius: 0 12px 12px 0; }
@media (max-width: 900px) { .gds-deroule { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .gds-deroule { grid-template-columns: 1fr; } }

/* v1.4 : laisser la place au badge de la 1re carte sous un titre */
.gds-section > h2 + .gds-grille-2, .gds-section > h2 + .gds-grille-3, .gds-section > h2 + .gds-grille-4 { margin-top: 1.6rem; }

/* 12/10/2026 — titres de cartes en H2 (ordre correct pour Google) avec l'apparence des anciens H3 */
.gds-carte .gds-titre-carte { margin: 0 0 .5rem; font-size: 1.2rem; }
.gds-carte-garde .gds-titre-carte { margin: 0 0 .6rem; font-size: 1rem; }

/* 12/10/2026 — questions fréquentes (details/summary) */
.gds-section details { background: #fff; border: 1px solid var(--gds-bord, #ead9c2); border-radius: 12px; margin: .6rem 0; padding: 0 1.1rem; }
.gds-section details[open] { box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.gds-section summary { cursor: pointer; list-style: none; padding: .9rem 2rem .9rem 0; font-weight: 600; position: relative; }
.gds-section summary::-webkit-details-marker { display: none; }
.gds-section summary::after { content: "+"; position: absolute; right: 0; top: .7rem; font-size: 1.3rem; color: var(--gds-accent, #a06a1b); }
.gds-section details[open] summary::after { content: "–"; }
.gds-section details p { margin: 0 0 1rem; }

/* ═══════ 12/10/2026 — NIVEAU 2 (user.js) ═══════ */
/* En-tête collant qui se replie */
.container-header { transition: box-shadow .25s ease, padding .25s ease; }
.container-header.gds-replie { box-shadow: 0 6px 22px rgba(0,0,0,.22); }
.container-header.gds-replie .navbar-brand { padding-top: .2rem; padding-bottom: .2rem; }
.container-header.gds-replie .site-description { display: none; }

/* Apparitions au défilement (seulement si le JavaScript tourne et si la personne accepte les animations) */
.gds-js .gds-apparait { opacity: 0; transform: translateY(18px); transition: opacity .6s ease var(--gds-delai, 0ms), transform .6s ease var(--gds-delai, 0ms); }
.gds-js .gds-apparait.gds-vu { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .gds-js .gds-apparait { opacity: 1; transform: none; transition: none; } }

/* Bande « en chiffres » */
.gds-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; text-align: center; }
.gds-chiffre { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.2rem .8rem; }
.gds-chiffre b { display: block; font-size: 2.2rem; line-height: 1; color: var(--gds-nuit); font-variant-numeric: tabular-nums; }
.gds-chiffre > span { color: var(--gds-gris); font-size: .92rem; }
.gds-chiffre b .gds-compteur { font: inherit; color: inherit; }

/* Badge Ouvert / Fermé */
.gds-statut { white-space: normal; text-align: right; }
.gds-ligne > strong.gds-statut:last-child { white-space: normal; }
.gds-heros-grille > * { min-width: 0; }   /* une colonne ne doit jamais dépasser l'écran */
.gds-statut.gds-ouvert { color: #16794a; }
.gds-statut.gds-ferme { color: #b3261e; }
.gds-statut.gds-ouvert::before, .gds-statut.gds-ferme::before { content: "●"; margin-right: .35rem; font-size: .8em; }

/* Partage */
.gds-partage { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 2rem 0 1rem; padding-top: 1rem; border-top: 1px dashed var(--gds-bord); font-size: .92rem; color: var(--gds-gris); }
.gds-partage a, .gds-partage button { display: inline-flex; align-items: center; gap: .3rem; padding: .35rem .8rem; border-radius: 999px; border: 1px solid var(--gds-bord); background: #fff; color: var(--gds-nuit); text-decoration: none; font: inherit; cursor: pointer; }
.gds-partage a:hover, .gds-partage button:hover { border-color: var(--gds-orange); }

/* Barre d'actions sur téléphone */
.gds-barre-mobile { display: none; }
@media (max-width: 767.98px) {
  .gds-barre-mobile { display: grid; grid-template-columns: repeat(3, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
    background: var(--gds-nuit); box-shadow: 0 -4px 18px rgba(0,0,0,.25); padding-bottom: env(safe-area-inset-bottom); }
  .gds-barre-mobile a { color: #fff; text-decoration: none; text-align: center; padding: .55rem .2rem .5rem; font-size: .78rem; line-height: 1.2; }
  .gds-barre-mobile a span { display: block; font-size: 1.3rem; }
  .gds-barre-mobile a + a { border-left: 1px solid rgba(255,255,255,.15); }
  body { padding-bottom: 64px; }
}

/* Page 404 */
.gds-404 { text-align: center; padding: 2rem 1rem; }
.gds-404 .gds-actions { justify-content: center; }

/* Accessibilité : contour visible au clavier */
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--gds-orange); outline-offset: 2px; }

/* Impression : propre et sans menus */
@media print {
  .container-header, .container-footer, .gds-barre-mobile, .gds-partage, .gds-actions, .back-to-top-link { display: none !important; }
  body { color: #000; background: #fff; padding: 0; }
  .gds-carte, .gds-chiffre { break-inside: avoid; box-shadow: none; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* 12/10/2026 — étiquettes (tags) aux couleurs du site */
.tags { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 1.5rem 0 0; }
.tags .btn-info, .tags a { background: var(--gds-creme) !important; color: var(--gds-nuit) !important; border: 1px solid var(--gds-bord) !important; border-radius: 999px; font-size: .85rem; padding: .25rem .8rem; }
.tags .btn-info:hover, .tags a:hover { border-color: var(--gds-orange) !important; }
.tags a::before { content: "# "; color: var(--gds-orange-fonce); }

/* 12/10/2026 — pages d'étiquettes : liste de pages en cartes, sobres */
.com-tags-tag__items .list-group, .com-tags__items .list-group { border: 0; display: grid; gap: .6rem; }
.com-tags-tag__items .list-group-item, .com-tags__items .list-group-item { border: 1px solid var(--gds-bord) !important; border-radius: 12px !important; padding: .8rem 1.1rem; }
.com-tags-tag__items h2, .com-tags__items h2 { font-size: 1.1rem; margin: 0; }
.com-tags-tag__items h2 a, .com-tags__items h2 a { text-decoration: none; color: var(--gds-nuit); }
.com-tags-tag__items h2 a::after, .com-tags__items h2 a::after { content: " →"; color: var(--gds-orange-fonce); }
.com-tags-tag__items h2 a:hover, .com-tags__items h2 a:hover { color: var(--gds-orange-fonce); }

/* 12/10/2026 — mots chinois / thaïs balisés : restent collés au texte dans les lignes de prix */
.gds-ligne > span[lang] { flex: 1 1 auto; margin-left: .3em; }

/* 12/10/2026 — finitions du bas de page */
.main-bottom.card { border: 0; background: transparent; box-shadow: none; }
.main-bottom.card > .card-body { padding: 0; }
.main-bottom .gds-partage { margin-top: 1.5rem; }
.com-content-article .article-info dt.article-info-term { display: none; }       /* « Détails » inutile au-dessus de la date */
.com-content-article .article-info { margin: 1.5rem 0 .5rem; color: var(--gds-gris); font-size: .88rem; }
.container-footer .mod-menu { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin: 0; padding: 0; list-style: none; }
.container-footer .mod-menu > li { margin: 0; }
.container-footer .mod-menu > li + li::before { content: none !important; }

/* 12/10/2026 — tableau de produits lisible, défilant sur téléphone */
.gds-tableau { overflow-x: auto; border: 1px solid var(--gds-bord); border-radius: 14px; background: #fff; }
.gds-tableau table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 560px; }
.gds-tableau th, .gds-tableau td { padding: .65rem .9rem; text-align: left; border-bottom: 1px dashed var(--gds-bord); vertical-align: top; }
.gds-tableau th { background: var(--gds-creme); color: var(--gds-nuit); font-weight: 700; }
.gds-tableau tr:last-child td { border-bottom: 0; }
@media (max-width: 600px) { .gds-tableau::before { content: "← faites glisser le tableau →"; display: block; padding: .4rem .9rem; font-size: .78rem; color: var(--gds-gris); background: var(--gds-creme); } }

/* 12/10/2026 — grille de cartes en 2 colonnes égales (engagements, fidélité) */
.gds-grille-egale { grid-template-columns: 1fr 1fr !important; align-items: stretch; }
.gds-grille-egale > .gds-carte { margin: 0; }
@media (max-width: 767.98px) { .gds-grille-egale { grid-template-columns: 1fr !important; } }

/* ── Passerelle 13/10/2026 : logo avec le nom, langue active lisible ── */
.container-header .navbar-brand .brand-logo img { max-height: 56px; width: auto; }
.mod-languages ul.lang-inline li a { color: #fff; }
.mod-languages ul.lang-inline li.lang-active { background: var(--gds-orange); border-radius: 6px; }
.mod-languages ul.lang-inline li.lang-active a { color: var(--gds-nuit) !important; font-weight: 700; }

/* ── Tableaux des guides : en cartes sur téléphone (13/10/2026) ── */
@media (max-width: 640px) {
  .pfa-tableau thead { display: none; }
  .pfa-tableau, .pfa-tableau tbody, .pfa-tableau tr, .pfa-tableau td { display: block; width: 100%; }
  .pfa-tableau tr { border: 1px solid var(--gds-bord); border-radius: 10px; margin: 0 0 .8rem; padding: .4rem .2rem; background: #fff; }
  .pfa-tableau td { border: 0; padding: .25rem .6rem; }
  .pfa-tableau td::before { content: attr(data-label); display: block; font-size: .78rem; font-weight: 700; color: var(--gds-nuit); text-transform: uppercase; letter-spacing: .02em; }
}

/* ── Partenaires (13/10/2026) : liste en grille sur la page Partenaires, encart discret sur l'accueil ── */
.mod-banners.bannergroup { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; margin: 1.2rem 0; }
.mod-banners .banneritem { background: #fff; border: 1px solid var(--gds-bord); border-radius: 10px; padding: .8rem; display: flex; align-items: center; justify-content: center; }
.mod-banners .banneritem img { max-width: 100%; height: auto; }
.mod-banners .bannerheader { grid-column: 1 / -1; }
.pfa-encart-partenaire .mod-banners.bannergroup { grid-template-columns: minmax(0, 420px); justify-content: center; }
.pfa-etiquette-partenaire { margin: 0; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--gds-gris); text-align: center; }
/* Encart « Entreprise à découvrir » (côté) : titre dans la police du site, taille raisonnable */
.pfa-encart-entreprise h4, .pfa-encart-entreprise h4 a { font-family: inherit; font-size: 1.1rem; line-height: 1.3; }
/* Listes en colonnes (Guides, Entreprises, Agenda…) : une colonne ne doit jamais déborder sur sa voisine (encart latéral = moins de place) */
.blog-items > *, .com-content-category-blog__items > * { min-width: 0; }
.blog-item h2, .blog-item h3, .com-content-category-blog__item h2 { overflow-wrap: anywhere; }

/* 14/10/2026 : sur les pages à peine plus hautes que l'écran (ex. Mentions légales), la barre de défilement apparaissait puis disparaissait
   en boucle (le texte se reformait, la page changeait de hauteur) → tremblement. On garde la barre de défilement toujours présente. */
html { overflow-y: scroll; }

/* 14/10 : cases à cocher bien visibles et faciles à cliquer (bord foncé, plus grandes, main au survol, texte cliquable).
   Avant : bord presque blanc de 16 px, aucun signe au survol → Patrick devait « cliquer au hasard ». */
.form-check-input[type="checkbox"], .form-check-input[type="radio"] { width: 1.35em; height: 1.35em; margin-top: .15em; border: 2px solid #1b3a5c; cursor: pointer; }
.form-check-label { cursor: pointer; padding-left: .3em; }

/* 14/10 : listes du formulaire d'inscription affichées ouvertes (voir user.js, 1 bis) : sans la flèche du menu, lignes aérées, choix bien visible */
select.pfa-liste-ouverte { background-image: none; padding: .25rem; overflow-y: auto; }
select.pfa-liste-ouverte option { padding: .3rem .5rem; border-radius: 4px; }
select.pfa-liste-ouverte option:checked { background: #1b3a5c linear-gradient(0deg, #1b3a5c 0%, #1b3a5c 100%); color: #fff; }

/* 14/10 : accueil — dessin « arc-en-ciel de drapeaux » à côté du titre, et frise « Comment ça marche » (accueil_frise.py, dessins.py) */
.pfa-heros { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; align-items: center; }
.pfa-heros-dessin img { width: 100%; height: auto; display: block; }
.pfa-frise { display: grid; grid-template-columns: repeat(5, 1fr); gap: .9rem; margin: 1rem 0 .5rem; counter-reset: etape; position: relative; }
.pfa-frise::before { content: ""; position: absolute; left: 8%; right: 8%; top: 52px; border-top: 3px dashed var(--gds-orange); z-index: 0; }
.pfa-etape { position: relative; z-index: 1; background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: .9rem .75rem; text-align: center; box-shadow: 0 4px 14px rgba(18, 53, 91, .07); }
.pfa-etape img { width: 76px; height: 76px; display: block; margin: 0 auto .5rem; background: var(--gds-creme); border-radius: 50%; padding: 8px; }
.pfa-etape h3 { font-size: 1.02rem; margin: .2rem 0 .3rem; color: var(--gds-nuit); }
.pfa-etape h3::before { counter-increment: etape; content: counter(etape) ". "; color: var(--gds-orange-fonce); }
.pfa-etape p { font-size: .9rem; margin: 0; color: var(--gds-gris); line-height: 1.45; }
.pfa-frise-guide { text-align: right; margin-bottom: 1.5rem; }
@media (max-width: 900px) { .pfa-heros { grid-template-columns: 1fr; } .pfa-heros-dessin { max-width: 480px; margin: 0 auto; } .pfa-frise { grid-template-columns: 1fr 1fr; } .pfa-frise::before { display: none; } }
@media (max-width: 480px) { .pfa-frise { grid-template-columns: 1fr; } .pfa-frise-guide { text-align: left; } }

/* 14/10 : fiches — section « Nos produits » (écrite par Produits.php à partir des familles publiées) */
.pfa-produits { margin: 1.5rem 0; }
.pfa-produit { border: 1px solid var(--gds-bord); border-radius: 12px; padding: .9rem 1rem; margin-bottom: .9rem; background: #fff; }
.pfa-produit h3 { font-size: 1.1rem; margin: 0 0 .2rem; color: var(--gds-nuit); }
.pfa-produit-chapitre { font-size: .85rem; color: var(--gds-gris); margin: 0 0 .4rem; }
.pfa-produit-carac { margin: .4rem 0; padding-left: 1.1rem; font-size: .92rem; }
.pfa-mots { margin: .4rem 0 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.pfa-mots span { background: var(--gds-creme); border: 1px solid var(--gds-bord); border-radius: 999px; padding: .1rem .6rem; font-size: .85rem; }
.pfa-produit-note { font-size: .8rem; color: var(--gds-gris); font-style: italic; margin: .4rem 0 0; }
.pfa-18 { display: inline-block; background: var(--gds-nuit); color: #fff; border-radius: 6px; padding: 0 .4rem; font-size: .8rem; vertical-align: middle; }

/* 15/10 : case « Tapez pour chercher » au-dessus des longues listes ouvertes (chapitre des douanes, pays) — user.js 1 bis */
.pfa-filtre-liste { margin-bottom: .35rem; }

/* 15/10 : sur le côté, « Entreprise à découvrir » montre une AUTRE entreprise : pas de bouton « Demander une mise en relation » ici
   (Patrick a cliqué sur celui du côté en croyant demander l'entreprise de la page) ; on va sur sa fiche par « Lire la suite : … » */
.pfa-encart-entreprise .pfa-contacter { display: none; }

/* 15/10 : recherche publique « Trouver une entreprise ou un produit » (mod_passerellerecherche, en haut de la page Entreprises) */
.pfa-recherche { background: #f4f7fb; border: 1px solid #d6e0ec; border-radius: 10px; padding: 1rem 1.1rem; margin-bottom: 1.5rem; }
.pfa-recherche-form { display: grid; grid-template-columns: 1fr minmax(8rem, 13rem) minmax(10.5rem, 12rem) auto; gap: .5rem; }   /* 25/10/2026 : + langue parlée */
.pfa-recherche-info { margin: .8rem 0 .4rem; }
.pfa-resultat { border-top: 1px solid #d6e0ec; padding: .7rem 0; }
.pfa-resultat h3 { margin: 0 0 .2rem; }
.pfa-resultat-info { color: #5a6b7d; font-size: .95rem; margin: 0 0 .3rem; }
.pfa-resultat-produits { font-size: .95rem; margin: 0; }
@media (max-width: 640px) { .pfa-recherche-form { grid-template-columns: 1fr; } }
.pfa-recherche-correction { font-style: italic; color: #1b3a5c; }

/* 15/10 : QR code sous chaque fiche d'entreprise (mod_passerelleqr) */
.pfa-qr-fiche { display: flex; gap: 1rem; align-items: center; border: 1px solid #d6e0ec; border-radius: 10px; padding: .8rem 1rem; margin: 1.5rem 0; background: #fff; max-width: 34rem; }
.pfa-qr-image svg { display: block; width: 140px; height: 140px; }
.pfa-qr-titre { font-weight: 700; margin: 0 0 .3rem; }
.pfa-qr-aide { margin: 0; color: #5a6b7d; font-size: .95rem; }
@media (max-width: 480px) { .pfa-qr-fiche { flex-direction: column; text-align: center; } }

/* ════════ PAGE FORMULES ET PRIX (21/10/2026) ════════ */
.pfa-prix { --pfa-ombre: 0 10px 30px rgba(18,53,91,.12); color: var(--gds-texte); }
.pfa-prix section { margin: 0 0 3.2rem; }
.pfa-prix-hero { background: linear-gradient(135deg, var(--gds-nuit) 0%, var(--gds-nuit-2) 100%); color: #fff; border-radius: 18px; padding: 2.6rem 2rem; text-align: center; position: relative; overflow: hidden; }
.pfa-prix-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(224,165,38,.18); }
.pfa-prix-surtitre { display: inline-block; background: rgba(244,208,111,.18); color: var(--gds-accent-clair); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .8rem; padding: .35rem .9rem; border-radius: 99px; }
.pfa-prix-hero h2 { color: #fff; font-size: clamp(1.6rem, 3.6vw, 2.4rem); margin: 1rem 0 .7rem; line-height: 1.2; }
.pfa-prix-hero h2 em { color: var(--gds-accent-clair); font-style: normal; }
.pfa-prix-hero p { max-width: 640px; margin: 0 auto 1.4rem; opacity: .92; font-size: 1.05rem; }
.pfa-prix-atouts { list-style: none; padding: 0; margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.4rem; font-size: .95rem; }
.pfa-prix-atouts i { color: var(--gds-accent-clair); margin-right: .35rem; }
a.pfa-btn-or, .pfa-btn-or { display: inline-block; background: var(--gds-orange); color: var(--gds-nuit) !important; font-weight: 800; text-decoration: none !important; padding: .9rem 1.8rem; border-radius: 10px; box-shadow: 0 4px 0 #a97a14; transition: transform .15s; }
a.pfa-btn-or:hover { transform: translateY(-2px); }
a.pfa-btn-ligne { display: inline-block; border: 2px solid var(--gds-nuit); color: var(--gds-nuit) !important; font-weight: 700; text-decoration: none !important; padding: .7rem 1.3rem; border-radius: 10px; }
.pfa-prix-titre { text-align: center; color: var(--gds-nuit); font-size: clamp(1.4rem, 2.8vw, 1.9rem); margin-bottom: .4rem; }
.pfa-prix-soustitre { text-align: center; color: var(--gds-gris); max-width: 620px; margin: 0 auto 1.8rem; }
.pfa-prix-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.3rem; align-items: stretch; }
.pfa-carte { background: #fff; border: 1px solid var(--gds-bord); border-radius: 16px; padding: 1.8rem 1.5rem; box-shadow: var(--pfa-ombre); display: flex; flex-direction: column; position: relative; }
.pfa-carte h3 { color: var(--gds-nuit); font-size: 1.25rem; margin: 0 0 .3rem; }
.pfa-carte .pfa-icone { width: 52px; height: 52px; border-radius: 14px; background: var(--gds-creme); color: var(--gds-orange-fonce); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 1rem; }
.pfa-prix-montant { font-size: 2.6rem; font-weight: 800; color: var(--gds-nuit); line-height: 1; margin: .6rem 0 .2rem; }
.pfa-prix-montant small { font-size: 1rem; font-weight: 600; color: var(--gds-gris); }
.pfa-prix-note { color: var(--gds-gris); font-size: .9rem; margin-bottom: 1rem; }
.pfa-carte ul { list-style: none; padding: 0; margin: 0 0 1.4rem; flex: 1; }
.pfa-carte li { padding: .35rem 0 .35rem 1.6rem; position: relative; font-size: .95rem; }
.pfa-carte li::before { content: "✓"; position: absolute; left: 0; color: #1f8a4c; font-weight: 800; }
.pfa-carte.pfa-vedette { border: 2px solid var(--gds-orange); transform: translateY(-8px); box-shadow: 0 18px 40px rgba(18,53,91,.2); }
.pfa-ruban { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: var(--gds-orange-fonce); color: #fff; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .35rem .9rem; border-radius: 99px; white-space: nowrap; }
.pfa-packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.pfa-pack { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.4rem 1rem 1.2rem; text-align: center; box-shadow: var(--pfa-ombre); position: relative; }
.pfa-pack-nb { font-size: 2.4rem; font-weight: 800; color: var(--gds-nuit); line-height: 1; }
.pfa-pack-libelle { font-size: .82rem; color: var(--gds-gris); text-transform: uppercase; letter-spacing: .05em; }
.pfa-pack-prix { font-size: 1.6rem; font-weight: 800; color: var(--gds-orange-fonce); margin: .7rem 0 .1rem; }
.pfa-pack-unite { font-size: .85rem; color: var(--gds-gris); }
.pfa-pack-eco { display: inline-block; margin-top: .6rem; background: #e7f5ec; color: #1f7a3a; font-weight: 800; font-size: .8rem; padding: .2rem .6rem; border-radius: 99px; }
.pfa-pack.pfa-vedette { background: var(--gds-nuit); border-color: var(--gds-nuit); color: #fff; transform: scale(1.05); }
.pfa-pack.pfa-vedette .pfa-pack-nb, .pfa-pack.pfa-vedette .pfa-pack-prix { color: var(--gds-accent-clair); }
.pfa-pack.pfa-vedette .pfa-pack-libelle, .pfa-pack.pfa-vedette .pfa-pack-unite { color: rgba(255,255,255,.85); }
/* 03/11/2026 (capture de Patrick) : « Demander ce pack » en BAS de chaque carte (les 4 boutons alignés) ; visible sur la carte vedette (fond nuit) */
.pfa-pack { display: flex; flex-direction: column; align-items: center; }
.pfa-pack-choisir { margin: auto 0 0; padding-top: .9rem; }
.pfa-pack.pfa-vedette a.pfa-btn-ligne { background: var(--gds-accent-clair); border-color: var(--gds-accent-clair); color: var(--gds-nuit) !important; }
.pfa-etapes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-top: 2rem; counter-reset: etape; }
.pfa-etape { background: var(--gds-creme); border-radius: 14px; padding: 1.3rem 1.1rem; text-align: center; }
.pfa-etape i { font-size: 1.5rem; color: var(--gds-orange-fonce); margin-bottom: .6rem; display: block; }
.pfa-etape b { display: block; color: var(--gds-nuit); margin-bottom: .3rem; }
.pfa-etape span { font-size: .9rem; color: var(--gds-gris); }
.pfa-remarque { text-align: center; font-size: .9rem; color: var(--gds-gris); margin-top: 1.2rem; }
.pfa-sponso { display: inline-block; font-size: .72rem; font-weight: 700; color: var(--gds-gris); border: 1px solid var(--gds-bord); border-radius: 6px; padding: .1rem .45rem; margin-left: .3rem; vertical-align: middle; }
.pfa-offre { background: linear-gradient(135deg, #fff7e0 0%, #fde9b6 100%); border: 2px dashed var(--gds-orange); border-radius: 18px; padding: 2rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.2rem; }
.pfa-offre h2 { color: var(--gds-nuit); margin: 0 0 .3rem; font-size: 1.5rem; }
.pfa-offre p { margin: 0; color: var(--gds-texte); }
.pfa-offre i.fa-gift { font-size: 2.6rem; color: var(--gds-orange-fonce); }
.pfa-garanties { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: .8rem; }
.pfa-garantie { display: flex; gap: .9rem; align-items: flex-start; background: #fff; border: 1px solid var(--gds-bord); border-radius: 12px; padding: 1rem 1.1rem; }
.pfa-garantie i { color: #1f7a3a; font-size: 1.2rem; margin-top: .15rem; }
.pfa-petit { text-align: center; font-size: .85rem; color: var(--gds-gris); }
@media print { .pfa-carte.pfa-vedette, .pfa-pack.pfa-vedette { transform: none; } .pfa-prix-hero, .pfa-pack.pfa-vedette { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* ════════ PAGE COMMENT ÇA MARCHE (21/10/2026) ════════ */
.pfa-parcours { display: flex; flex-direction: column; gap: 1rem; max-width: 820px; margin: 0 auto; }
.pfa-pas { display: flex; gap: 1.2rem; align-items: flex-start; background: #fff; border: 1px solid var(--gds-bord); border-radius: 16px; padding: 1.4rem 1.5rem; box-shadow: 0 10px 30px rgba(18,53,91,.08); }
.pfa-pas-num { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--gds-nuit); color: var(--gds-accent-clair); font-weight: 800; font-size: 1.3rem; display: flex; align-items: center; justify-content: center; }
.pfa-pas h3 { color: var(--gds-nuit); margin: .1rem 0 .3rem; font-size: 1.15rem; }
.pfa-pas p { margin: 0; color: var(--gds-texte); }
.pfa-pas .pfa-etiquette { display: inline-block; margin-top: .5rem; font-size: .8rem; font-weight: 700; padding: .2rem .65rem; border-radius: 99px; background: #e7f5ec; color: #1f7a3a; }
.pfa-pas .pfa-etiquette.pfa-payant { background: #fdf0e1; color: var(--gds-orange-fonce); }
.pfa-exemples { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.3rem; }
.pfa-exemple { background: var(--gds-creme); border-left: 5px solid var(--gds-orange); border-radius: 14px; padding: 1.6rem 1.5rem; }
.pfa-exemple .pfa-exemple-tete { display: flex; align-items: center; gap: .8rem; margin-bottom: .8rem; }
.pfa-exemple .pfa-exemple-tete i { font-size: 1.6rem; color: var(--gds-orange-fonce); }
.pfa-exemple h3 { margin: 0; color: var(--gds-nuit); font-size: 1.15rem; }
.pfa-exemple .pfa-flux { list-style: none; padding: 0; margin: .8rem 0 0; }
.pfa-exemple .pfa-flux li { padding: .3rem 0 .3rem 1.5rem; position: relative; font-size: .95rem; }
.pfa-exemple .pfa-flux li::before { content: "→"; position: absolute; left: 0; color: var(--gds-orange-fonce); font-weight: 800; }
.pfa-avantages { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; text-align: center; }
.pfa-avantage { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.5rem 1.1rem; }
.pfa-avantage i { font-size: 1.8rem; color: var(--gds-orange-fonce); margin-bottom: .6rem; display: block; }
.pfa-avantage b { display: block; color: var(--gds-nuit); font-size: 1.05rem; margin-bottom: .3rem; }
.pfa-avantage span { font-size: .9rem; color: var(--gds-gris); }

/* ════════ ACCUEIL « GRAND FORMAT » (21/10/2026) ════════ */
.pfa-acc { color: var(--gds-texte); }
.pfa-acc > section { margin: 0 0 4rem; }
.pfa-acc h2.pfa-acc-titre { text-align: center; color: var(--gds-nuit); font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 0 0 .4rem; }
.pfa-acc .pfa-acc-sous { text-align: center; color: var(--gds-gris); max-width: 660px; margin: 0 auto 2rem; font-size: 1.02rem; }
.pfa-acc-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 2rem; align-items: center; background: radial-gradient(circle at 85% 20%, #2a5d92 0%, var(--gds-nuit) 55%, #0b2442 100%); color: #fff; border-radius: 22px; padding: 3.2rem 2.6rem; position: relative; overflow: hidden; }
.pfa-acc-hero::before { content: ""; position: absolute; left: -80px; bottom: -120px; width: 300px; height: 300px; border-radius: 50%; background: rgba(224,165,38,.12); }
.pfa-acc-pastille { display: inline-flex; align-items: center; gap: .5rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); color: var(--gds-accent-clair); font-size: .82rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: .4rem .9rem; border-radius: 99px; }
.pfa-acc-hero h1 { color: #fff; font-size: clamp(1.9rem, 4.2vw, 3rem); line-height: 1.12; margin: 1.1rem 0 1rem; font-weight: 800; }
.pfa-acc-hero h1 em { font-style: normal; color: var(--gds-accent-clair); }
.pfa-acc-hero .pfa-acc-lead { font-size: 1.1rem; opacity: .93; margin-bottom: 1.6rem; max-width: 560px; }
.pfa-acc-boutons { display: flex; flex-wrap: wrap; gap: .8rem; }
a.pfa-btn-blanc { display: inline-block; background: rgba(255,255,255,.08); border: 2px solid rgba(255,255,255,.55); color: #fff !important; font-weight: 700; text-decoration: none !important; padding: .8rem 1.5rem; border-radius: 10px; }
a.pfa-btn-blanc:hover { background: rgba(255,255,255,.18); }
.pfa-acc-confiance { display: flex; flex-wrap: wrap; gap: .5rem 1.3rem; margin-top: 1.6rem; font-size: .9rem; opacity: .92; }
.pfa-acc-confiance i { color: var(--gds-accent-clair); margin-right: .35rem; }
.pfa-acc-visuel { position: relative; z-index: 1; text-align: center; }
.pfa-acc-visuel img { width: 100%; max-width: 460px; height: auto; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); background: rgba(255,255,255,.95); border-radius: 18px; padding: 1rem; }
.pfa-acc-drapeaux { display: flex; justify-content: center; gap: .5rem; margin-top: 1rem; }
.pfa-acc-drapeaux svg { width: 36px; height: 24px; border-radius: 3px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.pfa-acc-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-top: -2.4rem; position: relative; z-index: 2; padding: 0 1.2rem; }
.pfa-acc-chiffre { background: #fff; border-radius: 16px; padding: 1.4rem 1.2rem; box-shadow: 0 14px 36px rgba(18,53,91,.16); text-align: center; border-top: 4px solid var(--gds-orange); }
.pfa-acc-chiffre b { display: block; font-size: 2rem; font-weight: 800; color: var(--gds-nuit); line-height: 1.1; }
.pfa-acc-chiffre span { display: block; font-size: .9rem; margin-top: .35rem; }
.pfa-acc-chiffre small { display: block; color: var(--gds-gris); font-size: .75rem; margin-top: .35rem; font-style: italic; }
.pfa-acc-3pas { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; position: relative; }
.pfa-acc-pas { background: #fff; border: 1px solid var(--gds-bord); border-radius: 18px; padding: 2rem 1.5rem 1.6rem; text-align: center; box-shadow: 0 10px 30px rgba(18,53,91,.08); position: relative; }
.pfa-acc-pas .pfa-acc-rond { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; background: linear-gradient(135deg, var(--gds-nuit), var(--gds-nuit-2)); color: var(--gds-accent-clair); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 8px 20px rgba(18,53,91,.25); }
.pfa-acc-pas h3 { color: var(--gds-nuit); font-size: 1.15rem; margin: 0 0 .4rem; }
.pfa-acc-pas p { color: var(--gds-gris); font-size: .95rem; margin: 0 0 .8rem; }
.pfa-acc-prix { display: inline-block; font-weight: 800; font-size: .85rem; padding: .3rem .8rem; border-radius: 99px; background: #e7f5ec; color: #1f7a3a; }
.pfa-acc-prix.pfa-payant { background: #fdf0e1; color: var(--gds-orange-fonce); }
.pfa-acc-lien { text-align: center; margin-top: 1.6rem; }
.pfa-acc-pays { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
a.pfa-acc-pays-carte { display: block; background: #fff; border: 1px solid var(--gds-bord); border-radius: 16px; padding: 1.4rem 1rem; text-align: center; text-decoration: none !important; color: var(--gds-texte) !important; transition: transform .15s, box-shadow .15s; }
a.pfa-acc-pays-carte:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(18,53,91,.15); }
a.pfa-acc-pays-carte svg { width: 66px; height: 44px; border-radius: 5px; box-shadow: 0 3px 8px rgba(0,0,0,.18); margin-bottom: .8rem; }
a.pfa-acc-pays-carte b { display: block; color: var(--gds-nuit); font-size: 1.1rem; }
a.pfa-acc-pays-carte span { font-size: .85rem; color: var(--gds-gris); }
.pfa-acc-commerce { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.pfa-acc-commerce > div { background: var(--gds-creme); border-radius: 16px; padding: 1.5rem 1.2rem; text-align: center; }
.pfa-acc-commerce img { width: 58px; height: 58px; margin-bottom: .6rem; }
.pfa-acc-commerce h3 { color: var(--gds-nuit); font-size: 1.05rem; margin: 0 0 .4rem; }
.pfa-acc-commerce p { font-size: .9rem; color: var(--gds-gris); margin: 0; }
.pfa-acc-secteurs { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
a.pfa-acc-secteur { display: inline-flex; align-items: center; gap: .55rem; background: #fff; border: 1px solid var(--gds-bord); border-radius: 99px; padding: .65rem 1.1rem; text-decoration: none !important; color: var(--gds-nuit) !important; font-weight: 600; font-size: .92rem; transition: background .15s, color .15s; }
a.pfa-acc-secteur i { color: var(--gds-orange-fonce); }
a.pfa-acc-secteur:hover { background: var(--gds-nuit); color: #fff !important; }
a.pfa-acc-secteur:hover i { color: var(--gds-accent-clair); }
.pfa-acc-tarifs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.2rem; }
.pfa-acc-tarif { border-radius: 18px; padding: 1.8rem 1.5rem; text-align: center; background: #fff; border: 1px solid var(--gds-bord); }
.pfa-acc-tarif.pfa-vedette { background: var(--gds-nuit); color: #fff; border-color: var(--gds-nuit); }
.pfa-acc-tarif h3 { margin: 0 0 .3rem; font-size: 1.1rem; color: inherit; }
.pfa-acc-tarif .pfa-acc-montant { font-size: 2.4rem; font-weight: 800; color: var(--gds-nuit); line-height: 1.1; }
.pfa-acc-tarif.pfa-vedette .pfa-acc-montant { color: var(--gds-accent-clair); }
.pfa-acc-tarif p { font-size: .9rem; margin: .4rem 0 0; opacity: .85; }
.pfa-acc-engagements { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.pfa-acc-engagement { display: flex; gap: .9rem; align-items: flex-start; background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.2rem 1.2rem; }
.pfa-acc-engagement i { flex: none; width: 42px; height: 42px; border-radius: 12px; background: #e7f5ec; color: #1f7a3a; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.pfa-acc-engagement b { display: block; color: var(--gds-nuit); margin-bottom: .2rem; }
.pfa-acc-engagement span { font-size: .9rem; color: var(--gds-gris); }
.pfa-acc-faq { max-width: 820px; margin: 0 auto; }
.pfa-acc-faq details { background: #fff; border: 1px solid var(--gds-bord); border-radius: 12px; margin-bottom: .7rem; padding: 0 1.2rem; }
.pfa-acc-faq summary { cursor: pointer; font-weight: 700; color: var(--gds-nuit); padding: 1rem 0; list-style: none; }
.pfa-acc-faq summary::after { content: "+"; float: right; color: var(--gds-orange-fonce); font-size: 1.3rem; line-height: 1; }
.pfa-acc-faq details[open] summary::after { content: "−"; }
.pfa-acc-faq details p { margin: 0 0 1rem; color: var(--gds-texte); }
.pfa-acc-final { text-align: center; background: linear-gradient(135deg, var(--gds-nuit) 0%, var(--gds-nuit-2) 100%); color: #fff; border-radius: 22px; padding: 3rem 2rem; }
.pfa-acc-final h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.1rem); margin: 0 0 .6rem; }
.pfa-acc-final p { opacity: .9; margin: 0 auto 1.5rem; max-width: 600px; }
@media (max-width: 860px) { .pfa-acc-hero { grid-template-columns: 1fr; padding: 2.4rem 1.5rem; } .pfa-acc-chiffres { margin-top: 1rem; padding: 0; } }

/* ════════ CARTE DE VISITE (21/10/2026) ════════ */
.pfa-cv-faces { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.6rem; margin: 1rem 0 2rem; }
.pfa-cv-face { width: 100%; max-width: 420px; aspect-ratio: 85 / 55; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 40px rgba(18,53,91,.22); background: #fff; }
.pfa-cv-face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pfa-cv-legende { text-align: center; font-size: .85rem; color: var(--gds-gris); margin-top: .5rem; }
.pfa-cv-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.pfa-cv-encart { display: grid; grid-template-columns: auto 1fr; gap: 2rem; align-items: center; background: var(--gds-creme); border: 1px solid var(--gds-bord); border-radius: 22px; padding: 2rem; }
a.pfa-cv-mini { display: block; width: 300px; max-width: 100%; aspect-ratio: 85 / 55; border-radius: 12px; overflow: hidden; box-shadow: 0 14px 30px rgba(18,53,91,.22); transition: transform .15s; }
a.pfa-cv-mini:hover { transform: translateY(-4px) rotate(-1deg); }
a.pfa-cv-mini img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pfa-cv-encart h2 { color: var(--gds-nuit); margin: 0 0 .5rem; font-size: 1.6rem; }
.pfa-cv-encart p { margin: 0 0 1.2rem; color: var(--gds-texte); }
@media (max-width: 700px) { .pfa-cv-encart { grid-template-columns: 1fr; text-align: center; } a.pfa-cv-mini { margin: 0 auto; } }
@page carte { size: 85mm 55mm; margin: 0; }
@media print {
  body:has(.pfa-cv-faces) header, body:has(.pfa-cv-faces) footer, body:has(.pfa-cv-faces) nav, body:has(.pfa-cv-faces) .container-sidebar-right,
  body:has(.pfa-cv-faces) .container-banner, body:has(.pfa-cv-faces) .mod-breadcrumbs, body:has(.pfa-cv-faces) .pfa-cv-a-cacher,
  body:has(.pfa-cv-faces) .page-header, body:has(.pfa-cv-faces) .container-component > :not(main):not(.com-content-article) { display: none !important; }
  body:has(.pfa-cv-faces) .site-grid, body:has(.pfa-cv-faces) main, body:has(.pfa-cv-faces) .com-content-article { display: block !important; margin: 0 !important; padding: 0 !important; }
  .pfa-cv-faces { display: block; margin: 0; }
  .pfa-cv-face { page: carte; width: 85mm; height: 55mm; max-width: none; border-radius: 0; box-shadow: none; break-after: page; }
  .pfa-cv-legende { display: none; }
}

/* ════════════════ SITE COMPLET « COMMERCIAL » (21/10/2026, nuit) — s'applique à toutes les pages et aux 5 langues ════════════════ */
/* Titre de page : bandeau bleu nuit */
.com-content-article > .page-header h1, .com-content-category-blog > h1, .com-content-category-blog > .page-header h1,
.com-contact > .page-header h1, .com-content-categories > h1, .com-tags-tag > h1, .com-finder > h1, .com-users > .page-header h1 {
  background: radial-gradient(circle at 90% 10%, #2a5d92 0%, var(--gds-nuit) 60%, #0b2442 100%); color: #fff !important;
  padding: 1.5rem 1.8rem 1.5rem 2.2rem; border-radius: 18px; font-size: clamp(1.5rem, 3.2vw, 2.2rem); line-height: 1.2;
  position: relative; overflow: hidden; margin: .4rem 0 1.6rem; box-shadow: 0 14px 34px rgba(18,53,91,.18); }
.com-content-article > .page-header h1::before, .com-content-category-blog > h1::before, .com-content-category-blog > .page-header h1::before,
.com-contact > .page-header h1::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 7px; background: var(--gds-orange); }
.com-content-article > .page-header h1::after, .com-content-category-blog > h1::after, .com-contact > .page-header h1::after {
  content: ""; position: absolute; right: -50px; top: -60px; width: 170px; height: 170px; border-radius: 50%; background: rgba(224,165,38,.16); }
/* Pages qui ont déjà leur propre bandeau (prix, comment ça marche, carte) : titre simple */
body:has(.pfa-prix) .com-content-article > .page-header h1 { background: none; color: var(--gds-nuit) !important; padding: 0; box-shadow: none; border-radius: 0; }
body:has(.pfa-prix) .com-content-article > .page-header h1::before, body:has(.pfa-prix) .com-content-article > .page-header h1::after { display: none; }
.contact-name { color: inherit; }

/* Fil d'Ariane */
.mod-breadcrumbs, nav.mod-breadcrumbs__wrapper ol { background: #fff !important; border: 1px solid var(--gds-bord); border-radius: 99px; padding: .45rem 1rem !important; font-size: .85rem; }
.mod-breadcrumbs a { text-decoration: none; font-weight: 600; }

/* Texte des pages */
.com-content-article__body > p.lead, .category-desc > p.lead:first-child { font-size: 1.12rem; color: var(--gds-texte); background: var(--gds-creme); border-left: 5px solid var(--gds-orange); border-radius: 0 14px 14px 0; padding: 1rem 1.3rem; }
.com-content-article__body > h2, .category-desc > h2 { color: var(--gds-nuit); margin-top: 2.2rem; padding-top: .9rem; position: relative; font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
.com-content-article__body > h2::before, .category-desc > h2::before { content: ""; position: absolute; left: 0; top: 0; width: 46px; height: 4px; border-radius: 4px; background: var(--gds-orange); }
/* 02/11/2026 : sous-titres du texte (h3) PLUS PETITS que les titres de partie (h2) — avant : 28 px contre 25,6 px (ordre inversé) */
.com-content-article__body > h3, .category-desc > h3 { font-size: clamp(1.05rem, 1.8vw, 1.2rem); margin: 1.4rem 0 .35rem; color: var(--gds-nuit); }
.com-content-article__body > h3 { color: var(--gds-nuit-2); margin-top: 1.4rem; }
.com-content-article__body > ul, .com-content-article__body > ol, .category-desc > ul { padding-left: 0; list-style: none; }
.com-content-article__body > ul > li, .category-desc > ul > li { position: relative; padding: .3rem 0 .3rem 1.7rem; }
.com-content-article__body > ul > li::before, .category-desc > ul > li::before { content: ""; position: absolute; left: .2rem; top: .78rem; width: .55rem; height: .55rem; border-radius: 2px; background: var(--gds-orange); transform: rotate(45deg); }
.com-content-article__body > ol { counter-reset: num; }
.com-content-article__body > ol > li { counter-increment: num; position: relative; padding: .45rem 0 .45rem 2.4rem; }
.com-content-article__body > ol > li::before { content: counter(num); position: absolute; left: 0; top: .35rem; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--gds-nuit); color: var(--gds-accent-clair); font-weight: 800; font-size: .85rem; display: flex; align-items: center; justify-content: center; }
.com-content-article__body table.table, .category-desc table.table, .com-content-article__body > table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--gds-bord); border-radius: 14px; overflow: hidden; box-shadow: 0 8px 22px rgba(18,53,91,.07); }
.com-content-article__body table.table thead th, .category-desc table.table thead th { background: var(--gds-nuit); color: #fff; border: 0; font-weight: 700; padding: .8rem .9rem; }
.com-content-article__body table.table td, .category-desc table.table td { padding: .7rem .9rem; border-top: 1px solid var(--gds-bord); vertical-align: top; }
.com-content-article__body table.table tbody tr:nth-child(even) td { background: var(--gds-creme); }
.com-content-article__body > details, .category-desc > details { background: #fff; border: 1px solid var(--gds-bord); border-radius: 12px; margin-bottom: .7rem; padding: 0 1.2rem; }
.com-content-article__body > details > summary, .category-desc > details > summary { cursor: pointer; font-weight: 700; color: var(--gds-nuit); padding: .9rem 0; list-style: none; }
.com-content-article__body > details > summary::after { content: "+"; float: right; color: var(--gds-orange-fonce); font-size: 1.3rem; line-height: 1; }
.com-content-article__body > details[open] > summary::after { content: "−"; }
.com-content-article__body > p > em:only-child, .com-content-article__body > p > small { color: var(--gds-gris); }
.com-content-article__body > blockquote, .com-content-article__body > .alert { border-radius: 14px; }

/* Listes (guides, pays, agenda, entreprises, bons plans) : cartes */
.category-desc { background: linear-gradient(180deg, #fff 0%, var(--gds-creme) 100%); border: 1px solid var(--gds-bord); border-top: 4px solid var(--gds-orange); border-radius: 18px; padding: 1.4rem 1.6rem; margin-bottom: 1.8rem; box-shadow: 0 10px 28px rgba(18,53,91,.07); }
.com-content-category-blog__items.blog-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.3rem; align-items: start; }
.com-content-category-blog__items .blog-item { background: #fff; border: 1px solid var(--gds-bord); border-radius: 18px; padding: 1.4rem 1.5rem 1.2rem; box-shadow: 0 10px 28px rgba(18,53,91,.08); transition: transform .15s, box-shadow .15s; margin: 0 !important; position: relative; overflow: hidden; }
.com-content-category-blog__items .blog-item::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--gds-nuit), var(--gds-orange)); }
.com-content-category-blog__items .blog-item:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(18,53,91,.14); }
.blog-item .page-header h2, .blog-item .page-header h2 a, .blog-item h2.item-title a { font-size: 1.22rem; line-height: 1.3; color: var(--gds-nuit) !important; text-decoration: none !important; margin-bottom: .5rem; }
.blog-item .page-header h2 a:hover { color: var(--gds-orange-fonce) !important; }
.blog-item p.lead { font-size: 1rem; }
.blog-item p.readmore { margin: .8rem 0 0; }
.blog-item p.readmore a.btn, .com-content-article .readmore a.btn { background: transparent !important; color: var(--gds-nuit) !important; border: 2px solid var(--gds-nuit) !important; border-radius: 10px; font-weight: 700; padding: .5rem 1rem; box-shadow: none; }
.blog-item p.readmore a.btn:hover { background: var(--gds-nuit) !important; color: #fff !important; }
.cat-children { margin-top: 2rem; }
.cat-children h3, .com-content-category-blog__children h3 { display: inline-block; }
.com-content-category-blog__children { display: inline-block; margin: .3rem .4rem .3rem 0; }
.com-content-category-blog__child h3.item-title a, .com-content-category-blog__child .item-title a { display: inline-block; background: #fff; border: 1px solid var(--gds-bord); border-radius: 99px; padding: .5rem 1.1rem; font-size: .95rem; font-weight: 700; color: var(--gds-nuit) !important; text-decoration: none !important; }
.com-content-category-blog__child .item-title a:hover { background: var(--gds-nuit); color: #fff !important; }
.items-more ol { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.items-more li a { display: inline-block; background: var(--gds-creme); border-radius: 10px; padding: .45rem .9rem; text-decoration: none; font-weight: 600; }
.pagination .page-link { border-radius: 10px !important; margin: 0 .2rem; border-color: var(--gds-bord); color: var(--gds-nuit); font-weight: 700; }
.pagination .active .page-link, .pagination .page-item.active .page-link { background: var(--gds-nuit); border-color: var(--gds-nuit); color: #fff; }
.pagenavigation .btn, ul.pagenav a, .pager a { border-radius: 10px; font-weight: 700; border: 2px solid var(--gds-nuit); color: var(--gds-nuit) !important; background: #fff; text-decoration: none; padding: .45rem 1rem; }
.alert-info { background: var(--gds-creme); border: 1px dashed var(--gds-bord); color: var(--gds-gris); border-radius: 14px; }

/* Boutons principaux : or, comme les pages validées */
.btn-primary, a.btn-primary, button.btn-primary, .com-contact__form .btn-primary { background: var(--gds-orange) !important; border-color: var(--gds-orange) !important; color: var(--gds-nuit) !important; font-weight: 800; border-radius: 10px; box-shadow: 0 4px 0 #a97a14; padding: .7rem 1.4rem; }
.btn-primary:hover, a.btn-primary:hover { transform: translateY(-1px); filter: brightness(1.05); }
.btn-secondary, a.btn-secondary { border-radius: 10px; font-weight: 700; }

/* Cadres de droite */
.container-sidebar-right .card, .container-sidebar-right .moduletable { border: 1px solid var(--gds-bord) !important; border-radius: 18px !important; overflow: hidden; box-shadow: 0 10px 28px rgba(18,53,91,.09); background: #fff; margin-bottom: 1.3rem; }
.container-sidebar-right .card-header { background: var(--gds-nuit) !important; color: #fff !important; border: 0; font-size: 1.05rem !important; font-weight: 800; padding: .95rem 1.2rem; }
.container-sidebar-right .card-body { padding: 1.1rem 1.2rem; }
.container-sidebar-right .pfa-offre-lancement { border: 2px dashed var(--gds-orange) !important; background: linear-gradient(135deg, #fff7e0 0%, #fde9b6 100%) !important; }
.container-sidebar-right .pfa-offre-lancement .card-header { background: transparent !important; color: var(--gds-nuit) !important; padding-bottom: 0; }
.container-sidebar-right .pfa-offre-lancement .card-header::before { content: "\f06b"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: var(--gds-orange-fonce); margin-right: .5rem; }
.container-sidebar-right .pfa-encart-entreprise { border-top: 4px solid var(--gds-orange) !important; }

/* Formulaires (contact, inscription, mise en relation) */
.com-contact__form, .contact-form { background: #fff; border: 1px solid var(--gds-bord); border-radius: 20px; padding: 1.6rem 1.8rem; box-shadow: 0 12px 30px rgba(18,53,91,.08); }
.com-contact__form .well, .contact-form form.well { background: transparent; border: 0; padding: 0; box-shadow: none; }
.com-contact__form legend, .contact-form legend, .com-contact__form .spacer .text { color: var(--gds-nuit); font-weight: 800; font-size: 1.15rem; }
.com-contact__form .control-label label, .contact-form .control-label label { font-weight: 700; color: var(--gds-nuit); }
.com-contact__form .form-control, .com-contact__form .form-select, .contact-form .form-control, .contact-form select, .contact-form textarea { border-radius: 10px; border: 1.5px solid var(--gds-bord); padding: .65rem .85rem; background: #fbfcfe; }
.com-contact__form .form-control:focus, .contact-form .form-control:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--gds-orange); box-shadow: 0 0 0 .25rem rgba(224,165,38,.22); background: #fff; }
.com-contact__form .btn-primary, .contact-form button[type=submit] { font-size: 1.05rem; padding: .85rem 2rem; }
.mod-finder, .pfa-recherche, form.mod-finder { border-radius: 18px; }

/* Pied de page */
.container-footer { background: linear-gradient(180deg, var(--gds-nuit) 0%, #0b2442 100%) !important; padding-top: 2.2rem !important; padding-bottom: 1.6rem !important; border-top: 4px solid var(--gds-orange); }
html:lang(fr) .container-footer .grid-child::before { content: "Passerelle France-Asie · entreprises vérifiées · 5 langues · 30 pays · inscription gratuite"; display: block; width: 100%; text-align: center; color: var(--gds-accent-clair); font-weight: 700; letter-spacing: .03em; margin-bottom: 1rem; }
html:lang(en) .container-footer .grid-child::before { content: "Passerelle France-Asie · verified companies · 5 languages · 30 countries · free registration"; display: block; width: 100%; text-align: center; color: var(--gds-accent-clair); font-weight: 700; margin-bottom: 1rem; }
.container-footer .grid-child { flex-wrap: wrap; justify-content: center; }
.container-footer a { color: #fff !important; opacity: .88; text-decoration: none; font-weight: 600; }
.container-footer a:hover { opacity: 1; color: var(--gds-accent-clair) !important; }

/* En-tête : menu actif souligné or */
.container-nav .mod-menu > li.active > a, .container-nav .mod-menu > li.current > a { text-decoration: none; border-bottom: 3px solid var(--gds-orange); }
/* Cartes de liste : longueur limitée, carte entière cliquable */
.com-content-category-blog__items .blog-item .page-header h2 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.com-content-category-blog__items .blog-item a:not(.page-header a), .com-content-category-blog__items .blog-item .btn { position: relative; z-index: 2; }
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) .item-content { max-height: 19rem; overflow: hidden; position: relative; }
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) .item-content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6rem; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 85%); }
.com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { display: block; margin-top: .6rem; font-weight: 800; color: var(--gds-orange-fonce); content: "→"; }
html:lang(fr) .com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { content: "Lire la suite →"; }
html:lang(en) .com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { content: "Read more →"; }
html:lang(zh) .com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { content: "阅读全文 →"; }
html:lang(th) .com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { content: "อ่านต่อ →"; }
html:lang(vi) .com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { content: "Đọc tiếp →"; }
/* Parrainage */
.pfa-offre.pfa-parrainage { background: linear-gradient(135deg, #eef4fc 0%, #dbe8f8 100%); border: 2px dashed var(--gds-nuit-2); margin-top: -1.5rem; }
.pfa-offre.pfa-parrainage i.fa-user-plus { font-size: 2.4rem; color: var(--gds-nuit-2); }
/* Bloc « Découvrez aussi » en bas des pages (21/10/2026) */
.pfa-decouvrir { margin: 3.5rem 0 1rem; padding: 2.2rem 1.6rem 1.8rem; background: linear-gradient(180deg, var(--gds-creme) 0%, #fff 100%); border: 1px solid var(--gds-bord); border-top: 4px solid var(--gds-orange); border-radius: 22px; }
.pfa-decouvrir .pfa-acc-titre { margin-top: 0; }
.pfa-decouvrir .pfa-acc-pays { margin-bottom: 1.6rem; }
.pfa-decouvrir-liens { margin-bottom: 1.6rem; }
.pfa-decouvrir-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; background: linear-gradient(135deg, var(--gds-nuit) 0%, var(--gds-nuit-2) 100%); color: #fff; border-radius: 16px; padding: 1.2rem 1.5rem; }
.pfa-decouvrir-cta p { margin: 0; flex: 1; min-width: 240px; }
.pfa-decouvrir-cta strong { color: var(--gds-accent-clair); }
body:has(.pfa-acc) .pfa-decouvrir { display: none; }
.pfa-decouvrir .pfa-acc-pays { grid-template-columns: repeat(5, 1fr); gap: .7rem; }
.pfa-decouvrir a.pfa-acc-pays-carte { padding: 1rem .5rem; }
.pfa-decouvrir a.pfa-acc-pays-carte svg { width: 52px; height: 35px; }
@media (max-width: 760px) { .pfa-decouvrir .pfa-acc-pays { grid-template-columns: repeat(2, 1fr); } }
/* Pages pays enrichies (21/10/2026) */
.pfa-fiche-pays { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1.4rem 0 .6rem; }
.pfa-fiche-pays .pfa-avantage { padding: 1.1rem .8rem; }
.pfa-fiche-pays .pfa-avantage i { font-size: 1.4rem; }
.pfa-liens-pays { justify-content: flex-start; margin: .6rem 0 1rem; }
.com-content-article__body > .pfa-decouvrir-cta { margin-top: 2rem; }
/* Correctif 21/10 : « Lire la suite » cliquable — la zone cliquable couvre toute la carte (plus de position:relative sur le contenu) */
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) .item-content { position: static !important; -webkit-mask-image: linear-gradient(180deg, #000 65%, transparent 100%); mask-image: linear-gradient(180deg, #000 65%, transparent 100%); }
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) .item-content::after { display: none !important; }
.com-content-category-blog__items .blog-item { cursor: pointer; }
.com-content-category-blog__items .blog-item .page-header { position: static !important; }
/* Correctif 21/10 (2) : le fondu ne doit pas bloquer le clic */
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) .item-content { -webkit-mask-image: none !important; mask-image: none !important; }
.com-content-category-blog__items .blog-item:not(:has(p.readmore)) { padding-bottom: 3.4rem; }
.com-content-category-blog__items .blog-item:not(:has(p.readmore))::after { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 4.5rem 1.5rem 1.1rem; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 55%); pointer-events: none; z-index: 2; }

/* ===== EXEMPLES D'ENTREPRISES (page Partenaires, 21/10/2026) ===== */
.pfa-ex-section { margin: 2rem 0; }
.pfa-ex-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 1.2rem; }
@media (max-width: 640px) { .pfa-ex-grille { grid-template-columns: 1fr; } }
.pfa-ex-carte { background: #fff; border: 1px solid var(--gds-bord); border-radius: 16px; box-shadow: var(--pfa-ombre); overflow: hidden; display: flex; flex-direction: column; }
.pfa-ex-carte img { display: block; width: 100%; height: auto; aspect-ratio: 640 / 394; object-fit: cover; object-position: top; border-bottom: 1px solid var(--gds-bord); }
.pfa-ex-corps { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.pfa-ex-badge { align-self: flex-start; background: #fff4dc; color: #7a4d00; border: 1px solid var(--gds-orange); border-radius: 999px; font-size: .75rem; font-weight: 800; letter-spacing: .03em; padding: .2rem .7rem; margin-bottom: .7rem; }
.pfa-ex-carte h3 { color: var(--gds-nuit); font-size: 1.2rem; margin: 0 0 .2rem; }
.pfa-ex-carte h3 i { color: var(--gds-orange-fonce); margin-right: .2rem; }
.pfa-ex-secteur { color: #5a6b7d; font-size: .9rem; font-weight: 600; margin: 0 0 .7rem; }
.pfa-ex-corps p { margin: 0 0 .7rem; font-size: .95rem; }
.pfa-ex-cherche { background: var(--gds-creme); border-left: 3px solid var(--gds-orange); border-radius: 6px; padding: .6rem .8rem; }
.pfa-ex-langues { font-size: .9rem; color: #445566; }
a.pfa-ex-lien { margin-top: auto; align-self: flex-start; font-weight: 700; color: var(--gds-nuit); text-decoration: none; border-bottom: 2px solid var(--gds-orange); padding-bottom: .1rem; }
a.pfa-ex-lien:hover { color: var(--gds-orange-fonce); }

/* ===== EXEMPLE DE FICHE COMPLÈTE (21/10/2026) ===== */
.pfa-ex-alerte { background: #fff4dc; border: 1px solid var(--gds-orange); color: #5a3d00; border-radius: 12px; padding: .8rem 1rem; margin-bottom: 1.2rem; font-size: .95rem; }
.pfa-fiche-tete { margin-bottom: 1rem; }
.pfa-fiche-etiquettes { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .5rem; }
.pfa-etiq-active { background: var(--gds-nuit); color: #fff; border-radius: 999px; padding: .15rem .7rem; font-size: .8rem; font-weight: 700; }
.pfa-etiq-active i { color: var(--gds-orange); }
.pfa-fiche-metier { font-weight: 700; color: var(--gds-nuit); font-size: 1.1rem; margin: 0 0 .4rem; }
.pfa-fiche-badge { background: #e9f5ee; border: 1px solid #b7dcc4; color: #1d5a35; border-radius: 10px; padding: .6rem .9rem; font-size: .92rem; }
.pfa-fiche-badge i { color: #1f8a4c; }
.pfa-ex-produits, .pfa-ex-galerie { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.pfa-ex-galerie { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pfa-ex-produit { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; overflow: hidden; box-shadow: var(--pfa-ombre); display: flex; flex-direction: column; }
.pfa-ex-produit img, .pfa-ex-galerie img { display: block; width: 100%; height: auto; aspect-ratio: 400 / 260; }
.pfa-ex-galerie img { border-radius: 10px; }
.pfa-ex-produit b { color: var(--gds-nuit); padding: .7rem .9rem 0; }
.pfa-ex-produit span { font-size: .88rem; color: #5a6b7d; padding: .2rem .9rem .9rem; }
.pfa-ex-video { display: flex; align-items: center; justify-content: center; gap: .7rem; aspect-ratio: 16 / 6; background: linear-gradient(135deg, var(--gds-nuit), #1d4f80); color: #fff; border-radius: 14px; font-weight: 600; }
.pfa-ex-video i { font-size: 2.4rem; color: var(--gds-orange); }
.pfa-ex-note { font-size: .9rem; color: #5a6b7d; }
.pfa-ex-docs { list-style: none; padding: 0; }
.pfa-ex-docs li { padding: .3rem 0; }
.pfa-ex-docs li::before { display: none; }
.pfa-ex-docs i { color: #b3261e; margin-right: .3rem; }
@media (max-width: 640px) { .pfa-ex-produits { grid-template-columns: 1fr; } .pfa-ex-galerie { grid-template-columns: 1fr 1fr; } }

/* ===== PAGE « DE LA FICHE À VOTRE SITE » (21/10/2026) ===== */
.pfa-evol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0 1.5rem; }
.pfa-evol .pfa-carte { padding: 1.4rem 1.1rem; }
.pfa-evol .pfa-carte h3 { font-size: 1.1rem; }
.pfa-evol .pfa-prix-montant { font-size: 1.6rem; }
.pfa-evol-num { position: absolute; top: -.8rem; left: 1rem; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--gds-nuit); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.pfa-evol .pfa-btn-or, .pfa-evol .pfa-btn-ligne { margin-top: auto; text-align: center; }
.pfa-evol-tableau td:first-child { font-weight: 700; color: var(--gds-nuit); }
@media (max-width: 991px) { .pfa-evol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pfa-evol { grid-template-columns: 1fr; } }

/* ===== ACCUEIL : AJOUTS CONFIANCE (21/10/2026) ===== */
.pfa-acc-hero { background: #0d1d4e url(/images/passerelle/pont-dore.jpg) center bottom / 100% auto no-repeat; padding-bottom: clamp(6rem, 24vw, 17.5rem); }
.pfa-acc-registres { margin: 2.2rem 0 0; background: #fff; border: 1px solid var(--gds-bord); border-left: 5px solid #1f8a4c; border-radius: 14px; padding: 1rem 1.3rem; box-shadow: var(--pfa-ombre); }
.pfa-acc-registres-titre { margin: 0 0 .3rem; font-weight: 800; color: var(--gds-nuit); font-size: 1.08rem; }
.pfa-acc-registres-titre i { color: #1f8a4c; }
.pfa-acc-registres-liste { margin: 0; font-size: .93rem; color: #445566; }
.pfa-acc-public { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin: 1.6rem 0 0; }
.pfa-acc-public-carte { background: var(--gds-creme); border-radius: 16px; padding: 1.4rem 1.4rem 1.5rem; border: 1px solid var(--gds-bord); display: flex; flex-direction: column; align-items: flex-start; }
.pfa-acc-public-qui { font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--gds-orange-fonce); }
.pfa-acc-public-carte h3 { color: var(--gds-nuit); font-size: 1.2rem; margin: .5rem 0; }
.pfa-acc-public-carte .pfa-btn-ligne { margin-top: auto; }
.pfa-acc-public-langues { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; }
.pfa-acc-public-langues a { background: var(--gds-nuit); color: #fff !important; text-decoration: none; border-radius: 999px; padding: .35rem .9rem; font-weight: 700; }
.pfa-acc-evite td:first-child { font-weight: 700; color: var(--gds-nuit); }
.pfa-acc-temoins { background: #fff; border: 2px dashed var(--gds-bord); border-radius: 16px; padding: 1.4rem 1.5rem; text-align: center; }
@media (max-width: 760px) { .pfa-acc-public { grid-template-columns: 1fr; } }
.pfa-acc-evite thead th { background: var(--gds-nuit); color: #fff; }

/* ===== GUIDES INCOTERMS ET PAIEMENT (21/10/2026) ===== */
.pfa-incoterm-exemple { display: inline-block; background: var(--gds-nuit); color: #fff; border-radius: 10px; padding: .6rem 1rem; font-size: 1.05rem; }
.pfa-incoterm-exemple strong { color: #fff; }
.pfa-incoterm-echelle { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0; }
.pfa-incoterm-echelle span { flex: 1 1 4.5rem; text-align: center; font-weight: 800; color: #fff; border-radius: 8px; padding: .5rem .3rem; background: var(--gds-nuit); }
.pfa-incoterm-echelle span:nth-child(n+4) { background: #1d4f80; }
.pfa-incoterm-echelle span:nth-child(n+7) { background: var(--gds-orange); color: var(--gds-nuit); }

/* ===== INSCRIPTION EN 3 ÉTAPES (21/10/2026) ===== */
.pfa-insc-progression { margin: 0 0 1.2rem; }
.pfa-insc-sur { font-weight: 800; color: var(--gds-orange-fonce); margin: 0 0 .5rem; text-transform: uppercase; font-size: .85rem; letter-spacing: .04em; }
.pfa-insc-progression ol { list-style: none; display: flex; gap: .5rem; padding: 0; margin: 0; counter-reset: etape; }
.pfa-insc-progression li { flex: 1; counter-increment: etape; background: #eef1f5; color: #5a6b7d; border-radius: 10px; padding: .55rem .7rem; font-weight: 700; font-size: .9rem; }
.pfa-insc-progression li::before { content: counter(etape); display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: #c9d2dd; color: #fff; margin-right: .45rem; font-size: .8rem; }
.pfa-insc-progression li.actif { background: var(--gds-nuit); color: #fff; }
.pfa-insc-progression li.actif::before { background: var(--gds-orange); color: var(--gds-nuit); }
.pfa-insc-progression li.fait { background: #e9f5ee; color: #1d5a35; }
.pfa-insc-progression li.fait::before { content: "✓"; background: #1f8a4c; }
.pfa-insc-nav { display: flex; justify-content: space-between; gap: 1rem; margin: 1.2rem 0; }
.pfa-insc-nav .pfa-btn-or:only-child { margin-left: auto; }
.pfa-insc-message { background: #fdecea; border: 1px solid #f5c2bd; color: #8a1f12; border-radius: 10px; padding: .6rem .9rem; font-weight: 600; }
.pfa-aide-numero { margin: .4rem 0 0; font-size: .88rem; color: #1d5a35; background: #e9f5ee; border-radius: 8px; padding: .45rem .7rem; }
@media (max-width: 560px) { .pfa-insc-progression li { font-size: 0; padding: .45rem; text-align: center; } .pfa-insc-progression li::before { margin: 0; font-size: .8rem; } }
.pfa-evol6 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.6rem; }
.pfa-evol-fil6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 991px) { .pfa-evol6 { grid-template-columns: 1fr 1fr; } .pfa-evol-fil6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pfa-evol6 { grid-template-columns: 1fr; } .pfa-evol-fil6 { grid-template-columns: 1fr 1fr; } }

/* ===== PAGES PAYS : LIGNE DISCRÈTE (21/10/2026) ===== */
.pfa-lien-discret { margin: 2.2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--gds-bord); font-size: .95rem; color: #445566; }
.pfa-evol2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pfa-evol3 { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.6rem; }
.pfa-evol-fil5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 991px) { .pfa-evol3 { grid-template-columns: 1fr 1fr; } .pfa-evol-fil5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pfa-evol2, .pfa-evol3 { grid-template-columns: 1fr; } .pfa-evol-fil5 { grid-template-columns: 1fr 1fr; } }

/* ===== MON ESPACE (étape C3, 21/10/2026) ===== */
.pfa-espace-tete h1 { color: var(--gds-nuit); margin-bottom: .3rem; }
.pfa-espace-badge { display: inline-block; margin-left: .4rem; padding: .15rem .7rem; border-radius: 999px; background: #eef1f5; color: var(--gds-nuit); font-size: .85rem; font-weight: 700; }
.pfa-espace-badge.pfa-ok { background: #e9f5ee; color: #1d5a35; }
.pfa-espace-etape { background: linear-gradient(135deg, var(--gds-nuit), #1d4f80); color: #fff; border-radius: 16px; padding: 1.4rem 1.6rem; margin: 1.2rem 0; }
.pfa-espace-etape h2 { color: #fff; margin: .2rem 0 .4rem; }
.pfa-espace-sur { text-transform: uppercase; font-size: .8rem; font-weight: 800; letter-spacing: .05em; color: var(--gds-orange); }
.pfa-espace-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pfa-espace-bloc { background: #fff; border: 1px solid var(--gds-bord); border-radius: 14px; padding: 1.2rem 1.3rem; margin-bottom: 1rem; box-shadow: var(--pfa-ombre); }
.pfa-espace-bloc h2 { font-size: 1.2rem; color: var(--gds-nuit); margin-top: 0; }
.pfa-espace-chiffre { font-size: 2.2rem; font-weight: 800; color: var(--gds-nuit); margin: 0 0 .4rem; }
.pfa-espace-chiffre small { font-size: .9rem; font-weight: 600; color: #5a6b7d; }
@media (max-width: 700px) { .pfa-espace-grille { grid-template-columns: 1fr; } }
/* 21/10/2026 : « Mon espace » — parcours progressif, filtres, pied discret */
.pfa-espace-marches { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 1rem 0 0; }
.pfa-espace-marches li { padding: .3rem .8rem; border-radius: 999px; font-size: .9rem; font-weight: 700; background: #eef1f5; color: #5a6b7d; }
.pfa-espace-marches li.fait { background: #e9f5ee; color: #1d5a35; }
.pfa-espace-marches li.ici { background: var(--gds-nuit); color: #fff; }
.pfa-espace-marches li.suite { background: #fff; border: 1px dashed var(--gds-bord); }
.pfa-filtres summary { cursor: pointer; font-weight: 700; color: var(--gds-nuit); }
.pfa-filtres fieldset { border: 0; padding: 0; margin: .8rem 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .3rem .8rem; }
.pfa-filtres legend { font-weight: 800; margin-bottom: .3rem; }
.pfa-espace-pied { font-size: .9rem; color: #5a6b7d; text-align: center; margin: 1.5rem 0 .5rem; }
/* 21/10/2026 : question « affaire conclue ? » (page du lien + Mon espace) */
.pfa-affaire-boutons { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.pfa-affaire-form { margin: 0; }
.pfa-espace-question { border-left: 4px solid var(--gds-orange); }
/* 21/10/2026 : « Ma fiche : X % » dans Mon espace */
.pfa-espace-jauge { height: .7rem; background: #eef1f5; border-radius: 999px; overflow: hidden; }
.pfa-espace-jauge span { display: block; height: 100%; background: linear-gradient(90deg, var(--gds-orange), #e3a33c); border-radius: 999px; }
.pfa-espace-jauge-val { margin: .5rem 0 .8rem; }
.pfa-espace-manques { padding-left: 1.1rem; margin: 0 0 .5rem; }
.pfa-espace-manques li { margin-bottom: .5rem; }
.pfa-espace-plustard { margin-top: .8rem; }
.pfa-espace-plustard button { background: none; border: 0; padding: 0; color: #dfe7f0; text-decoration: underline; cursor: pointer; font-size: .9rem; }
.pfa-espace-plustard small { color: #b9c6d4; }
/* 21/10/2026 : parrainage dans Mon espace */
.pfa-espace-code { display: inline-block; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.4rem; font-weight: 800; letter-spacing: .08em; color: var(--gds-nuit); background: #f6f1e6; border: 1px dashed var(--gds-orange); border-radius: 10px; padding: .35rem .9rem; margin: .2rem 0 .6rem; user-select: all; }
/* 21/10/2026 : pas d'« Offre de lancement — inscrire mon entreprise » pour une entreprise déjà inscrite (Mon espace, accord, question) */
.view-espace .pfa-offre-lancement, .view-accord .pfa-offre-lancement, .view-affaire .pfa-offre-lancement { display: none; }
/* 21/10/2026 : sur téléphone, les tableaux de Mon espace deviennent des listes (plus rien de coupé à droite) */
@media (max-width: 600px) {
  .pfa-espace-table thead { display: none; }
  .pfa-espace-table, .pfa-espace-table tbody, .pfa-espace-table tr, .pfa-espace-table td { display: block; width: 100%; }
  .pfa-espace-table tr { border-bottom: 1px solid var(--gds-bord); padding: .4rem 0; }
  .pfa-espace-table td { border: 0; padding: .15rem 0; }
  .pfa-espace-table td::before { content: attr(data-label) " : "; font-weight: 700; color: #5a6b7d; }
}
/* 21/10/2026 : listes d'entreprises en « vitesses » — vitesse 1 = petite carte sobre, jamais dégradée */
.pfa-annuaire-zone { display: grid; gap: 1rem; margin: 1rem 0 1.5rem; }
.pfa-zone-petite { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.pfa-zone-moyenne { grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); }
.pfa-zone-grande { grid-template-columns: 1fr; }
.pfa-carte-entreprise { display: flex; flex-direction: column; gap: .35rem; background: #fff; border: 1px solid var(--gds-bord); border-radius: 12px; padding: .9rem 1rem; min-width: 0; }
.pfa-carte-tete { display: flex; gap: .7rem; align-items: center; }
.pfa-carte-photo, .pfa-carte-initiales { width: 56px; height: 56px; border-radius: 10px; flex: 0 0 56px; object-fit: cover; }
.pfa-carte-initiales { display: flex; align-items: center; justify-content: center; background: #eef1f5; color: var(--gds-nuit); font-weight: 800; font-size: 1.4rem; }
.pfa-carte-nom { font-size: 1.05rem; margin: 0; line-height: 1.25; overflow-wrap: anywhere; }
.pfa-carte-nom a { color: var(--gds-nuit); text-decoration: none; }
.pfa-carte-nom a:hover { text-decoration: underline; }
.pfa-carte-pays { margin: .1rem 0 0; font-size: .85rem; color: #5a6b7d; }
.pfa-carte-verif { margin: 0; font-size: .8rem; color: #1d5a35; font-weight: 700; }
.pfa-carte-texte { margin: 0; font-size: .9rem; color: #2a3a4a; }
.pfa-carte-info { margin: 0; font-size: .82rem; color: #5a6b7d; }
.pfa-carte-bouton { margin-top: auto; align-self: flex-start; padding: .45rem .9rem; border: 1px solid var(--gds-nuit); border-radius: 8px; color: var(--gds-nuit); font-weight: 700; font-size: .88rem; text-decoration: none; }
.pfa-carte-bouton:hover { background: var(--gds-nuit); color: #fff; }
.pfa-annuaire-nb { font-weight: 700; color: var(--gds-nuit); margin: 1rem 0 0; }
.pfa-annuaire-pages { display: flex; gap: 1rem; justify-content: center; align-items: center; margin: 1rem 0; }
.pfa-annuaire-offert { text-align: center; font-weight: 700; color: #1d5a35; margin: 1rem 0 .3rem; }
.pfa-annuaire-ordre { text-align: center; }
/* 21/10/2026 : encart moyen (vitesse 2) et grand encart (vitesses 3 à 6) — toujours marqués « Sponsorisé » */
.pfa-carte-entreprise { position: relative; }
.pfa-carte-sponsorise { position: absolute; top: .55rem; right: .7rem; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #8a6100; background: #fdf3dc; border-radius: 999px; padding: .1rem .55rem; }
.pfa-carte-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; }
.pfa-carte-actions .pfa-carte-bouton { margin-top: 0; }
.pfa-vitesse-2 { border: 2px solid var(--gds-orange); padding: 1.1rem 1.2rem; }
.pfa-vitesse-2 .pfa-carte-photo, .pfa-vitesse-2 .pfa-carte-initiales { width: 80px; height: 80px; flex-basis: 80px; font-size: 1.8rem; }
.pfa-vitesse-2 .pfa-carte-nom { font-size: 1.2rem; padding-right: 6rem; }
.pfa-zone-grande .pfa-carte-entreprise { border: 2px solid var(--gds-orange); background: linear-gradient(180deg, #fffaf0, #fff 60%); padding: 1.3rem 1.5rem; }
.pfa-zone-grande .pfa-carte-photo, .pfa-zone-grande .pfa-carte-initiales { width: 120px; height: 120px; flex-basis: 120px; font-size: 2.6rem; border-radius: 14px; }
.pfa-zone-grande .pfa-carte-nom { font-size: 1.45rem; padding-right: 6rem; }
.pfa-zone-grande .pfa-carte-texte { font-size: 1rem; }
.pfa-carte-site { background: var(--gds-nuit); color: #fff !important; }
@media (max-width: 600px) { .pfa-zone-grande .pfa-carte-photo, .pfa-zone-grande .pfa-carte-initiales { width: 80px; height: 80px; flex-basis: 80px; } .pfa-vitesse-2 .pfa-carte-nom, .pfa-zone-grande .pfa-carte-nom { padding-right: 0; margin-top: 1.2rem; } }
/* 21/10/2026 : barre de progression vers la prochaine vitesse (Mon espace) */
.pfa-espace-progres { margin: .6rem 0 0; }
.pfa-espace-progres p { margin: 0 0 .35rem; font-size: .92rem; }

/* === 21/10/2026 : partenaires trouvés + Ambassadeur (cartes des listes) === */
.pfa-carte-ambassadeur { display: inline-block; margin: .3rem 0 0; padding: .15rem .55rem; border-radius: 999px; background: #fff4d6; color: #7a5200; font-size: .85rem; font-weight: 600; }
.pfa-carte-partenaires { margin: .3rem 0 0; color: #1b6b3a; font-size: .9rem; font-weight: 600; }
.pfa-espace-bravo { background: #fff4d6; border-left: 4px solid #e0a526; padding: .5rem .8rem; border-radius: 6px; }
.pfa-espace-chiffre { font-size: 1.5rem; font-weight: 700; color: #1b6b3a; margin-right: .4rem; }
.pfa-espace-masquer { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.pfa-fiche-badges { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .2rem 0 1rem; }
/* === 21/10/2026 : partenaires trouvés par pays (accueil + pages pays ; invisible tant qu'il n'y en a aucun) === */
.pfa-totaux-pays { margin: 1.5rem 0; padding: 1rem 1.2rem; border: 1px solid #d9e6dd; border-radius: 10px; background: #f4faf6; }
.pfa-totaux-pays h2 { font-size: 1.15rem; margin: 0 0 .6rem; }
.pfa-totaux-pays ul { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pfa-totaux-pays li { background: #fff; border: 1px solid #d9e6dd; border-radius: 999px; padding: .25rem .8rem; }
.pfa-totaux-pays li strong { color: #1b6b3a; margin-left: .3rem; }

/* 21/10/2026 (étape 2) — Mon espace : « Ma vitesse et mes options » */
.pfa-espace-choix h3 { font-size: 1.05rem; margin: 1rem 0 .4rem; }
.pfa-choix-encours { list-style: none; padding: 0; margin: .4rem 0 .8rem; }
.pfa-choix-encours li { padding: .45rem 0; border-bottom: 1px solid var(--gds-bord); }
.pfa-choix-inline { display: inline; margin-left: .4rem; }
.pfa-btn-petit { padding: .15rem .6rem !important; font-size: .85rem !important; }
.pfa-choix-demander { margin-top: .8rem; border: 1px solid var(--gds-bord); border-radius: 12px; padding: .6rem .9rem; }
.pfa-choix-demander summary { cursor: pointer; font-weight: 700; }
.pfa-choix-demander fieldset { border: 0; padding: 0; margin: .8rem 0; }
.pfa-choix-demander legend { font-weight: 700; font-size: 1rem; margin-bottom: .3rem; }
.pfa-choix-ligne { display: block; padding: .35rem 0; line-height: 1.4; }
.pfa-choix-ligne input { margin-right: .4rem; }
.pfa-choix-duree, .pfa-choix-cible { display: block; margin-top: .5rem; }
.pfa-choix-duree select, .pfa-choix-cible input { display: block; width: 100%; max-width: 32rem; margin-top: .25rem; padding: .35rem .5rem; border: 1px solid var(--gds-bord); border-radius: 8px; }
.pfa-choix-confirme { display: block; margin: .6rem 0 .8rem; }

/* 21/10/2026 (étape 3) — boutons « Choisir » en bas des cartes de la page Formules et prix */
.pfa-carte-choisir { margin: auto 0 0; padding-top: 1rem; text-align: center; }
.pfa-carte-choisir a { display: inline-block; }
.pfa-choisir-note { margin-top: 1rem; }

/* 21/10/2026 (étape 4) — options visibles : encadrement, place en haut de page, remontée dans la recherche */
.pfa-annuaire-zone .pfa-carte-entreprise.pfa-carte-encadree, .pfa-resultat.pfa-carte-encadree { border: 3px solid #1d5fa8; box-shadow: 0 0 0 4px rgba(29,95,168,.14); }
.pfa-resultat.pfa-carte-encadree { border-radius: 12px; padding: .8rem 1rem; margin: .5rem 0; }
.pfa-zone-haut-titre { margin: 1rem 0 .4rem; font-weight: 700; color: #6b4a00; }
.pfa-zone-haut { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 1.2rem; padding-bottom: 1.2rem; border-bottom: 1px dashed var(--gds-bord); }
.pfa-carte-haut { background: linear-gradient(180deg, #fffaf0, #fff 70%); }
.pfa-carte-sponsorise-inline { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #8a6100; background: #fdf3dc; border-radius: 999px; padding: .1rem .55rem; vertical-align: middle; }
.pfa-resultat-remonte { background: #fffaf0; }

/* 21/10/2026 — « À quoi ressemble votre encart ? » (mode conseil, page Formules et prix) */
.pfa-encarts-conseil { margin-top: 2.5rem; }
.pfa-encarts-conseil-sous { font-size: 1.15rem; margin: 2rem 0 .8rem; text-align: center; }
.pfa-exemple-ligne { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.2rem; align-items: start; margin: 0 0 1.4rem; padding-bottom: 1.4rem; border-bottom: 1px dashed var(--gds-bord); }
.pfa-exemple-carte .pfa-annuaire-zone { display: block; margin: 0; }
.pfa-conseil { background: #f4f8fc; border-left: 4px solid #1d5fa8; border-radius: 10px; padding: .9rem 1rem; }
.pfa-conseil h3 { font-size: 1rem; margin: 0 0 .2rem; }
.pfa-conseil-prix { font-weight: 800; color: #0f3a66; margin: 0 0 .5rem; }
.pfa-conseil p { margin: 0 0 .5rem; }
.pfa-conseil-paye { font-size: .92rem; color: #4a5462; margin: 0 !important; }
.pfa-carte-exemple { font-size: .75rem; font-weight: 700; color: #8a6100; margin: 0; }
@media (max-width: 760px) { .pfa-exemple-ligne { grid-template-columns: 1fr; } }

/* 21/10/2026 — fiche d'entreprise : « Imprimer la fiche » + partage ; à l'impression, la fiche seule (sans menu, colonne ni modules) */
.pfa-fiche-outils { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; margin: .4rem 0 1rem; font-size: .9rem; }
.pfa-fiche-outils a[data-reseau], .pfa-fiche-outils button { border: 1px solid var(--gds-bord); background: #fff; border-radius: 999px; padding: .2rem .75rem; color: var(--gds-nuit); text-decoration: none; cursor: pointer; font: inherit; }
.pfa-fiche-outils a[data-reseau]:not([href]) { display: none; }
.pfa-fiche-imprimer { font-weight: 700; }
.pfa-fiche-partager { color: var(--gds-texte-doux, #5b6472); }
@media print {
  body:has(.pfa-fiche-outils) .container-sidebar-right, body:has(.pfa-fiche-outils) .mod-breadcrumbs, body:has(.pfa-fiche-outils) .container-banner,
  body:has(.pfa-fiche-outils) .main-top, body:has(.pfa-fiche-outils) .pfa-recherche, body:has(.pfa-fiche-outils) .pfa-contacter .btn,
  body:has(.pfa-fiche-outils) .pagenavigation, body:has(.pfa-fiche-outils) .pfa-decouvrir { display: none !important; }
  body:has(.pfa-fiche-outils) .site-grid, body:has(.pfa-fiche-outils) main { display: block !important; margin: 0 !important; }
  body:has(.pfa-fiche-outils) img { max-width: 60mm !important; height: auto !important; }
}

/* 21/10/2026 — galerie de photos d'une fiche (envoyées par l'entreprise, acceptées par Patrick) + suivi dans Mon espace */
.pfa-galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: .6rem; margin: 1rem 0; }
.pfa-galerie img { width: 100%; height: 160px; object-fit: cover; border-radius: 10px; border: 1px solid var(--gds-bord); }
.pfa-modif-etat { margin: .3rem 0; }
.pfa-modif textarea { display: block; width: 100%; margin-top: .25rem; padding: .5rem; border: 1px solid var(--gds-bord); border-radius: 8px; font: inherit; }
.pfa-espace-bloc h3#pfa-modifier { font-size: 1.05rem; margin: 1.2rem 0 .4rem; }
.pfa-espace-bloc h3#pfa-coordonnees { font-size: 1.05rem; margin: 1.2rem 0 .4rem; }
.pfa-modif input[type=text], .pfa-modif input[type=url], .pfa-modif select { display: block; width: 100%; max-width: 40rem; margin-top: .25rem; padding: .4rem .5rem; border: 1px solid var(--gds-bord); border-radius: 8px; }
/* 25/10/2026 (idée n° 1) : mode absence — ligne sur la fiche et formulaire de « Mon espace » */
.pfa-absence { background: #fff7e0; border-left: 4px solid #d9a400; border-radius: 6px; padding: .6rem .9rem; margin: .6rem 0; }
.pfa-absence-form { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: end; }
.pfa-absence-form label { display: flex; flex-direction: column; gap: .2rem; }
/* 25/10/2026 : aide « parlez / écoutez » des formulaires (🎤 🔊 🔁) */
.pfa-voix-aide { background: #eef6ff; border-left: 4px solid #1b5fa8; border-radius: 6px; padding: .6rem .9rem; margin: 0 0 1rem; font-size: 1.05rem; }
.pfa-voix-btn { border: 1px solid #b9cde3; background: #fff; border-radius: 999px; min-width: 2.4rem; min-height: 2.4rem; font-size: 1.15rem; line-height: 1; padding: .2rem .5rem; cursor: pointer; vertical-align: middle; }
.pfa-voix-btn:hover, .pfa-voix-btn:focus { background: #e3efff; }
.pfa-voix-relire { margin-top: .3rem; }
/* 25/10/2026 (idée n° 4) : certifications DÉCLARÉES (fiche + Mon espace) — volontairement sans coche ni couleur « validé » */
.pfa-certifs { border: 1px solid #d6e0ec; border-radius: 6px; padding: .6rem .9rem; margin: .6rem 0; background: #fafbfc; }
.pfa-certifs-titre { font-weight: 600; margin: 0 0 .3rem; }
.pfa-certifs ul { margin: 0 0 .3rem; padding-left: 1.2rem; }
.pfa-certifs-note { font-size: .9rem; color: #5a6b7d; margin: 0; }
.pfa-certif-ligne { border: 1px solid #e3e8ee; border-radius: 6px; padding: .4rem .7rem .7rem; margin: 0 0 .6rem; }
.pfa-certif-ligne legend { font-size: .9rem; width: auto; padding: 0 .3rem; margin: 0; }
/* 25/10/2026 : quantité en IMAGES et saisons à COCHER — gros boutons faciles à toucher */
#jform_com_fields_pfa_prod_variable .form-check, #jform_com_fields_pfa_prod_depuis .form-check, #jform_com_fields_pfa_prod_palier .form-check, #jform_com_fields_pfa_prod_saisons .form-check { font-size: 1.15rem; border: 1px solid #d6e0ec; border-radius: 10px; padding: .55rem .8rem .55rem 2.4rem; margin: .35rem 0; background: #fff; }
#jform_com_fields_pfa_prod_variable .form-check:has(input:checked), #jform_com_fields_pfa_prod_depuis .form-check:has(input:checked), #jform_com_fields_pfa_prod_palier .form-check:has(input:checked), #jform_com_fields_pfa_prod_saisons .form-check:has(input:checked) { border-color: #1b5fa8; background: #eef6ff; }
#jform_com_fields_pfa_prod_variable .form-check-input, #jform_com_fields_pfa_prod_depuis .form-check-input, #jform_com_fields_pfa_prod_palier .form-check-input, #jform_com_fields_pfa_prod_saisons .form-check-input { width: 1.3rem; height: 1.3rem; margin-top: .15rem; }
/* 25/10/2026 : motif d'absence en image */
.pfa-absence-motifs { border: 0; padding: 0; margin: .4rem 0 0; width: 100%; }
.pfa-absence-motifs legend { font-size: 1rem; margin-bottom: .3rem; }
.pfa-motif { display: inline-flex; align-items: center; gap: .4rem; font-size: 1.1rem; border: 1px solid #d6e0ec; border-radius: 10px; padding: .45rem .7rem; margin: .2rem .3rem .2rem 0; background: #fff; }
.pfa-motif:has(input:checked) { border-color: #1b5fa8; background: #eef6ff; }
/* 25/10/2026 : « 👥 2 à 5 personnes · selon qui est libre » sur la fiche */
.pfa-equipe { margin: .2rem 0 .6rem; }
/* 25/10/2026 : accessibilité — si l'appareil demande moins de mouvements (troubles de l'équilibre, vertiges, migraines), plus d'animations */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  a.pfa-btn-or:hover, .pfa-btn-or:hover { transform: none !important; }
}
/* 25/10/2026 : « 🔊 Écouter la page / le menu / ⏹ Arrêter » en haut de chaque page */
.pfa-voix-page { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: 0 0 1rem; }
.pfa-voix-grand { font-size: 1rem; padding: .45rem .9rem; min-height: 2.75rem; }
.pfa-voix-sansvoix { flex-basis: 100%; background: #fff7e0; border-left: 4px solid #d9a400; border-radius: 6px; padding: .5rem .8rem; margin: .3rem 0 0; }
/* 25/10/2026 : réglages d'affichage choisis par la personne (gardés sur son appareil) */
.pfa-affichage { flex-basis: 100%; border: 1px solid #d6e0ec; border-radius: 10px; padding: .6rem .8rem; background: #fff; display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pfa-affichage p { margin: 0; flex-basis: 100%; }
.pfa-voix-btn[aria-pressed="true"] { background: #12355b; color: #fff; border-color: #12355b; }
.pfa-voix-btn { min-width: 2.75rem; min-height: 2.75rem; }   /* 44 px : taille minimale conseillée pour toucher */
/* Contraste élevé : noir sur blanc dans le contenu, liens bleu foncé soulignés, bordures noires */
/* (la classe est répétée exprès : la règle doit l'emporter sur tous les styles décoratifs du site, même « !important ») */
html.pfa-contraste.pfa-contraste.pfa-contraste main, html.pfa-contraste.pfa-contraste.pfa-contraste main *:not(img):not(svg):not(path) { background: #fff !important; color: #000 !important; border-color: #000 !important; text-shadow: none !important; box-shadow: none !important; }
html.pfa-contraste.pfa-contraste.pfa-contraste main a, html.pfa-contraste.pfa-contraste.pfa-contraste main a * { color: #0000a0 !important; text-decoration: underline !important; }
html.pfa-contraste.pfa-contraste.pfa-contraste main h1::after { display: none !important; }
html.pfa-contraste.pfa-contraste.pfa-contraste main *::before { background-color: #000 !important; }
html.pfa-contraste.pfa-contraste.pfa-contraste main h1 { border: 2px solid #000 !important; }
html.pfa-contraste.pfa-contraste.pfa-contraste.pfa-contraste main .pfa-voix-btn[aria-pressed="true"] { background: #000 !important; color: #fff !important; }
html.pfa-contraste main :focus { outline: 3px solid #000 !important; outline-offset: 2px; }
/* Grand texte */
html.pfa-grand { font-size: 130%; }
html.pfa-grand main { line-height: 1.7; }
/* Texte seulement : les images du contenu sont cachées */
html.pfa-sansimages main img, html.pfa-sansimages main picture, html.pfa-sansimages main video, html.pfa-sansimages main figure img { display: none !important; }

/* 25/10/2026 — contrôle des photos avant envoi (Mon espace) : petite image + un conseil par photo */
.pfa-photo-controle { margin: .6rem 0 1rem; padding: .7rem .9rem; border: 1px solid #b9cde3; border-radius: .6rem; background: #f6f9fd; }
.pfa-photo-controle .pfa-photo-titre { font-weight: 700; margin: 0 0 .4rem; }
.pfa-photo-controle ul { list-style: none; margin: 0; padding: 0; }
.pfa-photo-controle li { display: flex; align-items: center; gap: .7rem; margin: .4rem 0; font-size: 1.05rem; }
.pfa-photo-controle .pfa-photo-apercu { width: 4.5rem; height: auto; max-height: 4.5rem; object-fit: contain; border-radius: .3rem; flex: 0 0 auto; background: #fff; border: 1px solid #d5dde8; }
.pfa-photo-controle li.pfa-photo-conseil span { color: #6b4500; }
.pfa-photo-controle li.pfa-photo-non span { color: #9b1c1c; font-weight: 700; }
html.pfa-sansimages .pfa-photo-controle .pfa-photo-apercu { display: none; }
html.pfa-contraste.pfa-contraste.pfa-contraste.pfa-contraste main .pfa-photo-controle li span { color: #000 !important; }

/* 25/10/2026 — « Mon espace » en grosses tuiles */
.pfa-tuiles { margin: 1.2rem 0 1.6rem; }
.pfa-tuiles h2 { font-size: 1.35rem; margin: 0 0 .7rem; }
.pfa-tuiles ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: .7rem; }
.pfa-tuiles a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; min-height: 6rem; padding: .7rem .5rem; text-align: center;
  border: 2px solid #b9cde3; border-radius: .9rem; background: #fff; color: #12355b; font-weight: 700; text-decoration: none; line-height: 1.25; }
.pfa-tuiles a:hover { background: #e3efff; border-color: #12355b; }
.pfa-tuiles a:focus-visible { outline: 3px solid #12355b; outline-offset: 2px; }
.pfa-tuiles .pfa-tuile-dessin { font-size: 2.2rem; line-height: 1; }
.pfa-tuiles .pfa-tuile-mot { font-size: 1rem; }
.pfa-tuile-retour { margin: 1rem 0 0; text-align: right; }
.pfa-tuile-retour a { display: inline-block; padding: .5rem .8rem; min-height: 2.75rem; font-weight: 700; }
section[data-tuile] { scroll-margin-top: 1rem; }
html.pfa-contraste.pfa-contraste.pfa-contraste.pfa-contraste main .pfa-tuiles a { border-color: #000 !important; }

/* 25/10/2026 — « Me connecter avec mon empreinte » (Mon espace) */
.pfa-cle .pfa-cle-gestes { font-size: 1.05rem; padding-left: 1.4rem; }
.pfa-cle .pfa-cle-gestes li { margin: .4rem 0; }

/* 25/10/2026 (3e série) : « quand pouvez-vous livrer ? » et « comment est-il emballé ? » — mêmes gros boutons que la quantité */
#jform_com_fields_pfa_prod_pret .form-check, #jform_com_fields_pfa_prod_emballage .form-check { font-size: 1.15rem; border: 1px solid #d6e0ec; border-radius: 10px; padding: .55rem .8rem .55rem 2.4rem; margin: .35rem 0; background: #fff; }
#jform_com_fields_pfa_prod_pret .form-check:has(input:checked), #jform_com_fields_pfa_prod_emballage .form-check:has(input:checked) { border-color: #1b5fa8; background: #eef6ff; }
#jform_com_fields_pfa_prod_pret .form-check-input, #jform_com_fields_pfa_prod_emballage .form-check-input { width: 1.3rem; height: 1.3rem; margin-top: .15rem; }

/* 25/10/2026 — PAGES LÉGÈRES : petite police d'icônes (11 Ko au lieu de 158 Ko), seulement les 125 icônes utilisées par la Passerelle
   (outils/passerelle/police-icones/). Même nom et même graisse que la police de Joomla, avec « unicode-range » : le navigateur prend
   cette petite police pour ces icônes, et ne télécharge la grande police d'origine QUE si une page affiche une autre icône (rien ne casse). */
@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900-passerelle.woff2)format("woff2");unicode-range:U+002B,U+003F,U+E098,U+F002,U+F005,U+F007,U+F00C,U+F00D,U+F015,U+F017,U+F021,U+F023,U+F029,U+F02B,U+F02C,U+F039,U+F044,U+F053,U+F054,U+F056,U+F058,U+F059,U+F05A,U+F05E,U+F062,U+F065,U+F068,U+F06B,U+F06E,U+F070,U+F071,U+F072,U+F073,U+F077,U+F078,U+F07B,U+F07C,U+F085,U+F08E,U+F098,U+F0A1,U+F0A3,U+F0AC,U+F0AD,U+F0B1,U+F0B2,U+F0C0,U+F0C5,U+F0C8,U+F0C9,U+F0DC,U+F0E0,U+F0EC,U+F100,U+F101,U+F104,U+F105,U+F107,U+F109,U+F110,U+F126,U+F12E,U+F133,U+F13D,U+F141,U+F144,U+F14B,U+F153,U+F157,U+F15B,U+F15C,U+F185,U+F19C,U+F1AB,U+F1AC,U+F1C1,U+F1D8,U+F1F8,U+F204,U+F205,U+F21A,U+F234,U+F24E,U+F252,U+F273,U+F274,U+F290,U+F2B5,U+F2B9,U+F2C2,U+F2DB,U+F2E7,U+F2EA,U+F302,U+F359,U+F3CE,U+F3E5,U+F3ED,U+F466,U+F48B,U+F4B8,U+F4BE,U+F4C0,U+F4D8,U+F4FC,U+F4FF,U+F518,U+F51E,U+F52B,U+F53F,U+F542,U+F54E,U+F553,U+F570,U+F573,U+F57E,U+F5BB,U+F5CD,U+F625,U+F658,U+F66F,U+F7A2,U+F7B6,U+F7EC,U+F84C}

/* 25/10/2026 : « ✍️ Fiche remplie avec l'aide de… » (même place et même style que l'équipe) */
.pfa-aide { margin: .2rem 0 .6rem; }

/* 25/10/2026 — « Écrivez-nous sur WhatsApp » (pages Contact), au-dessus du formulaire */
.pfa-whatsapp { margin: 1rem 0 1.4rem; padding: 1rem 1.1rem; border: 2px solid #b9cde3; border-radius: .9rem; background: #f6f9fd; }
.pfa-whatsapp h2 { font-size: 1.3rem; margin: 0 0 .5rem; }
.pfa-whatsapp .pfa-whatsapp-bouton { display: inline-block; min-height: 2.75rem; }

/* 25/10/2026 — « Laissez-nous un message vocal » (pages Contact) */
.pfa-vocal { margin: 1rem 0 1.4rem; padding: 1rem 1.1rem; border: 2px solid #b9cde3; border-radius: .9rem; background: #f6f9fd; }
.pfa-vocal h2 { font-size: 1.3rem; margin: 0 0 .5rem; }
.pfa-vocal .pfa-vocal-boutons button { min-height: 2.75rem; }
.pfa-vocal .pfa-vocal-temps { font-variant-numeric: tabular-nums; font-weight: 700; margin-left: .4rem; }
.pfa-vocal .pfa-vocal-statut { font-weight: 700; color: #12355b; min-height: 1.4em; }
.pfa-vocal audio { width: 100%; max-width: 28rem; }
.pfa-vocal .pfa-vocal-champ { display: block; margin: .7rem 0; font-weight: 600; }
.pfa-vocal .pfa-vocal-champ input { margin-top: .25rem; font-weight: 400; }
.pfa-vocal .pfa-vocal-accord { display: flex; align-items: flex-start; gap: .5rem; font-size: 1rem; }

/* 25/10/2026 — « Mon affiche : scannez ou touchez » (page à imprimer, layout espace/affiche, tmpl=component) */
.pfa-affiche-page { max-width: 21cm; margin: 0 auto; padding: 1rem; }
.pfa-affiche-outils { display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.pfa-affiche { border: 3px solid #12355b; border-radius: 1rem; padding: 1.2rem 1rem; text-align: center; background: #fff; color: #000; margin: 0 auto 1rem; break-inside: avoid; }
.pfa-affiche-nom { font-size: 2.2rem; font-weight: 800; margin: 0 0 .6rem; line-height: 1.15; color: #12355b; }
.pfa-affiche-codes { display: flex; align-items: center; justify-content: center; gap: 1.2rem; flex-wrap: wrap; }
.pfa-affiche-codes svg { max-width: 100%; height: auto; }
.pfa-affiche-nfc { width: 6.5cm; height: 6.5cm; border: 4px dashed #12355b; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; font-weight: 800; color: #12355b; }
.pfa-affiche-langues { list-style: none; padding: 0; margin: .8rem 0 .4rem; font-size: 1.15rem; line-height: 1.45; }
.pfa-affiche-ou { color: #444; }
.pfa-affiche-adresse { font-family: monospace; font-size: 1rem; word-break: break-all; margin: .3rem 0; }
.pfa-affiche-pied { font-weight: 700; color: #12355b; margin: .3rem 0 0; }
/* 4 petites étiquettes par page A4 */
.pfa-affiche-page-petite { display: grid; grid-template-columns: 1fr 1fr; gap: .5cm; }
.pfa-affiche-page-petite .pfa-affiche-outils { grid-column: 1 / -1; }
.pfa-affiche-petite { padding: .5rem; border-width: 2px; margin: 0; }
.pfa-affiche-petite .pfa-affiche-nom { font-size: 1.15rem; }
.pfa-affiche-petite .pfa-affiche-langues { font-size: .72rem; line-height: 1.3; }
.pfa-affiche-petite .pfa-affiche-nfc { width: 3cm; height: 3cm; font-size: .9rem; border-width: 3px; }
.pfa-affiche-petite .pfa-affiche-adresse { font-size: .65rem; }
.pfa-affiche-choix { display: flex; flex-wrap: wrap; gap: .6rem; }
@media print {
  @page { size: A4; margin: 1cm; }
  .pfa-affiche-outils, .pfa-voix-page, .pfa-affichage, header, footer, nav { display: none !important; }
  .pfa-affiche-page { padding: 0; max-width: none; }
  .pfa-affiche { border-color: #000; }
}

/* 25/10/2026 — MODE « ÉCRAN » : lisible à 3 mètres, contraste fort, rien qui bouge à part le changement de fiche */
.pfa-ecran { max-width: 1600px; margin: 0 auto; padding: 1rem 1.5rem; background: #fff; color: #111; }
body:has(.pfa-ecran) .pfa-voix-page { display: none; }
.pfa-ecran:fullscreen { overflow: auto; padding: 2vh 3vw; }
.pfa-ecran:fullscreen .pfa-ecran-aide, .pfa-ecran:fullscreen .pfa-ecran-retour { display: none; }
.pfa-ecran-tete { font-size: clamp(1rem, 1.6vw, 1.6rem); color: #12355b; border-bottom: 3px solid #e0a52a; padding-bottom: .4rem; margin: 0 0 .6rem; }
.pfa-ecran-barre { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pfa-ecran-barre button { min-height: 2.75rem; font-size: 1rem; }
.pfa-ecran-compteur { font-weight: 700; font-variant-numeric: tabular-nums; }
.pfa-ecran-diapo { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 3vw; align-items: center; padding: 2vh 0; border-bottom: 1px solid #ddd; }
.pfa-ecran-diapo[hidden] { display: none; }
.pfa-ecran-photo { width: 100%; max-height: 38vh; object-fit: cover; border-radius: 1rem; margin-bottom: 1rem; }
.pfa-ecran-nom { font-size: clamp(1.8rem, 4.2vw, 4.2rem); line-height: 1.1; margin: 0 0 .5rem; color: #12355b; }
.pfa-ecran-pays { font-size: clamp(1.2rem, 2.4vw, 2.4rem); margin: 0 0 1rem; }
.pfa-ecran-texte { font-size: clamp(1.05rem, 1.9vw, 1.9rem); line-height: 1.4; margin: 0 0 .8rem; }
.pfa-ecran-familles { font-size: clamp(1rem, 1.6vw, 1.6rem); font-weight: 700; color: #6b4500; }
.pfa-ecran-droite { text-align: center; }
.pfa-ecran-droite svg { width: min(100%, 42vh); height: auto; border: 1rem solid #fff; box-shadow: 0 0 0 3px #12355b; border-radius: .5rem; }
.pfa-ecran-scannez { list-style: none; padding: 0; margin: 1rem 0 0; font-size: clamp(.95rem, 1.4vw, 1.5rem); line-height: 1.5; font-weight: 600; }
@media (max-width: 700px) { .pfa-ecran-diapo { grid-template-columns: 1fr; } }

/* 25/10/2026 — VIDÉO DE PRÉSENTATION : envoi (Mon espace) et lecteur (fiche) */
.pfa-video-envoi .pfa-video-barre { width: 100%; max-width: 24rem; height: 1.2rem; vertical-align: middle; }
.pfa-video-envoi .pfa-video-statut { font-weight: 700; color: #12355b; min-height: 1.4em; }
.pfa-video-accord { display: flex; align-items: flex-start; gap: .5rem; font-size: 1rem; }
.pfa-video { margin: 1rem 0 1.4rem; }
.pfa-video figcaption { font-weight: 700; font-size: 1.15rem; color: #12355b; margin-bottom: .4rem; }
.pfa-video video { width: 100%; max-width: 48rem; max-height: 70vh; background: #000; border-radius: .6rem; }
html.pfa-sansimages .pfa-video video { display: none; }
/* 27/10/2026 — Barre d'aide en MODULE dans l'en-tête collé (position « search », sous le menu) : toujours visible (choix de Patrick) */
.container-header .container-nav { flex-wrap: wrap; }
.container-header .container-search:has(.pfa-barre-aide) { flex: 1 0 100%; order: 9; margin: 0; padding: 0; }
.pfa-barre-aide.pfa-voix-page { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem; margin: 0; padding: .35rem .5rem .45rem; background: transparent; border: 0; border-top: 1px solid rgba(255,255,255,.15); box-shadow: none; }
.pfa-barre-aide .pfa-voix-btn { flex: 0 0 auto; min-height: 40px; font-size: .85rem; padding: .3rem .9rem; }
.pfa-barre-aide .pfa-affichage, .pfa-barre-aide .pfa-voix-sansvoix { flex: 1 0 100%; background: #fff; color: #142046; border-radius: .6rem; padding: .6rem; text-align: left; }
.container-header.gds-replie .pfa-barre-aide { padding-top: .2rem; padding-bottom: .25rem; }

/* 03/11/2026 (période de lancement) : encadré « Période de lancement » (Mon espace + Formules et prix) */
.pfa-lancement-note { margin: 1rem 0 1.4rem; padding: .9rem 1.1rem; background: #fff8e6; border: 1px solid #e0a526; border-left: 5px solid #e0a526; border-radius: 12px; color: #2c3148; line-height: 1.55; }
.pfa-lancement-note strong { color: #12355b; margin-right: .3rem; }

/* 03/11/2026 (lot A11Y) : liens seuls sur leur ligne de la page des prix, zone à toucher d'au moins 24 px */
.pfa-prix .pfa-ex-note a { display: inline-block; padding: .3rem 0; }

/* 03/11/2026 (lisibilité) : aucun texte de l'écran sous 0,85 rem ; la langue de la recherche n'est plus coupée */
.gds-carte-garde small, .gds-badge, .gds-tag, .pfa-tableau td::before, .pfa-ruban, .pfa-sponso, .pfa-acc-chiffre small, .pfa-ex-badge,
.pfa-carte-sponsorise, .pfa-carte-sponsorise-inline, .pfa-carte-exemple { font-size: .85rem; }
@media (max-width: 600px) { .gds-tableau::before { font-size: .85rem; } }
.pfa-recherche-form { grid-template-columns: 1fr minmax(8rem, 12rem) minmax(12rem, 14rem) auto; }
@media (max-width: 640px) { .pfa-recherche-form { grid-template-columns: 1fr; } }

/* 03/11/2026 (haut de page sur téléphone, variante de Patrick : rien n'est caché) — ordinateur et tablette inchangés */
@media (max-width: 640px) {
  .container-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .container-header > .grid-child { grid-column: 1 / -1; }
  .container-header > .grid-child:has(.navbar-brand) { grid-column: 1; }
  .container-header > .container-nav { display: contents; }
  .container-header > .container-nav > nav { grid-column: 2; grid-row: 2; padding: 0 .6rem 0 0; position: static; }   /* le menu ouvert se cale sur le haut de page entier */
  .container-header > .container-nav > .container-search { grid-column: 1 / -1; }
  .container-header .container-below-top .mod-languages ul.lang-inline { display: flex; flex-wrap: nowrap; justify-content: center; gap: .1rem; margin: 0; padding: .2rem 0; }
  .container-header .container-below-top .mod-languages ul.lang-inline li { margin: 0; }
  .container-header .container-below-top .mod-languages ul.lang-inline li a { display: block; padding: .3rem .45rem; white-space: nowrap; font-size: .9rem; }
  .container-header .navbar-brand { padding-top: .3rem; padding-bottom: .3rem; }
  .container-header .navbar-brand .brand-logo img { max-height: 42px; }
  .container-header .site-description { display: none; }
  .container-header .navbar-toggler { display: inline-flex; align-items: center; gap: .35rem; max-width: 8.5rem; min-height: 44px; }
  .container-header .navbar-toggler::after { content: attr(aria-label); font-size: .9rem; line-height: 1.15; text-align: left; }
  .container-header .navbar-collapse { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; background: var(--gds-nuit);
    max-height: calc(100vh - 8rem); overflow-y: auto; padding: .4rem 1rem 1rem; box-shadow: 0 12px 24px rgba(0,0,0,.25); }
  .pfa-barre-aide.pfa-voix-page { gap: .3rem; padding: .25rem .4rem .35rem; }
  .pfa-barre-aide .pfa-voix-btn { min-height: 40px; padding: .25rem .7rem; }
}

/* 03/11/2026 (design, point 8) : secteurs de la page Entreprises en grille (ordinateur), une colonne (téléphone) */
.cat-children { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem .6rem; align-items: stretch; }
.cat-children > h3, .cat-children > .page-header { grid-column: 1 / -1; }
.cat-children .com-content-category-blog__child { margin: 0; }
.cat-children .com-content-category-blog__child h3.item-title { display: block; margin: 0; }
.cat-children .com-content-category-blog__child h3.item-title a { display: flex; align-items: center; height: 100%; min-height: 44px; }

/* 04/11/2026 (LINE + Zalo) : cadre replié sous le bloc WhatsApp (page Contact), discret */
.pfa-qr-messageries { margin-top: .9rem; border-top: 1px solid #d5e0ee; padding-top: .7rem; }
.pfa-qr-messageries summary { cursor: pointer; min-height: 2.75rem; display: flex; align-items: center; gap: .6rem; font-weight: 600; color: #12355b; list-style: none; }
.pfa-qr-messageries summary::-webkit-details-marker { display: none; }
.pfa-qr-messageries summary::before { content: "+"; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border: 2px solid #12355b; border-radius: 50%; font-weight: 700; line-height: 1; }
.pfa-qr-messageries[open] summary::before { content: "−"; }
.pfa-qr-messageries summary:focus-visible { outline: 3px solid #e0a526; outline-offset: 3px; border-radius: .3rem; }
.pfa-qr-liste { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1rem; }
.pfa-qr-liste a { display: flex; flex-direction: column; align-items: center; gap: .4rem; padding: .6rem; border: 1px solid #d5e0ee; border-radius: .7rem; background: #fff; text-decoration: none; color: #12355b; min-width: 9.5rem; }
.pfa-qr-liste img { display: block; width: 132px; height: 132px; image-rendering: pixelated; }
.pfa-qr-liste span { font-size: .95rem; text-align: center; }
