
  :root{
    --navy:#0E7C8C;
    --stamp:#E00C01;
    --gold:#FDC134;
    --paper:#FFFFFF;
    --teal:#51D0DC;
    --ink:#1B3A3E;
    --paper-2:#ECECEC;
    --lettuce:#3C6E1F;
    --cream:#FBF3DC;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    min-height:100vh;
  }
  .mono{font-family:'Space Mono',monospace;}
  .display{font-family:'Archivo Black',sans-serif; text-transform:uppercase;}
  h2, h3, h4,
  .brand-text, .ft-name, .section-title, .miles-count, .tier-label,
  .restaurant-name-row h3, .field-label, .tb-label{
    font-family:'Archivo Black',sans-serif; text-transform:uppercase;
  }
  .miles-count span{font-family:'Inter',sans-serif; text-transform:none;}

  /* ---- App shell ---- */
  #app{max-width:520px; margin:0 auto; min-height:100vh; background:var(--paper); position:relative; box-shadow:0 0 60px rgba(0,0,0,0.08); overflow:hidden;}

  header.topbar{
    background:#40DAFA; color:var(--ink); padding:18px 20px;
    display:flex; align-items:center; justify-content:space-between;
  }
  header.topbar .brand{display:flex; align-items:center; gap:10px;}
  header.topbar .brand-mark{
    width:38px; height:38px; border-radius:50%; border:2px solid var(--gold);
    display:flex; align-items:center; justify-content:center; font-size:16px;
    overflow:hidden; background:var(--teal); flex-shrink:0;
  }
  header.topbar .brand-mark img{width:100%; height:100%; object-fit:cover;}
  header.topbar .brand-text{font-family:'Archivo Black',sans-serif; font-size:16px; letter-spacing:0.5px; line-height:1.1;}
  header.topbar .slogan{font-family:'Space Mono',monospace; font-size:8.5px; color:#fff; letter-spacing:0.6px; margin-top:3px; line-height:1.3; max-width:200px;}
  .header-actions{display:flex; align-items:center; gap:14px;}
  .header-actions span{font-size:18px; cursor:pointer;}

  .screen{display:none; padding:22px 20px 100px; animation:fade .25s ease;}
  .screen.active{display:block;}
  @keyframes fade{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

  /* ---- Ticket / boarding pass motif ---- */
  .ticket{
    background:#fff; border-radius:10px; position:relative;
    box-shadow:0 8px 24px rgba(30,39,73,0.08);
    border:1px solid rgba(30,39,73,0.08);
  }
  .perforation{
    position:relative; height:0; border-top:2px dashed var(--paper-2); margin:0 14px;
  }
  .perforation::before, .perforation::after{
    content:""; position:absolute; top:-9px; width:18px; height:18px; background:var(--paper);
    border-radius:50%;
  }
  .perforation::before{left:-23px;}
  .perforation::after{right:-23px;}

  /* ---- Screen: Home ---- */
  .hero-eyebrow{font-family:'Space Mono',monospace; font-weight:700; font-size:11px; letter-spacing:2.5px; color:var(--stamp); margin-bottom:8px;}
  .hero-title{font-size:30px; line-height:1.1; margin-bottom:4px;}
  .hero-title-2{font-family:'Archivo Black',sans-serif; font-size:16px; color:var(--navy); text-transform:uppercase; margin-bottom:10px; opacity:.75;}
  .hero-sub{color:#5b5b66; font-size:14px; margin-bottom:24px; line-height:1.5;}

  .world-food-pile{position:relative; height:200px; margin:30px 0 26px;}
  .pile-item{
    position:absolute; width:38%; aspect-ratio:1/1; border-radius:18px;
    filter:drop-shadow(0 10px 16px rgba(20,40,50,.25));
    background:#fff; padding:8px; box-sizing:border-box; border:4px solid #fff;
  }

  .brand-tiles-strip{overflow:hidden; margin:20px 0 22px; -webkit-mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent); mask-image:linear-gradient(90deg, transparent, #000 24px, #000 calc(100% - 24px), transparent);}
  .brand-tiles-track{display:flex; gap:10px; width:max-content; animation:marqueeScroll 55s linear infinite;}
  .brand-tiles-strip:hover .brand-tiles-track{animation-play-state:paused;}
  @keyframes marqueeScroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
  .brand-tile{
    width:96px; height:96px; border-radius:10px; flex-shrink:0; display:flex; align-items:center;
    justify-content:center; overflow:hidden; cursor:pointer;
  }
  .brand-tile img{width:78%; height:78%; object-fit:contain;}

  .app-cta{padding:22px; margin:4px 0 26px; text-align:left;}
  .app-cta h3{font-family:'Archivo Black',sans-serif; font-size:19px; margin-bottom:9px; line-height:1.25; letter-spacing:.3px;}
  .notif-card{
    background:#fff; border-radius:14px; padding:14px 16px; box-shadow:0 6px 18px rgba(20,40,50,.12);
    margin-top:14px; border:1px solid var(--paper-2);
  }
  .notif-head{display:flex; align-items:center; gap:8px; margin-bottom:8px;}
  .notif-head img{width:22px; height:22px; border-radius:6px; object-fit:cover;}
  .notif-head .notif-brand{font-size:11px; letter-spacing:1px; color:#888; font-weight:700; flex:1;}
  .notif-head .notif-time{font-size:11px; color:#aaa;}
  .notif-title{font-weight:700; font-size:14px; margin-bottom:3px;}
  .notif-body{font-size:12.5px; color:#555; line-height:1.5;}
  .store-badges{display:flex; gap:10px; margin-top:16px; align-items:center;}
  .store-badge-img{height:40px; width:auto; border-radius:6px;}

  .site-footer{
    background:#40DAFA; color:var(--ink); margin:30px -20px -100px -20px; padding:28px 20px 100px;
    border-radius:16px 16px 0 0;
  }
  .footer-brand{display:flex; align-items:center; gap:10px; margin-bottom:18px;}
  .footer-brand img{width:36px; height:36px; border-radius:50%; border:2px solid var(--gold);}
  .footer-brand .ft-name{font-family:'Archivo Black',sans-serif; font-size:15px;}
  .footer-brand .ft-slogan{font-family:'Space Mono',monospace; font-size:8.5px; letter-spacing:.6px; opacity:.75;}
  .footer-cols{display:flex; gap:18px; margin-bottom:20px;}
  .footer-col h5{font-family:'Space Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; opacity:.7;}
  .footer-col a{display:block; font-size:12.5px; margin-bottom:8px; color:var(--ink); text-decoration:none; font-weight:600;}
  .footer-social{display:flex; gap:10px; margin-bottom:20px;}
  .footer-social span{
    width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.6); display:flex;
    align-items:center; justify-content:center; font-size:14px;
  }
  .footer-divider{border-top:1px solid rgba(0,0,0,.12); padding-top:14px;}
  .footer-legal{font-size:10.5px; opacity:.7; line-height:1.6;}
  .miles-top{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:14px;}
  .miles-count{font-family:'Space Mono',monospace; font-size:28px; font-weight:700; color:var(--navy);}
  .miles-count span{font-size:13px; font-weight:400; color:#777; display:block; margin-top:2px;}
  .miles-next{font-size:11px; color:var(--stamp); font-family:'Space Mono',monospace; text-align:right; max-width:120px; line-height:1.4;}
  .miles-bar-track{height:10px; background:var(--paper-2); border-radius:6px; overflow:hidden; margin-bottom:20px; position:relative;}
  .miles-bar-fill{height:100%; background:linear-gradient(90deg,var(--teal),var(--navy)); border-radius:6px; width:41%;}
  .stamp-row{display:flex; justify-content:space-between; gap:8px;}
  .stamp{
    flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; position:relative;
  }
  .stamp-circle{
    width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:22px; border:2px solid var(--teal); background:#EAFBFC; position:relative;
  }
  .stamp.locked .stamp-circle{border:2px dashed #ccc; background:#fafafa; filter:grayscale(1); opacity:.55;}
  .stamp-check{position:absolute; top:-3px; right:-3px; width:16px; height:16px; border-radius:50%; background:var(--teal); color:#fff; font-size:9px; display:flex; align-items:center; justify-content:center; border:2px solid #fff;}
  .stamp span{font-size:9.5px; font-weight:600; text-align:center;}
  .stamp.locked span{color:#aaa;}
  .miles-count-big{font-family:'Archivo Black',sans-serif; font-size:26px; color:var(--navy); text-align:center;}
  .miles-count-big span{display:block; font-family:'Inter',sans-serif; font-size:12px; font-weight:600; color:#888; text-transform:none; margin-top:2px;}
  .miles-caption{font-size:12px; color:#555; text-align:center; margin-top:6px; line-height:1.6;}
  .tier-label{font-family:'Space Mono',monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--navy); margin-bottom:12px; text-align:center;}

  .tier-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:18px 0 4px;}
  .tier-box{border:1.5px solid var(--paper-2); border-radius:10px; padding:14px 6px; text-align:center;}
  .tier-box.done{border-color:var(--teal); background:#EAFBFC;}
  .tier-box.current{border-color:var(--stamp); background:#FFF6F5;}
  .tb-icon{font-size:24px; position:relative; display:inline-block;}
  .tb-check{position:absolute; top:-4px; right:-10px; width:15px; height:15px; border-radius:50%; background:var(--teal); color:#fff; font-size:9px; display:flex; align-items:center; justify-content:center; border:2px solid #fff;}
  .tb-label{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:10.5px; margin-top:6px; color:var(--ink);}
  .tb-threshold{font-family:'Space Mono',monospace; font-size:10px; color:#888; margin-top:2px;}

  .reward-row{
    display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 16px;
    border-bottom:1px solid var(--paper-2); font-size:12px;
  }
  .reward-row > span:first-child{font-family:'Space Mono',monospace; font-size:11px; color:var(--navy); font-weight:700; flex-shrink:0; width:60px;}
  .reward-row > span:nth-child(2){flex:1; color:var(--ink);}
  .reward-status{font-family:'Space Mono',monospace; font-size:9.5px; font-weight:700; white-space:nowrap;}
  .reward-status.ok{color:var(--teal);}
  .reward-status.locked{color:#aaa;}
  .reward-row.unlocked{background:#EAFBFC;}

  .trip-card{
    background:#fff; border:1px solid var(--paper-2); border-radius:12px; padding:14px 16px; margin-bottom:10px;
  }
  .trip-top{display:flex; align-items:center; gap:12px; margin-bottom:8px;}
  .trip-top svg{flex-shrink:0; border-radius:5px; border:1px solid var(--paper-2);}
  .trip-name{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:13.5px; margin:0;}
  .trip-sub{font-family:'Space Mono',monospace; font-size:10.5px; color:#888; margin-top:2px;}
  .trip-pct{font-family:'Space Mono',monospace; font-size:11px; color:#aaa; font-weight:700;}
  .trip-bar-track{height:6px; background:var(--paper-2); border-radius:4px; overflow:hidden;}
  .trip-bar-fill{height:100%; background:linear-gradient(90deg,var(--teal),var(--navy)); border-radius:4px;}
  .trip-remaining{font-size:11px; color:#888; margin-top:6px;}
  .trip-remaining.ok{color:var(--teal); font-weight:700;}
  .trip-pct.ok{color:var(--teal); font-weight:700; font-size:14px;}
  .reward-icon{
    width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:18px; flex-shrink:0;
  }
  .reasons-track{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:0; border-radius:10px; -webkit-overflow-scrolling:touch;}
  .reasons-track::-webkit-scrollbar{display:none;}
  .reason-slide{
    min-width:100%; scroll-snap-align:start; border-radius:10px; padding:28px 22px; color:#fff;
    display:flex; flex-direction:column; justify-content:center; min-height:170px;
  }
  .why-head{text-align:center; margin:26px 0 12px;}
  .why-head .wh-k{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:#E8590C; font-weight:700;}
  .why-head .wh-t{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:900; font-size:40px; line-height:1.02; letter-spacing:-1px; color:var(--navy); margin-top:4px;}
  .why-head .wh-t em{color:#E8590C; font-style:italic;}
  .reason-slide{position:relative; overflow:hidden; border-radius:20px; padding:26px 22px 24px !important; min-height:230px;}
  .reason-slide::after{content:attr(data-n); position:absolute; right:10px; bottom:-26px; font-family:'Archivo Black',sans-serif; font-size:140px; line-height:1; color:#fff; opacity:.1;}
  .reason-slide .reason-icon{font-size:40px; margin-bottom:12px; width:66px; height:66px; border-radius:50%; background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center;}
  .reason-slide h4{font-family:'Fraunces',Georgia,serif !important; font-style:italic; font-weight:900; font-size:28px !important; line-height:1.08 !important; letter-spacing:-.5px; margin-bottom:10px !important; text-transform:none !important;}
  .reason-slide p{font-size:14.5px !important; line-height:1.5 !important; opacity:.95; position:relative; z-index:1; max-width:92%;}
  .reason-slide .reason-chip{display:inline-block; margin-top:14px; padding:6px 12px; border-radius:20px; background:#FDC134; color:#1B3A3E; font-family:'Space Mono',monospace; font-size:10.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; position:relative; z-index:1;}
  .reasons-dots{display:flex; justify-content:center; gap:6px; margin-top:12px;}
  .reasons-dots .promo-dot{width:6px; height:6px; border-radius:50%; background:var(--paper-2); transition:all .2s;}
  .reasons-dots .promo-dot.active{background:var(--stamp); width:18px; border-radius:3px;}

  .address-card{padding:20px;}
  .field-label{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:0.8px; color:var(--navy); text-transform:uppercase; display:block; margin-bottom:8px;}
  .field-row{position:relative;}
  input[type=text]{
    width:100%; padding:14px 14px; border:2px solid var(--navy); border-radius:6px;
    font-family:'Inter',sans-serif; font-size:15px; background:var(--paper);
  }
  input[type=text]:focus{outline:none; border-color:var(--stamp);}
  .suggestions{
    position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff;
    border:1px solid var(--paper-2); border-radius:6px; box-shadow:0 6px 18px rgba(0,0,0,.1);
    z-index:5; max-height:220px; overflow-y:auto; display:none;
  }
  .suggestions.show{display:block;}
  .suggestion-item{padding:11px 14px; font-size:13px; cursor:pointer; border-bottom:1px solid var(--paper-2);}
  .suggestion-item:last-child{border-bottom:none;}
  .suggestion-item:hover{background:var(--paper);}
  .suggestion-hint{font-size:11px; color:#999; padding:8px 14px;}

  .btn{
    display:inline-block; background:var(--stamp); color:#fff; border:none; padding:14px 20px;
    border-radius:6px; font-family:'Space Mono',monospace; font-weight:700; font-size:13px;
    letter-spacing:1px; text-transform:uppercase; cursor:pointer; width:100%; text-align:center;
    transition:transform .1s ease;
  }
  .btn:active{transform:scale(.98);}
  .btn.secondary{background:transparent; color:var(--navy); border:2px solid var(--navy);}
  .btn.ghost{background:transparent; color:var(--stamp); border:none; text-decoration:underline; padding:6px 0;}

  .concepts-strip{display:flex; gap:16px; margin-top:26px; overflow-x:auto; padding-bottom:6px;}
  .concept-item{flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:6px; width:64px;}
  .concept-circle{width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; border:1px solid var(--paper-2);}
  .concept-item span{font-size:10.5px; text-align:center; font-weight:600; line-height:1.2;}

  /* ---- Screen: List ---- */
  .depart-strip{
    background:var(--navy); color:var(--paper); border-radius:8px; padding:12px 16px;
    display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; font-size:12px;
  }
  .depart-strip .mono{color:var(--gold);}
  .depart-strip button{background:none; border:none; color:var(--paper); text-decoration:underline; font-size:11px; cursor:pointer;}

  .restaurant-card{
    margin-bottom:18px; overflow:hidden; cursor:pointer; padding:0;
    display:block;
  }
  .restaurant-banner{
    width:100%; height:130px; position:relative; display:flex; align-items:center; justify-content:center;
  }
  .restaurant-banner img{width:92px; height:92px; object-fit:contain; border-radius:50%; background:#fff; padding:6px;}
  .fav-heart{position:absolute; top:10px; right:10px; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.85); display:flex; align-items:center; justify-content:center; font-size:13px;}
  .boost-badge{
    position:absolute; top:10px; left:10px; background:var(--stamp); color:#fff; font-family:'Space Mono',monospace;
    font-size:10px; font-weight:700; padding:4px 9px; border-radius:12px; display:flex; align-items:center; gap:4px;
    box-shadow:0 3px 8px rgba(214,69,69,.35);
  }
  .boost-badge.gold{background:linear-gradient(135deg,#FDC134,#C9A227);}
  .km-explainer{
    background:#FFF0EF; border:1px solid #F6C6C3; color:var(--stamp); font-size:11.5px; line-height:1.5;
    padding:10px 14px; border-radius:8px; margin-bottom:16px;
  }
  .km-explainer strong{font-weight:700;}
  .restaurant-body{padding:10px 14px 14px;}
  .restaurant-name-row{display:flex; align-items:center; justify-content:space-between;}
  .restaurant-name-row h3{font-family:'Archivo Black',sans-serif; font-size:14.5px;}
  .restaurant-tag-small{font-family:'Space Mono',monospace; font-size:9.5px; background:var(--paper); border:1px solid var(--paper-2); padding:2px 6px; border-radius:4px; color:var(--navy); display:inline-block; margin:4px 0;}
  .restaurant-meta{display:flex; justify-content:space-between; font-size:12px; color:#5b5b66; margin-top:4px;}
  .status-open{color:var(--teal); font-weight:700;}
  .status-closed{color:var(--stamp); font-weight:700;}
  .darkkitchen-note{font-size:11px; color:#666; margin-top:6px; font-weight:600;}

  /* ---- Screen: Menu ---- */
  .rest-header{border-radius:10px; padding:20px 16px; color:#fff; position:relative; margin-bottom:18px; background-size:cover; background-position:center; overflow:hidden;}
  .rest-header::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,20,25,.35), rgba(10,20,25,.75)); z-index:0;}
  .rest-header > *{position:relative; z-index:1;}
  .rest-header .back{position:absolute; top:14px; left:14px; color:#fff; cursor:pointer; font-size:18px; z-index:2;}
  .rest-header h2{font-family:'Archivo Black',sans-serif; font-size:22px; margin-top:22px;}
  .rest-header .info{font-family:'Space Mono',monospace; font-size:11px; margin-top:6px; opacity:.9;}
  .cover-edit-hint{
    position:absolute; bottom:10px; right:10px; background:rgba(255,255,255,.9); color:var(--ink);
    font-family:'Space Mono',monospace; font-size:9px; padding:4px 8px; border-radius:12px; z-index:2;
  }

  .lock-banner{
    background:#fff8e6; border:1px solid var(--gold); border-radius:6px; padding:10px 12px;
    font-size:11.5px; color:#7a5f00; margin-bottom:16px; display:none;
  }
  .lock-banner.show{display:block;}

  .menu-item{display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--paper-2); gap:10px;}
  .menu-item-img{width:64px; height:64px; border-radius:8px; object-fit:cover; flex-shrink:0; background:var(--paper-2);}
  .menu-item-img.placeholder{display:flex; align-items:center; justify-content:center; font-size:24px; color:#aaa; border:1.5px dashed var(--paper-2);}
  .menu-item-info{flex:1; min-width:0;}
  .menu-item-info h4{font-size:14.5px; margin-bottom:3px;}
  .menu-item-info p{font-size:12px; color:#777; max-width:230px;}
  .menu-item-price{font-family:'Space Mono',monospace; font-size:13px; font-weight:700; margin-right:10px; white-space:nowrap;}
  .add-btn{
    width:30px; height:30px; border-radius:50%; background:var(--navy); color:#fff; border:none;
    font-size:16px; cursor:pointer; flex-shrink:0;
  }

  .cart-fab{
    position:absolute; bottom:20px; left:20px; right:20px; background:var(--stamp); color:#fff;
    border-radius:8px; padding:14px 18px; display:none; align-items:center; justify-content:space-between;
    cursor:pointer; box-shadow:0 8px 20px rgba(214,69,69,.35); z-index:20;
  }
  .cart-fab.show{display:flex;}

  /* ---- Screen: Cart ---- */
  .cart-line{display:flex; justify-content:space-between; padding:10px 0; font-size:13.5px;}
  .cart-line .qty{font-family:'Space Mono',monospace; color:var(--navy); margin-right:8px;}
  .cart-total-row{display:flex; justify-content:space-between; padding:14px 0 4px; font-weight:700; font-size:15px;}

  .prep-badge{
    display:flex; align-items:center; gap:10px; background:var(--teal); color:#fff; border-radius:8px;
    padding:12px 14px; margin:16px 0; font-size:12.5px;
  }
  .prep-badge .num{font-family:'Space Mono',monospace; font-size:20px; font-weight:700;}

  .pay-option{
    display:flex; align-items:center; gap:10px; border:2px solid var(--paper-2); border-radius:8px;
    padding:12px 14px; margin-bottom:10px; cursor:pointer; font-size:13.5px;
  }
  .pay-option.selected{border-color:var(--navy); background:#fff;}
  .mollie-logo{font-family:'Archivo Black',sans-serif; font-size:13px; color:#000;}

  .schedule-row{display:flex; gap:8px; margin-bottom:10px;}
  .schedule-option{
    flex:1; text-align:center; padding:11px; border:2px solid var(--paper-2); border-radius:8px; font-size:12.5px;
    font-weight:600; cursor:pointer;
  }
  .schedule-option.selected{border-color:var(--navy); background:#fff; color:var(--navy);}
  .schedule-picker{padding:16px 18px; margin-bottom:6px;}
  .schedule-picker input{width:100%; padding:11px; border:1.5px solid var(--paper-2); border-radius:6px; font-family:'Space Mono',monospace; font-size:14px;}

  .promo-row{display:flex; gap:8px; margin-bottom:8px;}
  .promo-row input{flex:1; padding:12px 14px; border:2px solid var(--paper-2); border-radius:6px; font-size:13px;}
  .promo-applied{background:#EAFBFC; color:var(--teal); font-size:12px; font-weight:700; padding:10px 14px; border-radius:8px; margin-bottom:6px;}

  .tip-row{display:flex; gap:8px; margin-bottom:6px;}
  .tip-option{
    flex:1; text-align:center; padding:11px 4px; border:2px solid var(--paper-2); border-radius:8px; font-size:12.5px;
    font-weight:700; cursor:pointer; font-family:'Space Mono',monospace;
  }
  .tip-option.selected{border-color:var(--stamp); background:#FFF6F5; color:var(--stamp);}

  /* ---- Screen: Tracking ---- */
  .boarding-pass{padding:0; overflow:hidden;}
  .bp-top{padding:18px; display:flex; justify-content:space-between; align-items:center;}
  .bp-route{font-family:'Archivo Black',sans-serif; font-size:15px;}
  .bp-code{font-family:'Space Mono',monospace; font-size:11px; color:var(--stamp);}
  .bp-bottom{padding:18px;}
  .timeline{position:relative; margin:20px 0 6px; padding-left:6px;}
  .tl-step{display:flex; gap:14px; margin-bottom:22px; position:relative;}
  .tl-dot{width:20px; height:20px; border-radius:50%; border:3px solid var(--paper-2); background:#fff; flex-shrink:0; z-index:2;}
  .tl-step.done .tl-dot{background:var(--teal); border-color:var(--teal);}
  .tl-step.current .tl-dot{background:var(--stamp); border-color:var(--stamp); box-shadow:0 0 0 4px rgba(214,69,69,.2);}
  .tl-line{position:absolute; left:9px; top:20px; width:2px; height:100%; background:var(--paper-2);}
  .tl-step.done .tl-line{background:var(--teal);}
  .tl-title{font-size:13.5px; font-weight:700;}
  .tl-sub{font-size:11.5px; color:#888; font-family:'Space Mono',monospace; margin-top:2px;}
  .barcode{height:36px; background:repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 5px); margin:16px 14px 4px; border-radius:2px;}

  /* ---- Screen: Reviews ---- */
  .review-card{padding:14px; margin-bottom:12px;}
  .review-head{display:flex; justify-content:space-between; font-size:12.5px; margin-bottom:6px;}
  .stars{color:var(--gold); font-size:13px;}
  .star-picker{margin-top:10px; font-size:26px; letter-spacing:4px;}
  .star-picker span{color:var(--paper-2); cursor:pointer;}
  .star-picker span.active{color:var(--gold);}
  .icon-btn-sm{width:30px; height:30px; border-radius:6px; border:1.5px solid var(--paper-2); background:#fff; cursor:pointer; font-size:12px; flex-shrink:0;}
  .report-options{display:flex; flex-wrap:wrap; gap:8px;}
  .report-opt{
    padding:9px 13px; border:1.5px solid var(--paper-2); border-radius:20px; font-size:12px; font-weight:600; cursor:pointer;
  }
  .report-opt.selected{border-color:var(--stamp); background:#FFF6F5; color:var(--stamp);}
  .review-badge{font-family:'Space Mono',monospace; font-size:9.5px; background:var(--teal); color:#fff; padding:2px 6px; border-radius:4px; margin-left:6px;}
  .review-text{font-size:13px; color:#444; line-height:1.5;}

  /* ---- Nav dev (fake device nav to move between prototype screens) ---- */
  .devnav{
    position:fixed; bottom:0; left:0; right:0; background:var(--navy); z-index:50;
    display:flex; justify-content:center; padding:8px 0;
  }
  .devnav-inner{max-width:520px; width:100%; display:flex; gap:6px; padding:0 12px; overflow-x:auto;}
  .devnav button{
    background:transparent; border:1px solid rgba(245,239,225,.3); color:var(--paper); font-size:10px;
    padding:6px 9px; border-radius:14px; cursor:pointer; white-space:nowrap; font-family:'Space Mono',monospace;
  }
  .devnav button.active{background:var(--stamp); border-color:var(--stamp);}

  section-title{display:block;}

  /* Passeport / boarding pass : km cumulés (notre différenciation) */
  .pp{position:relative; margin:0 0 20px; border-radius:22px; background:linear-gradient(165deg,#12303A 0%,#0A1F27 100%); color:#fff; overflow:hidden; box-shadow:0 14px 32px rgba(10,31,39,.35);}
  .pp-top{display:flex; justify-content:space-between; align-items:center; padding:14px 18px; background:linear-gradient(90deg,#FDC134,#F6A800); color:#1B3A3E;}
  .pp-brand{font-family:'Archivo Black',sans-serif; font-size:14px; letter-spacing:1px;}
  .pp-tag{font-family:'Space Mono',monospace; font-size:9.5px; font-weight:700; letter-spacing:1.4px;}
  .pp-main{padding:20px 20px 18px; text-align:center;}
  .pp-lbl{font-family:'Space Mono',monospace; font-size:11px; letter-spacing:2px; text-transform:uppercase; opacity:.7;}
  .pp-km{font-family:'Archivo Black',sans-serif; font-size:66px; line-height:1; margin:6px 0 2px; color:#FDC134; letter-spacing:-1px; text-shadow:0 3px 0 rgba(0,0,0,.25);}
  .pp-km small{font-size:26px; margin-left:8px; color:#fff; letter-spacing:0;}
  .pp-track{position:relative; height:12px; background:rgba(255,255,255,.14); border-radius:8px; margin:22px 4px 14px;}
  .pp-fill{height:100%; border-radius:8px; background:linear-gradient(90deg,#51D0DC,#FDC134);}
  .pp-plane{position:absolute; top:50%; font-size:26px; transform:translate(-50%,-52%) rotate(0deg); filter:drop-shadow(0 2px 3px rgba(0,0,0,.4));}
  .pp-next{font-size:13.5px; line-height:1.45; opacity:.95;}
  .pp-next b{color:#FDC134;}
  .pp-perf{position:relative; display:flex; align-items:center; height:22px;}
  .pp-perf span{flex:1; border-top:2px dashed rgba(255,255,255,.25); margin:0 6px;}
  .pp-perf i{width:22px; height:22px; border-radius:50%; background:var(--paper,#fff); flex:0 0 auto;}
  .pp-perf i:first-child{margin-left:-11px;} .pp-perf i:last-child{margin-right:-11px;}
  .pp-stops{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; padding:14px 12px 8px;}
  .pp-stop{text-align:center; opacity:.55; position:relative;}
  .pp-stop.done,.pp-stop.cur{opacity:1;}
  .pp-dot{width:22px; height:22px; margin:0 auto 6px; border-radius:50%; background:rgba(255,255,255,.15); font-size:10px; display:flex; align-items:center; justify-content:center;}
  .pp-stop.done .pp-dot{background:#51D0DC; color:#0A1F27; font-weight:700;}
  .pp-stop.cur .pp-dot{background:#FDC134; color:#0A1F27; box-shadow:0 0 0 5px rgba(253,193,52,.25);}
  .pp-ic{font-size:26px;}
  .pp-sl{font-family:'Archivo Black',sans-serif; font-size:10px; text-transform:uppercase; margin-top:4px; line-height:1.15;}
  .pp-st{font-family:'Space Mono',monospace; font-size:9.5px; opacity:.75; margin-top:2px;}
  .pp-stop.grand .pp-sl{color:#FDC134;}
  .pp-code{height:34px; margin:10px 18px 16px; border-radius:3px; opacity:.5; background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 4px,#fff 4px 5px,transparent 5px 9px,#fff 9px 12px,transparent 12px 14px);}
  @media (max-width:380px){ .pp-km{font-size:54px;} .pp-sl{font-size:9px;} }
  /* Bloc héros « Commandez · Accumulez · Voyagez » — notre fond de commerce */
  .journey{margin:10px 0 18px; padding:22px 18px 20px; border-radius:20px; background:linear-gradient(160deg,#0E7C8C 0%,#0A5C68 100%); color:#fff; position:relative; overflow:hidden; box-shadow:0 10px 26px rgba(14,124,140,.28);}
  .journey::after{content:'✈'; position:absolute; right:-14px; top:-18px; font-size:120px; opacity:.09; transform:rotate(12deg);}
  .journey .j-step{display:flex; align-items:center; gap:14px; padding:8px 0; position:relative; z-index:1;}
  .journey .j-step + .j-step{border-top:2px dashed rgba(255,255,255,.28);}
  .journey .j-n{flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:#FDC134; color:#0A5C68; display:flex; align-items:center; justify-content:center; font-family:'Archivo Black',sans-serif; font-size:24px; box-shadow:0 3px 0 rgba(0,0,0,.18);}
  .journey .j-w{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:900; font-size:44px; line-height:1; letter-spacing:-1px; text-shadow:0 2px 0 rgba(0,0,0,.15);}
  .journey .j-d{font-family:'Inter',sans-serif; font-size:13.5px; font-weight:500; opacity:.92; margin-top:4px; line-height:1.25;}
  .journey .j-i{margin-left:auto; font-size:34px;}
  @media (max-width:380px){ .journey .j-w{font-size:36px;} .journey .j-n{width:40px; height:40px; font-size:20px;} }
  .section-title{font-family:'Archivo Black',sans-serif; font-size:16px; letter-spacing:.3px; text-transform:uppercase; color:var(--navy); opacity:.85; margin:22px 0 10px;}
  .opt-overlay{position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; align-items:flex-end; justify-content:center; z-index:9999;}
  .opt-overlay.show{display:flex;}
  .opt-sheet{background:#fff; width:100%; max-width:480px; max-height:85vh; overflow:auto; border-radius:18px 18px 0 0; padding:18px;}
  .opt-sheet h3{font-family:'Archivo Black',sans-serif; text-transform:uppercase; font-size:17px; margin-bottom:4px;}
  .opt-group{margin-top:14px;} .opt-group h5{font-family:'Space Mono',monospace; font-size:11px; text-transform:uppercase; margin-bottom:6px;}
  .opt-row{display:flex; justify-content:space-between; gap:10px; padding:6px 0; font-size:13px; border-bottom:1px solid #eee;}
  .opt-row label{display:flex; gap:8px; align-items:center; flex:1; cursor:pointer;}
  .opt-add{margin-top:16px; width:100%; background:#E00C01; color:#fff; border:none; padding:14px; border-radius:10px; font-family:'Space Mono',monospace; font-weight:700; cursor:pointer;}
  .opt-cancel{margin-top:8px; width:100%; background:#fff; border:1.5px solid #1B3A3E; padding:10px; border-radius:10px; cursor:pointer;}
  .restaurant-banner img.rb-cover{width:100%; height:100%; border-radius:0; background:none; padding:0; object-fit:cover; object-position:center;}
  .rest-header.has-banner{aspect-ratio:2/1; padding:0; display:block !important; background-size:cover; background-position:center; border-radius:10px 10px 0 0; margin-bottom:0;}
  .rest-header.has-banner > div:not(.boost-badge):not(.cover-edit-hint), .rest-header.has-banner #menu-logo{display:none !important;}
  .rest-header.has-banner .boost-badge{position:absolute !important; top:12px !important; right:12px !important; left:auto !important; width:auto !important; z-index:3;}
  .rest-header.has-banner::before,.rest-header.has-banner::after{display:none !important;}
  #menu-infobar{display:none; align-items:center; gap:12px; padding:12px 14px; margin-bottom:18px; border:1px solid #e4e9ea; border-top:none; border-radius:0 0 10px 10px; background:#fff;}
  #menu-infobar.show{display:flex;}
  #menu-infobar img{width:46px; height:46px; border-radius:50%; object-fit:cover;}
  #menu-infobar .ib-t{font-family:'Archivo Black',sans-serif; font-size:16px; text-transform:uppercase; color:#1B3A3E;}
  #menu-infobar .ib-i{font-family:'Space Mono',monospace; font-size:10.5px; color:#555; margin-top:2px;}
  .menu-item-price.tbd{font-size:10px;color:#999;font-style:italic;white-space:nowrap;}
  .add-btn[disabled]{opacity:.3;cursor:not-allowed;}
  .opt-add[disabled]{opacity:.45;cursor:not-allowed;}
  .opt-hint{font-size:11px;color:#b3261e;margin:2px 0 6px;min-height:0;}

  /* ===== REFONTE « point de départ » + liste des restaurants (retour possible : demander de remettre comme avant) ===== */
  #screen-home .hero-title{font-family:'Fraunces',Georgia,serif !important; font-style:italic; font-weight:900; font-size:44px; line-height:1.02; letter-spacing:-1.2px; text-transform:none !important; color:var(--navy); margin:4px 0 14px;}
  #screen-home .hero-title em{color:#E8590C; font-style:italic;}
  #screen-home .hero-title .ht-k{display:block; font-family:'Space Mono',monospace; font-style:normal; font-weight:700; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:#E8590C; margin-bottom:8px;}
  #screen-home .hero-title-2{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink); opacity:1; margin-bottom:12px;}
  .route-dot{width:10px; height:10px; border-radius:50%; background:var(--navy); flex:0 0 auto; box-shadow:0 0 0 4px rgba(14,124,140,.18);}
  .route-line{width:38px; border-top:3px dotted #FDC134; flex:0 0 auto;}
  #screen-home .hero-sub{font-size:15px; color:#44505a;}
  #screen-home .address-card{border-radius:20px; padding:22px 20px; box-shadow:0 12px 28px rgba(14,124,140,.16); border:2px solid #51D0DC55;}
  #screen-home .address-card input{font-size:16px; padding:15px 14px; border-radius:12px;}
  /* liste */
  .depart-strip{border-radius:999px; padding:12px 18px; background:linear-gradient(90deg,#0E7C8C,#0A5C68); box-shadow:0 6px 16px rgba(14,124,140,.28); font-size:13px;}
  .depart-strip button{background:#FDC134; color:#1B3A3E; text-decoration:none; font-weight:700; padding:6px 12px; border-radius:999px; font-size:11.5px;}
  .concept-item{width:72px;}
  .concept-circle{width:64px; height:64px; font-size:30px; border:2px solid #fff; box-shadow:0 5px 12px rgba(0,0,0,.12); transition:transform .15s;}
  .concept-item:hover .concept-circle{transform:translateY(-3px) scale(1.05);}
  .concept-item span{font-size:11px; font-weight:700;}
  .screen#screen-list .section-title{font-family:'Fraunces',Georgia,serif !important; font-style:italic; font-weight:900 !important; font-size:27px; line-height:1.1; text-transform:none; letter-spacing:-.6px; opacity:1; color:var(--navy); margin:20px 0 10px;}
  .km-explainer{background:linear-gradient(90deg,#FFF3D1,#FFE9A8); border:none; border-left:5px solid #FDC134; color:#5a4300; border-radius:12px; font-size:12.5px; padding:12px 14px;}
  .km-explainer strong{color:#B8400A;}
  .restaurant-card{border-radius:20px; box-shadow:0 10px 26px rgba(10,31,39,.14); margin-bottom:22px; transition:transform .15s, box-shadow .15s;}
  .restaurant-card:hover{transform:translateY(-3px); box-shadow:0 16px 34px rgba(10,31,39,.2);}
  .restaurant-body{padding:14px 16px 16px;}
  .restaurant-name-row h3{font-size:18px; line-height:1.15;}
  .restaurant-name-row > span{background:#FDC134; color:#1B3A3E; font-weight:700; font-size:12px; padding:3px 9px; border-radius:999px;}
  .restaurant-tag-small{font-size:11px; background:#EAFBFC; border-color:#51D0DC; padding:3px 9px; border-radius:999px; margin:6px 0 4px;}
  .restaurant-meta{font-size:12.5px; align-items:center;}
  .status-open{background:#E6F6EC; color:#1F7A44; padding:3px 9px; border-radius:999px; font-size:11.5px;}
  .darkkitchen-note{display:inline-block; background:#F2F6F6; padding:5px 10px; border-radius:999px; font-size:11.5px; margin-top:10px;}
  .boost-badge{font-size:11px; padding:6px 11px; border-radius:999px;}

  /* Carrousel « Pourquoi Worldsfoods » : on voit un bout de la carte suivante, flèches, glisser à la souris */
  .reasons-carousel{position:relative;}
  .reasons-track{gap:12px !important; scroll-padding-left:0; cursor:grab; user-select:none; -webkit-user-select:none; padding-bottom:4px;}
  .reasons-track.dragging{cursor:grabbing; scroll-snap-type:none !important;}
  .reasons-track .reason-slide{min-width:86% !important; scroll-snap-align:start;}
  .reasons-track .reason-slide:last-child{margin-right:0;}
  .rc-arrow{position:absolute; top:42%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:none; background:#fff; color:#1B3A3E; font-size:20px; font-weight:700; box-shadow:0 4px 12px rgba(0,0,0,.28); cursor:pointer; z-index:5; display:flex; align-items:center; justify-content:center; transition:opacity .2s, transform .1s;}
  .rc-arrow:active{transform:translateY(-50%) scale(.92);}
  .rc-arrow.prev{left:-6px;} .rc-arrow.next{right:-6px;}
  .rc-arrow[disabled]{opacity:0; pointer-events:none;}
  .reasons-dots .promo-dot{cursor:pointer; width:8px !important; height:8px !important;}
  .reasons-dots .promo-dot.active{width:26px !important;}
  .rc-hint{text-align:center; font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:1.5px; text-transform:uppercase; color:#8a99a0; margin-top:8px;}

  /* ===== REFONTE section KM POINTS (retour possible : demander de remettre comme avant) ===== */
  #screen-km-points .km-hero-k{font-family:'Space Mono',monospace; font-weight:700; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:#E8590C; margin-bottom:6px;}
  #screen-km-points .km-hero-t{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:900; font-size:38px; line-height:1.03; letter-spacing:-1px; color:var(--navy);}
  #screen-km-points .km-hero-t em{color:#E8590C;}
  #screen-km-points .km-hero-s{font-size:14.5px; color:#44505a; margin:8px 0 16px; line-height:1.5;}
  .km-sec{display:flex; align-items:center; gap:12px; margin:26px 0 12px;}
  .km-sec-ic{width:48px; height:48px; border-radius:14px; background:#FDC134; display:flex; align-items:center; justify-content:center; font-size:24px; box-shadow:0 5px 12px rgba(253,193,52,.45);}
  .km-sec-t{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:900; font-size:27px; line-height:1.05; letter-spacing:-.6px; color:var(--navy);}
  .km-sec-d{font-size:12px; color:#6a7780; margin-top:2px;}
  .km-sec.grail .km-sec-ic{background:linear-gradient(135deg,#0E7C8C,#0A1F27); box-shadow:0 5px 12px rgba(14,124,140,.4);}
  #screen-km-points .trip-card{border-radius:18px; padding:16px 16px 14px; box-shadow:0 6px 18px rgba(10,31,39,.1); border:1.5px solid #E6ECEE; background:#fff; margin-bottom:12px;}
  #screen-km-points .trip-name{font-size:14.5px;}
  #screen-km-points .trip-sub{font-size:11px;}
  #screen-km-points .trip-bar-track{height:10px; border-radius:6px; background:#EDF1F2;}
  #screen-km-points .trip-bar-fill{background:linear-gradient(90deg,#51D0DC,#FDC134); border-radius:6px;}
  #screen-km-points .trip-pct{background:#F2F6F6; padding:4px 10px; border-radius:999px; color:#44505a;}
  #screen-km-points .trip-remaining{font-size:12px; font-weight:600; color:#6a7780;}
  #screen-km-points .reward-icon{width:46px; height:46px; font-size:22px; border-radius:14px;}
  #screen-km-points .trip-card.done{background:linear-gradient(135deg,#F1FBFC,#fff); border-color:#51D0DC;}
  #screen-km-points .trip-card.done .trip-pct.ok{background:#51D0DC; color:#0A1F27; width:30px; height:30px; padding:0; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:15px;}
  #screen-km-points .trip-card.done .trip-bar-fill{background:#51D0DC;}
  #screen-km-points .trip-card.voyage{background:linear-gradient(150deg,#12303A,#0A1F27); border:none; color:#fff; box-shadow:0 10px 24px rgba(10,31,39,.3);}
  #screen-km-points .trip-card.voyage .trip-name{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:900; font-size:24px; text-transform:none; letter-spacing:-.4px;}
  #screen-km-points .trip-card.voyage .trip-sub{color:#FDC134; font-size:11.5px;}
  #screen-km-points .trip-card.voyage .trip-top svg{width:58px; height:40px; border-radius:7px; border:2px solid rgba(255,255,255,.4);}
  #screen-km-points .trip-card.voyage .trip-pct{background:rgba(255,255,255,.14); color:#fff;}
  #screen-km-points .trip-card.voyage .trip-bar-track{background:rgba(255,255,255,.16);}
  #screen-km-points .trip-card.voyage .trip-remaining{color:rgba(255,255,255,.75);}

  /* ===== REFONTE écran SUIVI ===== */
  #screen-tracking .hero-eyebrow{color:#E8590C;}
  #screen-tracking .hero-title{font-family:'Fraunces',Georgia,serif !important; font-style:italic; font-weight:900; font-size:34px !important; line-height:1.05; letter-spacing:-.8px; text-transform:none !important; color:var(--navy); margin-bottom:14px !important;}
  #screen-tracking #tracking-map{border-radius:20px !important; height:240px !important; box-shadow:0 10px 26px rgba(14,124,140,.22); border:3px solid #fff; overflow:hidden;}
  #screen-tracking .boarding-pass{border-radius:22px; overflow:hidden; box-shadow:0 14px 32px rgba(10,31,39,.2); border:none;}
  #screen-tracking .boarding-pass .bp-top{background:linear-gradient(135deg,#0E7C8C,#0A5C68) !important; padding:18px 20px; gap:12px;}
  #screen-tracking .bp-route{font-size:16px; letter-spacing:.3px;}
  #screen-tracking .bp-code{background:#FDC134; color:#1B3A3E; font-weight:700; font-size:11.5px; padding:6px 11px; border-radius:999px; white-space:nowrap;}
  #screen-tracking .bp-bottom{padding:22px 20px 8px;}
  #screen-tracking .timeline{margin:4px 0 0; padding-left:0;}
  #screen-tracking .tl-step{gap:16px; margin-bottom:26px;}
  #screen-tracking .tl-dot{width:24px; height:24px; border-width:4px;}
  #screen-tracking .tl-line{left:11px; top:24px; width:3px; border-radius:2px;}
  #screen-tracking .tl-step.current .tl-dot{background:#FDC134; border-color:#FDC134; box-shadow:0 0 0 6px rgba(253,193,52,.3); animation:trkPulse 1.6s ease-in-out infinite;}
  #screen-tracking .tl-title{font-size:16px; font-weight:800; color:var(--ink);}
  #screen-tracking .tl-step.current .tl-title{color:#B8400A;}
  #screen-tracking .tl-step:not(.done):not(.current) .tl-title{color:#9aa7ad;}
  #screen-tracking .tl-sub{font-size:12px; line-height:1.35;}
  #screen-tracking .barcode{margin:6px 20px 18px; opacity:.55;}
  #screen-tracking .btn.secondary{border-radius:14px;}
  @keyframes trkPulse{0%,100%{box-shadow:0 0 0 4px rgba(253,193,52,.35);}50%{box-shadow:0 0 0 10px rgba(253,193,52,.08);}}
  .trk-wrap{position:relative;}
  #screen-tracking #tracking-map{margin-bottom:16px;}
  .trk-eta{position:absolute; left:12px; bottom:28px; display:flex; align-items:center; gap:10px; background:#fff; border-radius:14px; padding:9px 14px 9px 10px; box-shadow:0 6px 16px rgba(0,0,0,.2); z-index:500;}
  .trk-eta .trk-ico{width:38px; height:38px; border-radius:50%; background:#FDC134; display:flex; align-items:center; justify-content:center; font-size:20px;}
  .trk-eta b{display:block; font-size:13.5px; color:#1B3A3E;} .trk-eta small{display:block; font-size:11.5px; color:#6a7780; margin-top:1px;}
  /* Menu : la bannière du restaurant reste en haut, elle se réduit quand on fait défiler */
  #menu-top{position:sticky; top:0; z-index:40; background:var(--paper); margin:0 -20px 14px; padding:0 20px 10px; box-shadow:0 0 0 rgba(0,0,0,0); transition:box-shadow .2s;}
  #menu-top #menu-infobar{margin-bottom:0;}
  #menu-top .rest-header{margin-bottom:0;}
  #menu-top #menu-header.has-banner{transition:height .25s ease;}
  #menu-top.compact{box-shadow:0 8px 18px rgba(10,31,39,.18);}
  #menu-top.compact #menu-header.has-banner{aspect-ratio:auto !important; height:78px;}
  #menu-top.compact #menu-infobar{padding:8px 14px;}
  #menu-top.compact #menu-infobar img{width:34px; height:34px;}
  #menu-top.compact .ib-i{display:none;}

  /* ===== confiance / compte / 1 acheté = 1 offert ===== */
  .secure-strip{display:flex;gap:10px;align-items:center;background:#ECF8F0;border:1px solid #BFE5CC;border-radius:12px;padding:11px 14px;margin:6px 0 14px}
  .secure-strip>span{font-size:22px}.secure-strip b{display:block;font-size:13.5px;color:#14653A}.secure-strip small{font-size:11.5px;color:#3D6B52;line-height:1.35;display:block}
  .acct-box{padding:16px 18px;margin-bottom:14px}
  .acct-box .ah{display:flex;align-items:center;gap:10px;font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:13px;margin-bottom:6px;color:var(--navy)}
  .acct-box .step-n{width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;font-family:Inter,sans-serif}
  .acct-box .sub{font-size:12.5px;color:#666;margin-bottom:12px;line-height:1.45}
  .acct-ok{background:#ECF8F0;border-radius:8px;padding:11px 13px;font-size:13.5px;color:#14653A}.acct-ok a{margin-left:8px;font-size:12px;color:var(--teal);text-decoration:underline}
  .soc{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:999px;padding:12px;font-size:13.5px;font-weight:700;margin-bottom:8px;border:1.5px solid #C9D3D5;background:#fff;color:var(--ink);cursor:pointer;font-family:'Inter',sans-serif}
  .soc.fb{background:#1877F2;color:#fff;border-color:#1877F2}.soc.ap{background:#000;color:#fff;border-color:#000}
  .or-line{display:flex;align-items:center;gap:10px;color:#999;font-size:12px;margin:10px 0}.or-line:before,.or-line:after{content:'';flex:1;height:1px;background:var(--paper-2)}
  .pm-chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.pm-chips span{border:1px solid var(--paper-2);border-radius:6px;padding:4px 9px;font-size:11.5px;font-weight:700;background:#fff}
  .trust-list{list-style:none;font-size:12.5px;margin:6px 0 12px;padding:0}.trust-list li{padding:3px 0}
  .legal-note{font-size:10.5px;color:#888;text-align:center;margin-top:10px;line-height:1.5}
  #confirm-btn{background:#16A34A !important}#confirm-btn:disabled{opacity:.45}
  .bogo-banner{background:#ECF8F0;border:1.5px dashed #16A34A;border-radius:12px;padding:11px 14px;margin:12px 16px 0;font-size:13px;color:#14653A}
  .bogo-tag{display:inline-block;background:#16A34A;color:#fff;font-size:10.5px;font-weight:800;border-radius:6px;padding:2px 7px;margin:3px 0;letter-spacing:.2px}
  .bogo-badge{position:absolute;left:12px;bottom:12px;background:#16A34A;color:#fff;font-family:'Space Mono',monospace;font-size:10.5px;font-weight:700;padding:5px 10px;border-radius:999px;z-index:3}
  .restaurant-banner{position:relative}
  .free-price{color:#16A34A;font-weight:800;font-size:12px}
  .help-card{padding:16px 18px;margin-top:18px}
  .help-card h4{font-family:'Archivo Black',sans-serif;text-transform:uppercase;font-size:13px;margin-bottom:6px;color:var(--navy)}
  .help-card p{font-size:12.5px;color:#666;line-height:1.45}
  .help-call{display:flex;align-items:center;justify-content:center;gap:8px;background:#16A34A;color:#fff;text-decoration:none;border-radius:10px;padding:13px;font-weight:800;margin-top:10px;font-size:14px}

  /* ===== Checkout façon Uber ===== */
  .uber-grid{display:block}
  .ucard{background:#fff;border:1px solid #E6EBEC;border-radius:14px;padding:16px;margin-bottom:12px}
  .ucard.acct-box{padding:16px}
  .uhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.uhead h3{font-family:'Inter',sans-serif;font-weight:800;font-size:17px;color:#111}
  .usub{font-family:'Inter',sans-serif;font-weight:800;font-size:15px;margin:12px 0 8px;color:#111}.usep{height:1px;background:#EAEFEF;margin:12px 0 0}
  .seg{display:flex;background:#F0F3F3;border-radius:999px;padding:3px}.seg span{padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:700;cursor:pointer;color:#555}.seg span.on{background:#fff;color:#111;box-shadow:0 1px 3px rgba(0,0,0,.12)}
  .urow{display:flex;align-items:center;gap:12px;padding:12px 16px}.ucard>.urow:first-child{padding-left:0;padding-right:0}.urow b{font-size:14.5px;display:block;color:#111}.urow small{display:block;font-size:12px;color:#8a6d1f;margin-top:1px}.urow.rest small,.urow.tgl small{color:#777}
  .urow.tgl,.urow.rest{cursor:pointer}.ucard>.urow.tgl,.ucard>.urow.rest{padding:14px 16px}.chev{color:#888;font-size:18px}
  .uico{width:26px;text-align:center;font-size:18px}
  .ubtn{background:#F0F3F3;border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:700;color:#111}
  .uinput{width:100%;margin-top:8px;padding:11px 12px;border:1.5px solid #E1E7E8;border-radius:10px;font:inherit;font-size:13px}
  .dopt{display:flex;align-items:center;gap:12px;border:1.5px solid #E1E7E8;border-radius:12px;padding:13px 14px;margin-bottom:8px;cursor:pointer;background:#fff}
  .dopt b{display:block;font-size:14px;color:#111}.dopt small{display:block;font-size:12px;color:#777}
  .dopt.on{border:2px solid #111}
  .ubig{display:block;width:100%;background:#111;color:#fff;border-radius:12px;padding:15px;font-size:15px;font-weight:800;text-align:center;cursor:pointer;font-family:'Inter',sans-serif}
  .ubig:hover{background:#000}.ubig:disabled{background:#6b7280;cursor:not-allowed;opacity:.85}
  .ubig.go{background:#16A34A}
  .otr{display:flex;justify-content:space-between;padding:5px 0;font-size:13.5px;color:#444}.otr.tot{border-top:1px solid #E6EBEC;margin-top:6px;padding-top:11px;font-weight:800;color:#111;font-size:15px}
  #confirm-btn2{display:none}
  @media(min-width:960px){
    body.cart-wide #app{max-width:1080px}
    .uber-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
    .ug-right{position:sticky;top:80px}
    #confirm-btn2{display:block}
    .ug-left #confirm-btn,.ug-mob{display:none}
  }
  .acct-box .btn,#lg-step .btn{background:#16A34A;color:#fff}.ubig{border:0 !important;font-family:'Inter',sans-serif}

  /* ===== Destination (logo pays) + bannière 1 acheté = 1 offert ===== */
  .dest-stamp{position:absolute;right:10px;bottom:10px;z-index:4;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.95);border-radius:999px;padding:4px 12px 4px 4px;box-shadow:0 3px 10px rgba(0,0,0,.22)}
  .dest-stamp .fl{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1.5px #1B3A3E;background:#E4F4F7;display:flex;align-items:center;justify-content:center;font-size:19px;overflow:hidden}
  .dest-stamp .dt{line-height:1.1}.dest-stamp .dt small{display:block;font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.8px;color:#6b7b7e;text-transform:uppercase}.dest-stamp .dt b{font-family:'Archivo Black',sans-serif;font-size:12.5px;text-transform:uppercase;color:#1B3A3E;font-weight:400;letter-spacing:.2px}
  .restaurant-banner:has(.bogo-badge) .dest-stamp{bottom:42px}
  .rest-header .dest-stamp{right:auto;left:12px;top:12px;bottom:auto}
  .bogo-badge{left:0 !important;right:0 !important;bottom:0 !important;border-radius:0 !important;padding:8px 12px !important;text-align:center;font-family:'Archivo Black',sans-serif !important;font-weight:400 !important;font-size:12.5px !important;letter-spacing:.6px;color:#fff;background:linear-gradient(90deg,#0F8A3C,#16A34A 55%,#22C55E) !important;position:absolute;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.25)}
  .bogo-badge::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);animation:bshine 3.2s ease-in-out infinite}
  @keyframes bshine{0%{left:-60%}60%,100%{left:130%}}
  .bogo-banner{display:flex !important;align-items:center;gap:14px;background:linear-gradient(135deg,#0B7A35,#16A34A 55%,#4ADE80) !important;border:0 !important;border-radius:16px !important;padding:15px 16px !important;margin:14px 16px 4px !important;color:#fff !important;box-shadow:0 8px 20px rgba(22,163,74,.35);position:relative;overflow:hidden}
  .bogo-banner::before{content:'';position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.12)}
  .bogo-banner .bg-ico{width:50px;height:50px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;box-shadow:0 3px 8px rgba(0,0,0,.18);transform:rotate(-6deg)}
  .bogo-banner .bg-t{font-family:'Archivo Black',sans-serif;font-size:16.5px;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;line-height:1.05}
  .bogo-banner .bg-s{font-size:12px;opacity:.95;margin-top:3px;line-height:1.35}
  .bogo-banner .bg-chip{margin-left:auto;background:#FACC15;color:#14532D;font-family:'Space Mono',monospace;font-weight:700;font-size:10px;letter-spacing:.8px;padding:5px 9px;border-radius:999px;flex-shrink:0;position:relative}
  #menu-header.rest-header.has-banner > div.dest-stamp{display:flex !important;position:absolute;left:12px;top:12px;right:auto;bottom:auto}
  .dest-stamp{display:none !important}
  .mini-flag{width:20px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.18);vertical-align:middle;margin-left:6px;position:relative;top:-1px}
  .mini-flag-e{font-size:14px;margin-left:6px;vertical-align:middle}
  .restaurant-banner:has(.bogo-badge) .dest-stamp{bottom:auto}


#screen-home{padding-top:0}
.hero2{position:relative;margin:-16px -16px 22px;min-height:max(640px,calc(100svh - 70px));background:#2aa7ee url(/img/mq/b4dd9b9d52.jpg) center bottom/cover no-repeat;border-radius:0 0 30px 30px;color:#fff;font-family:Montserrat,system-ui,sans-serif}
.hero2in{padding:30px 20px 0}
.h2t{font-family:Montserrat,system-ui,sans-serif!important;font-style:normal!important;font-weight:800;font-size:33px;line-height:1.08;color:#fff;text-shadow:0 2px 14px rgba(10,60,120,.45);margin:0 0 10px;text-wrap:balance;letter-spacing:-.5px;text-transform:none!important}
.h2s{font-size:15.5px;font-weight:600;color:#fff;text-shadow:0 1px 8px rgba(10,60,120,.5);margin:0 0 18px;text-wrap:balance}
.h2f input{width:100%;box-sizing:border-box;border:0;border-radius:14px;padding:16px;font:500 16px Montserrat,system-ui,sans-serif;background:#fff;color:#1B3A3E;box-shadow:0 6px 18px rgba(0,60,120,.25)}
.h2b{width:100%;margin-top:12px;border:0;border-radius:14px;padding:16px;background:#DE0C00;color:#fff;font:800 15px Montserrat,system-ui,sans-serif;letter-spacing:1px;cursor:pointer;box-shadow:0 8px 20px rgba(150,0,0,.35)}
.hero2in{margin:22px 14px 0;padding:22px 18px 20px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9);border-radius:24px;box-shadow:0 14px 34px rgba(10,60,120,.28)}
.hero2 .h2t{color:#0B2A4A;text-shadow:none}.hero2 .h2s{color:#35566f;text-shadow:none}
.hero2in{margin:28px 14px 0}.hero2 .h2f input{font-size:15px}
.hero2{min-height:calc(1.777*min(100vw,520px) + 30px);background-size:cover;display:flow-root;margin:0 -20px 22px;background-position:center bottom}
.hero2 .h2f input{box-shadow:inset 0 0 0 1.5px #cfe3f1}
.join-cards{display:grid;gap:10px;margin:0 0 14px}.join-cards img{display:block;width:100%;height:auto;border-radius:22px;box-shadow:0 8px 24px rgba(20,90,170,.14)}
.app-banner{margin:0 0 12px}.app-banner img{display:block;width:100%;height:auto;border-radius:18px}
.pts-banner{margin:6px -16px 22px}.pts-banner img{display:block;width:100%;height:auto}


.concept-item{cursor:pointer}.concept-item.sel .concept-circle{box-shadow:0 0 0 3px #1f6fe0;transform:scale(1.05)}.concept-item.sel span{color:#1f6fe0}
.join-link{display:block}.join-link img{transition:transform .15s}.join-link:active img{transform:scale(.99)}
.noresult{text-align:center;color:#667;padding:24px 8px;font-weight:600}
.apply{padding:6px 0 30px;font-family:Montserrat,system-ui,sans-serif}.ap-back{display:inline-block;margin:6px 0 10px;color:#1f6fe0;font-weight:700;text-decoration:none}
.ap-t{font-family:Montserrat,system-ui,sans-serif!important;font-style:normal!important;font-weight:800;font-size:28px;line-height:1.1;color:#0B2A4A;margin:4px 0 8px;text-transform:none!important}.ap-t em{color:#1f6fe0;font-style:normal}
.ap-s{color:#35566f;margin:0 0 18px;font-size:14.5px}
.ap-form{display:grid;gap:12px;background:#fff;border-radius:20px;padding:18px;box-shadow:0 8px 26px rgba(20,90,170,.12)}
.af{display:grid;gap:6px}.af span{font-size:12px;font-weight:700;color:#0B2A4A}
.af input,.af select,.af textarea{width:100%;box-sizing:border-box;border:1.5px solid #cfe3f1;border-radius:12px;padding:13px 12px;font:500 15px Montserrat,system-ui,sans-serif;background:#fff;color:#1B3A3E}
.af input:focus,.af select:focus,.af textarea:focus{outline:none;border-color:#1f6fe0}
.ck{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:#35566f}.ck input{margin-top:2px}
.hp{position:absolute;left:-9999px;opacity:0;height:0}
.ap-btn{border:0;border-radius:14px;padding:16px;background:linear-gradient(180deg,#1f8bff,#0a62e0);color:#fff;font:800 15px Montserrat,system-ui,sans-serif;letter-spacing:.8px;cursor:pointer;box-shadow:0 8px 20px rgba(10,98,224,.3)}
.ap-ok{background:#E6F7EC;color:#157a3d;border-radius:12px;padding:14px;font-weight:700}
