:root{
  --ink:#1d1e20; --muted:#8b8f93; --line:#ececeb; --bg:#f6f6f4; --card:#fff;
  --green:#84c335; --green-ink:#5d8a1e; --green-soft:#eef6e2; --anthra:#26292b; --red:#e63329;
  --submenu-w:640px; /* largeur desktop commune aux pages de sous-menu (compte, paramètres, favoris, réservations) */
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
main{flex:1 0 auto;display:flex;flex-direction:column}
.olo-fill{flex:1;display:flex;flex-direction:column;justify-content:flex-start}
.olo-section.olo-fill{padding-top:14px}
.olo-auth.olo-fill{padding-top:16px}
h1,h2,h3{font-family:'Poppins',sans-serif;line-height:1.2}
img{display:block;max-width:100%}
.olo-wrap{max-width:1120px;margin:0 auto;padding:0 20px}

.olo-header{position:sticky;top:0;z-index:20;background:var(--anthra)}
.olo-header-in{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px}
.olo-logo{display:flex;align-items:center;gap:11px;text-decoration:none}
.olo-logo img{width:37px;height:37px}
.olo-logo span{font-family:'Poppins';font-weight:700;font-size:24px;color:#fff}
.olo-topnav{display:flex;align-items:center;justify-content:flex-end;gap:14px;font-size:24px}
.olo-topnav a{color:#fff;opacity:.9;text-decoration:none;display:flex}
.olo-lang{background:transparent;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:14px;padding:6px 13px;border-radius:20px;display:flex;align-items:center;gap:6px;cursor:pointer}
.olo-topnav a.olo-account.is-on,.olo-topnav a.olo-fav.is-on{color:var(--green);opacity:1}
.olo-search-toggle{display:inline-flex;background:none;border:none;color:#fff;cursor:pointer;padding:0;align-items:center}
.olo-search-toggle i{font-size:24px;color:#fff}
.olo-headsearch{max-height:0;overflow:hidden;transition:max-height .3s ease}
.olo-headsearch.is-open{max-height:120px}
.olo-headsearch .olo-search{margin:4px auto 18px;max-width:640px}
.olo-headsearch .olo-search input{padding:15px 6px}
.olo-menu{position:relative;display:flex}
.olo-menu-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:#fff;cursor:pointer;font:inherit;padding:0}
.olo-menu-name{font-family:'Inter';font-size:14px;font-weight:600;color:var(--green);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.olo-menu-btn>i{font-size:24px;color:#fff}
.olo-menu-pop{position:absolute;top:calc(100% + 12px);right:0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.22);padding:8px;min-width:214px;display:none;flex-direction:column;z-index:50}
.olo-menu.is-open .olo-menu-pop{display:flex;animation:oloDrop .16s ease both}
.olo-menu-hello{padding:8px 12px 10px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--line);margin-bottom:6px}
.olo-menu-hello strong{color:var(--ink)}
.olo-menu-pop a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:500}
.olo-menu-pop a>i{font-size:19px;color:var(--muted)}
.olo-menu-pop a:hover{background:var(--green-soft);color:var(--green-ink)}
.olo-menu-pop a:hover>i{color:var(--green-ink)}
.olo-menu-sep{height:1px;background:var(--line);margin:6px 4px}
.olo-menu-out,.olo-menu-out>i{color:var(--red)!important}
.olo-menu-out:hover{background:#fdeceb!important}
.olo-menu-cta{color:var(--green-ink)!important;font-weight:600!important}
.olo-menu-cta>i{color:var(--green)!important}
.olo-menu-admin{color:var(--green-ink)!important;font-weight:600!important}
.olo-menu-admin>i{color:var(--green)!important}
.olo-auth{max-width:var(--submenu-w);margin:0 auto;padding:44px 20px 64px;text-align:center}
.olo-auth .olo-flow{max-width:440px;margin-left:auto;margin-right:auto}
.olo-auth h1{font-size:26px;font-weight:700;margin-bottom:6px}
.olo-auth .olo-offer-desc{color:#45484b;margin-bottom:22px;font-size:15px}
.olo-auth .olo-flow{text-align:center;padding:26px 24px}

.olo-hero{background:var(--anthra);color:#fff;padding:48px 0 56px;text-align:center}
.olo-hero.is-slim{padding:40px 0 46px}
.olo-hero.is-slim .olo-search{margin-top:24px}
body.olo-map-open .olo-hero,body.olo-hero-collapsed .olo-hero{display:none}
.olo-hero-in{max-width:680px;margin:0 auto;padding:0 20px}
.olo-eyebrow{color:var(--green);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:5px;margin-bottom:10px}
.olo-city{position:relative;display:inline-block}
.olo-city-btn{background:none;border:none;color:var(--green);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:0}
.olo-city-btn i{font-size:15px;transition:transform .15s}
.olo-city.is-open .olo-city-btn i{transform:rotate(180deg)}
.olo-city-menu{position:absolute;top:150%;left:50%;transform:translateX(-50%);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px;min-width:180px;display:none;flex-direction:column;z-index:40;text-align:left}
.olo-city.is-open .olo-city-menu{display:flex;animation:oloCityIn .18s ease both}
@keyframes oloCityIn{from{opacity:0;transform:translateX(-50%) translateY(-4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.olo-city-menu a,.olo-city-menu button{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14.5px;font-weight:500;background:none;border:none;width:100%;text-align:left;font-family:inherit;cursor:pointer}
.olo-city-menu a i,.olo-city-menu button i{color:var(--green);font-size:16px}
.olo-city-menu a:hover,.olo-city-menu button:hover{background:var(--green-soft);color:var(--green-ink)}
.olo-city-menu .olo-city-item.is-on{background:var(--green-soft);color:var(--green-ink)}
.olo-hero h1{color:#fff;font-size:30px;font-weight:700}
.olo-hero-note-title{max-width:680px;margin:0 auto;line-height:1.3}
.olo-hl{color:var(--green)}
.olo-hero-type{color:var(--green);font-family:'Poppins';font-weight:700;font-size:30px;line-height:1.3;margin:6px auto 0;text-align:center;min-height:1.3em}
.olo-type-caret{display:inline-block;width:3px;height:1em;background:var(--green);margin-left:3px;vertical-align:-2px;animation:oloCaret 1s step-end infinite}
@keyframes oloCaret{50%{opacity:0}}
.olo-rotate{display:inline-block;color:var(--green);white-space:nowrap;vertical-align:baseline}
.olo-rotate-word{display:inline-block;transition:opacity .22s ease}
.olo-rotate-word.is-out{opacity:0}
.olo-hero-sub{color:#c9cdcf;font-size:15px;margin:12px auto 0;max-width:560px}
.olo-search{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:0 14px;margin:22px auto 0;max-width:520px}
.olo-search i{color:var(--muted);font-size:18px}
.olo-search input{border:none;outline:none;background:transparent;padding:13px 4px;font-size:15px;width:100%;font-family:inherit}

.olo-section{padding:30px 0}
.olo-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.olo-section-head h2{font-size:21px;font-weight:700}
.olo-seemap{color:var(--green-ink);font-size:13px;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:4px;white-space:nowrap}
.olo-seeall{color:var(--muted);font-size:12.5px;font-weight:500;text-decoration:none;display:flex;align-items:center;gap:4px;white-space:nowrap}
.olo-seeall:hover{color:var(--green-ink)}
.olo-tagcloud{margin-top:38px;border-top:1px solid var(--line);padding-top:22px}
.olo-tagcloud-title{color:var(--muted);font-size:12px;font-weight:600;margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}
.olo-tagcloud-list{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.olo-tagchip{display:inline-flex;align-items:center;gap:6px;background:var(--green-soft);color:var(--green-ink);font-weight:600;padding:6px 14px;border-radius:20px;text-decoration:none;transition:background .15s,transform .12s;line-height:1.2}
.olo-tagchip:hover{background:#e0efc9;transform:translateY(-1px)}
.olo-tagchip span{color:var(--green);font-size:11px;font-weight:700;background:#fff;border-radius:10px;padding:1px 6px}

.olo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.olo-card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .15s,border-color .15s,box-shadow .15s}
.olo-card:hover{transform:translateY(-3px);border-color:var(--green);box-shadow:0 8px 22px rgba(0,0,0,.07)}
.olo-card-img{position:relative;height:158px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.olo-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.olo-card-img i{font-size:40px;color:rgba(0,0,0,.16)}
.olo-badge{position:absolute;top:10px;left:10px;z-index:2;background:var(--red);color:#fff;font-size:12px;font-weight:600;padding:4px 9px;border-radius:7px}
/* --- Coeur « enregistrer » (wishlist locale, sans connexion) --- */
/* Cœur/favori désactivé sur les offres (masqué). Remettre display:flex pour réactiver. */
.olo-fav-btn{display:none!important;position:absolute;top:9px;right:9px;z-index:3;width:29px;height:29px;border-radius:50%;border:none;background:rgba(255,255,255,.92);color:#8b8f93;align-items:center;justify-content:center;cursor:pointer;font-size:15px;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:transform .12s ease,color .12s,background .12s}
.olo-fav-btn:hover{transform:scale(1.12);color:var(--red)}
.olo-fav-btn:active{transform:scale(.9)}
.olo-fav-btn.is-on{background:var(--red);color:#fff}
.olo-fav-btn i{pointer-events:none}
.olo-fav{position:relative}
.olo-fav-count{position:absolute;top:-5px;right:-7px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center;pointer-events:none}
.olo-fav-count[hidden]{display:none}
.olo-favm-step.is-hidden{display:none}
.olo-favm-code{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:18px;text-align:center;letter-spacing:.28em;font-weight:700;margin-bottom:10px;font-family:inherit}
.olo-fav-modal .olo-btn{width:100%;justify-content:center;margin-top:6px}
.olo-fav-modal .olo-tel{margin-bottom:10px}
.olo-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:5px}
.olo-card-value{color:var(--green-ink);font-size:12.5px;font-weight:600}
.olo-card-venue{font-family:'Poppins';font-weight:600;font-size:15px;line-height:1.25}
.olo-card-addr{color:var(--muted);font-size:11.5px;line-height:1.45}
.olo-card-addr .ti{vertical-align:-1px;margin-right:3px}
.olo-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px}
.olo-metric{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:4px}
.olo-voir{border:1.5px solid var(--green);color:var(--green-ink);font-size:12px;font-weight:600;padding:4px 15px;border-radius:16px;transition:background .15s,color .15s,border-color .15s}
.olo-card:hover .olo-voir{background:var(--green);color:#1d1e20;border-color:var(--green)}
@media(hover:none){
  .olo-card:hover{transform:none;border-color:var(--line);box-shadow:none}
  .olo-card:hover .olo-voir{background:none;color:var(--green-ink);border-color:var(--green)}
}

.olo-offer{width:100%;min-width:0;max-width:1040px;margin:0 auto;padding:18px 20px 48px}
.olo-offer-grid{display:flex;flex-direction:column;gap:20px}
.olo-offer-cta{display:contents}
.olo-offer-extra{display:flex;flex-direction:column;gap:20px}
.olo-offer-body{display:flex;flex-direction:column;gap:16px}
.olo-offer-block{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.olo-offer-tags{margin-top:14px}
/* Desktop : tags regroupés dans un bloc blanc de la colonne droite */
.olo-offer-tags.is-block{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px}
.olo-offer-block h1{margin-top:0}
.olo-offer-block>.olo-h3:first-child{margin-top:0}
.olo-cta{background:#fff;border:1px solid var(--line);border-radius:16px}
.olo-cta .olo-flow{margin:0;border:none;border-radius:0;padding:22px 20px 18px;background:transparent}
.olo-cta .olo-note{margin-top:2px;justify-content:center;text-align:center}
.olo-cta-value{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;margin:2px 0 12px}
.olo-cta-big{font-family:'Poppins';font-weight:700;font-size:22px;color:var(--ink);line-height:1.2}
.olo-cta-sub{display:none}
@media(max-width:899px){
  .olo-offer-value{display:none}
  .olo-offer{padding-bottom:172px}
  .olo-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;border-radius:0;border:none;border-top:1px solid var(--line);box-shadow:0 -6px 22px rgba(0,0,0,.13);transition:transform .28s ease;padding-bottom:env(safe-area-inset-bottom)}
  .olo-cta.is-bar-hidden{transform:translateY(120%)}
  .olo-cta .olo-flow{max-width:1040px;margin:0 auto;padding:12px 20px 12px}
  .olo-cta .olo-step{gap:8px}
  .olo-cta-value{margin:2px 0 0}
  .olo-cta .olo-note{margin-top:-2px}
  .olo-cta-big{font-size:19px}
}
.olo-offer-map{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;text-align:center}
.olo-offer-social{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.olo-offer-social .olo-h3{margin-bottom:12px}
.olo-share-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.olo-share-links{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.olo-share-links.is-hidden{display:none}
.olo-gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.92);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#26292b;font-size:20px;z-index:2}
.olo-gal-prev{left:10px}.olo-gal-next{right:10px}
.olo-gal-count{position:absolute;bottom:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;padding:3px 9px;border-radius:12px;z-index:2}
/* Bouton retour SANS fond vert (demande de Walter, 12.08.2026) : la pastille verte tirait
   l'oeil autant que le bouton de reservation, alors qu'un retour est un geste secondaire.
   Aligne sur .olo-seeall, le lien symetrique a sa droite ("Voir l'offre suivante"), pour
   que les deux extremites de la barre se repondent. On garde le gabarit de la pastille
   (padding, hauteur) afin que rien ne se decale dans les pages. */
.olo-back{background:none;color:var(--muted);font-weight:600;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;padding:8px 4px;border-radius:20px}
.olo-back:hover{color:var(--ink)}
.olo-menu-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.olo-menu-top .olo-back{margin-bottom:0}
.olo-offer-hero{position:relative;height:230px;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.olo-offer-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.olo-offer-hero i{font-size:60px;color:rgba(0,0,0,.16)}
.olo-pill{display:inline-flex;background:var(--green-soft);color:var(--green-ink);font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px}
.olo-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2px}
.olo-tag{display:inline-flex;align-items:center;background:var(--green-soft);color:var(--green-ink);font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;text-decoration:none;transition:background .15s}
.olo-tag:hover{background:#e0efc9}
.olo-offer-body h1{font-size:25px;font-weight:700;margin:10px 0 4px}
/* Pas de flex : l'adresse passe souvent sur deux lignes et l'icône se retrouverait
   centrée verticalement dans le vide. Le lien du téléphone reprend la charte au lieu
   du bleu souligné par défaut du navigateur. */
.olo-offer-addr{color:var(--muted);font-size:13px;line-height:1.5}
.olo-offer-addr .ti{vertical-align:-2px;margin-right:4px}
.olo-offer-addr a{color:var(--green-ink);text-decoration:none;font-weight:600;white-space:nowrap}
.olo-offer-addr a:hover{text-decoration:underline}
.olo-offer-value{display:flex;align-items:baseline;gap:10px;margin:16px 0}
.olo-offer-value-main{font-family:'Poppins';font-weight:700;font-size:22px}
.olo-offer-value-cond{color:var(--muted);font-size:13px}
.olo-offer-desc{color:#45484b;font-size:15px;line-height:1.65;margin-bottom:18px}
.olo-h3{font-size:15px;font-weight:600;margin:4px 0 8px}
.olo-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.olo-chip{background:#fff;border:1px solid var(--line);color:#55585b;font-size:12.5px;padding:6px 11px;border-radius:8px}

.olo-flow{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-top:8px}
.olo-step{display:flex;flex-direction:column;gap:11px}
.is-hidden{display:none}
.olo-step-title{font-family:'Poppins';font-weight:600;font-size:14px}
.olo-btn{background:var(--green);color:#1d1e20;border:none;border-radius:12px;padding:13px;font-family:'Poppins';font-size:15px;font-weight:600;width:100%;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.olo-btn:hover{background:#78b22c}
.olo-btn:disabled{opacity:.6;cursor:default}
.olo-btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.olo-btn-ghost:hover{background:transparent;border-color:var(--green)}
.olo-note{color:var(--muted);font-size:12px;line-height:1.4;display:flex;align-items:flex-end;gap:4px}
.olo-cta-chez{white-space:nowrap}
.olo-err{color:var(--red);font-size:13px;min-height:1px}
.olo-input,.olo-tel input,.olo-otp{font-family:inherit}
.olo-input{border:1px solid var(--line);border-radius:12px;padding:12px;font-size:16px;width:100%;outline:none}
.olo-input:focus{border-color:var(--green)}
.olo-tel{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.olo-tel:focus-within{border-color:var(--green)}
.olo-tel span{background:#f2f2ef;padding:12px 13px;color:#55585b;font-size:15px;border-right:1px solid var(--line)}
.olo-tel input{border:none;outline:none;padding:12px;font-size:16px;width:100%}
.olo-otp{border:1px solid var(--line);border-radius:12px;padding:14px;font-size:22px;letter-spacing:8px;text-align:center;width:100%;outline:none}
.olo-otp:focus{border-color:var(--green)}
.olo-success{color:var(--green-ink);font-family:'Poppins';font-weight:600;font-size:18px;display:flex;align-items:center;justify-content:center;gap:8px}
.olo-success i{font-size:24px}
.olo-step[data-step="sent"]{text-align:center}
.olo-sent-check{width:54px;height:54px;border-radius:50%;background:var(--green);color:#1d1e20;display:flex;align-items:center;justify-content:center;font-size:32px;margin:2px auto 10px;animation:oloPop .5s cubic-bezier(.2,.8,.3,1.3)}
.olo-sent-check.is-neutral{background:#f0f1f2;color:#8b8f93}
@keyframes oloPop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
.olo-done-txt{color:#45484b;font-size:14px}
.olo-qr{display:flex;justify-content:center;padding:6px 0}
.olo-qr img,.olo-qr canvas{border:8px solid #fff;border-radius:8px}
.olo-member{text-align:center;font-family:ui-monospace,Menlo,monospace;font-size:13px;font-weight:600}

.olo-footer{background:var(--anthra);color:#c9cdcf;padding:60px 0;margin-top:24px}
.olo-foot-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.olo-foot-brand{display:flex;align-items:center;gap:14px;color:#fff;font-family:'Poppins';font-weight:600;font-size:26px}
.olo-foot-brand img{width:46px;height:46px}
.olo-foot-links{display:flex;flex-wrap:wrap;gap:16px}
.olo-foot-links a{color:#c9cdcf;font-size:13px;text-decoration:none}
.olo-foot-links a:hover{color:#fff}
.olo-foot-langs{color:#8b8f93;font-size:12px;margin-top:16px}
.olo-copy{color:#74787b;font-size:12px;margin-top:6px}

.olo-gallery{margin-bottom:18px}
.olo-gallery-main{position:relative;height:260px;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.olo-gallery-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.olo-gallery-bg{filter:blur(22px) brightness(.9);transform:scale(1.2)}
#galMain{object-fit:contain}
.olo-gal-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:38px;height:38px;border-radius:50%;border:none;background:rgba(0,0,0,.42);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;transition:background .15s,transform .15s}
.olo-gal-nav:hover{background:rgba(0,0,0,.66)}
.olo-gal-nav:active{transform:translateY(-50%) scale(.92)}
.olo-gal-prev{left:10px}
.olo-gal-next{right:10px}
.olo-thumbs{display:flex;gap:6px;margin-top:8px}
.olo-thumb{flex:1 1 0;min-width:0;height:46px;border:2px solid transparent;border-radius:9px;overflow:hidden;padding:0;cursor:pointer;background:none}
.olo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.olo-thumb.is-active{border-color:var(--green)}
.olo-quote{font-family:'Poppins';font-style:italic;color:#3d4144;font-size:15px;line-height:1.5;border-left:3px solid var(--green);padding:4px 0 4px 14px;margin:18px 0}
.olo-info-table{width:100%;border-collapse:collapse;margin-bottom:20px}
.olo-info-table th,.olo-info-table td{border-bottom:1px solid var(--line);padding:9px 0;font-size:13.5px;vertical-align:top}
.olo-info-table th{text-align:left;color:var(--ink);font-weight:500;padding-right:14px;white-space:nowrap}
.olo-info-table td{color:#55585b}
.olo-info-table tr:last-child th,.olo-info-table tr:last-child td{border-bottom:none}
.olo-map{width:100%;height:260px;border:1px solid var(--line);border-radius:14px;margin-bottom:12px}
.olo-links{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.olo-linkbtn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none}
.olo-linkbtn:hover{border-color:var(--green);color:var(--green-ink)}
.olo-legal{max-width:760px;margin:0 auto;padding:24px 20px 48px}
.olo-legal h1{font-size:26px;font-weight:700;margin-bottom:6px}
.olo-legal h2{font-size:17px;font-weight:600;margin:22px 0 8px}
.olo-legal p{color:#3d4144;font-size:15px;line-height:1.7;margin-bottom:10px}
.olo-legal ul{margin:0 0 12px 20px;color:#3d4144;font-size:15px;line-height:1.7}
.olo-legal a{color:var(--green-ink)}
.olo-legal-date{color:var(--muted);font-size:13px;margin-bottom:18px}
.olo-legal-note{margin-top:24px;padding:12px 14px;background:var(--green-soft);border-radius:10px;color:var(--green-ink);font-size:13px;display:flex;gap:8px;align-items:flex-start}

@media(min-width:680px){
  .olo-hero{padding:60px 0 68px}
  .olo-hero-in{max-width:820px}
  .olo-hero h1{font-size:32px}
  .olo-offer-hero{height:300px}
  .olo-gallery-main{height:360px}
  .olo-thumbs{gap:8px;overflow-x:auto;padding-bottom:2px}
  .olo-thumb{flex:0 0 66px;height:52px}
}

@media(min-width:900px){
  .olo-offer{padding-bottom:56px}
  .olo-offer-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;grid-template-areas:"gallery cta" "body cta" "extra cta";column-gap:32px;row-gap:26px;align-items:start}
  .olo-offer-gallery{grid-area:gallery}
  .olo-offer-body{grid-area:body;gap:20px}
  .olo-offer-block{padding:24px 28px}
  /* Colonne CTA (Réserver + Partager) : collée en scroll sur toute la hauteur galerie+détails */
  .olo-offer-cta{grid-area:cta;display:flex;flex-direction:column;gap:22px;position:sticky;top:80px;align-self:start}
  .olo-offer-extra{grid-area:extra;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;align-items:start}
  .olo-offer-map{margin-top:0}
  .olo-cta{min-height:280px;display:flex;flex-direction:column;justify-content:center}
  .olo-cta .olo-flow{padding:26px;text-align:center}
  .olo-cta-value{margin:6px 0 10px}
  .olo-cta-big{font-size:31px;line-height:1.1}
  .olo-cta-sub{color:var(--muted);font-size:14px}
  .olo-share-card{padding:22px}
}

/* ------------------------------- Carte ---------------------------------- */
.olo-map-stage{position:relative;display:flex;margin-top:14px;height:70vh;min-height:440px;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.olo-fullmap{flex:1 1 auto;height:100%;min-width:0;z-index:0}
.olo-map-cities{position:absolute;top:12px;right:12px;z-index:600}
.olo-map-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--green);color:#1d1e20;border:none;font-family:'Inter';font-weight:600;font-size:13px;padding:8px 14px;border-radius:20px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.olo-map-trigger>i:first-child{font-size:15px}
.olo-map-trigger>i:last-child{font-size:15px;transition:transform .15s}
.olo-map-cities.is-open .olo-map-trigger>i:last-child{transform:rotate(180deg)}
.olo-map-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.2);padding:6px;min-width:158px;display:none;flex-direction:column;gap:2px}
.olo-map-cities.is-open .olo-map-menu{display:flex;animation:oloDrop .16s ease both}
@keyframes oloDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.olo-map-mitem{background:none;border:none;text-align:left;color:var(--ink);font-family:'Inter';font-weight:600;font-size:13.5px;padding:9px 13px;border-radius:8px;cursor:pointer}
.olo-map-mitem:hover{background:var(--green-soft);color:var(--green-ink)}
.olo-map-mitem.is-on{background:var(--green-soft);color:var(--green-ink)}
.olo-pin{background:none!important;border:none!important}
.olo-pin-dot{display:block;width:16px;height:16px;margin:2px;border-radius:50%;background:var(--green);border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.45);transition:transform .16s ease;cursor:pointer}
.olo-pin:hover .olo-pin-dot{transform:scale(1.45)}
.olo-tip.leaflet-tooltip{background:var(--anthra);color:#fff;border:none;border-radius:13px;font-family:'Poppins';font-weight:600;font-size:14.5px;padding:7px 15px;box-shadow:0 4px 12px rgba(0,0,0,.32);white-space:nowrap;transition:background .15s,transform .12s;pointer-events:auto;cursor:pointer}
.olo-tip.leaflet-tooltip:hover{background:var(--green-ink);transform:translateY(-2px)}
.leaflet-tooltip-top.olo-tip:before{border-top-color:var(--anthra)}
/* Panneau offre (surgit à gauche, la carte se contracte) */
.olo-map-panel{flex:0 0 0;width:0;height:100%;background:#fff;overflow:hidden;position:relative;box-shadow:8px 0 28px rgba(0,0,0,.12)}
.olo-map-stage.is-open .olo-map-panel{flex:0 0 44%;width:44%}
.olo-panel-close{position:absolute;top:12px;right:12px;z-index:5;width:38px;height:38px;border:none;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(0,0,0,.2);font-size:24px;line-height:1;color:#26292b;cursor:pointer}
.olo-panel-scroll{height:100%;overflow-y:auto}
.olo-panel-scroll.is-in .olo-panel-body{animation:oloPanelIn .42s ease both}
@keyframes oloPanelIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.olo-panel-media{position:relative;height:210px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.olo-panel-media img{width:100%;height:100%;object-fit:cover}
.olo-panel-badge{position:absolute;top:12px;left:12px;background:var(--red);color:#fff;font-weight:600;font-size:13px;padding:5px 11px;border-radius:8px}
.olo-panel-body{padding:20px 24px 28px}
.olo-panel-city{display:inline-flex;align-items:center;gap:4px;background:var(--green-soft);color:var(--green-ink);font-size:12px;font-weight:600;padding:4px 11px;border-radius:20px}
.olo-panel-body h3{font-family:'Poppins';font-size:23px;margin:11px 0 4px}
.olo-panel-addr{color:var(--muted);font-size:13px;margin-bottom:12px}
.olo-panel-value{font-family:'Poppins';font-weight:700;font-size:18px;color:var(--green-ink);margin-bottom:10px}
.olo-panel-desc{color:#45484b;font-size:14px;line-height:1.6;margin-bottom:18px}
.olo-panel-cta{width:100%}
.olo-panel-reserve{margin-top:10px}
.olo-panel-nav{display:none;margin-top:14px;text-align:center;color:var(--muted);font-size:12.5px}
.olo-panel-nav b{color:var(--green-ink)}
@media(min-width:681px){.olo-panel-nav{display:block}}
.olo-panel-swipe{display:none;margin-top:12px;text-align:center;color:var(--muted);font-size:12.5px}
.olo-panel-swipe b{color:var(--green-ink)}
@media(max-width:680px){.olo-panel-swipe{display:block}}
@media(max-width:680px){
  .olo-map-stage{height:86vh;min-height:0}
  .olo-home-map .olo-map-stage{height:68vh}
  .olo-home-map.is-open{max-height:72vh}
  .olo-map-panel{position:absolute;left:0;right:0;bottom:0;top:auto;width:100%!important;height:92%;flex-basis:auto!important;z-index:700;border-radius:18px 18px 0 0;box-shadow:0 -8px 28px rgba(0,0,0,.24);transform:translateY(100%);transition:transform .34s cubic-bezier(.22,.61,.36,1)}
  .olo-map-stage.is-open .olo-map-panel{transform:translateY(0)}
  .olo-map-panel::after{content:"";position:absolute;top:9px;left:50%;transform:translateX(-50%);width:44px;height:5px;border-radius:3px;background:rgba(255,255,255,.8);z-index:6;pointer-events:none}
}
@media(max-width:680px){
  .olo-menu-name{display:none}
  .olo-footer{padding:44px 0;margin-top:16px}
  .olo-foot-brand{font-size:22px;gap:10px}
  .olo-foot-brand img{width:44px;height:44px}
  .olo-foot-links{gap:12px 14px}
  .olo-fav-head i{font-size:40px}
  .olo-fav-head h1{font-size:33px}
  .olo-fav-head p{font-size:15.5px}
  .olo-fav-head{margin-bottom:26px}
  .olo-auth h1{font-size:31px}
  .olo-auth .olo-offer-desc{font-size:16px}
  body.olo-kb main{padding-bottom:52vh}
}
.olo-mappop{width:180px;text-align:left}
.olo-mappop img{width:100%;height:96px;object-fit:cover;border-radius:8px;margin-bottom:8px;display:block}
.olo-mappop-val{display:block;color:var(--green-ink);font-weight:700;font-size:13px}
.olo-mappop strong{display:block;font-family:'Poppins';font-size:15px;margin-top:1px}
.olo-mappop-addr{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.olo-mappop a{display:inline-block;margin-top:9px;background:var(--green);color:#1d1e20;font-weight:600;font-size:12.5px;padding:6px 14px;border-radius:10px;text-decoration:none}
.leaflet-popup-content{margin:12px 14px}

/* ------------------------------- Favoris -------------------------------- */
.olo-fav-page{max-width:var(--submenu-w)}
.olo-fav-head{text-align:center;margin:6px 0 22px}
.olo-fav-head i{color:var(--green);font-size:30px}
.olo-fav-head h1{font-family:'Poppins';font-size:26px;margin:6px 0 4px}
.olo-fav-head p{color:var(--muted);font-size:14px;margin:0}
.olo-fav-empty{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 24px;text-align:center}
.olo-fav-empty p{color:#55585b;font-size:14.5px;margin:0 0 16px}
.olo-btn-green{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:#1d1e20;font-family:'Poppins';font-weight:600;font-size:14.5px;padding:11px 22px;border-radius:12px;text-decoration:none}
.olo-btn-green:hover{background:#78b22c}
.olo-fav-list{display:flex;flex-direction:column;gap:12px}
.olo-fav-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.olo-fav-item:hover{border-color:var(--green);box-shadow:0 6px 18px rgba(0,0,0,.06)}
.olo-fav-thumb{flex:0 0 64px;width:64px;height:64px;border-radius:12px;overflow:hidden;display:block}
.olo-fav-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.olo-fav-body{flex:1;min-width:0}
.olo-fav-body strong{display:block;font-family:'Poppins';font-size:16px}
.olo-fav-meta{display:block;color:var(--green-ink);font-size:12.5px;font-weight:600;margin-top:2px}
.olo-fav-tags{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.olo-fav-item>i{color:var(--muted);font-size:20px;flex:0 0 auto}

/* ------------------------------ Paramètres ------------------------------ */
.olo-set-list{display:flex;flex-direction:column;gap:10px}
.olo-set-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 16px}
.olo-set-label{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px}
.olo-set-label i{color:var(--green);font-size:19px}
.olo-set-val{color:var(--muted);font-size:13.5px}
.olo-set-link{text-decoration:none;color:var(--ink);transition:border-color .15s}
.olo-set-link:hover{border-color:var(--green)}
.olo-set-link>i{color:var(--muted);font-size:19px}
.olo-set-note{color:var(--muted);font-size:13px;margin-top:16px;text-align:center}
.olo-set-out{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:var(--red);font-weight:600;font-size:14.5px;text-decoration:none}
.olo-set-out:hover{text-decoration:underline}
/* Avertissement email non validé (compte potentiellement limité) */
.olo-email-warn{display:flex;gap:10px;align-items:flex-start;background:#fff6e6;border:1px solid #f0d38a;color:#7a5a12;border-radius:12px;padding:13px 15px;font-size:13.5px;line-height:1.5;margin:0 auto 18px;max-width:var(--submenu-w);text-align:left}
.olo-email-warn i{color:#d99414;font-size:19px;flex:none;margin-top:1px}
.olo-email-warn a{color:var(--green-ink);font-weight:600;text-decoration:none;white-space:nowrap}
.olo-email-warn a:hover{text-decoration:underline}
.olo-set-val.is-unverified{color:#c9820c;font-weight:600}

/* ------------------------- Filtres home (ville / catégorie) ------------- */
.olo-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.olo-chip-filter{background:#fff;border:1.5px solid var(--line);color:#55585b;font-family:'Inter';font-weight:600;font-size:13px;padding:7px 15px;border-radius:20px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.olo-chip-filter:hover{border-color:var(--green)}
.olo-chip-filter.is-on{background:var(--green);border-color:var(--green);color:#1d1e20}
@media(max-width:680px){
  .olo-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}
  .olo-filters::-webkit-scrollbar{display:none}
  .olo-chip-filter{flex:0 0 auto}
}
.olo-empty{text-align:center;color:var(--muted);font-size:14.5px;padding:44px 20px}
.olo-maptoggle-row{display:flex;justify-content:flex-end;margin:0 0 14px}
.olo-home-map{max-height:0;overflow:hidden;transition:max-height .42s ease,margin .42s ease;margin:0}
.olo-home-map.is-open{max-height:82vh;margin:0 0 22px}
.olo-grid .olo-card{will-change:transform,opacity}

/* Paramètres - numéro & changement */
.olo-set-change{margin-top:14px;text-align:center}
.olo-step-done{padding:6px 0}
.olo-set-changesub{color:var(--muted);font-size:13px;margin:2px 0 12px;line-height:1.5}
.olo-set-phone{font-family:ui-monospace,Menlo,monospace;letter-spacing:.5px}
.olo-linkbtn{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline;margin-top:4px;font-family:inherit;display:block;width:100%;text-align:center}
.olo-linkbtn:hover{color:var(--ink)}

/* ------------------------------- À propos ------------------------------- */
.olo-about{max-width:940px}
.olo-about-hero{padding:44px 0 40px}
.olo-about-hero h1{font-size:32px}
.olo-about-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.olo-about-lead{text-align:center;max-width:730px;margin:0 auto}
.olo-about-lead h2{font-size:24px;margin-bottom:10px}
.olo-about-lead p{color:#45484b;font-size:16px;line-height:1.7}
.olo-about-lead strong{color:var(--green-ink)}
.olo-about-h{text-align:center;font-size:22px;margin:46px 0 26px}
.olo-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.olo-step-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px 22px 22px;text-align:center}
.olo-step-num{position:absolute;top:-15px;left:50%;transform:translateX(-50%);width:32px;height:32px;border-radius:50%;background:var(--green);color:#1d1e20;font-family:'Poppins';font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg)}
.olo-step-card>i{font-size:34px;color:var(--green)}
.olo-step-card h3{font-family:'Poppins';font-size:17px;margin:10px 0 6px}
.olo-step-card p{color:#55585b;font-size:14px;line-height:1.6}
.olo-about-feature{display:flex;gap:20px;align-items:center;background:var(--green-soft);border-radius:18px;padding:24px 26px;margin:40px 0}
.olo-about-feature-ico{flex:0 0 auto;width:60px;height:60px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--green-ink);font-size:30px}
.olo-about-feature h3{font-family:'Poppins';font-size:18px;margin-bottom:6px}
.olo-about-feature p{color:#3f5320;font-size:14.5px;line-height:1.6}
.olo-about-unlock{background:var(--anthra);color:#fff;border-radius:20px;padding:36px 28px;text-align:center;margin:40px 0}
.olo-about-unlock h2{color:#fff;font-size:23px;margin-bottom:10px}
.olo-about-unlock>p{color:#c9cdcf;max-width:640px;margin:0 auto 24px;font-size:15.5px;line-height:1.65}
.olo-about-unlock strong{color:var(--green)}
.olo-unlock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.olo-unlock-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:22px 18px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px}
.olo-unlock-card>i{font-size:28px;color:var(--green)}
.olo-unlock-card strong{font-family:'Poppins';font-size:15.5px}
.olo-unlock-card span{color:#a9adb0;font-size:13px;line-height:1.5}
.olo-about-final{text-align:center;margin-top:46px}
.olo-about-final h2{font-size:22px;margin-bottom:16px}

/* -------------------- Carte CTA commerçant + page partenaire ------------- */
.olo-card-cta{background:var(--anthra);border-color:var(--anthra);grid-column:1/-1}
.olo-card-cta-in{display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:left;gap:20px;padding:22px 26px;flex-wrap:wrap}
.olo-card-cta-in>i{font-size:34px;color:var(--green);flex:0 0 auto}
.olo-card-cta-in strong{font-family:'Poppins';font-size:17px;color:#fff;white-space:nowrap}
.olo-card-cta-in>span{color:#dfe3e5;font-size:14px;line-height:1.5;font-weight:500;max-width:560px;flex:1 1 240px}
@media(max-width:640px){
  .olo-card-cta-in{flex-direction:column;text-align:center;gap:10px;padding:26px 22px}
  .olo-card-cta-in>span{max-width:none;flex-basis:auto;font-size:14.5px}
  .olo-card-cta-in strong{font-size:18px;white-space:normal}
}
.olo-card-cta-btn{margin-top:0;background:var(--green);color:#1d1e20!important;font-weight:600;font-size:13px;padding:9px 18px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;white-space:nowrap}
.olo-partner-card{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.olo-textarea{min-height:96px;resize:vertical;font-family:inherit;line-height:1.5;padding-top:12px}

/* Boutons de liens colorés (page offre) */
.olo-lb-fb{background:#1877F2;color:#fff;border-color:#1877F2}
.olo-lb-ig{background:linear-gradient(45deg,#f09433 0%,#dc2743 45%,#bc1888 100%);color:#fff;border:none}
.olo-lb-map{background:var(--green);color:#1d1e20;border-color:var(--green)}
.olo-lb-web{background:var(--anthra);color:#fff;border-color:var(--anthra)}
.olo-lb-fb i,.olo-lb-ig i,.olo-lb-map i,.olo-lb-web i,.olo-lb-fb:hover,.olo-lb-ig:hover,.olo-lb-map:hover,.olo-lb-web:hover{color:inherit}
.olo-lb-fb:hover{background:#1568d8}
.olo-lb-map:hover{background:#78b22c}

/* -------------------------- Pop-up de partage --------------------------- */
.olo-modal{position:fixed;inset:0;z-index:1000;display:none}
.olo-modal.is-open{display:block}
.olo-modal-backdrop{position:absolute;inset:0;background:rgba(20,22,23,.55);animation:oloFade .2s ease both}
.olo-modal-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 40px);max-width:440px;background:#fff;border-radius:20px;padding:30px 26px 26px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28);animation:oloPopIn .28s cubic-bezier(.2,.8,.3,1.1) both}
@keyframes oloFade{from{opacity:0}to{opacity:1}}
@keyframes oloPopIn{from{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.olo-modal-x{position:absolute;top:12px;right:14px;background:none;border:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.olo-modal-ico{width:56px;height:56px;border-radius:50%;background:var(--green-soft);color:var(--green-ink);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 12px}
.olo-modal-title{font-family:'Poppins';font-size:20px;margin-bottom:6px}
.olo-modal-sub{color:#45484b;font-size:14px;line-height:1.55;margin:0 auto 20px;max-width:350px}
.olo-modal-sub strong{color:var(--green-ink)}
.olo-share-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.olo-share-b{display:flex;flex-direction:column;align-items:center;gap:6px;padding:13px 4px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;cursor:pointer;font-size:11.5px;font-weight:600;transition:transform .12s,box-shadow .12s}
.olo-share-b:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.1)}
.olo-share-b i{font-size:24px}
.olo-sb-wa i{color:#25D366}
.olo-sb-fb i{color:#1877F2}
.olo-sb-sms i{color:#34c759}
.olo-sb-mail i{color:#e6683c}
.olo-sb-copy i{color:var(--green-ink)}
@media(max-width:480px){.olo-share-grid{grid-template-columns:repeat(3,1fr)}}

/* Réseaux en icônes seules (page offre) */
.olo-iconlinks{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.olo-iconbtn{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:21px;text-decoration:none;transition:transform .12s,box-shadow .12s}
.olo-iconbtn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.15)}
.olo-ib-ig{background:linear-gradient(45deg,#f09433 0%,#dc2743 45%,#bc1888 100%);color:#fff}
.olo-ib-fb{background:#1877F2;color:#fff}
.olo-ib-map{background:var(--green);color:#1d1e20}
.olo-ib-web{background:var(--anthra);color:#fff}
.olo-ib-call{background:var(--green-soft);color:var(--green-ink)}

/* Carrousel « offres liées » */
.olo-related{margin:6px 0 0;padding:24px 0 40px}
.olo-rel-wrap{position:relative}
.olo-rel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:none}
.olo-rel-track::-webkit-scrollbar{display:none}
.olo-rel-card{flex:0 0 240px;scroll-snap-align:start}
.olo-rel-nav{display:none;position:absolute;top:42%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.16);color:#26292b;font-size:20px;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.olo-rel-prev{left:-6px}.olo-rel-next{right:-6px}
@media(min-width:900px){.olo-rel-nav{display:flex}}

/* Garde-fou anti-débordement horizontal sur la fiche offre (mobile) */
@media(max-width:899px){
  .olo-offer{overflow-x:hidden}
  .olo-rel-track{max-width:100%}
}

/* ============================ Quick-view (aperçu accueil) ============================ */
body.olo-qv-lock{overflow:hidden}
.olo-qv{position:fixed;inset:0;z-index:1000;display:none}
.olo-qv.is-open{display:block}
.olo-qv-backdrop{position:absolute;inset:0;background:rgba(20,22,24,.5);opacity:0;transition:opacity .25s ease}
.olo-qv.is-open .olo-qv-backdrop{opacity:1}
.olo-qv-sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:22px 22px 0 0;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -12px 44px rgba(0,0,0,.28);transform:translateY(100%);transition:transform .34s cubic-bezier(.22,.61,.36,1)}
.olo-qv.is-open .olo-qv-sheet{transform:translateY(0)}
.olo-qv-close{position:absolute;top:10px;right:10px;z-index:5;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.94);box-shadow:0 2px 10px rgba(0,0,0,.18);font-size:24px;line-height:1;color:#26292b;cursor:pointer}
.olo-qv-scroll{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
.olo-qv-scroll::-webkit-scrollbar{width:0;height:0;display:none}
.olo-qv-scroll.is-in .olo-panel-body,.olo-qv-scroll.is-in .olo-resa{animation:oloPanelIn .34s ease both}
.olo-qv-arrow{display:none}
.olo-qv-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.olo-qv-reserve{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;border-radius:12px;border:1.5px solid var(--green);background:#fff;color:var(--green-ink);font-family:'Poppins';font-weight:600;font-size:14.5px;cursor:pointer}
.olo-qv-reserve:hover{background:#f2fbf3}
.olo-qv-hint{color:var(--muted);font-size:12.5px;text-align:center;margin-top:14px}
.olo-qv-hint b{color:#45484b}
.olo-qv-hint-d{display:none}
/* Réservation */
.olo-resa{padding:22px 24px 28px}
.olo-resa-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.olo-resa-back{width:34px;height:34px;flex:0 0 auto;border-radius:50%;border:1px solid var(--line);background:#fff;color:#26292b;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.olo-resa-back:hover{border-color:var(--green);color:var(--green-ink)}
.olo-resa h3{font-family:'Poppins';font-size:19px;margin:0}
.olo-resa-lead{color:var(--muted);font-size:13.5px;margin:2px 0 8px}
.olo-field{margin:14px 0}
.olo-field label{display:block;font-weight:600;font-size:13.5px;margin-bottom:7px;color:#26292b}
.olo-field-opt{color:var(--muted);font-weight:400}
.olo-field input[type=date]{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:15px;font-family:inherit;background:#fff;color:#26292b}
.olo-field input[type=date]:focus{outline:none;border-color:var(--green)}
.olo-people{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}
.olo-people button{width:48px;height:46px;border:none;background:#f6f7f8;font-size:20px;line-height:1;cursor:pointer;color:#26292b}
.olo-people button:hover{background:#eef0f1}
.olo-people span{min-width:64px;text-align:center;font-weight:700;font-family:'Poppins'}
.olo-resa-next{margin-top:6px}
.olo-resa .olo-otp{margin:10px 0 18px}
.olo-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.olo-service{display:flex;flex-direction:column;align-items:center;gap:3px;padding:18px 12px;border:1.5px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font-family:inherit;color:#26292b;transition:border-color .15s,background .15s}
.olo-service:hover,.olo-service.is-on{border-color:var(--green);background:#f2fbf3}
.olo-service i{font-size:22px;color:var(--green-ink)}
.olo-service b{font-family:'Poppins';font-size:19px}
.olo-service small{color:var(--muted)}
.olo-checking{display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 20px;text-align:center;color:#45484b}
.olo-spin{width:38px;height:38px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--green);animation:oloSpin .8s linear infinite}
@keyframes oloSpin{to{transform:rotate(360deg)}}
.olo-resa-alert{display:flex;align-items:flex-start;gap:8px;background:#fff5f2;border:1px solid #ffd9cc;color:#9a3412;border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.5;margin-top:4px}
.olo-resa-alert i{margin-top:1px}
.olo-resa-sub{font-weight:600;font-size:14px;margin:16px 0 10px}
.olo-alt-list{display:flex;flex-direction:column;gap:8px}
.olo-alt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-family:inherit;color:#26292b;text-align:left;transition:border-color .15s,background .15s}
.olo-alt:hover{border-color:var(--green);background:#f2fbf3}
.olo-alt-when{display:flex;flex-direction:column;line-height:1.25}
.olo-alt-when b{font-weight:600;font-size:14.5px;text-transform:capitalize}
.olo-alt-when small{color:var(--muted);font-size:12.5px}
.olo-alt i{color:var(--green-ink)}
.olo-resa-ok{text-align:center;padding:6px 0}
.olo-resa-ok .olo-panel-cta,.olo-resa-ok .olo-btn{width:100%;margin-top:6px}
.olo-resa-recap{font-size:15px;line-height:1.5;margin:4px 0 6px;text-transform:capitalize}
.olo-resa-change{display:block;width:100%;text-align:center;margin-top:14px;background:none;border:none;color:var(--muted);font-size:13.5px;text-decoration:underline;cursor:pointer;font-family:inherit}
.olo-resa-change:hover{color:var(--green-ink)}

@media(min-width:681px){
  .olo-qv-sheet{left:50%;right:auto;top:50%;bottom:auto;width:460px;max-width:calc(100vw - 32px);max-height:88vh;border-radius:20px;transform:translate(-50%,-46%);opacity:0;transition:transform .3s cubic-bezier(.22,.61,.36,1),opacity .3s ease}
  .olo-qv.is-open .olo-qv-sheet{transform:translate(-50%,-50%);opacity:1}
  .olo-qv-arrow{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.18);color:#26292b;font-size:22px;cursor:pointer}
  .olo-qv.is-resa .olo-qv-arrow{display:none}
  .olo-qv-prev{left:-58px}
  .olo-qv-next{right:-58px}
  .olo-qv-hint-m{display:none}
  .olo-qv-hint-d{display:inline}
}

/* Quick-view : bouton WhatsApp + confirmation de fermeture */
.olo-btn-wa{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;border-radius:12px;background:#fff;color:#25d366;font-family:'Poppins';font-weight:600;font-size:14.5px;text-decoration:none;border:1.5px solid #25d366;cursor:pointer}
.olo-btn-wa i{color:#25d366}
.olo-btn-wa:hover{background:#f1fdf6}
.olo-qv-confirm{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;background:rgba(20,22,24,.5);padding:22px}
.olo-qv-confirm-box{background:#fff;border-radius:16px;padding:24px 22px;max-width:300px;width:100%;text-align:center;box-shadow:0 16px 40px rgba(0,0,0,.28)}
.olo-qv-confirm-box p{font-family:'Poppins';font-weight:600;font-size:16px;margin-bottom:18px}
.olo-qv-confirm-btns{display:flex;gap:10px}
.olo-qv-confirm-btns .olo-btn{flex:1;padding:12px}
.olo-qv-confirm-yes{background:var(--red)!important;color:#fff!important}
.olo-qv-confirm-yes:hover{background:#c92a20!important}

/* Carte : bandeau de filtre par catégorie */
.olo-map-catfilter{position:absolute;left:12px;bottom:16px;z-index:600;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:6px 8px 6px 15px;box-shadow:0 4px 16px rgba(0,0,0,.18);font-size:13px;font-weight:600;color:#26292b;transform:scale(.9);transform-origin:left bottom}
.olo-map-catfilter[hidden]{display:none}
/* Quand le panneau est ouvert (desktop), la bulle se place en bas à gauche de la CARTE, pas sur le panneau */
@media(min-width:681px){ .olo-map-stage.is-open .olo-map-catfilter{left:calc(44% + 12px)} }
.olo-catf-n{color:var(--muted);font-weight:500;margin-left:7px}
.olo-map-catfilter>span{white-space:nowrap}
.olo-map-catfilter button{display:inline-flex;align-items:center;gap:4px;background:var(--green-soft);color:var(--green-ink);border:none;border-radius:16px;padding:6px 12px;font:inherit;font-weight:600;cursor:pointer}
.olo-map-catfilter button:hover{background:#e0efc9}

/* Garde anti-débordement horizontal global */
html{overflow-x:clip}
.olo-offer-gallery,.olo-offer-cta,.olo-offer-extra,.olo-cta,.olo-share-card,.olo-offer-map,.olo-offer-social,.olo-offer-body{min-width:0}

/* Réservation : bannière de l'offre activée */
.olo-resa-offer{display:flex;align-items:center;gap:10px;background:var(--green-soft);border-radius:12px;padding:10px 12px;margin:0 0 12px}
.olo-resa-offer-badge{background:var(--red);color:#fff;font-weight:600;font-size:12px;padding:4px 9px;border-radius:7px;flex:0 0 auto}
.olo-resa-offer-txt{font-size:13px;color:#3a5d12;line-height:1.4}
.olo-resa-offer-txt b{color:var(--green-ink)}

/* Page Mes réservations */
.olo-empty-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:8px}
.olo-empty-card i{font-size:40px;color:var(--muted)}
.olo-empty-card p{color:#55585b}
.olo-empty-card .olo-btn-green{margin-top:4px}
.olo-resa-sect{font-size:15px;font-weight:700;margin:22px 0 10px;color:#26292b}
.olo-resa-list{display:flex;flex-direction:column;gap:10px}
.olo-resa-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:inherit;transition:border-color .15s}
.olo-resa-row:hover{border-color:var(--green)}
.olo-resa-row-main{flex:1;min-width:0}
.olo-resa-row-main h3{font-family:'Poppins';font-size:17px;margin:7px 0 2px}
.olo-resa-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}
.olo-resa-badge.is-up{background:var(--green-soft);color:var(--green-ink)}
.olo-resa-badge.is-done{background:#f0f1f2;color:#8b8f93}
.olo-resa-badge.is-cancel{background:#fdecec;color:var(--red)}
.olo-resa-row.is-cancelled{position:relative}
.olo-resa-rebook{position:absolute;right:44px;bottom:14px;display:inline-flex;align-items:center;gap:5px;color:var(--green-ink);font-size:12.5px;font-weight:600}
.olo-resa-rebook i{font-size:15px}
.olo-resa-row-offer{color:var(--green-ink);font-size:13.5px;font-weight:600;margin:3px 0;display:flex;align-items:center;gap:5px}
.olo-resa-when{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.olo-resa-made{color:var(--muted);opacity:.75;font-size:11.5px;margin-top:2px}
.olo-resa-chev{color:var(--muted);font-size:20px;flex:0 0 auto}
/* Ligne réservation cliquable (ouvre l'éditeur) + liens nom/offre vers la fiche */
.olo-resa-row.is-editable{cursor:pointer}
.olo-resa-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.olo-resa-link h3{margin:7px 0 2px}
.olo-resa-link:hover h3,.olo-resa-link:hover{color:var(--green-ink)}
a.olo-resa-row-offer:hover{text-decoration:underline}
.olo-resa-manage{display:inline-flex;align-items:center;gap:5px;margin-top:9px;color:var(--green-ink);font-size:12.5px;font-weight:600}
.olo-resa-manage i{font-size:15px}
/* Éditeur : récap de la réservation courante (multi-lignes, mots non coupés) */
.olo-resa-current{display:flex;align-items:flex-start;gap:10px;background:var(--green-soft);color:var(--green-ink);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.olo-resa-current>i{font-size:19px;flex:none;margin-top:2px}
.olo-resa-current-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.olo-resa-current-label{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;opacity:.85}
.olo-resa-current-val{font-size:14.5px;font-weight:700;line-height:1.4}
/* Éditeur : sélecteur de date replié par défaut */
.olo-date-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font-family:inherit;font-size:15px;color:#26292b;cursor:pointer;text-align:left}
.olo-date-toggle:hover{border-color:var(--green)}
.olo-date-toggle-v{display:inline-flex;align-items:center;gap:8px;min-width:0}
.olo-date-toggle-v i{color:var(--green-ink)}
.olo-date-chev{color:var(--muted);transition:transform .2s}
.olo-date-toggle.is-open .olo-date-chev{transform:rotate(180deg)}
.olo-date-toggle.is-open{border-color:var(--green)}
#qvCal{margin-top:10px}
#qvCal[hidden]{display:none}
/* Éditeur : bouton d'annulation entouré de rouge pour plus de visibilité */
.olo-resa-cancel-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:14px;background:#fff;border:1.5px solid var(--red);border-radius:12px;color:var(--red);font-family:'Poppins';font-weight:600;font-size:14px;cursor:pointer;padding:12px}
.olo-resa-cancel-link:hover{background:#fdecec}
.olo-btn-danger{background:var(--red);color:#fff;margin-top:18px}

/* Paramètres : région + villes personnelles */
#prmRegionSel{margin-top:10px}
.olo-city-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.olo-city-chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-soft);color:var(--green-ink);font-weight:600;font-size:13px;padding:6px 8px 6px 12px;border-radius:20px}
.olo-city-chip button{background:none;border:none;color:var(--green-ink);font-size:16px;line-height:1;cursor:pointer;padding:0 2px}
.olo-city-add{display:flex;gap:8px;margin-top:12px}
.olo-city-add .olo-input{flex:1}
.olo-city-add .olo-btn{width:auto;padding:12px 18px}
.olo-set-saved{color:var(--green-ink);font-weight:600;font-size:13px;margin-top:10px;display:flex;align-items:center;gap:5px}
.olo-set-saved[hidden]{display:none}

/* Hero connecté : CTA « Débloquer mon compte » (apparaît après la phrase machine à écrire) */
/* Zone stable phrase/bouton : mêmes dimensions pour ne pas faire bouger le bandeau anthracite */
.olo-hero-swap{position:relative;min-height:64px;margin-top:10px}
.olo-hero-swap .olo-hero-type{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1.3;transition:opacity .5s ease}
.olo-hero-swap .olo-hero-type.is-out{opacity:0}
.olo-hero-unlock{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#1d1e20;font-family:'Poppins';font-weight:600;font-size:15px;padding:11px 22px;border-radius:12px;text-decoration:none;white-space:nowrap;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity 2s ease}
.olo-hero-unlock.is-in{opacity:1;pointer-events:auto}
.olo-hero-unlock:hover{background:#78b22c}

/* Bandeau accueil desktop : titre + texte machine à écrire à la même taille (placé en fin de fichier pour primer sur les règles plus haut) */
@media(min-width:900px){
  .olo-hero h1{font-size:33px}
  .olo-hero-note-title{max-width:820px}
  .olo-hero-swap{min-height:90px}
  .olo-hero-swap .olo-hero-type{font-size:33px}
}

/* Calendrier custom de la réservation (quick-view) */
.olo-cal{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 12px 14px;margin-top:8px}
.olo-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.olo-cal-title{font-family:'Poppins';font-weight:600;font-size:15.5px;color:#26292b;text-transform:capitalize}
.olo-cal-nav{width:36px;height:36px;border-radius:50%;border:none;background:#f6f7f8;color:#26292b;font-size:19px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}
.olo-cal-nav:hover{background:var(--green-soft);color:var(--green-ink)}
.olo-cal-nav:disabled{opacity:.32;cursor:default}
.olo-cal-dows{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}
.olo-cal-dows span{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:4px 0}
.olo-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.olo-cal-empty{height:40px}
.olo-cal-day{height:40px;border:none;background:none;border-radius:11px;font-family:'Inter';font-size:14.5px;font-weight:500;color:#26292b;cursor:pointer;transition:background .12s,color .12s,transform .1s}
.olo-cal-day:hover{background:var(--green-soft);color:var(--green-ink)}
.olo-cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--line);font-weight:700}
.olo-cal-day.is-sel{background:var(--green);color:#1d1e20;font-weight:700}
.olo-cal-day.is-sel:hover{background:var(--green);color:#1d1e20;transform:scale(1.04)}
.olo-cal-day.is-off{color:#cdd1d3;cursor:default}
.olo-cal-day.is-off:hover{background:none;color:#cdd1d3}
.olo-cal-day.is-closed{color:#d6a4a4;text-decoration:line-through;text-decoration-thickness:1px;cursor:not-allowed}
.olo-cal-day.is-closed:hover{background:none;color:#d6a4a4}

/* ============================================================================
   Bon de réservation (client) et validation sur place (enseigne).
   Les couleurs viennent de l'enseigne, injectées en variables --bv-* sur .olo-bon.
   ========================================================================== */
.olo-bon{max-width:var(--submenu-w);margin:0 auto;padding:18px 20px 44px;width:100%}
.olo-bon-head{text-align:center;margin-bottom:18px}
.olo-bon-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--bv-accent,var(--green-ink))}
.olo-bon-head h1{font-size:24px;margin:8px 0 6px;color:var(--ink)}
.olo-bon-head h1 span{font-weight:600;color:var(--bv-band,var(--anthra))}
/* Texte simple et non flex : sur un écran étroit la ligne passe à deux lignes et
   une icône en élément flex frère se retrouve centrée verticalement dans le vide. */
.olo-bon-when{font-size:14.5px;color:var(--muted);text-align:center}
.olo-bon-when i{font-size:17px;vertical-align:-2px;margin-right:5px}

.olo-bon-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 20px 24px}
.olo-bon-card+.olo-bon-card{margin-top:14px}
.olo-bon-h2{font-size:18px;margin-bottom:6px}
.olo-bon-lead{font-size:14px;color:var(--muted);margin-bottom:14px;line-height:1.55}
.olo-bon-rules{list-style:none;margin:0 0 18px;display:flex;flex-direction:column;gap:9px}
.olo-bon-rules li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.5}
.olo-bon-rules li::before{content:"";position:absolute;left:6px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--bv-band,var(--green))}
.olo-bon-check{display:flex;gap:12px;align-items:flex-start;background:var(--bg);border:1.5px solid var(--line);border-radius:13px;padding:14px;cursor:pointer;margin-bottom:14px;transition:border-color .14s,background .14s}
.olo-bon-check:has(input:checked){border-color:var(--bv-band,var(--green));background:#fff}
.olo-bon-check input{width:22px;height:22px;flex:0 0 auto;accent-color:var(--bv-band,var(--green));cursor:pointer;margin-top:1px}
.olo-bon-check span{font-size:14.5px;line-height:1.45;font-weight:500}
.olo-bon .olo-btn:disabled{opacity:.45;cursor:default}

.olo-bon-out{text-align:center}
.olo-bon-imgwrap{min-height:150px;display:flex;align-items:center;justify-content:center}
.olo-bon-spin{color:var(--muted);font-size:14px;padding:44px 0}
#bonImg{max-width:min(340px,84vw);height:auto;border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.16);margin:0 auto}
.olo-bon-dl{display:inline-block;margin-top:14px;font-size:13px;color:var(--muted);text-decoration:underline}
.olo-bon-tip{font-size:13px;color:var(--muted);margin-top:14px;line-height:1.55;text-align:center}
.olo-bon-tip i{vertical-align:-2px;margin-right:5px}
.olo-bon-links{margin-top:18px}
.olo-bon-msg{text-align:center}
.olo-bon-msg i{font-size:44px;color:var(--muted)}
.olo-bon-msg h1{font-size:22px;margin:10px 0 8px}
.olo-bon-msg p{font-size:14.5px;color:var(--muted);margin-bottom:20px}

.olo-bon-howto{position:fixed;inset:0;background:rgba(20,18,16,.6);display:flex;align-items:center;justify-content:center;z-index:999;padding:22px}
.olo-bon-howto[hidden]{display:none}
.olo-bon-howto-card{background:#fff;border-radius:20px;padding:26px 24px 24px;max-width:330px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.olo-bon-howto-card i{font-size:40px;color:var(--bv-band,var(--green-ink))}
.olo-bon-howto-card h3{font-size:20px;margin:8px 0 10px}
.olo-bon-howto-card p{font-size:14.5px;line-height:1.6;margin-bottom:20px}
.olo-bon-howto-card .olo-btn{width:100%}

/* ------------------------------ Validation staff ------------------------- */
.olo-pos{max-width:460px;margin:0 auto;padding:18px 20px 44px;width:100%}
.olo-pos-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 20px 24px}
.olo-pos-card+.olo-pos-card{margin-top:14px}
.olo-pos-state{text-align:center;border-radius:18px;padding:26px 20px;color:#fff}
.olo-pos-state i{font-size:52px}
.olo-pos-state h1{font-size:25px;margin:8px 0 4px;color:#fff}
.olo-pos-state p{font-size:14.5px;color:rgba(255,255,255,.9)}
.olo-pos-ok{background:#1f7a44}
.olo-pos-warn{background:#b8632f}
.olo-pos-bad{background:#b03327}
.olo-pos-neutral{background:var(--anthra)}
/* Attente du 2e scan : bleu nuit, volontairement different du vert « c'est fait ». */
.olo-pos-wait{background:#1f3a5f}
.olo-pos-wait i{animation:oloPulse 1.6s ease-in-out infinite}
@keyframes oloPulse{0%,100%{opacity:1}50%{opacity:.45}}
.olo-pos-who{text-align:center;padding-bottom:6px}
.olo-pos-who h2{font-size:27px;margin-bottom:2px}
.olo-pos-who .olo-pos-venue{font-size:14px;color:var(--muted)}
.olo-pos-facts{list-style:none;margin:16px 0 0;border-top:1px solid var(--line)}
.olo-pos-facts li{display:flex;justify-content:space-between;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:14.5px}
.olo-pos-facts .olo-pos-k{color:var(--muted)}
.olo-pos-facts .olo-pos-v{font-weight:600;text-align:right}
.olo-pos-rules{margin-top:16px;background:var(--bg);border-radius:13px;padding:14px 16px;text-align:left}
.olo-pos-rules h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
.olo-pos-rules ul{list-style:none;display:flex;flex-direction:column;gap:7px}
.olo-pos-rules li{position:relative;padding-left:18px;font-size:13.5px;line-height:1.45}
.olo-pos-rules li::before{content:"";position:absolute;left:4px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--anthra)}
.olo-pos-big{width:100%;padding:19px;font-size:17px;font-weight:700;border:none;border-radius:14px;background:#1f7a44;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}
.olo-pos-big:hover{background:#1a6a3b}
.olo-pos-big:disabled{opacity:.5;cursor:default}
.olo-pos-lock{text-align:center}
.olo-pos-lock i{font-size:34px;color:var(--muted)}
.olo-pos-lock h3{font-size:17px;margin:8px 0 6px}
.olo-pos-lock p{font-size:14px;color:var(--muted);line-height:1.55;margin-bottom:16px}
.olo-pos-note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:14px;line-height:1.5}
.olo-pos-ghost{width:100%;margin-top:10px;padding:13px;font-size:14.5px;font-weight:600;border:1.5px solid var(--line);border-radius:13px;background:#fff;color:var(--muted);cursor:pointer}
.olo-pos-ghost:hover{border-color:var(--muted);color:var(--ink)}

/* ---------------- Poste de validation de l'enseigne (page /scan) ---------- */
.olo-poste-head{text-align:center;margin-bottom:16px}
.olo-poste-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.olo-poste-head h1{font-size:26px;margin:6px 0 6px}
.olo-poste-state{font-size:14px;color:var(--muted)}
.olo-poste-bar{display:flex;justify-content:center;margin-bottom:14px}
.olo-poste-bar .olo-pos-ghost{width:auto;margin-top:0;padding:11px 18px}
.olo-poste-h2{font-size:17px;margin-bottom:12px}
.olo-poste-list{list-style:none;display:flex;flex-direction:column;gap:8px}
.olo-poste-link{display:flex;align-items:center;gap:12px;padding:12px 12px;border:1px solid var(--line);border-radius:13px;text-decoration:none;color:var(--ink);background:#fff}
.olo-poste-link:hover{border-color:var(--green)}
.olo-poste-hour{font-family:'Poppins',sans-serif;font-weight:700;font-size:16px;flex:0 0 auto;min-width:48px}
.olo-poste-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.olo-poste-body strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.olo-poste-body span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.olo-poste-tag{flex:0 0 auto;font-size:12px;font-weight:600;padding:5px 10px;border-radius:9px;background:var(--bg);color:var(--muted);text-align:center}
.olo-poste-tag.is-ok{background:var(--green-soft);color:#2c6b1c}
.olo-poste-tag.is-wait{background:#fdf1e3;color:#96551f}
.olo-poste-item.is-in .olo-poste-link{background:#fbfdf9}
.olo-poste-empty{font-size:14px;color:var(--muted);text-align:center;padding:14px 0}
.olo-poste-queue h3{font-size:15px;margin-bottom:6px}
.olo-poste-queue p{font-size:14px;color:var(--muted);margin-bottom:12px}
/* Absence : action en retrait, qui passe en rouge une fois la confirmation demandée. */
.olo-pos-ghost.is-danger{border-color:#c9463a;color:#b03327;font-weight:700}
.olo-pos-ghost.is-danger:hover{border-color:#b03327;color:#93291f}

/* ------------------------- Photo de l'offre en grand --------------------- */
/* Fond très sombre plutôt que noir pur : la croix et les flèches restent visibles
   même sur une photo qui touche les bords. */
.olo-zoom{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;
  background:rgba(10,10,12,.985);padding:56px 16px;overscroll-behavior:contain}
.olo-zoom.is-open{display:flex}
.olo-zoom img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:10px;
  box-shadow:0 24px 60px rgba(0,0,0,.5)}
.olo-zoom-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:none;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:22px;cursor:pointer;display:flex;
  align-items:center;justify-content:center}
.olo-zoom-x:hover{background:rgba(255,255,255,.26)}
/* La croix reçoit le focus à l'ouverture (pour le clavier et les lecteurs d'écran) : on ne
   veut donc pas du halo par défaut au doigt, mais on le garde net à la navigation clavier. */
.olo-zoom-x:focus{outline:none}
.olo-zoom-x:focus-visible{outline:2px solid #fff;outline-offset:3px}
.olo-zoom-nav:focus{outline:none}
.olo-zoom-nav:focus-visible{outline:2px solid #fff;outline-offset:3px}
.olo-zoom-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:none;
  border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.olo-zoom-nav:hover{background:rgba(255,255,255,.26)}
.olo-zoom-prev{left:12px}
.olo-zoom-next{right:12px}
.olo-zoom-count{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;
  font-size:13px;background:rgba(0,0,0,.45);padding:5px 12px;border-radius:20px}
/* Sur un téléphone étroit, les flèches mangeraient la photo : le glissement suffit. */
@media (max-width:480px){.olo-zoom-nav{display:none}.olo-zoom{padding:56px 8px}}

/* ------------------- Lecteur de QR dans la page (staff) ------------------ */
/* Plein écran : en salle, le serveur tient le téléphone d'une main et vise vite. */
.olo-cam{position:fixed;inset:0;z-index:2500;display:none;background:#0b0b0d}
.olo-cam.is-open{display:block}
.olo-cam video{width:100%;height:100%;object-fit:cover}
/* Cadre de visée : sans repère, on ne sait pas où présenter le code. */
.olo-cam-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:66vw;max-width:300px;
  aspect-ratio:1;border:3px solid rgba(255,255,255,.9);border-radius:20px;
  box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
.olo-cam-hint{position:absolute;left:0;right:0;bottom:104px;text-align:center;color:#fff;font-size:15px;
  font-weight:600;padding:0 24px;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.olo-cam-hint.is-bad{color:#ffb4ab}
.olo-cam-x{position:absolute;top:14px;right:14px;width:46px;height:46px;border:none;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;font-size:23px;cursor:pointer;display:flex;
  align-items:center;justify-content:center}
.olo-cam-x:focus{outline:none}
.olo-cam-x:focus-visible{outline:2px solid #fff;outline-offset:3px}
