/* Save the Date Studio : feuille de style commune à toutes les pages */

/* Bodoni Moda : taille optique fixe, sinon les delies sont trop fins en grand */
html, html * { font-variation-settings:"opsz" 14; font-optical-sizing:none; }

:root {
  --creme:#fdfbf7; --blanc:#ffffff;
  --bordeaux:#4f6b5a; --bordeaux-f:#3b5245;
  --or:#c8a96a; --or-clair:#e9dcc0; --or-texte:#8a6d32;
  --peche:#fcf2f0; --peche-f:#f3d9d4;
  --encre:#2e3330; --gris:#6f746f;
  --titre:"Bodoni Moda", Didot, "Bodoni 72", "Times New Roman", serif;
  --texte:Jost, Futura, "Century Gothic", "Segoe UI", sans-serif;
  --max:1160px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--creme); color:var(--encre); font-family:var(--texte); font-size:17px; line-height:1.55;
  font-variant-numeric:lining-nums; font-feature-settings:"lnum" 1; font-optical-sizing:auto; overflow-x:hidden; }
img, svg { display:block; }
a { color:var(--bordeaux); }
p { margin:0; }
.wrap { max-width:var(--max); margin:0 auto; padding:0 16px; }
@media (min-width:720px) { .wrap { padding:0 32px; } }
:focus-visible { outline:2px solid var(--bordeaux); outline-offset:3px; }

/* ---------- logo ---------- */
.logo { display:inline-flex; text-decoration:none; }
.logo-img { height:104px; width:auto; }
@media (min-width:720px) { .logo-img { height:118px; } }
.sceau { width:28px; height:auto; }

/* ---------- en-tête ---------- */
.barre { background:rgba(253,251,247,.96); border-bottom:1px solid var(--or); }
.barre .wrap { display:flex; flex-direction:column; align-items:center; gap:2px; padding-top:12px; padding-bottom:2px; }
.barre nav { display:flex; flex-wrap:wrap; justify-content:center; gap:0; }
.barre nav a { position:relative; display:inline-flex; align-items:center; min-height:48px; padding:0 5px; font-size:11.5px; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--encre); text-decoration:none; }
.barre nav a:hover { color:var(--bordeaux); }
.barre nav a.cmd { color:var(--bordeaux); font-weight:600; text-decoration:underline; text-decoration-color:var(--or); text-decoration-thickness:1px; text-underline-offset:7px; }
/* page courante : texte vert et trait sous le lien */
.barre nav a[aria-current] { color:var(--bordeaux); font-weight:600; text-decoration:none; }
.barre nav a[aria-current]::after { content:""; position:absolute; left:5px; right:5px; bottom:9px; height:2px; background:var(--bordeaux); }
@media (min-width:420px) { .barre nav a { padding:0 8px; font-size:12px; letter-spacing:.12em; } .barre nav a[aria-current]::after { left:8px; right:8px; } }
@media (min-width:720px) {
  html { scroll-padding-top:150px; }
  .barre { position:sticky; top:0; z-index:20; }
  .barre .wrap { flex-direction:row; justify-content:space-between; padding-top:12px; padding-bottom:12px; }
  .barre nav { gap:6px; flex-wrap:nowrap; }
  .barre nav a { padding:0 10px; font-size:13px; letter-spacing:.18em; }
  .barre nav a[aria-current]::after { left:10px; right:10px; }
  .barre nav a:last-child { padding-right:0; }
  .barre nav a:last-child[aria-current]::after { right:0; }
}

/* ---------- boutons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 28px; border-radius:2px; border:1.5px solid var(--bordeaux);
  background:var(--bordeaux); color:var(--creme); font-family:var(--texte); font-size:15px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.btn:hover { background:var(--bordeaux-f); border-color:var(--bordeaux-f); }
.btn.contour { background:transparent; color:var(--bordeaux); }
.btn.contour:hover { background:var(--bordeaux); color:var(--creme); border-color:var(--bordeaux); }
.btn:disabled { opacity:.55; cursor:default; }

/* ---------- sections et titres ---------- */
section { padding:64px 0; }
.bande { background:var(--peche); }
.filet-or { border-top:1px solid var(--or); }
.filet-clair { border-top:1px solid var(--or-clair); }
.surtitre { font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--or-texte); margin:0 0 12px; }
h1, h2, h3 { font-family:var(--titre); font-weight:400; line-height:1.12; margin:0; color:var(--bordeaux); }
h2 { font-size:28px; }
.tete { margin-bottom:36px; }
.tete h2::after { content:""; display:block; width:48px; height:2px; background:var(--bordeaux); margin-top:20px; }
.intro { margin:20px 0 0; max-width:36em; }
.sur-creme .intro { color:var(--gris); }
@media (min-width:720px) {
  section { padding:96px 0; }
  h2 { font-size:40px; }
  .tete { margin-bottom:52px; }
  .tete.partagee { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:end; }
  .tete.partagee .intro { margin:0 0 4px; }
}

/* ---------- accroche (accueil) ---------- */
.accroche { background:var(--peche); padding:44px 0 60px; overflow:hidden; }
.accroche .wrap { display:grid; gap:44px; align-items:center; }
.accroche h1 { font-size:clamp(38px, 10vw, 64px); line-height:1.06; letter-spacing:-.01em; }
.accroche h1 em { font-style:italic; }
.accroche .sous { font-size:18px; margin:24px 0 0; max-width:31em; }
.boutons { display:flex; flex-wrap:wrap; gap:12px; margin:32px 0 0; }
.boutons .btn { flex:1 1 220px; }
.petite { margin:22px 0 0; font-size:15px; font-weight:500; letter-spacing:.04em; display:flex; align-items:center; gap:14px; }
.petite::before { content:""; width:32px; height:1px; background:var(--bordeaux); flex:0 0 auto; }
.scene { position:relative; display:flex; justify-content:center; padding:10px 0 6px; }
.scene .papier { position:absolute; top:4%; left:50%; width:min(70%, 280px); aspect-ratio:3/4; background:var(--creme); border:1px solid var(--or); border-radius:2px;
  transform:translateX(-66%) rotate(-6deg); }
@media (min-width:900px) { .scene .papier { transform:translateX(-82%) rotate(-6deg); } }
.scene .papier::after { content:""; position:absolute; inset:10px; border:1px solid var(--or-clair); }
.scene .papier .sceau { position:absolute; left:-20px; top:-20px; width:62px; height:auto; transform:rotate(-8deg); }
@media (min-width:900px) {
  .accroche { padding:80px 0 96px; }
  .accroche .wrap { grid-template-columns:1.2fr .8fr; gap:56px; }
  .boutons .btn { flex:0 0 auto; }
}

/* ---------- en-tête des pages intérieures ---------- */
.entree { background:var(--peche); padding:44px 0 52px; }
.entree h1 { font-size:clamp(36px, 9vw, 58px); line-height:1.08; letter-spacing:-.01em; }
.entree h1::after { content:""; display:block; width:48px; height:2px; background:var(--bordeaux); margin-top:22px; }
.entree .sous { font-size:18px; margin:22px 0 0; max-width:34em; }
.entree .prix { margin:22px 0 0; }
.entree .boutons { margin-top:28px; }
@media (min-width:720px) { .entree { padding:72px 0 80px; } }

/* ---------- faux téléphone ---------- */
.tel { position:relative; width:240px; aspect-ratio:9/18.5; border-radius:36px; padding:9px; background:var(--encre); box-shadow:inset 0 0 0 1px #4a3d40; }
.tel.petit { width:190px; border-radius:30px; padding:7px; }
.ecran { position:relative; height:100%; border-radius:28px; overflow:hidden; display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 14px 16px; }
.tel.petit .ecran { border-radius:23px; padding:32px 12px 12px; }
.encoche { position:absolute; top:9px; left:50%; width:66px; height:18px; margin-left:-33px; border-radius:12px; background:var(--encre); }
.tel.petit .encoche { width:54px; margin-left:-27px; height:15px; top:7px; }
.ecran .cadre { position:absolute; inset:24px 9px 9px; border:1px solid currentColor; opacity:.3; border-radius:3px; pointer-events:none; }
.m-orne { display:block; width:78%; max-width:150px; height:auto; margin:4px auto 6px; }
.m-sur { font-size:9px; letter-spacing:.3em; text-transform:uppercase; margin:2px 0 4px; opacity:.85; }
.m-noms { font-family:var(--titre); font-size:28px; line-height:1.05; margin:2px 0 6px; }
.tel.petit .m-noms { font-size:23px; }
.m-date { font-family:var(--titre); font-style:italic; font-size:13.5px; margin:0 0 10px; }
.m-cd { display:flex; gap:5px; justify-content:center; margin:6px 0 12px; }
.m-cd span { min-width:40px; padding:5px 3px; border-radius:2px; background:rgba(255,255,255,.6); border:1px solid rgba(200,169,106,.6); font-size:8px; letter-spacing:.14em; text-transform:uppercase; }
.m-cd b { display:block; font-family:var(--titre); font-size:16px; font-weight:500; letter-spacing:0; line-height:1.15; }
.m-btn { display:inline-block; margin-top:auto; padding:8px 18px; border-radius:2px; font-size:9px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.m-lignes { width:76%; margin:2px auto 0; }
.m-lignes i { display:block; height:4px; border-radius:1px; background:currentColor; opacity:.16; margin:6px auto; }
.m-lignes i:nth-child(2) { width:80%; } .m-lignes i:nth-child(3) { width:60%; }

.ecran.mariage { background:var(--creme); color:var(--bordeaux); }
.ecran.mariage .m-cd span { background:var(--peche); }
.ecran.mariage .m-btn { background:var(--bordeaux); color:var(--creme); }
.ecran.bar-mitsva { background:#1f2a44; color:#fdfbf7; }
.ecran.bar-mitsva .m-cd span { background:rgba(253,251,247,.08); }
.ecran.bar-mitsva .m-btn { background:var(--or); color:#1f2a44; }
.ecran.naissance { background:var(--creme); color:#4c6f87; }
.ecran.naissance .m-cd span { background:#fdf6f4; }
.ecran.naissance .m-btn { background:#4c6f87; color:var(--creme); }

/* ---------- étapes ---------- */
.etapes { display:grid; gap:36px; list-style:none; margin:0; padding:0; }
.etape { position:relative; }
.etape .num { display:flex; align-items:center; gap:14px; font-family:var(--titre); font-style:italic; font-size:44px; line-height:1; color:var(--or); margin:0 0 14px; }
.etape .num::after { content:""; flex:0 0 40px; height:1px; background:var(--or); }
.etape h3 { position:relative; font-size:26px; margin:0 0 10px; }
.etape p { max-width:30em; }
@media (min-width:860px) { .etapes { grid-template-columns:repeat(3, 1fr); gap:48px; } }
@media (min-width:640px) { .etapes.quatre { grid-template-columns:repeat(2, 1fr); gap:40px; } }
@media (min-width:1040px) { .etapes.quatre { grid-template-columns:repeat(4, 1fr); gap:36px; } }

/* ---------- ce qui est compris ---------- */
.compris { display:grid; list-style:none; margin:0; padding:0; column-gap:64px; }
.compris li { display:grid; grid-template-columns:48px 1fr; gap:0 14px; padding:22px 0; border-bottom:1px solid var(--or-clair); }
.compris li:first-child { border-top:1px solid var(--or-clair); }
.compris .n { font-family:var(--titre); font-style:italic; font-size:26px; line-height:1.1; color:var(--or); }
.compris b { display:block; font-weight:600; font-size:17px; line-height:1.4; }
.compris span.t { display:block; color:var(--gris); margin-top:3px; }
@media (min-width:760px) { .compris { grid-template-columns:1fr 1fr; } .compris li:nth-child(2) { border-top:1px solid var(--or-clair); } }

/* ---------- exemples ---------- */
.exemples { display:grid; gap:24px; }
.ex { background:var(--blanc); border:1px solid var(--or-clair); border-radius:2px; display:flex; flex-direction:column; }
.ex .vitre { display:flex; justify-content:center; padding:30px 16px 26px; border-bottom:1px solid var(--or-clair); }
.ex.mariage .vitre { background:var(--peche); }
.ex.bar-mitsva .vitre { background:var(--or-clair); }
.ex.naissance .vitre { background:var(--creme); }
.ex .corps { padding:22px 22px 18px; display:flex; flex-direction:column; flex:1; }
.ex h2, .ex h3 { font-size:28px; }
.ex p { margin:8px 0 14px; color:var(--gris); }
.lien { margin-top:auto; align-self:flex-start; display:inline-flex; align-items:center; min-height:48px; font-size:14px; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
  color:var(--bordeaux); text-decoration:underline; text-decoration-color:var(--or); text-decoration-thickness:1px; text-underline-offset:7px; }
.lien:hover { text-decoration-color:var(--bordeaux); }
@media (min-width:900px) { .exemples { grid-template-columns:repeat(3, 1fr); gap:28px; } }

/* aperçus de l'accueil : rangée qui glisse sur téléphone, grille dès 720 px */
.apercus { display:flex; gap:16px; list-style:none; margin:0 -16px; padding:4px 16px 12px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.apercus::-webkit-scrollbar { display:none; }
.apercus li { flex:0 0 auto; scroll-snap-align:center; }
.apercus a { display:flex; flex-direction:column; align-items:center; gap:16px; text-decoration:none; color:var(--bordeaux); }
.apercus .nom { font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; text-decoration:underline; text-decoration-color:var(--or); text-underline-offset:7px; min-height:32px; display:flex; align-items:center; }
.apercus a:hover .nom { text-decoration-color:var(--bordeaux); }
.glisse { font-size:14px; color:var(--gris); margin:8px 0 0; }
.tous { margin:28px 0 0; }
@media (min-width:720px) {
  .apercus { display:grid; grid-template-columns:repeat(3, 1fr); justify-items:center; gap:24px; margin:0; padding:0; overflow:visible; }
  .glisse { display:none; }
}

/* ---------- formules ---------- */
.tarifs { display:grid; gap:20px; align-items:stretch; }
.formule { position:relative; border:1px solid rgba(79,107,90,.28); border-radius:2px; padding:28px 24px 26px; display:flex; flex-direction:column; }
.formule.avant { background:var(--blanc); border-color:var(--blanc); border-top:3px solid var(--bordeaux); }
.formule .sceau { margin:0 0 16px; }
.formule .reco { font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--bordeaux); margin:0 0 6px; }
.formule h3 { font-size:30px; }
.prix { font-family:var(--titre); font-size:52px; line-height:1; margin:14px 0 4px; color:var(--encre); }
.prix small { font-family:var(--texte); font-size:14px; font-weight:500; letter-spacing:.14em; margin-left:6px; }
.formule .resume { margin:10px 0 18px; }
.formule ul, .liste-trait { list-style:none; margin:0 0 24px; padding:18px 0 0; border-top:1px solid rgba(79,107,90,.22); }
.formule.avant ul { border-top-color:var(--or-clair); }
.formule li, .liste-trait li { position:relative; padding-left:26px; margin:0 0 10px; }
.formule li::before, .liste-trait li::before { content:""; position:absolute; left:0; top:.78em; width:14px; height:1px; background:var(--bordeaux); }
.formule .btn { margin-top:auto; width:100%; }
.formule .lien { margin-top:auto; }
.note-prix { margin:32px 0 0; max-width:44em; font-size:15.5px; }
@media (min-width:760px) { .tarifs { grid-template-columns:repeat(2, 1fr); gap:24px; max-width:860px; } }

/* comparatif en deux colonnes */
.comparatif { display:grid; gap:20px; max-width:860px; }
.comparatif article { background:var(--blanc); border:1px solid var(--or-clair); border-radius:2px; padding:24px 22px 8px; }
.comparatif h3 { font-size:26px; margin:0 0 6px; }
.comparatif dl { margin:0; }
.comparatif dt { font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--or-texte); margin:18px 0 4px; }
.comparatif dd { margin:0; padding:0 0 16px; border-bottom:1px solid var(--or-clair); }
.comparatif dd:last-child { border-bottom:0; }
@media (min-width:760px) { .comparatif { grid-template-columns:repeat(2, 1fr); gap:24px; } }

/* ---------- page d'une formule ---------- */
.deux-col { display:grid; gap:36px; }
.deux-col .liste-trait { margin-bottom:0; }
.encadre { background:var(--blanc); border:1px solid var(--or-clair); border-radius:2px; padding:22px 22px 20px; font-size:15.5px; }
.encadre p + p { margin-top:10px; }
@media (min-width:860px) { .deux-col { grid-template-columns:1.1fr .9fr; gap:64px; align-items:start; } }

/* ---------- commander : deux voies ---------- */
.voies { display:grid; gap:20px; }
.voie { display:flex; flex-direction:column; background:var(--blanc); border:1px solid var(--or-clair); border-top:3px solid var(--bordeaux); border-radius:2px; padding:28px 24px 22px; text-decoration:none; color:var(--encre); transition:border-color .2s, box-shadow .2s; }
.voie:hover { border-color:var(--or); border-top-color:var(--bordeaux-f); box-shadow:0 10px 30px rgba(79,107,90,.10); }
.voie h2 { font-size:30px; }
.voie h2::after { display:none; }
.voie .prix { font-size:40px; }
.voie p.t { margin:12px 0 18px; color:var(--gris); }
.voie .lien { margin-top:auto; }
@media (min-width:760px) { .voies { grid-template-columns:repeat(2, 1fr); gap:24px; } .voie { padding:36px 32px 28px; } .voie h2 { font-size:34px; } }

/* ---------- questions ---------- */
.faq-grille { display:grid; gap:8px; }
.faq details { border-bottom:1px solid var(--or-clair); }
.faq details:first-child { border-top:1px solid var(--or-clair); }
.faq summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:64px; padding:18px 0; cursor:pointer; font-family:var(--titre); font-size:22px; line-height:1.3; color:var(--encre); }
.faq summary::-webkit-details-marker { display:none; }
.faq summary svg { width:22px; height:22px; flex:0 0 auto; fill:none; stroke:var(--bordeaux); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
.faq details[open] summary svg { transform:rotate(180deg); }
.faq summary:hover { color:var(--bordeaux); }
.faq .rep { padding:0 40px 22px 0; color:var(--gris); }
.faq .rep p + p { margin-top:8px; }
@media (min-width:900px) {
  .faq-grille { grid-template-columns:.8fr 1.2fr; gap:64px; align-items:start; }
  .faq-grille .tete { position:sticky; top:170px; margin-bottom:0; }
}

/* ---------- formulaires ---------- */
.cmd-grille { display:grid; gap:8px; }
@media (min-width:960px) { .cmd-grille { grid-template-columns:.8fr 1.2fr; gap:64px; align-items:start; } .cmd-grille .tete { margin-bottom:0; } }
.cmd-grille .coord { margin:28px 0 0; padding:18px 0 0; border-top:1px solid var(--or-clair); font-size:15.5px; color:var(--gris); max-width:26em; }
form { background:var(--blanc); border:1px solid var(--or-clair); border-radius:2px; padding:8px 18px 26px; }
.grille { display:grid; gap:0 18px; }
@media (min-width:640px) { form { padding:14px 32px 32px; } .grille { grid-template-columns:1fr 1fr; } .grille .large { grid-column:1 / -1; } }
label, .legende { display:block; font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--encre); margin:22px 0 8px; }
label small, .legende small { font-weight:400; color:var(--gris); letter-spacing:.02em; text-transform:none; font-size:13.5px; }
input[type=text], input[type=email], input[type=tel], input[type=date], input[type=time], select, textarea { display:block; width:100%; min-height:52px; font-family:var(--texte); font-size:17px; color:var(--encre); background:var(--blanc); border:1px solid var(--gris); border-radius:2px; padding:10px 14px; }
input[type=date], input[type=time] { -webkit-appearance:none; appearance:none; line-height:1.4; }
input[type=date]::-webkit-date-and-time-value, input[type=time]::-webkit-date-and-time-value { text-align:left; }
input::placeholder, textarea::placeholder { color:#a99f9f; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--bordeaux); box-shadow:0 0 0 1px var(--bordeaux); }
select { appearance:none; -webkit-appearance:none; padding-right:44px; background-repeat:no-repeat; background-position:right 14px center; background-size:18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f6b5a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); }
textarea { min-height:130px; resize:vertical; line-height:1.5; }
textarea.court { min-height:96px; }
fieldset { border:0; margin:0; padding:0; min-width:0; }
.vh { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; margin:0; padding:0; }
.aide { font-size:14px; color:var(--gris); margin:6px 0 0; }
.choix { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.choix label { margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:56px; padding:8px 10px; border:1px solid var(--gris); border-radius:2px; background:var(--blanc); cursor:pointer;
  font-size:15.5px; font-weight:500; letter-spacing:.02em; text-transform:none; line-height:1.25; }
.choix label small { display:block; font-size:13.5px; }
.choix input, .modele input { position:absolute; opacity:0; width:1px; height:1px; }
.choix label:has(input:checked) { background:var(--bordeaux); border-color:var(--bordeaux); color:var(--creme); }
.choix label:has(input:checked) small { color:var(--or-clair); }
.choix label:has(input:focus-visible) { outline:2px solid var(--bordeaux); outline-offset:2px; }
@media (min-width:640px) { .choix { grid-template-columns:repeat(4, 1fr); } }
.piege { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.envoi { margin-top:28px; }
.envoi .btn { width:100%; }
.rgpd { font-size:14px; color:var(--gris); margin:14px 0 0; }
.erreur { display:none; margin:14px 0 0; padding:12px 14px; border-left:3px solid var(--bordeaux); background:#fdf6f4; color:var(--bordeaux-f); font-size:15.5px; }
.merci { display:none; text-align:center; background:var(--blanc); border:1px solid var(--or-clair); border-top:3px solid var(--bordeaux); border-radius:2px; padding:44px 22px; }
.merci h3 { font-size:32px; }
.merci p { color:var(--gris); margin:10px 0 0; }

/* formulaire détaillé (Essentiel) : un bloc par sujet */
.detaille { padding-top:4px; }
.detaille fieldset.bloc { padding:22px 0 26px; border-bottom:1px solid var(--or-clair); }
.detaille fieldset.bloc:last-of-type { border-bottom:0; }
.detaille legend.titre-bloc { display:block; width:100%; padding:0; margin:0; font-family:var(--titre); font-size:26px; line-height:1.2; color:var(--bordeaux); }
.detaille .num-bloc { display:block; font-family:var(--texte); font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--or-texte); margin:0 0 6px; }
.form-seul { max-width:780px; }
.modeles { display:grid; gap:10px; }
.modele { position:relative; display:flex; align-items:stretch; border:1px solid var(--gris); border-radius:2px; background:var(--blanc); }
.modele label { flex:1; display:flex; align-items:center; gap:12px; margin:0; min-height:56px; padding:8px 12px; cursor:pointer; font-size:15.5px; font-weight:500; letter-spacing:.02em; text-transform:none; line-height:1.25; }
.modele .pastille { flex:0 0 auto; width:26px; height:26px; border-radius:50%; border:1px solid rgba(46,51,48,.25); }
.modele .voir { display:flex; align-items:center; padding:0 14px; min-height:48px; border-left:1px solid var(--or-clair); font-size:12.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--bordeaux); text-decoration:underline; text-decoration-color:var(--or); text-underline-offset:5px; }
.modele:has(input:checked) { border-color:var(--bordeaux); box-shadow:0 0 0 1px var(--bordeaux); background:var(--peche); }
.modele:has(input:checked) label { font-weight:600; color:var(--bordeaux); }
.modele:has(input:focus-visible) { outline:2px solid var(--bordeaux); outline-offset:2px; }
.programme { display:grid; gap:10px; }
.programme .ligne { display:grid; grid-template-columns:118px 1fr; gap:10px; }
.case { display:flex; align-items:flex-start; gap:12px; margin:20px 0 0; font-size:16px; font-weight:400; letter-spacing:0; text-transform:none; line-height:1.4; cursor:pointer; }
.case input { flex:0 0 auto; width:22px; height:22px; margin:1px 0 0; accent-color:var(--bordeaux); }
.second { margin:22px 0 0; border:1px solid var(--or-clair); border-radius:2px; background:var(--creme); }
.second summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:56px; padding:10px 16px; cursor:pointer; font-weight:500; color:var(--bordeaux); }
.second summary::-webkit-details-marker { display:none; }
.second summary svg { width:20px; height:20px; flex:0 0 auto; fill:none; stroke:var(--bordeaux); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s; }
.second[open] summary svg { transform:rotate(180deg); }
.second .dedans { padding:0 16px 20px; }

.fin { display:flex; align-items:center; justify-content:center; gap:18px; margin:72px auto 0; max-width:320px; }
.fin::before, .fin::after { content:""; flex:1; height:1px; background:var(--or); }
.fin .sceau { width:40px; height:auto; }

/* appel en bas de page */
.appel { text-align:center; }
.appel h2 { font-size:30px; }
.appel p { margin:14px auto 0; max-width:32em; color:var(--gris); }
.appel .boutons { justify-content:center; }
@media (min-width:720px) { .appel h2 { font-size:38px; } }

/* ---------- pied de page ---------- */
footer { background:var(--peche); color:var(--encre); padding:52px 0 44px; text-align:center; font-size:15.5px; border-top:1px solid var(--or); }
footer .logo { margin:0 auto 22px; }
footer .logo-img { height:130px; }
footer p { margin:4px 0; }
footer a { color:var(--bordeaux); text-decoration-color:var(--or); text-underline-offset:5px; }
footer .liens { display:flex; flex-wrap:wrap; justify-content:center; gap:0 22px; }
footer .liens a { display:inline-flex; align-items:center; min-height:48px; }
footer .filet { width:48px; height:1px; background:var(--or); margin:20px auto; border:0; }

/* apparition douce au défilement */
.js .monte { opacity:0; transform:translateY(12px); transition:opacity .7s ease, transform .7s ease; }
.js .monte.vu { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .js .monte { opacity:1; transform:none; transition:none; } }
