@layer reset, tokens, base, layout, components, utilities, socle;
@font-face {
  font-family: Funnel Display;
  src: url(/fonts/funnel-display-latin.woff2) format("woff2");
  font-weight: 300 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Proza Libre;
  src: url(/fonts/proza-libre-400-latin.woff2) format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Proza Libre;
  src: url(/fonts/proza-libre-400-italic-latin.woff2) format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: Proza Libre;
  src: url(/fonts/proza-libre-500-latin.woff2) format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Proza Libre;
  src: url(/fonts/proza-libre-600-latin.woff2) format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Proza Libre;
  src: url(/fonts/proza-libre-700-latin.woff2) format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: Reddit Mono;
  src: url(/fonts/reddit-mono-latin.woff2) format("woff2");
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}
@layer tokens {
  :root {
    --brique: oklch(36% .075 33deg);
    --brique-2: oklch(29% .055 33deg);
    --brique-claire: oklch(80% .05 40deg);
    --joint: oklch(93% .014 85deg);
    --ciel: oklch(95.5% .006 240deg);
    --ciel-2: oklch(90.5% .01 240deg);
    --blanc: oklch(99% .003 90deg);
    --encre: oklch(24% .02 250deg);
    --gris: oklch(46% .02 250deg);
    --act: oklch(45% .085 232deg);
    --act-ink: oklch(98% .006 90deg);
    --act-clair: oklch(82% .06 232deg);
    --filet: oklch(84% .012 240deg);
    --filet-sombre: oklch(48% .05 33deg);
    --voile: oklch(20% .02 250deg / 86%);
    --voile-leger: oklch(20% .02 250deg / 50%);
    --voile-nul: oklch(20% .02 250deg / 4%);
    --ia-encre: oklch(98% .004 90deg / 78%);
    --ombre-ia: 0 0 3px oklch(15% .02 250deg / 85%);
    --police-titre:
      "Funnel Display",
      "Arial Narrow",
      system-ui,
      sans-serif;
    --police-texte:
      "Proza Libre",
      system-ui,
      sans-serif;
    --police-chiffre:
      "Reddit Mono",
      ui-monospace,
      monospace;
    --texte-ia: 10px;
    --texte-2xs: 11px;
    --texte-xs: 12px;
    --texte-s: 14px;
    --texte-m: 16px;
    --texte-l: 18px;
    --texte-xl: 20px;
    --texte-h4: 22px;
    --texte-h3: 26px;
    --texte-h3-l: 34px;
    --texte-prix: 28px;
    --texte-gros: 72px;
    --titre-h2: 48px;
    --titre-h1: 64px;
    --titre-h1-page: 58px;
    --texte-ligne-serre: 1.02;
    --texte-ligne-titre: 1.1;
    --texte-ligne-corps: 1.55;
    --texte-graisse-titre: 700;
    --texte-graisse-fort: 700;
    --e-1: 4px;
    --e-2: 8px;
    --e-3: 12px;
    --e-4: 16px;
    --e-5: 20px;
    --e-6: 24px;
    --e-7: 32px;
    --e-8: 40px;
    --e-9: 56px;
    --e-10: 72px;
    --e-11: 96px;
    --gouttiere: 40px;
    --largeur: 1200px;
    --lecture: 760px;
    --bord-page: max(var(--gouttiere), calc((100vw - var(--largeur)) / 2 + var(--gouttiere)));
    --entete-h: 66px;
    --barre-h: 64px;
    --bande-photo: 140px;
    --f-fin: 1px;
    --f-moyen: 2px;
    --f-fort: 3px;
    --f-tete: 6px;
    --r-nul: 0;
    --lbq-bande: 20px;
    --lbq-pas: 28px;
    --lbq-dent: 14px;
    --lbq-couture: 6px;
    --plan-fond: -1;
    --plan-dessus: 1;
    --plan-barre: 20;
    --plan-entete: 30;
    --duree-court: .16s;
    --duree-moyen: .26s;
  }
  @media (max-width:1200px) {
    :root {
      --titre-h1: 58px;
      --titre-h1-page: 50px;
      --titre-h2: 42px;
    }
  }
  @media (max-width:900px) {
    :root {
      --gouttiere: 18px;
      --titre-h1: 40px;
      --titre-h1-page: 36px;
      --titre-h2: 32px;
      --texte-h3-l: 28px;
      --texte-gros: 48px;
    }
  }
  @media (max-width:600px) {
    :root {
      --titre-h1: 34px;
      --titre-h1-page: 32px;
      --titre-h2: 28px;
      --texte-prix: 24px;
      --lbq-pas: 20px;
      --lbq-dent: 10px;
    }
  }
  @media (prefers-reduced-motion:reduce) {
    :root {
      --duree-court: 0s;
      --duree-moyen: 0s;
    }
  }
}
@layer reset {
  *,
  *:before,
  *:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--entete-h);
  }
  img {
    display: block;
    max-width: 100%;
  }
  ul,
  ol {
    list-style: none;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
    border-radius: var(--r-nul);
  }
  @media (prefers-reduced-motion:reduce) {
    html {
      scroll-behavior: auto;
    }
  }
}
@layer base {
  body {
    font-family: var(--police-texte);
    font-size: var(--texte-m);
    line-height: var(--texte-ligne-corps);
    color: var(--encre);
    background: var(--ciel);
    -webkit-font-smoothing: antialiased;
  }
  :focus-visible {
    outline: var(--f-moyen) solid var(--act);
    outline-offset: var(--f-moyen);
  }
  h1,
  h2,
  h3,
  h4 {
    font-family: var(--police-titre);
    font-weight: var(--texte-graisse-titre);
    line-height: var(--texte-ligne-serre);
    letter-spacing: 0;
  }
  h2 {
    font-size: var(--titre-h2);
    max-width: 900px;
    margin-bottom: var(--e-4);
  }
}
@layer layout {
  .flm-wrap {
    max-width: var(--largeur);
    margin: 0 auto;
    padding: 0 var(--gouttiere);
  }
  .flm-section {
    padding: var(--e-11) 0;
  }
  .flm-section--ciel2 {
    background: var(--ciel-2);
  }
  .flm-section--joint {
    background: var(--joint);
  }
  .flm-section--brique {
    background: var(--brique);
    color: var(--joint);
  }
  .flm-section--tete-lbq {
    padding-top: calc(var(--e-11) + var(--lbq-dent));
  }
  .flm-section--serre {
    padding: var(--e-8) 0;
  }
  .flm-section--suite {
    padding-top: 0;
  }
  .flm-section:has(+ .flm-section--suite) {
    padding-bottom: 0;
  }
  @media (max-width:900px) {
    .flm-section {
      padding: var(--e-10) 0;
    }
  }
}
@layer components {
  .flm-evitement {
    position: absolute;
    left: var(--e-4);
    top: var(--e-2);
    z-index: var(--plan-entete);
    background: var(--act);
    color: var(--act-ink);
    padding: var(--e-2) var(--e-4);
    font-weight: var(--texte-graisse-fort);
    transform: translateY(-300%);
  }
  .flm-evitement:focus {
    transform: none;
  }
  .flm-surtitre {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--act);
    margin-bottom: var(--e-3);
    display: flex;
    align-items: center;
    gap: var(--e-3);
  }
  .flm-section--brique .flm-surtitre {
    color: var(--act-clair);
  }
  .flm-chapo {
    font-size: var(--texte-l);
    color: var(--gris);
    max-width: 640px;
  }
  .flm-section--brique .flm-chapo {
    color: var(--joint);
  }
  .flm-btn {
    display: inline-block;
    background: var(--act);
    color: var(--act-ink);
    font-weight: var(--texte-graisse-fort);
    font-size: var(--texte-m);
    padding: var(--e-4) var(--e-6);
    border: 0;
    cursor: pointer;
    transition: background var(--duree-court);
    white-space: nowrap;
  }
  .flm-btn:hover {
    background: color-mix(in oklch, var(--act) 85%, var(--encre));
  }
  .flm-btn--plein {
    display: block;
    width: 100%;
    text-align: center;
  }
  .flm-lien {
    font-weight: var(--texte-graisse-fort);
    border-bottom: var(--f-moyen) solid var(--act);
    padding-bottom: 2px;
  }
  .flm-relance {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--e-6);
    border-top: var(--f-fin) solid var(--filet);
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-5) 0;
    margin-top: var(--e-8);
  }
  .flm-relance p {
    font-size: var(--texte-m);
    color: var(--gris);
    max-width: 640px;
  }
  .flm-ph {
    position: relative;
    overflow: hidden;
    background: var(--ciel-2);
  }
  .flm-ph img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .flm-ia {
    position: absolute;
    right: var(--e-2);
    bottom: var(--e-1);
    z-index: var(--plan-dessus);
    font-family: var(--police-texte);
    font-size: var(--texte-ia);
    font-weight: 600;
    letter-spacing: .04em;
    line-height: 1.2;
    color: var(--ia-encre);
    text-shadow: var(--ombre-ia);
    pointer-events: none;
  }
  .flm-leg {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: var(--plan-dessus);
    background: var(--brique);
    color: var(--joint);
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    padding: var(--e-2) var(--e-3);
  }
  .lbq-bord {
    --lbq-c: var(--brique);
    --lbq-fil: var(--joint);
    position: relative;
    height: var(--lbq-bande);
    background: var(--lbq-c);
    margin-bottom: var(--lbq-dent);
  }
  .lbq-bord:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--lbq-couture);
    border-top: var(--f-fin) dashed var(--lbq-fil);
    opacity: .7;
  }
  .lbq-bord:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: var(--lbq-dent);
    background:
      linear-gradient(
        to bottom right,
        var(--lbq-c) 50%,
        transparent 50.5%) 0 0 / var(--lbq-pas) 100% repeat-x,
      linear-gradient(
        to bottom left,
        var(--lbq-c) 50%,
        transparent 50.5%) 0 0 / var(--lbq-pas) 100% repeat-x;
  }
  .lbq-bord--joint {
    --lbq-c: var(--joint);
    --lbq-fil: var(--brique);
  }
  .lbq-bord--brique2 {
    --lbq-c: var(--brique-2);
  }
  .lbq-bord--ciel {
    --lbq-c: var(--ciel);
    --lbq-fil: var(--gris);
  }
  .lbq-bord--ciel2 {
    --lbq-c: var(--ciel-2);
    --lbq-fil: var(--gris);
  }
  .lbq-bord--pend {
    margin-bottom: 0;
  }
  .lbq-glyphe {
    --lbq-c: var(--act);
    display: inline-block;
    flex: none;
    width: 21px;
    height: 12px;
    border-top: var(--f-fort) solid var(--lbq-c);
    background:
      linear-gradient(
        to bottom right,
        var(--lbq-c) 50%,
        transparent 50.5%) 0 0 / 7px 100% repeat-x,
      linear-gradient(
        to bottom left,
        var(--lbq-c) 50%,
        transparent 50.5%) 0 0 / 7px 100% repeat-x;
  }
  .lbq-glyphe--clair {
    --lbq-c: var(--act-clair);
  }
  .flm-bandeau {
    background: var(--brique-2);
    color: var(--joint);
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    display: flex;
    justify-content: space-between;
    gap: var(--e-4);
    padding: var(--e-2) var(--bord-page);
  }
  .flm-entete {
    position: sticky;
    top: 0;
    z-index: var(--plan-entete);
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    background: var(--blanc);
    border-bottom: var(--f-fin) solid var(--filet);
    padding-left: var(--bord-page);
  }
  .flm-entete nav {
    display: flex;
    align-items: center;
  }
  .flm-marque {
    display: flex;
    align-items: center;
    gap: var(--e-3);
    font-family: var(--police-titre);
    font-weight: var(--texte-graisse-titre);
    font-size: var(--texte-h4);
    padding: var(--e-4) 0;
  }
  .flm-marque .lbq-glyphe {
    --lbq-c: var(--brique);
    width: 28px;
    height: 16px;
    background-size: 7px 100%;
  }
  .flm-menu {
    display: flex;
    align-items: center;
    gap: var(--e-7);
    font-weight: 600;
    font-size: var(--texte-s);
  }
  .flm-menu > li > a,
  .flm-menu summary {
    display: block;
    padding: var(--menu-marge, var(--e-2)) 0;
    border-bottom: var(--menu-filet, var(--f-moyen)) solid var(--menu-filet-couleur, transparent);
    transition: border-color var(--duree-court);
    cursor: pointer;
    list-style: none;
  }
  .flm-menu summary::-webkit-details-marker {
    display: none;
  }
  .flm-menu > li > a:hover,
  .flm-menu > li > a[aria-current=page],
  .flm-menu summary:hover,
  .flm-menu details[open] summary,
  .flm-menu summary[aria-current=page] {
    border-color: var(--act);
    border-bottom-color: var(--menu-filet-actif, var(--act));
  }
  .flm-menu__groupe {
    position: relative;
  }
  .flm-menu__panneau {
    position: absolute;
    top: 100%;
    left: calc(-1 * var(--e-5));
    z-index: var(--plan-dessus);
    min-width: 320px;
    margin-top: var(--e-5);
    padding: var(--e-2) var(--e-5);
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
    border-top: var(--f-fort) solid var(--act);
  }
  .flm-menu__panneau a {
    display: flex;
    justify-content: space-between;
    gap: var(--e-5);
    padding: var(--e-2) 0;
    border-bottom: var(--f-fin) solid var(--filet);
    font-weight: 600;
  }
  .flm-menu__sous:last-child a {
    border-bottom: 0;
  }
  .flm-menu__panneau a:hover {
    color: var(--act);
  }
  .flm-menu__panneau small {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    font-weight: 400;
    color: var(--gris);
    white-space: nowrap;
  }
  .flm-entete__actions {
    display: flex;
    align-items: stretch;
  }
  .flm-entete .flm-btn {
    display: flex;
    align-items: center;
    padding: 0 var(--e-7);
  }
  .flm-burger {
    display: none;
    align-items: center;
    padding: 0 var(--e-4);
    border: 0;
    border-left: var(--f-fin) solid var(--filet);
    background: transparent;
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    cursor: pointer;
  }
  .flm-hero {
    position: relative;
    isolation: isolate;
    min-height: 740px;
    color: var(--joint);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: var(--e-9);
    align-items: end;
    padding: var(--e-10) var(--bord-page) var(--e-9);
  }
  .flm-hero__photo {
    position: absolute;
    inset: 0;
    z-index: var(--plan-fond);
  }
  .flm-hero__photo img {
    object-position: 62% center;
  }
  .flm-hero__photo:after {
    content: "";
    position: absolute;
    inset: 0;
    background:
      linear-gradient(
        90deg,
        var(--voile) 0%,
        var(--voile-leger) 50%,
        var(--voile-nul) 80%);
  }
  .flm-hero__txt {
    max-width: 600px;
  }
  .flm-hero__note {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--act-clair);
    margin-bottom: var(--e-5);
    display: flex;
    align-items: center;
    gap: var(--e-3);
  }
  .flm-hero h1 {
    font-size: var(--titre-h1);
    line-height: .98;
    margin-bottom: var(--e-6);
  }
  .flm-hero h1 em,
  .flm-hero-page h1 em {
    font-style: normal;
    color: var(--act-clair);
  }
  .flm-hero__lead {
    font-size: var(--texte-l);
    max-width: 540px;
    margin-bottom: var(--e-7);
  }
  .flm-reperes {
    display: flex;
    flex-wrap: wrap;
    border-top: var(--f-fin) solid color-mix(in oklch, var(--joint) 35%, transparent);
  }
  .flm-reperes__item {
    padding: var(--e-3) var(--e-8) 0 0;
    margin-right: var(--e-8);
    border-right: var(--f-fin) solid color-mix(in oklch, var(--joint) 25%, transparent);
  }
  .flm-reperes__item:last-child {
    border: 0;
    margin: 0;
  }
  .flm-reperes b {
    display: block;
    white-space: nowrap;
    font-family: var(--police-chiffre);
    font-weight: 500;
    font-size: var(--texte-h3-l);
    line-height: 1.1;
    color: var(--act-clair);
  }
  .flm-reperes span {
    font-size: var(--texte-xs);
  }
  .flm-reperes--compact b {
    font-size: var(--texte-h3);
  }
  .flm-reperes--compact .flm-reperes__item {
    padding-right: var(--e-6);
    margin-right: var(--e-6);
  }
  .flm-form {
    position: relative;
    background: var(--blanc);
    color: var(--encre);
    border-top: var(--f-tete) solid var(--act);
  }
  .flm-form__tete {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    column-gap: var(--e-3);
    padding: var(--e-5) var(--e-6) var(--e-1);
  }
  .flm-form__titre {
    font-family: var(--police-titre);
    font-weight: var(--texte-graisse-titre);
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-serre);
    overflow-wrap: anywhere;
  }
  .flm-form__titre--long {
    font-size: var(--texte-xl);
  }
  .flm-form__mention {
    white-space: nowrap;
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    color: var(--gris);
  }
  .flm-form__corps {
    padding: var(--e-1) var(--e-6) var(--e-6);
  }
  .flm-form__note {
    font-size: var(--texte-s);
    color: var(--gris);
    padding-top: var(--e-2);
  }
  .flm-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: var(--e-4);
  }
  .flm-champ {
    display: block;
    padding: var(--e-3) 0 var(--e-1);
  }
  .flm-champ label {
    display: block;
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    color: var(--gris);
    letter-spacing: .04em;
  }
  .flm-champ input,
  .flm-champ select,
  .flm-champ textarea {
    display: block;
    width: 100%;
    border: 0;
    border-bottom: var(--f-fin) solid var(--gris);
    background: transparent;
    padding: var(--e-1) 0;
    font-size: var(--texte-m);
  }
  .flm-champ textarea {
    min-height: 72px;
    resize: vertical;
  }
  .flm-champ input:focus,
  .flm-champ select:focus,
  .flm-champ textarea:focus {
    border-bottom-color: var(--act);
    outline-offset: var(--e-1);
  }
  .flm-form .flm-btn {
    margin-top: var(--e-5);
  }
  .flm-form small {
    display: block;
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    color: var(--gris);
    margin-top: var(--e-3);
  }
  .flm-consent {
    display: flex;
    gap: var(--e-2);
    align-items: flex-start;
    font-size: var(--texte-2xs);
    line-height: 1.4;
    color: var(--gris);
    margin-top: var(--e-3);
  }
  .flm-consent input {
    margin-top: 2px;
    accent-color: var(--act);
  }
  .flm-consent a {
    border-bottom: var(--f-fin) solid var(--gris);
  }
  .flm-erreur {
    background: var(--brique);
    color: var(--joint);
    padding: var(--e-3) var(--e-6);
    font-size: var(--texte-s);
  }
  .flm-engagements {
    background: var(--brique);
    color: var(--joint);
  }
  .flm-engagements ul {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: var(--largeur);
    margin: 0 auto;
    padding: 0 var(--gouttiere);
  }
  .flm-engagements__item {
    display: flex;
    gap: var(--e-3);
    align-items: flex-start;
    padding: var(--e-6) var(--e-6) var(--e-5) 0;
    margin-right: var(--e-6);
    border-right: var(--f-fin) solid var(--filet-sombre);
    font-size: var(--texte-s);
    line-height: 1.4;
    color: color-mix(in oklch, var(--joint) 88%, transparent);
  }
  .flm-engagements__item:last-child {
    border: 0;
    margin: 0;
  }
  .flm-engagements .lbq-glyphe {
    margin-top: 6px;
  }
  .flm-engagements__item p {
    margin: 0;
  }
  .flm-engagements__item b {
    display: block;
    font-weight: var(--texte-graisse-fort);
    margin-bottom: var(--e-1);
  }
  .flm-vedette {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    margin-top: var(--e-8);
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
  }
  .flm-vedette .flm-ph {
    min-height: 440px;
  }
  .flm-vedette__c {
    padding: var(--e-8);
  }
  .flm-vedette__etiq {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--act);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .flm-vedette h3 {
    font-size: var(--texte-h3-l);
    margin: var(--e-3) 0;
  }
  .flm-vedette p {
    color: var(--gris);
    margin-bottom: var(--e-5);
  }
  .flm-prix-gros {
    font-family: var(--police-chiffre);
    font-size: var(--texte-prix);
    white-space: nowrap;
  }
  .flm-prix-gros small {
    display: block;
    white-space: normal;
    font-size: var(--texte-xs);
    color: var(--gris);
  }
  .flm-points {
    margin: var(--e-5) 0 var(--e-6);
    border-top: var(--f-fin) solid var(--filet);
  }
  .flm-points__item {
    display: flex;
    gap: var(--e-3);
    align-items: center;
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-2) 0;
    font-size: var(--texte-s);
  }
  .lbq-tarif {
    margin-top: var(--e-9);
  }
  .lbq-tarif__tete {
    position: relative;
    background: var(--brique);
    color: var(--joint);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--e-4);
    padding: var(--e-3) var(--e-5) var(--e-4);
    margin-bottom: calc(var(--lbq-dent) + var(--e-4));
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .lbq-tarif__titre {
    font-family: var(--police-titre);
    font-weight: var(--texte-graisse-titre);
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-corps);
    letter-spacing: 0;
    text-transform: none;
  }
  .lbq-tarif__tete:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--lbq-couture);
    border-top: var(--f-fin) dashed var(--joint);
    opacity: .6;
  }
  .lbq-tarif__tete:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: var(--lbq-dent);
    background:
      linear-gradient(
        to bottom right,
        var(--brique) 50%,
        transparent 50.5%) 0 0 / var(--lbq-pas) 100% repeat-x,
      linear-gradient(
        to bottom left,
        var(--brique) 50%,
        transparent 50.5%) 0 0 / var(--lbq-pas) 100% repeat-x;
  }
  .lbq-tarif__item a {
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr) auto;
    gap: var(--e-6);
    align-items: center;
    padding: var(--e-4) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .lbq-tarif .flm-ph {
    height: 88px;
  }
  .lbq-tarif__item h3 {
    font-size: var(--texte-h4);
    display: flex;
    align-items: baseline;
    gap: var(--e-3);
  }
  .lbq-tarif__item h3:after {
    content: "";
    flex: 1;
    border-bottom: var(--f-moyen) dotted var(--gris);
    transform: translateY(-4px);
  }
  .lbq-tarif__item p {
    font-size: var(--texte-s);
    color: var(--gris);
    margin-top: var(--e-1);
    max-width: 560px;
  }
  .lbq-tarif .flm-px {
    font-family: var(--police-chiffre);
    font-size: var(--texte-l);
    text-align: right;
    white-space: nowrap;
    margin-top: 0;
    color: var(--encre);
  }
  .lbq-tarif .flm-px small {
    display: block;
    font-size: var(--texte-2xs);
    color: var(--gris);
  }
  .flm-pourquoi {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    background: var(--blanc);
  }
  .flm-pourquoi .flm-ph {
    min-height: 620px;
  }
  .flm-pourquoi__c {
    padding: var(--e-10) var(--bord-page) var(--e-10) var(--e-9);
  }
  .flm-raisons {
    margin: var(--e-7) 0;
    border-top: var(--f-fin) solid var(--filet);
  }
  .flm-raisons__item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    padding: var(--e-4) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-raisons .lbq-glyphe {
    margin-top: 8px;
  }
  .flm-raisons h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
    margin-bottom: var(--e-1);
  }
  .flm-raisons p {
    font-size: var(--texte-s);
    color: var(--gris);
  }
  .lbq-methode {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--e-6);
    margin-top: var(--e-9);
    padding-top: var(--lbq-bande);
  }
  .lbq-methode:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: var(--lbq-bande);
    background: var(--brique);
  }
  .lbq-methode:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(var(--lbq-bande) - var(--lbq-couture));
    border-top: var(--f-fin) dashed var(--joint);
    opacity: .7;
  }
  .lbq-methode__etape {
    display: flex;
    flex-direction: column;
  }
  .lbq-dent {
    display: grid;
    align-content: start;
    justify-items: center;
    row-gap: 2px;
    width: 64px;
    height: 72px;
    padding-top: var(--e-3);
    background: var(--brique);
    color: var(--act-clair);
    font-family: var(--police-chiffre);
    font-weight: 600;
    font-size: var(--texte-l);
    clip-path: polygon(0 0, 100% 0, 100% 62%, 50% 100%, 0 62%);
  }
  .lbq-dent__mot {
    font-size: var(--texte-ia);
    font-weight: 400;
    letter-spacing: .08em;
    text-transform: uppercase;
    line-height: 1.2;
  }
  .lbq-methode h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
    margin: var(--e-4) 0 var(--e-2);
  }
  .lbq-methode p {
    font-size: var(--texte-s);
    color: var(--gris);
    margin-bottom: var(--e-4);
  }
  .lbq-methode .flm-ph {
    height: 200px;
    margin-top: auto;
  }
  .flm-avis-tete {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: var(--e-6);
    border-bottom: var(--f-fort) solid var(--encre);
    padding-bottom: var(--e-5);
  }
  .flm-note {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    font-family: var(--police-titre);
    font-weight: var(--texte-graisse-titre);
    font-size: var(--texte-gros);
    line-height: 1;
  }
  .flm-note small {
    font-size: var(--texte-s);
    color: var(--gris);
  }
  .flm-etoiles {
    color: var(--act);
    letter-spacing: 2px;
    font-size: var(--texte-s);
  }
  .flm-avis {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    align-items: start;
  }
  .flm-avis__item {
    padding: var(--e-7) var(--e-7) var(--e-7) 0;
    margin-right: var(--e-7);
    border-right: var(--f-fin) solid var(--filet);
  }
  .flm-avis__item:last-child {
    border: 0;
    margin: 0;
  }
  .flm-avis .flm-ph {
    height: 300px;
    margin-bottom: var(--e-5);
  }
  .flm-avis blockquote {
    font-size: var(--texte-m);
    line-height: var(--texte-ligne-corps);
    quotes: "« " " »";
  }
  .flm-avis blockquote:before {
    content: open-quote;
  }
  .flm-avis blockquote:after {
    content: close-quote;
  }
  .flm-avis__item:first-child blockquote {
    font-family: var(--police-titre);
    font-size: var(--texte-h4);
    font-weight: 500;
    line-height: 1.3;
  }
  .flm-qui {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--gris);
    margin-top: var(--e-3);
  }
  .flm-avis__un + .flm-avis__un {
    border-top: var(--f-fin) solid var(--filet);
    margin-top: var(--e-6);
    padding-top: var(--e-6);
  }
  .flm-avis--deux {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    border-top: var(--f-fort) solid var(--encre);
    margin-top: var(--e-6);
  }
  .flm-avis--un {
    grid-template-columns: minmax(0, 640px);
    border-top: var(--f-fort) solid var(--encre);
    margin-top: var(--e-6);
  }
  .flm-plus-avis {
    margin-top: var(--e-2);
  }
  .flm-plus {
    display: flex;
    justify-content: space-between;
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-3) 0;
    font-weight: var(--texte-graisse-fort);
    cursor: pointer;
    list-style: none;
  }
  .flm-plus::-webkit-details-marker {
    display: none;
  }
  .flm-plus span {
    font-family: var(--police-chiffre);
    color: var(--act);
  }
  .flm-avis-liste {
    columns: 3;
    column-gap: var(--e-7);
    padding-top: var(--e-5);
  }
  .flm-avis-liste__item {
    break-inside: avoid;
    padding-bottom: var(--e-6);
  }
  .flm-avis-liste blockquote {
    font-size: var(--texte-s);
    quotes: "« " " »";
  }
  .flm-avis-liste blockquote:before {
    content: open-quote;
  }
  .flm-avis-liste blockquote:after {
    content: close-quote;
  }
  .flm-avis-liste .flm-qui {
    margin-top: var(--e-2);
  }
  .flm-equipe {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: var(--e-9);
    margin-top: var(--e-8);
    align-items: stretch;
  }
  .flm-equipe .flm-ph {
    min-height: 420px;
  }
  .flm-roles__item {
    border-top: var(--f-fin) solid var(--filet-sombre);
    padding: var(--e-5) 0;
  }
  .flm-roles__item:last-child {
    border-bottom: var(--f-fin) solid var(--filet-sombre);
  }
  .flm-roles em {
    display: block;
    font-style: normal;
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--act-clair);
    margin-bottom: var(--e-1);
  }
  .flm-roles h3 {
    font-size: var(--texte-h3);
    line-height: var(--texte-ligne-corps);
    margin-bottom: var(--e-1);
  }
  .flm-roles p {
    font-size: var(--texte-s);
  }
  .flm-fiches {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: var(--e-6);
    margin-top: var(--e-8);
  }
  .flm-fc {
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
    border-top: var(--f-tete) solid var(--brique);
  }
  .flm-fc .flm-ph {
    height: 250px;
  }
  .flm-fc__c {
    padding: var(--e-5) var(--e-5) var(--e-6);
  }
  .flm-fc h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
    margin-bottom: var(--e-3);
  }
  .flm-fc dl {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    font-size: var(--texte-s);
    border-top: var(--f-fin) solid var(--filet);
  }
  .flm-fc dt,
  .flm-fc dd {
    padding: var(--e-2) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-fc dt {
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    color: var(--gris);
    letter-spacing: .04em;
    padding-right: var(--e-4);
  }
  .flm-zone {
    display: grid;
    grid-template-columns: 1fr 1.6fr;
    gap: var(--e-9);
  }
  .flm-zone__lien {
    margin-top: var(--e-5);
  }
  .flm-secteur + .flm-secteur {
    margin-top: var(--e-6);
  }
  .flm-secteur h3 {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gris);
    margin-bottom: var(--e-2);
  }
  .flm-communes {
    columns: 3;
    column-gap: var(--e-7);
    border-top: var(--f-fort) solid var(--encre);
  }
  .flm-communes__item {
    break-inside: avoid;
  }
  .flm-communes a {
    display: flex;
    justify-content: space-between;
    gap: var(--e-2);
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-2) 0;
    font-weight: 600;
  }
  .flm-communes a:hover {
    color: var(--act);
  }
  .flm-communes b {
    font-weight: 600;
  }
  .flm-communes span {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    font-weight: 400;
    color: var(--gris);
    white-space: nowrap;
  }
  .flm-faq {
    max-width: 860px;
  }
  .flm-faq__item {
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-4) 0;
  }
  .flm-faq__item:first-of-type {
    border-top: var(--f-fort) solid var(--encre);
  }
  .flm-faq summary {
    display: flex;
    justify-content: space-between;
    gap: var(--e-4);
    font-family: var(--police-titre);
    font-size: var(--texte-xl);
    font-weight: 600;
    cursor: pointer;
    list-style: none;
  }
  .flm-faq summary::-webkit-details-marker {
    display: none;
  }
  .flm-faq summary:after {
    content: "+";
    font-family: var(--police-chiffre);
    color: var(--act);
  }
  .flm-faq__item[open] summary:after {
    content: "−";
  }
  .flm-faq p {
    margin-top: var(--e-2);
    color: var(--gris);
  }
  .flm-fin {
    background: var(--brique);
    color: var(--joint);
    padding: 0 0 var(--e-11);
  }
  .flm-fin .lbq-bord {
    margin-bottom: calc(var(--lbq-dent) + var(--e-10));
  }
  .flm-fin__g {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: var(--e-10);
    align-items: start;
  }
  .flm-fin__g > div {
    padding-top: var(--e-9);
  }
  .flm-fin h2 {
    font-size: var(--titre-h1-page);
  }
  .flm-fin .flm-chapo {
    color: var(--joint);
  }
  .flm-fin .flm-surtitre {
    color: var(--act-clair);
  }
  .flm-pied {
    background: var(--brique-2);
    color: var(--joint);
    padding: var(--e-9) 0 var(--e-7);
    font-size: var(--texte-s);
  }
  .flm-pied__g {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr 1fr;
    gap: var(--e-8);
  }
  .flm-pied__marque {
    font-family: var(--police-titre);
    font-size: var(--texte-h4);
    font-weight: var(--texte-graisse-titre);
    display: flex;
    align-items: center;
    gap: var(--e-3);
    margin-bottom: var(--e-3);
  }
  .flm-pied h2 {
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brique-claire);
    border-bottom: var(--f-fin) solid var(--filet-sombre);
    padding-bottom: var(--e-2);
    margin-bottom: var(--e-3);
    max-width: none;
  }
  .flm-pied__item {
    padding: var(--e-1) 0;
  }
  .flm-pied a:hover {
    border-bottom: var(--f-fin) solid var(--act-clair);
  }
  .flm-pied__g section p {
    max-width: 340px;
  }
  .flm-pied__mail {
    margin-top: var(--e-3);
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
  }
  .flm-pied__bas {
    display: flex;
    justify-content: space-between;
    gap: var(--e-4);
    border-top: var(--f-fin) solid var(--filet-sombre);
    margin-top: var(--e-8);
    padding-top: var(--e-4);
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
  }
  .flm-barre {
    display: none;
  }
  .flm-hero-page {
    position: relative;
    isolation: isolate;
    min-height: 600px;
    color: var(--joint);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: var(--e-9);
    align-items: end;
    padding: var(--e-10) var(--bord-page) var(--e-9);
  }
  .flm-ariane {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    margin-bottom: var(--e-4);
  }
  .flm-ariane ol {
    display: flex;
    flex-wrap: wrap;
  }
  .flm-ariane__maillon:not(:last-child):after {
    content: "/";
    margin: 0 var(--e-2);
  }
  .flm-ariane a {
    border-bottom: var(--f-fin) solid color-mix(in oklch, var(--joint) 50%, transparent);
  }
  .flm-hero-page h1 {
    font-size: var(--titre-h1-page);
    margin-bottom: var(--e-5);
  }
  .flm-hero-page .flm-hero__lead {
    margin-bottom: var(--e-7);
  }
  .flm-hero__photo--centre img {
    object-position: center;
  }
  .flm-hero__photo--pergola img {
    object-position: center 25%;
  }
  .flm-hero__photo--pergola:after {
    background:
      linear-gradient(
        90deg,
        var(--voile) 0%,
        var(--voile-leger) 42%,
        var(--voile-nul) 62%);
  }
  .flm-hero__photo--haut img {
    object-position: center 20%;
  }
  .flm-hero__photo--droite img {
    object-position: center 0%;
    transform: scale(1.2);
    transform-origin: 100% 0%;
  }
  .flm-hero__photo--droite:after {
    background:
      linear-gradient(
        90deg,
        var(--voile) 0%,
        var(--voile-leger) 40%,
        var(--voile-nul) 58%);
  }
  .flm-hero__photo--haut:after {
    background:
      linear-gradient(
        90deg,
        var(--voile) 0%,
        var(--voile-leger) 40%,
        var(--voile-nul) 58%);
  }
  .flm-paire {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--e-1);
    margin-top: var(--e-8);
  }
  .flm-paire .flm-ph {
    height: 430px;
  }
  .flm-paire--une {
    grid-template-columns: minmax(0, 1fr);
  }
  .flm-paire__item figcaption {
    display: flex;
    gap: var(--e-3);
    align-items: center;
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--gris);
    padding-top: var(--e-3);
  }
  .flm-paire__item figcaption b {
    background: var(--brique);
    color: var(--joint);
    font-weight: 500;
    padding: 2px var(--e-2);
  }
  .flm-paire__item:last-child figcaption b {
    background: var(--act);
    color: var(--act-ink);
  }
  .flm-gains {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: var(--e-8);
    border-top: var(--f-fort) solid var(--encre);
  }
  .flm-gains__item {
    padding: var(--e-5) var(--e-5) 0 0;
    margin-right: var(--e-5);
    border-right: var(--f-fin) solid var(--filet);
  }
  .flm-gains__item:last-child {
    border: 0;
    margin: 0;
  }
  .flm-gains h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
    margin: var(--e-2) 0;
  }
  .flm-gains p {
    font-size: var(--texte-s);
    color: var(--gris);
  }
  .flm-budget {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: var(--e-9);
    margin-top: var(--e-8);
    align-items: start;
  }
  .flm-lignes__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--e-6);
    padding: var(--e-4) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-lignes span {
    font-family: var(--police-chiffre);
    font-size: var(--texte-l);
    white-space: nowrap;
  }
  .flm-lignes small {
    display: block;
    font-size: var(--texte-xs);
    color: var(--gris);
  }
  .flm-exemple {
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
    border-top: var(--f-tete) solid var(--act);
    padding: var(--e-7);
  }
  .flm-exemple h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-corps);
    margin-bottom: var(--e-3);
  }
  .flm-exemple .flm-px {
    font-family: var(--police-chiffre);
    font-size: var(--texte-h3-l);
    margin: var(--e-3) 0 var(--e-1);
    white-space: nowrap;
    color: var(--encre);
  }
  .flm-exemple p {
    font-size: var(--texte-s);
    color: var(--gris);
  }
  .flm-deux {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--e-9);
    margin-top: var(--e-8);
  }
  .flm-deux h3 {
    font-size: var(--texte-h3);
    margin-bottom: var(--e-3);
    padding-bottom: var(--e-3);
    border-bottom: var(--f-fort) solid var(--encre);
  }
  .flm-deux__item {
    display: flex;
    gap: var(--e-3);
    align-items: baseline;
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-3) 0;
    font-size: var(--texte-s);
  }
  .flm-deux__voir .flm-deux__item:before {
    content: "!";
    flex: none;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    background: var(--brique);
    color: var(--joint);
    font-family: var(--police-chiffre);
    font-size: var(--texte-2xs);
    font-weight: 700;
  }
  .flm-franc {
    background: var(--blanc);
    border-left: var(--f-tete) solid var(--brique);
    padding: var(--e-7) var(--e-8);
    margin-top: var(--e-8);
    max-width: 900px;
  }
  .flm-franc h3 {
    font-size: var(--texte-h3);
    line-height: var(--texte-ligne-titre);
    margin-bottom: var(--e-2);
  }
  .flm-associes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--e-6);
    margin-top: var(--e-8);
  }
  .flm-associes__item {
    position: relative;
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
    transition: border-color var(--duree-court);
  }
  .flm-associes__item:hover {
    border-color: var(--act);
  }
  .flm-associes__item a:after {
    content: "";
    position: absolute;
    inset: 0;
  }
  .flm-associes .flm-ph {
    height: 150px;
  }
  .flm-associes__c {
    padding: var(--e-4) var(--e-5);
  }
  .flm-associes h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-corps);
  }
  .flm-associes p {
    font-size: var(--texte-s);
    color: var(--gris);
    margin: var(--e-1) 0 var(--e-2);
  }
  .flm-associes span {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--gris);
  }
  .flm-associes--texte .flm-associes__item {
    grid-template-columns: minmax(0, 1fr);
  }
  .flm-lectures {
    margin-top: var(--e-7);
  }
  .flm-maillage {
    margin-top: var(--e-8);
  }
  .flm-maillage h3 {
    font-size: var(--texte-h4);
    margin-bottom: var(--e-3);
  }
  .flm-demarche {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--e-9);
    margin-top: var(--e-8);
    align-items: start;
  }
  .flm-demarche > div p {
    margin-bottom: var(--e-4);
    font-size: var(--texte-l);
  }
  .flm-encadre {
    background: var(--blanc);
    border: var(--f-fin) solid var(--filet);
    border-top: var(--f-tete) solid var(--brique);
    padding: var(--e-6) var(--e-7);
  }
  .flm-encadre h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-corps);
    margin-bottom: var(--e-2);
  }
  .flm-encadre__item {
    font-size: var(--texte-s);
    color: var(--gris);
    padding: var(--e-2) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-encadre__item:last-child {
    border: 0;
  }
  .flm-encadre--seul {
    margin-top: var(--e-8);
    max-width: var(--lecture);
  }
  .flm-projets {
    margin-top: var(--e-8);
    border-top: var(--f-fort) solid var(--encre);
  }
  .flm-projets__item {
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-projets__ligne {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 220px;
    gap: var(--e-6);
    align-items: center;
    padding: var(--e-4) 0;
  }
  .flm-projets .flm-ph {
    height: 110px;
  }
  .flm-projets h3 {
    font-size: var(--texte-h4);
  }
  .flm-projets h3 a:hover {
    color: var(--act);
  }
  .flm-projets p {
    font-size: var(--texte-s);
    color: var(--gris);
    margin-top: var(--e-1);
  }
  .flm-projets .flm-px {
    font-family: var(--police-chiffre);
    font-size: var(--texte-l);
    text-align: right;
    white-space: nowrap;
    margin-top: 0;
    color: var(--encre);
  }
  .flm-projets .flm-px small {
    display: block;
    font-size: var(--texte-2xs);
    color: var(--gris);
  }
  .flm-une-ligne {
    display: flex;
    gap: var(--e-6);
    align-items: center;
    border-top: var(--f-fin) solid var(--filet);
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-5) 0;
    margin-top: var(--e-8);
  }
  .flm-une-ligne .flm-ph {
    width: 180px;
    height: 110px;
    flex: none;
  }
  .flm-une-ligne p {
    font-size: var(--texte-m);
    max-width: 780px;
  }
  .flm-section--serre .flm-une-ligne {
    margin-top: 0;
  }
  .flm-voisines {
    display: flex;
    border-top: var(--f-fort) solid var(--encre);
    margin-top: var(--e-6);
  }
  .flm-voisines__item {
    flex: 1;
    padding: var(--e-4) var(--e-5) var(--e-4) 0;
    margin-right: var(--e-5);
    border-right: var(--f-fin) solid var(--filet);
    font-family: var(--police-titre);
    font-size: var(--texte-h4);
  }
  .flm-voisines__item:last-child {
    border: 0;
    margin: 0;
  }
  .flm-voisines a {
    display: block;
  }
  .flm-voisines span {
    display: block;
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--gris);
  }
  .flm-titre-page {
    font-size: var(--titre-h1-page);
    margin-bottom: var(--e-7);
  }
  .flm-lecture {
    max-width: var(--lecture);
  }
  .flm-lecture > * + * {
    margin-top: var(--e-4);
  }
  .flm-lecture h2 {
    font-size: var(--texte-h3-l);
    line-height: var(--texte-ligne-titre);
    margin: var(--e-8) 0 0;
  }
  .flm-lecture h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
    margin-top: var(--e-6);
  }
  .flm-lecture ul {
    list-style: square;
    padding-left: var(--e-6);
  }
  .flm-lecture li + li {
    margin-top: var(--e-2);
  }
  .flm-lecture a:not(.flm-btn) {
    font-weight: 600;
    border-bottom: var(--f-moyen) solid var(--act);
  }
  .flm-lecture .flm-relance {
    margin: var(--e-8) 0;
  }
  .flm-liste__item {
    border-bottom: var(--f-fin) solid var(--filet);
    padding: var(--e-3) 0;
  }
  .flm-liste__item:first-child,
  .flm-guides {
    border-top: var(--f-fort) solid var(--encre);
  }
  .flm-guides__item a {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    gap: var(--e-6);
    align-items: center;
    padding: var(--e-4) 0;
    border-bottom: var(--f-fin) solid var(--filet);
  }
  .flm-guides .flm-ph {
    height: 130px;
  }
  .flm-guides h3 {
    font-size: var(--texte-h4);
    line-height: var(--texte-ligne-titre);
  }
  .flm-guides__item a:hover h3 {
    color: var(--act);
  }
  .flm-guides__meta {
    font-family: var(--police-chiffre);
    font-size: var(--texte-xs);
    color: var(--gris);
    margin-top: var(--e-2);
  }
  .flm-secteurs {
    margin-top: var(--e-8);
  }
  .flm-bati {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--e-9);
    align-items: center;
  }
  .flm-bati .flm-ph {
    height: 360px;
  }
  @media (max-width:1200px) {
    .flm-menu {
      gap: var(--e-5);
    }
    .flm-hero,
    .flm-hero-page {
      grid-template-columns: minmax(0, 1fr) 350px;
      gap: var(--e-8);
    }
  }
  @media (max-width:900px) {
    .flm-bandeau {
      font-size: var(--texte-2xs);
    }
    .flm-bandeau span:last-child {
      display: none;
    }
    .flm-entete nav {
      display: none;
    }
    .flm-burger {
      display: flex;
    }
    .flm-entete .flm-btn {
      padding: 0 var(--e-4);
      font-size: var(--texte-s);
    }
    .flm-entete[data-ouvert] nav {
      display: block;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      max-height: calc(100vh - var(--entete-h));
      overflow-y: auto;
      background: var(--blanc);
      border-bottom: var(--f-fin) solid var(--filet);
      padding: var(--e-4) var(--gouttiere) var(--e-6);
    }
    .flm-entete[data-ouvert] .flm-menu {
      flex-direction: column;
      align-items: stretch;
      gap: 0;
      --menu-marge: var(--e-3);
      --menu-filet: var(--f-fin);
      --menu-filet-couleur: var(--filet);
      --menu-filet-actif: var(--filet);
    }
    .flm-menu__groupe {
      position: static;
    }
    .flm-menu__panneau {
      position: static;
      min-width: 0;
      margin: 0;
      padding: 0 0 var(--e-2) var(--e-4);
      border: 0;
    }
    .flm-hero,
    .flm-hero-page {
      grid-template-columns: minmax(0, 1fr);
      min-height: 0;
      gap: var(--e-7);
      padding: var(--e-9) var(--gouttiere) var(--e-7);
    }
    .flm-hero__photo:after {
      background:
        linear-gradient(
          180deg,
          var(--voile-leger) 0%,
          var(--voile) 55%);
    }
    .flm-hero__photo--droite img {
      transform: none;
    }
    .flm-hero__lead {
      font-size: var(--texte-m);
    }
    .flm-reperes__item,
    .flm-reperes--compact .flm-reperes__item {
      padding-right: var(--e-4);
      margin-right: var(--e-4);
    }
    .flm-reperes b,
    .flm-reperes--compact b {
      font-size: var(--texte-h3);
    }
    .flm-engagements ul {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .flm-engagements__item {
      border-right: 0;
      border-bottom: var(--f-fin) solid var(--filet-sombre);
      margin-right: var(--e-4);
    }
    .flm-vedette,
    .flm-pourquoi,
    .flm-equipe,
    .flm-zone,
    .flm-fin__g,
    .flm-budget,
    .flm-deux,
    .flm-demarche,
    .flm-paire {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-vedette .flm-ph {
      min-height: 260px;
    }
    .flm-vedette__c {
      padding: var(--e-6) var(--e-5);
    }
    .lbq-tarif__item a {
      grid-template-columns: 72px minmax(0, 1fr);
      gap: var(--e-4);
    }
    .lbq-tarif .flm-ph {
      height: 72px;
    }
    .lbq-tarif .flm-px {
      grid-column: 2;
      text-align: left;
    }
    .flm-pourquoi .flm-ph {
      min-height: 300px;
    }
    .flm-pourquoi__c {
      padding: var(--e-9) var(--gouttiere);
    }
    .lbq-methode {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--e-7);
      padding: 0 0 0 var(--lbq-bande);
    }
    .lbq-methode:before {
      right: auto;
      bottom: 0;
      width: var(--lbq-bande);
      height: auto;
    }
    .lbq-methode:after {
      inset: 0 auto 0 calc(var(--lbq-bande) - var(--lbq-couture));
      border-top: 0;
      border-left: var(--f-fin) dashed var(--joint);
    }
    .lbq-methode__etape {
      display: grid;
      grid-template-columns: 72px minmax(0, 1fr);
      column-gap: var(--e-4);
    }
    .lbq-methode__etape > *:not(.lbq-dent) {
      grid-column: 2;
    }
    .lbq-dent {
      grid-row: 1 / span 3;
      width: 72px;
      height: 56px;
      align-content: center;
      justify-items: start;
      padding: 0 0 0 var(--e-3);
      clip-path: polygon(0 0, 62% 0, 100% 50%, 62% 100%, 0 100%);
    }
    .lbq-methode h3 {
      margin-top: 0;
    }
    .lbq-methode .flm-ph {
      height: 180px;
    }
    .flm-avis,
    .flm-fiches,
    .flm-gains,
    .flm-associes,
    .flm-avis--deux,
    .flm-avis--un {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-avis__item {
      border-right: 0;
      margin-right: 0;
      border-bottom: var(--f-fin) solid var(--filet);
    }
    .flm-avis-tete {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-gains__item {
      border-right: 0;
      margin-right: 0;
      border-bottom: var(--f-fin) solid var(--filet);
      padding-bottom: var(--e-4);
    }
    .flm-equipe .flm-ph {
      min-height: 280px;
    }
    .flm-communes {
      columns: 2;
    }
    .flm-projets__ligne {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-projets .flm-ph {
      height: auto;
      aspect-ratio: 3 / 2;
    }
    .flm-projets .flm-px {
      text-align: left;
    }
    .flm-une-ligne {
      flex-direction: column;
      align-items: flex-start;
    }
    .flm-voisines {
      flex-direction: column;
    }
    .flm-voisines__item {
      border-right: 0;
      margin-right: 0;
      border-bottom: var(--f-fin) solid var(--filet);
    }
    .flm-associes__item {
      grid-template-columns: 120px minmax(0, 1fr);
    }
    .flm-paire .flm-ph {
      height: 260px;
    }
    .flm-pied__g {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .flm-bati {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--e-6);
    }
    .flm-bati .flm-ph {
      height: 240px;
    }
    .flm-guides__item a {
      grid-template-columns: 120px minmax(0, 1fr);
      gap: var(--e-4);
    }
    .flm-guides .flm-ph {
      height: 90px;
    }
    .flm-guides__item .flm-lien {
      display: none;
    }
    .flm-barre {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--e-3);
      background: var(--act);
      color: var(--act-ink);
      padding: var(--e-3) var(--gouttiere);
      font-weight: var(--texte-graisse-fort);
      transition: transform var(--duree-moyen);
    }
    .flm-barre small {
      font-family: var(--police-chiffre);
      font-size: var(--texte-2xs);
      font-weight: 400;
    }
    .flm-barre--masquee {
      transform: translateY(100%);
    }
    .flm-avis-liste {
      columns: 1;
    }
  }
  @media (max-width:600px) {
    .flm-bandeau {
      justify-content: center;
    }
    .flm-btn {
      white-space: normal;
    }
    .flm-relance {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--e-3);
    }
    .flm-marque {
      font-size: var(--texte-l);
      padding: var(--e-3) 0;
    }
    .flm-engagements ul {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-communes {
      columns: 1;
    }
    .flm-pied__g {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-pied__bas {
      flex-direction: column;
    }
    .flm-fin h2 {
      font-size: var(--titre-h2);
    }
    .flm-exemple .flm-px {
      font-size: var(--texte-prix);
    }
    .flm-reperes b,
    .flm-reperes--compact b {
      font-size: min(var(--texte-xl), 4.8vw);
    }
    .flm-reperes {
      flex-wrap: nowrap;
    }
    .flm-hero,
    .flm-hero-page {
      gap: var(--e-4);
      padding: var(--e-6) var(--gouttiere) var(--e-6);
      background: var(--encre);
      padding-top: 0;
    }
    .flm-hero .flm-hero__note,
    .flm-hero .flm-hero__lead,
    .flm-hero-page .flm-hero__lead {
      display: none;
    }
    .flm-hero__photo {
      position: relative;
      inset: auto;
      height: var(--bande-photo);
      margin: 0 calc(-1 * var(--gouttiere));
    }
    .flm-hero__photo:after,
    .flm-hero__photo--pergola:after,
    .flm-hero__photo--haut:after,
    .flm-hero__photo--droite:after {
      background:
        linear-gradient(
          180deg,
          var(--voile-nul) 55%,
          var(--encre) 100%);
    }
    .flm-hero__photo img {
      object-position: 60% 42%;
    }
    .flm-hero__photo--haut img {
      object-position: 54% 18%;
    }
    .flm-hero__photo--droite img {
      object-position: 62% 30%;
    }
    .flm-hero__photo--pergola img {
      object-position: 55% 40%;
    }
    .flm-hero__photo--centre img {
      object-position: 60% 42%;
    }
    .lbq-tarif__tete {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--e-1);
    }
    .lbq-tarif__item a {
      grid-template-columns: 96px minmax(0, 1fr);
    }
    .lbq-tarif .flm-ph {
      height: 96px;
    }
    .flm-lignes__item {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--e-1);
    }
    .flm-associes__item {
      grid-template-columns: minmax(0, 1fr);
    }
    .flm-avis__item {
      padding-right: 0;
    }
    .flm-hero h1 {
      margin-bottom: var(--e-4);
    }
    .flm-hero-page h1 {
      margin-bottom: var(--e-3);
    }
    .flm-ariane {
      margin-bottom: var(--e-2);
    }
    .flm-reperes__item,
    .flm-reperes--compact .flm-reperes__item {
      padding: var(--e-1) var(--e-2) 0 0;
      margin-right: var(--e-2);
    }
    .flm-reperes span {
      font-size: var(--texte-2xs);
      display: block;
      line-height: 1.25;
    }
    .flm-form__tete {
      padding: var(--e-3) var(--e-4) 0;
    }
    .flm-form__corps {
      padding: 0 var(--e-4) var(--e-4);
    }
    .flm-champ {
      padding: var(--e-1) 0 0;
    }
    .flm-champ input,
    .flm-champ select {
      padding: 2px 0;
    }
    .flm-form .flm-btn {
      margin-top: var(--e-3);
    }
  }
}
@layer utilities {
  .flm-piege {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
  }
  .flm-masque {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
}
@layer socle {
  h1,
  h2,
  h3,
  h4 {
    hyphens: manual;
  }
  [data-audit=mobile-action-bar] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--plan-barre);
  }
  @media (max-width:900px) {
    body:has([data-audit=mobile-action-bar]) {
      padding-bottom: var(--barre-h);
    }
  }
  @media not all and (max-width:900px) {
    [data-audit=mobile-action-bar] {
      display: none;
    }
  }
}
