:root {
    --orange: #f58220;
    --orange-dark: #d9680d;
    --orange-light: #ff9d45;

    --black: #0b0b0b;
    --black-soft: #121212;
    --charcoal: #191919;
    --charcoal-light: #242424;

    --white: #ffffff;
    --gray-100: #f6f6f6;
    --gray-200: #e9e9e9;
    --gray-400: #a8a8a8;
    --gray-600: #737373;
    --gray-800: #292929;

    --radius: 18px;
    --shadow: 0 18px 50px rgba(0, 0, 0, .16);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;

    background: var(--gray-100);
    color: #171717;
    line-height: 1.5;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

img {
    max-width: 100%;
    display: block;
}

/* =========================================================
   HEADER
========================================================= */

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;

    background: rgba(11, 11, 11, .96);
    backdrop-filter: blur(12px);

    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.header-inner {
    max-width: 1240px;
    margin: auto;
    min-height: 74px;

    padding: 10px 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-mark {
    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: var(--orange);
    color: var(--white);

    font-size: 18px;
    font-weight: 900;
}

.brand-name {
    color: var(--white);
    font-size: 21px;
    font-weight: 900;
    letter-spacing: .8px;
}

.brand-subtitle {
    margin-top: 1px;

    color: var(--gray-400);
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.desktop-nav {
    display: flex;
    align-items: center;
    gap: 30px;

    color: var(--white);
    font-size: 14px;
    font-weight: 600;
}

.desktop-nav a:hover {
    color: var(--orange);
}

.nav-cart {
    background: var(--orange);
    padding: 10px 15px;
    border-radius: 999px;
}

.nav-cart:hover {
    color: var(--white) !important;
    background: var(--orange-dark);
}

.cart-count {
    background: var(--white);
    color: var(--black);

    min-width: 21px;
    height: 21px;

    margin-left: 6px;

    display: inline-grid;
    place-items: center;

    border-radius: 50%;
    font-size: 11px;
}

/* =========================================================
   HERO
========================================================= */

.hero {
    min-height: 580px;
    position: relative;

    display: flex;
    align-items: center;

    background:
        radial-gradient(
            circle at 75% 40%,
            rgba(245, 130, 32, .28),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #070707 0%,
            #141414 55%,
            #0c0c0c 100%
        );

    overflow: hidden;
}

.hero::after {
    content: "🍽";

    position: absolute;
    right: 8%;
    top: 50%;

    transform: translateY(-50%);

    width: 360px;
    height: 360px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            #303030 0%,
            #181818 60%,
            #090909 61%
        );

    border: 12px solid #222;

    font-size: 120px;

    box-shadow:
        0 30px 90px rgba(0, 0, 0, .65),
        0 0 0 1px rgba(255, 255, 255, .05);

    opacity: .95;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.2),
            transparent
        );
}

.hero-content {
    width: 100%;
    max-width: 1240px;

    margin: auto;
    padding: 80px 24px;

    position: relative;
    z-index: 2;
}

.hero-kicker {
    color: var(--orange);
    font-size: 13px;
    font-weight: 800;

    letter-spacing: 4px;
}

.hero h1 {
    color: var(--white);

    font-size: clamp(56px, 8vw, 104px);
    line-height: .9;

    margin: 14px 0 8px;

    letter-spacing: -4px;
}

.hero-subtitle {
    color: var(--white);

    font-size: clamp(17px, 2vw, 25px);
    font-weight: 600;

    letter-spacing: 2px;
}

.hero-text {
    max-width: 520px;

    margin: 22px 0 30px;

    color: #c5c5c5;

    font-size: 17px;
    line-height: 1.75;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

/* =========================================================
   BUTTONS
========================================================= */

.btn-primary,
.btn-secondary,
.btn-light {
    min-height: 48px;

    padding: 13px 22px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 999px;

    font-size: 14px;
    font-weight: 800;
}

.btn-primary {
    background: var(--orange);
    color: var(--white);
}

.btn-primary:hover {
    background: var(--orange-dark);
}

.btn-secondary {
    color: var(--white);

    border: 1px solid rgba(255,255,255,.25);

    background: rgba(255,255,255,.04);
}

.btn-light {
    background: var(--white);
    color: var(--black);
}

/* =========================================================
   FLASH
========================================================= */

.flash-wrapper {
    position: fixed;

    top: 90px;
    left: 50%;

    transform: translateX(-50%);

    width: calc(100% - 30px);
    max-width: 680px;

    z-index: 2000;
}

.flash-success {
    padding: 14px 18px;

    background: #daf5e4;
    color: #146c34;

    border: 1px solid #a9e0bc;
    border-radius: 12px;

    box-shadow: var(--shadow);

    font-weight: 700;
}

/* =========================================================
   TABLE ACTIVE
========================================================= */

.table-status {
    background: var(--orange);
    color: var(--white);
}

.table-status-inner {
    max-width: 1240px;

    margin: auto;
    padding: 15px 24px;

    display: flex;
    align-items: center;
    gap: 14px;
}

.table-status-icon {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    display: grid;
    place-items: center;

    background: rgba(255,255,255,.16);

    border-radius: 50%;

    font-size: 22px;
}

.table-status-content {
    flex: 1;

    display: flex;
    flex-direction: column;
}

.table-status-content small {
    opacity: .8;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.table-status-content strong {
    font-size: 18px;
}

.table-status-content span {
    opacity: .9;
    font-size: 13px;
}

.table-leave {
    border: 1px solid rgba(255,255,255,.55);

    background: transparent;
    color: var(--white);

    padding: 9px 14px;

    border-radius: 999px;

    font-weight: 700;
}

/* =========================================================
   SERVICES
========================================================= */

.service-strip {
    max-width: 1160px;

    position: relative;
    z-index: 5;

    margin: -40px auto 40px;

    padding: 0 20px;

    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.service-item {
    min-height: 90px;

    background: var(--white);

    display: flex;
    align-items: center;
    gap: 13px;

    padding: 20px 25px;

    border-right: 1px solid #ececec;

    box-shadow: var(--shadow);
}

.service-item:first-child {
    border-radius: var(--radius) 0 0 var(--radius);
}

.service-item:last-child {
    border-radius: 0 var(--radius) var(--radius) 0;
    border-right: 0;
}

.service-icon {
    width: 48px;
    height: 48px;

    flex: 0 0 48px;

    display: grid;
    place-items: center;

    background: #fff2e8;

    border-radius: 50%;

    font-size: 22px;
}

.service-item strong,
.service-item span {
    display: block;
}

.service-item strong {
    font-size: 15px;
}

.service-item span {
    margin-top: 3px;

    color: var(--gray-600);

    font-size: 12px;
}

/* =========================================================
   SECTIONS
========================================================= */

.section {
    max-width: 1240px;

    margin: auto;
    padding: 65px 24px;
}

.section-heading {
    max-width: 620px;

    margin: 0 auto 38px;

    text-align: center;
}

.section-kicker {
    color: var(--orange);

    font-size: 12px;
    font-weight: 900;

    letter-spacing: 2.5px;
}

.section-heading h2 {
    margin: 8px 0 10px;

    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.1;
}

.section-heading p {
    margin: 0;

    color: var(--gray-600);
}

/* =========================================================
   SPECIAL
========================================================= */

.special-card {
    max-width: 900px;

    margin: auto;

    display: grid;
    grid-template-columns: 1.05fr .95fr;

    overflow: hidden;

    background: var(--black-soft);

    border-radius: 24px;

    box-shadow: var(--shadow);
}

.special-image {
    min-height: 360px;

    position: relative;

    background: #202020;
}

.special-image img {
    width: 100%;
    height: 100%;
    min-height: 360px;

    object-fit: cover;
}

.special-badge {
    position: absolute;

    top: 20px;
    left: 20px;

    padding: 8px 13px;

    background: var(--orange);
    color: var(--white);

    border-radius: 999px;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: 1px;
}

.special-content {
    padding: 42px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    color: var(--white);
}

.special-label {
    color: var(--orange);

    font-size: 12px;
    font-weight: 900;

    letter-spacing: 2px;
    text-transform: uppercase;
}

.special-content h3 {
    margin: 8px 0 12px;

    font-size: 34px;
}

.special-content p {
    color: var(--gray-400);

    line-height: 1.8;
}

.special-bottom {
    margin-top: 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.special-price {
    color: var(--orange);

    font-size: 32px;
    font-weight: 900;
}

.special-price span {
    font-size: 15px;
}

/* =========================================================
   CATEGORY PILLS
========================================================= */

.category-scroll {
    margin-bottom: 34px;

    display: flex;
    gap: 10px;

    overflow-x: auto;

    padding: 4px 2px 12px;

    scrollbar-width: thin;
}

.category-pill {
    flex: 0 0 auto;

    padding: 11px 17px;

    background: var(--white);
    color: var(--gray-800);

    border: 1px solid var(--gray-200);

    border-radius: 999px;

    font-size: 13px;
    font-weight: 700;

    transition: .2s;
}

.category-pill:hover,
.category-pill.active {
    background: var(--orange);
    border-color: var(--orange);

    color: var(--white);
}

/* =========================================================
   PRODUCTS
========================================================= */

.product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.product-card {
    overflow: hidden;

    background: var(--white);

    border: 1px solid #ececec;
    border-radius: var(--radius);

    box-shadow: 0 7px 24px rgba(0,0,0,.06);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.product-card:hover {
    transform: translateY(-5px);

    box-shadow: 0 18px 35px rgba(0,0,0,.1);
}

.product-image {
    position: relative;

    height: 200px;

    overflow: hidden;

    background: var(--charcoal);
}

.product-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.food-placeholder {
    width: 100%;
    height: 100%;
    min-height: inherit;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 8px;

    color: #666;

    background:
        radial-gradient(
            circle at center,
            #292929,
            #151515
        );
}

.food-placeholder span {
    font-size: 54px;
    filter: grayscale(.3);
}

.food-placeholder small {
    color: #8d8d8d;

    font-size: 11px;
}

.featured-badge {
    position: absolute;

    top: 12px;
    left: 12px;

    padding: 6px 10px;

    border-radius: 999px;

    background: var(--orange);
    color: var(--white);

    font-size: 10px;
    font-weight: 800;
}

.product-content {
    padding: 18px;
}

.product-category {
    color: var(--orange);

    font-size: 10px;
    font-weight: 900;

    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.product-content h3 {
    min-height: 48px;

    margin: 7px 0;

    font-size: 18px;
    line-height: 1.3;
}

.product-description {
    min-height: 56px;

    margin: 0;

    color: var(--gray-600);

    font-size: 12px;
    line-height: 1.55;
}

.product-footer {
    margin-top: 18px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.product-price {
    color: var(--black);

    font-size: 21px;
    font-weight: 900;
}

.currency-symbol {
    color: var(--orange);
}

.currency-text {
    color: var(--orange);

    font-size: 11px;
}

.btn-add {
    width: 42px;
    height: 42px;

    border: 0;
    border-radius: 50%;

    background: var(--orange);
    color: var(--white);

    display: grid;
    place-items: center;

    font-size: 24px;
    font-weight: 400;

    transition: .2s;
}

.btn-add:hover {
    background: var(--orange-dark);
    transform: scale(1.06);
}

.special-bottom .btn-add {
    width: auto;
    height: 44px;

    padding: 0 18px;

    border-radius: 999px;

    font-size: 13px;
    font-weight: 800;
}

/* =========================================================
   EMPTY
========================================================= */

.empty-products {
    max-width: 580px;

    margin: auto;
    padding: 50px 25px;

    background: var(--white);

    border-radius: var(--radius);

    text-align: center;
}

.empty-icon {
    font-size: 46px;
}

.empty-products h3 {
    margin-bottom: 7px;
}

.empty-products p {
    color: var(--gray-600);
    margin-bottom: 24px;
}

/* =========================================================
   DELIVERY
========================================================= */

.delivery-banner {
    padding: 55px 24px;

    background:
        linear-gradient(
            115deg,
            var(--orange-dark),
            var(--orange)
        );

    color: var(--white);
}

.delivery-content {
    max-width: 1100px;

    margin: auto;

    display: flex;
    align-items: center;
    gap: 24px;
}

.delivery-content > span {
    font-size: 60px;
}

.delivery-content > div {
    flex: 1;
}

.delivery-content small {
    font-weight: 900;
    letter-spacing: 2px;

    opacity: .8;
}

.delivery-content h2 {
    margin: 3px 0;

    font-size: 34px;
}

.delivery-content p {
    margin: 0;

    opacity: .88;
}

/* =========================================================
   FOOTER
========================================================= */

.footer {
    padding: 55px 24px 100px;

    background: var(--black);
    color: var(--gray-400);
}

.footer-content {
    max-width: 1100px;

    margin: auto;

    display: grid;
    grid-template-columns: 2fr 1fr 1fr;

    gap: 45px;
}

.footer-brand {
    color: var(--white);

    font-size: 30px;
    font-weight: 900;

    letter-spacing: 1px;
}

.footer h3 {
    color: var(--white);

    margin-top: 0;

    font-size: 14px;
}

.footer p {
    font-size: 13px;
    line-height: 1.8;
}

.footer-bottom {
    max-width: 1100px;

    margin: 30px auto 0;
    padding-top: 22px;

    border-top: 1px solid #272727;

    font-size: 12px;
}

/* =========================================================
   MOBILE NAV
========================================================= */

.mobile-bottom-nav {
    display: none;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {

    .product-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .hero::after {
        right: -8%;
        opacity: .55;
    }
}

@media (max-width: 780px) {

    body {
        padding-bottom: 72px;
    }

    .desktop-nav {
        display: none;
    }

    .header-inner {
        min-height: 65px;

        padding-left: 16px;
        padding-right: 16px;
    }

    .brand-mark {
        width: 42px;
        height: 42px;

        font-size: 15px;
    }

    .brand-name {
        font-size: 18px;
    }

    .brand-subtitle {
        font-size: 9px;
    }

    .hero {
        min-height: 520px;
    }

    .hero::after {
        width: 250px;
        height: 250px;

        right: -90px;
        top: 30%;

        font-size: 80px;

        opacity: .34;
    }

    .hero-content {
        padding: 65px 20px;
    }

    .hero h1 {
        font-size: 58px;

        letter-spacing: -2px;
    }

    .hero-text {
        max-width: 90%;

        font-size: 15px;
    }

    .hero-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .hero-actions a {
        width: 100%;
        max-width: 280px;
    }

    .service-strip {
        margin-top: -25px;

        grid-template-columns: 1fr;

        gap: 1px;
    }

    .service-item {
        min-height: 78px;

        border-right: none;

        box-shadow: 0 10px 25px rgba(0,0,0,.08);
    }

    .service-item:first-child {
        border-radius: var(--radius) var(--radius) 0 0;
    }

    .service-item:last-child {
        border-radius: 0 0 var(--radius) var(--radius);
    }

    .section {
        padding: 45px 16px;
    }

    .section-heading {
        margin-bottom: 28px;
    }

    .special-card {
        grid-template-columns: 1fr;
    }

    .special-image,
    .special-image img {
        min-height: 260px;
    }

    .special-content {
        padding: 28px 22px;
    }

    .special-content h3 {
        font-size: 27px;
    }

    .product-grid {
        grid-template-columns: repeat(2, 1fr);

        gap: 12px;
    }

    .product-image {
        height: 155px;
    }

    .product-content {
        padding: 14px;
    }

    .product-content h3 {
        min-height: 42px;

        font-size: 15px;
    }

    .product-description {
        display: none;
    }

    .product-price {
        font-size: 17px;
    }

    .delivery-content {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .delivery-content > span {
        font-size: 42px;
    }

    .delivery-content h2 {
        font-size: 27px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .mobile-bottom-nav {
        position: fixed;

        left: 0;
        right: 0;
        bottom: 0;

        z-index: 3000;

        height: 68px;

        display: grid;
        grid-template-columns: repeat(3, 1fr);

        background: rgba(15,15,15,.98);

        border-top: 1px solid #2b2b2b;

        box-shadow: 0 -8px 25px rgba(0,0,0,.15);
    }

    .mobile-bottom-nav a {
        position: relative;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        color: #d5d5d5;

        font-size: 10px;
    }

    .mobile-bottom-nav a:hover {
        color: var(--orange);
    }

    .bottom-icon {
        margin-bottom: 2px;

        font-size: 19px;
    }

    .mobile-cart-link strong {
        position: absolute;

        top: 7px;
        right: calc(50% - 28px);

        width: 18px;
        height: 18px;

        display: grid;
        place-items: center;

        border-radius: 50%;

        background: var(--orange);
        color: var(--white);

        font-size: 9px;
    }

    .table-status-inner {
        padding: 12px 15px;
    }

    .table-status-content span {
        display: none;
    }
}

@media (max-width: 390px) {

    .product-grid {
        grid-template-columns: 1fr;
    }

    .product-image {
        height: 210px;
    }

    .product-description {
        display: block;
        min-height: auto;
    }
}


/* =========================================================
   FLASH ERROR
========================================================= */

.flash-error {
    padding: 14px 18px;

    background: #fde2e2;
    color: #9e1d1d;

    border: 1px solid #f4b8b8;
    border-radius: 12px;

    box-shadow: var(--shadow);

    font-weight: 700;
}


/* =========================================================
   CART
========================================================= */

.cart-page {
    min-height: 70vh;

    padding: 65px 24px 90px;

    background: #f5f5f5;
}

.cart-container {
    max-width: 1180px;
    margin: auto;
}

.cart-heading {
    margin-bottom: 32px;
}

.cart-heading h1 {
    margin: 5px 0 5px;

    font-size: 42px;
}

.cart-heading p {
    margin: 0;
    color: var(--gray-600);
}

.cart-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        360px;

    gap: 28px;

    align-items: start;
}

.cart-items {
    display: flex;
    flex-direction: column;

    gap: 14px;
}

.cart-item {
    display: grid;

    grid-template-columns:
        115px
        minmax(0, 1fr)
        auto;

    gap: 18px;

    padding: 15px;

    background: var(--white);

    border-radius: 18px;

    border: 1px solid #ececec;

    box-shadow:
        0 5px 20px
        rgba(0, 0, 0, .04);
}

.cart-item-image {
    width: 115px;
    height: 115px;

    overflow: hidden;

    border-radius: 14px;

    background: #1c1c1c;
}

.cart-item-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.cart-item-placeholder {
    width: 100%;
    height: 100%;

    display: grid;
    place-items: center;

    font-size: 40px;

    background:
        radial-gradient(
            circle,
            #333,
            #151515
        );
}

.cart-item-info {
    display: flex;
    flex-direction: column;

    justify-content: center;
}

.cart-item-info h3 {
    margin: 0 0 5px;

    font-size: 18px;
}

.cart-item-unit-price {
    color: var(--orange);

    font-size: 14px;
    font-weight: 800;
}

.quantity-controls {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-top: 13px;
}

.quantity-controls form {
    margin: 0;
}

.quantity-controls button {
    width: 32px;
    height: 32px;

    display: grid;
    place-items: center;

    padding: 0;

    background: #eeeeee;
    color: #111;

    border: 0;

    border-radius: 50%;

    font-size: 19px;
}

.quantity-controls button:hover {
    background: var(--orange);
    color: var(--white);
}

.quantity-controls span {
    min-width: 34px;

    text-align: center;

    font-weight: 800;
}

.cart-item-right {
    min-width: 100px;

    display: flex;
    flex-direction: column;

    align-items: flex-end;
    justify-content: space-between;

    padding: 5px 0;
}

.cart-item-right strong {
    font-size: 19px;
}

.remove-item {
    padding: 0;

    border: 0;

    background: none;
    color: #b32929;

    font-size: 12px;
    font-weight: 700;
}

.cart-summary {
    position: sticky;

    top: 100px;

    padding: 26px;

    background: var(--black-soft);
    color: var(--white);

    border-radius: 20px;

    box-shadow: var(--shadow);
}

.cart-summary h2 {
    margin: 0 0 22px;

    font-size: 25px;
}

.cart-table-info,
.cart-delivery-info {
    margin-bottom: 22px;

    padding: 14px;

    background: rgba(245,130,32,.12);

    border:
        1px solid
        rgba(245,130,32,.35);

    border-radius: 12px;
}

.cart-table-info span,
.cart-delivery-info span {
    display: block;

    color: var(--orange);

    font-size: 12px;
    font-weight: 800;
}

.cart-table-info strong {
    display: block;

    margin-top: 3px;

    font-size: 19px;
}

.cart-delivery-info small {
    display: block;

    margin-top: 5px;

    color: #b5b5b5;

    line-height: 1.5;
}

.summary-row {
    display: flex;

    justify-content: space-between;

    gap: 20px;

    padding: 13px 0;

    border-bottom:
        1px solid
        rgba(255,255,255,.08);

    font-size: 14px;
}

.summary-row.muted {
    color: #969696;

    font-size: 12px;
}

.summary-total {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 22px 0;
}

.summary-total span {
    font-size: 14px;
}

.summary-total strong {
    color: var(--orange);

    font-size: 27px;
}

.checkout-button {
    width: 100%;

    min-height: 52px;

    border: 0;

    border-radius: 999px;

    background: var(--orange);
    color: var(--white);

    font-weight: 900;
}

.checkout-button:disabled {
    opacity: .65;
    cursor: not-allowed;
}

.checkout-note {
    display: block;

    margin-top: 9px;

    color: #858585;

    text-align: center;

    font-size: 10px;
}

.continue-shopping {
    display: block;

    margin-top: 20px;

    text-align: center;

    color: #b7b7b7;

    font-size: 13px;
}

.continue-shopping:hover {
    color: var(--orange);
}

.cart-clear-area {
    margin-top: 20px;
}

.clear-cart {
    padding: 9px 0;

    background: none;
    color: #9b3333;

    border: 0;

    font-size: 12px;
    font-weight: 800;
}

.empty-cart {
    max-width: 560px;

    margin: 30px auto;

    padding: 60px 30px;

    background: var(--white);

    border-radius: 22px;

    text-align: center;

    box-shadow:
        0 8px 30px
        rgba(0,0,0,.06);
}

.empty-cart-icon {
    font-size: 60px;
}

.empty-cart h2 {
    margin: 10px 0 7px;

    font-size: 27px;
}

.empty-cart p {
    margin-bottom: 25px;

    color: var(--gray-600);
}


/* =========================================================
   CART RESPONSIVE
========================================================= */

@media (max-width: 850px) {

    .cart-layout {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
    }
}

@media (max-width: 600px) {

    .cart-page {
        padding:
            38px
            14px
            75px;
    }

    .cart-heading h1 {
        font-size: 32px;
    }

    .cart-item {
        grid-template-columns:
            82px
            minmax(0, 1fr);

        gap: 12px;
    }

    .cart-item-image {
        width: 82px;
        height: 82px;
    }

    .cart-item-right {
        grid-column:
            1 / -1;

        width: 100%;

        padding-top: 10px;

        flex-direction: row;

        align-items: center;

        border-top:
            1px solid
            #eeeeee;
    }

    .cart-summary {
        padding: 22px 18px;
    }
}


/* ========================================================
   RB TOUR - PANIER
   ======================================================== */

.cart-page {
    padding: 48px 0 120px;
    background: #f7f7f7;
    min-height: 70vh;
}

.cart-page .container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.cart-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 32px;
}

.cart-header h1 {
    margin: 6px 0 8px;
    font-size: clamp(34px, 5vw, 54px);
    line-height: 1;
    color: #111111;
}

.cart-header p {
    margin: 0;
    color: #6b6b6b;
    font-size: 16px;
}

.section-kicker {
    color: #f58220;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border: 1px solid #d6d6d6;
    border-radius: 14px;
    background: #ffffff;
    color: #111111;
    font-weight: 700;
    transition: .2s ease;
}

.btn-secondary:hover {
    border-color: #f58220;
    color: #f58220;
}

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 30px;
    align-items: start;
}

.cart-items {
    display: grid;
    gap: 16px;
}

.cart-item {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 20px;
    padding: 16px;
    background: #ffffff;
    border-radius: 22px;
    box-shadow: 0 8px 24px rgba(0,0,0,.05);
}

.cart-item-image {
    min-height: 140px;
    border-radius: 17px;
    overflow: hidden;
    background: #181818;
}

.cart-item-image img {
    width: 100%;
    height: 100%;
    min-height: 140px;
    object-fit: cover;
    display: block;
}

.cart-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 140px;
    font-size: 48px;
}

.cart-item-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
}

.cart-item-top {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.cart-item-name {
    margin: 4px 0 7px;
    color: #111111;
    font-size: 21px;
}

.cart-unit-price {
    color: #f58220;
    font-size: 16px;
    font-weight: 800;
}

.cart-unit-price span {
    color: #888888;
    font-weight: 500;
    font-size: 13px;
}

.cart-remove {
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: #f5f5f5;
    color: #555555;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    transition: .2s ease;
}

.cart-remove:hover {
    background: #111111;
    color: #ffffff;
}

.cart-item-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
}

.quantity-control {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: #f3f3f3;
    padding: 6px;
    border-radius: 14px;
}

.quantity-button {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 10px;
    background: #ffffff;
    color: #111111;
    font-size: 20px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 2px 7px rgba(0,0,0,.06);
}

.quantity-button:hover {
    background: #f58220;
    color: #ffffff;
}

.quantity-value {
    min-width: 27px;
    text-align: center;
    color: #111111;
    font-weight: 800;
}

.cart-line-total {
    color: #111111;
    font-size: 21px;
    font-weight: 900;
}

.clear-cart-form {
    display: flex;
    justify-content: flex-end;
    margin-top: 4px;
}

.clear-cart-button {
    border: 0;
    background: transparent;
    color: #a02a2a;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.clear-cart-button:hover {
    text-decoration: underline;
}

.cart-summary {
    position: sticky;
    top: 100px;
    padding: 27px;
    border-radius: 24px;
    background: #111111;
    color: #ffffff;
    box-shadow: 0 14px 40px rgba(0,0,0,.15);
}

.cart-summary h2 {
    margin: 6px 0 25px;
    font-size: 26px;
}

.summary-row,
.summary-total {
    display: flex;
    justify-content: space-between;
    gap: 20px;
}

.summary-row {
    color: #bdbdbd;
    font-size: 15px;
}

.summary-row strong {
    color: #ffffff;
}

.summary-separator {
    height: 1px;
    margin: 22px 0;
    background: rgba(255,255,255,.12);
}

.summary-total {
    margin: 13px 0;
    align-items: center;
}

.summary-total span {
    color: #d0d0d0;
    font-size: 14px;
}

.summary-total strong {
    color: #f58220;
    font-size: 21px;
}

.currency-warning {
    margin-top: 18px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(245,130,32,.12);
    color: #ffb26e;
    font-size: 13px;
    line-height: 1.5;
}

.cart-payment-info {
    display: grid;
    gap: 6px;
    margin: 24px 0;
    padding: 16px 0;
    border-top: 1px solid rgba(255,255,255,.12);
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.cart-payment-info strong {
    color: #ffffff;
}

.cart-payment-info span {
    color: #adadad;
    font-size: 13px;
    line-height: 1.5;
}

.cart-summary .btn-primary {
    width: 100%;
}

.checkout-disabled {
    opacity: .75;
}

.continue-shopping {
    display: block;
    margin-top: 16px;
    text-align: center;
    color: #bdbdbd;
    font-size: 14px;
}

.continue-shopping:hover {
    color: #f58220;
}

.empty-cart {
    max-width: 620px;
    margin: 40px auto;
    padding: 60px 30px;
    text-align: center;
    background: #ffffff;
    border-radius: 26px;
    box-shadow: 0 10px 30px rgba(0,0,0,.05);
}

.empty-cart-icon {
    margin-bottom: 15px;
    font-size: 65px;
}

.empty-cart h2 {
    margin: 0 0 10px;
    color: #111111;
    font-size: 28px;
}

.empty-cart p {
    margin: 0 0 25px;
    color: #777777;
}

@media (max-width: 900px) {

    .cart-layout {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
    }

}

@media (max-width: 700px) {

    .cart-page {
        padding-top: 30px;
    }

    .cart-header {
        display: grid;
    }

    .cart-header .btn-secondary {
        justify-self: start;
    }

    .cart-item {
        grid-template-columns: 95px minmax(0, 1fr);
        gap: 13px;
        padding: 12px;
        border-radius: 18px;
    }

    .cart-item-image,
    .cart-item-image img,
    .cart-image-placeholder {
        min-height: 95px;
    }

    .cart-item-name {
        font-size: 17px;
    }

    .cart-item-bottom {
        align-items: flex-end;
        gap: 12px;
        margin-top: 14px;
    }

    .quantity-button {
        width: 34px;
        height: 34px;
    }

    .cart-line-total {
        font-size: 17px;
    }

}

@media (max-width: 460px) {

    .cart-page .container {
        width: min(100% - 20px, 1180px);
    }

    .cart-item {
        grid-template-columns: 1fr;
    }

    .cart-item-image,
    .cart-item-image img,
    .cart-image-placeholder {
        height: 180px;
    }

}


/* ========================================================
   RB TOUR - CHECKOUT
   ======================================================== */

.checkout-page {
    padding: 48px 0 120px;
    background: #f7f7f7;
    min-height: 80vh;
}

.checkout-container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.checkout-heading {
    max-width: 760px;
    margin-bottom: 32px;
}

.checkout-heading h1 {
    margin: 7px 0 10px;
    color: #111111;
    font-size: clamp(32px, 5vw, 52px);
    line-height: 1.05;
}

.checkout-heading p {
    margin: 0;
    color: #737373;
}

.checkout-errors {
    margin-bottom: 25px;
    padding: 18px 20px;
    border-radius: 16px;
    background: #fff0f0;
    color: #8b2020;
}

.checkout-errors ul {
    margin: 8px 0 0;
    padding-left: 20px;
}

.checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 370px;
    gap: 30px;
    align-items: start;
}

.checkout-main {
    display: grid;
    gap: 18px;
}

.checkout-card {
    padding: 25px;
    background: #ffffff;
    border-radius: 22px;
    box-shadow: 0 8px 25px rgba(0,0,0,.05);
}

.checkout-card h2 {
    margin: 0 0 20px;
    color: #111111;
    font-size: 21px;
}

.order-type-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}

.order-type-option {
    cursor: pointer;
}

.order-type-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.order-type-content {
    display: grid;
    gap: 5px;
    min-height: 135px;
    padding: 20px;
    border: 2px solid #ededed;
    border-radius: 18px;
    background: #fafafa;
    transition: .2s ease;
}

.order-type-option input:checked +
.order-type-content {
    border-color: #f58220;
    background: #fff6ee;
    box-shadow: 0 0 0 3px rgba(245,130,32,.08);
}

.order-type-icon {
    font-size: 30px;
}

.order-type-content strong {
    color: #111111;
    font-size: 18px;
}

.order-type-content small {
    color: #777777;
}

.detected-table {
    display: grid;
    gap: 5px;
    padding: 20px;
    border-radius: 17px;
    background: #111111;
    color: #ffffff;
}

.detected-table span {
    color: #f58220;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.detected-table strong {
    font-size: 27px;
}

.detected-table small {
    color: #bcbcbc;
}

.checkout-notice {
    display: grid;
    gap: 7px;
    padding: 18px;
    border-radius: 15px;
    background: #fff5e9;
    color: #6e4b26;
    line-height: 1.5;
}

.checkout-fields {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 17px;
}

.checkout-field {
    display: grid;
    gap: 7px;
}

.checkout-field-full {
    grid-column: 1 / -1;
}

.checkout-field label {
    color: #333333;
    font-size: 14px;
    font-weight: 700;
}

.checkout-field input,
.checkout-field select,
.checkout-field textarea {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #dedede;
    border-radius: 12px;
    outline: none;
    background: #ffffff;
    color: #111111;
    font: inherit;
    transition: .2s ease;
}

.checkout-field input:focus,
.checkout-field select:focus,
.checkout-field textarea:focus {
    border-color: #f58220;
    box-shadow: 0 0 0 3px rgba(245,130,32,.10);
}

.cash-payment {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px;
    border-radius: 16px;
    background: #f5f5f5;
}

.cash-payment-icon {
    font-size: 32px;
}

.cash-payment strong {
    display: block;
    color: #111111;
}

.cash-payment p {
    margin: 4px 0 0;
    color: #777777;
    font-size: 14px;
}

.checkout-summary {
    position: sticky;
    top: 100px;
    padding: 27px;
    border-radius: 24px;
    background: #111111;
    color: #ffffff;
    box-shadow: 0 14px 40px rgba(0,0,0,.15);
}

.checkout-summary h2 {
    margin: 6px 0 22px;
    font-size: 26px;
}

.checkout-products {
    display: grid;
    gap: 14px;
}

.checkout-product {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 8px;
    align-items: start;
    color: #d0d0d0;
    font-size: 14px;
}

.checkout-product-quantity {
    color: #f58220;
    font-weight: 800;
}

.checkout-product strong {
    color: #ffffff;
    white-space: nowrap;
}

.checkout-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.13);
}

.checkout-total span {
    color: #cccccc;
}

.checkout-total strong {
    color: #f58220;
    font-size: 24px;
}

.delivery-fee-message {
    margin: 15px 0 22px;
    color: #999999;
    font-size: 12px;
    line-height: 1.5;
}

.checkout-submit {
    width: 100%;
    min-height: 52px;
    border: 0;
    border-radius: 14px;
    background: #f58220;
    color: #ffffff;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
    transition: .2s ease;
}

.checkout-submit:hover {
    transform: translateY(-1px);
}

.checkout-back {
    display: block;
    margin-top: 16px;
    text-align: center;
    color: #aaaaaa;
    font-size: 14px;
}

.checkout-back:hover {
    color: #f58220;
}


/* ========================================================
   ORDER SUCCESS
   ======================================================== */

.order-success-page {
    padding: 55px 16px 120px;
    background: #f7f7f7;
    min-height: 80vh;
}

.order-success-card {
    width: min(680px, 100%);
    margin: 0 auto;
    padding: 40px;
    border-radius: 28px;
    background: #ffffff;
    text-align: center;
    box-shadow: 0 15px 45px rgba(0,0,0,.08);
}

.success-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 74px;
    height: 74px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background: #f58220;
    color: #ffffff;
    font-size: 40px;
    font-weight: 900;
}

.order-success-card h1 {
    margin: 8px 0 8px;
    color: #111111;
    font-size: clamp(30px, 5vw, 44px);
}

.order-success-card > p {
    color: #777777;
}

.order-number-box {
    display: grid;
    gap: 6px;
    margin: 28px 0;
    padding: 20px;
    border-radius: 17px;
    background: #111111;
}

.order-number-box span {
    color: #bcbcbc;
    font-size: 13px;
}

.order-number-box strong {
    color: #f58220;
    font-size: 26px;
    letter-spacing: .05em;
}

.success-service-info {
    display: grid;
    gap: 5px;
    margin-bottom: 25px;
    padding: 16px;
    border-radius: 15px;
    background: #f6f6f6;
}

.success-service-info span {
    color: #777777;
}

.success-service-info strong {
    color: #111111;
    font-size: 19px;
}

.success-service-info small {
    color: #777777;
}

.success-items {
    display: grid;
    gap: 11px;
    margin: 25px 0;
    text-align: left;
}

.success-items > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid #eeeeee;
    color: #555555;
}

.success-items strong {
    color: #111111;
}

.success-total {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #fff5eb;
}

.success-total strong {
    color: #f58220;
    font-size: 22px;
}

.success-payment {
    display: grid;
    gap: 5px;
    margin: 20px 0 28px;
}

.success-payment strong {
    color: #111111;
}

.success-payment span {
    color: #777777;
    font-size: 14px;
}

@media (max-width: 900px) {

    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .checkout-summary {
        position: static;
    }

}

@media (max-width: 600px) {

    .checkout-page {
        padding-top: 30px;
    }

    .checkout-container {
        width: min(100% - 20px, 1180px);
    }

    .order-type-grid,
    .checkout-fields {
        grid-template-columns: 1fr;
    }

    .checkout-field-full {
        grid-column: auto;
    }

    .checkout-card {
        padding: 18px;
    }

    .order-success-card {
        padding: 28px 18px;
    }

}


/* ========================================================
   RB TOUR - ADMINISTRATION
   ======================================================== */

.admin-body {
    margin: 0;
    background: #f4f4f4;
    color: #111111;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 245px minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 28px 20px;
    background: #111111;
    color: #ffffff;
}

.admin-brand {
    display: grid;
    margin-bottom: 40px;
}

.admin-brand strong {
    color: #f58220;
    font-size: 25px;
}

.admin-brand span {
    color: #999999;
    font-size: 12px;
}

.admin-nav {
    display: grid;
    gap: 8px;
}

.admin-nav a {
    padding: 13px 14px;
    border-radius: 10px;
    color: #dddddd;
}

.admin-nav a:hover {
    background: #222222;
    color: #f58220;
}

.admin-logout {
    position: absolute;
    left: 20px;
    bottom: 25px;
    width: calc(100% - 40px);
    padding: 12px;
    border: 0;
    border-radius: 10px;
    background: #2a2a2a;
    color: #ffffff;
    cursor: pointer;
}

.admin-content {
    padding: 35px;
}

.admin-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.admin-page-header span {
    color: #f58220;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.admin-page-header h1 {
    margin: 3px 0 0;
    font-size: 36px;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 28px;
}

.admin-stat-card {
    padding: 22px;
    border-radius: 18px;
    background: #ffffff;
}

.admin-stat-card span {
    color: #777777;
    font-size: 13px;
}

.admin-stat-card strong {
    display: block;
    margin-top: 5px;
    font-size: 34px;
}

.admin-panel {
    padding: 24px;
    border-radius: 20px;
    background: #ffffff;
}

.admin-panel h2 {
    margin-top: 0;
}

.admin-table-wrapper {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #eeeeee;
    text-align: left;
    vertical-align: middle;
}

.admin-table th {
    color: #777777;
    font-size: 12px;
    text-transform: uppercase;
}

.admin-table td small {
    display: block;
    margin-top: 3px;
    color: #999999;
}

.admin-table a {
    color: #f58220;
    font-weight: 700;
}

.admin-status {
    display: inline-flex;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
}

.admin-status-new {
    background: #fff0e4;
    color: #d56300;
}

.admin-status-confirmed {
    background: #e8f1ff;
    color: #2865bd;
}

.admin-status-preparing {
    background: #fff8dc;
    color: #8d6d00;
}

.admin-status-ready {
    background: #e4f8e9;
    color: #21743a;
}

.admin-status-delivered,
.admin-status-served {
    background: #e7f7ed;
    color: #20763c;
}

.admin-status-cancelled {
    background: #ffeaea;
    color: #a22b2b;
}

.admin-filters {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
}

.admin-filters select,
.admin-status-select {
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid #dddddd;
    border-radius: 10px;
    background: #ffffff;
}

.admin-filters button,
.admin-primary-button,
.admin-secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
    cursor: pointer;
}

.admin-primary-button {
    background: #f58220;
    color: #ffffff;
}

.admin-secondary-button {
    background: #ffffff;
    color: #111111;
    border: 1px solid #dddddd;
}

.admin-alert-success {
    margin-bottom: 20px;
    padding: 14px 18px;
    border-radius: 12px;
    background: #e8f8ed;
    color: #20743b;
}

.admin-order-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr);
    gap: 22px;
}

.admin-order-item,
.admin-order-total {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 13px 0;
    border-bottom: 1px solid #eeeeee;
}

.admin-order-total {
    margin-top: 12px;
    border: 0;
    font-size: 20px;
}

.admin-order-total strong {
    color: #f58220;
}

.admin-info-list {
    display: grid;
    gap: 15px;
}

.admin-info-list div {
    display: grid;
    gap: 3px;
}

.admin-info-list span {
    color: #888888;
    font-size: 12px;
}

.admin-login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 20px;
    background: #111111;
}

.admin-login-card {
    width: min(440px, 100%);
    padding: 38px;
    border-radius: 24px;
    background: #ffffff;
}

.admin-login-logo {
    color: #f58220;
    font-size: 27px;
    font-weight: 900;
}

.admin-login-card > span {
    color: #888888;
    font-size: 12px;
}

.admin-login-card h1 {
    margin-bottom: 5px;
    font-size: 32px;
}

.admin-login-card > p {
    margin-top: 0;
    color: #777777;
}

.admin-login-field {
    display: grid;
    gap: 6px;
    margin: 18px 0;
}

.admin-login-field label {
    font-size: 13px;
    font-weight: 700;
}

.admin-login-field input {
    min-height: 46px;
    padding: 0 13px;
    border: 1px solid #dddddd;
    border-radius: 10px;
}

.admin-login-button {
    width: 100%;
    min-height: 48px;
    margin-top: 20px;
    border: 0;
    border-radius: 11px;
    background: #f58220;
    color: #ffffff;
    font-weight: 900;
    cursor: pointer;
}

.admin-remember {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
}

.admin-login-error {
    margin-top: 18px;
    padding: 12px;
    border-radius: 10px;
    background: #ffeaea;
    color: #a22b2b;
}

@media (max-width: 900px) {

    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: relative;
        height: auto;
    }

    .admin-logout {
        position: static;
        width: 100%;
        margin-top: 20px;
    }

    .admin-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-order-layout {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 600px) {

    .admin-content {
        padding: 20px 12px;
    }

    .admin-stats {
        grid-template-columns: 1fr;
    }

    .admin-page-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-filters {
        flex-direction: column;
    }

}


/* =========================================================
   RB TOUR - ADMIN CATALOGUE
   ========================================================= */

.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 28px;
}

.admin-page-header h1 {
    margin: 4px 0 8px;
}

.admin-page-header p {
    margin: 0;
    color: #777;
}

.admin-kicker {
    color: #f58220;
    font-size: 14px;
    font-weight: 800;
}

.admin-header-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.admin-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 13px 20px;
    border: 0;
    border-radius: 12px;
    background: #f58220;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.admin-btn.secondary {
    background: #222;
}

.admin-card {
    background: #fff;
    border-radius: 20px;
    padding: 28px;
    margin-bottom: 24px;
}

.admin-alert {
    padding: 16px 18px;
    border-radius: 12px;
    margin-bottom: 20px;
}

.admin-alert.success {
    background: #eaf8ef;
    color: #176b38;
}

.admin-alert.error {
    background: #fff0f0;
    color: #b42318;
}

.admin-grid-2 {
    display: grid;
    grid-template-columns: minmax(280px, .7fr) minmax(0, 1.5fr);
    gap: 24px;
}

.admin-form {
    display: grid;
    gap: 18px;
}

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

.admin-form input,
.admin-product-form input,
.admin-product-form select,
.admin-product-form textarea,
.admin-filters input,
.admin-filters select,
.admin-category-edit input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #ddd;
    border-radius: 11px;
    padding: 12px 14px;
    background: #fff;
    font: inherit;
}

.admin-category-list {
    display: grid;
    gap: 12px;
}

.admin-category-row {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 13px 0;
    border-bottom: 1px solid #eee;
}

.admin-category-edit {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 80px auto auto;
    gap: 10px;
    align-items: center;
    flex: 1;
}

.admin-category-edit .small-input {
    width: 80px;
}

.admin-count {
    color: #777;
    font-size: 13px;
    white-space: nowrap;
}

.admin-small-btn {
    border: 0;
    background: #111;
    color: #fff;
    padding: 10px 12px;
    border-radius: 9px;
    cursor: pointer;
}

.admin-status-btn {
    border: 0;
    padding: 9px 12px;
    border-radius: 999px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap;
}

.admin-status-btn.active {
    background: #e9f8ef;
    color: #17723d;
}

.admin-status-btn.inactive {
    background: #f4f4f4;
    color: #777;
}

.admin-filters {
    display: grid;
    grid-template-columns: 1fr 220px 180px auto;
    gap: 12px;
}

.admin-responsive-table {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-table th,
.admin-table td {
    text-align: left;
    padding: 15px 12px;
    border-bottom: 1px solid #eee;
    vertical-align: middle;
}

.admin-table th {
    color: #777;
    font-size: 13px;
    text-transform: uppercase;
}

.admin-product-thumb {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    object-fit: cover;
}

.admin-product-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111;
    color: #f58220;
    font-weight: 900;
}

.admin-muted {
    color: #888;
    font-size: 13px;
    margin-top: 5px;
}

.admin-link {
    color: #f58220;
    font-weight: 800;
    text-decoration: none;
}

.admin-pagination {
    margin-top: 20px;
}

.admin-product-form {
    display: grid;
    gap: 24px;
}

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

.admin-current-image img {
    width: 180px;
    height: 140px;
    object-fit: cover;
    border-radius: 14px;
}

.admin-checkbox-row {
    display: flex;
    gap: 26px;
    flex-wrap: wrap;
}

.admin-checkbox {
    display: flex !important;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 9px !important;
}

.admin-checkbox input {
    width: auto;
}

.admin-save-btn {
    justify-self: start;
}

@media (max-width: 900px) {

    .admin-grid-2,
    .admin-form-grid {
        grid-template-columns: 1fr;
    }

    .admin-filters {
        grid-template-columns: 1fr;
    }

    .admin-category-edit {
        grid-template-columns: 1fr 80px;
    }

    .admin-page-header {
        flex-direction: column;
    }
}



/* =========================================================
   RB TOUR - TABLES & QR CODES
   ========================================================= */

.table-help {
    display: grid;
    gap: 14px;
    color: #555;
    line-height: 1.6;
}

.admin-section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
}

.table-inline-edit {
    display: grid;
    grid-template-columns: 80px minmax(150px, 1fr) auto;
    gap: 8px;
    align-items: center;
    min-width: 390px;
}

.table-inline-edit input {
    box-sizing: border-box;
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 9px;
    font: inherit;
}

.qr-small-btn {
    padding: 9px 13px;
    border-radius: 9px;
    font-size: 13px;
}

.qr-admin-grid {
    display: grid;
    grid-template-columns:
        minmax(340px, .85fr)
        minmax(340px, 1.15fr);
    gap: 28px;
    align-items: start;
}

.qr-preview-card {
    text-align: center;
    border: 2px solid #f58220;
    background: #fff;
}

.qr-restaurant-name {
    color: #f58220;
    font-size: 32px;
    font-weight: 900;
    letter-spacing: .5px;
}

.qr-restaurant-subtitle {
    margin-top: 3px;
    color: #555;
    font-weight: 700;
}

.qr-preview-card h2 {
    margin-top: 28px;
    margin-bottom: 8px;
    font-size: 35px;
}

.qr-instruction {
    color: #555;
    line-height: 1.55;
}

.table-qrcode {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 290px;
    min-height: 290px;
    padding: 15px;
    box-sizing: border-box;
    margin: 22px auto;
    background: #fff;
    border: 1px solid #eee;
    border-radius: 16px;
}

.table-qrcode canvas,
.table-qrcode img {
    max-width: 100%;
    height: auto;
}

.qr-scan-text {
    font-size: 20px;
    font-weight: 900;
    color: #111;
    letter-spacing: 2px;
}

.qr-address {
    margin-top: 20px;
    color: #777;
    font-size: 13px;
}

.qr-info-list {
    display: grid;
    gap: 0;
    margin: 20px 0 28px;
}

.qr-info-list > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid #eee;
    padding: 15px 0;
}

.qr-info-list span {
    color: #777;
}

.qr-url-label {
    display: grid;
    gap: 9px;
    font-weight: 800;
}

.qr-url-label input {
    box-sizing: border-box;
    width: 100%;
    padding: 13px 14px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #f7f7f7;
}

.qr-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.qr-copy-message {
    min-height: 22px;
    margin-top: 10px;
    color: #17723d;
    font-weight: 700;
}

.qr-divider {
    margin: 28px 0;
    border: 0;
    border-top: 1px solid #eee;
}

.admin-danger-btn {
    border: 0;
    border-radius: 11px;
    background: #b42318;
    color: #fff;
    padding: 12px 16px;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 900px) {

    .qr-admin-grid {
        grid-template-columns: 1fr;
    }

    .table-inline-edit {
        min-width: 330px;
    }

}

@media print {

    .admin-sidebar,
    .admin-page-header,
    .qr-admin-grid > section:nth-child(2) {
        display: none !important;
    }

    .admin-content {
        margin: 0 !important;
        padding: 0 !important;
    }

    .qr-admin-grid {
        display: block;
    }

    .qr-preview-card {
        border: 2px solid #000;
        width: 420px;
        margin: 0 auto;
    }

}



/* =========================================================
   RB TOUR - TABLE ACTIVE
   ========================================================= */

.rb-table-banner {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 18px auto 24px;
    padding: 16px 18px;
    max-width: 1180px;
    box-sizing: border-box;
    background: #fff7ef;
    border: 1px solid #f58220;
    border-radius: 16px;
}

.rb-table-banner-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 50%;
    background: #f58220;
    color: #fff;
    font-size: 22px;
}

.rb-table-banner-content {
    display: grid;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.rb-table-banner-content span {
    color: #6e6e6e;
    font-size: 13px;
    font-weight: 700;
}

.rb-table-banner-content strong {
    color: #111;
    font-size: 20px;
    line-height: 1.2;
}

.rb-table-banner-content small {
    margin-top: 2px;
    color: #666;
    font-size: 13px;
}

.rb-table-banner-form {
    margin: 0;
}

.rb-table-banner-leave {
    border: 0;
    border-radius: 10px;
    padding: 10px 14px;
    background: #111;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
}

@media (max-width: 650px) {

    .rb-table-banner {
        margin: 12px 12px 20px;
        align-items: flex-start;
    }

    .rb-table-banner-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        font-size: 18px;
    }

    .rb-table-banner-content strong {
        font-size: 18px;
    }

    .rb-table-banner-leave {
        padding: 8px 10px;
        font-size: 12px;
    }
}



/* =========================================================
   RB TOUR - CHECKOUT SMART TABLE
   ========================================================= */

.checkout-page {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 35px 0 90px;
}

.checkout-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 24px;
}

.checkout-kicker {
    color: #f58220;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .5px;
}

.checkout-heading h1 {
    margin: 6px 0;
    color: #111;
    font-size: clamp(32px, 5vw, 48px);
    line-height: 1.05;
}

.checkout-heading p {
    margin: 0;
    color: #777;
}

.checkout-back {
    display: inline-flex;
    align-items: center;
    padding: 12px 16px;
    border-radius: 11px;
    background: #111;
    color: #fff;
    text-decoration: none;
    font-weight: 800;
}

.checkout-alert {
    padding: 16px 18px;
    margin-bottom: 20px;
    border-radius: 13px;
}

.checkout-alert-error {
    background: #fff0f0;
    color: #a71914;
}

.checkout-table-mode,
.checkout-delivery-mode {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    margin-bottom: 25px;
    border-radius: 17px;
}

.checkout-table-mode {
    border: 2px solid #f58220;
    background: #fff7ef;
}

.checkout-delivery-mode {
    border: 1px solid #ddd;
    background: #fff;
}

.checkout-table-icon,
.checkout-delivery-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 50%;
    background: #f58220;
    font-size: 24px;
}

.checkout-table-mode > div:last-child,
.checkout-delivery-mode > div:last-child {
    display: grid;
    gap: 2px;
}

.checkout-table-mode span,
.checkout-delivery-mode span {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .7px;
}

.checkout-table-mode strong,
.checkout-delivery-mode strong {
    color: #111;
    font-size: 22px;
}

.checkout-table-mode p,
.checkout-delivery-mode p {
    margin: 2px 0 0;
    color: #666;
}

.checkout-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(320px, .75fr);
    gap: 28px;
    align-items: start;
}

.checkout-main {
    display: grid;
    gap: 22px;
}

.checkout-card,
.checkout-summary-card {
    background: #fff;
    border-radius: 20px;
    padding: 27px;
}

.checkout-card-title {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-bottom: 24px;
}

.checkout-card-title h2 {
    margin: 0;
    color: #111;
    font-size: 22px;
}

.checkout-card-title p {
    margin: 3px 0 0;
    color: #888;
    font-size: 13px;
}

.checkout-step {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    background: #f58220;
    color: #fff;
    font-weight: 900;
}

.checkout-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.checkout-form-grid label,
.checkout-note-label {
    display: grid;
    gap: 8px;
    color: #222;
    font-weight: 800;
}

.checkout-form-grid input,
.checkout-form-grid select,
.checkout-form-grid textarea,
.checkout-note-label textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 14px;
    border: 1px solid #ddd;
    border-radius: 11px;
    background: #fff;
    color: #111;
    font: inherit;
}

.checkout-form-grid input:focus,
.checkout-form-grid select:focus,
.checkout-form-grid textarea:focus,
.checkout-note-label textarea:focus {
    outline: none;
    border-color: #f58220;
}

.checkout-full {
    grid-column: 1 / -1;
}

.checkout-table-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.checkout-table-details > div {
    padding: 18px;
    border-radius: 13px;
    background: #f7f7f7;
}

.checkout-table-details span {
    display: block;
    color: #888;
    font-size: 12px;
    margin-bottom: 5px;
}

.checkout-table-details strong {
    color: #111;
    font-size: 19px;
}

.checkout-payment-option {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 17px;
    border: 2px solid #f58220;
    border-radius: 14px;
    background: #fff8f2;
}

.checkout-payment-icon {
    font-size: 27px;
}

.checkout-payment-option > div:nth-child(2) {
    flex: 1;
}

.checkout-payment-option strong {
    color: #111;
}

.checkout-payment-option p {
    margin: 3px 0 0;
    color: #666;
    font-size: 13px;
}

.checkout-payment-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #f58220;
    color: #fff;
    font-weight: 900;
}

.checkout-summary {
    position: sticky;
    top: 20px;
}

.checkout-summary-card h2 {
    margin: 0 0 20px;
    color: #111;
}

.checkout-summary-items {
    display: grid;
    gap: 14px;
}

.checkout-summary-item,
.checkout-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 15px;
}

.checkout-summary-item strong {
    color: #333;
    font-size: 14px;
}

.checkout-summary-item span {
    white-space: nowrap;
    color: #111;
    font-weight: 800;
}

.checkout-summary-line span {
    color: #666;
}

.checkout-summary-separator {
    height: 1px;
    margin: 20px 0;
    background: #eee;
}

.checkout-confirm-button {
    width: 100%;
    border: 0;
    padding: 17px 18px;
    border-radius: 13px;
    background: #f58220;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
}

.checkout-confirm-button:hover {
    opacity: .92;
}

.checkout-security {
    margin-top: 12px;
    text-align: center;
    color: #888;
    font-size: 12px;
}

.checkout-table-reminder {
    margin-top: 18px;
    padding: 13px;
    border-radius: 11px;
    background: #fff7ef;
    color: #555;
    text-align: center;
    font-size: 13px;
}

@media (max-width: 850px) {

    .checkout-layout {
        grid-template-columns: 1fr;
    }

    .checkout-summary {
        position: static;
    }

}

@media (max-width: 620px) {

    .checkout-page {
        width: min(100% - 20px, 1180px);
        padding-top: 20px;
    }

    .checkout-heading {
        flex-direction: column;
    }

    .checkout-form-grid,
    .checkout-table-details {
        grid-template-columns: 1fr;
    }

    .checkout-card,
    .checkout-summary-card {
        padding: 20px;
        border-radius: 16px;
    }

    .checkout-table-mode,
    .checkout-delivery-mode {
        align-items: flex-start;
    }

}



/* =========================================================
   RB TOUR - ADMIN ZONES DE LIVRAISON
   ========================================================= */

.delivery-help {
    display: grid;
    gap: 14px;
    color: #555;
    line-height: 1.6;
}

.delivery-zone-edit {
    display: grid;
    grid-template-columns:
        minmax(160px, 1fr)
        120px
        90px
        auto;
    gap: 8px;
    align-items: center;
    min-width: 520px;
}

.delivery-zone-edit input,
.delivery-zone-edit select {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 11px;
    border: 1px solid #ddd;
    border-radius: 9px;
    background: #fff;
    font: inherit;
}

@media (max-width: 900px) {

    .delivery-zone-edit {
        min-width: 470px;
    }

}



/* =========================================================
   RB TOUR - ADMIN SPECIAL DU JOUR
   ========================================================= */

.admin-special-grid {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(310px, 1fr)
        );
    gap: 22px;
}

.admin-special-card {
    overflow: hidden;
    background: #fff;
    border-radius: 18px;
}

.admin-special-image {
    height: 230px;
    background: #171717;
}

.admin-special-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.admin-special-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 70px;
}

.admin-special-content {
    padding: 20px;
}

.admin-special-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 13px;
    color: #777;
    font-size: 12px;
}

.admin-special-status {
    padding: 5px 9px;
    border-radius: 999px;
    font-weight: 800;
}

.admin-special-status.active {
    background: #e9f8ed;
    color: #18813b;
}

.admin-special-status.inactive {
    background: #f3f3f3;
    color: #777;
}

.admin-special-content small {
    color: #f58220;
    font-weight: 900;
    text-transform: uppercase;
}

.admin-special-content h2 {
    margin: 6px 0 10px;
    color: #111;
}

.admin-special-content p {
    color: #666;
    line-height: 1.5;
}

.admin-special-price {
    margin: 15px 0;
    color: #f58220;
    font-size: 25px;
    font-weight: 900;
}

.admin-special-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-special-actions form {
    margin: 0;
}

.admin-special-form {
    display: grid;
    gap: 25px;
}

.admin-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.admin-form-grid label {
    display: grid;
    gap: 8px;
    font-weight: 800;
}

.admin-form-grid input,
.admin-form-grid select,
.admin-form-grid textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    color: #111;
    font: inherit;
}

.admin-form-full {
    grid-column: 1 / -1;
}

.admin-checkbox-line {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 10px !important;
}

.admin-checkbox-line input {
    width: auto;
}

.admin-current-image {
    display: grid;
    gap: 10px;
}

.admin-current-image span {
    font-weight: 800;
}

.admin-current-image img {
    width: min(380px, 100%);
    height: 230px;
    object-fit: cover;
    border-radius: 14px;
}

.admin-small-btn.secondary {
    background: #444;
}

.admin-small-btn.danger {
    background: #b82020;
}

@media (max-width: 650px) {

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

    .admin-form-full {
        grid-column: auto;
    }

}



/* =========================================================
   RB TOUR - PUBLIC DAILY SPECIAL
   ========================================================= */

.rb-daily-special {
    display: grid;
    grid-template-columns:
        minmax(0, 1.1fr)
        minmax(280px, .9fr);
    overflow: hidden;
    margin: 24px 0 34px;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            #111 0%,
            #1d1d1d 100%
        );
    box-shadow:
        0 18px 45px rgba(0, 0, 0, .22);
}

.rb-daily-special-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 38px;
}

.rb-daily-special-kicker {
    margin-bottom: 8px;
    color: #f58220;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .13em;
}

.rb-daily-special-copy h2 {
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.05;
}

.rb-daily-special-copy p {
    max-width: 600px;
    margin: 0 0 20px;
    color: #c9c9c9;
    line-height: 1.65;
}

.rb-daily-special-price {
    margin-bottom: 22px;
    color: #f58220;
    font-size: 30px;
    font-weight: 900;
}

.rb-daily-special-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
}

.rb-daily-special-btn:hover {
    transform: translateY(-1px);
}

.rb-daily-special-media {
    min-height: 320px;
    background: #222;
}

.rb-daily-special-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rb-daily-special-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 320px;
    font-size: 90px;
}

@media (max-width: 760px) {

    .rb-daily-special {
        grid-template-columns: 1fr;
    }

    .rb-daily-special-copy {
        padding: 26px 22px;
    }

    .rb-daily-special-media {
        min-height: 230px;
    }

}



/* =========================================================
   RB TOUR - CART SCRIPT 17
   ========================================================= */

.rb-cart-page {
    max-width: 1180px;
    margin: 0 auto;
    padding: 28px 18px 60px;
}

.rb-cart-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.rb-cart-kicker {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .14em;
}

.rb-cart-heading h1 {
    margin: 5px 0;
    font-size: clamp(32px, 6vw, 54px);
}

.rb-cart-heading p {
    margin: 0;
    color: #888;
}

.rb-cart-back {
    color: #f58220;
    font-weight: 800;
    text-decoration: none;
}

.rb-cart-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        340px;
    gap: 26px;
    align-items: start;
}

.rb-cart-items {
    display: grid;
    gap: 14px;
}

.rb-cart-item {
    display: grid;
    grid-template-columns:
        90px
        minmax(0, 1fr)
        auto
        120px;
    gap: 16px;
    align-items: center;
    padding: 15px;
    border: 1px solid #e7e7e7;
    border-radius: 18px;
    background: #fff;
    color: #111;
}

.rb-cart-item-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    overflow: hidden;
    border-radius: 13px;
    background: #181818;
    font-size: 38px;
}

.rb-cart-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rb-cart-item-info h2 {
    margin: 4px 0 7px;
    font-size: 18px;
}

.rb-cart-unit-price {
    color: #777;
}

.rb-special-badge {
    display: inline-flex;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff1e5;
    color: #d76600;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.rb-cart-quantity {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rb-cart-quantity form {
    margin: 0;
}

.rb-cart-quantity button {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-size: 18px;
}

.rb-cart-line-total {
    text-align: right;
    color: #f58220;
    font-weight: 900;
}

.rb-cart-remove {
    grid-column: 2 / -1;
    margin: -5px 0 0;
}

.rb-cart-remove button {
    padding: 0;
    border: 0;
    background: transparent;
    color: #a22;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
}

.rb-cart-summary {
    position: sticky;
    top: 20px;
    padding: 24px;
    border-radius: 20px;
    background: #111;
    color: #fff;
}

.rb-cart-summary h2 {
    margin-top: 0;
}

.rb-cart-summary-line {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 14px 0;
    border-bottom:
        1px solid rgba(255,255,255,.12);
}

.rb-cart-primary-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    margin-top: 20px;
    padding: 0 20px;
    border: 0;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    font-weight: 900;
    text-decoration: none;
}

.rb-clear-cart {
    margin-top: 15px;
    text-align: center;
}

.rb-clear-cart button {
    border: 0;
    background: transparent;
    color: #aaa;
    cursor: pointer;
}

.rb-cart-warning {
    margin-top: 18px;
    padding: 13px;
    border-radius: 12px;
    background: #3a2818;
    color: #ffd9b9;
    font-size: 13px;
    line-height: 1.5;
}

.rb-cart-empty {
    padding: 60px 20px;
    border-radius: 22px;
    background: #fff;
    color: #111;
    text-align: center;
}

.rb-cart-empty-icon {
    font-size: 70px;
}

.rb-cart-alert {
    margin-bottom: 18px;
    padding: 13px 16px;
    border-radius: 12px;
}

.rb-cart-alert.success {
    background: #e8f7ec;
    color: #166b30;
}

.rb-cart-alert.error {
    background: #fdeaea;
    color: #922;
}

@media (max-width: 850px) {

    .rb-cart-layout {
        grid-template-columns: 1fr;
    }

    .rb-cart-summary {
        position: static;
    }

}

@media (max-width: 650px) {

    .rb-cart-heading {
        display: grid;
    }

    .rb-cart-item {
        grid-template-columns:
            72px
            minmax(0, 1fr);
    }

    .rb-cart-item-image {
        width: 72px;
        height: 72px;
    }

    .rb-cart-quantity {
        grid-column: 2;
    }

    .rb-cart-line-total {
        grid-column: 2;
        text-align: left;
    }

    .rb-cart-remove {
        grid-column: 2;
    }

}



/* =========================================================
   RB TOUR - KITCHEN SCREEN
   ========================================================= */

.kitchen-page {
    padding: 28px;
}

.kitchen-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 26px;
}

.kitchen-kicker {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .15em;
}

.kitchen-header h1 {
    margin: 5px 0;
    font-size: 34px;
}

.kitchen-header p {
    margin: 0;
    color: #888;
}

.kitchen-refresh {
    padding: 11px 18px;
    border: 0;
    border-radius: 999px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
}

.kitchen-grid {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fill,
            minmax(310px, 1fr)
        );
    gap: 20px;
}

.kitchen-card {
    overflow: hidden;
    border: 2px solid #ddd;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.kitchen-card.status-new {
    border-color: #f58220;
}

.kitchen-card.status-confirmed {
    border-color: #d7b700;
}

.kitchen-card.status-preparing {
    border-color: #cc7a00;
}

.kitchen-card.status-ready {
    border-color: #319a52;
}

.kitchen-card.status-delivering {
    border-color: #3482c4;
}

.kitchen-card-top {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 18px;
    border-bottom: 1px solid #eee;
}

.kitchen-order-number {
    display: block;
    margin-bottom: 8px;
    font-size: 17px;
    font-weight: 900;
}

.kitchen-status {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eee;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.kitchen-status.status-new {
    background: #fff0e2;
    color: #b84f00;
}

.kitchen-status.status-confirmed {
    background: #fff8cd;
    color: #7a6800;
}

.kitchen-status.status-preparing {
    background: #fff0d9;
    color: #9d5700;
}

.kitchen-status.status-ready {
    background: #e3f7e9;
    color: #176e31;
}

.kitchen-status.status-delivering {
    background: #e4f1ff;
    color: #165d96;
}

.kitchen-time {
    white-space: nowrap;
    color: #d04e00;
    font-size: 18px;
    font-weight: 900;
}

.kitchen-order-type {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    background: #f8f8f8;
}

.kitchen-type-icon {
    font-size: 28px;
}

.kitchen-items {
    padding: 5px 18px;
}

.kitchen-item {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 8px;
    padding: 13px 0;
    border-bottom: 1px dashed #ddd;
}

.kitchen-item:last-child {
    border-bottom: 0;
}

.kitchen-item-qty {
    color: #f58220;
    font-size: 19px;
    font-weight: 900;
}

.kitchen-item-name {
    font-size: 16px;
    font-weight: 800;
}

.kitchen-item-name small {
    display: block;
    margin-top: 5px;
    color: #777;
    font-size: 12px;
    font-weight: 500;
}

.kitchen-special {
    display: block;
    width: fit-content;
    margin-top: 5px;
    padding: 3px 7px;
    border-radius: 999px;
    background: #fff0e2;
    color: #c35a00;
    font-size: 10px;
    text-transform: uppercase;
}

.kitchen-notes {
    margin: 12px 18px;
    padding: 12px;
    border-radius: 10px;
    background: #fff8d8;
    color: #695700;
    font-size: 13px;
}

.kitchen-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 18px;
    border-top: 1px solid #eee;
}

.kitchen-actions form {
    margin: 0;
}

.kitchen-btn {
    min-height: 42px;
    padding: 0 14px;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 900;
}

.kitchen-btn.primary {
    background: #f58220;
    color: #111;
}

.kitchen-btn.ready {
    background: #278946;
    color: #fff;
}

.kitchen-btn.delivery {
    background: #2879b9;
    color: #fff;
}

.kitchen-btn.cancel {
    background: #f1f1f1;
    color: #a02020;
}

.kitchen-alert {
    margin-bottom: 18px;
    padding: 13px 16px;
    border-radius: 12px;
}

.kitchen-alert.success {
    background: #e5f7ea;
    color: #176b31;
}

.kitchen-alert.error {
    background: #fdeaea;
    color: #8c2020;
}

.kitchen-empty {
    padding: 70px 20px;
    border-radius: 20px;
    background: #fff;
    text-align: center;
}

.kitchen-empty > div {
    color: #319a52;
    font-size: 70px;
}

@media (max-width: 700px) {

    .kitchen-page {
        padding: 18px 12px;
    }

    .kitchen-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .kitchen-grid {
        grid-template-columns: 1fr;
    }

}



/* =========================================================
   RB TOUR - ORDER TRACKING
   ========================================================= */

.rb-track-page {
    max-width: 1050px;
    margin: 0 auto;
    padding: 28px 18px 60px;
}

.rb-track-hero {
    margin-bottom: 30px;
    text-align: center;
}

.rb-track-brand {
    margin-bottom: 8px;
    color: #f58220;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .16em;
}

.rb-track-hero h1 {
    margin: 0 0 10px;
    font-size: clamp(
        30px,
        6vw,
        52px
    );
}

.rb-track-number {
    margin-bottom: 14px;
    color: #777;
    font-weight: 800;
}

.rb-track-current {
    display: inline-flex;
    padding: 9px 16px;
    border-radius: 999px;
    background: #222;
    color: #fff;
    font-weight: 900;
}

.rb-track-current.status-new {
    background: #f58220;
    color: #111;
}

.rb-track-current.status-confirmed {
    background: #d5ad00;
    color: #111;
}

.rb-track-current.status-preparing {
    background: #d47300;
}

.rb-track-current.status-ready {
    background: #278946;
}

.rb-track-current.status-delivering {
    background: #2879b9;
}

.rb-track-current.status-delivered,
.rb-track-current.status-served,
.rb-track-current.status-paid {
    background: #278946;
}

.rb-track-current.status-cancelled {
    background: #a92b2b;
}

.rb-track-progress {
    display: flex;
    justify-content: center;
    margin: 30px 0 40px;
}

.rb-track-step {
    position: relative;
    flex: 1;
    max-width: 180px;
    text-align: center;
}

.rb-track-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 21px;
    left: calc(50% + 24px);
    right: calc(-50% + 24px);
    height: 4px;
    background: #dedede;
}

.rb-track-step.done:not(:last-child)::after {
    background: #f58220;
}

.rb-track-step-marker {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0 auto 10px;
    border-radius: 50%;
    background: #ddd;
    color: #777;
    font-weight: 900;
}

.rb-track-step.done
.rb-track-step-marker {
    background: #f58220;
    color: #111;
}

.rb-track-step.active
.rb-track-step-marker {
    box-shadow:
        0 0 0 6px
        rgba(245, 130, 32, .18);
}

.rb-track-step-label {
    font-size: 12px;
    font-weight: 800;
}

.rb-track-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(280px, .8fr);
    gap: 20px;
}

.rb-track-card {
    padding: 24px;
    border: 1px solid #e6e6e6;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rb-track-card h2 {
    margin-top: 0;
}

.rb-track-item {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 0;
    border-bottom: 1px solid #eee;
}

.rb-track-item small {
    display: block;
    margin-top: 3px;
    color: #d46700;
}

.rb-track-total-line {
    display: flex;
    justify-content: space-between;
    padding-top: 14px;
}

.rb-track-grand-total {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    padding-top: 15px;
    border-top: 2px solid #111;
    font-size: 19px;
}

.rb-track-grand-total strong {
    color: #f58220;
}

.rb-track-info {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

.rb-track-info.block {
    display: block;
}

.rb-track-info span {
    color: #777;
}

.rb-track-info.block strong {
    display: block;
    margin-top: 6px;
}

.rb-track-table {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px;
    border-radius: 15px;
    background: #111;
    color: #fff;
}

.rb-track-table > span {
    font-size: 40px;
}

.rb-track-table small,
.rb-track-table strong {
    display: block;
}

.rb-track-table strong {
    margin-top: 4px;
    color: #f58220;
    font-size: 24px;
}

.rb-track-help {
    color: #777;
    line-height: 1.6;
}

.rb-track-payment {
    margin-top: 18px;
    padding: 14px;
    border-radius: 12px;
    background: #f5f5f5;
}

.rb-track-payment span,
.rb-track-payment strong,
.rb-track-payment small {
    display: block;
}

.rb-track-payment strong {
    margin: 4px 0;
}

.rb-track-payment small {
    color: #777;
}

.rb-track-notes {
    margin-top: 20px;
}

.rb-track-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
    color: #777;
    font-size: 13px;
}

.rb-track-footer button,
.rb-track-footer a {
    padding: 10px 15px;
    border: 0;
    border-radius: 999px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    text-decoration: none;
}

.rb-track-cancelled {
    margin: 25px 0;
    padding: 35px;
    border-radius: 20px;
    background: #fdeaea;
    color: #8b2020;
    text-align: center;
}

.rb-track-cancelled-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin: 0 auto 15px;
    border-radius: 50%;
    background: #a92b2b;
    color: #fff;
    font-size: 34px;
    font-weight: 900;
}

.rb-success-track {
    margin: 22px 0;
    text-align: center;
}

.rb-success-track-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0 24px;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 760px) {

    .rb-track-grid {
        grid-template-columns: 1fr;
    }

    .rb-track-progress {
        display: block;
    }

    .rb-track-step {
        display: flex;
        align-items: center;
        gap: 13px;
        max-width: none;
        min-height: 62px;
        text-align: left;
    }

    .rb-track-step-marker {
        flex: 0 0 44px;
        margin: 0;
    }

    .rb-track-step:not(:last-child)::after {
        top: 44px;
        bottom: -18px;
        left: 20px;
        right: auto;
        width: 4px;
        height: auto;
    }

}



/* =========================================================
   RB TOUR - DASHBOARD V2
   ========================================================= */

.rbt-dashboard {
    padding: 28px;
}

.rbt-dashboard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.rbt-dashboard-kicker {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .16em;
}

.rbt-dashboard-header h1 {
    margin: 5px 0 7px;
    font-size: clamp(
        30px,
        5vw,
        44px
    );
}

.rbt-dashboard-header p {
    margin: 0;
    color: #777;
}

.rbt-dashboard-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.rbt-dashboard-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 17px;
    border-radius: 999px;
    background: #222;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

.rbt-dashboard-btn.primary {
    background: #f58220;
    color: #111;
}

.rbt-btn-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 11px;
}

.rbt-new-order-alert {
    display: grid;
    grid-template-columns:
        auto
        1fr
        auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 22px;
    padding: 16px 18px;
    border-radius: 16px;
    background: #fff0e3;
    color: #7c3700;
    text-decoration: none;
}

.rbt-alert-icon {
    font-size: 27px;
}

.rbt-new-order-alert strong,
.rbt-new-order-alert span {
    display: block;
}

.rbt-new-order-alert
div span {
    margin-top: 3px;
    font-size: 12px;
}

.rbt-stats-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.rbt-stat-card {
    display: flex;
    align-items: center;
    gap: 15px;
    min-height: 135px;
    padding: 20px;
    border: 1px solid #e9e9e9;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rbt-stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #111;
    color: #f58220;
    font-size: 22px;
    font-weight: 900;
}

.rbt-stat-card.revenue
.rbt-stat-icon {
    background: #f58220;
    color: #111;
}

.rbt-stat-content span,
.rbt-stat-content small {
    display: block;
}

.rbt-stat-content span {
    color: #777;
    font-size: 12px;
}

.rbt-stat-content strong {
    display: block;
    margin: 4px 0;
    font-size: 27px;
}

.rbt-stat-content small {
    color: #999;
    line-height: 1.4;
}

.rbt-dashboard-shortcuts {
    display: grid;
    grid-template-columns:
        repeat(8, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.rbt-dashboard-shortcuts a {
    display: flex;
    flex-direction: column;
    min-height: 125px;
    padding: 16px;
    border: 1px solid #e9e9e9;
    border-radius: 16px;
    background: #fff;
    color: #111;
    text-decoration: none;
    transition: .18s ease;
}

.rbt-dashboard-shortcuts a:hover {
    transform: translateY(-3px);
    border-color: #f58220;
}

.rbt-dashboard-shortcuts
a > span {
    margin-bottom: 11px;
    font-size: 25px;
}

.rbt-dashboard-shortcuts strong {
    font-size: 13px;
}

.rbt-dashboard-shortcuts small {
    margin-top: 5px;
    color: #888;
    font-size: 10px;
    line-height: 1.35;
}

.rbt-dashboard-columns {
    display: grid;
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(330px, .8fr);
    gap: 20px;
}

.rbt-dashboard-panel {
    overflow: hidden;
    border: 1px solid #e7e7e7;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rbt-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 20px 22px;
    border-bottom: 1px solid #eee;
}

.rbt-panel-heading span {
    color: #f58220;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.rbt-panel-heading h2 {
    margin: 4px 0 0;
    font-size: 20px;
}

.rbt-panel-heading a {
    color: #f58220;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.rbt-orders-list {
    padding: 5px 0;
}

.rbt-order-row {
    display: grid;
    grid-template-columns:
        45px
        minmax(0, 1fr)
        auto;
    gap: 13px;
    align-items: center;
    padding: 13px 20px;
    border-bottom: 1px solid #f0f0f0;
    color: #111;
    text-decoration: none;
}

.rbt-order-row:last-child {
    border-bottom: 0;
}

.rbt-order-row:hover {
    background: #fafafa;
}

.rbt-order-type-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #fff1e5;
}

.rbt-order-type-icon.delivery {
    background: #e8f3ff;
}

.rbt-order-main strong,
.rbt-order-main small {
    display: block;
}

.rbt-order-main small {
    margin-top: 4px;
    color: #888;
}

.rbt-order-total {
    text-align: right;
}

.rbt-order-total strong,
.rbt-order-total span {
    display: block;
}

.rbt-status {
    width: fit-content;
    margin: 5px 0 0 auto;
    padding: 4px 7px;
    border-radius: 999px;
    background: #eee;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}

.rbt-status.status-new {
    background: #fff0e3;
    color: #b54e00;
}

.rbt-status.status-confirmed {
    background: #fff7cc;
    color: #706000;
}

.rbt-status.status-preparing {
    background: #fff0d9;
    color: #a05b00;
}

.rbt-status.status-ready,
.rbt-status.status-served,
.rbt-status.status-delivered,
.rbt-status.status-paid {
    background: #e2f6e8;
    color: #176d31;
}

.rbt-status.status-delivering {
    background: #e4f1ff;
    color: #1e649b;
}

.rbt-status.status-cancelled {
    background: #fde5e5;
    color: #962424;
}

.rbt-top-products {
    padding: 10px 22px;
}

.rbt-top-product {
    padding: 13px 0;
    border-bottom: 1px solid #eee;
}

.rbt-top-product:last-child {
    border-bottom: 0;
}

.rbt-top-product-header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
}

.rbt-top-product-header > div {
    display: flex;
    gap: 8px;
    align-items: center;
}

.rbt-top-product-header > span {
    color: #777;
}

.rbt-ranking {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    background: #111;
    color: #f58220;
    font-size: 10px;
    font-weight: 900;
}

.rbt-product-bar {
    overflow: hidden;
    height: 6px;
    margin: 10px 0 6px;
    border-radius: 999px;
    background: #eee;
}

.rbt-product-bar > div {
    height: 100%;
    border-radius: 999px;
    background: #f58220;
}

.rbt-top-product small {
    color: #888;
}

.rbt-payment-summary {
    display: grid;
    grid-template-columns:
        1fr 1fr;
    border-top: 1px solid #eee;
    background: #fafafa;
}

.rbt-payment-summary div {
    padding: 18px 22px;
}

.rbt-payment-summary
div + div {
    border-left: 1px solid #eee;
}

.rbt-payment-summary span,
.rbt-payment-summary strong {
    display: block;
}

.rbt-payment-summary span {
    color: #888;
    font-size: 11px;
}

.rbt-payment-summary strong {
    margin-top: 4px;
    font-size: 22px;
}

.rbt-panel-empty {
    padding: 50px 20px;
    color: #888;
    text-align: center;
}


/* RESPONSIVE */

@media (max-width: 1200px) {

    .rbt-dashboard-shortcuts {
        grid-template-columns:
            repeat(4, 1fr);
    }

}

@media (max-width: 1000px) {

    .rbt-stats-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .rbt-dashboard-columns {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 700px) {

    .rbt-dashboard {
        padding: 18px 12px;
    }

    .rbt-dashboard-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .rbt-dashboard-actions {
        width: 100%;
    }

    .rbt-dashboard-actions a {
        flex: 1;
        justify-content: center;
    }

    .rbt-stats-grid {
        grid-template-columns: 1fr;
    }

    .rbt-dashboard-shortcuts {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .rbt-order-row {
        grid-template-columns:
            42px
            minmax(0, 1fr);
    }

    .rbt-order-total {
        grid-column: 2;
        text-align: left;
    }

    .rbt-status {
        margin-left: 0;
    }

}



/* =========================================================
   RB TOUR - PROMOTIONS SCRIPT 21
   ========================================================= */

.rbt-promo-admin,
.rbt-promo-form-page {
    padding: 28px;
}

.rbt-promo-admin-header,
.rbt-promo-form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 25px;
}

.rbt-promo-kicker {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .15em;
}

.rbt-promo-admin-header h1,
.rbt-promo-form-header h1 {
    margin: 5px 0;
    font-size: 36px;
}

.rbt-promo-admin-header p {
    margin: 0;
    color: #777;
}

.rbt-promo-primary {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    cursor: pointer;
    font-weight: 900;
    text-decoration: none;
}

.rbt-promo-alert {
    margin-bottom: 18px;
    padding: 13px 16px;
    border-radius: 12px;
    background: #e5f7ea;
    color: #176b31;
}

.rbt-promo-list {
    display: grid;
    gap: 15px;
}

.rbt-promo-admin-card {
    display: grid;
    grid-template-columns:
        180px
        minmax(0, 1fr)
        auto;
    overflow: hidden;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rbt-promo-admin-image {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 170px;
    background: #111;
    font-size: 55px;
}

.rbt-promo-admin-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rbt-promo-admin-info {
    padding: 20px;
}

.rbt-promo-admin-info h2 {
    margin: 10px 0 5px;
}

.rbt-promo-admin-info p {
    color: #777;
    line-height: 1.55;
}

.rbt-promo-admin-meta {
    display: flex;
    gap: 7px;
}

.rbt-promo-badge,
.rbt-promo-state {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.rbt-promo-badge {
    background: #fff0e4;
    color: #c15b00;
}

.rbt-promo-state.active {
    background: #e2f7e8;
    color: #176d31;
}

.rbt-promo-state.inactive {
    background: #eee;
    color: #777;
}

.rbt-promo-dates {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 14px;
    color: #888;
    font-size: 11px;
}

.rbt-promo-admin-actions {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 18px;
}

.rbt-promo-admin-actions a,
.rbt-promo-admin-actions button {
    display: block;
    width: 100%;
    padding: 9px 13px;
    border: 0;
    border-radius: 9px;
    background: #111;
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.rbt-promo-admin-actions
button.danger {
    background: #f4e7e7;
    color: #992626;
}

.rbt-promo-empty {
    padding: 60px 20px;
    border-radius: 20px;
    background: #fff;
    text-align: center;
}

.rbt-promo-empty > div {
    font-size: 60px;
}

.rbt-promo-form {
    max-width: 900px;
    padding: 24px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rbt-promo-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, 1fr);
    gap: 18px;
}

.rbt-promo-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.rbt-promo-field.wide {
    grid-column: 1 / -1;
}

.rbt-promo-field label {
    font-size: 12px;
    font-weight: 900;
}

.rbt-promo-field input,
.rbt-promo-field textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #ddd;
    border-radius: 10px;
    font: inherit;
}

.rbt-promo-field small {
    color: #888;
}

.rbt-promo-check {
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 9px;
}

.rbt-promo-check input {
    width: auto;
}

.rbt-promo-current-image img {
    display: block;
    max-width: 300px;
    max-height: 180px;
    margin-bottom: 10px;
    border-radius: 12px;
    object-fit: cover;
}

.rbt-promo-form-actions {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 24px;
}

.rbt-promo-errors {
    max-width: 900px;
    margin-bottom: 18px;
    padding: 15px;
    border-radius: 12px;
    background: #fdeaea;
    color: #8f2020;
}


/* PUBLIC */

.rb-public-promotions {
    display: grid;
    gap: 18px;
    margin: 20px 0 30px;
}

.rb-public-promotion {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    border-radius: 25px;
    background:
        linear-gradient(
            135deg,
            #111,
            #292929
        );
    color: #fff;
}

.rb-public-promotion-image {
    position: absolute;
    inset: 0;
}

.rb-public-promotion-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rb-public-promotion-overlay {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    min-height: 300px;
    padding: 38px;
    background:
        linear-gradient(
            90deg,
            rgba(0,0,0,.92) 0%,
            rgba(0,0,0,.65) 50%,
            rgba(0,0,0,.15) 100%
        );
}

.rb-public-promotion-content {
    max-width: 590px;
}

.rb-public-promotion-badge {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
}

.rb-public-promotion h2 {
    margin: 0 0 7px;
    color: #fff;
    font-size: clamp(
        30px,
        5vw,
        50px
    );
    line-height: 1.05;
}

.rb-public-promotion h3 {
    margin: 0 0 10px;
    color: #f58220;
    font-size: 20px;
}

.rb-public-promotion p {
    color: #e0e0e0;
    line-height: 1.6;
}

.rb-public-promotion-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 8px;
    padding: 0 19px;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    font-weight: 900;
    text-decoration: none;
}

@media (max-width: 700px) {

    .rbt-promo-admin,
    .rbt-promo-form-page {
        padding: 18px 12px;
    }

    .rbt-promo-admin-header,
    .rbt-promo-form-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .rbt-promo-admin-card {
        grid-template-columns: 1fr;
    }

    .rbt-promo-admin-image {
        height: 190px;
    }

    .rbt-promo-admin-actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

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

    .rbt-promo-field.wide {
        grid-column: auto;
    }

    .rb-public-promotion,
    .rb-public-promotion-overlay {
        min-height: 350px;
    }

    .rb-public-promotion-overlay {
        align-items: flex-end;
        padding: 24px 20px;
        background:
            linear-gradient(
                0deg,
                rgba(0,0,0,.96),
                rgba(0,0,0,.35)
            );
    }

}



/* =========================================================
   RB TOUR - SETTINGS SCRIPT 22
   ========================================================= */

.rbt-settings-page {
    padding: 28px;
}

.rbt-settings-header {
    margin-bottom: 25px;
}

.rbt-settings-kicker {
    color: #f58220;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .15em;
}

.rbt-settings-header h1 {
    margin: 5px 0;
    font-size: 36px;
}

.rbt-settings-header p {
    margin: 0;
    color: #777;
}

.rbt-settings-success,
.rbt-settings-errors {
    max-width: 1000px;
    margin-bottom: 18px;
    padding: 15px 18px;
    border-radius: 12px;
}

.rbt-settings-success {
    background: #e4f7ea;
    color: #176a31;
}

.rbt-settings-errors {
    background: #fde8e8;
    color: #8b2020;
}

.rbt-settings-form {
    max-width: 1000px;
}

.rbt-settings-section {
    margin-bottom: 20px;
    padding: 24px;
    border: 1px solid #e5e5e5;
    border-radius: 20px;
    background: #fff;
    color: #111;
}

.rbt-settings-section-title {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 22px;
}

.rbt-settings-section-title > span {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: #111;
    color: #f58220;
    font-weight: 900;
}

.rbt-settings-section-title h2 {
    margin: 0;
}

.rbt-settings-section-title p {
    margin: 4px 0 0;
    color: #888;
    font-size: 12px;
}

.rbt-settings-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.rbt-settings-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.rbt-settings-field.wide {
    grid-column: 1 / -1;
}

.rbt-settings-field label {
    font-size: 12px;
    font-weight: 900;
}

.rbt-settings-field input,
.rbt-settings-field textarea,
.rbt-settings-field select {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background: #fff;
    color: #111;
    font: inherit;
}

.rbt-settings-field textarea {
    resize: vertical;
}

.rbt-settings-submit {
    margin-bottom: 40px;
}

.rbt-settings-submit button {
    min-height: 50px;
    padding: 0 24px;
    border: 0;
    border-radius: 999px;
    background: #f58220;
    color: #111;
    cursor: pointer;
    font-weight: 900;
}


/* PUBLIC FOOTER */

.rbt-public-settings-footer {
    margin-top: 60px;
    padding: 38px 20px;
    background: #0d0d0d;
    color: #fff;
}

.rbt-public-footer-inner {
    display: grid;
    grid-template-columns:
        1.1fr 1fr auto;
    gap: 30px;
    max-width: 1180px;
    margin: 0 auto;
}

.rbt-public-footer-brand strong,
.rbt-public-footer-brand span {
    display: block;
}

.rbt-public-footer-brand strong {
    color: #f58220;
    font-size: 26px;
}

.rbt-public-footer-brand span {
    margin-top: 4px;
    font-weight: 700;
}

.rbt-public-footer-brand p {
    margin-bottom: 0;
    color: #aaa;
}

.rbt-public-footer-contact {
    display: flex;
    flex-direction: column;
    gap: 9px;
    color: #ccc;
    line-height: 1.5;
}

.rbt-public-footer-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rbt-public-footer-actions a {
    min-width: 110px;
    padding: 9px 14px;
    border-radius: 999px;
    background: #222;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.rbt-public-footer-actions a:first-child {
    background: #f58220;
    color: #111;
}

@media (max-width: 760px) {

    .rbt-settings-page {
        padding: 18px 12px;
    }

    .rbt-settings-grid {
        grid-template-columns: 1fr;
    }

    .rbt-settings-field.wide {
        grid-column: auto;
    }

    .rbt-public-footer-inner {
        grid-template-columns: 1fr;
    }

    .rbt-public-footer-actions {
        flex-direction: row;
        flex-wrap: wrap;
    }

}


/* ==========================================================
   RB TOUR - CONFIRMATION COMMANDE
   ========================================================== */

.order-success-section {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: #f4f4f4;
}

.order-success-card {
    width: 100%;
    max-width: 760px;
    background: #ffffff;
    border-radius: 28px;
    padding: 42px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
}

.order-success-icon {
    width: 84px;
    height: 84px;
    margin: 0 auto 22px;
    border-radius: 50%;
    background: #f58220;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 42px;
    font-weight: 900;
}

.order-success-kicker {
    color: #f58220;
    font-weight: 900;
    letter-spacing: 1.5px;
    margin-bottom: 10px;
}

.order-success-card h1 {
    margin: 0;
    font-size: clamp(32px, 6vw, 52px);
    color: #111111;
}

.order-success-text {
    margin: 15px auto 28px;
    color: #666666;
    font-size: 18px;
}

.order-success-number {
    background: #111111;
    color: #ffffff;
    border-radius: 20px;
    padding: 22px;
    margin-bottom: 25px;
}

.order-success-number span {
    display: block;
    color: #bdbdbd;
    font-size: 14px;
    margin-bottom: 7px;
}

.order-success-number strong {
    display: block;
    color: #f58220;
    font-size: 26px;
}

.order-success-info {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 24px;
}

.order-success-info > div {
    background: #f7f7f7;
    border-radius: 16px;
    padding: 18px 12px;
}

.order-success-info span {
    display: block;
    color: #777777;
    font-size: 13px;
    margin-bottom: 7px;
}

.order-success-info strong {
    color: #111111;
}

.order-success-message {
    padding: 18px;
    background: #fff4ea;
    border: 1px solid #ffd9b8;
    color: #5a3316;
    border-radius: 16px;
    margin-bottom: 25px;
}

.order-success-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

.order-success-primary,
.order-success-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 28px;
    border-radius: 14px;
    font-weight: 800;
    text-decoration: none;
}

.order-success-primary {
    background: #f58220;
    color: #ffffff;
}

.order-success-secondary {
    background: #111111;
    color: #ffffff;
}

@media (max-width: 700px) {

    .order-success-card {
        padding: 28px 18px;
    }

    .order-success-info {
        grid-template-columns: 1fr;
    }

    .order-success-actions {
        flex-direction: column;
    }

    .order-success-primary,
    .order-success-secondary {
        width: 100%;
    }
}

/* =========================================================
   RB TOUR - PUBLIC MENU QR
   ========================================================= */

.public-qr-layout {
    display: grid;
    grid-template-columns: minmax(0, 680px) 1fr;
    gap: 28px;
    align-items: start;
}

.public-qr-card {
    background:
        linear-gradient(
            145deg,
            #0d0d0d,
            #1b1b1b
        );

    color: #ffffff;

    border-radius: 28px;

    padding: 42px;

    text-align: center;

    box-shadow:
        0 22px 55px rgba(0,0,0,.18);
}

.public-qr-logo {
    font-size: 48px;
    font-weight: 900;
    color: #f58220;
}

.public-qr-logo span {
    color: #ffffff;
}

.public-qr-subtitle {
    margin-top: 3px;
    font-size: 14px;
    letter-spacing: 3px;
    text-transform: uppercase;
}

.public-qr-title {
    margin-top: 32px;
    color: #f58220;
    font-size: 32px;
    font-weight: 900;
}

.public-qr-description {
    max-width: 500px;
    margin: 12px auto 25px;
    color: #d0d0d0;
    line-height: 1.6;
}

#publicMenuQrCode {
    width: 360px;
    max-width: 100%;
    min-height: 360px;

    margin: 0 auto;

    padding: 20px;

    background: #ffffff;

    border-radius: 28px;

    display: flex;
    align-items: center;
    justify-content: center;
}

#publicMenuQrCode img,
#publicMenuQrCode canvas {
    max-width: 100%;
    height: auto !important;
}

.public-qr-url {
    margin-top: 18px;
    font-size: 14px;
    color: #bcbcbc;
    word-break: break-all;
}

.public-qr-steps {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
    margin-top: 30px;
}

.public-qr-steps div {
    background: rgba(255,255,255,.07);
    border-radius: 16px;
    padding: 15px;
}

.public-qr-steps strong {
    display: flex;
    width: 34px;
    height: 34px;

    margin: 0 auto 8px;

    align-items: center;
    justify-content: center;

    background: #f58220;

    border-radius: 50%;
}

.public-qr-steps span {
    font-size: 14px;
}

.public-qr-footer {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.12);
}

.public-qr-footer strong,
.public-qr-footer span {
    display: block;
}

.public-qr-footer strong {
    color: #f58220;
}

.public-qr-footer span {
    margin-top: 7px;
    color: #aaaaaa;
}

.public-qr-actions {
    background: #ffffff;
    border-radius: 22px;
    padding: 26px;
    box-shadow:
        0 15px 35px rgba(0,0,0,.08);
}

.public-qr-actions h3 {
    margin-top: 0;
    color: #111111;
}

.public-qr-actions p {
    color: #666666;
    line-height: 1.6;
}

.public-qr-actions button {
    width: 100%;
    margin-top: 12px;
}

@media (max-width: 900px) {

    .public-qr-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {

    .public-qr-card {
        padding: 26px 15px;
    }

    .public-qr-title {
        font-size: 25px;
    }

    #publicMenuQrCode {
        min-height: auto;
    }
}

@media print {

    body * {
        visibility: hidden;
    }

    .public-qr-card,
    .public-qr-card * {
        visibility: visible;
    }

    .public-qr-card {
        position: absolute;
        inset: 0;

        width: 100%;
        min-height: 100vh;

        border-radius: 0;

        box-shadow: none;
    }
}


/* =========================================================
   RB TOUR - ADMIN SIDEBAR SCROLL FIX 26
   ========================================================= */

/*
 * La sidebar occupe toute la hauteur de l'écran.
 * Le logo reste en haut.
 * La navigation devient scrollable.
 * Le bouton Déconnexion reste visible en bas.
 */

.admin-sidebar {
    height: 100vh;
    max-height: 100vh;

    display: flex;
    flex-direction: column;

    overflow: hidden;
}

/* Logo / identité RB TOUR */
.admin-sidebar .admin-brand {
    flex: 0 0 auto;
}

/* Zone des liens */
.admin-sidebar .admin-nav {
    flex: 1 1 auto;
    min-height: 0;

    overflow-y: auto;
    overflow-x: hidden;

    padding-bottom: 24px;

    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* Bouton de déconnexion */
.admin-sidebar > form {
    flex: 0 0 auto;
    margin-top: auto;
}

/* Barre de défilement discrète */
.admin-sidebar .admin-nav::-webkit-scrollbar {
    width: 7px;
}

.admin-sidebar .admin-nav::-webkit-scrollbar-track {
    background: transparent;
}

.admin-sidebar .admin-nav::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.18);
    border-radius: 999px;
}

.admin-sidebar .admin-nav::-webkit-scrollbar-thumb:hover {
    background: rgba(245,130,32,.8);
}

/* Firefox */
.admin-sidebar .admin-nav {
    scrollbar-width: thin;
    scrollbar-color: rgba(245,130,32,.65) transparent;
}

/* Laisser suffisamment d'espace entre les liens */
.admin-sidebar .admin-nav a {
    flex-shrink: 0;
}

/* Mobile / petit écran */
@media (max-width: 900px) {

    .admin-sidebar {
        max-height: 100vh;
    }

    .admin-sidebar .admin-nav {
        overflow-y: auto;
    }
}

