@font-face { font-family: "Montserrat"; src: url(/assets/polices/montserrat-latin-wght-normal.woff2) format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Ubuntu"; src: url(/assets/polices/ubuntu-n-400-latin.woff2) format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Ubuntu"; src: url(/assets/polices/ubuntu-n-500-latin.woff2) format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Ubuntu"; src: url(/assets/polices/ubuntu-n-700-latin.woff2) format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
:root {
 --encre: #0f1630;
 --encre-2: #3a425f;
 --encre-3: #5d6582;
 --bleu: #3644af;
 --bleu-fonce: #26318a;
 --bleu-clair: #e9ecfb;
 --bleu-voile: #f2f4fd;
 --accent: #ff7a3d;
 --accent-fonce: #e8611f;
 --accent-voile: #fff1ea;
 --cta: #c2410c;
 --cta-fonce: #9a3412;
 --vert: #1a9b6c;
 --vert-voile: #e3f6ee;
 --rouge: #c8364a;
 --fond: #f6f7fb;
 --blanc: #fff;
 --trait: #e3e6f0;
 --trait-fort: #cdd2e4;
 --rayon: 14px;
 --rayon-l: 22px;
 --ombre: 0 1px 2px rgba(15, 22, 48, .05), 0 10px 30px -12px rgba(15, 22, 48, .16);
 --ombre-forte: 0 2px 4px rgba(15, 22, 48, .06), 0 28px 60px -24px rgba(15, 22, 48, .32);
 --max: 1200px;
 --titres: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
 --texte: "Ubuntu", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
 --entete: 72px;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--entete) + 16px); }
body { margin: 0; background: var(--blanc); color: var(--encre-2); font: 400 1.0625rem/1.7 var(--texte); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; }
picture { display: contents; }
picture > source { display: none; }
img { height: auto; }
a { color: var(--bleu); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--bleu-fonce); }
p, ul, ol, dl, figure, blockquote { margin: 0 0 1.1em; }
h1, h2, h3, h4 { font-family: var(--titres); color: var(--encre); font-weight: 750; line-height: 1.15; letter-spacing: -.02em; margin: 0 0 .55em; text-wrap: balance; }
h1 { font-size: clamp(2.05rem, 4.6vw, 3.5rem); font-weight: 800; }
h2 { font-size: clamp(1.6rem, 3vw, 2.35rem); }
h3 { font-size: clamp(1.12rem, 1.6vw, 1.3rem); line-height: 1.3; letter-spacing: -.01em; }
h4 { font-size: 1.05rem; }
strong { font-weight: 700; color: var(--encre); }
mark { background: linear-gradient(transparent 55%, #ffd9c6 55%); color: inherit; padding: 0 .1em; }
code { font: 500 .88em/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: var(--bleu-voile); color: var(--bleu-fonce); padding: .12em .38em; border-radius: 6px; overflow-wrap: anywhere; }
pre { background: var(--encre); color: #e6e9f7; border-radius: var(--rayon); padding: 1.1rem 1.25rem; overflow-x: auto; margin: 0 0 1.4em; font-size: .9rem; line-height: 1.6; }
pre code { background: none; color: inherit; padding: 0; font-size: inherit; overflow-wrap: normal; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--bleu); color: #fff; }
svg path, svg circle, svg ellipse, svg rect { vector-effect: non-scaling-stroke; }
.evitement { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--encre); color: #fff; padding: .6rem 1rem; border-radius: 999px; font-weight: 700; text-decoration: none; }
.evitement:focus { top: 1rem; color: #fff; }
.conteneur { width: min(100% - 2.5rem, var(--max)); margin-inline: auto; }
.conteneur--etroit { width: min(100% - 2.5rem, 820px); }
.conteneur--article { width: min(100% - 2.5rem, 900px); }
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: .55em; background: var(--cta); color: #fff; font: 700 .98rem/1.2 var(--titres); padding: .95em 1.55em; border-radius: 12px; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .2s, transform .2s, box-shadow .2s, border-color .2s, color .2s; box-shadow: 0 10px 24px -12px rgba(194, 65, 12, .7); text-align: center; }
.bouton:hover { background: var(--cta-fonce); color: #fff; transform: translateY(-1px); }
.bouton svg { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bouton--fantome { background: transparent; color: var(--bleu); border-color: var(--trait-fort); box-shadow: none; }
.bouton--fantome:hover { background: var(--bleu-voile); color: var(--bleu-fonce); border-color: var(--bleu); }
.bouton--clair { background: #fff; color: var(--encre); border-color: var(--trait); box-shadow: var(--ombre); }
.bouton--clair:hover { background: var(--bleu-voile); color: var(--encre); }
.bouton--petit { padding: .68em 1.15em; font-size: .9rem; border-radius: 10px; }
.actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.6rem 0 0; }
.surtitre { font: 700 .78rem/1.4 var(--titres); letter-spacing: .14em; text-transform: uppercase; color: var(--bleu); margin: 0 0 .9rem; }
.surtitre a { color: inherit; text-decoration: none; }
.surtitre a:hover { text-decoration: underline; }
.surtitre--pilule { display: inline-flex; align-items: center; gap: .5em; padding: .5em 1em; border-radius: 999px; background: var(--bleu-clair); letter-spacing: .08em; }
.surtitre--pilule::before { content: ""; width: .5em; height: .5em; border-radius: 50%; background: var(--vert); box-shadow: 0 0 0 4px rgba(26, 155, 108, .18); }
.lien-fleche { display: inline-flex; align-items: center; gap: .4em; font: 700 .92rem var(--titres); color: var(--bleu); }
.lien-fleche svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
a:hover .lien-fleche svg { transform: translateX(4px); }
.entete { position: sticky; top: 0; z-index: 60; background: rgba(255, 255, 255, .92); backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4); border-bottom: 1px solid var(--trait); }
.entete__barre { display: flex; align-items: center; gap: 1.5rem; min-height: var(--entete); }
.logo { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--encre); flex-shrink: 0; }
.logo:hover { color: var(--encre); }
.logo__marque { width: 40px; height: 40px; }
.logo__mot { display: inline-flex; flex-direction: column; font: 800 1.28rem/1 var(--titres); letter-spacing: -.02em; }
.logo__mot small { font: 500 .66rem/1 var(--texte); letter-spacing: .16em; text-transform: uppercase; color: var(--encre-3); margin-top: .3rem; }
.logo--clair, .logo--clair:hover { color: #fff; }
.logo--clair .logo__mot small { color: #aab2e6; }
.nav { margin-left: auto; display: flex; align-items: center; gap: 1rem; }
.nav__liste { display: flex; align-items: center; gap: .1rem; list-style: none; margin: 0; padding: 0; }
.nav__item { position: relative; }
.nav__lien { display: flex; align-items: center; gap: .3em; padding: .55rem .8rem; color: var(--encre-2); font: 600 .93rem/1.2 var(--titres); text-decoration: none; border-radius: 10px; background: none; border: 0; cursor: pointer; transition: color .2s, background .2s; }
.nav__lien:hover { color: var(--bleu); background: var(--bleu-voile); }
.nav__lien.est-actif { color: var(--bleu); }
.nav__lien svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .2s; }
.nav__sous { position: absolute; top: 100%; left: -.4rem; min-width: 250px; list-style: none; margin: .45rem 0 0; padding: .45rem; background: #fff; border: 1px solid var(--trait); border-radius: 14px; box-shadow: var(--ombre-forte); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; }
.nav__sous::before { content: ""; position: absolute; inset: -.6rem 0 auto; height: .6rem; }
.nav__item--sous:hover .nav__sous, .nav__item--sous:focus-within .nav__sous, .nav__item--sous.est-ouvert .nav__sous { opacity: 1; visibility: visible; transform: none; }
.nav__item--sous:hover .nav__lien svg, .nav__item--sous.est-ouvert .nav__lien svg { transform: rotate(180deg); }
.nav__sous a { display: block; padding: .6rem .8rem; border-radius: 9px; color: var(--encre-2); text-decoration: none; font: 600 .92rem/1.3 var(--titres); }
.nav__sous a:hover, .nav__sous a[aria-current] { background: var(--bleu-voile); color: var(--bleu); }
.burger { display: none; margin-left: auto; width: 46px; height: 46px; border: 1px solid var(--trait-fort); border-radius: 12px; background: #fff; color: var(--encre); cursor: pointer; position: relative; }
.burger span, .burger span::before, .burger span::after { position: absolute; left: 50%; width: 18px; height: 2px; border-radius: 2px; background: currentColor; transform: translateX(-50%); transition: transform .25s, background .25s; }
.burger span { top: 50%; margin-top: -1px; }
.burger span::before, .burger span::after { content: ""; }
.burger span::before { top: -6px; }
.burger span::after { top: 6px; }
.nav-ouverte .burger span { background: transparent; }
.nav-ouverte .burger span::before { transform: translateX(-50%) translateY(6px) rotate(45deg); }
.nav-ouverte .burger span::after { transform: translateX(-50%) translateY(-6px) rotate(-45deg); }
.hero { position: relative; background: radial-gradient(1100px 420px at 85% -10%, var(--bleu-clair), transparent 70%), var(--fond); border-bottom: 1px solid var(--trait); }
.hero--page { padding: 2.2rem 0 3.4rem; }
.hero--page .hero__contenu { max-width: 860px; }
.hero--accueil { padding: 4.2rem 0 4.6rem; overflow: hidden; }
.hero--article { padding: 2.2rem 0 2.6rem; }
.hero__grille { display: grid; grid-template-columns: 1.12fr .88fr; gap: 3.5rem; align-items: center; }
.hero__chapo { font-size: clamp(1.08rem, 1.5vw, 1.24rem); line-height: 1.6; color: var(--encre-2); max-width: 46rem; margin-bottom: 0; }
.hero h1 { margin-bottom: .45em; }
.hero--accueil h1 { font-size: clamp(2.2rem, 4.4vw, 3.45rem); }
.fil ol { display: flex; flex-wrap: wrap; gap: .3rem .5rem; list-style: none; padding: 0; margin: 0 0 1.6rem; font-size: .86rem; color: var(--encre-3); }
.fil li + li::before { content: "›"; margin-right: .5rem; color: var(--trait-fort); }
.fil a { color: var(--encre-3); text-decoration: none; }
.fil a:hover { color: var(--bleu); text-decoration: underline; }
.fil [aria-current] { color: var(--encre-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 28ch; }
.garanties { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1.4rem; list-style: none; padding: 0; margin: 2.2rem 0 0; font-size: .92rem; line-height: 1.4; color: var(--encre-3); }
.garanties li { display: grid; grid-template-columns: 36px 1fr; column-gap: .7rem; align-items: center; }
.garanties span { grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #fff; box-shadow: var(--ombre); color: var(--bleu); }
.garanties svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.garanties strong { display: block; font: 700 .95rem/1.2 var(--titres); }
.tdb { background: #fff; border-radius: 20px; box-shadow: var(--ombre-forte); overflow: hidden; border: 1px solid var(--trait); transform: rotate(1.2deg); }
.tdb__barre { display: flex; gap: 6px; align-items: center; padding: .8rem 1rem; background: var(--bleu-voile); border-bottom: 1px solid var(--trait); font-size: .8rem; color: var(--encre-3); }
.tdb__barre i { width: 10px; height: 10px; border-radius: 50%; background: var(--trait-fort); }
.tdb__barre i:first-child { background: #ff8f7a; }
.tdb__barre i:nth-child(2) { background: #ffd36b; }
.tdb__barre i:nth-child(3) { background: #6fd3a5; }
.tdb__barre span { margin-left: .6rem; }
.tdb__liste { list-style: none; margin: 0; padding: .4rem 1.2rem; }
.tdb__liste li { display: flex; align-items: center; gap: .8rem; padding: .78rem 0; border-bottom: 1px solid var(--trait); color: var(--encre); font: 600 .95rem var(--titres); }
.tdb__liste li:last-child { border: 0; }
.tdb__liste b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--vert-voile); flex-shrink: 0; }
.tdb__liste svg { width: 15px; height: 15px; fill: none; stroke: var(--vert); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.tdb__liste em { margin-left: auto; font: 500 .84rem var(--texte); font-style: normal; color: #0f6e4c; background: var(--vert-voile); padding: .2em .65em; border-radius: 999px; }
.tdb__pied { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .85rem 1.2rem; background: var(--encre); color: #d5daf3; font-size: .86rem; }
.tdb__pied svg { width: 17px; height: 17px; fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; }
.section { padding: clamp(3.4rem, 7vw, 5.6rem) 0; }
.section--serre { padding: clamp(2.4rem, 4.5vw, 3.4rem) 0; }
.section--clair { background: var(--fond); border-block: 1px solid var(--trait); }
.section--clair + .section--clair { border-top: 0; }
.section--nuit { background: var(--encre); color: #c9cfea; }
.section--nuit h2, .section--nuit h3, .section--nuit strong { color: #fff; }
.section--nuit a:not(.bouton) { color: #b9c2ff; }
.section--nuit .surtitre { color: #ffb08a; }
.section--bleu { background: var(--bleu); color: #e4e8ff; }
.section--bleu h2, .section--bleu h3 { color: #fff; }
.section--centre { text-align: center; }
.section--centre .actions { justify-content: center; }
.entete-section { max-width: 760px; margin-bottom: 2.4rem; }
.entete-section--centre { margin-inline: auto; text-align: center; }
.entete-section > :last-child { margin-bottom: 0; }
.entete-section p:not(.surtitre) { font-size: 1.1rem; }
.intro { font-size: 1.12rem; max-width: 760px; }
.prose { max-width: 760px; overflow-wrap: break-word; }
.prose a { overflow-wrap: anywhere; }
.prose h2 { margin-top: 2.1em; font-size: clamp(1.45rem, 2.4vw, 1.85rem); }
.prose h3 { margin-top: 1.7em; }
.prose h4 { margin-top: 1.4em; }
.prose > :first-child { margin-top: 0; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li { margin-bottom: .4em; }
.prose li::marker { color: var(--bleu); font-weight: 700; }
.prose blockquote { border-left: 4px solid var(--bleu); background: var(--bleu-voile); padding: 1rem 1.3rem; border-radius: 0 var(--rayon) var(--rayon) 0; color: var(--encre); font-style: italic; }
.prose blockquote p:last-child { margin: 0; }
.prose img { border-radius: var(--rayon); }
.tableau { overflow-x: auto; margin: 0 0 1.5em; border: 1px solid var(--trait); border-radius: var(--rayon); }
.tableau table { width: 100%; border-collapse: collapse; font-size: .94rem; line-height: 1.5; }
.tableau th { background: var(--bleu-voile); color: var(--encre); font: 700 .88rem/1.35 var(--titres); text-align: left; }
.tableau th, .tableau td { padding: .7rem .9rem; border-bottom: 1px solid var(--trait); vertical-align: top; }
.tableau tr:last-child td { border-bottom: 0; }
.photo { margin: 1.8em 0; }
.photo img { border-radius: var(--rayon); }
figcaption { font-size: .86rem; color: var(--encre-3); margin-top: .6rem; }
.media { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.media--gauche .media__image { order: 0; }
.media--droite .media__image { order: 2; }
.media__image { margin: 0; }
.media__image img { border-radius: var(--rayon-l); box-shadow: var(--ombre-forte); }
.grille { display: grid; gap: 1.2rem; }
.grille--2 { grid-template-columns: repeat(2, 1fr); }
.grille--3 { grid-template-columns: repeat(3, 1fr); }
.grille--4 { grid-template-columns: repeat(4, 1fr); }
.carte { position: relative; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); padding: 1.6rem 1.5rem; box-shadow: var(--ombre); color: var(--encre-2); text-decoration: none; transition: transform .2s, box-shadow .2s, border-color .2s; }
.carte > :last-child { margin-bottom: 0; }
.carte h3 { margin-bottom: .45em; }
.carte p { font-size: .98rem; line-height: 1.6; }
.carte--lien { display: flex; flex-direction: column; }
.carte--lien .lien-fleche { margin-top: auto; padding-top: .4rem; }
.carte--lien:hover { transform: translateY(-3px); box-shadow: var(--ombre-forte); border-color: var(--trait-fort); color: var(--encre-2); }
.carte__icone, .service__icone { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 13px; background: var(--bleu-clair); color: var(--bleu); margin-bottom: 1.1rem; }
.carte__icone svg, .service__icone svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.carte__num { display: block; font: 800 .9rem var(--titres); color: var(--accent); margin-bottom: .8rem; letter-spacing: .06em; }
.section--nuit .carte { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .1); box-shadow: none; color: #c9cfea; }
.section--nuit .carte__icone { background: rgba(255, 122, 61, .14); color: #ffb08a; }
.coches { list-style: none; padding: 0; margin: 0 0 1.2em; }
.coches li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; line-height: 1.5; }
.coches li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--vert-voile) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 12.5 4 4 8-9' fill='none' stroke='%231a9b6c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat; }
.etapes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2rem; counter-reset: etape; }
.etape { display: grid; grid-template-columns: auto 1fr; gap: 1rem; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); padding: 1.4rem; box-shadow: var(--ombre); }
.etape__num { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--bleu); color: #fff; font: 800 1rem var(--titres); }
.etape h3 { font-size: 1.08rem; margin: .45rem 0 .4rem; }
.etape p { font-size: .96rem; line-height: 1.6; }
.etape > div > :last-child { margin-bottom: 0; }
.faq { max-width: 860px; }
.entete-section--centre + .faq, .section--centre .faq { margin-inline: auto; text-align: left; }
.faq__item { border-bottom: 1px solid var(--trait); }
.faq__item summary { display: flex; align-items: center; gap: 1rem; justify-content: space-between; padding: 1.15rem 0; cursor: pointer; list-style: none; }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary h3 { margin: 0; font-size: 1.06rem; line-height: 1.4; }
.faq__item summary:hover h3 { color: var(--bleu); }
.faq__signe { position: relative; flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--bleu-voile); }
.faq__signe::before, .faq__signe::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--bleu); transform: translate(-50%, -50%); transition: transform .25s; }
.faq__signe::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq__item[open] .faq__signe::after { transform: translate(-50%, -50%) rotate(0); }
.faq__reponse { padding: 0 0 1.2rem; }
.encart { margin: 2em 0; padding: 1.3rem 1.4rem; border-radius: var(--rayon); background: var(--bleu-voile); border: 1px solid var(--bleu-clair); }
.encart > :last-child { margin-bottom: 0; }
.encart__etiquette { font: 800 .74rem/1.3 var(--titres); letter-spacing: .12em; text-transform: uppercase; color: var(--bleu); margin: 0 0 .5rem; }
.encart--attention { background: #fff6f0; border-color: #ffdcc8; }
.encart--attention .encart__etiquette { color: var(--cta-fonce); }
.encart--donnees { background: var(--vert-voile); border-color: #c6ead9; }
.encart--donnees .encart__etiquette { color: var(--vert); }
.encart--agence { position: relative; background: var(--encre); border: 0; color: #c9cfea; padding: 1.6rem 1.6rem 1.5rem; overflow: hidden; }
.encart--agence::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle, rgba(54, 68, 175, .55), transparent 70%); pointer-events: none; }
.encart--agence .encart__etiquette { color: #ffb08a; }
.encart--agence .encart__titre { font: 750 1.2rem/1.3 var(--titres); color: #fff; margin: 0 0 .45rem; }
.encart--agence strong { color: #fff; }
.encart--agence a:not(.bouton) { color: #b9c2ff; }
.encart--agence .actions { margin-top: 1rem; }
.encart--liens { background: #fff; border: 1px solid var(--trait); box-shadow: var(--ombre); }
.encart--liens ul { list-style: none; padding: 0; margin: 0; }
.encart--liens li { margin: 0; padding: .35rem 0; }
.encart--liens a { font-weight: 500; }
.colonnes { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1.6rem, 4vw, 3.4rem); }
.colonnes--3 { grid-template-columns: repeat(3, 1fr); }
.colonnes__col > :last-child { margin-bottom: 0; }
.clients { margin: 0 auto; max-width: 1000px; }
.clients img { width: 100%; border-radius: var(--rayon); }
.temoignage { max-width: 760px; margin: 2.4rem auto 0; text-align: center; }
.temoignage blockquote { margin: 0; font: 600 clamp(1.15rem, 2vw, 1.4rem)/1.5 var(--titres); color: var(--encre); }
.temoignage blockquote p::before { content: "“"; display: block; font-size: 3.2rem; line-height: .6; color: var(--accent); margin-bottom: .6rem; }
.temoignage figcaption { font-size: .95rem; margin-top: 1rem; }
.offres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; align-items: stretch; }
.offre { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon-l); padding: 2rem 1.7rem 1.7rem; box-shadow: var(--ombre); text-align: left; }
.offre--vedette { border: 2px solid var(--bleu); box-shadow: var(--ombre-forte); }
.offre__badge { position: absolute; top: -.85rem; left: 1.7rem; margin: 0; background: var(--cta); color: #fff; font: 800 .74rem/1 var(--titres); letter-spacing: .1em; text-transform: uppercase; padding: .5em .9em; border-radius: 999px; }
.offre__nom { font-size: 1.4rem; margin: 0 0 .3rem; }
.offre__accroche { color: var(--encre-3); font-size: .96rem; min-height: 3em; }
.offre__prix { display: flex; align-items: flex-end; gap: .7rem; margin: .2rem 0 1.4rem; padding-bottom: 1.3rem; border-bottom: 1px solid var(--trait); }
.offre__montant { font: 800 2.5rem/1 var(--titres); color: var(--encre); letter-spacing: -.03em; }
.offre__unite { font-size: .8rem; line-height: 1.35; color: var(--encre-3); }
.offre .coches { font-size: .95rem; }
.offre .actions { margin-top: auto; padding-top: .6rem; }
.offre .bouton { width: 100%; }
.offres__note { text-align: center; color: var(--encre-3); font-size: .94rem; margin: 1.6rem 0 0; }
.services { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.1rem; }
.service { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); padding: 1.5rem 1.4rem; box-shadow: var(--ombre); text-decoration: none; color: var(--encre-2); transition: transform .2s, box-shadow .2s; }
.service:hover { transform: translateY(-3px); box-shadow: var(--ombre-forte); color: var(--encre-2); }
.service h3 { font-size: 1.08rem; margin-bottom: .4rem; }
.service p { font-size: .95rem; line-height: 1.55; }
.service .lien-fleche { margin-top: auto; }
.rubriques { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2.4rem; }
.rubriques a { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--trait); color: var(--encre-2); font: 600 .88rem var(--titres); text-decoration: none; transition: border-color .2s, color .2s, background .2s; }
.rubriques a:hover { border-color: var(--bleu); color: var(--bleu); }
.rubriques a[aria-current] { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.rubriques span svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rubriques small { font: 400 .78rem var(--texte); }
.cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; padding: clamp(1.8rem, 4vw, 2.8rem); border-radius: var(--rayon-l); background: radial-gradient(600px 260px at 100% 0, rgba(255, 122, 61, .28), transparent 70%), linear-gradient(120deg, var(--encre), #1d2a6b); color: #c9cfea; box-shadow: var(--ombre-forte); }
.cta h2 { color: #fff; font-size: clamp(1.45rem, 2.6vw, 2rem); margin-bottom: .35em; }
.cta p { margin: 0; max-width: 40rem; }
.cta .actions { margin: 0; }
.cta__texte { flex: 1 1 380px; }
.formulaire { background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon-l); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--ombre); }
.formulaire__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
.champ { margin: 0 0 1.1rem; }
.champ--large { grid-column: 1 / -1; }
.champ label { display: block; font: 600 .9rem/1.3 var(--titres); color: var(--encre); margin-bottom: .4rem; }
.champ label small { font: 400 .82rem var(--texte); color: var(--encre-3); }
.champ input, .champ select, .champ textarea { width: 100%; font: 400 1rem/1.4 var(--texte); color: var(--encre); background: var(--fond); border: 1px solid var(--trait-fort); border-radius: 10px; padding: .8rem .9rem; transition: border-color .2s, box-shadow .2s, background .2s; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: 0; border-color: var(--bleu); background: #fff; box-shadow: 0 0 0 4px rgba(54, 68, 175, .14); }
.champ textarea { resize: vertical; min-height: 9rem; }
.champ--piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.champ--case { display: flex; gap: .7rem; align-items: flex-start; }
.champ--case input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; flex-shrink: 0; accent-color: var(--bleu); }
.champ--case label { font: 400 .9rem/1.5 var(--texte); color: var(--encre-2); margin: 0; }
.formulaire .actions { margin-top: .4rem; }
.formulaire__note { font-size: .86rem; color: var(--encre-3); margin: 1rem 0 0; }
.articles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; }
.carte-article { background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); transition: transform .2s, box-shadow .2s; }
.carte-article:hover { transform: translateY(-3px); box-shadow: var(--ombre-forte); }
.carte-article a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: var(--encre-2); }
.carte-article__image { aspect-ratio: 16 / 9; overflow: hidden; background: var(--bleu-clair); }
.carte-article__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.carte-article:hover .carte-article__image img { transform: scale(1.04); }
.carte-article__texte { padding: 1.15rem 1.25rem 1.3rem; }
.carte-article__meta { font-size: .8rem; color: var(--encre-3); margin-bottom: .5rem; }
.carte-article__meta span { color: var(--bleu); font-weight: 700; }
.carte-article h3 { font-size: 1.04rem; line-height: 1.38; margin-bottom: .45rem; }
.carte-article a:hover h3 { color: var(--bleu); }
.carte-article p:last-child { font-size: .92rem; line-height: 1.55; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.a-la-une { margin-bottom: 3rem; background: #fff; border: 1px solid var(--trait); border-radius: var(--rayon-l); overflow: hidden; box-shadow: var(--ombre); }
.a-la-une a { display: grid; grid-template-columns: 1.15fr 1fr; text-decoration: none; color: var(--encre-2); }
.a-la-une__image { min-height: 100%; background: var(--bleu-clair); }
.a-la-une__image img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.a-la-une__texte { padding: clamp(1.4rem, 3vw, 2.4rem); align-self: center; }
.a-la-une h2 { font-size: clamp(1.35rem, 2.3vw, 1.8rem); }
.a-la-une a:hover h2 { color: var(--bleu); }
.liste__titre { font-size: 1.35rem; margin-bottom: 1.3rem; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .7rem; margin-top: 2.6rem; }
.pagination ol { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; margin: 0; }
.pagination a { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .8rem; border-radius: 10px; background: #fff; border: 1px solid var(--trait); color: var(--encre-2); font: 700 .92rem var(--titres); text-decoration: none; }
.pagination a:hover { border-color: var(--bleu); color: var(--bleu); }
.pagination a[aria-current] { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.hero--article h1 { font-size: clamp(1.85rem, 3.8vw, 2.75rem); }
.hero--article .hero__chapo { font-size: 1.12rem; }
.article__meta { margin: 1.2rem 0 0; font-size: .88rem; color: var(--encre-3); }
.article__meta a { color: var(--encre-2); }
.article__grille { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(2rem, 4vw, 3.6rem); align-items: start; padding: 2.4rem 0 3.6rem; }
.article__image { margin: 0 0 2.2rem; }
.article__image img { width: 100%; border-radius: var(--rayon-l); aspect-ratio: 16 / 9; object-fit: cover; }
.article__corps { font-size: 1.08rem; line-height: 1.78; color: #2c3350; max-width: none; }
.article__corps > p:first-of-type { font-size: 1.13rem; }
.article__ia { font-size: .86rem; color: var(--encre-3); border-top: 1px solid var(--trait); padding-top: 1.1rem; margin-top: 2.2rem; }
.article__principal { min-width: 0; overflow-wrap: break-word; }
.article__aside { position: sticky; top: calc(var(--entete) + 1.2rem); display: grid; gap: 1.2rem; }
.sommaire { background: var(--fond); border: 1px solid var(--trait); border-radius: var(--rayon); padding: 1.2rem 1.2rem 1rem; max-height: calc(100vh - var(--entete) - 18rem); overflow-y: auto; }
.sommaire__titre { font: 800 .74rem/1.3 var(--titres); letter-spacing: .12em; text-transform: uppercase; color: var(--encre); margin: 0 0 .7rem; }
.sommaire ol { list-style: none; padding: 0; margin: 0; counter-reset: s; font-size: .9rem; line-height: 1.4; }
.sommaire li { counter-increment: s; display: grid; grid-template-columns: 1.6rem 1fr; padding: .32rem 0; }
.sommaire li::before { content: counter(s, decimal-leading-zero); font: 700 .74rem/1.9 var(--titres); color: var(--accent); }
.sommaire a { color: var(--encre-2); text-decoration: none; }
.sommaire a:hover { color: var(--bleu); text-decoration: underline; }
.sommaire-mobile { display: none; }
.aide { background: var(--encre); color: #c9cfea; border-radius: var(--rayon); padding: 1.4rem 1.3rem; font-size: .93rem; line-height: 1.55; }
.aide__titre { font: 750 1.08rem/1.3 var(--titres); color: #fff; margin: 0 0 .5rem; }
.aide .actions { margin-top: 1rem; }
.aide .bouton { width: 100%; }
.aide__lien { margin: .8rem 0 0; text-align: center; font-size: .86rem; }
.aide__lien a { color: #b9c2ff; }
.pied { background: var(--encre); color: #aeb5d6; font-size: .93rem; padding: 4rem 0 0; }
.pied a:not(.bouton) { color: #d7dcf5; text-decoration: none; }
.pied a:not(.bouton):hover { color: #fff; text-decoration: underline; }
.pied__grille { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2.4rem; padding-bottom: 3rem; }
.pied__marque p { margin: 1.1rem 0 0; max-width: 24rem; line-height: 1.6; }
.pied__marque .actions { margin-top: 1.3rem; }
.pied__titre { font: 800 .76rem/1.3 var(--titres); letter-spacing: .12em; text-transform: uppercase; color: #fff; margin: 0 0 1rem; }
.pied ul { list-style: none; padding: 0; margin: 0; }
.pied li { margin-bottom: .55rem; line-height: 1.4; }
.pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; border-top: 1px solid rgba(255, 255, 255, .1); padding: 1.4rem 0 1.8rem; font-size: .84rem; }
.pied__bas p { margin: 0; }
@media (max-width: 1100px) {
 .nav__lien { padding: .5rem .55rem; font-size: .9rem; }
 .pied__grille { grid-template-columns: 1fr 1fr; }
 .grille--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
 :root { --entete: 64px; }
 .burger { display: block; }
 .nav { position: fixed; inset: var(--entete) 0 auto 0; max-height: calc(100vh - var(--entete)); overflow-y: auto; flex-direction: column; align-items: stretch; gap: 1rem; padding: 1rem 1.25rem 1.6rem; background: #fff; border-bottom: 1px solid var(--trait); box-shadow: var(--ombre-forte); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility .2s; }
 .nav-ouverte .nav { opacity: 1; visibility: visible; transform: none; }
 .nav__liste { flex-direction: column; align-items: stretch; }
 .nav__lien { width: 100%; padding: .85rem .6rem; font-size: 1rem; justify-content: space-between; }
 .nav__sous { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 .4rem .8rem; margin: 0; display: none; }
 .nav__item--sous.est-ouvert .nav__sous { display: block; }
 .nav__item--sous:hover .nav__lien svg { transform: none; }
 .nav__item--sous.est-ouvert .nav__lien svg { transform: rotate(180deg); }
 .nav__cta { align-self: stretch; }
 .hero__grille { grid-template-columns: 1fr; gap: 2.6rem; }
 .tdb { transform: none; max-width: 520px; }
 .media, .colonnes, .colonnes--3 { grid-template-columns: 1fr; }
 .media--droite .media__image { order: 0; }
 .grille--3, .offres, .articles { grid-template-columns: repeat(2, 1fr); }
 .offres { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
 .a-la-une a { grid-template-columns: 1fr; }
 .article__grille { grid-template-columns: minmax(0, 1fr); padding-top: 1.6rem; }
 .article__aside { position: static; }
 .article__aside .sommaire { display: none; }
 .sommaire-mobile { display: block; background: var(--fond); border: 1px solid var(--trait); border-radius: var(--rayon); margin: 0 0 1.8rem; }
 .sommaire-mobile summary { padding: .9rem 1.1rem; font: 800 .8rem var(--titres); letter-spacing: .1em; text-transform: uppercase; color: var(--encre); cursor: pointer; }
 .sommaire-mobile .sommaire { border: 0; background: none; padding-top: 0; max-height: none; }
 .sommaire-mobile .sommaire__titre { display: none; }
}
@media (max-width: 640px) {
 body { font-size: 1rem; }
 .grille--2, .grille--3, .grille--4, .articles, .formulaire__grille, .garanties { grid-template-columns: 1fr; }
 .pied__grille { grid-template-columns: 1fr; gap: 2rem; }
 .hero--accueil { padding: 2.6rem 0 3rem; }
 .actions .bouton { flex: 1 1 100%; }
 .cta .actions { width: 100%; }
 .logo__mot small { display: none; }
 .article__corps { font-size: 1.03rem; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
 .entete, .pied, .article__aside, .cta, .sommaire-mobile { display: none; }
}
