/* =========================================================
   Lutèce Expertises · assure.expert
   Feuille de style unique du site (reprise fidèle du site Wix)
   ========================================================= */

/* ---------- Polices (hébergées sur le site, pas d'appel à Google) ---------- */
@font-face { font-family: "Libre Baskerville"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/libre-baskerville-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Baskerville"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/libre-baskerville-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Baskerville"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/libre-baskerville-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-ext-400-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-ext-600-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Nunito Sans"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/nunito-sans-latin-700-normal.woff2") format("woff2"); }

/* ---------- Variables de la charte ---------- */
:root {
  --creme: #fdf9f2;
  --vert: #075244;
  --vert-fonce: #053d33;
  --noir: #000;
  --blanc: #fff;
  --gris-ligne: #e3ddd2;
  --ombre: 0 0 11px rgba(0, 0, 0, .11);
  --ombre-large: 0 0 20px rgba(0, 0, 0, .11);
  --titres: "Libre Baskerville", Baskerville, Georgia, "Times New Roman", serif;
  --texte: "Avenir Next", Avenir, "Nunito Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  --largeur: 980px;
  --gouttiere: 20px;
  --entete: 98px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--entete) + 10px); }
body { margin: 0; background: var(--creme); color: var(--noir); font-family: var(--texte); font-size: 16px; line-height: 1.4; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
strong, b { font-weight: 600; }
h1, h2, h3, h4, h5, h6 { font-family: var(--titres); font-weight: 700; line-height: 1.25; margin: 0 0 .6em; letter-spacing: 0; }
h1 { font-size: 40px; line-height: 48px; }
h2 { font-size: 35px; }
h3 { font-size: 19px; }
h4 { font-size: 17px; }
h1 strong, h2 strong, h3 strong, h4 strong, h5 strong { font-weight: 700; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }
li { margin-bottom: .3em; }
.accent { color: var(--vert); }
.wrap { width: 100%; max-width: calc(var(--largeur) + 2 * var(--gouttiere)); margin: 0 auto; padding: 0 var(--gouttiere); }
.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; }
.center { text-align: center; }

/* Tailles de titres reprises de Wix */
.t-40 { font-size: 40px; line-height: 48px; }
.t-35 { font-size: 35px; }
.t-30 { font-size: 30px; }
.t-25 { font-size: 25px; }
.t-22 { font-size: 22px; }
.t-19 { font-size: 19px; }
.t-17 { font-size: 17px; }
/* Tailles de texte courant */
.fs-18 { font-size: 18px; line-height: 1.4; }
.fs-16 { font-size: 16px; line-height: 1.4; }
.fs-14 { font-size: 14px; line-height: 1.4; }

/* ---------- Texte riche ---------- */
.rt > *:last-child { margin-bottom: 0; }
.rt a { color: var(--noir); text-decoration: underline; text-underline-offset: 2px; }
.rt a:hover { color: var(--vert); }
.rt a .accent, .rt .accent a, a.accent { color: var(--vert); }
.rt img { margin: 1em 0; }
.rt table { border-collapse: collapse; width: 100%; margin: 0 0 1em; font-size: 15px; }
.rt th, .rt td { border: 1px solid var(--gris-ligne); padding: 8px 10px; text-align: left; vertical-align: top; }
.rt th { background: #f3eee4; font-weight: 600; }
.rt blockquote { margin: 0 0 1em; padding: .4em 0 .4em 1.2em; border-left: 3px solid var(--vert); }
.rt h2 { font-size: 28px; margin-top: 1.2em; }
.rt h3 { font-size: 22px; margin-top: 1.1em; }
.rt h4 { font-size: 18px; margin-top: 1em; }
.rt > h2:first-child, .rt > h3:first-child, .rt > h4:first-child { margin-top: 0; }
.lien-fleche { color: var(--vert); font-weight: 600; }
.lien-fleche a { color: var(--vert); text-decoration: underline; }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 28px; min-width: 300px;
  background: var(--vert); color: var(--blanc); font-family: var(--texte); font-weight: 600; font-size: 16px; text-decoration: none;
  border: 0; border-radius: 0; cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.btn:hover { background: var(--vert-fonce); }
.btn--blanc { background: var(--blanc); color: var(--noir); }
.btn--blanc:hover { background: var(--creme); color: var(--vert); }
.btn--large { min-width: 320px; }
.btn--tel::before { content: ""; width: 18px; height: 18px; background: currentColor; flex: none;
  -webkit-mask: url("/assets/img/icones/telephone.svg") center / contain no-repeat; mask: url("/assets/img/icones/telephone.svg") center / contain no-repeat; }
.actions { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 16px; }
.actions--center { justify-content: center; }

/* ---------- Note Google ---------- */
.note-google { display: inline-flex; align-items: center; gap: 13px; margin-top: 28px; font-size: 18px; text-decoration: none; color: var(--noir); }
.note-google img { width: 134px; height: auto; }
a.note-google:hover { color: var(--vert); }
.note-google a { display: block; flex: none; line-height: 0; }

/* ---------- En-tête ---------- */
.entete { position: sticky; top: 0; z-index: 50; background: var(--creme); }
.entete__inner { display: flex; align-items: center; justify-content: space-between; height: var(--entete); }
.entete__logo { display: block; width: 233px; flex: none; }
.entete__logo img { width: 233px; height: auto; }
.nav { display: flex; align-items: center; }
.nav__liste { display: flex; align-items: center; list-style: none; margin: 0; padding: 0; }
.nav__liste li { margin: 0; display: flex; align-items: center; }
.nav__liste li + li::before { content: ""; width: 1px; height: 32px; background: var(--vert); opacity: .45; }
.nav__lien { display: block; padding: 8px 16px; font-weight: 600; font-size: 16px; line-height: 16px; text-decoration: none; color: var(--noir); white-space: nowrap; }
.nav__lien:hover, .nav__lien[aria-current="page"] { color: var(--vert); }
.nav__cta { margin-left: 2px; min-width: 0; padding: 0 18px; min-height: 50px; }
.burger { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 10px; }
.burger span { display: block; height: 2px; background: var(--noir); margin: 6px 0; transition: transform .2s, opacity .2s; }
.entete.est-ouvert .burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.entete.est-ouvert .burger span:nth-child(2) { opacity: 0; }
.entete.est-ouvert .burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---------- Sections ---------- */
.sec { padding: 48px 0; }
.sec--creme { background: var(--creme); }
.sec--blanc { background: var(--blanc); }
.sec--serre { padding: 24px 0; }
.sec--ombre { background: var(--blanc); box-shadow: var(--ombre-large); position: relative; z-index: 1; }
.sec__titre { text-align: center; margin-bottom: 38px; }
.sec__intro { text-align: center; max-width: 900px; margin: -18px auto 38px; }

/* ---------- Héros ---------- */
.heros { padding: 34px 0 48px; }
.heros__grille { display: grid; grid-template-columns: 489px 482px; gap: 9px; justify-content: space-between; align-items: start; }
.heros__texte h1 { margin-bottom: 30px; }
.heros__texte .rt { font-size: 18px; }
.heros__media img { width: 100%; aspect-ratio: 482 / 374; object-fit: cover; margin-top: 20px; }

/* ---------- Colonnes génériques ---------- */
.cols { display: grid; gap: 40px; align-items: start; }
.cols--2 { grid-template-columns: 1fr 1fr; }
.cols--3 { grid-template-columns: repeat(3, 1fr); }
.cols--4 { grid-template-columns: repeat(4, 1fr); }
.cols--texte-media { grid-template-columns: 1fr 1fr; align-items: center; }
.cols--media-texte { grid-template-columns: 1fr 1fr; align-items: center; }
.cols--etroit-large { grid-template-columns: 146px 1fr; gap: 17px; }
.media img { width: 100%; height: auto; }
.media--cover img { aspect-ratio: var(--ratio, 4 / 3); object-fit: cover; }

/* ---------- Bloc presse (portraits + liens) ---------- */
.presse { display: grid; grid-template-columns: 146px 1fr; gap: 17px; align-items: start; }
.presse__portraits { display: grid; gap: 23px; }
.presse__portraits img { width: 146px; height: 150px; object-fit: cover; }
.presse .rt { font-size: 18px; }
.presse .rt p { margin-bottom: 25px; }

/* ---------- Cartes ---------- */
.carte { background: var(--blanc); box-shadow: var(--ombre); padding: 18px; }
.grille { display: grid; gap: 22px 44px; }
.grille--3 { grid-template-columns: repeat(3, 1fr); }
.grille--4 { grid-template-columns: repeat(4, 1fr); }
.grille--2 { grid-template-columns: repeat(2, 1fr); }

/* Avis clients */
.avis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px 44px; }
.avis__carte { background: var(--blanc); box-shadow: var(--ombre); padding: 17px 18px 18px; display: flex; flex-direction: column; min-height: 263px; }
.avis__etoiles { width: 124px; height: auto; margin-bottom: 19px; }
.avis__texte { font-size: 16px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; margin: 0; }
.avis__carte.est-deplie .avis__texte { display: block; -webkit-line-clamp: unset; overflow: visible; }
.avis__plus { align-self: flex-end; margin-top: 5px; background: none; border: 0; padding: 0; font: inherit; font-size: 14px; color: #555; text-decoration: underline; cursor: pointer; }
.avis__nom { font-weight: 600; margin-top: auto; padding-top: 6px; }
.avis__lien { text-align: center; margin-top: 34px; font-size: 18px; }

/* Types de sinistres */
.sinistres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 72px; }
.sinistre img { width: 100%; aspect-ratio: 268 / 224; object-fit: cover; }
.sinistre h3 { margin: 16px 0 14px; font-size: 19px; }
.sinistre h3 a { text-decoration: none; }
.sinistre h3 a:hover { color: var(--vert); }
.sinistre p { font-size: 16px; }

/* Bandeau vert (image + appel à l'action) */
.bandeau { padding: 47px 0 48px; }
.bandeau__boite { display: grid; grid-template-columns: 674fr 476fr; background: var(--vert); color: var(--blanc); }
.bandeau__media img { width: 100%; height: 100%; min-height: 425px; object-fit: cover; }
.bandeau__texte { padding: 25px 40px 30px 44px; display: flex; flex-direction: column; justify-content: center; }
.bandeau__texte h2 { color: var(--blanc); font-size: 35px; margin-bottom: 28px; }
.bandeau__texte .rt { font-size: 18px; }
.bandeau__texte .btn { margin-top: 26px; align-self: flex-start; }

/* Pourquoi faire appel */
.atouts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }
.atout__icone { width: 60px; height: 60px; border-radius: 50%; background: var(--creme); display: grid; place-items: center; margin: 0 auto 14px; color: var(--noir); }
.atout__icone img { width: 30px; height: 34px; object-fit: contain; }
.atout h3 { margin-bottom: 12px; }
.atout p { font-size: 16px; max-width: 243px; margin: 0 auto; }

/* Logos des compagnies */
.logos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 39px 32px; max-width: 950px; margin: 0 auto; }
.logo-carte { background: var(--blanc); box-shadow: var(--ombre); height: 176px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; }
.logo-carte img { width: 187px; height: 79px; object-fit: contain; }
.logo-carte h4 { margin: 0; font-size: 19px; }
.mention { text-align: center; font-size: 18px; margin-top: 34px; }

/* Villes */
.villes-carte { display: block; margin: 0 auto 26px; width: 306px; max-width: 70%; }
.villes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 19px 21px; }
.ville { display: flex; align-items: center; justify-content: center; height: 50px; background: var(--blanc); font-weight: 600; font-size: 14px; text-decoration: none; color: var(--noir); transition: background-color .2s, color .2s; }
.ville:hover { background: var(--vert); color: var(--blanc); }

/* FAQ */
.faq-visuel img { width: 100%; aspect-ratio: 962 / 356; object-fit: cover; margin-bottom: 33px; }
.faq { border-top: 0; }
.faq__item { padding: 18px 0 20px; border-bottom: 1px solid var(--gris-ligne); }
.faq__item:last-child { border-bottom: 0; }
.faq__q { font-size: 17px; margin: 0 0 18px; }
.faq__r { font-size: 16px; }

/* Articles de blog */
.articles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 34px; }
.article-carte { background: var(--blanc); display: flex; flex-direction: column; text-decoration: none; color: var(--noir); }
.article-carte img { width: 100%; aspect-ratio: 292 / 219; object-fit: cover; }
.article-carte__corps { padding: 25px 25px 30px; }
.article-carte h3 { font-size: 19px; line-height: 1.35; margin: 0 0 14px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.article-carte p { font-size: 14px; line-height: 1.45; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.article-carte:hover h3 { color: var(--vert); }

/* Vidéo */
.video { position: relative; width: 100%; max-width: 960px; margin: 0 auto; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.video iframe, .video .video__vignette { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video__bouton { position: absolute; inset: 0; display: grid; place-items: center; background: transparent; border: 0; cursor: pointer; padding: 0; }
.video__bouton img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video__bouton::after { content: ""; position: absolute; z-index: 1; width: 68px; height: 48px; border-radius: 12px; background: #f00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 26px no-repeat; }

/* Article de blog (page) */
.article { max-width: 740px; margin: 0 auto; }
.article__entete { margin-bottom: 30px; }
.article__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: #555; margin-bottom: 18px; }
.article h1 { font-size: 34px; line-height: 1.3; }
.article__couverture { margin: 0 0 30px; }
.article .rt { font-size: 18px; line-height: 1.6; }
.article .rt p { margin-bottom: 1.1em; }
.fil { font-size: 14px; margin-bottom: 18px; }
.fil a { color: var(--vert); }

/* Formulaire de contact */
.formulaire { display: grid; gap: 16px; }
.formulaire .ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.champ label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.champ label.requis::after { content: " *"; }
.champ input, .champ textarea, .champ select { width: 100%; font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid #cfc8bb; background: var(--blanc); border-radius: 0; color: var(--noir); }
.champ textarea { min-height: 140px; resize: vertical; }
.champ input:focus, .champ textarea:focus, .champ select:focus { outline: 2px solid var(--vert); outline-offset: 0; border-color: var(--vert); }
.formulaire__ok { display: none; padding: 16px; background: var(--blanc); border-left: 3px solid var(--vert); }
.formulaire.est-envoye .formulaire__ok { display: block; }
.formulaire.est-envoye > :not(.formulaire__ok) { display: none; }

/* ---------- Pied de page ---------- */
.pied { background: var(--creme); padding: 48px 0 0; font-size: 16px; }
.pied__grille { display: grid; grid-template-columns: 298px 1fr 1fr; gap: 0 104px; padding-bottom: 60px; }
.pied__logo img { width: 194px; height: auto; margin-bottom: 12px; }
.pied__titre { font-family: var(--texte); font-weight: 600; font-size: 18px; margin: 0 0 32px; }
.pied ul { list-style: none; margin: 0; padding: 0; }
.pied li { margin: 0 0 4px; font-size: 14px; }
.pied a { color: var(--noir); text-decoration: underline; text-underline-offset: 2px; }
.pied a:hover { color: var(--vert); }
.pied a.btn, .pied a.btn:hover { color: var(--blanc); text-decoration: none; }
.pied__note { display: flex; align-items: center; gap: 11px; margin: 20px 0 22px; font-size: 14px; line-height: 1.35; text-decoration: none !important; }
.pied__note img { width: 121px; flex: none; }
.pied__bloc + .pied__bloc { margin-top: 44px; }
.pied__copyright { font-size: 14px; padding-bottom: 22px; }
.pied__legal { background: var(--noir); color: var(--blanc); padding: 15px 0; font-size: 14px; }
.pied__legal a { color: var(--blanc); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  :root { --entete: 76px; }
  .entete__logo, .entete__logo img { width: 170px; }
  .burger { display: block; }
  .nav { position: fixed; inset: var(--entete) 0 auto 0; background: var(--creme); flex-direction: column; align-items: stretch; padding: 10px 20px 24px; box-shadow: 0 10px 20px rgba(0,0,0,.08); display: none; }
  .entete.est-ouvert .nav { display: flex; }
  .nav__liste { flex-direction: column; align-items: stretch; }
  .nav__liste li { border-bottom: 1px solid var(--gris-ligne); }
  .nav__liste li + li::before { display: none; }
  .nav__lien { padding: 16px 0; font-size: 17px; }
  .nav__cta { margin: 18px 0 0; }
  .heros__grille, .cols--2, .cols--texte-media, .cols--media-texte { grid-template-columns: 1fr; }
  .sinistres, .articles, .avis, .logos, .grille--3, .cols--3 { grid-template-columns: repeat(2, 1fr); gap: 28px; }
  .villes, .grille--4, .cols--4 { grid-template-columns: repeat(3, 1fr); }
  .bandeau__boite { grid-template-columns: 1fr; }
  .bandeau__media img { min-height: 0; aspect-ratio: 16 / 10; }
  .pied__grille { grid-template-columns: 1fr 1fr; gap: 40px; }
  .pied__grille > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  h1, .t-40 { font-size: 30px; line-height: 38px; }
  h2, .t-35 { font-size: 27px; }
  .t-30 { font-size: 25px; }
  .t-25 { font-size: 22px; }
  .sec { padding: 36px 0; }
  .sinistres, .articles, .avis, .logos, .grille--3, .grille--2, .cols--3, .atouts { grid-template-columns: 1fr; }
  .villes, .grille--4, .cols--4 { grid-template-columns: repeat(2, 1fr); }
  .presse, .cols--etroit-large { grid-template-columns: 1fr; }
  .presse__portraits { grid-template-columns: repeat(2, 146px); }
  .btn { min-width: 0; width: 100%; }
  .bandeau__texte { padding: 26px 20px 30px; }
  .bandeau__texte h2 { font-size: 27px; }
  .formulaire .ligne { grid-template-columns: 1fr; }
  .pied__grille { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ---------- Pages « type de sinistre » ---------- */
.heros--pilier .heros__grille { grid-template-columns: 503px 523px; gap: 33px; }
.heros--pilier .heros__media img { aspect-ratio: 523 / 437; margin-top: 0; }
.heros--pilier h1 { margin-bottom: 33px; }
.heros--pilier .rt { font-size: 18px; }
.media-texte { display: grid; grid-template-columns: 509px 1fr; gap: 44px; align-items: start; }
.media-texte--etroit { grid-template-columns: 443px 1fr; gap: 20px; }
.media-texte h2 { font-size: 35px; }
.media-texte .rt { font-size: 18px; }
.encadre { background: #dff0df; padding: 14px 20px; margin-top: 28px; }
.encadre h3 { margin-bottom: 6px; }
.colonne { max-width: 805px; margin: 0 auto; }
.colonne--etroite { max-width: 629px; margin: 0 auto; }
.maj { font-size: 14px; color: #555; }
.illustration { margin: 30px auto; max-width: 600px; }
.bandeau--plein { padding: 0; }
.bandeau--plein .bandeau__boite { min-height: 0; }
.bandeau__texte .rt p + p { margin-top: .6em; }
.bandeau__texte .rt a { color: var(--blanc); }
@media (max-width: 1000px) {
  .heros--pilier .heros__grille, .media-texte, .media-texte--etroit { grid-template-columns: 1fr; }
}

/* ---------- Indemnisations obtenues ---------- */
.dossiers { display: grid; gap: 45px; margin-top: 44px; }
.dossier { display: grid; grid-template-columns: 235px 1fr; gap: 30px; align-items: start; }
.dossier img { width: 235px; height: 197px; object-fit: cover; }
.dossier h3 { margin-bottom: 4px; }
.dossier h3 a { color: var(--noir); }
.dossier .rt p { margin-bottom: .25em; }
@media (max-width: 640px) { .dossier { grid-template-columns: 1fr; } .dossier img { width: 100%; height: auto; aspect-ratio: 235 / 197; } }

/* ---------- Parcours de contact (devis, montant, formulaire) ---------- */
.parcours { padding: 29px 0 55px; }
.parcours__boite { background: var(--blanc); box-shadow: var(--ombre-large); padding: 53px 0 60px; }
.parcours h1 { font-size: 40px; margin-bottom: 46px; }
.choix { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px 26px; }
.choix--2 { grid-template-columns: repeat(2, 223px); justify-content: center; }
.choix a { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 59px; padding: 6px 12px; background: var(--vert); border: 1px solid var(--vert); color: var(--blanc); font-weight: 600; font-size: 16px; text-decoration: none; transition: background-color .2s, color .2s; }
.choix a:hover { background: var(--blanc); color: var(--vert); }
.parcours__note { text-align: center; margin-top: 46px; }
.parcours__visuel { display: block; margin: 70px auto 0; width: 411px; max-width: 100%; }
.contact-grille { display: grid; grid-template-columns: 590px 1fr; gap: 113px; align-items: start; }
.contact-entete { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; }
.contact-entete h1 { margin: 0; }
.etape { display: flex; align-items: center; gap: 14px; font-weight: 600; margin: 0 0 30px; }
.etape span { width: 35px; height: 35px; border-radius: 50%; background: var(--vert); color: var(--blanc); display: grid; place-items: center; font-size: 17px; flex: none; }
.formulaire .champ { margin-left: 52px; }
.formulaire .ligne { margin-left: 52px; }
.formulaire .ligne .champ { margin-left: 0; }
.formulaire .btn { margin-left: 52px; width: calc(100% - 52px); }
.formulaire__mention { margin-left: 58px; font-size: 13px; color: #555; }
.formulaire__reserve { margin: 26px 0 0 52px; font-family: var(--titres); font-size: 14px; }
.temoin img.temoin__photo { width: 269px; height: 225px; object-fit: cover; margin-bottom: 20px; }
.temoin .avis__etoiles { margin-bottom: 18px; }
@media (max-width: 1000px) { .choix { grid-template-columns: repeat(2, 1fr); } .contact-grille { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 640px) { .choix, .choix--2 { grid-template-columns: 1fr; } .formulaire .champ, .formulaire .ligne, .formulaire .btn, .formulaire__mention, .formulaire__reserve { margin-left: 0; } .formulaire .btn { width: 100%; } .contact-entete { flex-direction: column; align-items: flex-start; } .parcours h1 { font-size: 30px; } }

/* ---------- Blog : liste ---------- */
.blog-titre { text-align: center; color: var(--vert); font-size: 32px; margin: 10px 0 34px; }
.billets { display: grid; gap: 34px; max-width: 940px; margin: 0 auto; }
.billet { display: grid; grid-template-columns: 1fr 1fr; background: var(--blanc); text-decoration: none; color: var(--noir); min-height: 336px; }
.billet img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 449 / 336; }
.billet__corps { padding: 36px 40px; }
.billet h2 { font-size: 28px; line-height: 1.3; margin-bottom: 18px; }
.billet p { font-size: 15px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.billet:hover h2 { color: var(--vert); }
@media (max-width: 760px) { .billet { grid-template-columns: 1fr; } .billet__corps { padding: 24px; } .billet h2 { font-size: 22px; } }

/* Billets de blog : éléments du corps d'article */
.article .rt h2:first-child, .article .rt figure:first-child { margin-top: 0; }
.article .rt ul, .article .rt ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.article .rt li p { margin-bottom: .4em; }
.article .rt blockquote { font-size: 20px; line-height: 1.5; font-family: var(--titres); padding: .2em 0 .2em 1.2em; margin: 1.4em 0; }
.article .rt blockquote strong { font-weight: 400; }
.article .illustration { max-width: 100%; margin: 30px 0; text-align: center; }
.article .illustration img { display: inline-block; height: auto; }
.article figcaption { font-size: 14px; color: #666; margin-top: 8px; text-align: center; }
.encart { width: 100%; border-collapse: collapse; margin: 1.4em 0; background: var(--creme); }
.encart td { padding: 18px 22px; border-left: 3px solid var(--vert); }
.tableau { overflow-x: auto; margin: 1.4em 0; }
.tableau table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.4; }
.tableau th, .tableau td { border: 1px solid #d9d4c9; padding: 10px 12px; text-align: left; vertical-align: top; }
.tableau th { background: var(--vert); color: var(--blanc); font-weight: 600; }
.tableau tr:nth-child(even) td { background: var(--creme); }
.recents__tete { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 20px; }
.recents__tete h2 { margin: 0; }
.recents__tete a { font-size: 14px; color: var(--noir); }
.article-carte img { aspect-ratio: 289 / 162; }
.article-carte .article-carte__corps { padding: 20px 24px 26px; }

/* Pages villes */
.heros--ville .heros__grille { grid-template-columns: 450px 1fr; gap: 40px; }
.zone { margin-top: 24px; }
.zone h3 { font-size: 17px; line-height: 1.5; font-family: var(--texte); font-weight: 400; }
.ville-visuel { margin: 0 0 30px; }
.ville-visuel img { width: 100%; height: auto; aspect-ratio: 962 / 356; object-fit: cover; }
.ville-texte { margin-top: 30px; }
@media (max-width: 1000px) { .heros--ville .heros__grille { grid-template-columns: 1fr; } }
.bandeau__media a, .ville-visuel a { display: block; height: 100%; }

.formulaire__erreur { display: none; padding: 16px; background: #fdecea; border-left: 3px solid #b3261e; }
.formulaire.est-en-erreur .formulaire__erreur { display: block; }
.formulaire.est-envoye .formulaire__erreur { display: none; }

/* =========================================================
   Design C « bandeau vert » (validé par JD le 6 novembre 2026)
   Bloc ajouté par-dessus la copie Wix : le retirer suffit à revenir au design d'origine
   (avec le logo blanc de l'en-tête dans tools/build.py).
   ========================================================= */
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/assets/fonts/manrope-latin-ext-600-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("/assets/fonts/manrope-latin-600-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/manrope-latin-ext-700-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap;
  src: url("/assets/fonts/manrope-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("/assets/fonts/manrope-latin-ext-800-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("/assets/fonts/manrope-latin-800-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  --titres: "Manrope", "Segoe UI", Helvetica, Arial, sans-serif;
  --vert-nuit: #063f35;
  --noir: #14231f;
  --encre-douce: #3a4945;
  --sable: #e9d9b6;
  --largeur: 1120px;
  --gouttiere: 24px;
  --entete: 96px;
  --rayon: 6px;
}
body { line-height: 1.5; }
h1, h2, h3, h4, h5, h6 { font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
h1, .t-40 { font-size: 44px; line-height: 1.12; }
h2, .t-35 { font-size: 36px; }
h3 { letter-spacing: -0.01em; }
.rt h2 { font-size: 30px; }
.rt h3 { font-size: 22px; }

/* En-tête : bandeau vert */
.entete { background: var(--vert-nuit); box-shadow: 0 2px 16px rgba(0, 0, 0, .14); }
.entete__logo, .entete__logo img { width: 200px; }
.nav { gap: 34px; }
.nav__liste { gap: 34px; }
.nav__liste li + li::before { display: none; }
.nav__lien { padding: 10px 0; font-family: var(--titres); font-size: 15px; font-weight: 600; line-height: 1.2; letter-spacing: 0;
  color: #dbe7e3; border-bottom: 2px solid transparent; transition: color .2s, border-color .2s; }
.nav__lien:hover, .nav__lien[aria-current="page"] { color: var(--blanc); border-bottom-color: var(--sable); }
.nav__cta { margin-left: 0; min-height: 48px; padding: 0 24px; background: var(--creme); color: var(--vert-nuit); font-size: 15px; }
.nav__cta:hover { background: var(--blanc); color: var(--vert-nuit); }
.burger span { background: var(--blanc); }

/* Boutons */
.btn { border-radius: var(--rayon); font-family: var(--titres); font-weight: 800; min-height: 52px; letter-spacing: 0; }
.btn--large { min-height: 56px; }
.choix a { border-radius: var(--rayon); font-family: var(--titres); font-weight: 700; }

/* Sections et héros */
.sec { padding: 64px 0; }
.sec--serre { padding: 32px 0; }
.heros { padding: 64px 0 72px; }
.heros__grille, .heros--pilier .heros__grille { grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.heros--ville .heros__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 48px; }
.heros__texte h1, .heros--pilier h1 { margin-bottom: 24px; }
.heros__texte .rt, .heros--pilier .rt { font-size: 19px; color: var(--encre-douce); }
.heros__texte .rt strong { color: var(--noir); }
.heros__media img { margin-top: 0; border-radius: var(--rayon); }
.note-google { font-size: 16px; color: var(--encre-douce); }
.note-google img { width: 120px; }

/* Cartes */
.carte, .avis__carte, .logo-carte, .article-carte, .billet, .parcours__boite, .bandeau__boite { border-radius: var(--rayon); overflow: hidden; }
.ville { border-radius: var(--rayon); }
.sinistres { gap: 32px; }
.sinistre { background: var(--creme); border-radius: var(--rayon); overflow: hidden; }
.sinistre h3 { margin: 0; padding: 22px 24px 10px; border-top: 4px solid var(--vert); font-size: 20px; }
.sinistre p { padding: 0 24px 26px; color: var(--encre-douce); }
.sinistre p strong { color: var(--noir); }
.media--cover img, .ville-visuel img, .faq-visuel img { border-radius: var(--rayon); }
.champ input, .champ textarea, .champ select { border-radius: 4px; }

/* Pied de page */
.pied__titre { font-family: var(--titres); font-weight: 800; font-size: 16px; }
.pied__legal { background: var(--vert-nuit); }

@media (max-width: 1000px) {
  :root { --entete: 76px; }
  .entete__logo, .entete__logo img { width: 160px; }
  .nav { background: var(--vert-nuit); gap: 0; box-shadow: 0 12px 24px rgba(0, 0, 0, .18); }
  .nav__liste { gap: 0; }
  .nav__liste li { border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .nav__lien { padding: 16px 0; font-size: 17px; color: var(--blanc); border-bottom: 0; }
  .nav__lien:hover, .nav__lien[aria-current="page"] { color: var(--sable); }
  .nav__cta { margin: 18px 0 4px; }
  .heros__grille, .heros--pilier .heros__grille, .heros--ville .heros__grille { grid-template-columns: 1fr; gap: 32px; }
  .heros { padding: 40px 0 48px; }
}
@media (max-width: 640px) {
  h1, .t-40 { font-size: 32px; line-height: 1.15; }
  h2, .t-35 { font-size: 27px; }
  .rt h2 { font-size: 25px; }
  .sec { padding: 44px 0; }
  .heros { padding: 32px 0 40px; }
}
h1, h2, h3 { text-wrap: balance; }
.sec__titre { max-width: 880px; margin-left: auto; margin-right: auto; }

/* Bouton « Contactez un expert » fixé en bas de l'écran (téléphone et tablette uniquement) */
.cta-mobile { display: none; }
@media (max-width: 1000px) {
  .cta-mobile { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(253, 249, 242, .97);
    box-shadow: 0 -6px 18px rgba(0, 0, 0, .12); transform: translateY(110%); visibility: hidden;
    transition: transform .25s ease, visibility .25s; }
  .cta-mobile.est-visible { transform: none; visibility: visible; }
  .cta-mobile__bouton { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; border-radius: var(--rayon);
    background: var(--vert); color: var(--blanc); font-family: var(--titres); font-weight: 800; font-size: 17px; text-decoration: none; }
  .cta-mobile__bouton::before { content: ""; width: 19px; height: 19px; background: currentColor; flex: none;
    -webkit-mask: url("/assets/img/icones/telephone.svg") center / contain no-repeat; mask: url("/assets/img/icones/telephone.svg") center / contain no-repeat; }
  body.avec-cta-mobile { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .entete.est-ouvert ~ .cta-mobile { visibility: hidden; transform: translateY(110%); }
}
@media (prefers-reduced-motion: reduce) { .cta-mobile { transition: none; } }

/* ---------- Confirmation d'envoi du formulaire (07/11/2026, demande de JD) ---------- */
.formulaire .formulaire__ok { display: none; margin-left: 52px; padding: 34px 28px 30px; background: var(--vert); color: var(--blanc);
  text-align: center; border: 0; border-radius: 8px; }
.formulaire.est-envoye .formulaire__ok { display: block; }
.formulaire__ok-icone { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%;
  background: var(--blanc); color: var(--vert); font-size: 30px; font-weight: 700; line-height: 1; margin-bottom: 16px; }
.formulaire__ok p { margin: 0 0 6px; font-size: 17px; }
.formulaire__ok .formulaire__ok-titre { font-size: 22px; font-weight: 700; }
.formulaire__ok-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 24px; }
.formulaire .formulaire__ok .btn { margin: 0; width: auto; min-width: 230px; }
.formulaire .formulaire__ok .btn--tel { background: var(--blanc); color: var(--vert); }
.formulaire .formulaire__ok .btn--contour { background: transparent; color: var(--blanc); box-shadow: inset 0 0 0 2px var(--blanc); }
.formulaire .formulaire__ok .btn--contour:hover { background: var(--blanc); color: var(--vert); }
@media (max-width: 640px) {
  .formulaire .formulaire__ok { margin-left: 0; padding: 28px 18px 22px; }
  .formulaire .formulaire__ok .btn { width: 100%; min-width: 0; }
}

/* ---------- Pied de page : villes sur plusieurs colonnes (08/11/2026, demande de JD) ----------
   Mise en page seulement : mêmes liens, même ordre, même place (colonne du milieu). */
.pied__grille { grid-template-columns: 250px minmax(0, 1fr) 270px; gap: 0 36px; }
.pied__titre { margin-bottom: 18px; }
.pied ul li { margin: 0; font-size: 15px; line-height: 1.4; }
.pied ul a { display: inline-block; padding: 4px 0; color: var(--noir); text-decoration: none; }
.pied ul a:hover, .pied ul a:focus-visible { color: var(--vert); text-decoration: underline; }
.pied__villes { columns: 3 9.4em; column-gap: 20px; }
.pied__villes li { break-inside: avoid; }
.pied__villes li:first-child { column-span: all; margin-bottom: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--gris-ligne); color: var(--encre-douce); }
.pied__bloc + .pied__bloc { margin-top: 36px; }
.pied .btn { min-width: 0; width: 100%; }
@media (min-width: 1001px) {
  .pied__note { flex-direction: column; align-items: flex-start; gap: 6px; }
  .pied__note span { text-wrap: balance; }
}
@media (max-width: 1000px) {
  .pied__grille { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 40px; }
}
@media (max-width: 640px) {
  .pied__grille { grid-template-columns: 1fr; gap: 40px; }
  .pied__villes { columns: 2; column-gap: 16px; }
  .pied ul a { padding: 6px 0; }
}
/* Pied : seul le visuel des étoiles est un lien, comme sur Wix (08/11/2026) */
.pied__note a { display: block; flex: none; line-height: 0; }

/* ---------- Cartes d'articles : lien sur le titre seul, comme sur Wix (08/11/2026) ----------
   Toute la carte reste cliquable grâce à un lien étiré sur le titre. */
.article-carte, .billet { position: relative; }
.article-carte h2, .article-carte .article-carte__titre { font-size: 19px; line-height: 1.35; margin: 0 0 14px; letter-spacing: -0.01em;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.article-carte h2 a, .article-carte .article-carte__titre a, .billet h2 a { color: inherit; text-decoration: none; }
.article-carte h2 a::after, .article-carte .article-carte__titre a::after, .billet h2 a::after { content: ""; position: absolute; inset: 0; }
.article-carte:hover h2, .article-carte:hover .article-carte__titre, .billet:hover h2 { color: var(--vert); }
.article-carte h2 a:focus-visible, .article-carte__titre a:focus-visible, .billet h2 a:focus-visible { outline: 2px solid var(--vert); outline-offset: 4px; }
.article-carte__image { display: block; position: relative; z-index: 1; }
.blog-intro { max-width: 940px; margin: 40px auto 0; font-size: 16px; line-height: 1.6; }

/* Avis : texte complet affiché, comme sur Wix (08/11/2026) */
.avis__texte { display: block; -webkit-line-clamp: unset; overflow: visible; }

/* Articles : mots-clés et bouton de contact repris de Wix (08/11/2026) */
.article__motscles { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-top: 36px; font-size: 14px; }
.article__motscles p { margin: 0; font-weight: 600; }
.article__motscles ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.article__motscles a { display: inline-block; padding: 4px 10px; border: 1px solid var(--gris-ligne); border-radius: 4px; color: var(--noir); text-decoration: none; }
.article__motscles a:hover { border-color: var(--vert); color: var(--vert); }
.article__bouton { margin-top: 24px; }
.rt .article__bouton a.btn { color: var(--blanc); text-decoration: none; }
.article-carte .article-carte__titre { font-family: var(--titres); font-weight: 800; }
