/* Site Kora École · charte Kora Lab V14 : bleu roi, or, crème ; Inter pour les titres, DM Sans pour le texte. */

@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/inter-latin-ext-400.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/inter-latin-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/inter-latin-ext-500.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/inter-latin-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/inter-latin-ext-600.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/inter-latin-600.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/inter-latin-ext-700.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/inter-latin-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/dm-sans-latin-ext-400.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/dm-sans-latin-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/dm-sans-latin-ext-500.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/dm-sans-latin-500.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/dm-sans-latin-ext-700.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/dm-sans-latin-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212; }

:root {
  --nuit: #0A1D6B; --roi: #0E2580; --carte: #173AA6; --carte-2: #1E46C0;
  --or: #F5A623; --or-2: #FFC15C; --creme: #F5EFE6; --ciel: #8FAEFF;
  --tx: #F5EFE6; --tx-2: rgba(245, 239, 230, 0.8); --tx-3: rgba(245, 239, 230, 0.66);
  --ligne: rgba(245, 239, 230, 0.13); --ligne-2: rgba(245, 239, 230, 0.26);
  --encre: #0E2580; --encre-2: #34416F; --encre-ligne: rgba(14, 37, 128, 0.16);
  --titre: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --texte: "DM Sans", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --cadre: 1200px; --gout: clamp(16px, 4vw, 40px); --r: 22px;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body { margin: 0; background: var(--nuit); color: var(--tx-2); font: 400 17px/1.65 var(--texte); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--titre); font-weight: 600; color: var(--tx); letter-spacing: -0.035em; line-height: 1.06; text-wrap: balance; }
h2 { font-size: clamp(2rem, 4.2vw, 3.5rem); }
h3 { font-size: 1.375rem; letter-spacing: -0.02em; line-height: 1.2; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--or); outline-offset: 3px; border-radius: 6px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.evitement { position: absolute; left: 16px; top: -60px; z-index: 200; padding: 12px 16px; background: var(--or); color: var(--nuit); font-weight: 700; border-radius: 10px; text-decoration: none; }
.evitement:focus { top: 12px; }

#ondes { position: fixed; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }
main, .pied { position: relative; z-index: 1; }
.cadre { width: 100%; max-width: var(--cadre); margin: 0 auto; padding: 0 var(--gout); }
.etroit { max-width: 860px; }

/* --- Boutons ------------------------------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 100px; border: 1.5px solid transparent; font: 600 1rem/1.2 var(--titre); letter-spacing: -0.01em; text-decoration: none; text-align: center; cursor: pointer; transition: transform 300ms var(--ease), background-color 200ms ease, border-color 200ms ease, color 200ms ease; }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn-petit { min-height: 44px; padding: 0 18px; font-size: 0.9375rem; }
.btn-or { background: var(--or); color: var(--nuit); }
.btn-or:hover { background: var(--or-2); }
.btn-ligne { border-color: var(--ligne-2); color: var(--tx); background: rgba(255, 255, 255, 0.04); }
.btn-ligne:hover { border-color: var(--or); color: var(--or); }
.btn-roi { background: var(--roi); color: var(--creme); }
.btn-roi:hover { background: var(--carte); }
.btn[disabled] { opacity: 0.6; cursor: progress; transform: none; }
.lien { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; text-underline-offset: 4px; }

/* --- En-tête ------------------------------------------------------------------------------------- */
.tete { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background-color 300ms ease, border-color 300ms ease, transform 400ms var(--ease); border-bottom: 1px solid transparent; }
.tete.pleine { background: rgba(10, 29, 107, 0.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom-color: var(--ligne); }
.tete-ligne { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 72px; }
.marque { display: flex; align-items: center; gap: 12px; text-decoration: none; min-height: 44px; }
.marque img { width: 128px; height: auto; }
.marque-produit { padding-left: 12px; border-left: 1px solid var(--ligne-2); font: 600 1.0625rem/1 var(--titre); color: var(--tx); letter-spacing: -0.02em; }
.menu { display: flex; align-items: center; gap: 4px; }
.menu > a:not(.btn) { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; color: var(--tx-2); text-decoration: none; font-weight: 500; font-size: 0.9688rem; border-radius: 10px; transition: color 200ms ease; }
.menu > a:not(.btn):hover { color: var(--tx); }
.menu .btn { margin-left: 6px; }
.menu-bouton { display: none; width: 48px; height: 48px; place-items: center; border: 1px solid var(--ligne-2); border-radius: 50%; background: rgba(255, 255, 255, 0.04); color: var(--tx); cursor: pointer; }
.menu-bouton svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.menu-bouton path { transition: transform 300ms var(--ease); transform-origin: 12px 12px; }
.menu-bouton[aria-expanded="true"] .l1 { transform: translateY(4px) rotate(45deg); }
.menu-bouton[aria-expanded="true"] .l2 { transform: translateY(-4px) rotate(-45deg); }
@media (max-width: 1023px) {
  .menu-bouton { display: grid; }
  .menu { position: fixed; top: 72px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 2px; padding: 12px var(--gout) 24px; background: rgba(10, 29, 107, 0.97); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--ligne); transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity 250ms ease, transform 350ms var(--ease), visibility 0s 350ms; max-height: calc(100vh - 72px); overflow-y: auto; }
  .menu.ouvert { transform: none; opacity: 1; visibility: visible; transition: opacity 250ms ease, transform 350ms var(--ease); }
  .menu > a:not(.btn) { min-height: 52px; font-size: 1.0625rem; border-bottom: 1px solid var(--ligne); border-radius: 0; padding: 0 4px; }
  .menu .btn { margin: 10px 0 0; min-height: 52px; }
  .tete.menu-ouvert { background: rgba(10, 29, 107, 0.97); }
}

/* --- Premier écran ------------------------------------------------------------------------------- */
.ouverture { padding: clamp(112px, 16vw, 168px) 0 clamp(64px, 9vw, 120px); }
.ouverture-grille { display: grid; gap: 56px; align-items: center; }
@media (min-width: 960px) { .ouverture-grille { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 64px; } }
.ouverture h1 { font-size: clamp(2.5rem, 5.6vw, 4.75rem); line-height: 1.02; }
.chapo { margin-top: 24px; font-size: clamp(1.0625rem, 1.5vw, 1.1875rem); max-width: 60ch; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.note { display: flex; gap: 10px; align-items: flex-start; margin-top: 20px; font-size: 0.9375rem; color: var(--tx-3); max-width: 52ch; }
.note svg { width: 18px; height: 18px; flex: none; margin-top: 3px; fill: none; stroke: var(--or); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }

/* Titre découpé en mots qui montent l'un après l'autre */
.mot { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.1em; margin-bottom: -0.1em; }
.mot > span { display: inline-block; transform: translateY(105%); transition: transform 900ms var(--ease); transition-delay: calc(var(--i) * 42ms + 80ms); }
.joue .mot > span { transform: none; }
.js [data-decoupe]:not(.decoupe) { opacity: 0; }
.js .entree { opacity: 0; transform: translateY(20px); transition: opacity 800ms var(--ease) var(--d, 0ms), transform 900ms var(--ease) var(--d, 0ms); }
.js .lance .entree, .js .entree.lance { opacity: 1; transform: none; }
/* Si le script ne se charge pas, tout s'affiche quand même. */
@keyframes secours { to { opacity: 1; transform: none; } }
.js:not(.js-ok) [data-decoupe], .js:not(.js-ok) .entree, .js:not(.js-ok) [data-reveal] { animation: secours 0s 2s forwards; }

/* --- Téléphone de démonstration ----------------------------------------------------------------- */
.telephone { justify-self: center; width: min(330px, 100%); }
.tel-cadre { position: relative; border-radius: 46px; padding: 10px; background: #050d33; box-shadow: 0 0 0 1px rgba(143, 174, 255, 0.22), 0 50px 90px -40px rgba(0, 0, 0, 0.8); }
.tel-ecran { position: relative; overflow: hidden; border-radius: 37px; background: #f1ebdf; color: #1f140d; aspect-ratio: 9 / 17; display: flex; flex-direction: column; font-family: var(--texte); }
.tel-barre { display: flex; align-items: center; gap: 10px; padding: 34px 16px 12px; background: #1a0f09; color: #f3ecdc; }
.tel-jeton { width: 30px; height: 30px; border-radius: 9px; background: #9a4528; flex: none; }
.tel-barre b { display: block; font-size: 0.8125rem; line-height: 1.2; }
.tel-barre small { display: block; font-size: 0.6875rem; color: #cdbb98; }
.tel-corps { flex: 1; padding: 14px 14px 0; overflow: hidden; }
.tel-titre { font: 700 1.375rem/1.1 var(--titre); letter-spacing: -0.03em; }
.tel-sous { font-size: 0.75rem; color: #5a4a3e; margin-top: 2px; }
.tel-chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 12px; }
.tel-chiffres div { background: #fff; border: 1px solid #e3d9c8; border-radius: 12px; padding: 8px 10px; }
.tel-chiffres dt { font-size: 0.625rem; color: #5a4a3e; font-weight: 600; }
.tel-chiffres dd { font: 700 1rem/1.2 var(--titre); letter-spacing: -0.02em; }
.tel-chiffres small { font-size: 0.625rem; font-weight: 500; color: #5a4a3e; }
.tel-bloc { margin-top: 12px; font-size: 0.6875rem; font-weight: 700; color: #5a4a3e; }
.tel-liste { margin-top: 6px; background: #fff; border: 1px solid #e3d9c8; border-radius: 12px; }
.tel-liste li { display: flex; justify-content: space-between; gap: 8px; align-items: center; padding: 8px 10px; font-size: 0.6875rem; border-left: 3px solid #bdb09b; }
.tel-liste li + li { border-top: 1px solid #e3d9c8; }
.tel-liste li.rouge { border-left-color: #b23a2e; }
.tel-liste li.ambre { border-left-color: #e3a820; }
.tel-liste b { color: #9a4528; font-size: 0.6875rem; white-space: nowrap; }
.tel-nav { display: flex; justify-content: space-around; padding: 12px 18px 16px; background: #1a0f09; }
.tel-nav span { width: 18px; height: 18px; border-radius: 6px; background: rgba(243, 236, 220, 0.25); }
.tel-nav span.actif { background: #9a4528; }
.tel-notifs { position: absolute; left: 8px; right: 8px; top: 30px; height: 70px; pointer-events: none; }
.tel-notifs li { position: absolute; inset: 0; display: grid; align-content: center; gap: 1px; padding: 10px 12px 10px 48px; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px -10px rgba(10, 15, 50, 0.45); font-size: 0.6875rem; line-height: 1.35; color: #3c2f25; opacity: 0; transform: translateY(-16px) scale(0.96); transition: opacity 450ms var(--ease), transform 600ms var(--ease); }
.tel-notifs li::before { content: ""; position: absolute; left: 12px; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 8px; background: #9a4528; }
.tel-notifs li b { font-size: 0.75rem; color: #1f140d; }
.tel-notifs li.vue { opacity: 1; transform: none; }
.telephone figcaption { margin-top: 14px; text-align: center; font-size: 0.8125rem; color: var(--tx-3); }

/* --- Sections ------------------------------------------------------------------------------------ */
.section { padding: clamp(80px, 10vw, 140px) 0; }
.tete-section { display: grid; gap: 18px; margin-bottom: clamp(40px, 6vw, 64px); max-width: 780px; }
.intro { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); max-width: 62ch; }
.intro.petit { font-size: 1rem; color: var(--tx-3); }

/* Corvées barrées : la ligne dorée se trace quand la ligne arrive à l'écran */
.corvees { display: grid; gap: 0 clamp(32px, 5vw, 72px); }
@media (min-width: 860px) { .corvees { grid-template-columns: 1fr 1fr; } }
.corvees > div { padding: 28px 0 30px; border-top: 1px solid var(--ligne); min-width: 0; }
.corvees dt { font: 600 clamp(1.1875rem, 1.8vw, 1.4375rem)/1.3 var(--titre); color: var(--tx); letter-spacing: -0.02em; }
.corvees dd { margin-top: 12px; }
.barre { position: relative; display: inline; background-image: linear-gradient(var(--or), var(--or)); background-repeat: no-repeat; background-position: 0 58%; background-size: 0% 2px; transition: background-size 900ms var(--ease) calc(var(--d, 0ms) + 350ms), color 600ms ease calc(var(--d, 0ms) + 500ms); }
.vu .barre { background-size: 100% 2px; color: rgba(245, 239, 230, 0.72); }

/* Bande claire */
.claire { background: var(--creme); color: var(--encre-2); }
.claire h2, .claire h3 { color: var(--encre); }
.claire :focus-visible { outline-color: var(--roi); }
.espaces { display: grid; gap: 36px 32px; }
@media (min-width: 640px) { .espaces { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .espaces { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.espaces section { padding-top: 22px; border-top: 2px solid var(--encre); min-width: 0; }
.espaces svg { width: 28px; height: 28px; fill: none; stroke: var(--roi); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.espaces h3 { margin: 16px 0 12px; }
.espaces li { position: relative; padding: 7px 0 7px 18px; font-size: 1rem; line-height: 1.5; border-bottom: 1px solid var(--encre-ligne); }
.espaces li::before { content: ""; position: absolute; left: 0; top: 16px; width: 7px; height: 7px; border-radius: 50%; background: var(--or); }

/* Mise en service : étapes reliées par une ligne qui se remplit au défilement */
.mise-grille { display: grid; gap: 48px; }
@media (min-width: 960px) { .mise-grille { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 80px; align-items: start; } .mise-tete { position: sticky; top: 120px; } }
.mise-tete { display: grid; gap: 18px; }
.etapes { position: relative; counter-reset: e; display: grid; gap: 8px; --p: 0; }
.etapes::before, .etapes::after { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; border-radius: 2px; background: var(--ligne-2); }
.etapes::after { background: var(--or); transform-origin: top; transform: scaleY(var(--p)); }
.etapes li { position: relative; display: grid; gap: 6px; padding: 8px 0 26px 72px; counter-increment: e; min-height: 44px; }
.etapes li::before { content: counter(e); position: absolute; left: 0; top: 0; z-index: 1; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: var(--nuit); border: 2px solid var(--ligne-2); font: 600 1rem/1 var(--titre); color: var(--tx); transition: border-color 400ms ease, background-color 400ms ease, color 400ms ease; }
.etapes li.atteinte::before { border-color: var(--or); background: var(--or); color: var(--nuit); }
.etapes b { font: 600 1.25rem/1.3 var(--titre); color: var(--tx); letter-spacing: -0.02em; }

/* Garanties */
.donnees-grille { display: grid; gap: 40px; }
@media (min-width: 960px) { .donnees-grille { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 80px; } .donnees-grille .tete-section { margin-bottom: 0; } }
.garanties { display: grid; gap: 0 40px; }
@media (min-width: 700px) { .garanties { grid-template-columns: 1fr 1fr; } }
.garanties li { position: relative; padding: 18px 0 18px 34px; border-top: 1px solid var(--ligne); min-width: 0; }
.garanties li::before { content: ""; position: absolute; left: 2px; top: 25px; width: 14px; height: 8px; border-left: 2.4px solid var(--or); border-bottom: 2.4px solid var(--or); transform: rotate(-45deg); }
.garanties b { color: var(--tx); font-weight: 700; }

/* Offres */
.offres { display: grid; background: #fff; border: 1px solid var(--encre-ligne); border-radius: var(--r); overflow: hidden; }
@media (min-width: 900px) { .offres { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.offre { padding: clamp(24px, 3vw, 36px); min-width: 0; display: grid; align-content: start; gap: 12px; }
.offre + .offre { border-top: 1px solid var(--encre-ligne); }
@media (min-width: 900px) { .offre + .offre { border-top: 0; border-left: 1px solid var(--encre-ligne); } }
.offre h3 { font-size: 1.5rem; }
.prix { display: grid; gap: 2px; }
.prix b { font: 600 clamp(1.75rem, 3vw, 2.25rem)/1.1 var(--titre); color: var(--encre); letter-spacing: -0.03em; }
.prix small { font-size: 0.9375rem; color: var(--encre-2); }
.offre-resume { font-weight: 700; color: var(--encre); }
.offre ul { display: grid; gap: 0; }
.offre li { position: relative; padding: 9px 0 9px 28px; border-top: 1px solid var(--encre-ligne); font-size: 0.9688rem; line-height: 1.45; }
.offre li::before { content: ""; position: absolute; left: 3px; top: 15px; width: 12px; height: 7px; border-left: 2px solid var(--roi); border-bottom: 2px solid var(--roi); transform: rotate(-45deg); }
.apres-offres { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 32px; }
.apres-offres .lien { color: var(--encre); }

/* Questions */
.faq { margin-top: 36px; border-top: 1px solid var(--ligne); }
.faq details { border-bottom: 1px solid var(--ligne); }
.faq summary { position: relative; display: flex; align-items: center; min-height: 64px; padding: 16px 48px 16px 0; font: 600 1.125rem/1.4 var(--titre); color: var(--tx); letter-spacing: -0.015em; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 2px; border-radius: 2px; background: var(--or); transition: transform 350ms var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0deg); }
.faq details > div { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 400ms var(--ease); }
.faq details > div > p { overflow: hidden; }
.faq details.anime-ouvert > div { grid-template-rows: 1fr; }
.faq details > div > p { padding-bottom: 0; transition: padding 400ms var(--ease); max-width: 68ch; }
.faq details.anime-ouvert > div > p { padding-bottom: 22px; }

/* Essai et rappel */
.essai-grille { display: grid; gap: 40px; }
@media (min-width: 1024px) { .essai-grille { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 72px; align-items: start; } .essai-texte { position: sticky; top: 120px; } }
.essai-texte { display: grid; gap: 20px; }
.coches { display: grid; gap: 10px; }
.coches li { position: relative; padding-left: 30px; color: var(--tx); }
.coches li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 13px; height: 7px; border-left: 2.4px solid var(--or); border-bottom: 2.4px solid var(--or); transform: rotate(-45deg); }
.contact-direct { font-size: 0.9375rem; color: var(--tx-3); }
.contact-direct a { color: var(--tx); font-weight: 700; text-underline-offset: 3px; }
.panneau { background: linear-gradient(160deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.02)); border: 1px solid var(--ligne-2); border-radius: var(--r); padding: clamp(18px, 3vw, 32px); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); min-width: 0; }
.onglets { display: flex; gap: 4px; padding: 4px; margin-bottom: 24px; border-radius: 100px; background: rgba(0, 0, 0, 0.18); border: 1px solid var(--ligne); }
.onglets button { flex: 1; min-height: 46px; border: 0; border-radius: 100px; background: transparent; color: var(--tx-2); font: 600 0.9688rem/1.2 var(--titre); cursor: pointer; transition: background-color 250ms ease, color 250ms ease; }
.onglets button[aria-selected="true"] { background: var(--creme); color: var(--nuit); }
.onglets button:hover:not([aria-selected="true"]) { color: var(--tx); }
.formulaire { display: grid; gap: 20px; }
.champs { display: grid; gap: 16px; }
@media (min-width: 600px) { .champs { grid-template-columns: 1fr 1fr; } .champ.large { grid-column: 1 / -1; } }
.champ { display: grid; gap: 7px; min-width: 0; }
.champ label { font-weight: 600; font-size: 0.9375rem; color: var(--tx); }
.facultatif { font-weight: 400; color: var(--tx-3); }
.champ input, .champ textarea { width: 100%; min-height: 50px; padding: 11px 14px; border: 1.5px solid var(--ligne-2); border-radius: 12px; background: rgba(5, 13, 51, 0.45); color: var(--tx); transition: border-color 200ms ease, background-color 200ms ease; }
.champ input::placeholder, .champ textarea::placeholder { color: rgba(245, 239, 230, 0.5); }
.champ input:hover, .champ textarea:hover { border-color: rgba(245, 239, 230, 0.42); }
.champ input:focus, .champ textarea:focus { outline: none; border-color: var(--or); background: rgba(5, 13, 51, 0.65); }
.champ input:focus-visible, .champ textarea:focus-visible { box-shadow: 0 0 0 3px rgba(245, 166, 35, 0.35); }
.champ input[aria-invalid="true"] { border-color: #FF8A7A; }
.champ textarea { min-height: 110px; resize: vertical; }
.champ small { font-size: 0.8438rem; color: var(--tx-3); }
.mdp { position: relative; }
.mdp input { padding-right: 100px; }
.voir { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); min-height: 44px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; color: var(--or); font-weight: 700; font-size: 0.875rem; cursor: pointer; }
.voir:hover { background: rgba(245, 166, 35, 0.12); }
.case { display: flex; gap: 12px; align-items: flex-start; font-size: 0.9375rem; cursor: pointer; }
.case input { width: 22px; height: 22px; margin: 2px 0 0; flex: none; accent-color: var(--or); cursor: pointer; }
.piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.retour:empty { display: none; }
.alerte { padding: 12px 16px; border-radius: 12px; font-size: 0.9375rem; line-height: 1.5; }
.alerte.erreur { background: rgba(255, 138, 122, 0.14); border: 1px solid rgba(255, 138, 122, 0.55); color: #FFD9D3; }
.alerte.ok { background: rgba(245, 166, 35, 0.12); border: 1px solid rgba(245, 166, 35, 0.5); color: var(--tx); }
.formulaire .btn { justify-self: start; }
@media (max-width: 599px) { .formulaire .btn { justify-self: stretch; } }
.reussite { display: grid; gap: 18px; outline: none; animation: apparait 700ms var(--ease); }
.reussite h3 { font-size: 1.75rem; }
.reussite dl { display: grid; gap: 12px; padding: 18px; border-radius: 16px; background: rgba(5, 13, 51, 0.45); border: 1px solid var(--ligne-2); }
.reussite dt { font-size: 0.8438rem; color: var(--tx-3); }
.reussite dd { font-weight: 700; color: var(--tx); overflow-wrap: anywhere; }
@keyframes apparait { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* Pied de page */
.pied { padding: 48px 0 56px; border-top: 1px solid var(--ligne); background: rgba(5, 13, 51, 0.35); }
.pied-grille { display: grid; gap: 24px; align-items: start; }
@media (min-width: 860px) { .pied-grille { grid-template-columns: 1fr auto; } .pied-contact { grid-column: 1 / -1; } }
.pied img { width: 123px; height: auto; margin-bottom: 12px; }
.pied p { font-size: 0.9375rem; color: var(--tx-3); }
.pied-liens { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.pied-liens a { display: inline-flex; align-items: center; min-height: 44px; color: var(--tx-2); text-underline-offset: 4px; }
.pied-liens a:hover { color: var(--tx); }
.pied-contact a { color: var(--tx); font-weight: 600; }

/* Apparitions au défilement (une seule fois) */
.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 800ms var(--ease) var(--d, 0ms), transform 900ms var(--ease) var(--d, 0ms); }
.js [data-reveal].vu { opacity: 1; transform: none; }

@media (max-width: 479px) {
  body { font-size: 16px; }
  .actions .btn { flex: 1 1 100%; }
  .marque img { width: 112px; }
  .marque-produit { font-size: 1rem; padding-left: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; transition-delay: 0ms !important; animation-duration: 0.01ms !important; animation-delay: 0ms !important; }
  .mot > span { transform: none; }
  .js [data-reveal], .js .entree, .js [data-decoupe]:not(.decoupe) { opacity: 1; transform: none; }
  .barre { background-size: 100% 2px; }
}
