/* Layout : en-tête clair, accueil crème à formes organiques avec losanges cliquables des univers visibles sans défiler, pages par ancre */
:root{
  --cream:#f8f2ea; --rose:#e8c4bd; --peach:#f2d3b3; --brown:#3a2419; --brown-2:#5a3a2a; --red:#c8102e; --claim:#5a3a2a;
  --bg:#f8f2ea; --surface:#fffaf4; --tint:#f3e3d6; --ink:#2b1a12; --muted:#6d5648; --line:#e3d3c3;
  --accent:#b80e2a; --accent-ink:#ffffff; --head:#fffaf4; --on-photo:#fff7ee; --gold:#c9a77c; --tint-a:rgba(243,227,214,.6); --deco-op:1;
  --veil-a:rgba(255,250,244,.86); --veil-b:rgba(255,250,244,.62); --veil-c:rgba(255,250,244,.2); --chip:rgba(255,250,244,.75);
  --display:'Montserrat','Century Gothic',system-ui,sans-serif;
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gut-l:max(16px,env(safe-area-inset-left,0px)); --gut-r:max(16px,env(safe-area-inset-right,0px));
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --bg:#1c130e; --surface:#251912; --tint:#2e2018; --ink:#f5ebdf; --muted:#bfaa98; --line:#3d2c22; --claim:#e0b99a;
  --accent:#e0384f; --accent-ink:#ffffff; --head:#1c130e; --tint-a:rgba(46,32,24,.6); --deco-op:.14; --veil-a:rgba(28,19,14,.84); --veil-b:rgba(28,19,14,.6); --veil-c:rgba(28,19,14,.2); --chip:rgba(28,19,14,.7); color-scheme:dark; } }
:root[data-theme="dark"]{ --bg:#1c130e; --surface:#251912; --tint:#2e2018; --ink:#f5ebdf; --muted:#bfaa98; --line:#3d2c22; --claim:#e0b99a;
  --accent:#e0384f; --accent-ink:#ffffff; --head:#1c130e; --tint-a:rgba(46,32,24,.6); --deco-op:.14; --veil-a:rgba(28,19,14,.84); --veil-b:rgba(28,19,14,.6); --veil-c:rgba(28,19,14,.2); --chip:rgba(28,19,14,.7); color-scheme:dark; }

html{ scroll-behavior:smooth; scroll-padding-top:120px; font-size:clamp(16px, .45vw + 10.5px, 21px); }
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--ink); font:400 1rem/1.6 var(--sans); position:relative; isolation:isolate; }
/* Décor latéral : formes de la maquette crème répétées sur toute la hauteur du site */
.deco{ position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:var(--deco-op);
  background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22260%22 height=%221100%22 viewBox=%220 0 260 1100%22%3E %3Ccircle cx=%2230%22 cy=%22120%22 r=%22125%22 fill=%22%23e8c4bd%22/%3E%3Ccircle cx=%2218%22 cy=%22132%22 r=%22134%22 fill=%22none%22 stroke=%22%23e8c4bd%22 stroke-width=%221.6%22/%3E %3Cpath d=%22M95 470c30-6 52 24 44 52-6 20 28 30 20 58-9 30-50 18-58 46-8 26-46 22-50-6-4-24-36-26-48-44-14-22 6-46 32-46 26 0 30-54 60-60z%22 fill=%22%23e8c4bd%22/%3E %3Cpath d=%22M-10 430c40 10 58 40 50 70-6 24 18 44 0 64-14 16-46 8-60 20%22 fill=%22none%22 stroke=%22%233a2419%22 stroke-width=%221.5%22/%3E %3Cpath d=%22M10 820c40-10 74 12 80 46 6 36-20 70-58 74-30 4-50-14-62-30z%22 fill=%22%23f2d3b3%22/%3E %3Cpath d=%22M-6 960c30-40 70-60 96-40 20 16 10 50-14 66%22 fill=%22none%22 stroke=%22%23c9a77c%22 stroke-width=%221.3%22/%3E %3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22300%22 height=%221300%22 viewBox=%220 0 300 1300%22%3E %3Cpath d=%22M220 180c60-8 110 36 120 96 12 62-14 140-76 160-66 20-150-8-170-72-14-46 18-104 60-136 20-16 42-46 66-48z%22 fill=%22%23f2d3b3%22/%3E %3Cpath d=%22M140 460c-20-60 30-90 50-120 26-40 30-110 80-106 30 2 40 30 50 60%22 fill=%22none%22 stroke=%22%23c9a77c%22 stroke-width=%221.3%22/%3E %3Ccircle cx=%22270%22 cy=%22820%22 r=%2290%22 fill=%22%23e8c4bd%22/%3E%3Ccircle cx=%22282%22 cy=%22808%22 r=%2298%22 fill=%22none%22 stroke=%22%23e8c4bd%22 stroke-width=%221.6%22/%3E %3Cpath d=%22M200 1040c20 40 70 40 90 80%22 fill=%22none%22 stroke=%22%233a2419%22 stroke-width=%221.4%22/%3E %3Ccircle cx=%22250%22 cy=%221150%22 r=%2234%22 fill=%22%23f2d3b3%22/%3E %3C/svg%3E");
  background-repeat:repeat-y, repeat-y; background-position:left top 4rem, right top 0;
  background-size:clamp(130px,17vw,320px) auto, clamp(150px,19vw,360px) auto; }
@media (max-width:700px){ .deco{ opacity:calc(var(--deco-op)*.6); } }
body::before{ content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); background:var(--head); z-index:60; }
h1,h2,h3{ font-family:var(--display); font-weight:500; line-height:1.08; margin:0; text-wrap:balance; letter-spacing:-.01em; }
p{ margin:0; max-width:64ch; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; }
img{ max-width:100%; display:block; }
:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }
.wrap{ width:100%; padding-left:max(16px,6vw,env(safe-area-inset-left,0px)); padding-right:max(16px,6vw,env(safe-area-inset-right,0px)); }
.eyebrow{ font:600 .78rem var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }

/* Boutons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:48px; padding:.7rem 1.4rem; border-radius:999px; font:600 1rem var(--sans); text-decoration:none; border:2px solid transparent; cursor:pointer; transition:transform .2s, background .2s, color .2s; }
.btn:hover{ transform:translateY(-2px); }
.btn-red{ background:var(--accent); color:var(--accent-ink); }
.btn-out{ border-color:currentColor; }
.btn-ghost{ border-color:rgba(255,247,238,.7); color:var(--on-photo); }
.btn-ghost:hover{ background:var(--on-photo); color:var(--brown); }

/* En-tête : une ligne (deux sur GSM) */
header.site{ position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--head); border-bottom:1px solid var(--line); }
header.site .wrap{ display:flex; align-items:center; justify-content:space-between; gap:.3rem 2rem; padding-block:.6rem; }
.logo{ display:block; width:clamp(240px,21vw,440px); }
.logo img{ width:100%; height:auto; }
.logo .dark{ display:none; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .logo .light{ display:none; } :root:not([data-theme="light"]) .logo .dark{ display:block; } }
:root[data-theme="dark"] .logo .light{ display:none; } :root[data-theme="dark"] .logo .dark{ display:block; }
nav.main{ display:flex; align-items:center; gap:1.6rem; }
nav.main a{ text-decoration:none; font-weight:500; padding:.5rem 0; position:relative; white-space:nowrap; }
nav.main a:not(.tel)::after{ content:""; position:absolute; left:0; right:0; bottom:.2rem; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
nav.main a:hover::after, nav.main a[aria-current="page"]::after{ transform:scaleX(1); }
nav.main a[aria-current="page"]{ color:var(--accent); }
nav.main .tel{ background:var(--accent); color:var(--accent-ink); padding:.55rem 1.1rem; border-radius:999px; font-weight:600; }
@media (max-width:900px){
  header.site .wrap{ flex-direction:column; align-items:stretch; padding-block:.5rem 0; }
  .logo{ width:min(270px,80vw); margin-inline:auto; }
  nav.main{ justify-content:space-between; gap:.4rem; overflow-x:auto; scrollbar-width:none; }
  nav.main a{ font-size:.95rem; padding:.55rem .1rem; }
  nav.main .tel{ display:none; }
  .l{ display:none; }
}
@media (min-width:901px){ nav.main .s{ display:none; } }

/* Pages */
.page{ animation:pagein .5s ease both; }
@keyframes pagein{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

/* Hero accueil : fond crème, formes organiques (réf. Canva 2864), losanges des univers (réf. 2863) */
.hero{ position:relative; background:transparent; color:var(--ink); overflow:hidden; isolation:isolate; }
.blobs{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.blobs svg{ position:absolute; overflow:visible; }
.b-circle{ width:clamp(180px,26vw,380px); left:clamp(-140px,-8vw,-60px); top:clamp(-150px,-9vw,-70px); }
.b-blob{ width:clamp(150px,18vw,270px); left:clamp(-60px,-3vw,-20px); bottom:clamp(-60px,-4vw,-30px); animation:float 14s ease-in-out infinite alternate; }
.b-peach{ width:clamp(220px,30vw,460px); right:clamp(-140px,-8vw,-60px); bottom:clamp(-160px,-10vw,-80px); animation:float 18s ease-in-out infinite alternate-reverse; }
@keyframes float{ from{ transform:translate(0,0) rotate(0deg); } to{ transform:translate(14px,-18px) rotate(6deg); } }
.f-rose{ fill:var(--rose); } .f-peach{ fill:var(--peach); } .s-rose{ stroke:var(--rose); } .s-ink{ stroke:var(--ink); } .s-gold{ stroke:var(--gold); }
.hero .wrap{ display:grid; gap:2rem 3rem; align-items:center; padding-block:clamp(2rem,5vw,3.6rem); }
@media (min-width:960px){ .hero .wrap{ grid-template-columns:1fr minmax(0,auto); } }
.hero-txt{ display:grid; gap:1.1rem; justify-items:start; max-width:min(100%,46rem); }
.hero h1{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(2.3rem,5.4vw,6rem); letter-spacing:.01em; line-height:1; color:var(--ink); }
.hero h1 .rule{ display:block; height:2px; background:var(--ink); margin:.6rem 0 .5rem; transform-origin:left; animation:draw 1.1s .2s cubic-bezier(.6,0,.2,1) both; }
@keyframes draw{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.hero h1 .sub{ display:block; text-transform:none; font-weight:300; font-size:.46em; letter-spacing:.01em; line-height:1.2; }
.hero .lead{ color:var(--muted); font-size:1.06rem; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.chips li{ border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:.3rem .85rem; font-size:.9rem; }
.chips b{ color:var(--accent); font-weight:600; }
.cta{ display:flex; flex-wrap:wrap; gap:.7rem; }

/* Losanges cliquables */
.dia{ --d:clamp(150px,17vw,340px); filter:drop-shadow(0 12px 20px rgba(58,36,25,.22)) drop-shadow(0 2px 4px rgba(58,36,25,.12)); position:relative; width:calc(var(--d)*2); height:calc(var(--d)*2); max-width:100%; margin-inline:auto; }
.dm{ position:absolute; width:var(--d); height:var(--d); clip-path:polygon(50% 1.5%,98.5% 50%,50% 98.5%,1.5% 50%); display:grid; place-items:center; text-align:center; text-decoration:none; transition:transform .35s cubic-bezier(.3,1.4,.5,1), filter .3s; animation:pop .7s cubic-bezier(.3,1.4,.5,1) both; }
.dm:hover,.dm:focus-visible{ transform:scale(1.06); filter:brightness(1.04); }
.dm:focus-visible{ outline:none; filter:brightness(1.1) drop-shadow(0 0 0 var(--ink)); }
.dm span{ display:grid; gap:.25rem; justify-items:center; max-width:60%; }
.dm svg{ width:clamp(26px,3vw,38px); height:auto; }
.dm b{ font:700 clamp(.82rem,1.15vw,1.02rem)/1.15 var(--display); text-transform:uppercase; letter-spacing:.02em; }
.dm small{ font-size:clamp(.66rem,.85vw,.78rem); line-height:1.25; opacity:.85; }
.dm.dt{ left:calc(var(--d)/2); top:0; background:var(--rose); color:var(--brown); animation-delay:.1s; }
.dm.dl{ left:0; top:calc(var(--d)/2); background:var(--brown); color:var(--cream); animation-delay:.25s; }
.dm.dr{ left:var(--d); top:calc(var(--d)/2); background:var(--peach); color:var(--brown); animation-delay:.4s; }
.dm.db{ left:calc(var(--d)/2); top:var(--d); background:var(--accent); color:var(--accent-ink); animation-delay:.55s; }
.dm.dl svg,.dm.db svg{ color:inherit; }
@keyframes pop{ from{ transform:scale(.6); opacity:.2; } to{ transform:scale(1); opacity:1; } }
@media (max-width:959px){ .dia{ --d:min(44vw,210px); } }
@media (max-width:900px){ .hero .l, .hero .lead{ display:none; } .hero .wrap{ padding-block:1.4rem 1.6rem; gap:1.4rem; } .dia{ --d:min(42vw,190px); } }
@media (max-width:420px){ .dm small{ display:none; } }
/* Sections */
section.block{ padding-block:clamp(2.8rem,6vw,4.8rem); }
section.tint{ background:var(--tint-a); }
.head{ display:grid; gap:.6rem; margin-bottom:2rem; }
.head h2{ font-size:clamp(1.9rem,3.8vw,2.8rem); }
.head p{ color:var(--muted); }
.rv{ }
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .rv{ animation:rise linear both; animation-timeline:view(); animation-range:entry 0% entry 45%; }
  }
}
@keyframes rise{ from{ opacity:.15; transform:translateY(40px); } to{ opacity:1; transform:none; } }

/* Carrousel de fenêtres */
.car-top{ display:flex; justify-content:space-between; align-items:end; gap:1rem; flex-wrap:wrap; }
.arrows{ display:flex; gap:.5rem; }
.arrows button{ width:46px; height:46px; border-radius:50%; border:1.5px solid var(--ink); background:transparent; color:var(--ink); font-size:1.2rem; cursor:pointer; transition:background .2s,color .2s; }
.arrows button:hover{ background:var(--ink); color:var(--bg); }
.track{ display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-block:.3rem 1rem; }
.track::-webkit-scrollbar{ display:none; }
.track{ display:grid!important; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(.7rem,1.4vw,1.4rem)!important; overflow:visible!important; }
@media (max-width:699px){ .track{ grid-template-columns:repeat(2,minmax(0,1fr)); } .track .win:last-child{ grid-column:1/-1; aspect-ratio:auto; min-height:260px; } }
.win{ aspect-ratio:3/4; max-width:100%; scroll-snap-align:start; position:relative; border-radius:14px; overflow:hidden; color:var(--on-photo); text-decoration:none; display:flex; flex-direction:column; justify-content:flex-end; padding:1.1rem; isolation:isolate; }
.win img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .6s; }
.win::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(30,18,12,.88), rgba(30,18,12,0) 60%); }
.win:hover{ transform:translateY(-4px); }
.win{ transition:transform .3s; }
.game .pic img{ max-height:198px; }
@media (min-width:900px){ .games{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1700px){ .games{ grid-template-columns:repeat(6,minmax(0,1fr)); } }
.win.cut{ background:radial-gradient(circle at 50% 38%, #fbe6d2, var(--rose) 80%); color:#2b1a12; border:1px solid var(--line); }
.win.cut::after{ display:none; }
.win.cut p{ color:#6d5648; }
.win.cut img{ position:relative; inset:auto; z-index:0; flex:1 1 0; min-height:0; height:auto; width:100%; object-fit:contain; padding:.4rem 0 1rem; filter:drop-shadow(0 12px 14px rgba(43,26,18,.35)); }
.win.cut .lic{ z-index:1; }
.swap{ position:relative; display:block; }
.win.cut .swap{ flex:1 1 0; min-height:0; margin:.4rem 0 1rem; }
.game .pic .swap{ width:100%; height:100%; }
.swap img, .win.cut .swap img{ position:absolute; inset:0; width:100%; height:100%; max-height:none; padding:0; object-fit:contain; filter:drop-shadow(0 12px 14px rgba(43,26,18,.35)); }
.swap img{ animation:swap3 9s ease-in-out infinite; }
.swap img:nth-child(2){ animation-delay:-6s; }
.swap img:nth-child(3){ animation-delay:-3s; }
/* Texte synchronisé avec les images du billard */
.sw{ display:grid; }
.sw > span{ grid-area:1/1; align-self:end; }
.sw .ta{ animation:swap3 9s ease-in-out infinite; }
.sw .tb{ animation:swapb 9s ease-in-out infinite; }
@keyframes swapb{ 0%,30%{ opacity:0; } 36%,94%{ opacity:1; } 100%{ opacity:0; } }
@keyframes swap3{ 0%,30%{ opacity:1; } 36%,94%{ opacity:0; } 100%{ opacity:1; } }
.win h3{ font-size:clamp(1.05rem,1.4vw,1.5rem); }
.win p{ font-size:clamp(.8rem,.9vw,.92rem)!important; }
.win p{ font-size:.92rem; color:#f3e1cf; }
.win .lic{ position:absolute; top:.8rem; left:.8rem; font-size:.72rem; font-weight:600; background:var(--red); color:#fff; border-radius:999px; padding:.15rem .55rem; }
.pts{ display:flex; gap:.45rem; justify-content:center; }
.pts button{ width:9px; height:9px; border-radius:50%; border:0; padding:0; background:var(--line); cursor:pointer; transition:width .25s, background .25s; }
.pts button[aria-current="true"]{ width:26px; border-radius:6px; background:var(--accent); }

/* Atouts */
.three{ display:grid; gap:1.2rem; }
@media (min-width:800px){ .three{ grid-template-columns:repeat(3,1fr); gap:1.6rem; } }
.three > div{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:1.4rem; display:grid; gap:.5rem; align-content:start; }
.three svg{ width:36px; height:36px; color:var(--accent); }
.three h3{ font-size:1.35rem; }
.three p{ color:var(--muted); }

/* Bandeau de page */
.band{ position:relative; color:var(--ink); background:var(--tint); isolation:isolate; overflow:hidden; }
.band > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.band::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(100deg, var(--veil-a), var(--veil-b) 50%, var(--veil-c)); }
.band .wrap{ padding-block:clamp(2rem,5vw,3.6rem); display:grid; gap:.7rem; }
.band h1{ font-size:clamp(2rem,4.4vw,3.2rem); }
.band p{ color:var(--ink); font-size:1.05rem; }

.band.cafe{ background:radial-gradient(circle at 85% 20%, var(--peach), transparent 60%); }
.band.vend{ background:radial-gradient(circle at 85% 20%, var(--rose), transparent 60%); }

/* Cartes jeux */
.games{ display:grid; gap:1.2rem; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); }
.game{ background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; display:grid; grid-template-rows:auto 1fr; transition:transform .3s, box-shadow .3s; }
.game:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(58,36,25,.5); }
.game{ min-width:0; }
.game .pic{ height:230px; overflow:hidden; background:radial-gradient(circle at 50% 60%, var(--peach), var(--rose)); display:grid; place-items:center; padding:1rem; }
.game .pic img{ max-height:100%; max-width:100%; width:auto; height:auto; object-fit:contain; filter:drop-shadow(0 10px 14px rgba(43,26,18,.35)); transition:transform .4s; }
.game:hover .pic img{ transform:scale(1.05) rotate(-1deg); }
.game .pic svg{ width:40%; color:var(--brown-2); opacity:.6; }
.game .txt{ padding:1.1rem 1.2rem 1.3rem; display:grid; gap:.35rem; align-content:start; }
.game h3{ font-size:1.4rem; }
.game p{ color:var(--muted); font-size:.95rem; }
.tag{ justify-self:start; font-size:.78rem; font-weight:600; padding:.15rem .6rem; border-radius:999px; background:var(--tint); color:var(--muted); }
.tag.lic{ background:var(--red); color:#fff; }

/* Deux colonnes texte + liste */
.split{ display:grid; gap:2rem; align-items:start; }
.split > .split-top{ grid-column:1/-1; margin-bottom:-1.2rem; }
@media (min-width:860px){ .split{ grid-template-columns:1.1fr 1fr; gap:3.5rem; } }
.checks li{ display:grid; grid-template-columns:28px 1fr; gap:.6rem; padding:.85rem 0; border-top:1px solid var(--line); }
.checks li:last-child{ border-bottom:1px solid var(--line); }
.checks svg{ width:22px; height:22px; color:var(--accent); margin-top:.15rem; }
.stack{ display:grid; gap:1rem; justify-items:start; }
.brands{ display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); }
.brands div{ aspect-ratio:4/3; border:2px dashed var(--line); border-radius:14px; display:grid; place-items:center; text-align:center; color:var(--muted); font-size:.9rem; padding:1rem; background:var(--surface); }
.cta-panel{ background:var(--brown); color:var(--on-photo); border-radius:18px; padding:clamp(1.4rem,4vw,2.4rem); display:grid; gap:1rem; }
.cta-panel p{ color:#f3e1cf; }
.cta-panel .eyebrow{ color:var(--peach); }

/* Contact : présent sur toutes les pages */
.contact-grid{ display:grid; gap:2.4rem; }
@media (min-width:900px){ .contact-grid{ grid-template-columns:1.4fr 1fr; gap:4rem; } }
form{ display:grid; gap:1rem; }
label{ display:grid; gap:.3rem; font-weight:600; font-size:.93rem; }
input,select,textarea{ font:400 1rem var(--sans); color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:.75rem .85rem; min-height:48px; width:100%; }
textarea{ min-height:120px; resize:vertical; }
input:focus-visible,select:focus-visible,textarea:focus-visible{ outline:2px solid var(--accent); outline-offset:0; border-color:var(--accent); }
.row{ display:grid; gap:1rem; }
@media (min-width:560px){ .row{ grid-template-columns:1fr 1fr; } }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
#status{ min-height:1.5em; font-weight:500; }
.coords{ display:grid; gap:1.2rem; align-content:start; }
.coords h3{ font-size:1.15rem; }
.coords p{ color:var(--muted); }
.coords .big{ font:500 1.6rem var(--display); color:var(--ink); user-select:all; }

footer{ background:var(--brown); color:#d6c3b1; font-size:.9rem; }
footer .wrap{ padding-block:2rem 2.4rem; display:grid; gap:1.2rem; }
@media (min-width:800px){ footer .wrap{ grid-template-columns:auto 1fr auto; align-items:center; gap:3rem; } }
footer img{ width:var(--lw); }
footer{ --lw:clamp(220px,18vw,340px); }
footer a{ color:#fff7ee; }

/* Barre d'appel GSM */
.callbar{ display:none; }
@media (max-width:900px){
  body{ padding-bottom:76px; }
  .callbar{ display:grid; grid-template-columns:1.5fr 1fr; gap:.5rem; position:fixed; left:0; right:0; bottom:0; z-index:55; background:var(--head); border-top:1px solid var(--line);
    padding:.55rem max(12px,env(safe-area-inset-right,0px)) calc(.55rem + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px)); }
  .callbar .btn{ min-height:46px; padding:.5rem .8rem; }
  .callbar .btn-out{ color:var(--ink); }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none!important; transition:none!important; }
}
/* Page Jeux : grille et images entières */
section .game .pic .swap img{ max-height:none; max-width:none; width:100%; height:100%; }
section .games{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:700px){ section .games{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:1100px){ section .games{ grid-template-columns:repeat(5,minmax(0,1fr)); } }
@media (max-width:420px){ section .games{ grid-template-columns:1fr; } }
section .game .pic{ height:clamp(170px,15vw,260px); padding:1rem; }
section .game .pic{ position:relative; }
section .game .pic > img, section .game .pic > .swap{ position:absolute; inset:1rem; width:calc(100% - 2rem); height:calc(100% - 2rem); max-height:none; max-width:none; object-fit:contain; }
@media (prefers-reduced-motion:reduce){ .swap img:not(:first-child), .sw .tb{ opacity:0; } }
.svc > div{ padding:0; overflow:hidden; gap:.6rem; }
.svc img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.svc h3, .svc p{ padding-inline:1.4rem; }
.svc p{ padding-bottom:1.4rem; }
section.block.about{ padding-block:0; }
@media (min-width:960px){ #p-accueil .hero .wrap{ padding-bottom:1.6rem; } }
.about-grid > .eyebrow{ grid-column:1/-1; margin-bottom:-.4rem; }
.about-grid > .slogan{ grid-column:1/-1; max-width:none; font:700 clamp(2rem,4vw,3.6rem)/1.1 var(--display); color:var(--ink); margin-bottom:.6rem; }
.about-grid > .claim{ grid-column:1/-1; margin:-.4rem 0 1rem; font-style:italic; font-weight:500; font-size:clamp(1.15rem,1.9vw,1.55rem); line-height:1.35; color:var(--claim,#5a3a2a); max-width:none; }
.about-grid{ display:grid; gap:1rem 4rem; align-items:end; }
@media (min-width:900px){ .about-grid{ grid-template-columns:1fr 1.2fr; align-items:start; } .about-grid h2{ margin-top:-.2rem; } }
.about-grid > p{ font-size:1.1rem; color:var(--muted); }
.routes{ display:flex; gap:1.2rem; flex-wrap:wrap; }
.families{ display:grid; gap:2.5rem 2rem; }
@media (min-width:1100px){ .families{ grid-template-columns:3fr 2fr; } }
.fam-head{ display:grid; gap:.3rem; margin-bottom:1.2rem; padding-bottom:.8rem; border-bottom:2px solid var(--rose); }
.fam-head h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); }
.fam-head p{ color:var(--muted); }
section .games.g3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
section .games.g2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:699px){ section .games.g3, section .games.g2{ grid-template-columns:repeat(2,minmax(0,1fr)); } section .games.g3 .game:last-child{ grid-column:1/-1; } }
@media (max-width:420px){ section .games.g3, section .games.g2{ grid-template-columns:1fr; } }
.about-txt{ display:grid; gap:1rem; }
.about-txt p{ font-size:1.1rem; color:var(--muted); }
.about-txt .target{ color:var(--ink); font-weight:500; }
.strong{ grid-column:1/-1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-top:1.4rem; }
@media (max-width:899px){ .strong{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.strong li{ display:grid; justify-items:start; gap:.2rem; padding:1.1rem 1.2rem; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.strong svg{ width:34px; height:34px; color:var(--accent); margin-bottom:.4rem; }
.strong b{ font:600 1.1rem var(--display); }
.strong span{ color:var(--muted); font-size:.92rem; }
.about-left{ display:grid; gap:.8rem; justify-items:start; }
.about-left h2{ font-family:var(--display); font-weight:700; font-size:clamp(1.6rem,2.8vw,2.4rem); }
.dlist{ display:grid; gap:.55rem; margin-top:.4rem; }
.dlist li{ display:flex; align-items:center; gap:.8rem; font-weight:500; font-size:1.08rem; }
.dlist li::before{ content:""; flex:none; width:.95rem; height:.95rem; transform:rotate(45deg); border-radius:2px; background:var(--brown); }
.dlist li:nth-child(3)::before, .dlist li:nth-child(4)::before{ background:var(--accent); }
@media (min-width:600px){ .dlist{ grid-template-columns:repeat(2,max-content); column-gap:2.5rem; } }
@media (min-width:560px){ .row.row-cp{ grid-template-columns:1fr 2fr; } }
/* Formulaire compact */
#form{ gap:.7rem; }
#form .row{ gap:.7rem; }
#form label{ font-size:.85rem; gap:.2rem; }
#form input, #form select, #form textarea{ min-height:38px; padding:.4rem .65rem; font-size:.95rem; border-radius:8px; }
#form textarea{ min-height:90px; }
#form .btn{ min-height:42px; padding:.5rem 1.3rem; }
@media (min-width:560px){ #form .row.row-cp{ grid-template-columns:1fr 2fr; } }
.band > img.bf{ animation:swap5 25s ease-in-out infinite; }
.band > img.bf:nth-of-type(2){ animation-delay:-20s; }
.band > img.bf:nth-of-type(3){ animation-delay:-15s; }
.band > img.bf:nth-of-type(4){ animation-delay:-10s; }
.band > img.bf:nth-of-type(5){ animation-delay:-5s; }
@keyframes swap5{ 0%,18%{ opacity:1; } 22%,96%{ opacity:0; } 100%{ opacity:1; } }
@media (prefers-reduced-motion:reduce){ .band > img.bf:not(:first-of-type){ opacity:0; } }
.band.photo::after{ display:none; }
.band.photo .wrap{ padding-block:clamp(2.5rem,7vw,5.5rem); }
.band-box{ justify-self:start; display:grid; gap:.6rem; max-width:min(100%,40rem); background:var(--cream); color:#2b1a12; padding:clamp(1.1rem,2.5vw,1.8rem) clamp(1.2rem,3vw,2.2rem); border-radius:16px; box-shadow:0 14px 34px -14px rgba(43,26,18,.45); }
.band-box p{ color:#6d5648; }
.checks li > svg{ display:none; }
.checks li::before{ content:""; width:.95rem; height:.95rem; margin:.4rem 0 0 .25rem; transform:rotate(45deg); border-radius:2px; background:var(--brown); }
.checks li:nth-child(2)::before{ background:var(--accent); }
.contact-grid > .head{ grid-column:1/-1; margin-bottom:0; }
@media (min-width:900px){ .contact-grid{ row-gap:1.6rem; } }
@media (min-width:900px){ .band-box.compact{ max-width:min(100%,27rem); } .band-box.compact h1{ font-size:clamp(1.8rem,3vw,2.6rem); } }
.cafe-head{ position:relative; }
.cafe-pic{ display:block; width:100%; height:auto; aspect-ratio:2172/724; object-fit:cover; }
.cafe-head .wrap{ position:relative; z-index:1; margin-top:clamp(-4rem,-4vw,-1.2rem); }
.cafe-head .band-box{ max-width:min(100%,46rem); }
@media (max-width:699px){ .cafe-pic{ aspect-ratio:16/9; object-position:60% 50%; } }
.mcards{ display:grid; gap:1.2rem; grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:999px){ .mcards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:420px){ .mcards{ grid-template-columns:1fr; } }
.mc{ margin:0; background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; display:grid; grid-template-rows:auto 1fr; transition:transform .3s, box-shadow .3s; }
.mc:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -22px rgba(58,36,25,.5); }
.mc-pic{ position:relative; height:clamp(190px,17vw,300px); background:var(--pastel); }
.mc-pic img{ position:absolute; inset:1.1rem; width:calc(100% - 2.2rem); height:calc(100% - 2.2rem); object-fit:contain; filter:drop-shadow(0 12px 14px rgba(43,26,18,.3)); }
.mc-todo{ display:grid; place-items:center; text-align:center; color:#6d5648; font-size:.9rem; }
.mc figcaption{ padding:1rem 1.2rem 1.2rem; display:grid; gap:.2rem; }
.mc figcaption b{ font:600 1.15rem var(--display); }
.mc figcaption span{ color:var(--muted); font-size:.92rem; }
.objectif{ padding-bottom:0 !important; }
.obj-grid{ display:grid; gap:.8rem 4rem; align-items:start; }
@media (min-width:900px){ .obj-grid{ grid-template-columns:1fr 1.6fr; } }
.obj-grid h2{ font:700 clamp(1.8rem,3.4vw,3rem)/1.1 var(--display); }
.obj-grid > div{ display:grid; gap:.8rem; }
.obj-lead{ font:500 clamp(1.15rem,1.6vw,1.45rem)/1.45 var(--display); color:var(--ink); }
.obj-grid p:not(.obj-lead){ font-size:1.08rem; color:var(--muted); font-style:italic; }
.obj-title{ display:inline-grid; justify-items:start; justify-self:start; width:max-content; max-width:100%; }
.marker{ display:block; width:105%; height:clamp(14px,1.4vw,22px); margin:.15rem 0 0 -2%; overflow:visible; }
.marker path{ stroke-dasharray:320; stroke-dashoffset:0; }
@media (prefers-reduced-motion:no-preference){ .marker path{ animation:mark 1.1s .3s ease-out both; } .marker path + path{ animation-delay:.7s; } }
@keyframes mark{ from{ stroke-dashoffset:320; } to{ stroke-dashoffset:0; } }
@media (min-width:900px){ .band-box.boxr{ justify-self:end; max-width:min(100%,30rem); } .band-box.boxr h1{ font-size:clamp(1.7rem,2.8vw,2.5rem); } }
.hero h1 .pre{ display:block; font-weight:500; font-size:.42em; letter-spacing:.06em; margin-bottom:.25em; }
footer .legal-adr{ color:#fff7ee; padding-left:calc(var(--lw) * .182); }
footer .brandcol{ display:grid; gap:.35rem; justify-items:start; }
footer .legal ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:.3rem 2rem; font-variant-numeric:tabular-nums; }
footer .wrap{ padding-block:1rem 1.1rem !important; gap:.8rem !important; }
@media (max-width:799px){ footer .legal ul{ display:grid; gap:.15rem; justify-content:start; } }
footer .legal b{ color:#fff7ee; font-weight:600; }
.legal-txt{ display:grid; gap:.8rem; max-width:52rem; }
.legal-txt h2{ font-size:1.25rem; font-weight:600; margin-top:1rem; }
.legal-txt p{ color:var(--muted); max-width:none; }
.legal-txt b{ color:var(--ink); }
.legal-page .head h1{ font-size:clamp(1.9rem,3.8vw,2.8rem); }
.form-note{ font-size:.82rem; color:var(--muted); }
.form-note a{ color:var(--ink); }
.foot-links{ display:grid; gap:.3rem; justify-items:end; }
@media (max-width:799px){ .foot-links{ justify-items:start; } }

footer .zone-line{ font-size:.8rem; opacity:.75; }
.jeux-intro{ padding-bottom:0 !important; }
.jeux-intro p{ font-size:1.08rem; color:var(--muted); max-width:70ch; }
