html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/barlow-400.woff") format("woff")}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/barlow-500.woff") format("woff")}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/barlow-600.woff") format("woff")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/barlowc-600.woff") format("woff")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/barlowc-700.woff") format("woff")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-style:normal;font-display:swap;src:url("fonts/barlowc-800.woff") format("woff")}
@font-face{font-family:"Dancing Script";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/dancing-600.woff") format("woff")}

/* Layout: palette et typo du logo — crème, vert olive, vert presque noir. Un seul thème clair, assumé. */
:root{
  --bg:#faf2e5; --surface:#fffdf7; --ink:#1f2a14; --muted:#56604a;
  --green:#55761f; --green-dark:#2c3a19; --line:#ddd6c4;
  --font-display:"Barlow Condensed","Arial Narrow",Impact,sans-serif;
  --font-body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-script:"Dancing Script","Brush Script MT",cursive;
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;margin:0}
a{color:inherit}
.wrap{max-width:1100px;margin-inline:auto;padding-inline:20px}
h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;line-height:1;margin:0;text-wrap:balance;letter-spacing:.01em;font-weight:800}
h2{font-size:clamp(2.2rem,5vw,3.2rem)}
h2 span{color:var(--green)}
p{margin:0}
:focus-visible{outline:3px solid var(--green);outline-offset:2px}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--green-dark);color:var(--bg)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px;flex-wrap:wrap}
.brand{font-family:var(--font-display);font-weight:800;font-size:1.6rem;text-transform:uppercase;text-decoration:none;letter-spacing:.02em}
.brand b{color:#a9c46a}
nav{display:flex;gap:22px;flex-wrap:wrap}
nav a{text-decoration:none;font-weight:500;opacity:.85}
nav a:hover{opacity:1;color:#a9c46a}

.btn{display:inline-block;background:var(--green);color:#fffdf7;font-family:var(--font-display);font-weight:700;font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;padding:12px 26px;border-radius:2px;text-decoration:none}
.btn:hover{background:var(--green-dark)}

.hero{padding-block:56px 64px}
.hero .wrap{display:grid;justify-items:center;text-align:center;gap:28px}
.hero img{width:100%;max-width:820px;height:auto;display:block}
.hero-text{justify-items:center}
.hero-text{display:grid;gap:18px;min-width:0}
.hero h1{font-size:clamp(3rem,8vw,5.6rem)}
.hero h1 span{color:var(--green)}
.tagline{font-family:var(--font-script);font-size:clamp(1.8rem,4vw,2.4rem);color:var(--green-dark);line-height:1.1}
.trio{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.trio{justify-content:center}
.trio i{color:var(--green);font-style:normal}
.ctas{display:flex}

section{padding-block:72px}
.alt{background:var(--surface);border-block:1px solid var(--line)}
.title{margin-bottom:36px}

.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.aud{border-top:4px solid var(--green);padding-top:20px;display:grid;gap:14px;align-content:start;min-width:0}
.aud h3{font-size:1.7rem;color:var(--green-dark)}
.aud ul{list-style:none;padding:0;margin:0}
.sub{font-weight:600;color:var(--green)}
.more{color:var(--muted);font-style:italic}
.aud li{padding-block:10px;border-bottom:1px solid var(--line);font-weight:500}

.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.shot img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:2px}
@media (max-width:520px){.gallery{grid-template-columns:1fr 1fr;gap:10px}.shot figcaption{font-size:1rem}}
.shot{margin:0;min-width:0}
.ph{aspect-ratio:4/3;max-width:100%;display:grid;place-items:center;background:color-mix(in srgb,var(--green) 14%,var(--bg));border:1px dashed color-mix(in srgb,var(--green) 50%,var(--bg))}
.ph span{font-size:.85rem;color:var(--muted)}
.shot figcaption{padding-top:8px;font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:1.15rem;letter-spacing:.02em}

.contact{background:var(--green-dark);color:var(--bg)}
.contact h2 span{color:#a9c46a}
.coords{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.coord{display:grid;gap:6px;border-top:1px solid rgba(247,243,232,.25);padding-top:16px;min-width:0}
.coord small{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;opacity:.7}
.coord .v{font-family:var(--font-display);font-size:clamp(1.7rem,4vw,2.3rem);font-weight:700;display:flex;gap:12px;align-items:center;flex-wrap:wrap;overflow-wrap:anywhere}
.copy{font:600 .8rem var(--font-body);background:transparent;color:var(--bg);border:1px solid rgba(247,243,232,.4);padding:4px 12px;cursor:pointer;border-radius:2px}

footer{background:var(--ink);color:var(--bg);padding-block:24px;font-size:.9rem}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;opacity:.8}

.legal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:center}
.fr-map{width:100%;max-width:440px;height:auto;display:block;margin-inline:auto}
.fr-map path{fill:var(--surface);stroke:var(--green-dark);stroke-width:1;stroke-linejoin:round}
.fr-map path.home{fill:color-mix(in srgb,var(--green) 30%,var(--surface))}
.fr-map .dot{fill:var(--green-dark);stroke:var(--bg);stroke-width:2.5}
.fr-map .pulse{fill:var(--green);opacity:.25}
@media (prefers-reduced-motion:no-preference){.fr-map .pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}}
@keyframes pulse{0%{transform:scale(.6);opacity:.45}100%{transform:scale(1.8);opacity:0}}
.legal{display:grid;gap:20px;min-width:0}
.legal dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 24px}
.legal dt{color:var(--muted)}
.legal dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.legal .co{font-family:var(--font-display);font-weight:800;font-size:1.6rem;text-transform:uppercase;color:var(--green-dark)}
.legal .assu{border-left:4px solid var(--green);padding-left:16px;color:var(--muted)}
.groups{display:grid;gap:40px}
.group{display:grid;gap:14px}
.group h3{font-size:1.5rem;color:var(--green-dark);border-bottom:2px solid var(--green);padding-bottom:6px}
.group .gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:2px;min-width:0}
.call{justify-self:start;margin-top:6px}
[hidden]{display:none!important}
.group .gallery img{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:50;background:rgba(15,20,10,.92);display:flex;align-items:center;justify-content:center;padding:calc(56px + env(safe-area-inset-top,0px)) 12px calc(56px + env(safe-area-inset-bottom,0px))}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.lb button{position:absolute;background:rgba(255,253,247,.12);color:#fffdf7;border:0;border-radius:2px;font:700 1.6rem/1 var(--font-display);width:48px;height:48px;cursor:pointer}
.lb button:hover{background:rgba(255,253,247,.25)}
.lb .x{top:calc(10px + env(safe-area-inset-top,0px));right:10px}
.lb .prev{left:10px;top:50%;transform:translateY(-50%)}
.lb .next{right:10px;top:50%;transform:translateY(-50%)}
.lb .cap{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:#fffdf7;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem}
.contact .call{background:#a9c46a;color:var(--green-dark)}
.ctas{gap:12px;flex-wrap:wrap}

/* Page 404 */
body.err{min-height:100vh;display:flex;flex-direction:column}
.err-main{flex:1;display:flex;align-items:center;padding-block:64px}
.err-wrap{display:grid;gap:18px;justify-items:center;text-align:center;width:100%}
.err-art{width:100%;max-width:360px;height:auto}
.err-soil{fill:color-mix(in srgb,var(--green) 22%,var(--bg));stroke:var(--green-dark);stroke-width:1.5}
.err-line{fill:var(--green)}
.err-mach{fill:var(--green-dark)}
.err-code{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--green)}
.err h1{font-size:clamp(2.2rem,7vw,4rem);max-width:16ch}
.err h1 span{color:var(--green)}
.err-txt{color:var(--muted);max-width:40ch}
.err-ctas{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.btn.ghost{background:transparent;color:var(--green-dark);box-shadow:inset 0 0 0 2px var(--green-dark)}
.btn.ghost:hover{background:var(--green-dark);color:#fffdf7}

/* Responsive renforcé */
@media (max-width:600px){
  body{font-size:16px}
  section{padding-block:52px}
  header.top .wrap{justify-content:center;row-gap:6px}
  nav{gap:18px;justify-content:center}
  .hero{padding-block:32px 44px}
  .coord .v{font-size:1.6rem}
  .legal dl{grid-template-columns:1fr;gap:2px}
  .legal dd{margin-bottom:10px}
  .lb .prev,.lb .next{top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));transform:none}
  .lb .cap{bottom:calc(70px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:360px){
  .group .gallery{grid-template-columns:1fr}
  nav{gap:12px;font-size:.95rem}
}
a,button{-webkit-tap-highlight-color:transparent}
.btn,.copy,nav a{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:420px){.trio{font-size:.82rem;letter-spacing:.03em;gap:6px}}

/* Pages légales */
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
.foot-links a{text-decoration:none;opacity:.9;min-height:0}
.foot-links a:hover{text-decoration:underline;color:#a9c46a}
.doc-main{padding-block:56px 72px}
.doc-wrap{max-width:760px;display:grid;gap:14px}
.doc h1{font-size:clamp(2.2rem,6vw,3.4rem);margin-bottom:6px}
.doc h1 span{color:var(--green)}
.doc h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:1.45rem;color:var(--green-dark);margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line)}
.doc-kicker{font-size:.85rem;color:var(--muted);letter-spacing:.04em}
.doc-lead{font-size:1.1rem;border-left:4px solid var(--green);padding-left:16px}
.doc ul{margin:0;padding-left:20px;display:grid;gap:8px}
.doc-main a{color:var(--green);font-weight:600}

/* Fin de page : pas d'espace clair sous le pied de page (rebond iPhone/Android) */
html{background:var(--ink);overscroll-behavior-y:none}
body{min-height:100%}
body.err{min-height:100vh;min-height:100dvh}
