/*
Theme Name: Leonardo345
Theme URI: https://leonardo345.com
Author: Leonardo3.4.5
Description: Thème sur mesure pour leonardo345.com. Mieux se connaître, mieux comprendre les autres, mieux coopérer. Thème en blocs, compatible WooCommerce, Polylang et Ultimate Member.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: leonardo345
*/

/* ---------- Base ---------- */
:root {
	--l3-nuit: var(--wp--preset--color--nuit);
	--l3-cyan: var(--wp--preset--color--cyan);
	--l3-bleu: var(--wp--preset--color--bleu);
	--l3-brume: var(--wp--preset--color--brume);
	--l3-trait: var(--wp--preset--color--trait);
	--l3-texte: var(--wp--preset--color--texte);
	--l3-gris: var(--wp--preset--color--gris);
	--l3-lavande: var(--wp--preset--color--lavande);
	--l3-r: 24px;
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4 { text-wrap: balance; }
:focus-visible { outline: 2px solid var(--l3-cyan); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* Fonds nuit : texte clair, liens clairs */
.has-nuit-background-color, .has-nuit-profond-background-color { color: #fff; }
.has-nuit-background-color a:where(:not(.wp-element-button)),
.has-nuit-profond-background-color a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--cyan-clair); }

/* ---------- Styles de blocs ---------- */
.is-style-surtitre { font-size: var(--wp--preset--font-size--tiny) !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--l3-bleu); margin-bottom: .25rem !important; }
.has-nuit-background-color .is-style-surtitre, .is-style-carte-nuit .is-style-surtitre, .is-style-carte-verre .is-style-surtitre { color: var(--wp--preset--color--cyan-clair); }
.is-style-pastille { display: inline-flex !important; align-items: center; gap: .6rem; width: fit-content; background: rgba(38,194,251,.14); color: var(--wp--preset--color--cyan-clair); border-radius: 999px; padding: .5rem 1rem; font-size: .875rem; font-weight: 600; }
.is-style-pastille::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--l3-cyan); }
.is-style-lien-fleche a { font-weight: 700; text-decoration: none; }
.is-style-lien-fleche a::after { content: " →"; }
.is-style-lien-fleche a:hover { text-decoration: underline; }

ul.is-style-coches { list-style: none; padding-left: 0; display: grid; gap: .75rem; }
ul.is-style-coches li { position: relative; padding-left: 2.1rem; }
ul.is-style-coches li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231262A8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E"); }
.has-nuit-background-color ul.is-style-coches li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2326C2FB' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E"); }

.wp-block-group.is-style-carte { background: var(--l3-brume); border-radius: var(--l3-r); padding: 1.75rem; }
.wp-block-group.is-style-carte-bordure { background: #fff; border: 1px solid var(--l3-trait); border-radius: var(--l3-r); padding: 1.75rem; }
.wp-block-group.is-style-carte-nuit { background: var(--l3-nuit); color: #fff; border-radius: var(--l3-r); padding: 1.75rem; }
.wp-block-group.is-style-carte-verre { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff; border-radius: var(--l3-r); padding: 1.75rem; }
.is-style-carte-nuit p, .is-style-carte-verre p { color: var(--l3-lavande); }
.is-style-carte-nuit :is(h2,h3,h4,strong), .is-style-carte-verre :is(h2,h3,h4,strong) { color: #fff; }
.is-style-carte > *, .is-style-carte-bordure > *, .is-style-carte-nuit > *, .is-style-carte-verre > * { margin-block: 0; }
.is-style-carte, .is-style-carte-bordure, .is-style-carte-nuit, .is-style-carte-verre { display: flex; flex-direction: column; gap: .75rem; }

.wp-block-button.is-style-cyan .wp-block-button__link { background: var(--l3-cyan); color: var(--l3-nuit); }
.wp-block-button.is-style-cyan .wp-block-button__link:hover { background: #5CD3FF; color: var(--l3-nuit); }
.wp-block-button.is-style-verre .wp-block-button__link { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.22); }
.wp-block-button.is-style-verre .wp-block-button__link:hover { background: rgba(255,255,255,.16); }
.wp-block-button.is-style-outline .wp-block-button__link { background: #fff; color: var(--l3-nuit); border: 1px solid var(--l3-nuit); padding: calc(.95rem - 1px) calc(1.4rem - 1px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--l3-brume); }
.wp-block-image.is-style-arrondi img { border-radius: var(--l3-r); }
.l345-bouton { display: inline-flex; align-items: center; justify-content: center; text-align: center; border: 0; border-radius: 12px; padding: .85rem 1.2rem; font: 700 1rem/1.2 var(--wp--preset--font-family--texte); text-decoration: none !important; cursor: pointer; min-height: 44px; }
.l345-bouton.cyan { background: var(--l3-cyan); color: var(--l3-nuit) !important; }
.l345-bouton.nuit { background: var(--l3-nuit); color: #fff !important; }
.l345-bouton.contour { background: transparent; color: #fff !important; border: 1px solid rgba(255,255,255,.3); }
.l345-bouton.contour:hover { border-color: #fff; }

/* ---------- Bandeau d'annonce et en-tête ---------- */
.l345-bandeau { margin: 0 !important; background: var(--l3-cyan); color: var(--l3-nuit); font-size: .875rem; font-weight: 600; text-align: center; padding: .6rem 1rem; }
.l345-bandeau a { color: var(--l3-nuit); margin-left: .75rem; }
.l345-entete { background: var(--l3-nuit); color: #fff; }
.l345-entete .wp-block-navigation a { color: #DDE6F5; text-decoration: none; }
.l345-entete .wp-block-navigation a:hover, .l345-entete .wp-block-navigation .current-menu-item > a { color: #fff; }
.l345-entete .wp-block-navigation .current-menu-item > a { box-shadow: inset 0 -2px 0 var(--l3-cyan); padding-bottom: 4px; }
.l345-entete .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--l3-nuit) !important; color: #fff !important; padding: 2rem; }
.l345-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; font-weight: 600; }
.l345-entete .wp-block-navigation__responsive-container-close { color: #fff; }
.l345-entete .wp-block-navigation__responsive-container-open svg, .l345-entete .wp-block-navigation__responsive-container-close svg { fill: #fff; }
.l345-logo img { height: 52px; width: auto; display: block; }
.l345-outils { display: flex; align-items: center; gap: 1rem; font-size: .875rem; font-weight: 600; }
.l345-outils p { margin: 0; }
.l345-langues { display: inline-flex; gap: 4px; background: rgba(255,255,255,.08); border-radius: 999px; padding: 4px; }
.l345-langues > * { padding: 6px 10px; border-radius: 999px; color: #DDE6F5 !important; text-decoration: none !important; line-height: 1; }
.l345-langues span[aria-current] { background: #fff; color: var(--l3-nuit) !important; }
.l345-connexion a { color: #DDE6F5 !important; text-decoration: none !important; }
.l345-connexion a::before { content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 6px; vertical-align: -3px; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DDE6F5' stroke-width='1.8'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E"); }
.l345-entete .wp-block-button__link { padding: .75rem 1.15rem; border-radius: 12px; }

/* ---------- Héros ---------- */
.l345-heros { background: var(--l3-nuit); color: #fff; }
.l345-heros h1 { color: #fff; }
.l345-heros h1 .l345-ligne { display: block; }
.l345-heros h1 .l345-accent, .l345-accent { color: var(--l3-cyan); }
.l345-heros .l345-chapeau { color: var(--l3-lavande); font-size: 1.25rem; line-height: 1.55; max-width: 620px; }
.l345-chiffres { border-top: 1px solid rgba(255,255,255,.14); padding-top: 1.5rem; }
.l345-chiffres .wp-block-group { gap: .25rem !important; }
.l345-chiffres p { margin: 0; }
.l345-chiffre { font-family: var(--wp--preset--font-family--titres); font-size: 2.25rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.l345-chiffre-legende { font-size: .875rem; color: var(--l3-lavande); }
.l345-octogone svg { width: 100%; max-width: 520px; height: auto; display: block; margin: 0 auto; }
.l345-fil { margin: 0 0 1rem; font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--cyan-clair); }
.l345-fil a { color: var(--wp--preset--color--cyan-clair) !important; text-decoration: none; }

/* Grand titre de chapitre (01 · 02 · 03) */
.l345-chapitre { display: flex; align-items: baseline; gap: 1.1rem; flex-wrap: wrap; }
.l345-chapitre .l345-num { font-family: var(--wp--preset--font-family--titres); font-size: 1.25rem; font-weight: 800; color: var(--l3-bleu); margin: 0; }
.has-nuit-background-color .l345-chapitre .l345-num { color: var(--wp--preset--color--cyan-clair); }
.l345-chapitre h2 { font-size: var(--wp--preset--font-size--chapitre); line-height: .98; letter-spacing: -.04em; margin: 0; }

/* Cartes-liens (chemin, besoins) */
.l345-carte-lien { text-decoration: none !important; color: inherit !important; transition: transform .15s ease, box-shadow .15s ease; }
a.l345-carte-lien:hover, .l345-carte-lien:has(a:hover) { transform: translateY(-2px); }
.l345-num-carte { font-size: .8125rem !important; font-weight: 800; letter-spacing: .1em; color: var(--l3-bleu); margin: 0; }
.is-style-carte-nuit .l345-num-carte, .is-style-carte-verre .l345-num-carte { color: var(--wp--preset--color--cyan-clair); }
.l345-lien-carte { margin-top: auto !important; padding-top: .5rem; font-weight: 700; }
.l345-lien-carte a { text-decoration: none; color: var(--l3-cyan) !important; }
.is-style-carte .l345-lien-carte a, .is-style-carte-bordure .l345-lien-carte a { color: var(--l3-bleu) !important; }
.l345-icone { width: 32px; height: 32px; }
.l345-icone img { width: 32px; height: 32px; }

/* Grilles : cartes de même hauteur */
.l345-grille > * { height: 100%; }
.l345-grille { align-items: stretch; }

/* Dimensions (barres) */
.l345-dimensions { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 1.25rem; }
.l345-dimensions .nom { text-align: center; font-size: .9375rem; font-weight: 800; color: var(--wp--preset--color--cyan-clair); }
.l345-dimensions .barre { height: 8px; border-radius: 6px; background: rgba(255,255,255,.14); margin-top: .6rem; position: relative; }
.l345-dimensions .barre::after { content: ""; position: absolute; left: 50%; top: -4px; width: 2px; height: 16px; margin-left: -1px; background: var(--l3-cyan); }
.l345-dimensions .poles { display: flex; justify-content: space-between; margin-top: .5rem; font-size: .8125rem; font-weight: 700; color: var(--l3-lavande); }
.l345-dimensions.claires .nom { color: var(--l3-bleu); }
.l345-dimensions.claires .barre { background: var(--l3-trait); }
.l345-dimensions.claires .barre::after { background: var(--l3-bleu); }
.l345-dimensions.claires .poles { color: var(--l3-texte); }

/* ---------- Test express ---------- */
.l345-test-colonnes { display: flex; flex-wrap: wrap; gap: 3rem; align-items: flex-start; }
.l345-test-questions { flex: 1 1 520px; min-width: 0; }
.l345-test-apercu { flex: 1 1 340px; min-width: 0; border: 1px solid var(--l3-trait); border-radius: var(--l3-r); padding: 1.5rem; position: sticky; top: 1.5rem; }
.l345-test-tete { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.l345-test-tete p { margin: 0; }
.l345-test-serie { font-size: .8125rem; font-weight: 700; color: var(--l3-bleu); background: var(--l3-brume); border-radius: 999px; padding: .35rem .75rem; }
.l345-test h3 { margin: .6rem 0 .5rem; font-size: 2.125rem; }
.l345-test-intro { color: var(--l3-texte); margin: 0 0 1.4rem; }
.l345-test-liste { display: grid; gap: .875rem; }
.l345-test-liste fieldset { border: 1px solid var(--l3-trait); border-radius: 20px; padding: 1.25rem 1.4rem; margin: 0; }
.l345-test-liste legend { padding: 0 .4rem; font-size: .8125rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--l3-bleu); }
.l345-test-liste .q { margin: 0 0 .75rem; font-size: 1.125rem; font-weight: 700; }
.l345-test-liste .choix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; }
.l345-test-liste button { width: 100%; min-height: 52px; padding: .75rem .9rem; border-radius: 14px; font: 600 .9375rem/1.3 var(--wp--preset--font-family--texte); cursor: pointer; text-align: left; background: #fff; color: var(--l3-nuit); border: 2px solid var(--l3-trait); }
.l345-test-liste button:hover { border-color: var(--l3-bleu); }
.l345-test-liste button[aria-pressed="true"] { background: var(--l3-nuit); color: #fff; border-color: var(--l3-nuit); font-weight: 700; }
.l345-test-mention { margin: .875rem 0 0; font-size: .8125rem; line-height: 1.5; color: var(--l3-gris); }
.l345-test-apercu .is-style-surtitre { margin: 0; }
.l345-test-code { font-family: var(--wp--preset--font-family--titres); font-size: 3rem; font-weight: 800; letter-spacing: .12em; margin-top: .4rem; }
.l345-test-message { margin: .4rem 0 0; font-size: .9375rem; color: var(--l3-texte); }
.l345-test-petit { margin: .4rem 0 0; font-size: .75rem; color: var(--l3-gris); }
.l345-test-fin { margin-top: 1.1rem; background: var(--l3-nuit); color: #fff; border-radius: 20px; padding: 1.4rem; }
.l345-test-fin strong { font-family: var(--wp--preset--font-family--titres); font-size: 1.375rem; display: block; line-height: 1.15; }
.l345-test-fin p { margin: .5rem 0 0; font-size: .9375rem; color: var(--l3-lavande); }
.l345-test-boutons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
@media (max-width: 600px) { .l345-test-liste .choix { grid-template-columns: 1fr; } .l345-test-apercu { position: static; } }

/* ---------- Carrousel de témoignages ---------- */
.l345-carrousel { display: flex !important; flex-wrap: nowrap !important; gap: 1.25rem !important; overflow-x: auto; scroll-snap-type: x mandatory; padding: 1rem 0 .75rem; scrollbar-width: thin; }
.l345-carrousel > * { flex: 0 0 340px !important; scroll-snap-align: start; margin: 0 !important; }
.l345-temoignage .l345-grand { font-family: var(--wp--preset--font-family--titres); font-size: 3.25rem; font-weight: 800; line-height: .9; color: var(--l3-bleu); letter-spacing: -.02em; }
.l345-temoignage blockquote, .l345-temoignage .citation { margin: 0; font-size: 1rem; line-height: 1.6; }
.l345-temoignage .signature { margin-top: auto !important; font-size: .875rem; color: var(--l3-gris); }
.l345-temoignage .signature strong { color: var(--l3-nuit); }
.is-style-carte-nuit.l345-temoignage .signature strong { color: #fff; }
.l345-video { width: 64px; height: 64px; border-radius: 50%; background: var(--l3-cyan); display: flex !important; align-items: center; justify-content: center; }
.l345-video a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 0; text-decoration: none; }
.l345-video a::before { content: ""; border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent var(--l3-nuit); margin-left: 5px; }

/* ---------- Tapisserie de logos ---------- */
.l345-logos { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px !important; list-style: none; padding: 0; }
.l345-logos > .wp-block-image, .l345-logos > figure, .l345-logos > p { margin: 0 !important; background: #fff; border: 1px solid #E3E9F3; border-radius: 14px; height: 88px; display: flex; align-items: center; justify-content: center; padding: 16px 18px; box-sizing: border-box; }
.l345-logos img { max-width: 100%; max-height: 46px; width: auto !important; height: auto !important; object-fit: contain; filter: grayscale(1); opacity: .72; transition: opacity .2s, filter .2s; }
.l345-logos .mono img { filter: brightness(0); opacity: .62; }
.l345-logos .inverse img { filter: invert(1) grayscale(1); opacity: .62; }
.l345-logos figure:hover img { filter: none; opacity: 1; }
.l345-logos > p { font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.0625rem; color: var(--l3-gris); text-align: center; line-height: 1.15; }

/* ---------- Images bord à bord ---------- */
.l345-image-carte { border-radius: 28px; overflow: hidden; background: #fff; }
.l345-image-carte img { display: block; width: 100%; height: auto; }
.l345-couverture { background: var(--l3-brume); border-radius: 16px; height: 260px; display: flex !important; align-items: center; justify-content: center; position: relative; overflow: hidden; margin: 0 !important; }
.l345-couverture img { height: 220px !important; width: auto !important; max-width: 80%; object-fit: contain; border-radius: 3px; box-shadow: 0 10px 24px rgba(12,22,51,.18); }
.l345-couverture.rapport img { height: 100% !important; width: 100% !important; max-width: none; object-fit: cover; box-shadow: none; border-radius: 0; }
.l345-badge { position: absolute; top: 12px; left: 12px; z-index: 1; background: var(--l3-cyan); color: var(--l3-nuit); border-radius: 999px; padding: 4px 12px; font-size: .8125rem; font-weight: 800; margin: 0 !important; }
.l345-prix { font-family: var(--wp--preset--font-family--titres); font-size: 1.375rem; font-weight: 800; }
.l345-prix del { font-family: var(--wp--preset--font-family--texte); font-size: .875rem; font-weight: 500; color: var(--l3-gris); margin-right: .35rem; }
.l345-prix ins { text-decoration: none; }

/* ---------- Exemple de rapport Talent Fit ---------- */
.l345-rapport-ligne { background: #fff; border-radius: 16px; padding: .9rem 1.1rem; border-left: 4px solid var(--l3-bleu); }
.l345-rapport-ligne p { margin: .2rem 0 0; font-size: .9375rem; line-height: 1.55; color: var(--l3-texte); }
.l345-rapport-ligne.vigilance { border-left-color: #8FA3C4; }
.l345-rapport-ligne.ajuste { border-left-color: var(--l3-cyan); }
.l345-rapport-ligne.question { border-left-color: var(--l3-gris); }
.l345-chips { display: flex; flex-wrap: wrap; gap: 6px; font-size: .8125rem; font-weight: 700; }
.l345-chips span { background: #E3E9F3; border-radius: 999px; padding: 3px 10px; }
.l345-chips span:first-child { background: var(--l3-nuit); color: #fff; }

/* Étapes numérotées */
.l345-etape-num { width: 44px; height: 44px; border-radius: 50%; background: var(--l3-nuit); color: #fff; display: flex !important; align-items: center; justify-content: center; font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.25rem; margin: 0 !important; }
.l345-tarifs-ligne { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--l3-trait); font-weight: 600; font-size: .9375rem; }
.has-nuit-background-color .l345-tarifs-ligne, .is-style-carte-nuit .l345-tarifs-ligne { border-color: rgba(255,255,255,.14); }

/* FAQ (bloc Détails) */
.wp-block-details { border-bottom: 1px solid var(--l3-trait); padding: 1.25rem 0; }
.wp-block-details summary { font-size: 1.125rem; font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; color: var(--l3-bleu); font-size: 1.4rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "−"; }
.wp-block-details > :not(summary) { margin-top: .75rem; color: var(--l3-texte); }

/* ---------- Formulaire de contact ---------- */
.l345-formulaire { display: grid; gap: 1rem; background: #fff; color: var(--l3-nuit); border-radius: 28px; padding: clamp(1.5rem, 3vw, 2.25rem); }
.l345-formulaire .ligne { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.l345-formulaire label { display: grid; gap: .4rem; font-size: .875rem; font-weight: 700; }
.l345-formulaire input[type=text], .l345-formulaire input[type=email], .l345-formulaire select, .l345-formulaire textarea { font: 400 1rem/1.4 var(--wp--preset--font-family--texte); border: 1px solid #C5CFDF; border-radius: 12px; padding: .8rem .9rem; background: #fff; color: var(--l3-nuit); width: 100%; box-sizing: border-box; }
.l345-formulaire textarea { resize: vertical; }
.l345-formulaire fieldset { border: 0; padding: 0; margin: .25rem 0 0; }
.l345-formulaire legend { font-size: .875rem; font-weight: 700; margin-bottom: .6rem; }
.l345-formulaire .grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .5rem; }
.l345-formulaire label.case { display: flex; gap: .6rem; align-items: center; border: 1px solid var(--l3-trait); border-radius: 12px; padding: .6rem .8rem; font-weight: 600; font-size: .9rem; cursor: pointer; }
.l345-formulaire label.consentement { border: 0; padding: 0; align-items: flex-start; font-weight: 500; line-height: 1.5; }
.l345-formulaire input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--l3-bleu); flex: none; }
.l345-formulaire .piege { position: absolute; left: -9999px; }
.l345-formulaire .bas { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.l345-formulaire .note { font-size: .8125rem; color: var(--l3-gris); }
.l345-formulaire button { background: var(--l3-cyan); color: var(--l3-nuit); border: 0; border-radius: 14px; padding: 1rem 1.6rem; font: 800 1.0625rem/1.2 var(--wp--preset--font-family--texte); cursor: pointer; }
.l345-formulaire button:hover { background: #5CD3FF; }
.l345-message { border-radius: 14px; padding: 1rem 1.2rem; font-weight: 600; }
.l345-message.ok { background: #E5F7EE; color: #0F5132; }
.l345-message.erreur { background: #FDECEC; color: #842029; }

/* ---------- Pied de page ---------- */
.l345-pied { background: var(--wp--preset--color--nuit-profond); color: var(--l3-lavande); font-size: .9375rem; }
.l345-pied a { color: var(--l3-lavande) !important; text-decoration: none; }
.l345-pied a:hover { color: #fff !important; text-decoration: underline; }
.l345-pied h2, .l345-pied h3 { color: #fff; font-family: var(--wp--preset--font-family--texte); font-size: 1rem; letter-spacing: 0; font-weight: 700; margin-bottom: .5rem; }
.l345-pied ul { list-style: none; padding: 0; margin: 0; line-height: 2; }
.l345-pied .l345-signature { font-family: var(--wp--preset--font-family--titres); color: #fff; font-size: 1.125rem; font-weight: 700; line-height: 1.35; }
.l345-pied-bas { border-top: 1px solid rgba(201,212,232,.15); font-size: .8125rem; }

/* ---------- Pages simples (bandeau de titre) ---------- */
.l345-titre-page { background: var(--l3-nuit); color: #fff; }
.l345-titre-page h1 { color: #fff; font-size: clamp(2.5rem, 5vw, 4rem); }
.l345-contenu > * + * { margin-top: 1.25rem; }
.l345-contenu h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); margin-top: 2.5rem; }

/* ---------- WooCommerce ---------- */
.woocommerce .wc-block-components-button, .woocommerce a.button, .woocommerce button.button, .wp-block-button__link.add_to_cart_button { background: var(--l3-nuit) !important; color: #fff !important; border-radius: 14px !important; font-weight: 700 !important; }
.woocommerce .single_add_to_cart_button { background: var(--l3-cyan) !important; color: var(--l3-nuit) !important; }
.wc-block-components-product-price, .woocommerce .price { font-family: var(--wp--preset--font-family--titres); font-weight: 800; color: var(--l3-nuit); }
.woocommerce .onsale, .wc-block-components-product-sale-badge { background: var(--l3-cyan) !important; color: var(--l3-nuit) !important; border: 0 !important; border-radius: 999px !important; font-weight: 800; }

/* ---------- Petits écrans ---------- */
@media (max-width: 781px) {
	.l345-outils .l345-connexion { display: none; }
	.l345-heros .wp-block-columns { gap: 2rem; }
	.l345-carrousel > * { flex-basis: 85% !important; }
}
@media (max-width: 600px) {
	.l345-bandeau a { display: block; margin: .25rem 0 0; }
	.l345-logo img { height: 42px; }
	.l345-chiffre { font-size: 1.75rem; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.l345-carte-lien { transition: none; }
}

/* ---------- Compléments ---------- */
.is-style-carte, .is-style-carte-bordure { color: var(--l3-nuit); }
.is-style-pastille-claire { background: var(--l3-brume); border-radius: 999px; padding: .25rem .65rem; font-weight: 700; margin: 0 !important; }
.l345-modules { list-style: none; padding: 0; margin: .5rem 0 0; }
.l345-modules a { font-size: .8125rem; font-weight: 700; white-space: nowrap; margin-left: .3rem; }
.is-style-carte-nuit .l345-modules a { color: var(--wp--preset--color--cyan-clair); }
ol.l345-etapes { list-style: none; counter-reset: etape; padding: 0; margin: 1rem 0 0; }
ol.l345-etapes li { counter-increment: etape; display: flex; gap: .9rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--l3-trait); font-weight: 600; }
ol.l345-etapes li::before { content: counter(etape); flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--l3-brume); color: var(--l3-bleu); display: flex; align-items: center; justify-content: center; font-family: var(--wp--preset--font-family--titres); font-weight: 800; }
.l345-heros .wp-block-image.is-style-arrondi img, .l345-heros .l345-image-carte img { max-height: 420px; object-fit: cover; }
.l345-talentfit { color: var(--l3-nuit); }
.l345-talentfit .is-style-surtitre { color: var(--l3-bleu) !important; }
.l345-heros .l345-image-carte { max-width: 500px; }
.l345-logo { flex: none; margin: 0; }
.l345-logo img { max-width: none; }
.l345-icone { display: inline-flex; color: var(--l3-cyan); }
.l345-icone svg { width: 32px; height: 32px; }
.wp-block-shortcode:has(.l345-icone), p:has(> .l345-icone) { margin: 0; }

.l345-etiquette { align-self: flex-start; width: fit-content; background: var(--l3-cyan); color: var(--l3-nuit) !important; border-radius: 999px; padding: .35rem .9rem; font-size: .875rem; font-weight: 800; margin: 0 !important; }
.l345-date { font-family: var(--wp--preset--font-family--titres); font-size: 1.5rem; line-height: 1.1; color: #fff; margin: 0 !important; }
.l345-carte-date { flex: 1 1 12rem; padding: 1.1rem !important; gap: .2rem !important; }

.l345-stat { flex: 1 1 9rem; }
/* Pas de confinement de taille pour les grilles placées dans une carte. */
.is-style-carte .is-layout-grid, .is-style-carte-nuit .is-layout-grid, .is-style-carte-bordure .is-layout-grid, .is-style-carte-verre .is-layout-grid { container-type: normal; }

.l345-tarifs-ligne strong { white-space: nowrap; }

/* ---------- Contenu repris de l'ancien site ---------- */
.l345-converti { color: var(--l3-texte); }
.l345-converti :is(h2, h3, h4, h5, h6) { color: var(--l3-nuit); margin-top: 2rem; }
.l345-converti h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.l345-converti h3 { font-size: 1.5rem; }
.l345-converti :is(h4, h5, h6) { font-size: 1.2rem; letter-spacing: -.01em; }
.l345-converti .wp-block-image img { border-radius: 16px; }
.l345-converti .wp-block-image figcaption { font-size: .9375rem; color: var(--l3-texte); }
.l345-converti .wp-block-columns { margin-block: 1.5rem; }
.l345-converti .wp-block-buttons { margin-block: .5rem; }
.l345-converti .wp-block-embed { margin-block: 1rem; }
.l345-converti .wp-block-embed iframe { border-radius: 16px; }
.l345-converti a:not(.wp-element-button) { color: var(--l3-bleu); }
.l345-tableau { overflow-x: auto; margin: 1.5rem 0; }
.l345-tableau table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.l345-tableau :is(td, th) { border: 1px solid var(--l3-trait); padding: .6rem .8rem; vertical-align: top; text-align: left; }
.l345-tableau tr:first-child { background: var(--l3-brume); font-weight: 700; }
.l345-contenu .wp-block-image img { border-radius: 16px; }
.l345-actualites .wp-block-post-title a { color: var(--l3-nuit); text-decoration: none; }
.l345-actualites .wp-block-post-title a:hover { color: var(--l3-bleu); }
.l345-actualites .wp-block-post-template { gap: 1.25rem; }
.l345-logos-legende { margin-block: 1.5rem; }
.l345-logos-legende .wp-block-image { margin: 0; background: #fff; border: 1px solid #E3E9F3; border-radius: 14px; padding: 1rem; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; height: 100%; box-sizing: border-box; }
.l345-logos-legende .wp-block-image img { max-height: 64px; width: auto; object-fit: contain; border-radius: 0 !important; }
.l345-logos-legende figcaption { font-size: .8125rem !important; margin-top: .6rem; color: var(--l3-gris) !important; }

/* Pages de texte (sans composition) : espace sous le bandeau de titre et lignes de longueur confortable */
main > .l345-contenu:not(:has(> .l345-page)) { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
main > .l345-contenu:not(:has(> .l345-page)) > :where(p, ul, ol, h2, h3, h4, h5, h6, details, blockquote, .wp-block-quote) { max-width: 860px; }
main > .l345-contenu:not(:has(> .l345-page)) > :first-child { margin-top: 0; }
/* Logos sur fond blanc (JPEG) : le blanc se fond dans la tuile */
.l345-logos img { mix-blend-mode: multiply; }

/* ---------- Visuels Talent Fit et accréditation (boutique) ---------- */
.l345-visuel { margin: 0; width: 100%; min-width: 0; height: 240px; border-radius: 16px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; gap: .4rem; padding: 1rem; box-sizing: border-box; }
.l345-visuel figcaption { position: absolute; left: 0; right: 0; bottom: .9rem; text-align: center; font-size: .8125rem; font-weight: 700; letter-spacing: .04em; }
.l345-visuel-talentfit { background: radial-gradient(120% 90% at 50% 40%, #1B2A55 0%, #0C1633 70%); color: #fff; padding-bottom: 2.4rem; }
.l345-visuel-talentfit .puce { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 12px; padding: .55rem .65rem; font-size: .75rem; font-weight: 700; line-height: 1.25; text-align: center; max-width: 6.5rem; flex: 0 1 auto; min-width: 0; }
.l345-visuel-talentfit .puce.cible { border-color: rgba(38,194,251,.6); color: var(--wp--preset--color--cyan-clair); }
.l345-visuel-talentfit .lien { flex: 0 1 1.1rem; min-width: .4rem; height: 0; border-top: 2px dashed var(--l3-cyan); }
.l345-visuel-talentfit .coeur { flex: none; width: 78px; height: 78px; border-radius: 50%; background: var(--l3-cyan); color: var(--l3-nuit); display: flex; align-items: center; justify-content: center; text-align: center; font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1rem; line-height: 1.05; box-shadow: 0 0 0 10px rgba(38,194,251,.18), 0 0 0 22px rgba(38,194,251,.08); }
.l345-visuel-talentfit { container-type: inline-size; }
.l345-visuel-talentfit .scene { display: flex; align-items: center; justify-content: center; gap: .4rem; width: 100%; }
@container (max-width: 21rem) {
  .l345-visuel-talentfit .scene { flex-direction: column; gap: .3rem; }
  .l345-visuel-talentfit .puce { max-width: none; padding: .35rem .6rem; font-size: .6875rem; }
  .l345-visuel-talentfit .lien { flex: none; width: 0; height: .55rem; min-width: 0; border-top: 0; border-left: 2px dashed var(--l3-cyan); }
  .l345-visuel-talentfit .coeur { width: 58px; height: 58px; font-size: .8125rem; box-shadow: 0 0 0 6px rgba(38,194,251,.18), 0 0 0 12px rgba(38,194,251,.08); }
}
.l345-visuel-talentfit figcaption { color: var(--wp--preset--color--cyan-clair); }
.l345-visuel-accreditation { background: linear-gradient(160deg, #FFF6D6 0%, #F2F6FC 75%); flex-direction: column; padding-bottom: 3rem; }
.l345-visuel-accreditation img { height: 150px; width: auto; filter: drop-shadow(0 10px 14px rgba(12,22,51,.15)); }
.l345-visuel-accreditation figcaption { display: flex; flex-direction: column; gap: .1rem; color: var(--l3-nuit); bottom: .7rem; }
.l345-visuel-accreditation figcaption strong { font-family: var(--wp--preset--font-family--titres); font-size: 1rem; }
.l345-visuel-accreditation figcaption span { font-weight: 600; color: var(--l3-texte); letter-spacing: 0; }
.woocommerce-price-suffix, .l345-ht { font-size: .7em; font-weight: 700; margin-left: .2em; color: var(--l3-gris); }
.l345-jeu-options { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------- Jeu des croisements Talent Fit ---------- */
.l345-jeu { display: flex; flex-wrap: wrap; gap: 2rem; align-items: flex-start; }
.l345-jeu-menu { flex: 1 1 360px; min-width: 0; }
.l345-jeu-scene { flex: 1.3 1 460px; min-width: 0; }
.l345-jeu-consigne { font-weight: 700; margin: 0 0 1rem; }
.l345-jeu-groupe { font-size: .8125rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--l3-bleu); margin: 1.1rem 0 .5rem; }
.l345-jeu-choix { font: 600 .9375rem/1.3 var(--wp--preset--font-family--texte); background: #fff; color: var(--l3-nuit); border: 2px solid var(--l3-trait); border-radius: 999px; padding: .6rem 1rem; cursor: pointer; text-align: left; }
.l345-jeu-choix:hover { border-color: var(--l3-bleu); }
.l345-jeu-choix[aria-pressed="true"] { background: var(--l3-nuit); border-color: var(--l3-nuit); color: #fff; }
.l345-jeu-panneau { background: var(--l3-nuit); color: #fff; border-radius: 24px; padding: 1.75rem; margin-bottom: 1rem; }
.l345-jeu.l345-js .l345-jeu-panneau { display: none; margin: 0; }
.l345-jeu.l345-js .l345-jeu-panneau.actif { display: block; animation: l345-apparait .25s ease; }
@keyframes l345-apparait { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.l345-jeu-schema { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.l345-jeu-schema span { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 12px; padding: .5rem .8rem; font-size: .875rem; font-weight: 700; }
.l345-jeu-schema span:last-child { border-color: rgba(38,194,251,.6); color: var(--wp--preset--color--cyan-clair); }
.l345-jeu-schema i { flex: 0 0 1.25rem; border-top: 2px dashed var(--l3-cyan); }
.l345-jeu-schema b { background: var(--l3-cyan); color: var(--l3-nuit); border-radius: 999px; padding: .45rem .8rem; font-family: var(--wp--preset--font-family--titres); font-size: .875rem; }
.l345-jeu-panneau h3 { margin: 0 0 .5rem; font-size: 1.5rem; color: #fff; }
.l345-jeu-panneau p { margin: 0; color: var(--l3-lavande); line-height: 1.6; }
.l345-jeu-panneau dl { margin: 1.25rem 0 0; display: grid; grid-template-columns: auto 1fr; gap: .5rem 1rem; font-size: .9375rem; }
.l345-jeu-panneau dt { font-weight: 800; color: var(--wp--preset--color--cyan-clair); }
.l345-jeu-panneau dd { margin: 0; color: #fff; }
@media (prefers-reduced-motion: reduce) { .l345-jeu.l345-js .l345-jeu-panneau.actif { animation: none; } }

/* En-tête : place pour les icônes compte et panier que WooCommerce ajoute tout seul */
.l345-entete .wp-block-button__link { white-space: nowrap; }
.l345-entete .wc-block-mini-cart__button, .l345-entete .wc-block-customer-account__link { color: #DDE6F5; }

@media (max-width: 1319px) {
	.l345-entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.l345-entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 600px) {
	.l345-entete > .wp-block-group { gap: .6rem; }
	.l345-entete .wp-block-group { column-gap: .6rem; }
	.l345-entete .l345-outils .wp-block-buttons, .l345-entete .wp-block-woocommerce-customer-account { display: none; }
	.l345-langues { gap: 2px; padding: 3px; }
	.l345-langues > * { padding: 5px 7px; font-size: .8125rem; }
}

/* Photos : la dimension humaine */
.l345-photo { position: relative; margin: 0; border-radius: 20px; overflow: hidden; background: var(--l3-brume, #F2F6FC); }
.l345-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.l345-photo-bandeau { aspect-ratio: 21 / 8; }
.l345-photo-colonne { aspect-ratio: 4 / 3; }
.l345-photo-colonne + *, * + .l345-photo-colonne { margin-top: var(--wp--preset--spacing--40); }
.l345-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 4rem 2.25rem 1.75rem; background: linear-gradient(180deg, rgba(12,22,51,0) 0%, rgba(12,22,51,.82) 100%); color: #fff; font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: clamp(1.25rem, 2.4vw, 2rem); line-height: 1.15; letter-spacing: -.01em; }
.l345-photo figcaption span { display: block; color: var(--wp--preset--color--cyan-clair, #7FD8FF); }
@media (max-width: 781px) {
	.l345-photo-bandeau { aspect-ratio: 4 / 3; }
	.l345-photo figcaption { padding: 3rem 1.25rem 1.25rem; }
}

/* En-têtes avec photo : la photo reste visible à droite, le texte lisible à gauche */
.l345-heros-photo { background-image: linear-gradient(90deg, rgba(12,22,51,.97) 0%, rgba(12,22,51,.88) 38%, rgba(12,22,51,.5) 68%, rgba(12,22,51,.25) 100%), var(--l345-fond); background-size: cover; background-position: center; background-repeat: no-repeat; }
.l345-fond-equipe-diverse { --l345-fond: url("assets/images/photo-equipe-diverse.jpg"); background-position: center 30%; }
.l345-fond-groupe-table { --l345-fond: url("assets/images/photo-groupe-table.jpg"); background-position: center; }
.l345-fond-atelier-poignee { --l345-fond: url("assets/images/photo-atelier-poignee.jpg"); background-position: center 35%; }
.l345-fond-coach-equipe { --l345-fond: url("assets/images/photo-coach-equipe.jpg"); background-position: center 30%; }
.l345-fond-profil-femme { --l345-fond: url("assets/images/photo-profil-femme.jpg"); background-position: right center; }
.l345-fond-cafe { --l345-fond: url("assets/images/photo-cafe.jpg"); background-position: center; }
.l345-fond-equipe-entrepot { --l345-fond: url("assets/images/photo-equipe-entrepot.jpg"); background-position: center 35%; }
.l345-fond-tableau { --l345-fond: url("assets/images/photo-tableau.jpg"); background-position: right center; }
.l345-fond-conference { --l345-fond: url("assets/images/photo-conference.jpg"); background-position: center; }
.l345-fond-collegues-sourire { --l345-fond: url("assets/images/photo-collegues-sourire.jpg"); background-position: center 30%; }
.l345-fond-startup { --l345-fond: url("assets/images/photo-startup.jpg"); background-position: center; }
.l345-fond-rire-reunion { --l345-fond: url("assets/images/photo-rire-reunion.jpg"); background-position: center; }
@media (max-width: 781px) {
	.l345-heros-photo { background-image: linear-gradient(180deg, rgba(12,22,51,.9) 0%, rgba(12,22,51,.94) 100%), var(--l345-fond); }
}

/* Quiz mis en avant : invitation à tester */
.l345-quiz-vedette { position: relative; border: 2px solid var(--l3-cyan); border-radius: 28px; padding: clamp(1.25rem, 3vw, 2.25rem); background: linear-gradient(135deg, #EAF8FF 0%, #FFFFFF 55%); box-shadow: 0 0 0 8px rgba(38,194,251,.12), 0 24px 48px -24px rgba(12,22,51,.35); }
.l345-quiz-vedette .l345-quiz-badge { position: absolute; top: 0; left: clamp(1.25rem, 3vw, 2.25rem); transform: translateY(-50%); margin: 0; background: var(--l3-cyan); color: var(--l3-nuit); font-weight: 800; font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; padding: .45rem .9rem; border-radius: 999px; box-shadow: 0 6px 16px -6px rgba(38,194,251,.8); }
.l345-quiz-vedette .l345-test { background: transparent; }

/* Logo Talent Fit */
.l345-logo-tf { margin: 0 0 var(--wp--preset--spacing--30); }
.l345-logo-tf img { display: block; width: clamp(200px, 22vw, 260px); height: auto; }
.l345-logo-tf-heros img { width: clamp(200px, 24vw, 300px); }

/* Rapports : une teinte douce par rapport */
.l345-rapport { border-top-width: 4px !important; }
.l345-teinte-1 { background: #F1EEFB !important; border-top-color: #8E7CD6 !important; }
.l345-teinte-2 { background: #EAF6F0 !important; border-top-color: #4FB286 !important; }
.l345-teinte-3 { background: #FFF4E8 !important; border-top-color: #F0A04B !important; }
.l345-teinte-4 { background: #EAF4FC !important; border-top-color: #4D9BDB !important; }
.l345-teinte-5 { background: #FCEEF1 !important; border-top-color: #D9738B !important; }
.l345-teinte-tf1 { background: #E6F7FD !important; border-top-color: #26C2FB !important; }
.l345-teinte-tf2 { background: #E9F3FF !important; border-top-color: #0071BB !important; }
.l345-teinte-tf3 { background: #EAFBF6 !important; border-top-color: #2BB59A !important; }
.l345-teinte-tf4 { background: #F0F2FF !important; border-top-color: #5B6CE0 !important; }

/* Retours après lecture du profil */
.l345-retour .citation { font-size: 1.0625rem; }

/* Paragraphes d'introduction repris de l'ancien site (saisis comme titres) */
.l345-intro-convertie { font-size: 1.125rem; line-height: 1.65; color: var(--wp--preset--color--texte, #3B4763); max-width: 60rem; }

/* ---------- Espace partenaires ---------- */
.l345-espace-bonjour { font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.2; color: var(--l3-nuit); margin: 0 0 var(--wp--preset--spacing--40); }
.l345-espace-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; }
.l345-espace-carte { display: flex; flex-direction: column; gap: .5rem; padding: 1.75rem; border-radius: 20px; background: #fff; border: 1px solid var(--wp--preset--color--trait, #E3E8F2); color: var(--l3-nuit); text-decoration: none !important; transition: transform .2s, box-shadow .2s, border-color .2s; }
.l345-espace-carte:hover, .l345-espace-carte:focus-visible { transform: translateY(-3px); border-color: var(--l3-cyan); box-shadow: 0 18px 36px -22px rgba(12,22,51,.45); }
.l345-espace-carte strong { font-family: var(--wp--preset--font-family--titres); font-size: 1.35rem; font-weight: 800; }
.l345-espace-carte span { color: var(--wp--preset--color--texte, #3B4763); font-size: .9375rem; }
.l345-espace-carte em { margin-top: auto; padding-top: .5rem; font-style: normal; font-weight: 700; color: var(--wp--preset--color--bleu, #0071BB); }
.l345-espace-note { margin-top: var(--wp--preset--spacing--40); font-size: .875rem; color: var(--l3-gris); }
.l345-espace-visiteur { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.l345-espace-visiteur h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 0 0 .5rem; }
.l345-espace-connexion { padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: 24px; border: 1px solid var(--wp--preset--color--trait, #E3E8F2); background: #fff; }
.l345-espace-demande { padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: 24px; background: var(--wp--preset--color--brume, #F2F6FC); }
.l345-espace-attente { max-width: 46rem; }
/* Boutons de l'espace partenaires (sans classe de couleur) ; les boutons du test express gardent leurs styles */
.l345-espace .l345-bouton:not(.contour):not(.nuit) { background: var(--l3-cyan); color: var(--l3-nuit) !important; font-weight: 700; text-decoration: none !important; }
.l345-espace .l345-bouton:not(.contour):not(.nuit):hover { background: var(--wp--preset--color--cyan-clair, #7FD8FF); }
.l345-lien-discret { margin-left: 1rem; color: var(--l3-gris) !important; }
@media (max-width: 781px) { .l345-espace-visiteur { grid-template-columns: 1fr; } }

/* Bibliothèque */
.l345-biblio-menu { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; gap: .5rem; padding: .75rem 0; margin-bottom: var(--wp--preset--spacing--40); background: #fff; }
.l345-biblio-menu a { padding: .5rem .9rem; border-radius: 999px; background: var(--wp--preset--color--brume, #F2F6FC); color: var(--l3-nuit) !important; font-weight: 700; font-size: .875rem; text-decoration: none !important; }
.l345-biblio-menu a span { margin-left: .25rem; color: var(--l3-gris); font-weight: 600; }
.l345-biblio-cat { scroll-margin-top: 5rem; margin-bottom: var(--wp--preset--spacing--50); }
.l345-biblio-cat h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); margin: 0 0 1rem; }
.l345-biblio-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; }
.l345-biblio-fichier { display: flex; flex-direction: column; gap: .35rem; padding: 1rem; border-radius: 18px; border: 1px solid var(--wp--preset--color--trait, #E3E8F2); background: #fff; color: var(--l3-nuit); text-decoration: none !important; transition: border-color .2s, box-shadow .2s; }
.l345-biblio-fichier:hover, .l345-biblio-fichier:focus-visible { border-color: var(--l3-cyan); box-shadow: 0 14px 30px -20px rgba(12,22,51,.45); }
.l345-biblio-apercu { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; border-radius: 12px; background: linear-gradient(135deg, #EAF4FC, #F1EEFB); margin-bottom: .4rem; overflow: hidden; }
.l345-biblio-apercu.est-image { background: #F7F9FC; }
.l345-biblio-apercu img { width: 100%; height: 100%; object-fit: contain; padding: .5rem; box-sizing: border-box; }
.l345-biblio-format { font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 1.5rem; color: var(--wp--preset--color--bleu, #0071BB); letter-spacing: .04em; }
.l345-biblio-fichier strong { font-size: 1rem; line-height: 1.3; }
.l345-biblio-fichier span:not(.l345-biblio-apercu):not(.l345-biblio-format) { font-size: .8125rem; color: var(--wp--preset--color--texte, #3B4763); }
.l345-biblio-fichier em { margin-top: auto; padding-top: .4rem; font-style: normal; font-weight: 700; font-size: .8125rem; color: var(--wp--preset--color--bleu, #0071BB); }

/* Formulaires Ultimate Member aux couleurs du site */
.l345-um .um, .is-style-carte-bordure .um, .l345-espace .um { max-width: none !important; padding: 0 !important; margin: 0 !important; }
.um .um-field-label label { font-family: var(--wp--preset--font-family--texte, Manrope), sans-serif; font-weight: 700 !important; font-size: .9375rem !important; color: var(--l3-nuit) !important; }
.um input[type="text"], .um input[type="email"], .um input[type="password"], .um input[type="tel"], .um textarea, .um select { border: 1px solid #CBD5E6 !important; border-radius: 12px !important; padding: .8rem 1rem !important; height: auto !important; font-size: 1rem !important; background: #fff !important; box-shadow: none !important; }
.um input:focus, .um textarea:focus { border-color: var(--l3-cyan) !important; outline: 3px solid rgba(38,194,251,.25) !important; }
.um .um-button, .um input[type="submit"].um-button { background: var(--l3-cyan) !important; color: var(--l3-nuit) !important; border-radius: 12px !important; font-weight: 700 !important; font-size: 1rem !important; padding: .9rem 1.4rem !important; border: 0 !important; box-shadow: none !important; }
.um .um-button.um-alt, .um input[type="submit"].um-button.um-alt { background: var(--wp--preset--color--brume, #F2F6FC) !important; color: var(--l3-nuit) !important; }
.um .um-button:hover { filter: brightness(1.05); }
.um a, .um-link-alt { color: var(--wp--preset--color--bleu, #0071BB) !important; }
.um-postmessage { font-size: 1.0625rem; line-height: 1.6; padding: 1.25rem 1.5rem; border-radius: 16px; background: #EAF8FF; color: var(--l3-nuit); }
.l345-um { width: 100%; align-self: stretch; }

/* En-tête : place pour six rubriques, compte connecté compact */
.l345-entete .wc-block-customer-account__visual { display: flex; align-items: center; }
.l345-entete .wc-block-customer-account__visual img { width: 28px !important; height: 28px !important; border-radius: 50%; }
.l345-entete .wc-block-customer-account__visual img + svg, .l345-entete .wc-block-customer-account__visual svg + img { margin-left: 0; }
.l345-entete .wc-block-customer-account__visual:has(img) svg { display: none; }
.l345-entete .wp-block-navigation__container { flex-wrap: nowrap; }
.l345-entete .wp-block-navigation-item__content { white-space: nowrap; }
@media (max-width: 1520px) {
	.l345-entete .wp-block-navigation { --wp--style--block-gap: 1.25rem; }
	.l345-entete .l345-outils { gap: .75rem; }
}
.l345-connexion a { white-space: nowrap; }

/* Personnes (Distribution France) */
.l345-personnes { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 1.5rem; margin-top: var(--wp--preset--spacing--40); }
.l345-personne { margin: 0; text-align: center; padding: 1.5rem 1rem; border-radius: 20px; background: #fff; border: 1px solid var(--wp--preset--color--trait, #E3E8F2); }
.l345-personne img, .l345-personne .l345-initiales { display: flex; align-items: center; justify-content: center; width: 112px; height: 112px; margin: 0 auto .9rem; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px #fff, 0 0 0 6px rgba(38,194,251,.35); }
.l345-personne .l345-initiales { background: linear-gradient(135deg, #0C1633, #1B2A55); color: #fff; font-family: var(--wp--preset--font-family--titres); font-weight: 800; font-size: 2rem; letter-spacing: .02em; }
.l345-personne figcaption { display: flex; flex-direction: column; gap: .2rem; }
.l345-personne strong { font-family: var(--wp--preset--font-family--titres); font-size: 1.1rem; color: var(--l3-nuit); }
.l345-personne span { font-size: .875rem; color: var(--wp--preset--color--texte, #3B4763); }

/* Page Formation accréditation */
.l345-resume-achat { gap: .9rem !important; }
.l345-badge-ceinture { width: 72px; height: 72px; object-fit: contain; flex: none; }
.l345-prix-vedette { margin: .25rem 0 0 !important; }
.l345-prix-vedette s { font-size: .55em; font-weight: 600; color: var(--l3-gris); margin-right: .35rem; }
.l345-resume-achat .l345-etiquette { align-self: flex-start; }

/* Témoignages écrits */
.l345-citations { columns: 3 18rem; column-gap: 1.25rem; margin-top: var(--wp--preset--spacing--40); }
.l345-citation { break-inside: avoid; margin: 0 0 1.25rem; padding: 1.5rem 1.6rem; border-radius: 20px; background: #fff; border: 1px solid var(--wp--preset--color--trait, #E3E8F2); }
.l345-citation blockquote { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.6; color: var(--l3-nuit); }
.l345-citation figcaption { font-size: .875rem; color: var(--wp--preset--color--texte, #3B4763); }
.l345-citation figcaption em { color: var(--l3-gris); }

/* Fiches produit WooCommerce */
.single-product .product_title, .single-product h1.wp-block-post-title { font-size: clamp(1.9rem, 3vw, 2.6rem) !important; line-height: 1.12; overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* Mentions légales */
.l345-legal-section { padding: 1.5rem 0; border-bottom: 1px solid var(--wp--preset--color--trait, #E3E8F2); }
.l345-legal-section:first-child { padding-top: 0; }
.l345-legal-section h2 { margin: 0 0 .6rem; }
.l345-legal-section p { margin: .5rem 0; line-height: 1.65; }

/* Vidéos YouTube avec vignette */
.l345-video-yt { margin: 0; }
.l345-video-lancer { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: var(--l3-nuit); }
.l345-video-lancer img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.l345-video-lancer:hover img, .l345-video-lancer:focus-visible img { transform: scale(1.03); }
.l345-video-play { position: absolute; inset: 0; margin: auto; width: 72px; height: 72px; border-radius: 50%; background: rgba(12,22,51,.78); box-shadow: 0 0 0 6px rgba(255,255,255,.25); transition: background .2s; }
.l345-video-play::after { content: ""; position: absolute; left: 29px; top: 22px; border-left: 22px solid #fff; border-top: 14px solid transparent; border-bottom: 14px solid transparent; }
.l345-video-lancer:hover .l345-video-play { background: var(--l3-cyan); }
.l345-video-cadre { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; }
.l345-video-yt figcaption { margin-top: .6rem; font-weight: 700; font-size: .9375rem; color: var(--l3-nuit); }

/* Articles vidéo : l'image de l'article n'est pas répétée au-dessus du lecteur */
.single-post:has(.l345-video-yt) .wp-block-post-featured-image { display: none; }

/* Bibliothèque : aperçu de la 1re page des PDF */
.l345-biblio-apercu.est-page { position: relative; background: #EEF2F8; padding: .75rem; }
.l345-biblio-apercu.est-page img { object-fit: contain; padding: 0; box-shadow: 0 6px 18px -8px rgba(12,22,51,.45); background: #fff; }
.l345-biblio-badge { position: absolute; top: .5rem; right: .5rem; padding: .2rem .5rem; border-radius: 6px; background: var(--l3-nuit); color: #fff; font-size: .6875rem; font-weight: 800; letter-spacing: .05em; }

/* Allemand : mots longs (zusammenarbeiten, Geschäftsbedingungen) coupés proprement dans les grands titres */
:lang(de) h1,
:lang(de) h2,
:lang(de) h3,
:lang(de) .l345-signature {
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

/* Note en tête des traductions (déclaration de confidentialité EN/DE) */
.l345-note-traduction {
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--wp--preset--color--cyan, #2bb3e6);
	background: var(--wp--preset--color--brume, #f2f5f9);
	border-radius: 8px;
	font-size: 0.95em;
}
