/* L'Oasis Cambrai — refonte du 29/10/2026 : pied de page compact, Club compact, accueil animé, fantôme, allergènes.
   Fichier autonome et réversible (supprimer son inclusion pour revenir en arrière). Couleurs : noir, jaune, blanc. */
:root{--rf-y:#FFCA2A;--rf-yd:#F2B705;--rf-k:#111;--rf-mut:#B8B4AA;--rf-line:rgba(255,255,255,.1)}

/* ---------- Pied de page ---------- */
.of{background:#0B0B0B;color:#F2EFE8;border-top:3px solid var(--rf-y);font:15px/1.5 Figtree,-apple-system,"Segoe UI",Roboto,sans-serif;margin-top:0}
.of a{color:inherit;text-decoration:none}
.of-in{max-width:1180px;margin:0 auto;padding:26px 16px 0}
.of-brand{display:flex;gap:12px;align-items:center}
.of-brand img{width:52px;height:52px;flex:none;border-radius:50%}
.of-brand b{display:block;font:800 17px Outfit,Figtree,sans-serif;color:#fff}
.of-brand p{margin:1px 0 0;color:var(--rf-mut);font-size:13.5px;line-height:1.4}
.of-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.of-st{display:inline-flex;align-items:center;gap:8px;border-radius:99px;padding:6px 12px 6px 10px;font-weight:700;font-size:13.5px;background:rgba(255,255,255,.07);border:1px solid var(--rf-line);color:#fff;white-space:nowrap}
.of-st[hidden]{display:none}
.of-st i{width:9px;height:9px;border-radius:50%;background:#2FB560;box-shadow:0 0 0 4px rgba(47,181,96,.18)}
.of-st.off i{background:#E5484D;box-shadow:0 0 0 4px rgba(229,72,77,.18)}
.of-st span{color:var(--rf-mut);font-weight:600}
.of-soc{display:flex;gap:8px}
.of-soc a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#1A1A1A;border:1px solid var(--rf-line);color:#fff;transition:background .2s,color .2s}
.of-soc a:hover,.of-soc a:focus-visible{background:var(--rf-y);border-color:var(--rf-y);color:var(--rf-k)}
.of svg{width:19px;height:19px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.of-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.of-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 14px;border-radius:14px;border:1px solid rgba(255,255,255,.16);background:#171717;color:#fff!important;font-weight:700;font-size:15px}
.of-btn:hover{border-color:var(--rf-y)}
.of-btn{white-space:nowrap}
@media(max-width:380px){.of-btn{font-size:14px;padding:0 10px;gap:6px}}
.of-addr{font-style:normal;color:#E7E3DA;font-size:14.5px;margin:12px 0 0}
.of-h{border-top:1px solid var(--rf-line);margin-top:14px}
.of-h summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:54px;font-weight:700;color:#fff}
.of-h summary::-webkit-details-marker{display:none}
.of-h summary .of-today{margin-left:auto;color:var(--rf-mut);font-weight:600;font-size:13px;text-align:right}
.of-h summary .of-pl{width:28px;height:28px;border-radius:50%;background:#1C1C1C;display:grid;place-items:center;flex:none;transition:transform .25s,background .2s}
.of-h[open] summary .of-pl{transform:rotate(45deg);background:var(--rf-y);color:var(--rf-k)}
.of-h .of-hin{padding:0 0 14px;animation:rfIn .25s ease}
@keyframes rfIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.of-hh{font:800 11.5px Figtree,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8F8B83;margin:12px 0 2px}
.of-tbl{width:100%;border-collapse:collapse;font-size:14.5px}
.of-tbl th{font-weight:600;color:var(--rf-mut);text-align:left;padding:7px 0;vertical-align:top;white-space:nowrap}
.of-tbl td{text-align:right;padding:7px 0;color:#fff;font-variant-numeric:tabular-nums}
.of-tbl tr+tr th,.of-tbl tr+tr td{border-top:1px solid var(--rf-line)}
.of-tbl .sl{display:inline-block;white-space:nowrap}.of-tbl .sl+.sl:before{content:'·';margin:0 6px;color:#6f6c66}
.of-tbl tr.today th,.of-tbl tr.today td{color:var(--rf-y);font-weight:800}
.of-tbl td.cl{color:#8F8B83}
.of-note{font-size:12.5px;color:#8F8B83;margin:8px 0 0}
.of-lk{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;border-top:1px solid var(--rf-line);padding-top:8px}
.of-lk a{display:flex;align-items:center;min-height:44px;font-weight:600}
.of-lk a:hover{color:var(--rf-y)}
.of-bot{border-top:1px solid var(--rf-line);margin-top:10px;padding:8px 0 6px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px}
.of-legal{display:flex;flex-wrap:wrap;gap:0 2px;margin:0;padding:0;list-style:none}
.of-legal a,.of-legal button{display:inline-flex;align-items:center;min-height:40px;padding:0 8px;color:#CFCBC2;font:inherit;font-size:13.5px;background:none;border:0;border-radius:8px;cursor:pointer}
.of-legal li:first-child a{padding-left:0}
.of-legal a:hover,.of-legal button:hover{color:var(--rf-y)}
.of-copy{color:#8F8B83;font-size:13px}
.of-health{border-top:1px solid var(--rf-line);margin:0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));text-align:center;font-size:13.5px;line-height:1.5;color:#CFCBC2}
.of-health a{color:var(--rf-y)!important;font-weight:700;text-decoration:underline!important;text-underline-offset:3px;white-space:nowrap}
.of :focus-visible{outline:3px solid var(--rf-y);outline-offset:3px;border-radius:10px}
@media(max-width:899px){.of-bot{padding-right:56px}}
@media(min-width:900px){
  .of-in{padding:40px 28px 0}
  .of-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:44px;align-items:start}
  .of-h{border:0;margin:0}
  .of-h summary{pointer-events:none;min-height:0;padding-bottom:6px;font:800 12px Figtree,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8F8B83}
  .of-h summary .of-today,.of-h summary .of-pl{display:none}
  .of-tbl .sl{display:block}.of-tbl .sl+.sl:before{content:none}
  .of-lk{border:0;padding:0;grid-template-columns:1fr}
  .of-bot{margin-top:28px}
}

/* ---------- Club L'Oasis compact ---------- */
.clb{padding:8px 0 40px}
.clb-card{border-radius:28px;background:linear-gradient(160deg,#232017 0%,#111 55%);color:#fff;padding:22px 18px;position:relative;overflow:hidden;isolation:isolate}
.clb-card:before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent 0 70%,rgba(255,202,42,.10) 80%,rgba(255,202,42,.22) 90%,transparent);animation:rfSpin 14s linear infinite;z-index:-1}
@keyframes rfSpin{to{transform:rotate(1turn)}}
.clb-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.clb h2{font:900 clamp(26px,7vw,38px)/1.02 Outfit,Figtree,sans-serif;text-transform:uppercase;color:#fff;margin:0;letter-spacing:-.01em}
.clb-tag{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--rf-y);color:var(--rf-k);border-radius:99px;padding:4px 10px;white-space:nowrap}
.clb-lead{margin:6px 0 14px;color:#D6D2C9;font-size:15px}
.clb-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:rgba(255,255,255,.06);border-radius:18px;padding:5px}
.clb-tabs button{border:0;background:none;border-radius:14px;min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:700 12.5px Figtree,sans-serif;color:#D6D2C9;cursor:pointer;transition:background .25s,color .25s;line-height:1.2;padding:4px}
.clb-tabs svg{width:22px;height:22px;stroke:var(--rf-y);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.clb-tabs button[aria-selected="true"]{background:#fff;color:var(--rf-k)}
.clb-tabs button[aria-selected="true"] svg{stroke:var(--rf-k)}
.clb-pane{padding:14px 2px 2px;min-height:100px}
.clb-pane[hidden]{display:none}
.clb-pane:not([hidden]){animation:rfIn .35s ease}
.clb-pane b.t{font:800 18px Outfit,Figtree,sans-serif;display:block}
.clb-pane p{margin:4px 0 0;font-size:14.5px;color:#D6D2C9}
.clb-rule{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.clb-rule span{background:rgba(255,202,42,.14);color:var(--rf-y);border-radius:99px;padding:4px 10px;font-weight:800;font-size:12.5px}
.clb-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;margin-top:12px;padding:0 22px;border-radius:999px;background:var(--rf-y);color:var(--rf-k)!important;font:800 15px Outfit,Figtree,sans-serif;letter-spacing:.03em;text-transform:uppercase;text-decoration:none!important;box-shadow:0 4px 0 var(--rf-yd);white-space:nowrap}
.clb-pane .lg-wrap{margin-top:8px;color:var(--rf-k)}
@media(max-width:899px){.clb-go{width:100%}}
@media(min-width:900px){.clb{padding:16px 0 60px}.clb-card{display:grid;grid-template-columns:1fr 1.25fr;gap:34px;padding:34px}.clb-side{display:flex;flex-direction:column;justify-content:center}}

/* ---------- Accueil « A animée » : animations discrètes ---------- */
.hero{position:relative;isolation:isolate}
.hero:after{content:"";position:absolute;inset:auto -20% -50% -20%;height:110%;background:radial-gradient(40% 50% at 72% 40%,rgba(255,202,42,.16),transparent 70%);filter:blur(10px);animation:rfDrift 12s ease-in-out infinite alternate;pointer-events:none;z-index:-1}
@keyframes rfDrift{to{transform:translate3d(4%,-6%,0) scale(1.06)}}
@media(max-width:899px){.hero .hero-in>.status-pill{order:1}.hero .hero-in>.oasis-svc{order:2}.hero .hero-in>.hero-title{order:3}body .hero .hero-in>.hero-tagline{order:4!important}.hero .hero-in>.hero-ctas{order:5}.hero .hero-in>.btn{order:6}body .hero .hero-in>.hero-photo{order:7;width:min(70vw,280px)!important;max-width:280px!important;margin-left:auto!important;margin-right:auto!important}.hero .hero-in>.hero-sub{order:8}.hero .hero-in>.hero-together{order:9}.hero .hero-in>.hero-extra{order:10}}
@media(min-width:900px){body .hero .hero-title,body .hero .hero-title .ht-line{font-size:clamp(44px,4.4vw,62px)!important}body .hero .hero-in{padding-top:36px!important;padding-bottom:64px!important}}
html.rf-js .rf-reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
html.rf-js .rf-reveal.rf-in{opacity:1;transform:none}

/* ---------- Fantôme d'Halloween : jamais au-dessus d'un bouton, d'un lien ou des horaires ---------- */
.hw-ghost{transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s ease!important}
.hw-ghost.rf-tuck{transform:translateX(160%)!important;opacity:0!important;pointer-events:none!important}

/* ---------- Lien allergènes dans les fiches produits ---------- */
.rf-allerg{display:inline-flex;align-items:center;min-height:36px;font-weight:700;font-size:13.5px;text-decoration:underline;text-underline-offset:3px;color:inherit}

/* ---------- Page allergènes ---------- */
.al-filter{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}
.al-filter button{border:1px solid #E9E6DF;background:#fff;border-radius:99px;min-height:40px;padding:0 12px;font:700 13.5px Figtree,sans-serif;cursor:pointer;color:#111}
.al-filter button[aria-pressed="true"]{background:#111;color:#fff;border-color:#111}
.al-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
@media(min-width:900px){.al-list{grid-template-columns:1fr 1fr}}
.al-item{border:1px solid #E9E6DF;border-radius:16px;padding:12px 14px;background:#fff}
.al-item b{display:block}.al-item small{color:#5F5F5F;font-weight:600}
.al-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.al-chips span{border-radius:99px;padding:4px 10px;font-weight:700;font-size:12.5px;background:#FFF1E8;color:#8A3410}
.al-chips span.none{background:#F7F5F0;color:#5F5F5F}
.al-warn{display:block;margin-top:6px;font-size:13px;color:#8A3410;font-weight:700}

@media (prefers-reduced-motion:reduce){.hero:after,.clb-card:before{animation:none}.clb-pane:not([hidden]),.of-h .of-hin{animation:none}html.rf-js .rf-reveal{opacity:1;transform:none;transition:none}.hw-ghost{transition:none!important}}

/* ---------- Avis Google : carrousel sur téléphone (29/10/2026) ---------- */
@media(max-width:899px){
  #avis{padding-bottom:32px}
  #avis .rv-home-list{display:flex!important;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 0 6px!important;margin:0!important;list-style:none}
  #avis .rv-home-list::-webkit-scrollbar{display:none}
  #avis .rv-card{flex:0 0 86%;scroll-snap-align:start;margin:0!important;padding:16px!important}
  #avis .rv-card-txt{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  #avis .rv-card.rf-open .rv-card-txt{-webkit-line-clamp:unset;display:block}
}
.rf-dots{display:none;justify-content:center;gap:6px;margin-top:10px}
.rf-dots button{width:8px;height:8px;border-radius:99px;border:0;padding:0;background:#CFCBC2;cursor:pointer;transition:width .3s,background .3s}
.rf-dots button[aria-current="true"]{width:22px;background:#111}
@media(max-width:899px){.rf-dots{display:flex}}
