.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}:root{--color-fond: #FFFAFD;--color-texte: #1A1A1A;--color-texte-clair: #666666;--color-surface: #FFFFFF;--color-bordure: #EEEEEE;--color-primaire: #FF4D85;--color-primaire-pale: #FFDDF4;--color-secondaire: #3DBE94;--color-danger: #EA2323;--color-horaire-texte: var(--color-primaire);--color-horaire-bg: var(--color-primaire-pale);--font-h1: "Poppins", sans-serif;--font-hx: "Inter", sans-serif;--font-p: "Raleway", sans-serif;--shadow-sm: 0 4px 15px rgba(0, 0, 0, .05);--shadow-md: 0 10px 30px rgba(255, 77, 133, .15);--transition-snappy: .3s cubic-bezier(.175, .885, .32, 1.275)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth;overscroll-behavior-y:contain}body{font-family:var(--font-p);color:var(--color-texte);background-color:var(--color-fond);padding-top:0;padding-bottom:110px;line-height:1.6}h1,h2,h3,h4{color:var(--color-texte)}h1{font-family:var(--font-h1);font-size:32px;font-weight:800;line-height:1.2;text-align:center}h2{font-family:var(--font-hx);font-size:26px;font-weight:800;color:var(--color-primaire);line-height:1.2;text-align:center;margin-bottom:5px}h3{font-family:var(--font-hx);font-size:20px;font-weight:700;color:var(--color-primaire);margin-bottom:12px}#pull-to-refresh{position:fixed;top:0;left:0;width:100%;height:60px;display:flex;justify-content:center;align-items:center;z-index:50;transform:translateY(-100%);transition:transform .3s}.spinner{width:30px;height:30px;border:3px solid var(--color-primaire-pale);border-top-color:var(--color-primaire);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;justify-content:center;align-items:center;padding:12px 24px;border-radius:50px;font-family:var(--font-hx);font-weight:700;font-size:15px;cursor:pointer;transition:var(--transition-snappy);border:2px solid transparent;text-decoration:none}.btn:active,.card:active,.menu-item:active,.category-chip:active{transform:scale(.96)}.btn-primary{background-color:var(--color-primaire);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{background-color:transparent;color:var(--color-primaire);border-color:var(--color-primaire);box-shadow:none}.btn-white{background-color:var(--color-primaire);color:#fff;box-shadow:var(--shadow-md);border:2px solid transparent}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:10px;font-weight:800;font-family:var(--font-hx);text-transform:uppercase}.badge-vert{background-color:var(--color-secondaire);color:#fff}.badge-rouge{background-color:var(--color-danger);color:#fff}.badge-rose{background-color:var(--color-primaire);color:#fff}.badge-tag{background-color:transparent;color:var(--color-texte-clair);border:1px solid var(--color-bordure);font-size:9px;margin-left:5px}.app-header{display:none}.logo{height:40px;cursor:pointer}.bottom-nav{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));left:20px;width:calc(100% - 40px);height:70px;background-color:#ff4d85;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);display:flex;justify-content:space-around;align-items:center;z-index:100;border-radius:35px;box-shadow:0 8px 25px #ff4d8533;transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.bottom-nav.hidden{transform:translateY(150px)}.nav-item{background:none;border:none;color:var(--color-primaire-pale);opacity:.5;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;width:33%;transition:var(--transition-snappy)}.nav-item.active{opacity:1;transform:translateY(-4px)}.nav-label{font-size:10px;font-family:var(--font-hx);font-weight:700;margin-top:4px}.mobile-top-banner{position:fixed;top:0;left:0;width:100%;height:75px;background-color:#ff4d8533;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:0;display:flex;justify-content:center;align-items:center;z-index:90;transition:background-color .3s ease-in-out,backdrop-filter .3s ease-in-out;pointer-events:none}.mobile-top-banner a{pointer-events:auto;display:flex;align-items:center;text-decoration:none}.mobile-top-banner img{height:45px;object-fit:contain;filter:drop-shadow(0px 2px 8px rgba(0,0,0,.3))}.mobile-top-banner.is-scrolling{background-color:transparent;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.container{padding:20px 16px;max-width:600px;margin:0 auto}.subtitle{text-align:center;color:var(--color-texte-clair);font-weight:600;font-size:14px;margin-bottom:20px}.fade-in{animation:fadeIn .4s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.hero-section{position:relative;height:320px;border-radius:0;background-image:linear-gradient(#0000004d,#000000b3),url(/assets/fond-cafet-roz-BjNxo-ZO.png);background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:95px 20px 20px}.hero-section h1{color:#fff;font-size:30px;margin-bottom:10px;text-shadow:0 2px 10px rgba(0,0,0,.5)}.hero-section p{color:#ffffffe6;text-align:center;font-weight:500;font-size:15px;max-width:300px;margin-bottom:24px}.card{background:var(--color-surface);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:30px;border:1px solid var(--color-bordure);transition:transform .2s;cursor:pointer}.card-img{width:100%;height:300px;object-fit:cover}.card-body{padding:20px}.anti-gaspi-block{background-color:var(--color-primaire);border-radius:20px;padding:24px;margin-bottom:30px;box-shadow:var(--shadow-md)}.anti-gaspi-block h2{color:#fff;text-align:left;font-size:22px}.anti-gaspi-block p{color:#ffffffe6;margin-bottom:20px;font-size:14px}.ag-item{background:var(--color-surface);border-radius:12px;padding:16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;cursor:pointer;transition:.2s}.horaires-card{padding:24px;box-shadow:0 8px 30px #0000000a;cursor:default}.static-card{cursor:default}.horaires-card:active,.static-card:active{transform:none}.horaires-header{text-align:center;margin-bottom:20px}.horaires-header h2{font-size:18px;text-transform:uppercase;color:var(--color-horaire-texte);margin-bottom:8px;letter-spacing:.5px}.separator-line{width:40px;height:2px;background-color:var(--color-horaire-texte);margin:0 auto;border-radius:2px}.horaires-list{margin-bottom:20px;border-bottom:1px solid var(--color-bordure);padding-bottom:15px}.horaire-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;border-radius:8px;margin-bottom:4px;transition:background-color .2s}.horaire-row:not(.closed-row){border-bottom:1px solid rgba(0,0,0,.03)}.horaire-row .day{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--color-texte)}.horaire-row .time{font-weight:700;color:var(--color-horaire-texte);display:flex;align-items:center;gap:8px;font-family:var(--font-hx)}.lieu{display:flex;flex-direction:column;align-items:center;color:var(--color-texte)}.lieu>div{justify-content:center;color:var(--color-texte-clair);font-size:13px;margin-top:10px;border-bottom:none!important}.horaire-row.active-day{background-color:var(--color-horaire-bg)}.status-dot{width:8px;height:8px;background-color:var(--color-secondaire);border-radius:50%;display:inline-block}.closed-row{justify-content:center;color:var(--color-texte-clair);font-size:13px;margin-top:10px;border-bottom:none!important}.adresse-box{display:flex;align-items:center;gap:15px;padding:0 12px}.adresse-box svg{color:var(--color-texte)}.adresse-text{display:flex;flex-direction:column;font-size:14px}.adresse-text strong{color:var(--color-texte);font-weight:700}.adresse-text span{color:var(--color-texte-clair)}.category-scroll{display:flex;gap:12px;overflow-x:auto;padding:10px 16px 20px;margin:0 -16px;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.category-scroll::-webkit-scrollbar{display:none}.category-chip{background:var(--color-surface);border:2px solid var(--color-primaire);padding:10px 20px;border-radius:50px;font-weight:700;font-family:var(--font-hx);font-size:14px;color:var(--color-primaire);white-space:nowrap;scroll-snap-align:center;cursor:pointer;transition:var(--transition-snappy)}.category-chip.active{background:var(--color-primaire);color:#fff;border-color:var(--color-primaire);transform:scale(1.05)}.menu-category-box{border:1px solid var(--color-bordure);border-radius:16px;padding:8px 16px;margin-bottom:24px;background:var(--color-surface);animation:fadeIn .3s}.menu-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-bordure);padding:16px 0;transition:.2s;cursor:pointer}.menu-item:last-child{border-bottom:none}.menu-item h4{font-size:16px;margin-bottom:4px;color:var(--color-texte)}.menu-item p{font-size:13px;color:var(--color-texte-clair);margin:0}.menu-price{font-family:var(--font-hx);font-weight:800;font-size:16px;color:var(--color-primaire)}.form-group{margin-bottom:16px}.form-group label{display:block;font-family:var(--font-hx);font-size:12px;font-weight:700;color:var(--color-primaire);margin-bottom:6px}.form-control{width:100%;padding:12px;border:1px solid var(--color-bordure);border-radius:8px;font-family:var(--font-p);font-size:14px;outline:none;transition:.2s;background:var(--color-fond);color:var(--color-texte)}.form-control:focus{border-color:var(--color-primaire)}textarea.form-control{resize:vertical}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;justify-content:center;align-items:flex-end;opacity:0;visibility:hidden;transition:.3s}.modal-overlay.active{opacity:1;visibility:visible}.modal-content{background:var(--color-surface);width:100%;max-width:600px;border-radius:24px 24px 0 0;padding:30px 24px 50px;position:relative;transform:translateY(100%);transition:transform .4s cubic-bezier(.175,.885,.32,1.275)}.modal-overlay.active .modal-content{transform:translateY(0)}.modal-drag-handle{width:40px;height:5px;background:var(--color-bordure);border-radius:10px;margin:-10px auto 20px}.modal-close{position:absolute;top:15px;right:20px;background:var(--color-bordure);border:none;border-radius:50%;width:32px;height:32px;font-size:18px;color:var(--color-texte);cursor:pointer}.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%) translateY(50px);background:var(--color-texte);color:var(--color-fond);padding:12px 24px;border-radius:30px;font-family:var(--font-hx);font-weight:600;font-size:14px;box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transition:.3s cubic-bezier(.175,.885,.32,1.275);z-index:3000}.toast.show{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.footer{text-align:center;padding:30px 0 40px}.footer img{height:40px;opacity:.4;margin-bottom:10px}.footer p{font-size:11px;color:#999;line-height:1.5;margin:0}.pc-only{display:none}@media(min-width:768px){.mobile-only{display:none!important}body{padding-top:0;padding-bottom:0}.app-header{display:flex;justify-content:center;gap:80px;position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:100%;height:80px;background-color:#ff4d85;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);align-items:center;padding:0 40px;z-index:100;border-radius:0;box-shadow:none;transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.app-header.scrolled{top:20px;width:calc(100% - 40px);max-width:900px;border-radius:40px;background-color:#ff4d85}.app-header .logo{filter:drop-shadow(0px 2px 8px rgba(0,0,0,.3))}.desktop-nav{display:flex;gap:40px;align-items:center}.desktop-nav .nav-link{background:none;border:none;font-family:var(--font-hx);font-size:15px;font-weight:700;cursor:pointer;color:var(--color-primaire-pale);transition:.2s;text-decoration:none;text-shadow:none}.desktop-nav .nav-link:hover{opacity:.7;transform:translateY(-2px)}.container{max-width:800px;padding:40px 20px}.hero-section{border-radius:0;height:400px;margin-top:0;padding-top:95px}.modal-overlay{align-items:center}.modal-content{border-radius:24px;transform:scale(.9);padding-bottom:30px}.modal-overlay.active .modal-content{transform:scale(1)}.modal-drag-handle{display:none}#pull-to-refresh{top:80px}}
