:root{--ink:#18332f;--muted:#61736f;--brand:#176b5b;--brand-dark:#0e4d42;--accent:#d9a85d;--surface:#fff;--canvas:#f3f7f5;--line:#dbe6e2;--danger:#a62b2b;--success:#176b5b;--warning:#916314;--radius:.75rem;--shadow:0 1rem 3rem rgb(19 60 52/.1);--container:75rem;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;--font-display:Georgia,'Times New Roman',serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:5rem}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font:1rem/1.6 var(--font-sans)}a{color:var(--brand);text-decoration:none;font-weight:600}img{max-width:100%;height:auto}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;transform:translateY(-150%);background:var(--ink);color:#fff;padding:.75rem 1rem}.skip-link:focus{transform:none}.container{width:min(var(--container),calc(100% - 2rem));margin-inline:auto}.section{padding:var(--space-8) 0}.brand{font:700 1.55rem var(--font-display);color:var(--ink);text-decoration:none}.brand span{color:var(--brand)}.brand--light,.brand--light span{color:#fff}.site-header{min-height:5rem;padding:1rem max(1rem,calc((100% - var(--container))/2));display:flex;align-items:center;justify-content:space-between;gap:2rem;background:rgb(255 255 255/.92);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.main-nav{display:flex;align-items:center;gap:1.5rem}.main-nav a{text-decoration:none;color:var(--ink);font-weight:600}.nav-toggle{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.78rem 1.15rem;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.button:hover{background:var(--brand-dark)}.button--ghost{background:transparent;color:var(--brand)}.button--small{padding:.5rem .85rem;font-size:.9rem}.button--danger{background:var(--danger);border-color:var(--danger)}.hero{padding:clamp(4rem,10vw,8rem) 0;background:linear-gradient(145deg,#fff 30%,#deeee9)}.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,8vw,7rem);align-items:center}.hero h1{font:700 clamp(2.7rem,7vw,5.6rem)/.98 var(--font-display);margin:.4rem 0 1.5rem;letter-spacing:-.04em}.lead{font-size:clamp(1.1rem,2vw,1.35rem);color:var(--muted);max-width:42rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.78rem;color:var(--brand)}.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.hero__visual{aspect-ratio:1;border-radius:48% 52% 58% 42%;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#59a895);box-shadow:var(--shadow);color:#fff;font:700 clamp(3rem,10vw,7rem) var(--font-display)}.prose{max-width:48rem;font-size:1.1rem}.prose h2{font:700 2rem var(--font-display)}.site-footer{background:var(--ink);color:#dce9e6;padding:3rem max(1rem,calc((100% - var(--container))/2));display:flex;justify-content:space-between;gap:2rem}.site-footer nav{display:grid;gap:.5rem}.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5);box-shadow:0 .3rem 1rem rgb(19 60 52/.04)}.grid{display:grid;gap:1rem}.grid--metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric__value{font:700 2rem var(--font-display)}.metric__label{color:var(--muted)}.badge{display:inline-flex;padding:.2rem .55rem;border-radius:999px;background:#e2f0ec;color:var(--brand-dark);font-size:.78rem;font-weight:700}.alert{padding:1rem;border-left:4px solid;border-radius:.3rem;background:#fff;margin:1rem 0}.alert--success{border-color:var(--success)}.alert--error{border-color:var(--danger);color:var(--danger)}.alert--warning{border-color:var(--warning)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:grid;gap:.35rem}.field--wide{grid-column:1/-1}.field label{font-weight:700}.field input,.field textarea,.field select,.topbar input{width:100%;padding:.72rem;border:1px solid #afc3bd;border-radius:.45rem;background:#fff;color:var(--ink)}.field textarea{min-height:8rem;resize:vertical}.help{color:var(--muted);font-size:.85rem}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pagination{display:flex;gap:.4rem;list-style:none;padding:0}.pagination a{display:grid;place-items:center;min-width:2.5rem;height:2.5rem;border:1px solid var(--line);border-radius:.4rem;background:#fff}.empty-state{text-align:center;padding:3rem;border:2px dashed var(--line);border-radius:var(--radius);color:var(--muted)}.skeleton{min-height:1rem;border-radius:.3rem;background:linear-gradient(90deg,#e5ece9,#f7faf9,#e5ece9);background-size:200%;animation:loading 1.4s infinite}@keyframes loading{to{background-position:-200%}}.modal{position:fixed;inset:0;z-index:50;background:#102b2688;display:grid;place-items:center;padding:1rem}.modal__panel{width:min(30rem,100%);padding:2rem;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.auth-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#dceee8,#f9f6ef)}.auth-card{width:min(28rem,calc(100% - 2rem));padding:2.2rem;background:#fff;border-radius:1rem;box-shadow:var(--shadow)}.admin-shell{display:grid;grid-template-columns:16rem 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);padding:1.5rem}.sidebar nav{display:grid;gap:.3rem;margin-top:2rem}.sidebar nav a{color:#e8f2ef;padding:.65rem .8rem;text-decoration:none;border-radius:.4rem}.sidebar nav a:hover{background:#ffffff14}.admin-main{min-width:0}.topbar{min-height:4.5rem;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem}.topbar form[role=search]{flex:1;max-width:32rem}.topbar form:not([role=search]){margin-left:auto}.admin-content{padding:clamp(1rem,4vw,2.5rem)}.breadcrumb{display:flex;gap:.5rem;color:var(--muted);font-size:.9rem}.icon-button{border:0;background:none;font-size:1.4rem;cursor:pointer}.tabs{display:flex;gap:.4rem;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:1.5rem}.tabs button{border:0;background:none;padding:.75rem;white-space:nowrap;cursor:pointer}.tabs button[aria-selected=true]{border-bottom:3px solid var(--brand);font-weight:700}.panel[hidden]{display:none}
@media(max-width:900px){.grid--metrics{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;transform:translateX(-100%);transition:.2s}.sidebar.is-open{transform:none}.hero__grid{grid-template-columns:1fr}.hero__visual{max-width:22rem}.form-grid{grid-template-columns:1fr}}
@media(max-width:700px){.nav-toggle{display:block}.main-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:1rem;background:#fff;flex-direction:column;align-items:stretch}.main-nav.is-open{display:flex}.site-footer{flex-direction:column}.grid--metrics{grid-template-columns:1fr}.topbar>.badge,.topbar>form[role=search]{display:none}.section{padding:3rem 0}.hero{padding:3rem 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.narrow{max-width:48rem}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.offer-price{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--shadow)}.offer-price strong{display:block;font:700 clamp(2.4rem,6vw,4rem) var(--font-display);color:var(--brand-dark)}.offer-summary{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}.offer-summary h2{font:700 clamp(1.8rem,3vw,2.8rem)/1.15 var(--font-display)}.offer-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;counter-reset:item;list-style:none;padding:0}.offer-steps li{counter-increment:item;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;font-weight:700}.offer-steps li::before{content:counter(item);display:grid;place-items:center;width:2rem;height:2rem;margin-bottom:1rem;border-radius:50%;background:var(--brand);color:#fff}.form-grid fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.form-grid legend{font-weight:700;padding:0 .35rem}
@media(max-width:700px){.offer-summary,.offer-steps{grid-template-columns:1fr}.offer-hero .hero__grid{gap:2rem}.offer-price strong{font-size:2.5rem}.button{min-height:2.75rem}.actions .button{width:100%}}
/* Phase 4 public components */
.section--tint { background: var(--surface); }
.section--soft { background: linear-gradient(180deg, var(--canvas), #e8f2ef); }
.section-heading { max-width: 42rem; margin-bottom: 2rem; }
.section-heading h2 { font: 700 clamp(2rem, 4vw, 3.4rem) / 1.05 var(--font-display); letter-spacing: -.03em; margin: .35rem 0 .8rem; }
.section-heading p { color: var(--muted); font-size: 1.1rem; }
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.card h3 { margin-top: 0; font: 700 1.45rem / 1.15 var(--font-display); }
.card__meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .9rem; }
.card__price { font: 700 1.4rem var(--font-display); color: var(--brand-dark); }
.card__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.25rem; }
.trust-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.trust-item { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .75rem; border: 1px solid var(--line); border-radius: 999px; background: #ffffffb8; color: var(--muted); font-size: .9rem; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; counter-reset: step; }
.step { position: relative; padding: 1.25rem 1.25rem 1.25rem 3.5rem; }
.step::before { counter-increment: step; content: counter(step); position: absolute; left: 1.25rem; top: 1.25rem; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--brand); color: #fff; font-weight: 800; }
.step h3 { margin: .1rem 0 .4rem; font-size: 1rem; }
.step p { margin: 0; color: var(--muted); font-size: .92rem; }
.hero--home { background: radial-gradient(circle at 85% 20%, #d9eee8 0, transparent 34%), linear-gradient(135deg, #fff 20%, #edf6f3); }
.hero--home .hero__visual { background: linear-gradient(145deg, #164f48, #63ae9a); border-radius: 2rem 5rem 2rem 5rem; transform: rotate(2deg); }
.hero--home .hero__visual::after { content: 'Retrouver la liberté de voyager'; font: 600 1rem / 1.3 var(--font-sans); position: absolute; bottom: 1.4rem; right: 1.4rem; width: 9rem; text-align: right; color: #e9f7f3; }
.faq-list { display: grid; gap: .75rem; max-width: 52rem; }
.faq-list details { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; padding: 1rem 1.25rem; }
.faq-list summary { cursor: pointer; font-weight: 700; }
.faq-list p { color: var(--muted); margin: .75rem 0 0; }
.form-intro { max-width: 42rem; color: var(--muted); }
.check { display: flex !important; align-items: flex-start; gap: .5rem; font-weight: 500 !important; }
.check input { width: auto !important; margin-top: .35rem; }
@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cards,.steps{grid-template-columns:1fr}.hero--home .hero__visual{min-height:16rem}.trust-row{display:grid;grid-template-columns:1fr 1fr}.trust-item{border-radius:.5rem}}
/* Reference design integration: calm aviation palette and typographic identity. */
:root { --ink:#173e53; --muted:#617783; --brand:#1c5a73; --brand-dark:#173e53; --accent:#d6a65a; --canvas:#fcfdfc; --surface:#fff; --line:#dbe5e3; --shadow:0 18px 60px rgb(23 62 83 / .12); }
.brand img { display:block; width:min(205px,42vw); height:auto; }
.brand--light img { filter:brightness(0) invert(1); }
.site-header { background:rgb(255 255 255 / .95); backdrop-filter:blur(14px); }
.hero--home { background:linear-gradient(135deg,#e9f2f1,#fff 70%); }
.button { box-shadow:0 8px 24px rgb(23 62 83 / .15); }
.button--ghost { box-shadow:none; }
.card { box-shadow:0 8px 28px rgb(23 62 83 / .05); border-radius:1.5rem; }
.site-footer { background:#102f41; }

/* Mission 2 — référence officielle */
:root{--sea:#5da6ad;--pale:#e9f2f1;--sand:#f7f1e5;--gold:#d6a65a;--container:80rem;--radius:1.25rem}
body{background:#fcfdfc}.top-note{text-align:center;background:var(--ink);color:#fff;padding:.45rem 1rem;font-size:.8rem;letter-spacing:.03em}.site-header{padding:.85rem max(1rem,calc((100% - var(--container))/2));}.main-nav{gap:1.15rem}.main-nav a{font-size:.9rem}.reference-hero,.offer-page-hero,.page-hero{background:linear-gradient(135deg,var(--pale),#fff 72%)}.reference-hero{padding:clamp(3rem,7vw,6rem) 0}.reference-hero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:center}.reference-hero h1,.page-hero h1,.offer-page-hero h1{font:700 clamp(2.7rem,6vw,5.6rem)/1 var(--font-display);letter-spacing:-.045em;margin:.35rem 0 1.25rem}.reference-hero em{color:var(--sea);font-weight:inherit}.reference-hero img,.offer-illustration{width:100%;filter:drop-shadow(0 1.8rem 3rem rgb(23 62 83/.14))}.page-hero,.offer-page-hero{padding:clamp(3rem,7vw,5.5rem) 0}.breadcrumbs{font-size:.85rem;color:var(--muted);margin-bottom:1.2rem}.section--sand{background:var(--sand)}.offers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.offer-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:1.75rem;box-shadow:var(--shadow)}.offer-card>img{width:100%;height:13rem;object-fit:contain;background:var(--pale);padding:1rem}.offer-card>div{padding:1.5rem}.offer-card h2,.offer-card h3{font:700 1.65rem/1.15 var(--font-display)}.card__illustration{display:block;width:100%;height:10rem;object-fit:contain;margin-bottom:1rem}.split-reference{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}.split-reference>img{width:100%;max-height:28rem;object-fit:contain}.illustration-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}.illustration-row img{height:14rem;width:100%;object-fit:contain;background:#fff;border-radius:1.5rem;padding:1rem}.resource{text-decoration:none;color:inherit}.resource img{height:10rem;width:100%;object-fit:contain}.cta-band{padding:3rem max(1rem,calc((100% - 74rem)/2));background:var(--sea);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:2rem}.cta-band h2{font:700 clamp(1.8rem,4vw,3rem)/1.1 var(--font-display);margin:.25rem 0}.cta-band .eyebrow{color:#fff}.button--light{background:#fff;color:var(--ink);border-color:#fff}.site-footer{display:block;padding:4rem max(1rem,calc((100% - 74rem)/2)) 1.5rem}.footer-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:2.5rem}.site-footer nav h2{font:700 1rem var(--font-sans);color:#fff}.footer-bottom{margin-top:3rem;padding-top:1.25rem;border-top:1px solid rgb(255 255 255/.15);color:#9bb3bd}.form-shell{max-width:52rem}.context-note{padding:1rem;background:var(--sand);border-left:4px solid var(--gold);border-radius:.5rem}.empty-state img{max-height:15rem}.offer-page-hero .hero__grid{margin-top:2rem}
@media(max-width:1050px){.offers-grid{grid-template-columns:repeat(2,1fr)}.main-nav{gap:.8rem}.main-nav a{font-size:.82rem}}
@media(max-width:700px){.top-note{display:none}.reference-hero__grid,.split-reference{grid-template-columns:1fr}.reference-hero__grid>img,.offer-page-hero img{order:-1;max-height:18rem}.offers-grid,.footer-grid,.illustration-row{grid-template-columns:1fr}.offer-card>img{height:11rem}.cta-band{align-items:flex-start;flex-direction:column}.site-header{min-height:4.5rem}.main-nav{max-height:calc(100vh - 4.5rem);overflow:auto}.illustration-row img{height:11rem}}
@media(max-width:360px){.container{width:min(var(--container),calc(100% - 1.25rem))}.reference-hero h1,.page-hero h1,.offer-page-hero h1{font-size:2.35rem}.button{width:100%}.trust-row{grid-template-columns:1fr}}
.main-nav .button{color:#fff}
/* Mission 3 administration */
.sidebar{overflow:auto}.sidebar nav strong{display:block;color:#7fb4bd;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin:1.25rem .8rem .3rem}.sidebar nav a[aria-current=page]{background:#ffffff1f;border-left:3px solid var(--gold)}.admin-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center}.filter-bar,.table-actions,.inline-form{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap;margin:1rem 0}.filter-bar label{display:grid;gap:.25rem}.filter-bar input,.inline-form input{padding:.55rem;border:1px solid var(--line);border-radius:.4rem}.dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.metric-link{text-decoration:none;color:inherit}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.admin-content h1{font:700 clamp(2rem,4vw,3rem) var(--font-display)}
@media(max-width:700px){.admin-columns{grid-template-columns:1fr}.admin-heading{align-items:flex-start;flex-direction:column}.admin-content{padding:1rem}.table-actions{align-items:stretch;flex-direction:column}.table-actions form,.table-actions .button{width:100%}.topbar>a:not(:last-of-type){display:none}}

/* Corrections ciblées 01 — composants existants uniquement. */
.button{transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}
.button:active{transform:translateY(1px)}
.button--light:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.button--light:focus-visible{background:var(--brand);border-color:var(--accent);color:#fff}
/* Boutons « ghost » (fond transparent, texte coloré) : au survol le fond fonce, le texte passe donc en blanc pour rester lisible. */
.button--ghost:hover,.button--ghost:focus-visible{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}
/* Pop-up « session près de chez moi ». */
.modal[hidden]{display:none}
.modal__panel{position:relative;max-width:34rem;max-height:90vh;overflow:auto;text-align:left}
.modal__close{position:absolute;top:.5rem;right:.75rem;border:0;background:none;font-size:1.7rem;line-height:1;cursor:pointer;color:var(--muted)}
.nearby-modal h2{font:700 1.6rem var(--font-display);margin:.4rem 0 .3rem}
.nearby-modal .field label{font-weight:700}
.nearby-geo{align-self:end}
.nearby-results{margin-top:1rem}
.nearby-list{list-style:none;padding:0;margin:.5rem 0 0;display:grid;gap:.6rem}
.nearby-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:.6rem;background:var(--canvas)}
/* Bandeau de consentement géolocalisation (arrivée sur le site). */
.geo-consent{position:fixed;z-index:45;left:50%;transform:translateX(-50%);bottom:1rem;width:min(40rem,calc(100% - 1.5rem));display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1.1rem;background:var(--ink);color:#fff;border-radius:1rem;box-shadow:var(--shadow)}
.geo-consent[hidden]{display:none}
.geo-consent__text{margin:0;font-size:.95rem}
.geo-consent__actions{display:flex;gap:.5rem;flex-wrap:wrap}
.checkout-session{margin:.75rem 0 0;padding:.6rem .9rem;background:var(--sand,#f3efe6);border-radius:.5rem;display:inline-block}
/* Bandeau de consentement cookies (mesure d'audience). */
.cookie-consent{position:fixed;z-index:46;left:50%;transform:translateX(-50%);bottom:1rem;width:min(40rem,calc(100% - 1.5rem));display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1.1rem;background:var(--ink);color:#fff;border-radius:1rem;box-shadow:var(--shadow)}
.cookie-consent[hidden]{display:none}
.cookie-consent__text{margin:0;font-size:.95rem}
.cookie-consent__actions{display:flex;gap:.5rem;flex-wrap:wrap}
@media(max-width:520px){.cookie-consent{flex-direction:column;align-items:stretch;text-align:center}.cookie-consent__actions{justify-content:center}}
.session-distance{color:var(--brand)}
@media(max-width:520px){.geo-consent{flex-direction:column;align-items:stretch;text-align:center}.geo-consent__actions{justify-content:center}}
/* Pop-up newsletter : arguments + petites lignes. */
.newsletter-benefits{list-style:none;padding:0;margin:.6rem 0 .9rem;display:grid;gap:.45rem}
.newsletter-benefits li{font-size:.9rem;line-height:1.35}
.newsletter-fineprint{margin:.5rem 0 0;font-size:.78rem;opacity:.75}
#newsletter-results{margin-top:.6rem}
.ai-generate-form{margin-bottom:1.5rem}
/* Cartes de sessions : hauteur égale, bouton d'action toujours aligné en bas quelle que soit la longueur du texte. */
.cards .card{display:flex;flex-direction:column}
.cards .card>.button{margin-top:auto;align-self:flex-start}
.brand--light img{filter:none}
.site-footer .brand{display:inline-flex;background:#fff;border-radius:.75rem;padding:.35rem .5rem}
.step>img{display:block;width:100%;height:7rem;object-fit:contain;margin:0 0 .85rem}
.illustration-row{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px) and (min-width:701px){.illustration-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.newsletter-popup{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:40;width:min(26rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;padding:1.5rem;background:#fff;color:var(--ink);border-radius:1.25rem;box-shadow:0 1rem 3rem rgb(0 0 0/.2)}.newsletter-popup[hidden]{display:none}.newsletter-popup__close{position:absolute;right:.75rem;top:.6rem;border:0;background:transparent;font-size:1.75rem;cursor:pointer}.newsletter-popup form{display:grid;gap:.8rem}.newsletter-popup label{display:grid;gap:.3rem}.newsletter-popup input:not([type=checkbox]){width:100%;padding:.75rem;border:1px solid currentColor;border-radius:.5rem}.newsletter-popup .check{grid-template-columns:auto 1fr;align-items:start}.newsletter-popup .hp{position:absolute;left:-10000px}@media(max-width:480px){.newsletter-popup{left:1rem;right:1rem;width:auto}}

/* Animations légères + vignettes + formulaire d'alerte (site public, compatible CSP) */
#contenu .card,#contenu .offer-card,#contenu .resource{transition:box-shadow .25s ease,transform .3s ease}
#contenu .illustration-row img{box-shadow:0 .55rem 1.5rem rgb(23 62 83/.12);transition:transform .3s ease,box-shadow .3s ease}
#contenu .offer-card>img{transition:transform .4s ease}
.alert-narrow{max-width:44rem;margin:0 auto 1.25rem}
.session-alert-cta{margin-top:3rem}
.alert-form{max-width:44rem;margin:0 auto;padding:clamp(1.5rem,4vw,2.75rem);border-radius:1.75rem}
.alert-form .field label{font-weight:700;margin-bottom:.15rem}
.alert-form .field input{border-radius:.95rem;padding:.85rem 1rem;border:1.5px solid #cdddd7;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.alert-form .field input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgb(28 90 115/.12);outline:none}
.alert-consent{grid-column:1/-1;display:flex;gap:.8rem;align-items:flex-start;background:#f7f3ea;border:1px solid #e6dcc7;border-radius:1.1rem;padding:1rem 1.15rem;font-size:.92rem;line-height:1.55;cursor:pointer}
.alert-consent input{margin-top:.15rem;width:1.2rem;height:1.2rem;flex:0 0 auto;accent-color:var(--brand)}
.alert-submit{grid-column:1/-1;margin-top:.35rem;font-size:1.05rem;padding:1rem}
.alert-note{max-width:44rem;margin:.9rem auto 0;text-align:center;color:var(--muted)}
.offers-group-title{font:700 clamp(1.6rem,3vw,2.4rem)/1.15 var(--font-display);margin:0 0 .35rem}
@media(prefers-reduced-motion:no-preference){@keyframes zevReveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}#contenu .anim-in{animation:zevReveal .7s ease}#contenu .card:hover,#contenu .offer-card:hover,#contenu .resource:hover{box-shadow:0 1.2rem 2.6rem rgb(23 62 83/.14)}#contenu .offer-card:hover,#contenu .resource:hover{transform:translateY(-6px)}#contenu .offer-card:hover>img{transform:scale(1.05)}#contenu .illustration-row img:hover{transform:translateY(-5px) scale(1.03);box-shadow:0 1.1rem 2.4rem rgb(23 62 83/.22)}}

.cta-band .button{white-space:nowrap}

/* Formations : la CSP interdit les styles inline (style-src 'self' hors /commander), donc toute mise en
   forme spécifique passe par des classes dédiées plutôt que des attributs style="". */
.grid--cards{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr))}
.video-embed{position:relative;padding-top:56.25%;overflow:hidden}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Un bouton posé seul dans .form-grid s'étire par défaut sur toute la largeur de sa cellule (comportement
   CSS Grid : les items s'étirent par défaut) — ça donne des boutons disproportionnés sur toutes les pages
   admin qui suivent ce motif (réservations, médiathèque, formations...). Règle globale, pas un cas isolé. */
.form-grid>.button,.form-grid>button{justify-self:start}
.course-chapter>summary,.lesson-row>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.6rem}
.course-chapter>summary::-webkit-details-marker,.lesson-row>summary::-webkit-details-marker{display:none}
.course-chapter>summary::before{content:'▸';color:var(--muted);font-size:.85em}
.course-chapter[open]>summary::before{content:'▾'}
.course-chapter>summary{font:700 1.1rem var(--font-display)}
.lesson-row{border-top:1px solid var(--line);padding:.75rem 0}
.lesson-row:first-of-type{border-top:none;padding-top:0}
.lesson-row>summary::before{content:'▸';color:var(--muted);font-size:.8em}
.lesson-row[open]>summary::before{content:'▾'}
.lesson-row>summary{font-weight:700}
.lesson-row .form-grid{margin-top:1rem}
.lesson-number{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--canvas);color:var(--muted);font-size:.75rem;font-weight:700;flex:none}
.checklist label{display:block;margin:.3rem 0}
