/* LC Services — direction artistique de Gaelle (maquette Canva « ACCUEIL »).
   Pastels lavande / menthe / rose, titres Rammetto bleu roi en dégradé, photos détourées. */
@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&family=Lexend:wght@300..600&family=Rammetto+One&display=swap");

:root {
  --roi: #1800ad;
  --roi-2: #2a8cff;
  --indigo: #333eaa;
  --violet: #6c45c2;
  --menthe: #86e7b0;
  --menthe-2: #6de69e;
  --lavande: #eee9ff;
  --rose: #efc6e3;
  --rose-2: #f7c6cd;
  --rose-3: #df99a7;
  --vert: #438f71;
  --vert-2: #9adec7;
  --blanc: #ffffff;
  --display: "Rammetto One", "Arial Black", system-ui, sans-serif;
  --titre: "Archivo Black", "Arial Black", system-ui, sans-serif;
  --texte: "Helvetica Neue", Arial, system-ui, sans-serif;
  --doux: "Lexend", "Avenir Next", system-ui, sans-serif;
  --gl: max(20px, env(safe-area-inset-left, 0px));
  --gr: max(20px, env(safe-area-inset-right, 0px));
  color-scheme: light;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before { transition: none !important; animation: none !important; } }
body { margin: 0; background: var(--blanc); color: var(--roi); font-family: var(--texte); font-size: 17px; line-height: 1.5; }
img { max-width: 100%; display: block; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--roi-2); outline-offset: 3px; border-radius: 6px; }
.wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--gl); padding-right: var(--gr); }

.prio { font-family: var(--display); font-weight: 400; line-height: 1; display: inline-grid; justify-items: start; justify-self: start; width: max-content; max-width: 100%; }
.prio .l1 { font-size: clamp(1.4rem, 3vw, 2.5rem); }
.prio .l2 { font-size: clamp(1.2rem, 2.6vw, 2.15rem); justify-self: center; margin: -.12em 0 -.18em; }
.prio .l3 { font-size: clamp(3rem, 6.6vw, 5.4rem); line-height: .95; }
.prio.degrade span { background: linear-gradient(90deg, var(--roi) 0%, #1f4fe0 55%, var(--roi-2) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.prio.double span { color: var(--menthe); text-shadow: -.09em .02em 0 var(--lavande); }

.titre { font-family: var(--titre); font-weight: 400; line-height: 1.08; font-size: clamp(1.9rem, 3.8vw, 3.2rem); background: linear-gradient(90deg, var(--roi), var(--roi-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sous { font-family: var(--display); font-weight: 400; line-height: 1.2; font-size: clamp(1.5rem, 3.2vw, 2.9rem); }
.doux { font-family: var(--doux); font-weight: 300; line-height: 1.45; }

.pill { display: inline-flex; align-items: center; justify-content: center; gap: .4em; font-family: var(--display); font-size: clamp(1rem, 1.6vw, 1.35rem); color: var(--roi); text-decoration: none; padding: .75em 1.6em; border-radius: 999px; background: linear-gradient(90deg, var(--lavande), var(--rose)); border: 0; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; box-shadow: 0 6px 20px rgba(24, 0, 173, .12); }
.pill:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(24, 0, 173, .2); }
.pill .bleu { color: #1f4fe0; }

header.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; background: rgba(255, 255, 255, .94); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(24, 0, 173, .06); }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); background: #fff; z-index: 31; }
header.top .wrap { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding-block: 14px; }
.nav-g, .nav-d { display: flex; gap: clamp(16px, 4vw, 70px); font-weight: 700; font-size: clamp(.8rem, 1.2vw, 1.05rem); letter-spacing: .02em; text-transform: uppercase; }
.nav-g { justify-content: space-around; }
.nav-d { justify-content: space-around; }
.nav-g a, .nav-d a { text-decoration: none; }
.nav-g a:hover, .nav-d a:hover, .nav-g a[aria-current], .nav-d a[aria-current] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.logo { text-decoration: none; text-align: center; line-height: .9; }
.logo b { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(2.2rem, 4vw, 3.4rem); }
.logo small { display: block; font-family: var(--titre); font-size: clamp(.7rem, 1.1vw, .95rem); letter-spacing: .06em; margin-top: .25em; }
.burger { display: none; }
@media (max-width: 820px) {
  header.top .wrap { grid-template-columns: auto 1fr auto; }
  .logo { grid-column: 1; text-align: left; }
  .nav-g, .nav-d { display: none; }
  .burger { display: inline-flex; grid-column: 3; background: none; border: 0; color: var(--roi); font: 700 .9rem var(--texte); text-transform: uppercase; gap: 8px; align-items: center; cursor: pointer; padding: 8px; }
  .burger svg { width: 26px; height: 26px; }
  .menu-mobile { grid-column: 1 / -1; display: grid; gap: 4px; padding-bottom: 8px; }
  .menu-mobile a { text-decoration: none; font-weight: 700; text-transform: uppercase; padding: 12px 4px; border-top: 1px solid rgba(24, 0, 173, .08); }
}
@media (min-width: 821px) { .menu-mobile { display: none !important; } }

.hero { position: relative; min-height: clamp(360px, 48vw, 660px); display: grid; align-items: center; background: #ece8f7 center / cover no-repeat; }
.hero .wrap { width: 100%; }
.hero .prio { margin-left: clamp(0px, 2vw, 30px); }

.intro { position: relative; padding-block: clamp(60px, 9vw, 130px) 40px; overflow: hidden; }
.bandes { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(4, 1fr); pointer-events: none; }
.bandes i { justify-self: center; width: 11%; min-width: 50px; height: 100%; opacity: .3; }
.bandes i:nth-child(1) { background: linear-gradient(180deg, #6de69e, #2c7050); }
.bandes i:nth-child(2) { background: linear-gradient(180deg, #5199ef, #1800ad); }
.bandes i:nth-child(3) { background: linear-gradient(180deg, #ac5636, #98482e); }
.bandes i:nth-child(4) { background: linear-gradient(180deg, #f890c9, #ac3358); }
.intro-txt { position: relative; margin-left: auto; max-width: 820px; display: grid; gap: 22px; }
.intro-txt p { font-weight: 700; font-size: clamp(.98rem, 1.35vw, 1.15rem); line-height: 1.55; text-align: justify; hyphens: auto; }
.intro-txt p.cta-txt { font-family: var(--titre); font-weight: 400; font-size: clamp(1rem, 1.45vw, 1.25rem); text-align: left; }
.domaines-titre { position: relative; font-family: var(--display); font-weight: 400; font-size: clamp(1.05rem, 1.6vw, 1.35rem); margin: clamp(50px, 8vw, 110px) 0 24px clamp(0px, 4vw, 50px); }
.domaines { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2.4vw, 34px); }
.domaine { display: grid; grid-template-rows: auto auto 1fr; gap: 14px; text-decoration: none; color: var(--violet); }
.domaine .img { height: clamp(200px, 26vw, 360px); display: flex; justify-content: center; align-items: flex-end; overflow: hidden; }
.domaine img { height: 100%; width: auto; max-width: 100%; object-fit: contain; object-position: bottom; mix-blend-mode: multiply; transition: transform .35s ease; }
.domaine:hover img { transform: translateY(-8px) rotate(-2deg); }
.domaine h3 { font-size: clamp(1rem, 1.5vw, 1.3rem); font-weight: 700; line-height: 1.2; }
.domaine p { font-size: clamp(.92rem, 1.3vw, 1.1rem); line-height: 1.3; }
.domaine .go { font-family: var(--titre); font-size: .85rem; color: var(--roi); }
@media (max-width: 820px) { .domaines { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bandes { display: none; } .intro-txt p { text-align: left; } }

.bandeau { position: relative; overflow: hidden; isolation: isolate; }
.bandeau .wrap { position: relative; display: grid; min-height: clamp(520px, 70vw, 1000px); padding-block: clamp(40px, 6vw, 90px); align-content: space-between; }
.bandeau .photo { position: absolute; z-index: -1; mix-blend-mode: multiply; }
.bandeau .accroche { display: grid; gap: 22px; max-width: 900px; color: #fff; margin-top: clamp(220px, 34vw, 520px); }
.bandeau .accroche .sous { color: inherit; }
.bandeau .accroche p { font-size: clamp(1.15rem, 2.4vw, 2.2rem); }
.b-menage { background: linear-gradient(180deg, var(--rose-2), var(--rose-3)); }
.b-menage .photo { right: -4%; top: -2%; height: 104%; width: auto; max-width: none; }
.b-aide { background: radial-gradient(120% 90% at 0% 0%, var(--vert-2), var(--vert)); }
.b-aide .photo { left: 0; top: 8%; width: 94%; max-width: 1285px; }
.b-aide .accroche { justify-self: end; max-width: 820px; }
.b-enfants { background: #a9cfee; }
.b-enfants .photo { inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: normal; }
.b-enfants .wrap { min-height: clamp(460px, 100vw, 1300px); align-content: start; }
.b-scolarite { background: linear-gradient(180deg, var(--lavande), var(--rose)); }
.b-scolarite .photo { right: 6%; top: 2%; height: 98%; width: auto; max-width: none; mix-blend-mode: normal; -webkit-mask-image: radial-gradient(ellipse 62% 70% at 50% 55%, #000 55%, transparent 100%); mask-image: radial-gradient(ellipse 62% 70% at 50% 55%, #000 55%, transparent 100%); }
.b-scolarite .wrap { align-content: start; }
@media (max-width: 820px) {
  .bandeau .accroche { margin-top: 48vw; }
  .b-menage .photo { right: -30%; opacity: .9; }
  .b-scolarite .photo { right: -20%; }
  .b-aide .accroche { justify-self: start; }
}
.accroche-ombre { text-shadow: 0 2px 18px rgba(80, 20, 60, .25); }

.degrade-bande { height: clamp(80px, 12vw, 170px); background: linear-gradient(90deg, #79c3a7 0%, #88cf8f 50%, rgba(236, 126, 183, .7) 100%); }

.carrelage { padding-block: clamp(50px, 7vw, 100px); background: #8fd1b4 center / 100% auto repeat-y; }
.prestas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 6vw, 90px) clamp(30px, 8vw, 150px); max-width: 1100px; margin: 0 auto; }
.presta { display: grid; gap: 16px; justify-items: center; }
.presta .rond { width: min(406px, 80%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: 0 18px 40px rgba(20, 70, 50, .2); }
.presta .rond img { width: 100%; height: 100%; object-fit: cover; }
.presta div { background: rgba(255, 255, 255, .82); border-radius: 22px; padding: 22px 26px; width: 100%; }
.presta h3 { font-family: var(--display); font-weight: 400; font-size: clamp(1.05rem, 1.7vw, 1.4rem); margin-bottom: 10px; }
.presta p { text-align: justify; hyphens: auto; font-size: clamp(.95rem, 1.3vw, 1.08rem); }
@media (max-width: 700px) { .prestas { grid-template-columns: minmax(0, 1fr); } .presta p { text-align: left; } }

.credit { background: linear-gradient(90deg, #f0b8c2, rgba(109, 230, 158, .82)); }
.credit .wrap { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); gap: 40px; align-items: center; padding-block: clamp(40px, 5vw, 70px); }
.credit h2 { font-weight: 700; font-size: clamp(1.6rem, 2.8vw, 2.35rem); line-height: 1.1; }
.credit h2 small { display: block; font-size: .64em; margin-top: 6px; }
.credit p { margin-top: 18px; font-size: clamp(1rem, 1.4vw, 1.25rem); }
.credit .note { font-size: .9rem; opacity: .85; }
.credit img { border-radius: 4px; box-shadow: 0 20px 40px rgba(24, 0, 173, .15); }
@media (max-width: 760px) { .credit .wrap { grid-template-columns: minmax(0, 1fr); } }

.mousse { background: #cfe3dd center / cover no-repeat; padding-block: clamp(70px, 10vw, 140px); }
.mousse .wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(20px, 6vw, 140px); }

.rangees { display: grid; }
.rangee { background: linear-gradient(90deg, var(--lavande), var(--rose)); }
.rangee:nth-child(even) { background: linear-gradient(90deg, #fedfff, #efb8df); }
.rangee .wrap { display: grid; grid-template-columns: minmax(0, 475px) minmax(0, 1fr); gap: clamp(24px, 4vw, 60px); align-items: center; padding-block: 28px; }
.rangee:nth-child(even) .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 475px); }
.rangee:nth-child(even) .photo-r { order: 2; }
.photo-r { border-radius: 38px; overflow: hidden; aspect-ratio: 1; }
.photo-r img { width: 100%; height: 100%; object-fit: cover; }
.rangee h3 { font-family: var(--display); font-weight: 400; font-size: clamp(1.3rem, 2.3vw, 1.95rem); line-height: 1.2; margin-bottom: 16px; }
.rangee p { font-family: var(--doux); font-weight: 300; font-size: clamp(1.05rem, 1.9vw, 1.6rem); color: var(--indigo); line-height: 1.35; }
.rangee:nth-child(even) h3 { color: var(--indigo); }
@media (max-width: 760px) { .rangee .wrap, .rangee:nth-child(even) .wrap { grid-template-columns: minmax(0, 1fr); } .rangee:nth-child(even) .photo-r { order: 0; } .photo-r { max-width: 420px; } }
.cta-ligne { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; padding-block: clamp(40px, 6vw, 80px); }

.enfants { padding-block: clamp(50px, 7vw, 100px); }
.enfants .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 526px); gap: clamp(30px, 5vw, 80px); align-items: center; }
.enfants h2 { margin-bottom: 18px; }
.enfants ul { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 14px; }
.enfants li { background: linear-gradient(90deg, var(--lavande), #b6d3e9); border-radius: 18px; padding: 16px 20px; }
.enfants li b { font-family: var(--display); font-weight: 400; display: block; margin-bottom: 4px; }
.enfants .mains { border-radius: 4px; }
.pastels { height: clamp(220px, 40vw, 560px); background: #d9c6a8 center / cover no-repeat; }
@media (max-width: 760px) { .enfants .wrap { grid-template-columns: minmax(0, 1fr); } }

.scolaire { background: linear-gradient(90deg, #e0d9f8, #bad9c1); padding-bottom: 0; }
.reussir { margin: 0 auto; max-width: 1250px; padding: clamp(40px, 6vw, 80px) var(--gr) 0 var(--gl); }
.reussir .banniere { background: linear-gradient(90deg, var(--lavande), #b6d3e9); border-radius: 22px; padding: 22px; text-align: center; }
.reussir h2 { font-family: var(--display); font-weight: 400; font-size: clamp(1.5rem, 3.2vw, 2.75rem); color: var(--menthe); letter-spacing: .04em; text-shadow: 0 1px 0 rgba(24, 0, 173, .25); }
.reussir .banniere p { font-family: var(--doux); color: #111; margin-top: 6px; }
.atouts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 4vw, 60px); margin-top: 20px; }
.atouts div { background: linear-gradient(90deg, var(--lavande), #b6d3e9); border-radius: 20px; min-height: 120px; display: grid; place-items: center; text-align: center; padding: 18px; font-family: var(--display); color: var(--indigo); font-size: clamp(.95rem, 1.4vw, 1.3rem); border: 1px solid rgba(255, 255, 255, .8); }
@media (max-width: 640px) { .atouts { grid-template-columns: minmax(0, 1fr); } .atouts div { min-height: 70px; } }
.etagere { margin-top: 18px; width: 100%; height: clamp(160px, 30vw, 420px); object-fit: cover; object-position: center top; }
.accomp { position: relative; background: linear-gradient(90deg, #b7e6bc, #cbbbff); padding-block: clamp(40px, 6vw, 90px); overflow: hidden; }
.accomp::before, .accomp::after { content: ""; position: absolute; top: 0; bottom: 0; width: 37%; background: linear-gradient(180deg, var(--rose-2), var(--rose-3)); opacity: .3; }
.accomp::before { left: 13%; }
.accomp::after { left: 54%; opacity: .2; }
.accomp .wrap { position: relative; z-index: 1; }
.accomp .etiquette { display: inline-block; background: linear-gradient(90deg, var(--lavande), var(--rose)); opacity: .95; border-radius: 999px; padding: 14px 40px; font-family: var(--display); color: var(--indigo); font-size: clamp(1.3rem, 2.6vw, 2.25rem); line-height: 1.15; margin-left: clamp(0px, 5vw, 60px); }
.duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(30px, 6vw, 80px); max-width: 1060px; margin: 40px auto 0; }
.duo article { display: grid; justify-items: center; gap: 18px; text-align: center; }
.duo .rond { width: min(380px, 85%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; }
.duo .rond img { width: 100%; height: 100%; object-fit: cover; }
.duo h3 { font-family: var(--display); font-weight: 400; color: var(--indigo); font-size: clamp(1.5rem, 3vw, 2.55rem); }
.duo p { font-family: var(--display); color: var(--indigo); font-size: clamp(.95rem, 1.4vw, 1.3rem); line-height: 1.3; text-align: justify; hyphens: auto; }
@media (max-width: 700px) { .duo { grid-template-columns: minmax(0, 1fr); } .duo p { text-align: left; } }
.niveaux { background: #fff; padding-block: 30px; }
.niveaux h3 { color: #4b2fd0; font-size: 1.4rem; margin-bottom: 14px; }
.niveaux .cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.niveaux .cartes div { border: 1px solid #e3e1ee; border-radius: 12px; padding: 16px; text-align: center; color: #222; }
.niveaux .cartes svg { width: 22px; height: 22px; color: #7a5cf0; margin: 0 auto 6px; display: block; }
.niveaux .cartes b { display: block; font-size: 1.1rem; }
.niveaux .cartes span { color: #777; font-size: .9rem; }
.niveaux p { color: #222; margin-top: 14px; font-size: .95rem; }
@media (max-width: 560px) { .niveaux .cartes { grid-template-columns: minmax(0, 1fr); } }
.photo-large { width: 100%; height: auto; max-height: 460px; object-fit: cover; }
.final { background: linear-gradient(90deg, #e0d9f8, #bad9c1); text-align: center; padding-block: clamp(50px, 7vw, 100px); }
.final h2 { font-family: var(--titre); font-weight: 400; color: #111; font-size: clamp(1.4rem, 2.7vw, 2.3rem); }
.final p { font-family: var(--titre); color: #111; margin: 16px 0 26px; font-size: clamp(.95rem, 1.5vw, 1.4rem); }

.page-hero { background: linear-gradient(90deg, var(--lavande), var(--rose)); padding-block: clamp(50px, 7vw, 90px); }
.page-hero p { margin-top: 16px; max-width: 60ch; font-family: var(--doux); font-weight: 300; font-size: 1.2rem; color: var(--indigo); }
.contenu { padding-block: clamp(40px, 6vw, 80px); }
.contenu .wrap { max-width: 900px; display: grid; gap: 20px; }
.contenu h2 { font-family: var(--display); font-weight: 400; font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin-top: 20px; }
.contenu p, .contenu li { color: var(--indigo); font-size: 1.05rem; line-height: 1.6; }
.contenu ul { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.valeurs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.valeurs div { background: linear-gradient(160deg, var(--lavande), #b6d3e9); border-radius: 22px; padding: 22px; }
.valeurs b { font-family: var(--display); font-weight: 400; display: block; margin-bottom: 6px; }
@media (max-width: 700px) { .valeurs { grid-template-columns: minmax(0, 1fr); } }
.todo { background: #fff1a8; color: #4a3b00; padding: 1px 6px; border-radius: 6px; font-weight: 700; }

.contact-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; }
@media (max-width: 760px) { .contact-grid { grid-template-columns: minmax(0, 1fr); } }
.coord { display: grid; gap: 18px; align-content: start; }
.coord span { display: block; font-size: .85rem; color: var(--violet); }
.coord a, .coord b { font-family: var(--display); font-weight: 400; font-size: 1.3rem; text-decoration: none; overflow-wrap: anywhere; }
form.devis { background: linear-gradient(160deg, var(--lavande), var(--rose)); border-radius: 26px; padding: clamp(20px, 3vw, 32px); display: grid; gap: 16px; }
form.devis label { display: grid; gap: 6px; font-weight: 700; font-size: .95rem; }
form.devis input, form.devis select, form.devis textarea { font: inherit; color: var(--roi); background: #fff; border: 1.5px solid rgba(24, 0, 173, .15); border-radius: 14px; padding: 12px 14px; width: 100%; }
form.devis textarea { min-height: 110px; resize: vertical; }
form.devis [aria-invalid="true"] { border-color: #c0223a; }
.err { color: #b0142e; font-size: .88rem; }
.err:empty { display: none; }
.deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
@media (max-width: 520px) { .deux { grid-template-columns: minmax(0, 1fr); } }
.merci { background: linear-gradient(160deg, var(--lavande), #b7e6bc); border-radius: 26px; padding: 32px; display: grid; gap: 14px; }
.merci h3 { font-family: var(--display); font-weight: 400; font-size: 1.4rem; }
.faq { display: grid; gap: 12px; }
.faq details { background: linear-gradient(90deg, var(--lavande), #fff); border-radius: 18px; padding: 18px 22px; border: 1px solid rgba(24, 0, 173, .08); }
.faq summary { font-family: var(--display); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 14px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details p { margin-top: 10px; }

footer { background: linear-gradient(90deg, #e0d9f8, #bad9c1); color: var(--roi); }
footer .wrap { display: grid; grid-template-columns: auto 1fr auto; gap: 30px; align-items: start; padding-block: 40px; }
footer .logo { text-align: left; }
footer nav { display: flex; flex-wrap: wrap; gap: 8px 24px; font-weight: 700; justify-content: center; }
footer nav a { text-decoration: none; }
footer nav a:hover { text-decoration: underline; }
footer .contact-f { text-align: right; display: grid; gap: 4px; }
footer .contact-f a { text-decoration: none; font-weight: 700; }
footer .legal { grid-column: 1 / -1; font-size: .85rem; color: var(--indigo); border-top: 1px solid rgba(24, 0, 173, .12); padding-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 20px; }
@media (max-width: 760px) { footer .wrap { grid-template-columns: minmax(0, 1fr); } footer nav { justify-content: start; } footer .contact-f { text-align: left; } }

.barre { display: none; }
@media (max-width: 760px) {
  .barre { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 10px var(--gr) calc(10px + env(safe-area-inset-bottom, 0px)) var(--gl); background: rgba(255, 255, 255, .95); box-shadow: 0 -6px 20px rgba(24, 0, 173, .12); }
  .barre .pill { padding: .7em 1em; font-size: 1rem; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
/* Cartes des 4 domaines : cliquables, avec arrivée sous l'en-tête fixe */
section[id] { scroll-margin-top: 96px; }
.domaine { position: relative; border-radius: 24px; padding: 12px 12px 16px; margin: -12px; transition: background .25s ease, transform .25s ease, box-shadow .25s ease; }
.domaine:hover, .domaine:focus-visible { background: rgba(238, 233, 255, .85); transform: translateY(-6px); box-shadow: 0 16px 34px rgba(24, 0, 173, .14); }
.domaine:hover h3, .domaine:focus-visible h3 { text-decoration: underline; text-underline-offset: 4px; }
.domaine .go { display: inline-flex; align-items: center; gap: 6px; justify-self: start; padding: 8px 16px; border-radius: 999px; background: linear-gradient(90deg, var(--lavande), var(--rose)); font-size: .9rem; }

/* Pages dédiées : bandeau « Nos autres services » */
.autres { padding-block: clamp(50px, 7vw, 90px); background: #fff; }
.autres .domaines-titre { margin-top: 0; }
.domaines-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1000px; }
@media (max-width: 820px) { .domaines-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Retouches 2 : barres qui s'arrêtent aux objets, photos bord à bord */
.bandes { display: none; }
.intro, .autres { position: relative; overflow: hidden; isolation: isolate; }
.domaine .img { position: relative; overflow: visible; }
.domaine .img::before { content: ""; position: absolute; left: 50%; transform: translateX(-50%); width: 44%; top: -3000px; bottom: 35%; z-index: -1; opacity: .3; }
.domaine:nth-child(1) .img::before { background: linear-gradient(180deg, #6de69e, #2c7050); }
.domaine:nth-child(2) .img::before { background: linear-gradient(180deg, #5199ef, #1800ad); }
.domaine:nth-child(3) .img::before { background: linear-gradient(180deg, #ac5636, #98482e); }
.domaine:nth-child(4) .img::before { background: linear-gradient(180deg, #f890c9, #ac3358); }
.domaine img { mix-blend-mode: normal; background: #fff; }
.domaine:hover, .domaine:focus-visible { background: transparent; box-shadow: none; }
.carrelage { background-size: 1366px auto; background-repeat: repeat; }
.presta .rond { box-shadow: 0 14px 30px rgba(20, 70, 50, .18); }
.credit { position: relative; overflow: hidden; }
.credit .wrap { grid-template-columns: minmax(0, 1fr); padding-right: calc(38% + 40px); min-height: 520px; }
.credit img { position: absolute; top: 0; right: 0; bottom: 0; width: 38%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; }
@media (max-width: 760px) { .credit .wrap { padding-right: var(--gr); min-height: 0; } .credit img { position: static; width: 100%; height: auto; } }
.accomp::before, .accomp::after { display: none; }
.duo { isolation: isolate; }
.duo article { position: relative; padding: 30px 24px; }
.duo article::before { content: ""; position: absolute; top: -400px; bottom: -400px; left: 0; right: 0; background: linear-gradient(180deg, #f7c6cd, #df99a7); opacity: .25; z-index: -1; }
.etagere { height: auto; max-height: 460px; object-fit: cover; }
