/* Goolfy Merlimont — mini-golf fluo. Design TEMPO sept. 2026. */
:root{
  --night:#0B0616;--night-2:#150B27;--night-3:#1F1238;--uv:#7B2FFF;--uv-2:#A672FF;--green:#D8FF3A;--pink:#FF3EA5;--orange:#FF7A1A;--cyan:#3DF2FF;--yellow:#FFE600;--chalk:#E9E4F5;--white:#fff;
  --bg:var(--night);--ink:var(--chalk);--accent:var(--green);--line:rgba(233,228,245,.14);--curtain:#000;
  --nav-menu-bg:var(--night);--nav-menu-ink:var(--white);--field-bg:rgba(255,255,255,.06);
  --f-display:Bungee,"Arial Black",Impact,sans-serif;--f-shade:"Bungee Shade",Bungee,Impact,sans-serif;--f-body:Rubik,"Helvetica Neue",Arial,sans-serif;
  --t-body:clamp(1rem,.95rem + .25vw,1.0625rem);--t-sm:.9rem;--t-xs:.75rem;
  --t-h1:clamp(2.4rem,1.2rem + 5.4vw,6rem);--t-h2:clamp(1.8rem,1.2rem + 2.8vw,3.6rem);--t-h3:clamp(1.15rem,1rem + .8vw,1.6rem);--t-lead:clamp(1.125rem,1rem + .5vw,1.35rem);
  --gut:clamp(1.25rem,4vw,3.5rem);--max:1240px;--max-n:760px;--max-w:1440px;--sec:clamp(5rem,9vw,8rem);--gap:clamp(1.5rem,3vw,2.5rem);--gap-s:.75rem;--radius:18px;--radius-s:10px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --glow-g:0 0 14px rgba(216,255,58,.55),0 0 40px rgba(216,255,58,.22);--glow-p:0 0 14px rgba(255,62,165,.6),0 0 40px rgba(255,62,165,.25);--glow-u:0 0 18px rgba(123,47,255,.7),0 0 50px rgba(123,47,255,.3);--glow-o:0 0 14px rgba(255,122,26,.6),0 0 40px rgba(255,122,26,.25);--glow-c:0 0 14px rgba(61,242,255,.6),0 0 40px rgba(61,242,255,.25);
}
::selection{background:var(--green);color:var(--night)}
body{background:var(--night);background-image:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(123,47,255,.28),transparent 60%)}
/* ---- typographie */
h1,h2,h3,.h1,.h2,.h3{font-family:var(--f-display);font-weight:400;line-height:1;text-transform:uppercase;letter-spacing:.01em;text-wrap:balance}
h1,.h1{font-size:var(--t-h1);line-height:.98}h2,.h2{font-size:var(--t-h2);line-height:1.02}h3,.h3{font-size:var(--t-h3);line-height:1.1}
.shade{font-family:var(--f-shade)}
.glow-g{color:var(--green);text-shadow:var(--glow-g)}.glow-p{color:var(--pink);text-shadow:var(--glow-p)}.glow-c{color:var(--cyan);text-shadow:var(--glow-c)}.glow-o{color:var(--orange);text-shadow:var(--glow-o)}.glow-u{color:var(--uv-2);text-shadow:var(--glow-u)}
.lead{font-size:var(--t-lead);line-height:1.5;color:rgba(233,228,245,.86);max-width:56ch}
p+p{margin-top:1em}
.prose p,.prose ul{max-width:64ch}.prose ul li{position:relative;padding-left:1.5rem;margin:.45rem 0}.prose ul li::before{content:"";position:absolute;left:0;top:.6em;width:.55rem;height:.55rem;border-radius:50%;background:var(--green);box-shadow:var(--glow-g)}
.prose h2,.prose h3{margin-top:2em;margin-bottom:.6em}.prose h2:first-child,.prose h3:first-child{margin-top:0}
.eyebrow{font-family:var(--f-body);font-weight:700;font-size:var(--t-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.1rem}
.eyebrow::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.eyebrow--p{color:var(--pink)}.eyebrow--c{color:var(--cyan)}.eyebrow--o{color:var(--orange)}
.sec__head{max-width:46rem;margin-bottom:clamp(2.5rem,5vw,4rem)}.sec__head--c{margin-inline:auto;text-align:center}.sec__head p{margin-top:1.25rem}
.sec__head--split{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.muted{opacity:.7}.small{font-size:var(--t-sm)}
.num{font-family:var(--f-display);font-size:clamp(2.6rem,2rem + 3vw,4.6rem);line-height:1}
/* ---- boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.6rem;font-family:var(--f-body);font-weight:700;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;border:2px solid transparent;transition:transform .35s var(--ease),box-shadow .35s,background .35s,color .35s;white-space:nowrap;position:relative}
.btn svg{width:1rem;height:1rem;transition:transform .35s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn:hover svg{transform:translateX(3px)}
.btn--g{background:var(--green);color:var(--night);box-shadow:var(--glow-g)}.btn--g:hover{box-shadow:0 0 22px rgba(216,255,58,.8),0 0 60px rgba(216,255,58,.35)}
.btn--p{background:var(--pink);color:#fff;box-shadow:var(--glow-p)}.btn--p:hover{box-shadow:0 0 22px rgba(255,62,165,.85),0 0 60px rgba(255,62,165,.4)}
.btn--o{background:var(--orange);color:var(--night);box-shadow:var(--glow-o)}
.btn--ghost{border-color:rgba(255,255,255,.4);color:#fff}.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn--ghost-g{border-color:var(--green);color:var(--green)}.btn--ghost-g:hover{background:var(--green);color:var(--night);box-shadow:var(--glow-g)}
.btn--sm{padding:.7rem 1.1rem;font-size:.78rem}
.lnk{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:var(--t-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--green);position:relative;padding-bottom:.2rem}
.lnk::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:currentColor;transform:scaleX(.3);transform-origin:left;transition:transform .5s var(--ease)}.lnk:hover::after{transform:scaleX(1)}
.lnk svg{width:.9rem;height:.9rem}
.u{position:relative}.u::after{content:"";position:absolute;left:0;bottom:-3px;height:2px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}.u:hover::after{transform:scaleX(1);transform-origin:left}
/* ---- stickers & étiquettes */
.stick{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:999px;font-weight:700;font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;border:2px solid currentColor;background:rgba(11,6,22,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transform:rotate(var(--rot,0deg))}
.stick--g{color:var(--green);box-shadow:var(--glow-g)}.stick--p{color:var(--pink);box-shadow:var(--glow-p)}.stick--c{color:var(--cyan);box-shadow:var(--glow-c)}.stick--o{color:var(--orange);box-shadow:var(--glow-o)}
.stick svg{width:1rem;height:1rem}
.tag{display:inline-block;padding:.35rem .75rem;border:1px solid var(--line);border-radius:999px;font-size:var(--t-xs);letter-spacing:.12em;text-transform:uppercase;font-weight:700}
/* ---- nav */
.nav{padding:1rem 0;color:#fff}
.nav.is-scrolled{background:rgba(11,6,22,.78);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);padding:.6rem 0;box-shadow:0 1px 0 var(--line)}
.nav__logo img{height:52px;width:auto;transition:height .4s}.nav.is-scrolled .nav__logo img{height:42px}
.nav__menu a{font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.nav__menu .nav__cta{display:none}
.nav__menu a[aria-current="page"]{color:var(--green)}
.nav__right{display:flex;align-items:center;gap:1rem}
@media (max-width:1000px){.nav__menu{font-family:var(--f-display);font-size:clamp(1.1rem,4.4vw,1.7rem)}.nav__menu a{font-weight:400;letter-spacing:.02em}.nav__menu a:not(.btn):nth-child(odd){color:var(--green);text-shadow:var(--glow-g)}.nav__menu a:not(.btn):nth-child(even){color:var(--pink);text-shadow:var(--glow-p)}.nav__menu .btn{font-family:var(--f-body)}.nav__menu .btn--g{color:var(--night);text-shadow:none}}
/* ---- hero */
.hero{min-height:100svh;position:relative;display:grid;align-items:end;overflow:hidden;padding:clamp(7rem,14vh,10rem) 0 clamp(3rem,6vh,4.5rem)}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--night) 0%,rgba(11,6,22,.55) 35%,rgba(11,6,22,.15) 70%,rgba(11,6,22,.45) 100%)}
.hero__uv{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 20% 20%,rgba(123,47,255,.35),transparent 60%),radial-gradient(ellipse 40% 40% at 85% 30%,rgba(255,62,165,.25),transparent 60%);mix-blend-mode:screen}
.hero__in{position:relative;z-index:2}
.hero h1{max-width:14ch;margin:1rem 0 1.25rem}
.hero .lead{max-width:44ch}
.hero__acts{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem;align-items:center}
.hero__stick{position:absolute;z-index:3;display:flex;flex-direction:column;gap:.7rem;align-items:flex-end;right:var(--gut);top:clamp(6rem,14vh,9rem)}
.hero__stick .stick{--rot:-2deg}.hero__stick .stick:nth-child(2){--rot:3deg}.hero__stick .stick:nth-child(3){--rot:-1deg}.hero__stick .stick:nth-child(4){--rot:2deg}
@media (max-width:760px){.hero__stick{position:static;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin-bottom:1.25rem}.hero{align-items:end}}
/* interrupteur UV : état éteint → allumé (classe .uv-on sur html) */
html.js:not(.no-motion):not(.uv-on) .hero__media img{filter:saturate(.15) brightness(.35)}
html.js:not(.no-motion):not(.uv-on) .hero__uv{opacity:0}
.hero__media img,.hero__uv{transition:filter 1.6s var(--ease),opacity 1.6s var(--ease)}
.hero__switch{position:absolute;left:calc(var(--gut) - .6rem);bottom:1.4rem;z-index:3;display:flex;align-items:center;gap:.6rem;min-height:44px;padding:.5rem .6rem;font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:rgba(255,255,255,.7)}
.hero__switch i{width:34px;height:18px;border-radius:999px;border:2px solid currentColor;position:relative;display:block}
.hero__switch i::after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:currentColor;transition:left .5s var(--ease),background .5s,box-shadow .5s}
html.uv-on .hero__switch{color:var(--green)}html.uv-on .hero__switch i::after{left:18px;box-shadow:var(--glow-g)}
/* pages intérieures */
.phero{padding:clamp(8rem,18vh,12rem) 0 clamp(3rem,6vw,5rem);position:relative;overflow:hidden}
.phero__in{max-width:56rem;position:relative;z-index:1}.phero p.lead{margin-top:1.5rem}
.phero--img{min-height:70svh;display:grid;align-items:end}
.phero--img .hero__media::after{background:linear-gradient(0deg,var(--night) 0%,rgba(11,6,22,.5) 40%,rgba(11,6,22,.3) 100%)}
.crumbs{font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--green);margin-bottom:1.25rem;display:flex;gap:.6rem;flex-wrap:wrap}.crumbs a{opacity:.8}.crumbs span{opacity:.5}
/* ---- bandeau horaires du jour */
.today{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.03)}
.today__in{display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:center;padding:1.1rem 0}
.today__dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--green);box-shadow:var(--glow-g);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(.7);opacity:.6}}
.today__t{font-weight:700;letter-spacing:.04em}.today__t small{font-weight:400;opacity:.7;display:block;letter-spacing:0}
@media (max-width:760px){.today__in{grid-template-columns:auto 1fr}.today__in .btn{grid-column:1/-1;justify-self:start}}
/* ---- parcours : blocs en quinconce + balle */
.route{position:relative}
.route__svg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0}
.route__path{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 14;opacity:.5}
.route__ball{filter:drop-shadow(0 0 8px rgba(255,255,255,.8)) drop-shadow(0 0 22px rgba(216,255,58,.7))}
.hole{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;position:relative;z-index:1;padding-block:clamp(2.5rem,5vw,4rem)}
.hole--r .hole__txt{order:2}
.hole__txt .lead{margin-top:1rem}
.hole__n{font-family:var(--f-shade);font-size:clamp(3rem,2rem + 5vw,6rem);line-height:1;margin-bottom:.5rem}
.hole .ph{aspect-ratio:4/3;border-radius:var(--radius);box-shadow:0 30px 80px -30px rgba(123,47,255,.55);border:1px solid rgba(255,255,255,.08)}
.hole .ph img{transition:transform 1.2s var(--ease)}.hole .ph:hover img{transform:scale(1.04)}
@media (max-width:900px){.hole{grid-template-columns:1fr}.hole--r .hole__txt{order:0}}
/* ---- carte de score (tarifs) */
.score{background:var(--chalk);color:var(--night);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.5rem);position:relative;overflow:hidden;box-shadow:0 40px 100px -40px rgba(0,0,0,.8)}
.score::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(11,6,22,.06) 31px 32px);pointer-events:none}
.score__h{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:3px solid var(--night);padding-bottom:.75rem;margin-bottom:.5rem;position:relative}
.score__h h3{font-size:1.4rem}.score__h span{font-family:var(--f-body);font-weight:700;font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase}
.score__r{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 0;border-bottom:1px dashed rgba(11,6,22,.25);align-items:baseline;position:relative}
.score__r p{font-size:var(--t-sm);opacity:.75;margin-top:.15rem}
.score__p{font-family:var(--f-display);font-size:1.5rem;white-space:nowrap}.score__p small{font-family:var(--f-body);font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;opacity:.7}
.score__note{margin-top:1rem;font-size:var(--t-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.7;position:relative}
.score--pink{background:var(--pink);color:#fff}.score--pink .score__h{border-color:#fff}.score--pink .score__r{border-color:rgba(255,255,255,.35)}
.score--green{background:var(--green)}
/* ---- cartes (anniversaire, groupes…) */
.card{background:var(--night-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s,border-color .5s;position:relative}
.card:hover{transform:translateY(-6px);border-color:rgba(216,255,58,.5);box-shadow:0 30px 60px -30px rgba(216,255,58,.35)}
.card .ph{aspect-ratio:4/3}.card .ph img{transition:transform 1.2s var(--ease)}.card:hover .ph img{transform:scale(1.05)}
.card__b{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;flex:1}.card__b h3{font-size:1.25rem}.card__b p{opacity:.85;font-size:var(--t-sm)}.card__b .lnk{margin-top:auto}
.card--p:hover{border-color:rgba(255,62,165,.6);box-shadow:0 30px 60px -30px rgba(255,62,165,.4)}
.card--c:hover{border-color:rgba(61,242,255,.6);box-shadow:0 30px 60px -30px rgba(61,242,255,.4)}
/* ---- bloc couleur plein (anniversaire, snacking) */
.block{border-radius:var(--radius);padding:clamp(2rem,5vw,4rem);position:relative;overflow:hidden;display:grid;grid-template-columns:1.1fr .9fr;gap:var(--gap);align-items:center}
.block--pink{background:var(--pink);color:#fff}.block--pink .eyebrow{color:#fff}.block--pink .lead{color:rgba(255,255,255,.9)}
.block--orange{background:var(--orange);color:var(--night)}.block--orange .eyebrow{color:var(--night)}.block--orange .lead{color:rgba(11,6,22,.85)}
.block--uv{background:var(--uv);color:#fff}.block--uv .eyebrow{color:var(--green)}.block--uv .lead{color:rgba(255,255,255,.9)}
.block .ph{aspect-ratio:4/5;border-radius:var(--radius-s);transform:rotate(2deg);box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.block ul.checks li{display:flex;gap:.6rem;align-items:flex-start;margin:.45rem 0}.block ul.checks svg{width:1.2rem;height:1.2rem;flex:none;margin-top:.15rem}
@media (max-width:900px){.block{grid-template-columns:1fr}.block .ph{aspect-ratio:4/3;transform:none}}
/* ---- faits chiffrés */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-s)}
.fact{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(255,255,255,.03)}
.fact strong{display:block;font-family:var(--f-display);font-size:clamp(2rem,1.5rem + 2vw,3.2rem);line-height:1;margin-bottom:.4rem}
.fact>span{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.7}
.fact:nth-child(1) strong{color:var(--green);text-shadow:var(--glow-g)}.fact:nth-child(2) strong{color:var(--pink);text-shadow:var(--glow-p)}.fact:nth-child(3) strong{color:var(--cyan);text-shadow:var(--glow-c)}.fact:nth-child(4) strong{color:var(--orange);text-shadow:var(--glow-o)}
@media (max-width:900px){.facts{grid-template-columns:1fr 1fr}}
/* ---- avis */
.quote{padding:1.5rem;background:var(--night-2);border:1px solid var(--line);border-radius:var(--radius-s);display:flex;flex-direction:column;gap:1rem;min-width:min(380px,80vw);max-width:420px;white-space:normal}
.quote blockquote{font-size:1.05rem;line-height:1.5}.quote cite{font-style:normal;font-size:var(--t-sm);opacity:.7;margin-top:auto}
.stars{display:inline-flex;gap:2px;color:var(--yellow)}.stars svg{width:14px;height:14px}
.gbadge{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border:1px solid var(--line);border-radius:999px;font-size:var(--t-sm);background:rgba(255,255,255,.04)}.gbadge svg{width:18px;height:18px}.gbadge strong{font-weight:700}
/* ---- horaires */
.hours{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.hours__t{border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden}
.hours__t h3{padding:1rem 1.25rem;background:rgba(255,255,255,.04);font-size:1rem;display:flex;justify-content:space-between;align-items:center}
.hours__t ul{padding:.5rem 1.25rem 1rem}.hours__t li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-top:1px dashed var(--line);font-size:var(--t-sm)}.hours__t li strong{font-weight:700}
@media (max-width:760px){.hours{grid-template-columns:1fr}}
/* ---- infos / carte */
.info{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);align-items:start}
.info dl{display:grid;gap:1.25rem}.info dt{font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--green);margin-bottom:.25rem}.info dd{margin:0}
.map{aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);filter:invert(.9) hue-rotate(200deg) saturate(.6) contrast(1.05)}.map iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:900px){.info{grid-template-columns:1fr}}
/* ---- CTA final */
.cta{position:relative;overflow:hidden;text-align:center;padding:clamp(6rem,14vw,10rem) 0}
.cta h2{font-size:clamp(2.2rem,1.4rem + 4.6vw,5.4rem);max-width:16ch;margin-inline:auto}
.cta p{margin:1.5rem auto 2.5rem;max-width:50ch}.cta .hero__acts{justify-content:center;margin-top:0}
/* ---- footer */
.foot{border-top:1px solid var(--line);padding:clamp(3rem,6vw,5rem) 0 2rem;background:#07030f}
.foot__g{display:grid;grid-template-columns:1.2fr repeat(5,1fr);gap:var(--gap)}
.foot .foot__h{font-family:var(--f-body);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--green);margin-bottom:1rem}
.foot a:hover{color:#fff}.foot li{margin:.4rem 0}.foot img{height:56px;width:auto}
.foot__b{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:var(--t-xs);opacity:.7}
.soc{display:flex;gap:.6rem}.soc a{width:40px;height:40px;border:1px solid var(--line);border-radius:999px;display:grid;place-items:center;transition:background .3s,color .3s,box-shadow .3s}.soc a:hover{background:var(--green);color:var(--night);box-shadow:var(--glow-g)}.soc svg{width:18px;height:18px}
@media (max-width:1240px){.foot__g{grid-template-columns:repeat(3,1fr)}}@media (max-width:1100px){.foot__g{grid-template-columns:repeat(3,1fr)}}@media (max-width:900px){.foot__g{grid-template-columns:1fr 1fr}}@media (max-width:560px){.foot__g{grid-template-columns:1fr}}
/* ---- divers */
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap-s)}
.mosaic .ph{border-radius:var(--radius-s);border:1px solid rgba(255,255,255,.06)}
.mosaic .m1{grid-column:span 7;aspect-ratio:16/10}.mosaic .m2{grid-column:span 5;aspect-ratio:4/3}.mosaic .m3{grid-column:span 4;aspect-ratio:1}.mosaic .m4{grid-column:span 4;aspect-ratio:1}.mosaic .m5{grid-column:span 4;aspect-ratio:1}
@media (max-width:760px){.mosaic .m1,.mosaic .m2{grid-column:span 12}.mosaic .m3,.mosaic .m4,.mosaic .m5{grid-column:span 6}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.step{padding:1.5rem;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(255,255,255,.03)}.step h3{font-size:1.1rem;margin:.75rem 0 .5rem}.step p{font-size:var(--t-sm);opacity:.85}
.step .hole__n{font-size:2.2rem;margin:0}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips a,.chips span{padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;font-size:var(--t-sm)}
.notice{padding:1.25rem 1.5rem;border-left:3px solid var(--green);background:rgba(216,255,58,.06);font-size:var(--t-sm);border-radius:0 var(--radius-s) var(--radius-s) 0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.split .ph{aspect-ratio:4/5;border-radius:var(--radius)}.split .ph--l{aspect-ratio:5/4}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.hr{height:1px;background:var(--line);border:0}
/* ---- route : drapeaux */
.route__flag{opacity:.55;transition:opacity .4s}.route__flag.is-lit{opacity:1}.route__flag.is-lit .route__hole{filter:drop-shadow(0 0 8px #D8FF3A)}
.route__flag.is-lit circle:first-child{stroke:#FF3EA5}
.hole__txt{position:relative}.hole__pin{width:1px;height:1px;display:block;position:absolute;left:-2.4rem;top:.4rem}@media (max-width:900px){.hole__pin{left:-.9rem}}
.hours__t li.is-today{color:var(--green)}.hours__t li.is-today strong::after{content:" · aujourd’hui";font-weight:400;font-size:.75rem;opacity:.8}
.today__t a{color:var(--green)}

/* ---- silo Côte d'Opale : maillage, listes de lieux */
.opnav{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem)}
@media (max-width:760px){.opnav{grid-template-columns:1fr}}
.chips a{transition:border-color .3s,color .3s,background .3s}
.chips a:hover{border-color:var(--green);color:var(--green)}
.chips a.is-on{border-color:var(--green);color:var(--green);background:rgba(216,255,58,.08)}
.spots{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-s);overflow:hidden}
.spot{background:var(--night);padding:1.5rem 1.6rem;transition:background .35s}
.spot:hover{background:var(--night-2)}
.spot h3{font-size:1.1rem;font-family:var(--f-body);font-weight:700;letter-spacing:.01em}
.spot__m{font-size:var(--t-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);margin:.45rem 0 .7rem}
.spot p:last-child{font-size:var(--t-sm);opacity:.85;max-width:72ch}
.spot__src{font-size:var(--t-xs);opacity:.55}
.spot__src a{text-decoration:underline;text-underline-offset:2px}
/* ---- carte « en pratique » : la colonne de droite doit pouvoir rétrécir */
.pcard__r{grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:start}
.pcard__r>div{min-width:0}
.pcard__v{font-size:var(--t-sm);font-weight:500;text-align:right;overflow-wrap:anywhere}
@media (max-width:420px){.pcard__r{grid-template-columns:1fr;gap:.2rem}.pcard__v{text-align:left;opacity:.8}}

/* ---- colonnes de même hauteur : la photo remplit sa colonne au lieu de laisser
       un vide quand le texte d'à côté est plus court ou plus long (07/10/2026) */
@media (min-width:901px){
  .block{align-items:stretch}
  .block>*{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
  .block .ph{aspect-ratio:auto;height:100%;min-height:clamp(300px,30vw,560px)}
  .split{align-items:stretch}
  .split>.ph{aspect-ratio:auto;height:100%;min-height:clamp(320px,32vw,600px);align-self:stretch}
  .split>*:not(.ph){align-self:center}
  .grid.g2>.ph{height:100%;min-height:clamp(300px,30vw,560px);aspect-ratio:auto}
}
/* le sujet reste visible quand la photo est recadrée plus haute que large */
.ph img{object-position:var(--pos,center)}
/* ---- plan du site */
.plan{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}
@media (max-width:980px){.plan{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.plan{grid-template-columns:1fr}}
.plan__h{font-family:var(--f-body);font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--green);margin-bottom:1rem}
.plan__l li{margin:.45rem 0;font-size:var(--t-sm)}

/* pastille du supplément repas, posée sur la photo d'anniversaire */
.block{position:relative}
.block .pill-plus{position:absolute;top:78%;left:55%;translate:-86px -50%;z-index:2;white-space:nowrap;text-transform:none;letter-spacing:.02em;font-size:.82rem;padding:.42rem .85rem;border-radius:999px;--rot:2deg}
@media (max-width:900px){.block .pill-plus{top:auto;bottom:calc(clamp(2rem,5vw,4rem) + .85rem);left:clamp(2rem,5vw,4rem);translate:calc(-1*clamp(2rem,5vw,4rem)) 50%;--rot:0deg}}
/* menu ouvert : le backdrop-filter et le transform de la barre cassaient le position:fixed du menu */
@media (max-width:1000px){.nav.is-open{backdrop-filter:none;-webkit-backdrop-filter:none;transform:none}}
