/*
   KL ÉLAGAGE — GENERAL.CSS
   Palette issue du logo fourni : noir #0F0F0F, vert #478501.
   Le vert lumineux est une nuance du même logo, pas une nouvelle couleur de marque.
   Toutes les classes de la page sont préfixées kl- pour limiter les conflits
   avec menu.php, Bureau.php, Credit.php et les modules RGPD existants.
*/
:root {
  --kl-black: #0f0f0f;
  /* Police de reference : la meme que le menu de la page d’accueil. */
  --kl-font: system-ui, -apple-system, "Segoe UI", sans-serif;
  --kl-ink: #171b13;
  --kl-green: #478501;
  --kl-green-dark: #366b00;
  --kl-green-light: #78c61e;
  --kl-green-pale: #ecf5e1;
  --kl-paper: #f6f8f3;
  --kl-white: #fff;
  --kl-mute: #647061;
  --kl-line: #dbe4d5;
  --kl-radius: 23px;
  --kl-shadow: 0 18px 48px rgba(15, 15, 15, .075);
}

html { scroll-padding-top: 20px; }
body { min-width: 320px; font-family: var(--kl-font); }
.kl-page { overflow: clip; color: var(--kl-ink); background: var(--kl-paper); }
.kl-page h1, .kl-page h2, .kl-page h3, .kl-page p { margin-top: 0; }
.kl-page h1, .kl-page h2, .kl-page h3 { font-family: var(--kl-font); }
.kl-page a { color: inherit; }
.kl-page button, .kl-page a, .kl-page summary { -webkit-tap-highlight-color: transparent; }
.kl-page :focus-visible, .kl-skip:focus-visible { outline: 3px solid #8ad83d; outline-offset: 4px; }
.kl-page img { display: block; max-width: 100%; }
.kl-page svg { display: inline-block; flex: 0 0 auto; }
.kl-page em { color: var(--kl-green); font-style: normal; }
.kl-shell { width: min(1200px, calc(100% - 40px)); margin-inline: auto; }
.kl-section { padding-block: clamp(74px, 9vw, 130px); }
.kl-symbols { position: absolute; left: -9999px; width: 0; height: 0; overflow: hidden; }
.kl-icon { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; }
.kl-icon--small { width: 19px; height: 19px; stroke-width: 2.5; }
.kl-skip { position: fixed; z-index: 99999; left: 18px; top: -90px; display: inline-block; padding: 13px 20px; background: #fff; color: #0f0f0f; font-weight: 800; border-radius: 0 0 10px 10px; }
.kl-skip:focus { top: 0; }
.kl-kicker { display: flex; gap: 11px; align-items: center; font-size: .71rem; font-weight: 850; letter-spacing: .22em; text-transform: uppercase; color: var(--kl-green-dark); margin-bottom: 25px; }
.kl-kicker > span { flex: 0 0 auto; width: 21px; height: 6px; background: var(--kl-green); border-radius: 9px; }
.kl-kicker--light { color: #b8ef8c; }
.kl-kicker--light > span { background: #76c51e; }
.kl-page h2 { font-size: clamp(2.1rem, 3.8vw, 3.85rem); line-height: 1.12; letter-spacing: -.057em; font-weight: 820; }
.kl-page h3 { letter-spacing: -.025em; }
.kl-page p { font-size: 1.005rem; line-height: 1.8; color: #56614f; }
.kl-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.kl-btn { display: inline-flex; min-height: 56px; align-items: center; justify-content: center; gap: 12px; padding: 14px 24px; font-size: .92rem; font-weight: 800; text-decoration: none; border-radius: 13px; border: 1px solid transparent; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; line-height: 1.35; }
.kl-btn:hover { transform: translateY(-2px); }
.kl-btn--green { background: #73bd16; color: #0b1804 !important; border-color: #73bd16; box-shadow: 0 9px 24px rgba(102, 188, 13, .16); }
.kl-btn--green:hover { background: #89d831; border-color: #89d831; box-shadow: 0 12px 34px rgba(102, 188, 13, .28); }
.kl-btn--outline { color: #fff !important; border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .055); }
.kl-btn--outline:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .85); }
.kl-btn--dark { color: #fff !important; background: var(--kl-black); border-color: var(--kl-black); }
.kl-btn--dark:hover { background: #2b3425; border-color: #2b3425; }
.kl-btn--line-dark { color: var(--kl-black) !important; border-color: #b9c8b0; background: transparent; }
.kl-btn--line-dark:hover { border-color: var(--kl-green); background: #f0f7e9; }
.kl-text-link { display: inline-flex; gap: 14px; align-items: center; font-weight: 800; font-size: .95rem; text-decoration: none; border-bottom: 2px solid var(--kl-green); padding-bottom: 9px; }
.kl-text-link:hover { color: var(--kl-green); }
.kl-text-link > span { color: var(--kl-green); font-size: 1.25em; }

/* HERO : architecture sombre + photo éditoriale. */
.kl-hero { isolation: isolate; }
.kl-hero__grain { position: absolute; z-index: -1; inset: 0; opacity: .65; pointer-events: none; background: radial-gradient(ellipse at 86% 28%, rgba(71, 133, 1, .16), transparent 34%), radial-gradient(circle at 8% 85%, rgba(115, 189, 22, .065), transparent 34%), linear-gradient(135deg, transparent 48%, rgba(255, 255, 255, .023) 48%, rgba(255, 255, 255, .023) 48.2%, transparent 48.2%); }
.kl-hero::after { content: ""; position: absolute; z-index: -1; width: 490px; height: 490px; border: 1px solid rgba(255, 255, 255, .055); border-radius: 50%; top: -295px; right: -160px; box-shadow: 0 0 0 80px rgba(255, 255, 255, .01), 0 0 0 160px rgba(255, 255, 255, .008); }
.kl-hero__top { display: flex; justify-content: space-between; align-items: center; gap: 25px; padding-top: 21px; padding-bottom: 18px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.kl-brand { display: inline-flex; align-items: center; gap: 13px; min-width: 0; text-decoration: none; }
.kl-brand img { display: block; width: 87px; height: 87px; object-fit: contain; border-radius: 13px; background: #fff; padding: 6px; }
.kl-brand__type { display: flex; flex-direction: column; gap: 5px; }
.kl-brand__type strong { display: block; color: #fff; font-size: 1.36rem; letter-spacing: -.035em; line-height: 1; }
.kl-brand__type small { color: rgba(255, 255, 255, .65); font-size: .7rem; font-weight: 650; letter-spacing: .04em; }
.kl-hero__top-actions { display: flex; align-items: center; gap: 21px; }
.kl-service-status { display: inline-flex; gap: 9px; align-items: center; white-space: nowrap; color: #c6d5b7; font-size: .78rem; font-weight: 700; }
.kl-service-status i { display: inline-block; height: 7px; width: 7px; background: #78c61e; border-radius: 50%; box-shadow: 0 0 0 5px rgba(120, 198, 30, .09); }
.kl-topphone { display: flex; flex-direction: column; gap: 4px; border-left: 1px solid rgba(255, 255, 255, .2); padding-left: 20px; text-decoration: none; color: #b1c6a7 !important; font-size: .68rem; letter-spacing: .055em; text-transform: uppercase; font-weight: 760; }
.kl-topphone span { color: #fff; font-size: 1.05rem; letter-spacing: .02em; }
.kl-topphone:hover span { color: #a3e761; }
.kl-breadcrumb { margin-top: 28px; }
.kl-breadcrumb ol { display: flex; margin: 0; padding: 0; list-style: none; }
.kl-breadcrumb li { color: #a7b7a0; font-size: .75rem; letter-spacing: .03em; }
.kl-breadcrumb li::before { content: "/"; display: inline-block; margin-right: 8px; color: #7abe22; }
.kl-hero__grid { padding-top: 32px; padding-bottom: 65px; }
.kl-hero__copy { position: relative; z-index: 3; }
.kl-hero h1 { color: #fff; font-weight: 820; }
.kl-hero__lead { color: #edf5e8 !important; font-size: clamp(1.04rem, 1.5vw, 1.18rem) !important; line-height: 1.75 !important; max-width: 570px; margin-bottom: 12px; }
.kl-hero__sub { color: #aab9a5 !important; max-width: 510px; font-size: .94rem !important; line-height: 1.75 !important; margin-bottom: 29px; }
.kl-hero__facts { display: flex; gap: 31px; flex-wrap: wrap; margin-top: 48px; padding-top: 25px; border-top: 1px solid rgba(255, 255, 255, .15); max-width: 565px; }
.kl-hero__facts > div { display: flex; flex-direction: column; gap: 2px; }
.kl-hero__facts strong { font-size: clamp(1.38rem, 2.2vw, 2rem); letter-spacing: -.04em; color: #88d934; line-height: 1.15; }
.kl-hero__facts span { color: #afbea8; font-size: .76rem; }
.kl-hero__visual { position: relative; isolation: isolate; padding-left: 15px; }
.kl-hero__visual::before { content: ""; position: absolute; z-index: -1; left: -18px; bottom: -15px; width: 61%; height: 63%; border: 1px solid rgba(120, 198, 30, .68); border-radius: 28px; transform: rotate(-7deg); }
.kl-hero__photo-wrap { position: relative; overflow: hidden; border-radius: 28px; box-shadow: 0 25px 95px rgba(0, 0, 0, .42); }
.kl-hero__photo { height: auto; background: linear-gradient(138deg, #223a18, #6d982e 49%, #11220d); }
.kl-hero__photo-wrap::after { content: ""; position: absolute; inset: 47% 0 0; pointer-events: none; background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, .62)); }
.kl-image-tag { position: absolute; z-index: 1; left: 31px; right: 23px; bottom: 26px; display: flex; flex-direction: column; gap: 5px; }
.kl-image-tag span { font-size: .7rem; color: #b8ed85; font-weight: 850; letter-spacing: .16em; }
.kl-image-tag strong { color: #fff; font-size: clamp(1.1rem, 2vw, 1.7rem); letter-spacing: -.04em; }
.kl-stamp { position: absolute; z-index: 4; display: flex; flex-direction: column; justify-content: center; width: 128px; height: 128px; padding: 18px; left: -40px; top: 48px; border-radius: 20px; background: #74be15; box-shadow: 0 18px 44px rgba(0, 0, 0, .27); transform: rotate(-7deg); }
.kl-stamp strong { color: #112509; font-size: 3rem; letter-spacing: -.07em; line-height: 1; }
.kl-stamp small { margin-top: 5px; color: #17340b; font-size: .68rem; font-weight: 900; line-height: 1.28; letter-spacing: .05em; }
.kl-hero__bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0 23px; border-top: 1px solid rgba(255, 255, 255, .13); color: #a8b6a2; font-size: .69rem; text-transform: uppercase; letter-spacing: .15em; font-weight: 800; }
.kl-hero__bottom b { color: #8bd538; padding-inline: 5px; }

/* Editorial introduction */
.kl-intro { background: #fff; }
.kl-intro__grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: start; gap: clamp(35px, 7vw, 110px); }
.kl-intro h2 { max-width: 600px; margin-bottom: 0; }
.kl-intro__aside { padding-left: 25px; border-left: 2px solid #c6e4b0; }
.kl-intro__aside p { margin-bottom: 18px; }
.kl-intro__aside .kl-text-link { margin-top: 12px; }

/* Services cards */
.kl-services { background: linear-gradient(180deg, #f6f8f3, #f0f4eb); }
.kl-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 60px; margin-bottom: 38px; }
.kl-section-heading > div { flex: 1 1 680px; }
.kl-section-heading h2 { max-width: 760px; margin-bottom: 0; }
.kl-section-heading > p { flex: 0 1 300px; padding-bottom: 5px; margin: 0; }
.kl-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.kl-service-card { display: flex; flex-direction: column; position: relative; padding: 28px 29px 26px; background: #fff; border: 1px solid #e2e9dc; border-radius: var(--kl-radius); box-shadow: 0 5px 22px rgba(0, 0, 0, .022); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.kl-service-card:hover { transform: translateY(-5px); border-color: #b9d99e; box-shadow: var(--kl-shadow); }
.kl-service-card::after { content: ""; height: 3px; background: linear-gradient(90deg, #478501, #84d02b); left: 28px; right: calc(100% - 70px); bottom: 0; position: absolute; transition: right .2s ease; border-radius: 4px 4px 0 0; }
.kl-service-card:hover::after { right: 28px; }
.kl-service-card__head { display: flex; justify-content: space-between; align-items: start; margin-bottom: 25px; }
.kl-icon-box { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; color: var(--kl-green); background: #eef7e8; }
.kl-service-card__number { padding-top: 3px; font-size: .75rem; color: #abb8a6; font-weight: 800; letter-spacing: .09em; }
.kl-service-card h3 { font-size: clamp(1.21rem, 1.85vw, 1.51rem); line-height: 1.25; margin: 0 0 12px; color: var(--kl-black); }
.kl-service-card__short { color: #303d2a !important; font-size: .95rem !important; font-weight: 650; line-height: 1.63 !important; margin-bottom: 12px; }
.kl-service-card__detail { font-size: .89rem !important; line-height: 1.75 !important; margin-bottom: 20px; }
.kl-tags { display: flex; flex-wrap: wrap; gap: 7px; padding: 0; margin: auto 0 21px; list-style: none; }
.kl-tags li { border: 1px solid #d9e8cd; border-radius: 40px; padding: 5px 9px; color: #56714c; background: #f7fbf4; font-size: .71rem; font-weight: 700; }
.kl-service-card__link { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-top: 16px; border-top: 1px solid #e6ebe2; font-size: .89rem; font-weight: 850; text-decoration: none; }
.kl-service-card__link span { display: inline-grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; color: #fff; background: var(--kl-black); font-size: 1.14rem; }
.kl-service-card__link:hover { color: var(--kl-green); }
.kl-service-card__link:hover span { background: var(--kl-green); }
.kl-services__bar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; padding: 25px 30px; margin-top: 18px; border-radius: 17px; background: #e2edda; font-size: .95rem; font-weight: 710; }
.kl-services__bar > div { display: flex; flex-wrap: wrap; gap: 20px; }
.kl-services__bar a { text-decoration: underline; text-decoration-color: var(--kl-green); text-underline-offset: 4px; font-weight: 800; }
.kl-services__bar a:hover { color: var(--kl-green); }

/* La septième prestation occupe une bande éditoriale : rythme visuel moins répétitif. */
@media (min-width: 1101px) {
  .kl-service-card--wide { grid-column: 1 / -1; display: grid; grid-template-columns: 72px minmax(200px, .8fr) minmax(300px, 1.45fr) minmax(210px, .8fr); grid-template-rows: auto auto 1fr; gap: 10px 23px; align-items: start; min-height: 226px; background: linear-gradient(125deg, #151d12, #23371b); border-color: #2e4726; color: white; }
  .kl-service-card--wide::after { background: #84d02b; }
  .kl-service-card--wide .kl-service-card__head { grid-column: 1; grid-row: 1 / 4; display: block; margin: 0; }
  .kl-service-card--wide .kl-service-card__number { display: block; padding: 9px 0 0 9px; color: #abc59a; }
  .kl-service-card--wide h3 { grid-column: 2; grid-row: 1; color: white; align-self: end; margin: 0; }
  .kl-service-card--wide .kl-service-card__short { grid-column: 2; grid-row: 2 / 4; color: #e4f5da !important; margin: 0; }
  .kl-service-card--wide .kl-service-card__detail { grid-column: 3; grid-row: 1 / 4; color: #c8d8c0 !important; margin: 0; }
  .kl-service-card--wide .kl-tags { grid-column: 4; grid-row: 1; margin: 0; }
  .kl-service-card--wide .kl-tags li { background: #2b4525; border-color: #4c6e3c; color: #daf1ce; }
  .kl-service-card--wide .kl-service-card__link { grid-column: 4; grid-row: 2 / 4; color: #f3ffee; border-top-color: #58724b; margin-top: 3px; }
  .kl-service-card--wide .kl-service-card__link span { background: #73bd16; color: #11260b; }
  .kl-service-card--wide .kl-icon-box { background: #36572b; color: #adee73; }
}

/* Photo / method */
.kl-method { background: #fff; }
.kl-method__grid { display: grid; grid-template-columns: .91fr 1.09fr; align-items: center; gap: clamp(36px, 7vw, 100px); }
.kl-feature-photo { position: relative; border-radius: 27px; overflow: hidden; background: #dceacb; box-shadow: var(--kl-shadow); }
.kl-feature-photo img { width: 100%; aspect-ratio: 960/1160; object-fit: cover; }
.kl-feature-photo::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .66)); pointer-events: none; }
.kl-feature-photo__label { position: absolute; z-index: 1; bottom: 28px; left: 28px; right: 28px; display: flex; flex-direction: column; gap: 6px; }
.kl-feature-photo__label span { font-size: .7rem; font-weight: 800; letter-spacing: .2em; color: #bcf490; }
.kl-feature-photo__label strong { font-size: 1.72rem; letter-spacing: -.045em; color: white; }
.kl-method__copy h2 { margin-bottom: 25px; }
.kl-method__copy > p:not(.kl-kicker) { margin-bottom: 14px; }
.kl-steps { display: flex; flex-direction: column; gap: 0; margin-block: 24px 27px; }
.kl-steps article { display: grid; grid-template-columns: 45px 1fr; gap: 15px; padding: 16px 0; border-top: 1px solid #e2ebda; }
.kl-steps article > b { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: #eef6e7; color: var(--kl-green); font-size: .92rem; }
.kl-steps h3 { font-size: 1.03rem; margin: 2px 0 4px; }
.kl-steps p { font-size: .88rem; margin: 0; line-height: 1.65; }

/* Trust / experience */
.kl-experience { position: relative; isolation: isolate; background: #eaf0e5; }
.kl-experience::before { content: ""; z-index: -1; position: absolute; width: 700px; height: 700px; border: 1px solid #d9e3d3; border-radius: 50%; right: -230px; top: -370px; }
.kl-experience__heading { display: flex; justify-content: space-between; align-items: end; gap: 70px; margin-bottom: 40px; }
.kl-experience__heading h2 { max-width: 750px; margin: 0; }
.kl-experience__heading p { max-width: 310px; margin: 0 0 7px; }
.kl-experience__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.kl-experience__grid article { padding: 31px 30px 34px; background: #fff; border-radius: 21px; border: 1px solid #dbe4d4; box-shadow: 0 8px 22px rgba(45, 66, 35, .028); }
.kl-tile-index { display: inline-grid; place-items: center; width: 43px; height: 43px; border-radius: 11px; font-size: .89rem; font-weight: 850; background: var(--kl-black); color: #91e047; margin-bottom: 26px; }
.kl-experience__grid h3 { font-size: 1.32rem; line-height: 1.3; margin-bottom: 12px; }
.kl-experience__grid p { font-size: .9rem; margin-bottom: 0; }

/* Jardin / third image */
.kl-garden { background: #fff; }
.kl-garden__grid { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: clamp(30px, 6vw, 95px); }
.kl-garden__copy h2 { margin-bottom: 24px; }
.kl-garden__copy p:not(.kl-kicker) { margin-bottom: 16px; }
.kl-garden__copy .kl-actions { margin-top: 29px; }
.kl-garden__visual { position: relative; border-radius: 27px; overflow: hidden; isolation: isolate; box-shadow: var(--kl-shadow); background: #cde3ba; }
.kl-garden__visual img { width: 100%; aspect-ratio: 980/1160; object-fit: cover; }
.kl-garden__visual::after { content: ""; position: absolute; inset: 58% 0 0; pointer-events: none; background: linear-gradient(transparent, rgba(7, 15, 4, .78)); }
.kl-garden__note { position: absolute; z-index: 1; bottom: 27px; left: 27px; right: 20px; color: #fff; display: flex; flex-direction: column; gap: 4px; }
.kl-garden__note span { color: #bafa80; font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.kl-garden__note strong { font-size: clamp(1.2rem, 2vw, 1.7rem); letter-spacing: -.04em; }

/* Géolocalisation */
.kl-zone { background: #f0f4ed; }
.kl-zone__top { display: flex; justify-content: space-between; align-items: end; gap: 80px; margin-bottom: 38px; }
.kl-zone__top h2 { max-width: 760px; margin-bottom: 0; }
.kl-zone__top > p { max-width: 340px; margin-bottom: 0; }
.kl-zone__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 18px; align-items: stretch; }
.kl-zone__places { padding: 32px; border-radius: 24px; background: #fff; border: 1px solid #dee8d8; box-shadow: 0 11px 26px rgba(20, 35, 16, .025); }
.kl-zone__places h3 { margin-bottom: 23px; font-size: 1.4rem; }
.kl-place-list { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 17px; padding: 0; margin: 0 0 25px; list-style: none; }
.kl-place-list li { display: flex; gap: 8px; align-items: center; font-size: .91rem; font-weight: 720; }
.kl-place-list .kl-icon { color: #599924; }
.kl-zone__places p { font-size: .92rem; margin-bottom: 23px; }
.kl-map-card { overflow: hidden; display: flex; flex-direction: column; border-radius: 24px; background: #fff; border: 1px solid #dee8d8; box-shadow: 0 11px 26px rgba(20, 35, 16, .025); }
.kl-map-card iframe { display: block; border: 0; width: 100%; height: 100%; min-height: 380px; flex: 1 1 auto; background: #deebd3; }
.kl-map-card__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 17px 21px; font-size: .82rem; font-weight: 700; }
.kl-map-card__foot span { display: inline-flex; align-items: center; gap: 7px; }
.kl-map-card__foot span svg { color: var(--kl-green); }
.kl-map-card__foot a { color: var(--kl-green); text-decoration: none; white-space: nowrap; font-weight: 850; }
.kl-map-card__foot a:hover { text-decoration: underline; }

/* Customer trust (no fabricated reviews) */
.kl-feedback { position: relative; isolation: isolate; color: #fff; background: #121712; }
.kl-feedback::before { content: ""; z-index: -1; position: absolute; inset: 0; background: radial-gradient(ellipse at 5% 35%, rgba(77, 138, 10, .19), transparent 45%); }
.kl-feedback__grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: clamp(30px, 7vw, 110px); }
.kl-feedback h2 { max-width: 550px; margin-bottom: 0; color: #fff; }
.kl-feedback h2 em { color: #93e34f; }
.kl-feedback__panel { padding: clamp(27px, 4.5vw, 55px); background: #1e281b; border: 1px solid #34452c; border-radius: 24px; }
.kl-feedback__symbol { display: block; font-size: 5rem; font-weight: 800; font-family: Georgia,serif; line-height: .6; color: #89db3b; margin: 0 0 15px; }
.kl-feedback__panel h3 { color: #fff; font-size: 1.6rem; line-height: 1.35; margin-bottom: 13px; }
.kl-feedback__panel p { color: #cfddc9 !important; font-size: 1rem; }
.kl-feedback__actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 27px; }
.kl-feedback__rating { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.kl-feedback__rating strong { font-size: 3rem; letter-spacing: -.06em; color: #fff; }
.kl-feedback__rating span { color: #8adf3c; font-size: 1.15rem; letter-spacing: .12em; }
.kl-text-link--light { color: #c4eead !important; }

/* FAQ accordion */
.kl-faq { background: #fff; }
.kl-faq__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(35px, 7vw, 100px); align-items: start; }
.kl-faq__intro h2 { margin-bottom: 19px; }
.kl-faq__intro > p:not(.kl-kicker) { margin-bottom: 0; }
.kl-faq__contact { padding: 22px; margin-top: 33px; border: 1px solid #dae9cf; border-radius: 18px; background: #f2f8ed; display: flex; flex-direction: column; gap: 8px; }
.kl-faq__contact p { font-size: .91rem; font-weight: 750; margin-bottom: 6px; color: #243621; line-height: 1.55; }
.kl-faq__contact a { font-size: .9rem; text-decoration: none; font-weight: 790; color: var(--kl-green); }
.kl-faq__contact a:hover { text-decoration: underline; }
.kl-faq__item { margin-bottom: 10px; border: 1px solid #dfe9d9; border-radius: 15px; background: #f8faf6; overflow: hidden; }
.kl-faq__item[open] { background: #f4f8ef; border-color: #a8cf8a; box-shadow: 0 10px 26px rgba(38, 88, 10, .05); }
.kl-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 13px; padding: 20px 21px; cursor: pointer; list-style: none; color: #202c1c; font-size: 1rem; font-weight: 780; line-height: 1.45; }
.kl-faq__item summary::-webkit-details-marker { display: none; }
.kl-faq__plus { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; color: var(--kl-green); background: #e6f1da; font-size: 1.35rem; line-height: 1; flex: 0 0 auto; transition: transform .18s ease, background .18s ease; }
.kl-faq__item[open] .kl-faq__plus { transform: rotate(45deg); background: #cbe9ad; }
.kl-faq__item p { padding: 0 21px 20px; margin: 0; font-size: .94rem; line-height: 1.78; }

/* Ending call to action */
.kl-final { position: relative; background: var(--kl-black); color: #fff; padding-block: clamp(60px, 7vw, 95px); overflow: hidden; }
.kl-final::after { content: ""; position: absolute; pointer-events: none; width: 700px; height: 700px; top: -410px; right: -220px; border-radius: 50%; border: 1px solid rgba(117, 196, 32, .19); box-shadow: 0 0 0 70px rgba(115, 190, 24, .045), 0 0 0 140px rgba(115, 190, 24, .023); }
.kl-final__inner { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 36px; }
.kl-final h2 { font-size: clamp(2.2rem, 4.1vw, 4.2rem); max-width: 720px; line-height: 1.09; margin-bottom: 15px; }
.kl-final h2 em { color: #93e34f; }
.kl-final p:not(.kl-kicker) { color: #c5d2bd; max-width: 650px; margin-bottom: 0; }
.kl-final__actions { display: flex; flex-direction: column; gap: 12px; flex: 0 0 auto; }
.kl-final__actions .kl-btn { min-width: 245px; }

/* Footer */
.kl-footer { padding-top: 68px; background: #0a0e09; color: #fff; }
.kl-footer__grid { display: grid; grid-template-columns: 1.2fr 1fr .65fr; gap: clamp(30px, 5vw, 80px); padding-bottom: 61px; }
.kl-footer__brand > strong { display: block; margin-bottom: 19px; font-size: 2.35rem; line-height: 1; letter-spacing: -.065em; }
.kl-footer__brand > strong span { color: #89d935; }
.kl-footer__brand p { max-width: 350px; font-size: .91rem; color: #aebfa9; line-height: 1.78; }
.kl-footer__motto { font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .16em; color: #94dd5b; }
.kl-footer h2 { margin: 0 0 19px; color: #fff; letter-spacing: -.02em; font-size: 1rem; font-weight: 800; }
.kl-footer address { display: block; font-style: normal; color: #b7c6b0; font-size: .9rem; line-height: 1.8; margin-bottom: 15px; }
.kl-footer a { display: block; text-decoration: none; color: #f6fff0; font-size: .91rem; margin-bottom: 11px; }
.kl-footer a:hover { color: #a6ee71; }
.kl-footer__hours { display: flex; gap: 7px; align-items: center; margin-top: 17px; font-size: .81rem !important; color: #bed6af !important; }
.kl-footer__hours svg { color: #8dd946; }
.kl-footer nav ul { padding: 0; list-style: none; margin: 0; }
.kl-footer__base { display: flex; justify-content: space-between; gap: 12px; padding-block: 21px; border-top: 1px solid #263123; color: #8fa18a; font-size: .74rem; }

@media (max-width: 1100px) {
  .kl-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .kl-stamp { width: 105px; height: 105px; left: -26px; top: 22px; }
  .kl-stamp strong { font-size: 2.5rem; }
  .kl-stamp small { font-size: .6rem; }
  .kl-section-heading, .kl-experience__heading, .kl-zone__top { align-items: start; gap: 30px; }
  .kl-section-heading > p { max-width: 300px; }
  .kl-topphone span { font-size: .95rem; }
}
@media (max-width: 820px) {
  .kl-section { padding-block: 78px; }
  .kl-hero__top { padding-top: 15px; }
  .kl-hero__top-actions { gap: 10px; }
  .kl-service-status { display: none; }
  .kl-hero__grid { gap: 39px; }
  .kl-hero__visual { padding-left: 0; }
  .kl-hero__visual::before { bottom: -13px; left: 10px; }
  .kl-stamp { left: -12px; }
  .kl-intro__grid, .kl-method__grid, .kl-garden__grid, .kl-zone__grid, .kl-feedback__grid, .kl-faq__grid { grid-template-columns: 1fr; gap: 38px; }
  .kl-intro__aside { padding-left: 19px; }
  .kl-section-heading, .kl-experience__heading, .kl-zone__top { flex-direction: column; align-items: start; gap: 15px; }
  .kl-section-heading > div { flex-basis: auto; }
  .kl-section-heading > p, .kl-experience__heading p, .kl-zone__top > p { max-width: 680px; flex-basis: auto; }
  .kl-feature-photo img, .kl-garden__visual img { max-height: 560px; object-position: center 40%; }
  .kl-feature-photo { order: 2; }
  .kl-method__copy { order: 1; }
  .kl-garden__visual { order: 2; }
  .kl-experience__grid { grid-template-columns: 1fr; }
  .kl-experience__grid article { padding: 27px 28px; }
  .kl-tile-index { margin-bottom: 14px; }
  .kl-map-card iframe { min-height: 420px; }
  .kl-final__inner { flex-direction: column; align-items: stretch; }
  .kl-final__actions { flex-direction: row; flex-wrap: wrap; }
  .kl-footer__grid { grid-template-columns: 1fr 1fr; }
  .kl-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .kl-shell { width: min(100% - 30px, 1200px); }
  .kl-section { padding-block: 63px; }
  .kl-page h2 { font-size: clamp(2rem, 9vw, 2.8rem); }
  .kl-page p { font-size: .96rem; }
  .kl-kicker { font-size: .67rem; gap: 9px; line-height: 1.4; }
  .kl-brand { gap: 10px; }
  .kl-brand img { width: 62px; height: 62px; padding: 3px; border-radius: 10px; }
  .kl-brand__type strong { font-size: 1rem; }
  .kl-brand__type small { font-size: .57rem; }
  .kl-topphone { padding-left: 12px; font-size: .58rem; }
  .kl-topphone span { font-size: .84rem; }
  .kl-hero__grid { padding-top: 28px; padding-bottom: 47px; }
  .kl-hero h1 { font-size: clamp(2.6rem, 11vw, 3.7rem); }
  .kl-hero__lead { font-size: 1rem !important; }
  .kl-hero__facts { gap: 15px; justify-content: space-between; margin-top: 31px; }
  .kl-hero__facts span { font-size: .67rem; max-width: 90px; }
  .kl-hero__photo { aspect-ratio: 4/4; max-height: 380px; }
  .kl-hero__photo-wrap { border-radius: 20px; }
  .kl-stamp { width: 89px; height: 89px; padding: 12px; border-radius: 13px; top: -9px; left: -8px; }
  .kl-stamp strong { font-size: 2.12rem; }
  .kl-stamp small { font-size: .5rem; }
  .kl-image-tag { left: 20px; bottom: 19px; }
  .kl-hero__bottom { font-size: .59rem; letter-spacing: .07em; }
  .kl-hero__bottom span:last-child { display: none; }
  .kl-actions .kl-btn { flex-grow: 1; }
  .kl-card-grid { grid-template-columns: 1fr; gap: 12px; }
  .kl-service-card { padding: 25px 24px 22px; }
  .kl-service-card__head { margin-bottom: 17px; }
  .kl-icon-box { height: 57px; width: 57px; }
  .kl-service-card__detail { font-size: .9rem !important; }
  .kl-services__bar { padding: 22px; align-items: flex-start; }
  .kl-services__bar > div { gap: 14px; }
  .kl-feature-photo img, .kl-garden__visual img { max-height: 440px; }
  .kl-place-list { gap: 12px 6px; }
  .kl-place-list li { font-size: .79rem; }
  .kl-zone__places { padding: 24px; }
  .kl-map-card iframe { min-height: 330px; }
  .kl-map-card__foot { font-size: .77rem; }
  .kl-faq__item summary { padding: 17px; font-size: .94rem; }
  .kl-faq__item p { padding: 0 17px 17px; }
  .kl-final__actions { flex-direction: column; }
  .kl-final__actions .kl-btn { width: 100%; }
  .kl-footer { padding-top: 51px; }
  .kl-footer__grid { grid-template-columns: 1fr; gap: 31px; padding-bottom: 40px; }
  .kl-footer__brand { grid-column: auto; }
  .kl-footer__base { flex-direction: column; }
}
@media (max-width: 375px) {
  .kl-brand__type small { display: none; }
  .kl-brand__type strong { font-size: .92rem; }
  .kl-topphone span { font-size: .72rem; }
  .kl-btn { padding: 12px 15px; font-size: .86rem; }
  .kl-hero__facts > div { min-width: 27%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ================================================================
   KL ÉLAGAGE — ÉDITION MOTION / V2
   Couleurs de la marque : #0F0F0F et #478501. Toutes les animations
   restent décoratives et sont désactivées en mode mouvement réduit.
   ================================================================ */

/* Barre de lecture discrète. Pas de changement de dimensions au scroll. */
.kl-progress {
  pointer-events: none; position: fixed; inset: 0 0 auto; z-index: 60;
  height: 3px; background: transparent; transform: translateZ(0);
}
.kl-progress span {
  display: block; height: 100%; width: 100%; transform: scaleX(0);
  transform-origin: left center; background: linear-gradient(90deg, #478501, #86d836);
  box-shadow: 0 0 15px rgba(116, 210, 34, .6); will-change: transform;
}

/* Hero : halo à la souris, topographie vectorielle et micro-particules. */
.kl-hero {
  --kl-cursor-x: 70%; --kl-cursor-y: 42%;
  background-image:
    radial-gradient(ellipse at 82% 23%, rgba(71, 133, 1, .17), transparent 38%),
    linear-gradient(124deg, #0c0e0a 0%, #101610 53%, #0b0e09 100%);
}
.kl-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 410px 350px at var(--kl-cursor-x) var(--kl-cursor-y), rgba(112, 186, 28, .12), transparent 75%);
}
.kl-hero > .kl-shell { position: relative; z-index: 2; }
.kl-hero__grain { z-index: 0; }
.kl-hero__contours {
  position: absolute; pointer-events: none; z-index: 1; top: -13%; right: -8%;
  width: 72%; height: 116%; color: #73b930; opacity: .22;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 35%, #000 80%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 35%, #000 80%, transparent);
  animation: kl-contour-breath 24s ease-in-out infinite alternate;
}
.kl-hero__contours svg { width: 100%; height: 100%; }
.kl-hero__drift {
  position: absolute; z-index: 1; pointer-events: none; display: block;
  width: 25px; height: 13px; background: #67bd1a; border-radius: 90% 0 90% 0;
  opacity: .28; filter: blur(.5px); animation: kl-leaf-drift 14s ease-in-out infinite alternate;
}
.kl-hero__drift--a { top: 30%; left: 49%; transform: rotate(25deg); }
.kl-hero__drift--b { top: 70%; right: 5%; width: 19px; height: 10px; animation-delay: -5s; }
.kl-hero__drift--c { top: 17%; right: 27%; width: 17px; height: 9px; animation-delay: -9s; }
.kl-hero__copy { animation: kl-enter-up .9s cubic-bezier(.18,.8,.2,1) both; }
.kl-hero__visual { animation: kl-enter-right 1.05s cubic-bezier(.18,.8,.2,1) .14s both; }
.kl-hero__top, .kl-breadcrumb { animation: kl-fade-in .7s ease both; }
.kl-hero__chapter {
  display: inline-block; color: rgba(180, 230, 150, .64); letter-spacing: .22em;
  font-size: .65rem; font-weight: 800; margin-bottom: 16px;
}
.kl-hero h1 { text-wrap: balance; }
.kl-hero h1 span {
  background: linear-gradient(105deg, #6fbf19 0%, #a6e75c 40%, #72bb22 72%, #a6e75c 100%);
  background-size: 240% auto; -webkit-background-clip: text; background-clip: text;
  color: transparent; animation: kl-text-sheen 10s linear infinite;
}
.kl-hero__photo-wrap {
  isolation: isolate; border: 1px solid rgba(151, 214, 81, .18);
  box-shadow: 0 38px 105px rgba(0, 0, 0, .53), 0 0 75px rgba(80, 160, 8, .08);
  transition: box-shadow .6s ease, transform .6s cubic-bezier(.19,1,.22,1);
}
.kl-hero__photo-wrap:hover { transform: translateY(-6px); box-shadow: 0 47px 120px rgba(0,0,0,.58), 0 0 95px rgba(80,160,8,.14); }
.kl-hero__photo { position: relative; z-index: 1; transition: transform 1.1s cubic-bezier(.2,.8,.2,1), opacity .25s ease; }
.kl-hero__photo-wrap:hover .kl-hero__photo { transform: scale(1.055); }
.kl-photo-frame {
  position: absolute; z-index: 4; inset: 14px; border: 1px solid rgba(255,255,255,.27);
  border-radius: 18px; pointer-events: none;
  -webkit-mask: linear-gradient(#000, #000) top left / 42px 42px no-repeat, linear-gradient(#000, #000) bottom right / 42px 42px no-repeat;
  mask: linear-gradient(#000, #000) top left / 42px 42px no-repeat, linear-gradient(#000, #000) bottom right / 42px 42px no-repeat;
}
.kl-hero__photo-wrap::after { z-index: 2; }
.kl-image-tag { z-index: 3; }
.kl-hero__photo-wrap::before {
  content: ""; pointer-events: none; position: absolute; z-index: 3; inset: -65% auto auto -40%;
  height: 160%; width: 32%; transform: rotate(29deg) translateX(-180%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .11), transparent);
}
.kl-hero__photo-wrap:hover::before { animation: kl-sweep 1.2s ease-out 1 both; }
.kl-stamp { overflow: visible; animation: kl-stamp-bob 5.5s ease-in-out infinite; }
.kl-stamp__orbit {
  position: absolute; inset: -24px; width: calc(100% + 48px); height: calc(100% + 48px);
  overflow: visible; animation: kl-orbit 32s linear infinite;
}
.kl-stamp__orbit text { font-size: 10.8px; font-family: system-ui, sans-serif; font-weight: 900; letter-spacing: 2.1px; fill: #c2f6a0; }
.kl-stamp strong, .kl-stamp small { position: relative; z-index: 1; }
.kl-service-status i { animation: kl-dot-pulse 2.7s ease-out infinite; }
.kl-hero__facts strong { display: inline-block; transition: transform .35s ease; }
.kl-hero__facts > div:hover strong { transform: translateY(-4px) scale(1.04); }

/* Bande cyclique sous le premier écran, dans le vert de l'identité. */
.kl-ribbon { width: 100%; overflow: hidden; background: #72b920; border-top: 1px solid #92d34e; border-bottom: 1px solid #4d9511; color: #0f0f0f; }
.kl-ribbon__track { width: max-content; display: flex; animation: kl-ribbon-slide 33s linear infinite; }
.kl-ribbon:hover .kl-ribbon__track { animation-play-state: paused; }
.kl-ribbon__group { display: flex; align-items: center; flex: 0 0 auto; gap: clamp(18px, 2.8vw, 38px); padding: 19px clamp(18px,2.8vw,38px) 19px 0; white-space: nowrap; }
.kl-ribbon__group span { font-size: clamp(.7rem, .99vw, .85rem); letter-spacing: .16em; font-weight: 950; }
.kl-ribbon__group b { font-size: 1.38rem; line-height: 1; font-weight: 400; transform: rotate(-15deg); }

/* Titres soulignés et géométrie typographique. */
.kl-intro { position: relative; isolation: isolate; }
.kl-intro::before { content: "KL."; position: absolute; z-index: -1; top: 14px; left: max(2%, calc((100% - 1360px) / 2)); font-size: clamp(130px, 28vw, 340px); line-height: 1; font-weight: 950; letter-spacing: -.11em; color: rgba(71,133,1,.027); user-select: none; }
.kl-intro h2 em, .kl-section-heading h2 em, .kl-experience h2 em, .kl-method h2 em, .kl-garden h2 em {
  text-decoration-line: underline; text-decoration-style: solid; text-decoration-thickness: .07em;
  text-underline-offset: .13em; text-decoration-color: rgba(104, 184, 16, .32);
}
.kl-intro__aside { position: relative; }
.kl-intro__aside::before { content: ""; position: absolute; top: 0; left: -2px; height: 55px; width: 3px; background: #478501; box-shadow: 0 0 15px rgba(71,133,1,.23); }

/* Cartes : effet de profondeur / halo à la souris, repères lumineux. */
.kl-services { position: relative; isolation: isolate; }
.kl-services::before {
  content: ""; position: absolute; z-index: -1; top: 40px; right: -10%; width: 58vw; height: 58vw;
  border-radius: 50%; background: radial-gradient(circle, rgba(111,192,19,.08), transparent 65%);
  pointer-events: none;
}
.kl-service-card {
  --kl-card-x: 50%; --kl-card-y: 50%; --kl-card-rotate-x: 0deg; --kl-card-rotate-y: 0deg;
  isolation: isolate; overflow: hidden;
  background-image: radial-gradient(280px circle at var(--kl-card-x) var(--kl-card-y), rgba(99, 183, 22, .075), transparent 70%);
  transition: transform .42s cubic-bezier(.22,.8,.25,1), border-color .3s ease, box-shadow .42s ease;
}
.kl-service-card::before {
  content: ""; pointer-events: none; position: absolute; z-index: -1; top: -132px; right: -130px;
  width: 300px; height: 300px; border: 1px solid rgba(71,133,1,.08); border-radius: 50%;
  box-shadow: 0 0 0 45px rgba(71,133,1,.025), 0 0 0 90px rgba(71,133,1,.013);
  transition: transform .7s ease, opacity .6s ease;
}
.kl-service-card:hover {
  transform: perspective(1000px) translateY(-7px) rotateX(var(--kl-card-rotate-x)) rotateY(var(--kl-card-rotate-y));
  border-color: #a9ce8e; box-shadow: 0 24px 65px rgba(21,52,6,.115);
}
.kl-service-card:hover::before { transform: translate(-25px, 35px) scale(1.1); }
.kl-icon-box { transition: transform .5s cubic-bezier(.2,.8,.2,1), background .35s ease, color .35s ease; }
.kl-service-card:hover .kl-icon-box { transform: rotate(-8deg) scale(1.09); color: #0c2406; background: #b2ea78; }
.kl-service-card__link span { transition: transform .35s ease, background .3s ease; }
.kl-service-card:hover .kl-service-card__link span { transform: rotate(45deg); }
.kl-service-card--primary {
  background-color: #162310;
  background-image: radial-gradient(350px circle at var(--kl-card-x) var(--kl-card-y), rgba(111,195,25,.28), transparent 73%), linear-gradient(145deg, #101b0d, #25371a);
  border-color: #426329; color: #fff;
}
.kl-service-card--primary::before { border-color: rgba(180,241,119,.19); box-shadow: 0 0 0 45px rgba(178,235,120,.055), 0 0 0 90px rgba(178,235,120,.026); }
.kl-service-card--primary h3 { color: #fff; }
.kl-service-card--primary .kl-service-card__short { color: #e1f2d3 !important; }
.kl-service-card--primary .kl-service-card__detail { color: #c4d4b9 !important; }
.kl-service-card--primary .kl-service-card__number { color: #b5caab; }
.kl-service-card--primary .kl-icon-box { color: #b0ea78; background: rgba(115,186,48,.18); }
.kl-service-card--primary .kl-tags li { background: #2b4422; color: #def4cc; border-color: #426934; }
.kl-service-card--primary .kl-service-card__link { color: white; border-top-color: #48653c; }
.kl-service-card--primary .kl-service-card__link span { background: #78c61e; color: #11200a; }
.kl-service-card--primary:hover { border-color: #7dbf44; }
.kl-service-card--wide { background-image: radial-gradient(450px circle at var(--kl-card-x) var(--kl-card-y), rgba(138,210,76,.12), transparent 75%), linear-gradient(125deg,#151d12,#23371b); }
.kl-services__bar { box-shadow: inset 0 1px rgba(255,255,255,.76); }

/* Grande respiration graphique. */
.kl-promise {
  position: relative; isolation: isolate; overflow: hidden; min-height: 430px;
  background: #0b100a; color: #fff; padding: clamp(80px, 9vw, 138px) 0;
}
.kl-promise::before {
  content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 700px 450px at 80% 60%, rgba(62,115,0,.31), transparent 72%),
    repeating-linear-gradient(120deg,transparent 0,transparent 62px,rgba(179,237,125,.035) 63px,transparent 64px);
}
.kl-promise__outline {
  position: absolute; pointer-events: none; user-select: none; z-index: -1;
  top: -0.3em; left: -3%; font-weight: 950; font-size: clamp(165px, 27vw, 480px);
  letter-spacing: -.11em; line-height: 1.4; color: transparent; white-space: nowrap;
  -webkit-text-stroke: 1px rgba(131,192,66,.14);
  animation: kl-promise-float 22s ease-in-out infinite alternate;
}
.kl-promise__rings { position: absolute; width: 600px; height: 600px; top: -85px; right: -60px; pointer-events: none; border-radius: 50%; }
.kl-promise__rings span { position: absolute; border-radius: 50%; inset: 12%; border: 1px solid rgba(134,196,66,.14); }
.kl-promise__rings span:nth-child(2) { inset: 24%; border-style: dashed; animation: kl-orbit 44s linear infinite; }
.kl-promise__rings span:nth-child(3) { inset: 36%; border-width: 2px; border-color: rgba(114,182,32,.22); }
.kl-promise__inner { position: relative; display: grid; grid-template-columns: 115px 1fr 160px; align-items: center; gap: clamp(22px, 4vw, 70px); }
.kl-promise__side { writing-mode: vertical-rl; rotate: 180deg; align-self: center; color: rgba(193,233,166,.65); font-size: .63rem; letter-spacing: .18em; font-weight: 850; }
.kl-promise__side span { color: #74c923; padding: 5px; }
.kl-promise__content h2 { max-width: 790px; font-size: clamp(3rem, 5.7vw, 6.4rem); letter-spacing: -.065em; line-height: 1.045; color: #fff; margin-bottom: 24px; text-wrap: balance; }
.kl-promise__content h2 em { color: #8cdd48; }
.kl-promise__content > p:not(.kl-kicker) { color: #c4d3b8; font-size: 1.05rem; max-width: 560px; margin-bottom: 29px; }
.kl-promise__number { font-size: clamp(110px,14vw,230px); letter-spacing: -.12em; font-weight: 950; color: rgba(117,184,39,.26); line-height: 1; transform: rotate(-13deg); }
.kl-promise__number span { color: #7abf34; font-size: .38em; vertical-align: top; }

/* Photos : encadrement géométrique et repli 100 % CSS/SVG en l'absence du WebP. */
.kl-photo-block { isolation: isolate; }
.kl-photo-block img { position: relative; z-index: 1; transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .25s ease; }
.kl-photo-block:hover img { transform: scale(1.045); }
.kl-photo-block img.kl-photo--error { opacity: 0; }
.kl-photo-art {
  position: absolute; z-index: 0; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; overflow: hidden; color: rgba(184,238,145,.6);
  background: radial-gradient(circle at 54% 36%, #497e2c 0%, #24491c 40%, #0d1e0d 86%);
}
.kl-photo-block--truck .kl-photo-art { background: radial-gradient(circle at 40% 35%, #69883a, #263b20 54%, #0d1c0d 100%); }
.kl-photo-block--garden .kl-photo-art { background: radial-gradient(circle at 42% 32%, #7caa3b, #385925 45%, #122b16 100%); }
.kl-photo-art::before, .kl-photo-art::after { content: ""; position: absolute; inset: 8%; border-radius: 50%; border: 1px solid rgba(215,255,189,.12); box-shadow: 0 0 0 65px rgba(216,255,190,.035), 0 0 0 130px rgba(216,255,190,.025); }
.kl-photo-art::after { inset: 26%; border-style: dashed; box-shadow: none; animation: kl-orbit 40s linear infinite; }
.kl-photo-art svg { width: 65%; max-height: 70%; position: relative; z-index: 1; filter: drop-shadow(0 20px 45px rgba(0,0,0,.2)); }
.kl-photo-art > span { position: absolute; bottom: 9%; color: #d9f3c4; font-size: .65rem; font-weight: 900; letter-spacing: .3em; }
.kl-feature-photo::after, .kl-garden__visual::after { z-index: 2; }
.kl-feature-photo__label, .kl-garden__note { z-index: 3; }
.kl-feature-photo, .kl-garden__visual {
  transition: box-shadow .55s ease, transform .55s cubic-bezier(.19,1,.22,1);
  box-shadow: 0 20px 65px rgba(25,55,15,.115);
}
.kl-feature-photo:hover, .kl-garden__visual:hover { transform: translateY(-6px); box-shadow: 0 36px 85px rgba(20,53,8,.17); }
.kl-feature-photo::before, .kl-garden__visual::before {
  content: "+"; position: absolute; z-index: 3; top: 22px; right: 22px; color: rgba(255,255,255,.9);
  font-size: 2.5rem; line-height: 1; font-weight: 100; pointer-events: none;
  text-shadow: 0 2px 10px rgba(0,0,0,.26);
}

/* Méthode : chronologie animée, par petites étapes. */
.kl-steps { position: relative; }
.kl-steps::before { content: ""; position: absolute; top: 30px; bottom: 26px; left: 18px; border-left: 2px dashed #acd18e; }
.kl-steps article { position: relative; }
.kl-steps article > b { position: relative; z-index: 1; background: #e8f6dc; border: 2px solid #cde8b5; box-shadow: 0 0 0 5px #fff; transition: background .3s ease, transform .4s ease, color .3s ease; }
.kl-steps article:hover > b { transform: scale(1.13) rotate(-8deg); background: #6aab23; color: #fff; }
.kl-steps h3 { transition: color .25s ease; }
.kl-steps article:hover h3 { color: #478501; }

/* Cartes d'expérience et communes : micro-interactions sans décor envahissant. */
.kl-experience__grid article { position: relative; overflow: hidden; transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.kl-experience__grid article:hover { transform: translateY(-7px); border-color: #a6cc8c; box-shadow: 0 25px 55px rgba(22,54,12,.10); }
.kl-experience__grid article::after { content: ""; position: absolute; width: 100%; height: 4px; bottom: 0; left: 0; background: #7ec92d; transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.kl-experience__grid article:hover::after { transform: scaleX(1); }
.kl-place-list li { border-radius: 9px; padding: 7px 9px; margin: -7px -9px; transition: background .25s ease, transform .25s ease; }
.kl-place-list li:hover { transform: translateX(3px); background: #f0f8ea; }
.kl-map-card { transition: box-shadow .3s ease; }
.kl-map-card:hover { box-shadow: 0 22px 65px rgba(21,51,6,.11); }

/* FAQ : prise de focus évidente et ouvertures douces. */
.kl-faq__item { transition: border-color .3s ease, box-shadow .3s ease, background .3s ease; }
.kl-faq__item:hover { border-color: #b7d4a2; }
.kl-faq__item[open] { box-shadow: 0 14px 40px rgba(44,88,10,.07); }
.kl-faq__item[open] > p { animation: kl-faq-reveal .35s ease both; }
.kl-faq__plus { transition: transform .35s ease, background .3s ease; }

/* Boutons avec lueur qui glisse au passage du curseur. */
.kl-btn { position: relative; overflow: hidden; isolation: isolate; }
.kl-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.32) 48%, transparent 65%); transform: translateX(-150%); transition: transform .65s ease; }
.kl-btn:hover::before { transform: translateX(150%); }
.kl-btn svg, .kl-btn > span { transition: transform .26s ease; }
.kl-btn:hover svg, .kl-btn:hover > span { transform: translateX(3px); }
.kl-final { isolation: isolate; }
.kl-final::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 14% 50%, rgba(71,133,1,.18), transparent 40%); }
.kl-final__inner { z-index: 1; }

/* Barre d'accès rapide, réutilise uniquement les 2 liens essentiels. */
.kl-quick {
  position: fixed; z-index: 35; right: clamp(16px, 2.2vw, 36px); bottom: 24px;
  display: flex; gap: 8px; align-items: center; border: 1px solid rgba(255,255,255,.21);
  background: #11170f; border-radius: 16px; padding: 7px;
  box-shadow: 0 18px 50px rgba(0,0,0,.25);
  animation: kl-quick-enter .75s cubic-bezier(.2,.8,.2,1) 1s both;
}
.kl-quick a { display: inline-flex; gap: 8px; align-items: center; justify-content: center; min-height: 43px; text-decoration: none; font-size: .83rem; font-weight: 850; padding: 10px 14px; border-radius: 10px; transition: background .2s ease, transform .2s ease; }
.kl-quick a:hover { transform: translateY(-2px); }
.kl-quick__phone { background: #26321e; color: #f0ffe8 !important; }
.kl-quick__phone:hover { background: #3e542e; }
.kl-quick__contact { background: #78bf24; color: #101f09 !important; }
.kl-quick__contact:hover { background: #93dc45; }

/* Reveal progressif, activé seulement si JS + IntersectionObserver disponibles. */
.kl-motion-ready .kl-reveal:not(.kl-inview) {
  opacity: 0; transform: translate3d(0, 33px, 0); filter: blur(4px);
}
.kl-motion-ready .kl-reveal.kl-inview {
  opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0);
  transition: opacity .78s ease, transform .78s cubic-bezier(.19,.88,.2,1), filter .78s ease;
  transition-delay: var(--kl-delay, 0ms);
}
.kl-motion-ready .kl-reveal.kl-inview.kl-service-card:hover {
  transform: perspective(1000px) translateY(-7px) rotateX(var(--kl-card-rotate-x)) rotateY(var(--kl-card-rotate-y));
  transition-delay: 0ms;
  transition-duration: .35s;
}
.kl-motion-ready .kl-reveal.kl-inview.kl-experience__grid article:hover { transform: translateY(-7px); transition-delay: 0ms; transition-duration: .35s; }
.kl-motion-ready .kl-reveal.kl-inview.kl-photo-block:hover { transform: translateY(-6px); transition-delay: 0ms; transition-duration: .4s; }

/* Animations GPU-friendly, non essentielles à la compréhension des textes. */
@keyframes kl-enter-up { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kl-enter-right { from { opacity: 0; transform: translate3d(30px, 18px, 0) scale(.96); } to { opacity: 1; transform: translate3d(0,0,0) scale(1); } }
@keyframes kl-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes kl-contour-breath { from { transform: translate(0,0) rotate(-2deg) scale(1); } to { transform: translate(-30px,20px) rotate(2deg) scale(1.06); } }
@keyframes kl-leaf-drift { from { translate: 0 -10px; rotate: -12deg; opacity: .13; } to { translate: 24px 28px; rotate: 22deg; opacity: .32; } }
@keyframes kl-stamp-bob { 0%,100% { transform: translateY(0) rotate(-7deg); } 50% { transform: translateY(-8px) rotate(-4deg); } }
@keyframes kl-orbit { to { transform: rotate(360deg); } }
@keyframes kl-text-sheen { 0% { background-position: 100% center; } 100% { background-position: -130% center; } }
@keyframes kl-dot-pulse { 0%,100% { box-shadow: 0 0 0 4px rgba(120,198,30,.12); } 50% { box-shadow: 0 0 0 9px rgba(120,198,30,0); } }
@keyframes kl-sweep { from { transform: rotate(29deg) translateX(-210%); } to { transform: rotate(29deg) translateX(850%); } }
@keyframes kl-ribbon-slide { to { transform: translateX(-50%); } }
@keyframes kl-promise-float { from { transform: translateX(-1%); } to { transform: translateX(7%); } }
@keyframes kl-faq-reveal { from { opacity: 0; transform: translateY(-7px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kl-quick-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1100px) {
  .kl-promise__inner { grid-template-columns: 54px 1fr 120px; gap: 22px; }
  .kl-promise__number { font-size: 120px; }
}
@media (max-width: 820px) {
  .kl-hero__contours { width: 140%; opacity: .12; right: -70%; top: 7%; }
  .kl-hero__drift--a { left: 80%; }
  .kl-hero__chapter { margin-bottom: 12px; }
  .kl-promise__inner { grid-template-columns: 30px 1fr; }
  .kl-promise__number { position: absolute; right: 5px; top: -78px; opacity: .24; }
  .kl-promise__rings { right: -300px; }
  .kl-ribbon__group { padding-block: 16px; }
}
@media (max-width: 600px) {
  .kl-hero__chapter { font-size: .58rem; }
  .kl-hero__contours { width: 160%; right: -75%; opacity: .085; }
  .kl-hero__drift { display: none; }
  .kl-stamp__orbit { inset: -17px; width: calc(100% + 34px); height: calc(100% + 34px); }
  .kl-stamp__orbit text { font-size: 9px; }
  .kl-photo-frame { inset: 9px; border-radius: 13px; }
  .kl-ribbon__group { gap: 15px; padding-right: 15px; }
  .kl-ribbon__group span { font-size: .68rem; }
  .kl-ribbon__group b { font-size: 1.1rem; }
  .kl-promise { padding-block: 75px; min-height: 360px; }
  .kl-promise__inner { display: block; }
  .kl-promise__side { writing-mode: horizontal-tb; rotate: none; margin-bottom: 35px; font-size: .6rem; }
  .kl-promise__content h2 { font-size: clamp(2.6rem, 10.7vw, 4.1rem); }
  .kl-promise__content > p:not(.kl-kicker) { font-size: .96rem; }
  .kl-promise__number { top: -45px; right: 13px; font-size: 100px; }
  .kl-promise .kl-actions .kl-btn { width: 100%; }
  .kl-service-card:hover, .kl-motion-ready .kl-reveal.kl-inview.kl-service-card:hover { transform: none; }
  .kl-feature-photo::before, .kl-garden__visual::before { top: 12px; right: 16px; font-size: 2rem; }
  .kl-quick { left: 0; right: 0; bottom: 0; width: 100%; border-radius: 17px 17px 0 0; gap: 9px; padding: 10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); }
  .kl-quick a { flex: 1; min-height: 49px; border-radius: 10px; font-size: .89rem; }
  .kl-quick__contact { flex: 1.4 !important; }
  .kl-page { padding-bottom: 78px; }
}
@media (max-width: 375px) { .kl-quick a { font-size: .76rem; padding-inline: 7px; } }

/* Accessibilité : toutes les animations sont facultatives. */
@media (prefers-reduced-motion: reduce) {
  .kl-progress span { will-change: auto; }
  .kl-hero__contours, .kl-hero__drift, .kl-hero__copy, .kl-hero__visual,
  .kl-hero__top, .kl-breadcrumb, .kl-hero h1 span, .kl-stamp, .kl-stamp__orbit,
  .kl-service-status i, .kl-ribbon__track, .kl-promise__outline,
  .kl-promise__rings span, .kl-photo-art::after, .kl-quick, .kl-faq__item[open] > p {
    animation: none !important;
  }
  .kl-motion-ready .kl-reveal:not(.kl-inview), .kl-motion-ready .kl-reveal.kl-inview {
    opacity: 1 !important; transform: none !important; filter: none !important;
  }
  .kl-ribbon__track { transform: none; }
  .kl-hero__photo-wrap:hover, .kl-feature-photo:hover, .kl-garden__visual:hover,
  .kl-service-card:hover, .kl-experience__grid article:hover { transform: none !important; }
  .kl-btn::before { display: none; }
}

.kl-quick--off { opacity: 0; pointer-events: none; transform: translateY(24px); transition: opacity .25s ease, transform .25s ease; }

/* ======================================================================
   KL ÉLAGAGE — V3 / NAVIGATION SIGNATURE + BUREAU / FOOTER ÉDITORIAL
   Palette de marque conservée : noir #0F0F0F · vert #478501.
   Modules communs à TOUTES les pages : menu.php et Bureau.php.
   ====================================================================== */

/* Menu : filet d'informations au-dessus de la navigation sticky */
.kl-top-anchor { height: 0; position: relative; }
.kl-nav-utility { position: relative; z-index: 110; color: #cad8c4; background: #080e08; border-bottom: 1px solid rgba(138,213,93,.1); font-size: .71rem; letter-spacing: .025em; }
.kl-nav-utility__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.kl-nav-utility__local, .kl-nav-utility__right, .kl-nav-utility__right > span { display: inline-flex; align-items: center; gap: 10px; }
.kl-nav-utility__local strong { font-weight: 800; color: #ebf6e5; }
.kl-nav-utility__pulse { position: relative; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #87d339; box-shadow: 0 0 0 4px rgba(128,220,57,.1); animation: kl-nav-pulse 2.8s infinite; }
.kl-nav-utility__sep { color: #52664c; }
.kl-nav-utility__right { gap: 23px; }
.kl-nav-utility__right svg { height: 13px; width: 13px; color: #82ca3a; }
.kl-nav-utility__right a { display: inline-flex; align-items: center; gap: 7px; color: #f1f9ed; font-weight: 790; text-decoration: none; transition: color .2s; }
.kl-nav-utility__right a:hover { color: #8ee044; }

.kl-site-header { position: sticky; top: 0; z-index: 120; isolation: isolate; color: #fff; background: rgba(13,19,11,.975); border-bottom: 1px solid rgba(255,255,255,.075); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); transition: box-shadow .25s ease, background .25s ease, border-color .25s ease; }
.kl-site-header.is-scrolled, body.kl-nav-open .kl-site-header { background: rgba(10,15,9,.992); box-shadow: 0 14px 50px rgba(3,8,1,.20); border-color: rgba(126,192,74,.18); }
.kl-site-header__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: clamp(12px,1.25vw,25px); min-height: 88px; }
.kl-site-header__accent { position: absolute; bottom: -1px; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(115,189,22,.25) 38%, rgba(115,189,22,.56) 63%, transparent 100%); pointer-events: none; }
.kl-nav-brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; color: #fff !important; text-decoration: none; min-width: 202px; }
.kl-nav-brand__logo { display: grid; place-items: center; flex: 0 0 65px; width: 65px; height: 65px; padding: 4px; background: #fff; border-radius: 14px; border: 1px solid rgba(134,195,76,.34); box-shadow: 0 6px 24px rgba(0,0,0,.24); transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s; }
.kl-nav-brand__logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.kl-nav-brand:hover .kl-nav-brand__logo { transform: rotate(-3deg) translateY(-2px); box-shadow: 0 12px 30px rgba(80,150,20,.22); }
.kl-nav-brand__name { display: flex; flex-direction: column; gap: 5px; white-space: nowrap; }
.kl-nav-brand__name strong { font-size: 1.2rem; font-weight: 900; letter-spacing: -.058em; line-height: 1; }
.kl-nav-brand__name strong span { color: #9eea5b; }
.kl-nav-brand__name small { font-size: .61rem; color: #a9c19f; font-weight: 690; letter-spacing: .025em; }
.kl-nav-desktop { display: flex; align-items: center; justify-content: center; gap: 0; min-width: 0; flex: 1 1 auto; }
.kl-nav-desktop__link { display: inline-flex; align-items: center; gap: 5px; padding: 14px 10px; min-height: 45px; border: 0; border-radius: 12px; color: #e6eee2 !important; font-size: .84rem; line-height: 1.2; font-weight: 750; text-decoration: none; white-space: nowrap; cursor: pointer; background: transparent; transition: color .22s, background .22s, transform .22s; }
.kl-nav-desktop__link:hover, .kl-nav-desktop__link:focus-visible, .kl-nav-desktop__link.is-current, .kl-nav-services.is-current > summary, .kl-nav-services[open] > summary { color: #a0ed57 !important; background: rgba(132,218,66,.09); }
.kl-nav-desktop__link:hover { transform: translateY(-1px); }
.kl-nav-services { position: static; }
.kl-nav-services > summary { list-style: none; }
.kl-nav-services > summary::-webkit-details-marker, .kl-mobile-nav summary::-webkit-details-marker { display: none; }
.kl-nav-icon { width: 19px; height: 19px; flex: 0 0 auto; }
.kl-nav-services__chevron { width: 15px; height: 15px; transition: transform .27s ease; }
.kl-nav-services[open] .kl-nav-services__chevron { transform: rotate(180deg); }
.kl-nav-actions { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; }
.kl-nav-actions__phone { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; color: #dbefcc !important; background: rgba(255,255,255,.052); border: 1px solid rgba(255,255,255,.16); transition: color .2s, background .2s, transform .2s; }
.kl-nav-actions__phone:hover { color: #a2ed55 !important; background: rgba(117,190,22,.12); transform: translateY(-2px); }
.kl-nav-actions__cta { position: relative; overflow: hidden; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 46px; border-radius: 12px; padding: 11px 15px; background: #79c723; color: #0a1b04 !important; font-size: .8rem; font-weight: 900; letter-spacing: -.012em; text-decoration: none; box-shadow: 0 9px 24px rgba(106,188,18,.16); transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.kl-nav-actions__cta::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(125deg, transparent 22%, rgba(255,255,255,.44) 50%, transparent 72%); transform: translateX(-145%); transition: transform .7s ease; }
.kl-nav-actions__cta:hover { transform: translateY(-2px); background: #8cdb3d; box-shadow: 0 14px 32px rgba(106,188,18,.25); }
.kl-nav-actions__cta:hover::before { transform: translateX(145%); }
.kl-nav-actions__cta svg { height: 16px; width: 16px; }
.kl-nav-actions__cta:hover svg { transform: translate(2px,-2px); }
.kl-nav-actions__cta svg { transition: transform .25s ease; }

/* Megamenu bureau — panneau clair + éditorial vert sombre */
.kl-mega { position: absolute; top: calc(100% - 1px); left: 50%; width: min(1120px, calc(100vw - 32px)); max-height: min(78vh, 710px); overflow: auto; display: grid; grid-template-columns: minmax(0,1fr) 279px; gap: 11px; padding: 11px; background: #f8faf6; border: 1px solid #dae6d2; border-radius: 0 0 24px 24px; box-shadow: 0 30px 80px rgba(0,0,0,.29), 0 2px 0 rgba(255,255,255,.05) inset; color: #192314; animation: kl-mega-in .24s cubic-bezier(.2,.8,.2,1) both; }
.kl-mega__catalog { padding: clamp(20px,2.1vw,31px); min-width: 0; }
.kl-mega__heading { margin-bottom: 21px; }
.kl-mega__eyebrow { display: flex; align-items: center; gap: 11px; color: #578834; font-size: .62rem; font-weight: 950; letter-spacing: .19em; }
.kl-mega__eyebrow i { display: inline-block; width: 22px; height: 1px; background: #9cbf82; }
.kl-mega__heading h2 { color: #14200f; font-size: clamp(1.65rem,2.5vw,2.15rem); letter-spacing: -.058em; line-height: 1.12; margin: 11px 0 0; font-weight: 900; }
.kl-mega__heading h2 em { color: #478501; font-style: normal; }
.kl-mega__links { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; }
.kl-mega__service { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #202c19 !important; border-radius: 13px; border: 1px solid transparent; padding: 11px 10px; min-width: 0; transition: transform .25s, background .25s, border-color .25s, box-shadow .25s; }
.kl-mega__service:hover, .kl-mega__service:focus-visible { transform: translateX(3px); background: #fff; border-color: #d5e9c6; box-shadow: 0 7px 19px rgba(27,67,13,.075); }
.kl-mega__icon { flex: 0 0 45px; display: grid; place-items: center; width: 45px; height: 45px; color: #478501; border-radius: 12px; background: #e9f3e0; transition: background .25s, transform .25s; }
.kl-mega__service:hover .kl-mega__icon { background: #d9efc8; transform: rotate(-6deg); }
.kl-mega__icon svg { width: 22px; height: 22px; }
.kl-mega__text { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 5px; }
.kl-mega__text strong { font-size: .86rem; font-weight: 850; line-height: 1.15; }
.kl-mega__text small { font-size: .70rem; color: #66745f; line-height: 1.3; }
.kl-mega__service-arrow { color: #7d9a70; flex: 0 0 15px; height: 15px; width: 15px; transition: transform .25s, color .25s; }
.kl-mega__service:hover .kl-mega__service-arrow { color: #478501; transform: translate(2px,-2px); }
.kl-mega__feature { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 425px; padding: 27px 24px; overflow: hidden; border-radius: 18px; color: white; background: radial-gradient(ellipse at 76% 24%, rgba(123,210,46,.31),transparent 47%), linear-gradient(151deg,#172b0f,#081307 82%); isolation: isolate; }
.kl-mega__feature::before { content:''; position: absolute; inset: -150px -210px auto auto; height: 400px; width: 400px; border: 1px solid rgba(177,238,130,.24); border-radius: 50%; box-shadow: 0 0 0 54px rgba(156,220,99,.06),0 0 0 110px rgba(156,220,99,.033); z-index: -1; }
.kl-mega__feature-top { position: absolute; top: 27px; left: 24px; font-size: .62rem; font-weight: 900; letter-spacing: .2em; color: #b6ea91; }
.kl-mega__feature-no { position: absolute; top: 5px; right: 10px; font-size: 7.7rem; font-weight: 950; line-height: 1; letter-spacing: -.12em; color: rgba(162,230,94,.10); }
.kl-mega__feature-ring { position: absolute; height: 170px; width: 170px; border: 1px solid rgba(154,236,90,.26); border-radius: 50%; left: 44px; top: 92px; }
.kl-mega__feature-spark { position: absolute; top: 111px; left: 82px; color: #8cde36; font-size: 4.7rem; font-weight: 300; line-height: 1; animation: kl-mega-spark 12s linear infinite; }
.kl-mega__feature strong { position: relative; font-size: 1.95rem; line-height: 1.12; font-weight: 900; letter-spacing: -.065em; }
.kl-mega__feature strong em { color: #a2ee5b; font-style: normal; }
.kl-mega__feature p { position: relative; margin: 14px 0 19px; color: #d0e1c5; line-height: 1.55; font-size: .84rem; }
.kl-mega__cta { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 13px 15px; min-height: 48px; background: #82cc2c; color: #0a1b04 !important; border-radius: 11px; font-size: .83rem; font-weight: 900; text-decoration: none; transition: background .2s, transform .2s; }
.kl-mega__cta:hover { background: #a2eb59; transform: translateY(-2px); }
.kl-mega__cta svg { width: 17px; height: 17px; }
.kl-nav-backdrop { position: fixed; z-index: 108; inset: 0; background: rgba(3,8,2,.50); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility .22s; backdrop-filter: blur(3px); }
body.kl-nav-open .kl-nav-backdrop { opacity: 1; visibility: visible; pointer-events: auto; }

/* Le drawer mobile utilise <details> : ouvert même sans JavaScript. */
.kl-mobile-nav { display: none; flex: 0 0 auto; }
.kl-mobile-nav > summary { display: inline-flex; align-items: center; gap: 11px; min-height: 45px; padding: 10px 13px; border-radius: 12px; border: 1px solid rgba(255,255,255,.19); background: rgba(255,255,255,.06); color: #f5fdef; list-style: none; font-size: .78rem; font-weight: 850; cursor: pointer; }
.kl-mobile-nav__toggle-text { line-height: 1; }
.kl-mobile-nav__hamburger { display: inline-flex; flex-direction: column; justify-content: center; gap: 4px; width: 22px; height: 20px; }
.kl-mobile-nav__hamburger i { display: block; width: 100%; height: 2px; border-radius: 2px; background: #96e047; transition: transform .3s, opacity .3s, width .3s; transform-origin: center; }
.kl-mobile-nav__hamburger i:nth-child(2) { width: 75%; }
.kl-mobile-nav[open] .kl-mobile-nav__hamburger i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.kl-mobile-nav[open] .kl-mobile-nav__hamburger i:nth-child(2) { opacity: 0; }
.kl-mobile-nav[open] .kl-mobile-nav__hamburger i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.kl-mobile-nav__panel { position: absolute; top: calc(100% - 1px); left: -1px; right: -1px; max-height: calc(100dvh - 72px); overflow-y: auto; overscroll-behavior: contain; background: #111a0e; color: #f7fdf4; border-radius: 0 0 24px 24px; border: 1px solid #324528; box-shadow: 0 25px 70px rgba(0,0,0,.38); padding: 24px max(20px,calc((100vw - 900px)/2)) 23px; animation: kl-mobile-open .28s cubic-bezier(.2,.8,.2,1) both; }
.kl-mobile-nav__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #a1b89b; letter-spacing: .16em; font-size: .64rem; font-weight: 850; margin: 4px 0 15px; }
.kl-mobile-nav__top span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.kl-mobile-nav__top i { height: 7px; width: 7px; background: #7dcd2f; border-radius: 50%; }
.kl-mobile-nav__main-link, .kl-mobile-nav__services > summary { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 61px; padding: 15px 1px; border-bottom: 1px solid rgba(255,255,255,.12); font-weight: 830; font-size: clamp(1.1rem,3.1vw,1.42rem); letter-spacing: -.036em; text-decoration: none; color: #f6fff1 !important; list-style: none; cursor: pointer; transition: color .22s; }
.kl-mobile-nav__main-link:hover, .kl-mobile-nav__services > summary:hover { color: #9ee658 !important; }
.kl-mobile-nav__main-link > svg, .kl-mobile-nav__services > summary > svg { height: 20px; width: 20px; color: #8fcb5b; }
.kl-mobile-nav__services > summary > svg { transform: rotate(0deg); transition: transform .3s; }
.kl-mobile-nav__services[open] > summary > svg { transform: rotate(180deg); }
.kl-mobile-nav__services > summary { list-style: none; }
.kl-mobile-nav__service-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; padding: 15px 0 19px; animation: kl-mobile-open .25s ease both; }
.kl-mobile-nav__service-list a { display: flex; gap: 11px; align-items: center; min-width: 0; min-height: 55px; padding: 10px; text-decoration: none; color: #e6f0df !important; border: 1px solid rgba(133,213,87,.11); background: rgba(255,255,255,.048); border-radius: 12px; font-size: .79rem; font-weight: 740; }
.kl-mobile-nav__service-list a:hover { background: rgba(105,170,47,.15); border-color: rgba(133,213,87,.34); }
.kl-mobile-nav__service-list a > svg:first-child { width: 20px; height: 20px; color: #9bdf62; }
.kl-mobile-nav__service-list a span { flex: 1; min-width: 0; }
.kl-mobile-nav__minor-arrow { width: 15px; height: 15px; opacity: .6; }
.kl-mobile-nav__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 23px; }
.kl-mobile-nav__actions > a { display: flex; align-items: center; justify-content: center; gap: 9px; text-decoration: none; min-height: 52px; border-radius: 11px; font-size: .88rem; font-weight: 850; text-align: center; }
.kl-mobile-nav__devis { background: #84cc2f; color: #0d2404 !important; }
.kl-mobile-nav__call { background: #253a1f; color: #f2ffe7 !important; border: 1px solid rgba(169,229,130,.23); }
.kl-mobile-nav__actions svg { width: 18px; height: 18px; }
.kl-mobile-nav__bottom { display: flex; gap: 8px; align-items: center; margin-top: 20px; color: #98b18c; font-size: .72rem; }
.kl-mobile-nav__bottom svg { color: #85c944; width: 16px; height: 16px; }

/* Footer Bureau.php : editorial vert/noir, responsive, sans image externe. */
.kl-footer--v3 { position: relative; isolation: isolate; overflow: hidden; background: #0a0f09; color: #f5fff1; padding: 49px 0 0; }
.kl-footer--v3::before { content: ''; position: absolute; pointer-events: none; inset: 0; z-index: -1; background: radial-gradient(ellipse at 4% 12%, rgba(76,132,18,.15),transparent 35%), radial-gradient(ellipse at 100% 75%, rgba(82,150,22,.09),transparent 40%), repeating-linear-gradient(150deg,transparent 0 149px,rgba(255,255,255,.011) 150px 151px); }
.kl-footer-v3__glow { position: absolute; z-index: -1; pointer-events: none; top: -360px; right: -270px; width: 900px; height: 900px; border: 1px solid rgba(119,175,56,.12); border-radius: 50%; box-shadow: 0 0 0 130px rgba(86,132,33,.026),0 0 0 255px rgba(86,132,33,.013); }
.kl-footer--v3 a { display: inline-flex; margin: 0; text-decoration: none; color: inherit; }
.kl-footer--v3 a:hover { color: #a3ef69; }
.kl-footer--v3 :focus-visible, .kl-site-header :focus-visible, .kl-nav-backdrop:focus-visible { outline: 3px solid #93e450; outline-offset: 4px; }
.kl-footer--v3 h2 { color: #fff; }
.kl-footer-v3__wrap { position: relative; z-index: 1; }
.kl-footer-v3__callout { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(225px,.46fr); align-items: center; gap: 25px; overflow: hidden; padding: clamp(29px,4.3vw,53px); border-radius: 25px; background: linear-gradient(108deg,#518b0d,#7ec52c 68%,#96da41); color: #102506; box-shadow: 0 21px 55px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.25); }
.kl-footer-v3__callout::before { content: ''; position: absolute; inset: 0; background: repeating-radial-gradient(circle at 84% 50%,transparent 0 50px,rgba(6,48,2,.11) 51px 52px); opacity: .55; pointer-events: none; }
.kl-footer-v3__callout::after { content: '✳'; position: absolute; right: 22%; top: -88px; font-size: clamp(170px,25vw,320px); line-height: 1; font-weight: 200; color: rgba(11,52,2,.095); pointer-events: none; transform: rotate(-12deg); }
.kl-footer-v3__callout-art { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.kl-footer-v3__callout-art > span { position: absolute; border: 1px solid rgba(16,50,4,.15); border-radius: 50%; width: 440px; height: 440px; right: -200px; bottom: -310px; }
.kl-footer-v3__callout-art > span:nth-child(2) { width: 310px; height: 310px; right: -130px; bottom: -235px; }
.kl-footer-v3__callout-art > span:nth-child(3) { width: 180px; height: 180px; right: -65px; bottom: -157px; }
.kl-footer-v3__callout-content, .kl-footer-v3__callout-actions { position: relative; z-index: 1; }
.kl-footer-v3__eyebrow { display: flex; gap: 10px; align-items: center; font-size: .66rem !important; letter-spacing: .22em; font-weight: 930; margin: 0 0 15px !important; color: #132908 !important; }
.kl-footer-v3__eyebrow i { width: 22px; height: 5px; background: #133408; border-radius: 9px; }
.kl-footer--v3 .kl-footer-v3__callout h2 { font-family: var(--kl-font); color: #0b1b04; max-width: 760px; font-size: clamp(2.0rem,3.3vw,3.65rem); font-weight: 920; letter-spacing: -.069em; line-height: 1.03; margin: 0 0 17px; }
.kl-footer-v3__callout h2 em { color: #f4ffe8; font-style: normal; text-shadow: 0 1px 3px rgba(17,55,4,.12); }
.kl-footer-v3__callout p:not(.kl-footer-v3__eyebrow) { max-width: 610px; color: #17320a; margin: 0; line-height: 1.6; font-size: .92rem; font-weight: 600; }
.kl-footer-v3__callout-actions { display: flex; flex-direction: column; gap: 9px; align-items: stretch; justify-self: stretch; }
.kl-footer-v3__callout-actions a { display: flex; min-height: 52px; align-items: center; justify-content: center; gap: 11px; padding: 12px 15px; border-radius: 12px; font-weight: 860; font-size: .84rem; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.kl-footer-v3__callout-actions a:hover { transform: translateY(-3px); }
.kl-footer--v3 .kl-footer-v3__primary { justify-content: space-between; color: #fff; background: #102207; box-shadow: 0 12px 32px rgba(24,54,10,.22); }
.kl-footer--v3 .kl-footer-v3__primary:hover { color: #fff; background: #223d11; }
.kl-footer-v3__primary span { font-size: 1.25rem; }
.kl-footer--v3 .kl-footer-v3__secondary { color: #142c07; background: rgba(255,255,255,.16); border: 1px solid rgba(20,48,7,.28); }
.kl-footer--v3 .kl-footer-v3__secondary:hover { color: #0b2002; background: rgba(255,255,255,.3); }

.kl-footer-v3__rule { display: flex; justify-content: space-between; gap: 20px; align-items: center; color: #7a9d6d; border-bottom: 1px solid rgba(165,218,134,.12); padding: 36px 1px 18px; font-size: .65rem; letter-spacing: .19em; font-weight: 820; }
.kl-footer-v3__rule span:first-child { color: #9de156; }
.kl-footer-v3__columns { display: grid; grid-template-columns: minmax(0,1.42fr) minmax(0,1.0fr) minmax(0,.91fr) minmax(0,1.1fr); gap: clamp(23px,3.1vw,46px); padding: 44px 0 46px; }
.kl-footer-v3__brand { display: flex !important; align-items: center; gap: 11px; margin-bottom: 21px !important; }
.kl-footer-v3__brand img { display: block; width: 76px; height: 76px; object-fit: contain; border-radius: 13px; padding: 4px; background: white; flex: 0 0 76px; box-shadow: 0 10px 32px rgba(0,0,0,.18); }
.kl-footer-v3__brand > span { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.kl-footer-v3__brand strong { font-weight: 900; font-size: 1.49rem; letter-spacing: -.07em; line-height: 1; white-space: nowrap; }
.kl-footer-v3__brand strong span { color: #9ce253; }
.kl-footer-v3__brand small { font-size: .67rem; color: #a6bc9c; }
.kl-footer-v3__identity > p { color: #aabca5; line-height: 1.8; max-width: 275px; font-size: .85rem; margin: 0 0 21px; }
.kl-footer-v3__trust { display: flex; align-items: center; gap: 13px; padding-top: 19px; border-top: 1px solid #263922; color: #a6bc9f; font-size: .71rem; line-height: 1.45; font-weight: 690; }
.kl-footer-v3__trust-value { color: #99e04d; font-size: 2.7rem; font-weight: 930; letter-spacing: -.08em; line-height: 1; }
.kl-footer-v3__trust-value span { font-size: .66em; }
.kl-footer--v3 .kl-footer-v3__columns h2 { font-size: .87rem; line-height: 1.3; margin: 7px 0 22px; font-weight: 870; letter-spacing: -.018em; }
.kl-footer-v3__links nav ul { list-style: none; padding: 0; margin: 0; }
.kl-footer-v3__links li { margin-bottom: 12px; }
.kl-footer--v3 .kl-footer-v3__links a { display: inline-flex; justify-content: space-between; align-items: center; width: 100%; max-width: 250px; color: #b6c9af; font-size: .815rem; font-weight: 610; gap: 8px; line-height: 1.42; transition: color .22s ease, transform .22s ease; }
.kl-footer-v3__links a span { opacity: 0; color: #9fe861; font-size: 1.09rem; transition: opacity .25s, transform .25s; }
.kl-footer--v3 .kl-footer-v3__links a:hover { color: #baf78c; transform: translateX(3px); }
.kl-footer-v3__links a:hover span, .kl-footer-v3__links a:focus-visible span { opacity: 1; transform: translate(2px,-2px); }
.kl-footer-v3__availability { display: flex; gap: 10px; align-items: center; margin-top: 25px; border-top: 1px solid #263922; padding-top: 17px; color: #9caf94; font-size: .72rem; line-height: 1.55; }
.kl-footer-v3__availability strong { font-size: .81rem; color: #ebf9e7; }
.kl-footer-v3__status { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: #79c62e; box-shadow: 0 0 0 5px rgba(124,198,63,.1); animation: kl-nav-pulse 2.8s infinite; }
.kl-footer-v3__contact address { font-style: normal; font-size: .83rem; line-height: 1.8; color: #b5c6b0; margin: 0 0 17px; }
.kl-footer-v3__contact address strong { color: #f4fff1; font-size: .84rem; font-weight: 790; }
.kl-footer--v3 .kl-footer-v3__contact-phone { display: flex; justify-content: space-between; align-items: center; gap: 9px; color: #9be854; font-size: 1.16rem; font-weight: 900; margin-bottom: 10px; letter-spacing: -.015em; }
.kl-footer-v3__contact-phone span { font-size: 1.12rem; }
.kl-footer--v3 .kl-footer-v3__contact-form { font-size: .82rem; font-weight: 780; color: #deedd8; gap: 9px; }
.kl-footer-v3__map { display: flex; flex-direction: column; justify-content: flex-end; position: relative; isolation: isolate; overflow: hidden; min-height: 167px; border: 1px solid rgba(146,200,112,.19); background: radial-gradient(circle at 69% 37%,rgba(123,191,51,.19),transparent 55%), linear-gradient(145deg,#20321b,#142113); border-radius: 15px; padding: 17px; margin-top: 20px; }
.kl-footer-v3__map::before { content: ''; position: absolute; z-index: -1; width: 205px; height: 205px; border: 1px solid rgba(162,219,101,.14); border-radius: 50%; top: -118px; right: -53px; box-shadow: 0 0 0 30px rgba(165,230,122,.04),0 0 0 70px rgba(165,230,122,.025); }
.kl-footer-v3__map-deco { position: absolute; inset: 0; pointer-events: none; opacity: .4; }
.kl-footer-v3__map-deco i { position: absolute; border: 1px solid #81c646; border-radius: 50%; width: 145px; height: 145px; top: -71px; right: 10px; }
.kl-footer-v3__map-deco i:nth-child(2) { width: 112px; height: 112px; top: -52px; right: 29px; }
.kl-footer-v3__map-deco i:nth-child(3) { width: 80px; height: 80px; top: -32px; right: 45px; }
.kl-footer-v3__map-location { position: relative; display: flex; flex-direction: column; gap: 4px; margin-bottom: 13px; }
.kl-footer-v3__map-location b { font-size: .73rem; letter-spacing: .10em; color: #def6ce; }
.kl-footer-v3__map-location small { color: #aed0a1; font-size: .63rem; letter-spacing: .10em; }
.kl-footer--v3 .kl-footer-v3__map > a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; background: #85d036; border-radius: 8px; min-height: 36px; padding: 9px 10px; color: #102508; font-size: .72rem; font-weight: 900; }
.kl-footer--v3 .kl-footer-v3__map > a:hover { color: #102508; background: #a6ea6b; }
.kl-footer-v3__map > a svg { width: 15px; height: 15px; }

.kl-footer-v3__territory { display: grid; grid-template-columns: .87fr 1.13fr; align-items: center; gap: 25px; padding: 24px 29px; border: 1px solid rgba(121,172,82,.2); border-radius: 17px; background: rgba(126,184,74,.045); }
.kl-footer-v3__territory > div:first-child { display: flex; flex-direction: column; gap: 8px; }
.kl-footer-v3__territory-kicker { color: #99cf78; font-size: .61rem; font-weight: 930; letter-spacing: .2em; }
.kl-footer-v3__territory strong { max-width: 390px; font-weight: 800; letter-spacing: -.04em; font-size: clamp(1.0rem,1.5vw,1.28rem); line-height: 1.27; }
.kl-footer-v3__territory strong em { font-style: normal; color: #a6e980; }
.kl-footer-v3__towns { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.kl-footer-v3__towns > span { display: inline-flex; align-items: center; min-height: 29px; padding: 6px 10px; border: 1px solid rgba(178,216,148,.17); border-radius: 30px; color: #b1c9aa; font-size: .67rem; font-weight: 680; white-space: nowrap; }
.kl-footer--v3 .kl-footer-v3__towns > a { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 30px; color: #a6ee68; font-size: .67rem; font-weight: 920; white-space: nowrap; }
.kl-footer-v3__bottom { display: flex; justify-content: space-between; align-items: center; gap: 22px; border-top: 1px solid rgba(147,190,126,.12); min-height: 72px; margin-top: 27px; font-size: .68rem; color: #82967c; }
.kl-footer-v3__bottom > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.kl-footer-v3__bottom-divider { display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: #4d7e32; }
.kl-footer--v3 .kl-footer-v3__bottom a { color: #a3bc99; font-size: .68rem; }
.kl-footer--v3 .kl-footer-v3__bottom a:hover { color: #bcf69a; }
.kl-footer--v3 .kl-footer-v3__to-top { gap: 9px; font-weight: 860; }
.kl-footer-v3__to-top span { display: inline-grid; place-items: center; border-radius: 50%; width: 29px; height: 29px; background: #2b4322; color: #a8ed74; font-size: 1.13rem; transition: transform .3s, background .3s; }
.kl-footer-v3__to-top:hover span { transform: translateY(-4px); background: #3d622e; }

/* Le nouveau header contient l'unique marque visible du hero : moins de répétition. */
.kl-hero .kl-breadcrumb { padding-top: 26px; }

@keyframes kl-nav-pulse { 0%,100%{ box-shadow:0 0 0 4px rgba(128,220,57,.13); } 50%{ box-shadow:0 0 0 9px rgba(128,220,57,0); } }
@keyframes kl-mega-in { from { opacity:0; transform: translate(-50%,-8px); } to { opacity:1; transform: translate(-50%,0); } }
@keyframes kl-mega-spark { to { transform: rotate(360deg); } }
@keyframes kl-mobile-open { from { opacity:0; transform: translateY(-9px); } to { opacity:1; transform: translateY(0); } }

@media (max-width: 1260px) and (min-width: 1131px) {
  .kl-nav-brand { min-width: 172px; gap: 8px; }
  .kl-nav-brand__logo { flex-basis: 56px; width: 56px; height: 56px; }
  .kl-nav-brand__name strong { font-size: 1.05rem; }
  .kl-nav-brand__name small { font-size: .54rem; }
  .kl-nav-desktop__link { padding: 12px 7px; font-size: .77rem; }
  .kl-nav-actions__phone { width: 41px; height: 41px; }
  .kl-nav-actions__cta { padding: 10px 12px; min-height: 41px; }
}
@media (max-width: 1130px) {
  .kl-site-header__inner { min-height: 81px; }
  .kl-nav-desktop { display: none; }
  .kl-nav-actions { margin-left: auto; }
  .kl-mobile-nav { display: block; }
  body.kl-mobile-menu-open { overflow: hidden; }
  .kl-footer-v3__columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px 48px; }
  .kl-footer-v3__identity > p { max-width: 400px; }
  .kl-footer-v3__contact { max-width: 420px; }
  .kl-footer-v3__territory { grid-template-columns: 1fr; }
  .kl-footer-v3__towns { justify-content: flex-start; }
}
@media (max-width: 720px) {
  .kl-nav-utility__right > span { display: none; }
  .kl-nav-utility__inner { min-height: 31px; }
  .kl-nav-utility__right { gap: 0; }
  .kl-nav-utility__local { gap: 6px; font-size: .63rem; }
  .kl-nav-utility__right a { font-size: .66rem; }
  .kl-site-header__inner { min-height: 76px; }
  .kl-nav-brand { min-width: 0; }
  .kl-nav-brand__logo { flex-basis: 58px; height: 58px; width: 58px; padding: 3px; border-radius: 12px; }
  .kl-nav-brand__name strong { font-size: 1.05rem; }
  .kl-nav-brand__name small { font-size: .58rem; }
  .kl-nav-actions__phone { display: none; }
  .kl-footer-v3__callout { grid-template-columns: 1fr; gap: 25px; }
  .kl-footer-v3__callout-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .kl-footer-v3__columns { gap: 35px 32px; }
}
@media (max-width: 540px) {
  .kl-nav-utility__local .kl-nav-utility__sep { display: none; }
  .kl-nav-utility__local { font-size: .58rem; }
  .kl-nav-utility__right a { font-size: .60rem; }
  .kl-nav-utility__right a svg { display: none; }
  .kl-nav-brand__name small { font-size: .53rem; }
  .kl-nav-actions__cta { min-height: 42px; padding: 10px; border-radius: 10px; font-size: .7rem; }
  .kl-nav-actions__cta svg { display: none; }
  .kl-site-header__inner { gap: 8px; }
  .kl-mobile-nav > summary { min-height: 42px; padding: 10px 11px; }
  .kl-mobile-nav__toggle-text { display: none; }
  .kl-mobile-nav__panel { padding-inline: 16px; }
  .kl-mobile-nav__service-list { grid-template-columns: 1fr; gap: 6px; }
  .kl-mobile-nav__service-list a { min-height: 49px; }
  .kl-footer--v3 { padding-top: 26px; }
  .kl-footer-v3__callout { padding: 27px 21px; border-radius: 19px; }
  .kl-footer--v3 .kl-footer-v3__callout h2 { font-size: clamp(1.88rem,8.5vw,2.6rem); }
  .kl-footer-v3__callout-actions { grid-template-columns: 1fr; }
  .kl-footer-v3__rule { padding-block: 28px 16px; font-size: .59rem; }
  .kl-footer-v3__rule span:last-child { letter-spacing: .08em; }
  .kl-footer-v3__columns { grid-template-columns: 1fr; gap: 31px; padding-block: 35px; }
  .kl-footer--v3 .kl-footer-v3__columns h2 { margin-bottom: 14px; }
  .kl-footer-v3__identity > p { max-width: 410px; }
  .kl-footer-v3__links nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
  .kl-footer-v3__links li { margin: 0; }
  .kl-footer--v3 .kl-footer-v3__links a { font-size: .78rem; }
  .kl-footer-v3__availability { margin-top: 18px; }
  .kl-footer-v3__contact { max-width: none; }
  .kl-footer-v3__map { min-height: 150px; }
  .kl-footer-v3__territory { padding: 21px; }
  .kl-footer-v3__bottom { flex-direction: column; align-items: flex-start; padding: 21px 0 calc(100px + env(safe-area-inset-bottom)); gap: 14px; font-size: .67rem; }
  .kl-footer-v3__bottom > div { gap: 10px; }
}
@media (max-width: 375px) {
  .kl-nav-utility__local { font-size: .53rem; }
  .kl-nav-brand__logo { flex: 0 0 48px; width: 48px; height: 48px; }
  .kl-nav-brand__name strong { font-size: .92rem; }
  .kl-nav-brand__name small { display: none; }
  .kl-nav-actions__cta { font-size: .64rem; padding: 10px 8px; }
  .kl-mobile-nav > summary { padding-inline: 9px; }
  .kl-mobile-nav__actions { grid-template-columns: 1fr; }
  .kl-footer-v3__links nav ul { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .kl-nav-utility__pulse, .kl-footer-v3__status, .kl-mega__feature-spark, .kl-mega, .kl-mobile-nav__panel,
  .kl-mobile-nav__service-list { animation: none !important; }
  .kl-nav-backdrop, .kl-nav-brand__logo, .kl-nav-actions__cta, .kl-footer-v3__to-top span { transition: none !important; }
}


/* ============================================================================
   KL ÉLAGAGE · PAGES INTÉRIEURES V4
   Alternance A (clair / grilles / étapes horizontales) / B (sombre / éditorial /
   listes latérales / étapes verticales). Conçues pour cohabiter avec menu et footer.
   ============================================================================ */
.ki-page { color:#142012;background:#fff;overflow:clip;font-family:var(--kl-font); }
.ki-page *, .ki-page *::before, .ki-page *::after { box-sizing:border-box; }
.ki-page :focus-visible { outline:3px solid #91df43;outline-offset:4px; }
.ki-page h1,.ki-page h2,.ki-page h3,.ki-page p { margin-top:0; }
.ki-page h1,.ki-page h2,.ki-page h3 { line-height:1.11;letter-spacing:-.045em;color:#121912; }
.ki-page h2{font-size:clamp(2rem,3.5vw,3.8rem);font-weight:850;max-width:800px;margin-bottom:22px}
.ki-page h3{font-size:clamp(1.14rem,1.8vw,1.45rem);letter-spacing:-.027em;margin:0 0 13px;font-weight:800}
.ki-page p{color:#53604e;font-size:1.01rem;line-height:1.82;margin:0 0 16px}
.ki-page a{color:inherit}
.ki-page svg{display:inline-block;flex:none}
.ki-page em{font-style:normal;color:#478501}
.ki-section{padding-block:clamp(68px,7.5vw,112px)}
.ki-kicker{color:#477e0e;font-size:.73rem;font-weight:900;letter-spacing:.175em;text-transform:uppercase;display:inline-flex;align-items:center;gap:12px;margin-bottom:20px}
.ki-kicker i{width:26px;height:5px;border-radius:100px;background:#6fbf15}
.ki-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px;margin-top:30px}
.ki-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:15px 22px;border-radius:14px;font-size:.93rem;font-weight:850;text-decoration:none;border:1px solid #bacbb4;transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-color .25s ease}
.ki-btn:hover{transform:translateY(-3px)}
.ki-btn--green{color:#0f1b06!important;background:linear-gradient(120deg,#85d934,#6bbd13);border-color:#80cb2c;box-shadow:0 11px 26px rgba(105,175,23,.23)}
.ki-btn--green:hover{box-shadow:0 16px 40px rgba(105,175,23,.33);background:#9ae551}
.ki-btn--green::before{content:"";position:absolute;inset:-120% -140%;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.28) 50%,transparent 58%);transform:translateX(-45%);transition:transform .75s ease;pointer-events:none}
.ki-btn--green:hover::before{transform:translateX(45%)}
.ki-btn--outline{color:#1d2b1b!important;background:rgba(255,255,255,.5)}
.ki-btn--outline:hover{border-color:#478501;background:#f4faee}
.ki-btn svg{width:19px;height:19px}
.ki-breadcrumb ol{display:flex;align-items:center;list-style:none;flex-wrap:wrap;gap:12px;padding:0;margin:0}
.ki-breadcrumb li{font-size:.78rem;font-weight:730;letter-spacing:.025em}
.ki-breadcrumb a{text-decoration:none;opacity:.75}
.ki-breadcrumb a:hover{opacity:1;text-decoration:underline}
.ki-hero{isolation:isolate;padding:clamp(34px,4.5vw,62px) 0 0}
.ki-hero__grid{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(30px,5vw,75px);align-items:center}
.ki-hero__content{position:relative;z-index:3;padding:16px 0 55px}
.ki-hero__eyebrow{display:flex;align-items:center;gap:11px;letter-spacing:.16em;font-weight:850;font-size:.72rem;color:#4f8819;margin:35px 0 14px}
.ki-hero__eyebrow i{height:7px;width:7px;background:#70c21c;border-radius:50%;box-shadow:0 0 0 5px rgba(118,195,36,.15)}
.ki-hero__word{font-size:clamp(1.75rem,3.2vw,3.45rem)!important;font-weight:900;letter-spacing:-.06em;line-height:1.17!important;color:#142012!important;margin-bottom:8px!important}
.ki-hero h1{font-size:clamp(1.62rem,2.25vw,2.42rem);line-height:1.17;letter-spacing:-.045em;margin:0 0 24px;max-width:600px}
.ki-hero__lead{font-size:1.1rem!important;max-width:600px;line-height:1.75!important;color:#42523b!important}
.ki-hero__trust{display:flex;align-items:center;gap:17px;margin-top:37px;border-top:1px solid #d7e3d0;padding-top:22px}
.ki-hero__trust strong{font-size:2.2rem;letter-spacing:-.095em;line-height:1}
.ki-hero__trust strong span{color:#4f9410}
.ki-hero__trust>span{font-size:.75rem;font-weight:760;line-height:1.38;color:#516349}
.ki-hero__trust i{height:33px;width:1px;background:#d6e0d0}
.ki-hero__photo{margin:0;position:relative;align-self:stretch;min-height:530px;isolation:isolate;padding:30px 0}
.ki-hero__photo::before{content:"";position:absolute;z-index:-1;inset:12% -15% 0 15%;border-radius:39% 9% 28% 11%;background:radial-gradient(circle at 40% 35%,#d1f2b2 0,#83c730 42%,#3d7907 100%);transform:rotate(-8deg)}
.ki-hero__photo img{height:100%;min-height:500px;object-fit:cover;aspect-ratio:4/5;box-shadow:0 18px 50px rgba(15,30,8,.18);border:8px solid rgba(255,255,255,.94);border-radius:34px}
.ki-hero__photo figcaption{position:absolute;bottom:46px;left:-23px;display:flex;justify-content:space-between;gap:20px;align-items:center;background:#fff;border:1px solid #e0ebd4;border-radius:12px;padding:15px 17px;box-shadow:0 10px 22px rgba(20,40,10,.09);font-size:.69rem;letter-spacing:.13em;font-weight:850;max-width:calc(100% - 10px)}
.ki-hero__photo figcaption b{color:#428800}
.ki-hero__photo-stamp{position:absolute;right:-24px;top:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0f0f0f;border:6px solid #fff;box-shadow:0 10px 20px rgba(0,0,0,.12);border-radius:50%;width:91px;height:91px;color:#9de855;font-size:2.2rem;font-weight:930;letter-spacing:-.11em}
.ki-hero__photo-stamp span{font-size:.47rem;letter-spacing:.16em;color:#fff}
.ki-hero--a{background:linear-gradient(155deg,#f9fbf7 0,#f0f6e9 69%,#e9f1df 100%)}
.ki-orbit{position:absolute;inset:auto auto -180px -220px;width:540px;height:540px;border-radius:50%;border:1px solid rgba(66,139,7,.08);box-shadow:0 0 0 75px rgba(66,139,7,.027),0 0 0 160px rgba(66,139,7,.02);pointer-events:none}
.ki-hero--b{background:#111911;color:#fff;padding-bottom:35px}
.ki-hero--b::before{content:"";inset:0;position:absolute;z-index:-1;background:radial-gradient(ellipse at 75% 26%,rgba(66,137,7,.26),transparent 48%),radial-gradient(ellipse at 0% 70%,rgba(68,98,36,.2),transparent 52%),linear-gradient(120deg,transparent 52%,rgba(255,255,255,.025) 52%,rgba(255,255,255,.025) 52.2%,transparent 52.2%)}
.ki-hero--b .ki-hero__grid{grid-template-columns:.88fr 1.12fr;direction:rtl;gap:clamp(36px,5vw,92px)}
.ki-hero--b .ki-hero__content,.ki-hero--b .ki-hero__photo{direction:ltr}
.ki-hero--b .ki-hero__photo{transform:translateY(25px) rotate(-1.3deg);max-width:470px;justify-self:end}
.ki-hero--b .ki-hero__photo::before{background:linear-gradient(145deg,#83d032,#1e4707)}
.ki-hero--b .ki-hero__photo img{border-color:#1b2b18;border-radius:28px 28px 140px 28px}
.ki-hero--b .ki-hero__word,.ki-hero--b h1{color:#fff!important}
.ki-hero--b .ki-hero__lead{color:#c6d2bc!important}
.ki-hero--b .ki-hero__word em{color:#93e24a}
.ki-hero--b .ki-hero__eyebrow{color:#a3db75}
.ki-hero--b .ki-breadcrumb li{color:#c2cdbe}
.ki-hero--b .ki-hero__trust{border-color:#354832}
.ki-hero--b .ki-hero__trust>span{color:#c6d0c3}
.ki-hero--b .ki-hero__trust i{background:#354832}
.ki-hero--b .ki-btn--outline{color:white!important;border-color:#485d40;background:rgba(255,255,255,.045)}
.ki-hero--b .ki-hero__photo figcaption{background:#192917;border-color:#3b5931;color:#d4efc6}
.ki-hero--b .ki-hero__photo-stamp{background:#90de3b;border-color:#111911;color:#102008}
.ki-hero--b .ki-hero__photo-stamp span{color:#1c2a16}
.ki-hero__bloom{position:absolute;font-size:clamp(18rem,37vw,44rem);color:rgba(128,202,62,.06);line-height:1;top:-12%;left:-6%;pointer-events:none;animation:ki-spin 50s linear infinite}
.ki-hero__under{border-top:1px solid #42523b;padding-block:22px 0;display:flex;justify-content:space-between;gap:20px;color:#a9c29c;font-weight:850;font-size:.68rem;letter-spacing:.15em}
.ki-hero__under i{color:#a7f564;font-style:normal}
.ki-section-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:35px}
.ki-section-head>p{max-width:300px;flex:0 0 300px;margin:0}
.ki-section-head h2{margin-bottom:0}
.ki-section-line{display:block;height:7px;width:90px;border-radius:50px;background:linear-gradient(90deg,#437b06,#9de54e);margin-top:26px}
.ki-intro{background:#fff}
.ki-intro__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,6vw,108px)}
.ki-intro__copy{padding-left:27px;border-left:2px solid #c7deb3}
.ki-intro__copy>p{max-width:735px}
.ki-intro__note{display:flex;align-items:center;gap:13px;margin-top:25px;color:#2d5714;background:#eef6e8;padding:18px;border-radius:14px;font-weight:750;font-size:.87rem}
.ki-intro__note svg{width:31px;height:31px}
.ki-context-link{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#f3f8ee;border-radius:12px;padding:14px 16px;font-size:.84rem!important;line-height:1.65!important;color:#506048!important;margin:20px 0!important}
.ki-context-link__spark{color:#61a81e;font-size:1.4em}
.ki-context-link__anchor{color:#24550b!important;font-weight:850;text-underline-offset:4px}
.ki-signs{background:#f5f8f1}
.ki-signs__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.ki-signal{position:relative;padding:32px 30px 29px;background:#fff;border:1px solid #e4eddf;border-radius:24px;box-shadow:0 7px 22px rgba(15,15,15,.03);overflow:hidden;transition:transform .25s,box-shadow .25s,border-color .25s}
.ki-signal:hover{transform:translateY(-6px);box-shadow:0 18px 48px rgba(15,15,15,.09);border-color:#b1da8b}
.ki-signal::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:4px;background:linear-gradient(90deg,#478501,#a1e95c);transform:scaleX(0);transform-origin:left;transition:transform .28s}
.ki-signal:hover::after{transform:scaleX(1)}
.ki-signal__n{color:#a3b59a;font-size:.7rem;letter-spacing:.11em;font-weight:850;float:right}
.ki-signal__icon{display:grid;place-items:center;width:60px;height:60px;background:#eaf5df;border-radius:17px;color:#478501;margin-bottom:27px}
.ki-signal__icon svg{width:29px;height:29px}
.ki-signal p{font-size:.92rem;line-height:1.77;margin-bottom:0}
.ki-method{background:#0f160f;color:#fff;position:relative;overflow:hidden}
.ki-method::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 5%,rgba(116,191,26,.18),transparent 38%),linear-gradient(115deg,transparent 46%,rgba(255,255,255,.027) 46%,transparent 46.2%)}
.ki-method__inner{position:relative;display:grid;grid-template-columns:.36fr .64fr;gap:clamp(35px,6vw,94px)}
.ki-method .ki-kicker{color:#a6dc7e}
.ki-method h2,.ki-method h3{color:#fff}
.ki-method__heading>p{color:#bfd0b7;max-width:380px}
.ki-method__deco{display:block;color:rgba(119,193,44,.12);font-size:clamp(7rem,17vw,16rem);line-height:.8;letter-spacing:-.13em;font-weight:950;margin-top:70px}
.ki-method__deco small{font-size:.5em;letter-spacing:-.07em}
.ki-method__steps{list-style:none;counter-reset:step;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ki-step{border:1px solid #354b2b;border-radius:19px;background:linear-gradient(150deg,#1b2919,#172117);padding:25px 24px;transition:border-color .2s,transform .2s}
.ki-step:hover{transform:translateY(-4px);border-color:#80c442}
.ki-step__num{display:block;font-size:2.15rem;font-weight:900;letter-spacing:-.07em;color:#99df58;margin-bottom:18px}
.ki-step__num span{color:#537639}
.ki-step h3{font-size:1.17rem}
.ki-step p{font-size:.91rem;line-height:1.78;margin-bottom:0;color:#c0cdbc}
.ki-method .ki-context-link{background:#24371e;border:1px solid #425839;color:#d7e4d0!important;margin-top:22px!important}
.ki-method .ki-context-link__anchor{color:#adf56b!important}
.ki-method .ki-context-link__spark{color:#9cda63}
.ki-insight{background:#fff}
.ki-insight__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,90px);align-items:center}
.ki-insight__visual{min-height:540px;border-radius:32px;background:radial-gradient(circle at 70% 15%,#95d949 0,transparent 34%),linear-gradient(133deg,#386c0e 0,#1b400c 65%,#101b0c 100%);color:white;padding:42px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.ki-insight__visual::before{content:"";border:1px solid rgba(255,255,255,.14);width:600px;height:600px;position:absolute;border-radius:50%;top:19%;right:-55%;box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.019)}
.ki-insight__star{font-size:3.2rem;color:#b2f375;line-height:1}
.ki-insight__visual strong{font-size:clamp(3rem,5vw,6rem);line-height:.94;letter-spacing:-.1em;z-index:1}
.ki-insight__visual em{color:#b3fa73}
.ki-insight__visual-foot{font-size:.65rem;letter-spacing:.14em;font-weight:900;color:#c8e3b4}
.ki-insight__text p{margin-bottom:16px}
.ki-focus{background:#e9f4e0;position:relative;overflow:hidden}
.ki-focus__inner{display:grid;grid-template-columns:.3fr .7fr;gap:clamp(28px,6vw,110px);align-items:start}
.ki-focus__asterisk{font-size:clamp(8rem,17vw,16rem);line-height:1;color:#c8e5ab;display:block;margin-top:38px;animation:ki-spin 60s linear infinite}
.ki-focus h2{max-width:810px}
.ki-focus__body>p{max-width:870px;color:#405437}
.ki-checklist{background:#f4f7f0}
.ki-checklist__inner{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(28px,6vw,90px)}
.ki-checklist__lead>p{max-width:370px}
.ki-checklist__list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ki-checklist__list li{background:#fff;border:1px solid #e0eadb;border-radius:14px;padding:15px 20px;display:flex;align-items:flex-start;gap:14px;line-height:1.6;color:#405238;font-weight:625}
.ki-checklist__list li span{display:grid;place-items:center;border-radius:50%;flex:0 0 24px;height:24px;color:#327609;background:#e9f7df;font-weight:950}
.ki-local{background:#fff}
.ki-local__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,95px);align-items:center}
.ki-local__towns{border-radius:29px;background:#101b10;padding:38px;color:#fff;position:relative;overflow:hidden}
.ki-local__towns::after{content:"";height:340px;width:340px;border:1px solid rgba(255,255,255,.1);position:absolute;right:-200px;top:-100px;border-radius:50%;box-shadow:0 0 0 50px rgba(255,255,255,.02)}
.ki-local__number{font-size:5.3rem;line-height:1;letter-spacing:-.1em;font-weight:900;color:#91de41;display:block}
.ki-local__number span{font-size:.74rem;letter-spacing:.12em;color:#b4c7a9;vertical-align:middle}
.ki-local__towns h3{color:#fff;margin:16px 0 22px}
.ki-local__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:27px;position:relative;z-index:1}
.ki-local__chips span{display:inline-block;border:1px solid #3b5633;border-radius:100px;padding:9px 12px;color:#d3e3cc;font-size:.79rem;font-weight:730}
.ki-local__towns p{color:#aebdaa;font-size:.87rem;margin:0}
.ki-local__map{display:inline-flex;align-items:center;gap:9px;color:#376c11!important;font-weight:850;font-size:.91rem;text-decoration:none;border-bottom:2px solid #8fcf56;padding:8px 0;margin-top:12px}
.ki-local__map:hover{color:#183508!important}
.ki-local__map svg{height:21px;width:21px}
.ki-faq{background:#f2f5ee}
.ki-faq__inner{display:grid;grid-template-columns:.35fr .65fr;gap:clamp(25px,5vw,80px)}
.ki-faq__heading>p{max-width:370px}
.ki-faq__items{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ki-faq__card{background:white;border:1px solid #e1ebda;border-radius:18px;padding:26px;transition:transform .25s,box-shadow .25s}
.ki-faq__card:hover{transform:translateY(-4px);box-shadow:0 15px 35px rgba(30,45,20,.06)}
.ki-faq__n{color:#477c18;letter-spacing:.12em;font-size:.66rem;font-weight:900;display:block;margin-bottom:15px}
.ki-faq__card h3{font-size:1.08rem;line-height:1.32}
.ki-faq__card p{font-size:.87rem;line-height:1.75;margin:0}
.ki-related{background:#fff}
.ki-related__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;list-style:none;padding:0;margin:0}
.ki-related__item{padding:24px;border:1px solid #dde8d5;border-radius:19px;display:flex;flex-direction:column;position:relative;min-height:218px;transition:background .25s,transform .25s,border-color .25s}
.ki-related__item:hover{transform:translateY(-5px);background:#f0f8e9;border-color:#bada9b}
.ki-related__index{font-weight:950;color:#579220;font-size:.74rem;letter-spacing:.1em;margin-bottom:27px}
.ki-related__item h3{font-size:1.11rem}
.ki-related__item h3 a{text-decoration:none}
.ki-related__item h3 a:hover{text-decoration:underline}
.ki-related__item p{font-size:.83rem;margin-bottom:0;line-height:1.6}
.ki-related__arrow{position:absolute;right:21px;top:20px;font-size:1.3rem;color:#478501}
.ki-final{background:#131b12;color:white;padding-block:clamp(40px,5vw,80px)}
.ki-final__inner{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:38px;align-items:center;border:1px solid #4c6a41;background:radial-gradient(ellipse at 70% 0%,rgba(115,186,37,.23),transparent 58%),linear-gradient(135deg,#20341b,#131c12);border-radius:30px;padding:clamp(30px,4vw,60px)}
.ki-final .ki-kicker{color:#b7ee8b}
.ki-final h2{color:#fff;max-width:690px}
.ki-final h2 em{color:#a6ed65}
.ki-final p{color:#c7d5c0;max-width:650px;margin-bottom:0}
.ki-final__inner>.ki-actions{display:flex;flex-direction:column;align-items:stretch;position:relative;z-index:1}
.ki-final__inner .ki-btn--outline{color:white!important;border-color:#486d3d;background:rgba(255,255,255,.04)}
.ki-final__watermark{position:absolute;pointer-events:none;right:10%;bottom:-90%;font-size:32rem;color:rgba(163,231,99,.05);line-height:1}
/* ALTERNANCE B — disposition de blocs considérablement différente du modèle A. */
.ki-page--b .ki-intro{background:#f1f7ea}
.ki-page--b .ki-intro__grid{grid-template-columns:1.2fr .8fr;gap:clamp(20px,5vw,90px)}
.ki-page--b .ki-intro__heading{background:#101b10;border-radius:22px;padding:40px;align-self:start}
.ki-page--b .ki-intro__heading h2{color:#fff}
.ki-page--b .ki-intro__heading .ki-kicker{color:#98da5e}
.ki-page--b .ki-intro__copy{border:0;padding:0}
.ki-page--b .ki-method{background:#fff;color:#11200b}
.ki-page--b .ki-method::before{background:radial-gradient(circle at 100% 0%,rgba(120,198,30,.06),transparent 40%)}
.ki-page--b .ki-method h2,.ki-page--b .ki-method h3{color:#0f1d0c}
.ki-page--b .ki-method__inner{grid-template-columns:1fr .96fr}
.ki-page--b .ki-method__heading{padding-right:30px;position:sticky;top:130px;height:max-content}
.ki-page--b .ki-method__heading>p{color:#56614f}
.ki-page--b .ki-method__deco{color:#e0f3d1}
.ki-page--b .ki-method__steps{display:flex;flex-direction:column;gap:0;border-left:2px solid #c8deaf;margin-left:30px}
.ki-page--b .ki-step{background:transparent;border:0;border-radius:0;border-bottom:1px solid #dce9d1;padding:23px 18px 23px 34px;position:relative;transform:none}
.ki-page--b .ki-step::before{content:"";position:absolute;width:12px;height:12px;background:#529015;left:-7px;top:35px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px #76b935}
.ki-page--b .ki-step__num{margin:0 0 5px;font-size:1.8rem;color:#4b9114}
.ki-page--b .ki-step p{color:#515e4c}
.ki-page--b .ki-method .ki-kicker{color:#467a15}
.ki-page--b .ki-method .ki-context-link{background:#f0f7e9;border-color:#d3e6c3;color:#394e32!important}
.ki-page--b .ki-method .ki-context-link__anchor{color:#3b7311!important}
.ki-page--b .ki-signs{background:#0f1b0e;color:white}
.ki-page--b .ki-signs h2{color:white}
.ki-page--b .ki-signs .ki-kicker{color:#a6e974}
.ki-page--b .ki-section-head>p{color:#d1decb}
.ki-page--b .ki-signs__grid{display:grid;grid-template-columns:1fr;gap:14px;max-width:1110px}
.ki-page--b .ki-signal{display:grid;grid-template-columns:70px 70px .55fr 1fr;align-items:center;gap:19px;padding:21px 27px;background:#1a2917;border:1px solid #385333}
.ki-page--b .ki-signal__n{float:none;font-size:1.6rem;color:#a4de77;letter-spacing:-.05em}
.ki-page--b .ki-signal__icon{margin:0;color:#8bdf3b;background:#294423}
.ki-page--b .ki-signal h3{color:#fff;margin:0}
.ki-page--b .ki-signal p{color:#d0dccd}
.ki-page--b .ki-signs .ki-context-link{max-width:1110px;background:#243b1e;color:#c6ddbb!important}
.ki-page--b .ki-signs .ki-context-link__anchor{color:#a9ef70!important}
.ki-page--b .ki-insight__grid{grid-template-columns:1.2fr .8fr}
.ki-page--b .ki-insight__visual{order:2;min-height:620px;background:linear-gradient(145deg,#b1e87c,#5f9f27 60%,#1e4313)}
.ki-page--b .ki-insight__visual strong{color:#11260c}
.ki-page--b .ki-insight__visual em{color:#fff}
.ki-page--b .ki-insight__visual-foot{color:#173715}
.ki-page--b .ki-insight__star{color:#14360d}
.ki-page--b .ki-focus{background:#111c0f}
.ki-page--b .ki-focus h2{color:#fff}
.ki-page--b .ki-focus .ki-kicker{color:#b5ea88}
.ki-page--b .ki-focus__body>p{color:#c8d4bf}
.ki-page--b .ki-focus__asterisk{color:#2b4b22}
.ki-page--b .ki-local{background:#f5f8f0}
.ki-page--b .ki-local__grid{grid-template-columns:.8fr 1.2fr}
.ki-page--b .ki-local__towns{order:-1;background:#dcf0c9;color:#13260e}
.ki-page--b .ki-local__number{color:#407a0c}
.ki-page--b .ki-local__number span{color:#537448}
.ki-page--b .ki-local__towns h3{color:#142b10}
.ki-page--b .ki-local__chips span{color:#33542a;border-color:#b3d29c}
.ki-page--b .ki-local__towns p{color:#56744d}
.ki-page--b .ki-checklist{background:white}
.ki-page--b .ki-checklist__inner{grid-template-columns:1fr .95fr}
.ki-page--b .ki-checklist__lead{background:#f1f7e9;padding:38px;border-radius:24px}
.ki-page--b .ki-checklist__list li{border-left:4px solid #6aad25;border-radius:8px}
.ki-page--b .ki-faq{background:#101a0f;color:#fff}
.ki-page--b .ki-faq h2{color:#fff}
.ki-page--b .ki-faq .ki-kicker{color:#aee77f}
.ki-page--b .ki-faq__heading>p{color:#b9ccaf}
.ki-page--b .ki-faq__items{grid-template-columns:1fr;align-content:start;gap:8px}
.ki-faq__accordion{background:#1c2c1a;border:1px solid #395034;border-radius:14px;color:white;overflow:hidden}
.ki-faq__accordion summary{list-style:none;display:grid;grid-template-columns:35px 1fr 26px;align-items:center;gap:13px;padding:19px 22px;cursor:pointer}
.ki-faq__accordion summary::-webkit-details-marker{display:none}
.ki-faq__accordion summary span{color:#a1e86d;font-weight:900}
.ki-faq__accordion summary strong{font-size:.98rem;line-height:1.43}
.ki-faq__accordion summary b{font-size:1.5rem;color:#a1e86d;transition:transform .25s}
.ki-faq__accordion[open] summary b{transform:rotate(45deg)}
.ki-faq__accordion>div{padding:0 25px 21px 70px}
.ki-faq__accordion p{color:#c4d0bf;font-size:.94rem;margin:0}
.ki-page--b .ki-related{background:#eef5e6}
.ki-page--b .ki-related__list{grid-template-columns:1fr 1fr;gap:12px}
.ki-page--b .ki-related__item{display:grid;grid-template-columns:44px 1fr 25px;gap:20px;min-height:138px;align-items:center;background:#fff}
.ki-page--b .ki-related__index{margin:0;font-size:1rem}
.ki-page--b .ki-related__arrow{position:static}
.ki-page--b .ki-final{background:#eaf5de;color:#183010}
.ki-page--b .ki-final__inner{background:linear-gradient(125deg,#d5efbf,#adf078);border-color:#a0d76d}
.ki-page--b .ki-final h2{color:#183010}
.ki-page--b .ki-final h2 em{color:#3e7d10}
.ki-page--b .ki-final .ki-kicker{color:#335f16}
.ki-page--b .ki-final p{color:#3f6131}
.ki-page--b .ki-final .ki-btn--outline{color:#193a10!important;border-color:#7fb453;background:rgba(255,255,255,.45)}
.ki-page--b .ki-final__watermark{color:rgba(35,96,5,.06)}
/* Motion : progressive enhancement, contenu toujours visible si JS désactivé. */
.ki-motion-ready .ki-reveal{opacity:0;transform:translateY(21px);transition:opacity .64s ease var(--ki-delay,0ms),transform .64s cubic-bezier(.2,.75,.2,1) var(--ki-delay,0ms)}
.ki-motion-ready .ki-reveal.ki-inview{opacity:1;transform:translateY(0)}
.ki-motion-ready .ki-hero--b .ki-hero__photo.ki-reveal{transform:translateY(40px) rotate(-1deg)}
.ki-motion-ready .ki-hero--b .ki-hero__photo.ki-reveal.ki-inview{transform:translateY(25px) rotate(-1.3deg)}
@keyframes ki-spin{to{transform:rotate(360deg)}}
@media(max-width:1100px){
 .ki-page--b .ki-signal{grid-template-columns:54px 60px 1fr;gap:18px}
 .ki-page--b .ki-signal p{grid-column:3}
 .ki-faq__inner{grid-template-columns:1fr}
 .ki-hero__photo{min-height:470px}
 .ki-hero__photo img{min-height:440px}
 .ki-related__list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ki-page--b .ki-related__list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
 .ki-hero__grid,.ki-hero--b .ki-hero__grid{grid-template-columns:1fr 1fr;gap:27px}
 .ki-hero__word{font-size:clamp(1.45rem,3.25vw,2.5rem)!important}
 .ki-hero h1{font-size:clamp(1.4rem,2.7vw,2rem)}
 .ki-hero__photo{min-height:370px}
 .ki-hero__photo img{min-height:370px}
 .ki-hero__photo-stamp{right:-7px}
 .ki-intro__grid,.ki-page--b .ki-intro__grid,.ki-method__inner,.ki-page--b .ki-method__inner,.ki-insight__grid,.ki-page--b .ki-insight__grid,.ki-focus__inner,.ki-checklist__inner,.ki-page--b .ki-checklist__inner,.ki-local__grid,.ki-page--b .ki-local__grid{grid-template-columns:1fr}
 .ki-page--b .ki-method__heading{position:static;padding:0}
 .ki-page--b .ki-local__towns{order:initial}
 .ki-method__deco{display:none}
 .ki-faq__items{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ki-signs__grid{grid-template-columns:1fr 1fr}
 .ki-insight__visual,.ki-page--b .ki-insight__visual{min-height:280px}
 .ki-insight__visual strong{font-size:3.5rem}
 .ki-final__inner{grid-template-columns:1fr}
 .ki-final__inner>.ki-actions{flex-direction:row}
}
@media(max-width:650px){
 .ki-section{padding-block:64px}
 .ki-page h2{font-size:clamp(1.96rem,8vw,2.7rem)}
 .ki-page h3{font-size:1.1rem}
 .ki-hero,.ki-hero--b{padding:25px 0 32px}
 .ki-hero__grid,.ki-hero--b .ki-hero__grid{display:flex;flex-direction:column;direction:ltr;gap:10px}
 .ki-hero__content{padding:4px 0 25px;width:100%}
 .ki-hero__eyebrow{margin-top:30px}
 .ki-hero__word{font-size:clamp(1.94rem,8vw,3rem)!important}
 .ki-hero h1{font-size:clamp(1.46rem,5.7vw,2.1rem)}
 .ki-hero__lead{font-size:.99rem!important}
 .ki-hero__photo,.ki-hero--b .ki-hero__photo{min-height:0;width:calc(100% - 14px);max-width:470px;align-self:center;transform:none;padding:16px 0 32px}
 .ki-hero__photo img{min-height:0;max-height:480px;aspect-ratio:4/4.15}
 .ki-hero__photo figcaption{left:0;bottom:17px}
 .ki-hero__photo-stamp{width:72px;height:72px;font-size:1.7rem;top:30px;right:-12px}
 .ki-hero__photo-stamp span{font-size:.4rem}
 .ki-hero--b .ki-hero__grid{flex-direction:column-reverse}
 .ki-hero--b .ki-hero__photo img{border-radius:24px 24px 80px 24px}
 .ki-hero--b .ki-hero__under{flex-direction:column;gap:9px;font-size:.58rem}
 .ki-section-head{display:block;margin-bottom:25px}
 .ki-section-head>p{margin-top:17px;max-width:100%}
 .ki-intro__copy{padding-left:18px}
 .ki-page--b .ki-intro__heading{padding:27px}
 .ki-signs__grid,.ki-faq__items,.ki-page--b .ki-related__list,.ki-related__list{grid-template-columns:1fr}
 .ki-signal{padding:24px}
 .ki-page--b .ki-signal{grid-template-columns:47px 55px 1fr;gap:10px;padding:17px}
 .ki-page--b .ki-signal p{grid-column:1/-1;margin-top:8px}
 .ki-page--b .ki-signal h3{font-size:1.05rem}
 .ki-page--b .ki-signal__n{font-size:1.1rem}
 .ki-page--b .ki-signal__icon{width:50px;height:50px}
 .ki-method__steps{grid-template-columns:1fr}
 .ki-insight__visual{padding:27px;border-radius:22px}
 .ki-focus__asterisk{font-size:7.5rem;margin:0}
 .ki-focus__inner{gap:12px}
 .ki-focus__label{display:flex;align-items:center;justify-content:space-between}
 .ki-checklist__lead{padding:0}
 .ki-page--b .ki-checklist__lead{padding:25px}
 .ki-local__towns{padding:25px}
 .ki-related__item{min-height:165px}
 .ki-page--b .ki-related__item{grid-template-columns:34px 1fr 20px;min-height:124px;padding:19px;gap:12px}
 .ki-faq__card{padding:22px}
 .ki-faq__accordion summary{padding:17px 15px;gap:8px;grid-template-columns:26px 1fr 20px}
 .ki-faq__accordion>div{padding:0 19px 19px 49px}
 .ki-final__inner{padding:25px}
 .ki-final__inner>.ki-actions,.ki-actions{flex-direction:column;align-items:stretch}
 .ki-btn{width:100%}
 .ki-hero__trust{gap:11px}
 .ki-hero__trust>span{font-size:.67rem}
 .ki-hero__trust strong{font-size:1.9rem}
}
@media(prefers-reduced-motion:reduce){.ki-page *,.ki-page *::before,.ki-page *::after{animation:none!important;transition:none!important}.ki-motion-ready .ki-reveal,.ki-motion-ready .ki-reveal.ki-inview,.ki-motion-ready .ki-hero--b .ki-hero__photo.ki-reveal{opacity:1!important;transform:none!important}}


/* ===================================================================
   AJOUT KL ÉLAGAGE — HUBS GÉOGRAPHIQUES, PAGES A/B ET GUIDES CONSEILS
   Toutes les règles antérieures de General.css sont conservées intactes.
   =================================================================== */
.kl-town-page{--kl-g:#478501;--kl-ink:#0f0f0f;--kl-soft:#eff5e8;overflow:hidden;font-family:inherit;color:var(--kl-ink)}
.kl-town-page *{box-sizing:border-box}
.kl-town-page a{transition:color .2s ease,background-color .2s ease,transform .2s ease}
.kl-town-kicker{color:#478501;font-size:.72rem;font-weight:850;letter-spacing:.17em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
.kl-town-kicker:before{content:"";width:16px;height:3px;border-radius:3px;background:currentColor}
.kl-town-page h1,.kl-town-page h2,.kl-town-page h3{font-family:inherit;letter-spacing:-.035em}
.kl-town-page h1{font-size:clamp(2.4rem,5.2vw,5.2rem);line-height:1.07;margin:14px 0 22px;font-weight:850}
.kl-town-page h2{font-size:clamp(1.85rem,3vw,3.2rem);line-height:1.12;margin:13px 0 22px;font-weight:820}
.kl-town-page h3{font-size:1.22rem;line-height:1.22}
.kl-town-page p{line-height:1.75;margin:.8em 0;color:#485347}
.kl-town-page a:not(.ki-btn){color:inherit}
.kl-town-page p a{color:#37760c!important;text-underline-offset:4px;font-weight:750}
.kl-town-hero{padding:55px 0 75px;overflow:hidden;position:relative}
.kl-town-hero--a{background:radial-gradient(circle at 15% 6%,#e3f5d1,transparent 42%),#fafdf6}
.kl-town-hero--b{background:radial-gradient(circle at 76% 15%,#386d0d55,transparent 42%),#0f0f0f;color:white}
.kl-town-hero__grid{display:grid;grid-template-columns:1.09fr .91fr;gap:clamp(25px,5vw,80px);align-items:center}
.kl-town-hero__text{min-width:0}
.kl-town-hero__text h1 em{font-style:normal;color:#478501}
.kl-town-hero--b h1,.kl-town-hero--b .kl-town-hero__overline{color:white}
.kl-town-hero--b h1 em{color:#a8ed68}
.kl-town-hero--b p{color:#dbe8cf}
.kl-town-hero__overline{font-weight:850;letter-spacing:.08em;font-size:1.2rem}
.kl-town-hero__lead{font-size:clamp(1rem,1.4vw,1.25rem);max-width:640px}
.kl-town-hero__photo{position:relative;margin:0;aspect-ratio:4/5;max-height:610px;overflow:hidden;border-radius:30px;box-shadow:0 22px 70px #0c251b2a;background:#dbe3d0}
.kl-town-hero__photo img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.kl-town-hero__photo figcaption{position:absolute;bottom:17px;left:17px;right:17px;color:white;font-weight:750;background:#0f0f0fc9;border:1px solid #ffffff2e;padding:14px 18px;border-radius:14px;line-height:1.4;backdrop-filter:blur(8px)}
.kl-town-hero--b .kl-town-hero__grid{grid-template-columns:.94fr 1.06fr;gap:24px}
.kl-town-hero--b .kl-town-hero__photo{transform:translateX(7%) rotate(-1.3deg);max-height:630px;border:5px solid #ffffff1b}
.kl-town-hero__flag{display:flex;gap:12px;align-items:center;margin-top:33px;font-weight:750;font-size:.82rem}
.kl-town-hero__flag span:first-child{background:#478501;color:white;display:grid;place-items:center;width:55px;height:55px;border-radius:18px;font-size:1.4rem}
.kl-town-crumb{display:flex;gap:9px;flex-wrap:wrap;font-size:.81rem;margin-bottom:30px;opacity:.78}
.kl-town-crumb a{text-decoration:none}
.kl-town-crumb a:hover{text-decoration:underline}
.kl-town-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.kl-town-section{padding:clamp(70px,7vw,105px) 0}
.kl-town-section--services,.kl-town-section--area,.kl-town-section--services-b{background:#f0f6e9}
.kl-town-section--b-first,.kl-town-section--b-feature{background:#0f0f0f;color:white}
.kl-town-section--b-first h2,.kl-town-section--b-feature h2{color:white}
.kl-town-section--b-first p,.kl-town-section--b-feature p{color:#cfdfc4}
.kl-town-split{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(25px,6vw,84px);align-items:center}
.kl-town-split--reverse{grid-template-columns:.8fr 1.2fr}
.kl-town-tip{padding:clamp(28px,3vw,50px);background:#152516;color:#fff;border-radius:28px;border:1px solid #59843151;position:relative;box-shadow:0 23px 45px #15251618}
.kl-town-tip h3{font-size:clamp(1.35rem,2.2vw,2.25rem);margin:10px 0}
.kl-town-tip p,.kl-town-tip .kl-town-kicker{color:#e1edda}
.kl-town-tip--light{background:linear-gradient(142deg,#daf5c5,#f4fbef);color:#1a2a15}
.kl-town-tip--light p,.kl-town-tip--light .kl-town-kicker{color:#35582d}
.kl-town-section__lead{max-width:750px;margin-bottom:30px!important}
.kl-town-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:35px}
.kl-town-service{padding:35px 30px;background:white;min-width:0;border-radius:26px;box-shadow:0 12px 32px #294b1612;border:1px solid #abc79835;transition:transform .25s ease,box-shadow .25s ease}
.kl-town-service:hover{transform:translateY(-6px);box-shadow:0 25px 50px #294b1623}
.kl-town-service__index{display:inline-flex;width:46px;height:46px;border-radius:14px;background:#eaf6e2;color:#3b7606;align-items:center;justify-content:center;font-weight:850;margin-bottom:27px}
.kl-town-service h3{margin:0 0 12px}
.kl-town-service a{text-decoration:none}
.kl-town-service a:hover{color:#478501!important}
.kl-town-services--horizontal{display:flex;flex-direction:column;gap:11px}
.kl-town-services--horizontal .kl-town-service{display:grid;grid-template-columns:65px minmax(180px,.7fr) 1fr;gap:22px;align-items:center;min-height:115px}
.kl-town-services--horizontal .kl-town-service__index{margin:0}
.kl-town-services--horizontal .kl-town-service p{margin:0}
.kl-town-b-lead{display:grid;grid-template-columns:1fr .85fr;align-items:center;gap:6vw}
.kl-town-b-method{display:grid;grid-template-columns:.7fr 1.3fr;gap:6vw}
.kl-town-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:36px 0 0;counter-reset:klstep}
.kl-town-steps li{counter-increment:klstep;display:flex;flex-direction:column;gap:10px;padding:29px 30px;background:white;border:1px solid #d6e9c9;border-radius:23px}
.kl-town-steps li:before{content:counter(klstep,decimal-leading-zero);font-weight:850;color:#478501;font-size:1.5rem}
.kl-town-steps li strong{font-size:1.16rem}
.kl-town-steps li span{color:#54604f;line-height:1.6}
.kl-town-steps--vertical{display:flex;flex-direction:column;gap:12px;margin:0}
.kl-town-steps--vertical li{display:grid;grid-template-columns:70px 1fr;gap:8px}
.kl-town-steps--vertical li span{grid-column:2}
.kl-town-cta{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;border-radius:30px;padding:45px clamp(28px,5vw,67px);background:linear-gradient(110deg,#142414,#39681b);color:white;position:relative;overflow:hidden;margin:25px 0}
.kl-town-cta:after{content:"✳";position:absolute;right:20%;bottom:-75px;color:#ffffff13;font-size:240px;line-height:1;pointer-events:none}
.kl-town-cta h2,.kl-town-cta p{color:white}
.kl-town-cta .kl-town-actions{margin:0;position:relative;z-index:1}
.kl-town-cta .ki-btn--outline{border-color:#d6ebc788;color:white!important}
.kl-town-faqs{display:grid;gap:12px}
.kl-town-faqs--grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.kl-town-faq{border:1px solid #cbdcbf;border-radius:17px;background:#fff;overflow:hidden}
.kl-town-faq summary{padding:20px 23px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-weight:780;cursor:pointer}
.kl-town-faq summary::-webkit-details-marker{display:none}
.kl-town-faq summary span{color:#478501;font-size:1.5rem;transition:transform .2s ease}
.kl-town-faq[open] summary span{transform:rotate(45deg)}
.kl-town-faq p{margin:0;padding:0 22px 24px}
.kl-town-area{padding:37px;background:white;border:1px solid #d7e9c9;border-radius:27px}
.kl-town-neighbors{display:flex;flex-wrap:wrap;gap:11px;margin:22px 0}
.kl-town-neighbors a{display:inline-flex;gap:12px;align-items:center;padding:13px 19px;border:1px solid #c2dcb3;border-radius:999px;text-decoration:none;background:#f7fcf1;color:#2f6315!important;font-weight:760}
.kl-town-neighbors a:hover{background:#def8ca;transform:translateY(-2px)}
.kl-town-area__all{display:inline-flex;margin-top:14px;font-weight:850;text-underline-offset:5px;color:#39770a!important}
.kl-town-zonelist{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.kl-town-zonecard{min-width:0;padding:23px;background:#fff;border:1px solid #d2e6c1;border-radius:19px;display:flex;flex-direction:column;gap:8px}
.kl-town-zonecard__n{font-size:.77rem;font-weight:820;color:#588c27}
.kl-town-zonecard a{font-size:1.18rem;font-weight:850;text-decoration:none;display:flex;justify-content:space-between;gap:9px;align-items:center}
.kl-town-zonecard a:hover{color:#478501!important}
.kl-town-zonecard__kind{font-size:.87rem;line-height:1.5;color:#6a7765}
.kl-town-b-feature__inner{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}
.kl-town-b-feature__inner .kl-town-cta{margin:0;grid-template-columns:1fr;padding:34px;background:#203d17;border:1px solid #476a32}
.kl-town-b-feature__inner .kl-town-cta h2{font-size:2rem}
.kl-town-b-feature__inner .kl-town-cta .kl-town-actions{flex-direction:column;align-items:stretch}
.kl-town-section--crosslinks{background:#eaf7e1}
@media(max-width:1000px){.kl-town-hero__grid,.kl-town-hero--b .kl-town-hero__grid{grid-template-columns:1fr 1fr}.kl-town-services,.kl-town-zonelist{grid-template-columns:repeat(2,minmax(0,1fr))}.kl-town-b-method,.kl-town-b-feature__inner{grid-template-columns:1fr}.kl-town-cta{grid-template-columns:1fr}}
@media(max-width:700px){.kl-town-hero{padding:32px 0 45px}.kl-town-hero__grid,.kl-town-hero--b .kl-town-hero__grid,.kl-town-split,.kl-town-split--reverse,.kl-town-b-lead,.kl-town-b-method,.kl-town-b-feature__inner{display:flex;flex-direction:column;align-items:stretch;gap:25px}.kl-town-hero--b .kl-town-hero__photo{transform:none}.kl-town-hero__photo{max-height:440px;aspect-ratio:5/4}.kl-town-hero__photo img{aspect-ratio:5/4}.kl-town-hero h1{font-size:clamp(2.1rem,9vw,3.2rem)}.kl-town-services,.kl-town-zonelist,.kl-town-steps,.kl-town-faqs--grid{grid-template-columns:1fr}.kl-town-services--horizontal .kl-town-service{display:block}.kl-town-services--horizontal .kl-town-service__index{margin-bottom:20px}.kl-town-section{padding:55px 0}.kl-town-cta{padding:28px 22px}.kl-town-cta .kl-town-actions{flex-direction:column;align-items:stretch}.kl-town-steps--vertical li{display:flex;flex-direction:column}.kl-town-hero__flag{margin-top:20px}.kl-town-b-feature__inner .kl-town-cta h2{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){.kl-town-page .kl-town-service,.kl-town-page a{transition:none!important}.kl-town-page .kl-town-service:hover{transform:none!important}}

/* Pages de complément du pack complet. Les règles CSS préexistantes restent inchangées. */
.kl-extra-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr);gap:clamp(18px,5vw,60px);align-items:start}
.kl-extra-panel{background:white;padding:clamp(22px,3.7vw,54px);border-radius:28px;box-shadow:0 16px 50px #213d1718;border:1px solid #dfebd5}
.kl-extra-form{display:grid;gap:19px;margin-top:25px}
.kl-extra-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.kl-extra-form label{display:grid;gap:8px;font-weight:720;color:#1b2b15}
.kl-extra-form input:not([type=checkbox]),.kl-extra-form textarea{width:100%;border:1px solid #cddcbc;border-radius:13px;padding:14px 16px;font:inherit;background:#f9fcf7;color:#152513;outline-offset:3px}
.kl-extra-form input:focus,.kl-extra-form textarea:focus{border-color:#478501;outline:2px solid #d2efbe}
.kl-extra-form textarea{resize:vertical}
.kl-extra-form .kl-extra-consent{display:flex;align-items:flex-start;flex-wrap:wrap;font-size:.87rem;line-height:1.6}
.kl-extra-form .kl-extra-consent input{margin-top:5px}
.kl-extra-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.kl-extra-message{padding:19px 22px;border-radius:17px;background:#edf5e3;border:1px solid #cbe7bd;margin:18px 0}
.kl-extra-message--bad{background:#fff2ec;border-color:#fad3c1;color:#9b2b1a}.kl-extra-message--good{background:#e2f5d1;border-color:#91c66c}
.kl-extra-gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;margin-bottom:20px}
.kl-extra-prose{max-width:900px;background:white;padding:clamp(22px,5vw,60px);border:1px solid #e2ebd8;border-radius:26px}
.kl-extra-prose h2:not(:first-child){margin-top:52px}.kl-extra-prose p{max-width:75ch}
@media(max-width:850px){.kl-extra-grid{grid-template-columns:1fr}.kl-extra-form-pair{grid-template-columns:1fr}}


/* Correctif contraste pages villes - 2026-11-11 */
.kl-town-tip,
.kl-town-tip * {
  color: #ffffff;
}
.kl-town-tip .kl-town-kicker,
.kl-town-tip p {
  color: #e8f3e0;
}
.kl-town-tip h2,
.kl-town-tip h3,
.kl-town-tip strong,
.kl-town-tip a {
  color: #ffffff !important;
}
.kl-town-tip--light,
.kl-town-tip--light * {
  color: #1a2a15;
}
.kl-town-tip--light .kl-town-kicker,
.kl-town-tip--light p {
  color: #35582d;
}
.kl-town-tip--light h2,
.kl-town-tip--light h3,
.kl-town-tip--light strong,
.kl-town-tip--light a {
  color: #13210f !important;
}
