:root {
    --orange:#ff7a00;
    --amber:#ffb000;
    --green:#68b82e;
    --ink:#2b160f;
    --cream:#fffaf3;
    --muted:#786b64;
    --line:#eee3d7;
    --danger:#c83b2d
}
* {
    box-sizing:border-box
}
body {
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;
    background:var(--cream);
    color:var(--ink)
}
a {
    text-decoration:none;
    color:inherit
}
.container {
    width:min(1120px,92%);
    margin:auto
}
.topbar {
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(255,250,243,.94);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line)
}
.dineo-legacy-nav {
    height:68px;
    display:flex;
    align-items:center;
    gap:20px
}
.dineo-legacy-brand {
    font-size:25px;
    font-weight:900
}
.dineo-legacy-brand span {
    color:var(--orange)
}
.navlinks {
    margin-left:auto;
    display:flex;
    gap:18px;
    align-items:center
}
.btn {
    border:0;
    border-radius:14px;
    padding:12px 17px;
    font-weight:800;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px
}
.btn-primary {
    background:linear-gradient(135deg,var(--orange),var(--amber));
    color:#fff;
    box-shadow:0 8px 20px #ff7a0029
}
.btn-dark {
    background:var(--ink);
    color:#fff
}
.btn-soft {
    background:#fff;
    border:1px solid var(--line)
}
.hero {
    padding:58px 0 34px
}
.hero-grid {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:38px;
    align-items:center
}
.eyebrow {
    font-weight:800;
    color:var(--green);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:12px
}
.hero h1 {
    font-size:clamp(42px,7vw,76px);
    line-height:.96;
    margin:10px 0 18px;
    letter-spacing:-.05em
}
.hero h1 em {
    font-style:normal;
    color:var(--orange)
}
.lead {
    font-size:18px;
    line-height:1.6;
    color:var(--muted);
    max-width:620px
}
.hero-card {
    background:var(--ink);
    border-radius:30px;
    overflow:hidden;
    min-height:380px;
    box-shadow:0 28px 60px #32190d30;
    position:relative
}
.hero-card img {
    width:100%;
    height:100%;
    min-height:380px;
    object-fit:cover
}
.search {
    display:flex;
    gap:10px;
    background:#fff;
    border:1px solid var(--line);
    padding:8px;
    border-radius:18px;
    box-shadow:0 12px 30px #3a1b0c10;
    margin-top:24px
}
.search input,
.search select {
    border: 0;
    background: #fff;
    padding: 13px;
    width: 100%;
    outline: none;
    font: inherit;
}

.field,
.form-grid input:not([type="checkbox"]):not([type="radio"]),
.form-grid select,
.form-grid textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1.5px solid #d8c8bb;
    border-radius: 12px;
    background: #fffdf9;
    color: var(--ink);
    font: inherit;
    outline: none;
    box-shadow: 0 1px 2px rgba(43, 22, 15, .04);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.form-grid textarea {
    min-height: 110px;
    resize: vertical;
}

.field:hover,
.form-grid input:not([type="checkbox"]):not([type="radio"]):hover,
.form-grid select:hover,
.form-grid textarea:hover {
    border-color: #bca999;
}

.field:focus,
.form-grid input:not([type="checkbox"]):not([type="radio"]):focus,
.form-grid select:focus,
.form-grid textarea:focus {
    border-color: var(--orange);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255, 122, 0, .12);
}

.field::placeholder,
.form-grid input::placeholder,
.form-grid textarea::placeholder {
    color: #a4968d;
}

.section {
    padding:28px 0 54px
}
.section-title {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px
}
.section h2 {
    font-size:30px;
    margin:0
}
.grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}
.card {
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 8px 22px #44220e0a
}
.card-body {
    padding:18px
}
.cover {
    height:160px;
    background:linear-gradient(135deg,#2b160f,#7d3214);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:60px
}
.badge {
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    background:#eff8e8;
    color:#3d7b19
}
.badge.orange {
    background:#fff1e3;
    color:#b65300
}
.muted {
    color:var(--muted)
}
.price {
    font-weight:900;
    color:var(--orange)
}
.menu-row {
    display:flex;
    gap:16px;
    justify-content:space-between;
    padding:16px 0;
    border-bottom:1px solid var(--line)
}
.panel {
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:22px
}
.two {
    display:grid;
    grid-template-columns:1fr 380px;
    gap:24px
}
.flash {
    margin:14px auto;
    padding:12px 16px;
    border-radius:12px;
    background:#eff8e8;
    color:#376c1a
}
.statgrid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px
}
.stat {
    padding:18px;
    border-radius:18px;
    background:#fff;
    border:1px solid var(--line)
}
.stat strong {
    display:block;
    font-size:25px;
    margin-top:6px
}
.order {
    padding:16px;
    border:1px solid var(--line);
    border-radius:16px;
    margin:10px 0;
    background:#fff
}
.order-head {
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center
}
.footer {
    background:var(--ink);
    color:#fff;
    padding:34px 0;
    margin-top:40px
}
.footer small {
    color:#cbbdb6
}
.powered {
    font-weight:800;
    color:var(--amber)
}
@media(max-width:800px) {
    .hero-grid,.two {
        grid-template-columns:1fr
    }
    .grid {
        grid-template-columns:1fr 1fr
    }
    .hero {
        padding-top:30px
    }
    .hero-card {
        min-height:260px
    }
    .hero-card img {
        min-height:260px
    }
    .navlinks a:not(.btn) {
        display:none
    }
    .statgrid {
        grid-template-columns:1fr 1fr
    }
}
@media(max-width:520px) {
    .grid {
        grid-template-columns:1fr
    }
    .search {
        flex-direction:column
    }
    .hero h1 {
        font-size:45px
    }
    .container {
        width:min(94%,1120px)
    }
}

.form-stack {
    display: grid;
    gap: 14px;
}

.form-stack label {
    display: grid;
    gap: 8px;
    font-weight: 700;
}

.form-stack .check-line,
.form-stack label:has(> input[type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
}

.form-stack input[type="checkbox"],
.check-line input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--orange);
    cursor: pointer;
}

.inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.navlinks form {
    margin: 0;
}

.nav-button {
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    padding: 0;
}


/* Administration partenaires */
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.form-grid label {
    display: grid;
    gap: 7px;
    font-weight: 700;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
    width: 100%;
    box-sizing: border-box;
}

.span-2 {
    grid-column: 1 / -1;
}

.form-section-title {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--line, #e5e7eb);
}

.check-line {
    display: flex !important;
    align-items: center;
    align-self: end;
    grid-template-columns: auto 1fr;
}

.check-line input {
    width: auto;
}

.actions,
.row-actions,
.status-line {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.actions {
    margin-top: 24px;
}

.btn-small {
    padding: 8px 12px;
    font-size: 0.88rem;
}

.badge-approved {
    background: #dcfce7;
    color: #166534;
}

.badge-pending {
    background: #ffedd5;
    color: #9a3412;
}

.badge-suspended {
    background: #fee2e2;
    color: #991b1b;
}

@media (max-width: 720px) {
    .form-grid {
        grid-template-columns: 1fr;
    }

    .span-2 {
        grid-column: auto;
    }

    .menu-row {
        align-items: flex-start;
    }
}

/* Formulaires métier Dineo */
.partner-form {
    padding: 0;
    overflow: hidden;
}

.form-block {
    padding: 28px;
}

.form-block + .form-block {
    border-top: 1px solid var(--line);
}

.form-block-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.form-block-heading h3 {
    margin: 0 0 5px;
    font-size: 1.25rem;
}

.form-block-heading p {
    margin: 0;
    font-size: .92rem;
}

.form-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.form-grid-3 label:not(.check-card) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    min-width: 0;
    font-size: .92rem;
    font-weight: 800;
}

.form-grid-3 input:not([type="checkbox"]),
.form-grid-3 select,
.form-grid-3 textarea {
    display: block;
    width: 100%;
    min-width: 0;
    min-height: 50px;
    padding: 12px 14px;
    border: 1.5px solid #d8c8bb;
    border-radius: 12px;
    background: #fffdf9;
    color: var(--ink);
    font: inherit;
    font-weight: 500;
    outline: none;
    appearance: auto;
}

.form-grid-3 textarea {
    min-height: 120px;
}

.form-grid-3 input:not([type="checkbox"]):focus,
.form-grid-3 select:focus,
.form-grid-3 textarea:focus {
    border-color: var(--orange);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255, 122, 0, .12);
}

.form-grid-3 .span-2 {
    grid-column: span 2;
}

.form-grid-3 .span-3 {
    grid-column: 1 / -1;
}

.check-card {
    display: flex !important;
    align-items: center;
    gap: 12px;
    min-height: 50px;
    align-self: end;
    padding: 10px 14px;
    border: 1.5px solid #d8c8bb;
    border-radius: 12px;
    background: #fffdf9;
    cursor: pointer;
}

.check-card input[type="checkbox"] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--orange);
}

.check-card span {
    display: grid;
    gap: 2px;
    line-height: 1.2;
}

.check-card small {
    color: var(--muted);
    font-weight: 500;
}

.form-section-title {
    margin-top: 0;
    padding-top: 28px;
}

.form-actions {
    margin: 0;
    padding: 20px 28px 28px;
    border-top: 1px solid var(--line);
    background: #fffaf5;
}

@media (max-width: 960px) {
    .form-grid-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .form-grid-3 .span-3 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .form-block {
        padding: 20px;
    }

    .form-grid-3 {
        grid-template-columns: 1fr;
    }

    .form-grid-3 .span-2,
    .form-grid-3 .span-3 {
        grid-column: auto;
    }

    .form-actions {
        padding: 18px 20px 20px;
    }
}


/* Contrôles explicites des formulaires - ne dépendent pas du style natif du navigateur */
.form-field {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    min-width: 0;
    font-weight: 800;
}

.form-field > span:first-child {
    display: block;
}

.form-field > input:not([type="checkbox"]):not([type="radio"]),
.form-field > select,
.form-field > textarea,
.auth-form .field {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    border: 1.5px solid #cdb9a8 !important;
    border-radius: 12px !important;
    background: #fffdf9 !important;
    color: var(--ink) !important;
    font: inherit !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    outline: none !important;
    box-shadow: 0 1px 2px rgba(43, 22, 15, .05) !important;
}

.form-field > textarea {
    min-height: 120px !important;
    resize: vertical;
}

.form-field > input:not([type="checkbox"]):not([type="radio"]):focus,
.form-field > select:focus,
.form-field > textarea:focus,
.auth-form .field:focus {
    border-color: var(--orange) !important;
    background: #fff !important;
    box-shadow: 0 0 0 4px rgba(255, 122, 0, .13) !important;
}

.auth-form {
    margin-top: 22px;
    gap: 18px;
}

.auth-form .form-field {
    gap: 9px !important;
}

.auth-form .check-line {
    margin-top: 2px;
}

.auth-form .btn-primary {
    width: 100%;
    min-height: 52px;
}

/* Dineo Pro */
.pro-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:20px; margin-top:20px; align-items:start; }
.pro-section { margin-top:20px; }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
.pro-logo { width:72px; height:72px; object-fit:cover; border-radius:16px; border:1px solid var(--line); background:#fff; }
.pro-profile-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.hours-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:10px; }
.section-title.compact { margin-bottom:12px; }
.category-title { margin:22px 0 8px; padding-bottom:8px; border-bottom:1px solid var(--line); }
.catalog-card { display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }
.catalog-edit { display:grid; grid-template-columns:1fr 1.5fr .7fr .7fr 2fr auto; gap:8px; align-items:center; flex:1; min-width:0; }
.catalog-edit .field { min-width:0; }
.pro-order { padding:14px 0; border-bottom:1px solid var(--line); }
@media (max-width:1050px) { .pro-grid { grid-template-columns:1fr; } .catalog-edit { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-description { grid-column:1/-1; } }
@media (max-width:640px) { .pro-profile-form,.hours-grid,.catalog-edit { grid-template-columns:1fr; } .pro-profile-form .span-2,.catalog-description { grid-column:auto; } .catalog-card { align-items:stretch; flex-direction:column; } }


/* Panier sans rechargement */
.js-cart-add {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
}
.js-cart-add .btn:disabled {
    opacity: .72;
    cursor: wait;
}
.cart-add-feedback {
    position: absolute;
    right: 0;
    top: calc(100% + 7px);
    z-index: 5;
    white-space: nowrap;
    padding: 6px 9px;
    border-radius: 9px;
    background: #eef8e8;
    color: #2f6d1f;
    font-size: .78rem;
    font-weight: 800;
    opacity: 0;
    transform: translateY(-3px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}
.cart-add-feedback.is-visible { opacity: 1; transform: translateY(0); }
.cart-add-feedback.is-error { background: #fff0ed; color: #a83224; }

/* Menu public structuré */
.menu-panel { padding: 26px; }
.menu-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; }
.menu-heading h3 { margin:4px 0 0; font-size:26px; }
.menu-filters { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 24px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.menu-filter { border:1px solid var(--line); background:#fffaf3; color:var(--ink); border-radius:999px; padding:9px 13px; font:inherit; font-weight:800; cursor:pointer; transition:.18s ease; }
.menu-filter span { color:var(--muted); font-size:.82em; margin-left:3px; }
.menu-filter:hover { border-color:#d8b99d; }
.menu-filter.is-active { background:var(--ink); border-color:var(--ink); color:#fff; }
.menu-filter.is-active span { color:#f1d9ce; }
.menu-category { margin-top:20px; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#fffdfa; }
.menu-category[hidden] { display:none; }
.menu-category-head { padding:16px 18px; background:linear-gradient(135deg,#fff5e9,#fffaf3); border-bottom:1px solid var(--line); }
.menu-category-head h3 { margin:0; font-size:21px; }
.menu-category-head p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.menu-items-list { padding:0 18px; }
.menu-item-card { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.menu-item-card:last-child { border-bottom:0; }
.menu-item-content { min-width:0; }
.menu-item-content > strong { display:block; font-size:17px; margin-bottom:3px; }
.menu-item-content .price { margin-top:6px; }
.old-price { text-decoration:line-through; margin-left:7px; font-weight:600; }

/* Panier */
.cart-item { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 0; border-bottom:1px solid var(--line); }
.cart-item-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}
.cart-item-link strong { transition: color .18s ease; }
.cart-item-link:hover strong, .cart-item-link:focus-visible strong { color: var(--orange, #f56a00); }
.cart-item-link:focus-visible { outline: 3px solid rgba(245, 106, 0, .22); outline-offset: 5px; border-radius: 8px; }
.cart-item-link .muted { display: block; }
.cart-item-back { margin-top: 4px; font-size: .82rem; font-weight: 800; color: var(--orange, #f56a00); opacity: 0; transform: translateY(-2px); transition: opacity .18s ease, transform .18s ease; }
.cart-item-link:hover .cart-item-back, .cart-item-link:focus-visible .cart-item-back { opacity: 1; transform: translateY(0); }
#menu-carte { scroll-margin-top: 110px; }

.cart-item-actions { display:flex; align-items:center; gap:18px; text-align:right; }
.cart-remove { border:0; background:transparent; color:var(--danger); font:inherit; font-size:13px; font-weight:800; cursor:pointer; padding:7px 0; }
.cart-remove:hover { text-decoration:underline; }
.cart-remove:disabled { opacity:.5; cursor:wait; }
.cart-clear-form { margin-top:18px; }
.cart-separator { border:0; border-top:1px solid var(--line); }
.cart-total-value { float:right; }
.cart-grand-total { font-size:20px; }
.cart-empty-state { grid-column:1/-1; }

/* Footer */
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.footer .powered { margin:0; color:#fff; font-weight:600; white-space:nowrap; }
.footer .powered a { color:var(--amber); font-weight:900; }
.footer .powered a:hover { text-decoration:underline; }

@media(max-width:640px) {
    .menu-panel { padding:18px; }
    .menu-heading,.menu-item-card,.cart-item,.footer-inner { align-items:flex-start; flex-direction:column; }
    .menu-item-card .js-cart-add { align-self:stretch; width:100%; }
    .menu-item-card .js-cart-add .btn { width:100%; }
    .cart-item-actions { width:100%; justify-content:space-between; text-align:left; }
    .footer-inner { gap:18px; }
    .footer .powered { white-space:normal; }
}

/* Onboarding établissement */
.type-selector {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.type-selector legend,
.field-label {
    display: block;
    margin-bottom: 8px;
    font-weight: 800;
}

.type-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.choice-chip {
    position: relative;
    cursor: pointer;
}

.choice-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.choice-chip span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 14px;
    border: 1px solid #d9c8b8;
    border-radius: 999px;
    background: #fff;
    font-weight: 700;
    transition: .18s ease;
}

.choice-chip input:checked + span {
    border-color: #ff8500;
    background: #fff1df;
    box-shadow: 0 0 0 2px rgba(255, 133, 0, .12);
}

.phone-field {
    display: grid;
    grid-template-columns: minmax(145px, .9fr) minmax(160px, 1.2fr);
    gap: 8px;
}

.partner-heading {
    gap: 20px;
    align-items: center;
}

.switch-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #eadbcc;
    border-radius: 14px;
    cursor: pointer;
    font-weight: 800;
    background: #fffaf5;
}

.switch-card input {
    width: 20px;
    height: 20px;
}

.form-field small,
.type-selector small {
    display: block;
    margin-top: 6px;
    color: #7b6e66;
    line-height: 1.35;
}

@media (max-width: 720px) {
    .phone-field {
        grid-template-columns: 1fr;
    }

    .partner-heading {
        align-items: stretch;
    }
}

/* KazaTrip — accueil Restaurants & sorties */
.food-hero{position:relative;isolation:isolate;min-height:520px;display:flex;align-items:flex-end;background:#073f37;overflow:hidden}.food-hero:before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--food-hero);background-size:cover;background-position:center}.food-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,39,34,.88) 0%,rgba(4,39,34,.65) 48%,rgba(4,39,34,.25) 100%),linear-gradient(0deg,rgba(4,39,34,.58),transparent 55%)}.food-hero-inner{width:100%;padding-top:90px;padding-bottom:42px}.food-hero-copy{max-width:760px;color:#fff}.food-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:900;color:#baf1df}.food-kicker.dark{color:#0b6b5b}.food-hero h1{font-size:clamp(44px,7vw,76px);line-height:.98;letter-spacing:-.045em;margin:10px 0 14px}.food-hero p{max-width:680px;font-size:19px;line-height:1.6;color:#e3f0ec;margin:0}.food-search{display:grid;grid-template-columns:1.35fr 1fr 1fr 1fr auto;gap:8px;background:#fff;padding:10px;border-radius:16px;margin-top:30px;box-shadow:0 18px 48px #001c1738}.food-search input,.food-search select{min-width:0;border:1px solid #e1e8e5;border-radius:10px;background:#fff;padding:12px;font:inherit;color:#17201e}.food-search .btn{background:#0b6b5b;color:#fff;border-radius:10px;padding:12px 18px}.food-types-section{background:#fff}.food-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}.food-heading h2{font-size:32px;margin:5px 0 0;color:#17201e}.food-reset{font-weight:800;color:#0b6b5b}.food-type-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.food-type-card{position:relative;isolation:isolate;min-height:220px;border-radius:18px;overflow:hidden;background:#0b6b5b;background-image:var(--type-bg);background-size:cover;background-position:center;box-shadow:0 8px 24px #173c3317;transition:.22s ease}.food-type-card:hover{transform:translateY(-3px);box-shadow:0 15px 32px #173c3324}.food-type-card.active{outline:3px solid #0b6b5b;outline-offset:3px}.food-type-overlay{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(3,29,25,.9),rgba(3,29,25,.06) 70%)}.food-type-content{position:absolute;inset:auto 15px 15px;color:#fff;display:flex;flex-direction:column;gap:3px}.food-type-content strong{font-size:18px}.food-type-content span{font-size:12px;color:#d7e9e4}.food-type-content small{margin-top:6px;font-weight:800}.food-results-section{background:#f5f7f6}.food-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.food-place-card{overflow:hidden;background:#fff;border:1px solid #dde5e2;border-radius:18px;box-shadow:0 5px 18px #173c3312;transition:.2s ease}.food-place-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #173c3320}.food-place-photo{height:210px;position:relative;background:#dceae6;background-image:var(--fallback);background-size:cover;background-position:center;overflow:hidden}.food-place-photo img{width:100%;height:100%;object-fit:cover;display:block}.food-place-status{position:absolute;top:12px;right:12px;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900;color:#fff;backdrop-filter:blur(8px)}.food-place-status.open{background:#0b6b5be8}.food-place-status.closed{background:#75251ee8}.food-place-body{padding:17px}.food-place-tags{display:flex;gap:6px;flex-wrap:wrap}.food-place-tags span{padding:5px 8px;border-radius:999px;background:#e7f4f0;color:#0b6b5b;font-size:11px;font-weight:850}.food-place-tags .featured{background:#fff4dd;color:#8a5a00}.food-place-body h3{font-size:20px;margin:11px 0 5px;color:#17201e}.food-location{margin:0;color:#66736f;font-size:13px}.food-description{color:#66736f;font-size:13px;line-height:1.55;min-height:40px}.food-card-link{margin-top:13px;padding-top:12px;border-top:1px solid #edf1ef;color:#0b6b5b;font-weight:850;font-size:13px;display:flex;justify-content:space-between}.food-empty{grid-column:1/-1;text-align:center;padding:50px 20px;background:#fff;border:1px dashed #cbd8d4;border-radius:18px}.food-empty strong{font-size:20px}.food-empty p{color:#66736f}.food-empty .btn{background:#0b6b5b;color:#fff}
@media(max-width:1000px){.food-type-grid{grid-template-columns:repeat(3,1fr)}.food-search{grid-template-columns:1fr 1fr}.food-search .btn{grid-column:1/-1}.food-place-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.food-hero{min-height:600px}.food-hero-inner{padding-top:60px;padding-bottom:28px}.food-hero h1{font-size:42px}.food-hero p{font-size:16px}.food-search{grid-template-columns:1fr;margin-top:22px}.food-search .btn{grid-column:auto}.food-type-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 3px 14px}.food-type-card{flex:0 0 72%;min-height:205px;scroll-snap-align:start}.food-place-grid{grid-template-columns:1fr}.food-heading{align-items:flex-start}.food-heading h2{font-size:27px}}
/* Navigation directe depuis une catégorie restauration */
#restaurants-results{scroll-margin-top:88px}

/* Suivi de commande KazaTrip */
.checkout-auth{padding:8px 0}
.order-timeline{display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));gap:8px;margin:24px 0;overflow-x:auto;padding:4px 0 10px}
.order-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;min-width:72px;color:#71807c}
.order-step:not(:last-child)::after{content:"";position:absolute;top:15px;left:calc(50% + 18px);right:calc(-50% + 18px);height:3px;background:#dce8e5}
.order-step.is-done:not(:last-child)::after{background:#0b7868}
.order-step-dot{position:relative;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eef4f2;border:2px solid #d2e2de;font-weight:800}
.order-step.is-done .order-step-dot{background:#0b7868;border-color:#0b7868;color:#fff}
.order-step.is-current small{font-weight:800;color:#0b7868}
.order-status-cancelled{margin:22px 0;padding:14px 16px;border-radius:14px;background:#fff0f0;color:#9d2424}
@media(max-width:700px){.order-timeline{grid-template-columns:repeat(6,88px)}}
