body {
    background-color: white;
}

* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.preloader {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1001;
	background-color: white;
}

.preloader__item {
    position: relative;
    top: 40%;
    width: 100vw;
    text-align: center;
}

@keyframes flickerAnimation {
    0%   { opacity:0; }
    50%  { opacity:1; }
    100% { opacity:0; }
}

.animate-flicker {
     animation: flickerAnimation 2s infinite;
 }
 
.bd-navbar {
	background-color: white;
	position: fixed;
    z-index: 100;
    top: 0;
    left: 0;
	width: 100%;
    min-height: 4rem;
    box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 5%), inset 0 -1px 0 rgb(0 0 0 / 10%);
	font-size: 14px;
}

.multiplex__link {
	display: flex;
    width: 90px;
    height: 60px;
    margin-left: auto;
}

.mainContainer{
	width: 100%;
    position: absolute;
    top: 78px;
    display: flex;
	justify-content: center;
	height: calc(100% - 78px);
}

.mainPage{
	max-width: 950px;
    width: 950px;
}
.categoryPage{
	max-width: 950px;
    width: 950px;
	height: 100%;
	overflow: auto;
}

.cartPage{
	max-width: 950px;
    width: 950px;
	height: 100%;
	overflow: auto;
}

.smallSize{
	min-height: 40px;
	font-size: 12px;
	font-weight: 600;
}
.tabsBtn_Active{
	border-width: 1px;
	border-style: solid;
	color: #FFA11B;
	border-color: #FFA11B;
	box-shadow: inset 0 0 0 1px #FFA11B;
	margin-right: 4px;
	border-radius: 8px;
	padding: 0 12px;
	white-space: nowrap;
}

.tabsBtn_UnActive{
	border-width: 1px;
	border-style: solid;
	border-color: #E0E0E0;
	margin-right: 4px;
	border-radius: 8px;
	padding: 0 12px;
	white-space: nowrap;
}

.tabsBtn{
	line-height: 1.2;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color .225s,color .225s,border-color .225s,filter .225s,box-shadow .225s;
	appearance: none;
	outline: none;
	background-color: white;
	user-select: none;
}
#categoryDataContainer{
	width: 100%;
}
#cartDataContainer{
	width: 100%;
}

.addCartInput{
    margin-right: 0px !important;
    margin-left: 4px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 95% !important;
}

.addCartCommentInput{
	margin-right: 0px !important;
    margin-left: 4px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 95% !important;
}
.addCartCommentOnEditInput{
	margin-right: 0px !important;
    margin-left: 0px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 100% !important;
}
.putCartInput{
    margin-right: 0px !important;
    margin-left: 4px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 95% !important;
}
.cartSelectInput{
    transition: border-color .1s,box-shadow .1s;
    border: 1px solid #d9d9d9;
    background: inherit;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;
    border-radius: .1875em;
}
.cartSelectInput:focus{
    border: 1px solid #b4dbed;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5);
}
.addCartCommentOnEditInput:focus{
	margin-right: 0px !important;
    margin-left: 4px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 97% !important;
}

.label-list{
	display: flex;
	flex-wrap: wrap;
}
.label-list svg{
	margin-right: 4px;
}

.pictures{
	max-width: 136px;
	width: 100%;
}

.pictures img{
	width: 100%;
	margin-left: 5px;
}

.label{
	font-size: 14px;
	color: gray;
	font-weight: 600;
	line-height: 16px;
	margin-top: 8px;
	margin-right: 8px;
	display: flex;
	align-items: center;
	position: relative;
}

.card-body{
	border-top: 1px solid rgba(0,0,0,.125);
}
.card-price{
	color: FFA11B;
	font-weight: 600;
}

#categoryNameLine{
	font-weight: 600;
	font-size: 24px;
}
.cartNameLine{
	font-weight: 600;
	font-size: 24px;
}

.editItemOnCartInput{
    margin-right: 0px !important;
    margin-left: 0px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 100% !important;
}
.editItemOnCartInput:focus{
    margin-right: 0px !important;
    margin-left: 4px !important;
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    width: 97% !important;
}

.mainPageImage{
	border-radius: 20px;
    height: 429px;
    max-width: 950px;
    width: 950px;
}

.categoriesTabs{
	display: flex;
	height: 56px;
	background-color: white;
	overflow-x: auto;
	flex-wrap: nowrap;
	padding: 8px 16px;
	position: sticky;
	z-index: 2;
	top: 0;
	box-shadow: 0 16px 12px 0 #00000005;
}

.categoryBtn{
	display: flex;
	padding: 19px 20px 19px 24px;
	font-size: 20px;
	font-weight: 600;
	line-height: 32px;
	background-color: #FFFFFF;
	border-radius: 8px;
	margin-bottom: 8px;
	border: 1px solid #E0E0E0;
	box-shadow: 0 4px 4px rgba(0,0,0,.05);
	word-wrap: anywhere;
	hyphens: auto;
	white-space: normal;
	cursor: pointer;
	margin-left: 5px;
	margin-right: 5px;
}
.categoryBtn:hover{
	background-color: #F0EFEF;
}
.bothInfo{
	background-color: #FFFFFF;
	border-radius: 8px;
	border: 1px solid #E0E0E0;
	box-shadow: 0 4px 4px rgba(0,0,0,.05);
	font-size: 16px;
	font-weight: 600;
	text-align: center;
	padding: 16px 24px;
	margin-left: 5px;
	margin-right: 5px;
}

.cartTotalH5{
	margin-top: 15px;
	margin-left: 10px;
	font-weight: bold;
}

@media (max-width: 968px) {
	.mainPageImage{
		border-radius: 0px;
		height: 429px;
		max-width: 100%;
		object-fit: cover;
	}
	.mainPage{
		max-width: 100%;
	}
	.categoryPage{
		max-width: 100%;
	}
	.cartPage{
		max-width: 100%;
	}
}

.mainPageCategories{
	margin-top: 20px;
}

.lines {
    display: flex;
    align-items: center;
    text-align: center;
    position: relative;
    margin: 20px 0;
}

.lines::before,
.lines::after {
    content: "";
    flex: 1;
    border-bottom: 2px solid #828282;
    margin: 0 10px;
}

.imageDiv{
	display: flex;
	justify-content: center;
}

.adminBtn{
	display: block;
	top: 367px;
	position: absolute;
}

.orderPlaidBtn{
	display: block;
	top: 273px;
	position: absolute;
}

.cleanBtn{
	display: block;
	top: 320px;
	position: absolute;
}
/* ===== Poster-inspired dark UI (visual layer only; ordering logic unchanged) ===== */
:root{
    --menu-bg:#15191c;
    --menu-panel:#202529;
    --menu-panel-2:#1b2024;
    --menu-line:#343a3f;
    --menu-text:#f2f4f5;
    --menu-muted:#aab2b8;
    --menu-green:#2f7300;
    --menu-green-hover:#3b8c00;
}
html, body { min-height:100%; background:var(--menu-bg); color:var(--menu-text); }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
.preloader { background:var(--menu-bg); color:var(--menu-text); }
.bd-navbar{
    background:#2a3034;
    min-height:58px;
    box-shadow:none;
    border-bottom:1px solid var(--menu-line);
    padding:0 calc((100% - 950px)/2 + 10px);
}
.multiplex__link{ width:auto; height:58px; align-items:center; gap:10px; color:var(--menu-text)!important; text-decoration:none!important; }
.multiplex__logo{ max-width:92px; max-height:38px; object-fit:contain; }
.menu-brand-title{ font-size:15px; font-weight:600; white-space:nowrap; }
.bd-navbar .btn-outline-dark{
    color:#d9dfe2; border-color:transparent; background:transparent; border-radius:50%;
}
.bd-navbar .btn-outline-dark:hover{ color:white; background:#363d42; border-color:#363d42; }
.mainContainer{ top:58px; height:calc(100% - 58px); background:var(--menu-bg); }
.mainPage,.categoryPage,.cartPage{ max-width:950px; width:950px; background:var(--menu-bg); }
.mainPageImage{ border-radius:0; opacity:.72; }
.imageDiv{ position:relative; background:#0f1214; }
.adminBtn,.cleanBtn,.orderPlaidBtn{
    border-color:#697177!important; background:rgba(32,37,41,.88)!important; color:#fff!important;
    border-radius:3px!important; min-width:210px;
}
.mainPageCategories{ margin:0 auto; max-width:700px; padding:20px 12px 40px; }
.lines{ color:#dfe4e7; margin:18px 0; }
.lines::before,.lines::after{ border-bottom:1px solid var(--menu-line); }
.bothInfo,.categoryBtn{
    background:var(--menu-panel); color:var(--menu-text); border:1px solid var(--menu-line);
    border-radius:2px; box-shadow:none; margin:0 0 1px; padding:16px 14px;
}
.categoryBtn{ font-size:16px; font-weight:500; line-height:22px; }
.categoryBtn:hover{ background:#293035; }
.categoryBtn span:last-child{ color:#cbd2d6; font-size:20px; font-weight:300; }
.categoriesTabs{
    height:auto; min-height:54px; background:#2a3034; border-bottom:1px solid var(--menu-line);
    box-shadow:none; padding:9px 12px; top:0;
}
.tabsBtn{ background:transparent; color:#b9c2c7; border-radius:16px; }
.tabsBtn_Active{ background:var(--menu-green); border-color:var(--menu-green); color:#fff; box-shadow:none; }
.tabsBtn_UnActive{ border-color:transparent; color:#9facb2; }
#categoryNameLine,.cartNameLine{ color:var(--menu-text); font-size:28px; font-weight:400; }
#categoryDataContainer,#cartDataContainer{ max-width:700px; margin:0 auto; padding:0 12px 25px; }
.categoryPage > .lines,.cartPage > .lines{ max-width:700px; margin:18px auto; padding:0 12px; }
.card{
    background:var(--menu-panel-2); color:var(--menu-text); border:1px solid var(--menu-line);
    border-radius:2px; margin-bottom:22px; overflow:hidden;
}
.card-header{
    background:var(--menu-bg); color:#e9edef; border-bottom:1px solid var(--menu-line);
    font-size:24px; font-weight:400; padding:12px 10px;
}
.card-body{
    background:var(--menu-panel-2); border-top:1px solid var(--menu-line); padding:14px 12px;
    transition:background-color .15s ease;
}
.card-body:first-of-type{ border-top:0; }
.card-body:hover{ background:#22282c; }
.card-title{ color:#f2f4f5; font-size:16px; font-weight:600; margin-bottom:4px; }
.card-price{ display:block; color:#d7dcdf; font-size:14px; font-weight:500; margin-bottom:5px; }
.card-text{ color:var(--menu-muted); font-size:13px; line-height:1.35; margin:3px 0; }
.label{ color:#8e999f; font-size:12px; margin-top:5px; }
.pictures{ width:118px; max-width:118px; min-width:118px; margin-left:14px; align-self:center; }
.pictures img{ width:108px; height:108px; margin:0; object-fit:cover; border-radius:3px; background:#eee; }
.card-body .btn-primary,.swal2-confirm{
    background:var(--menu-green)!important; border-color:var(--menu-green)!important; color:#fff!important;
}
.card-body .btn-primary:hover,.swal2-confirm:hover{ background:var(--menu-green-hover)!important; border-color:var(--menu-green-hover)!important; }
.card-body .btn-outline-primary{ color:#b7d6a3; border-color:#4b6f35; }
.card-body .btn-outline-danger{ color:#e4a5a5; border-color:#704747; }
.cartTotalH5{
    margin:14px 0 0; padding:16px 12px; background:var(--menu-panel); border:1px solid var(--menu-line);
    color:#fff; font-size:18px; font-weight:600;
}
#cartControlBtns{ max-width:676px; margin-left:auto!important; margin-right:auto!important; gap:12px; }
#cartControlBtns .btn{ border-radius:2px; min-height:44px; }
#cartPutOrderBtn{ background:var(--menu-green); border-color:var(--menu-green); }
#cartClearBtn{ background:#343a3f; border-color:#4a5258; }
/* SweetAlert product/cart dialogs in the same dark language */
.swal2-popup{ background:var(--menu-panel)!important; color:var(--menu-text)!important; border-radius:3px!important; padding:0 0 18px!important; overflow:hidden; }
.swal2-title{ color:var(--menu-text)!important; font-size:23px!important; font-weight:500!important; text-align:left!important; padding:18px 16px 8px!important; }
.swal2-html-container{ color:#d7dcdf!important; text-align:left!important; margin:8px 16px!important; }
.swal2-image{ width:auto!important; max-width:100%!important; height:auto!important; max-height:390px!important; margin:0 auto 8px!important; object-fit:cover; border-radius:0!important; }
.swal2-close{ color:white!important; background:var(--menu-green)!important; border-radius:50%!important; width:30px!important; height:30px!important; top:8px!important; right:8px!important; }
.swal2-input,.swal2-select,.cartSelectInput{
    background:#171b1e!important; color:#fff!important; border:1px solid #465057!important; box-shadow:none!important;
}
.swal2-cancel{ background:#3b4247!important; }
@media (max-width:968px){
    .bd-navbar{ padding:0 10px; }
    .mainPage,.categoryPage,.cartPage{ max-width:100%; }
    .mainPageImage{ height:330px; }
    #categoryDataContainer,#cartDataContainer,.categoryPage > .lines,.cartPage > .lines{ max-width:100%; }
}
@media (max-width:560px){
    .mainPageImage{ height:270px; }
    .mainPageCategories{ padding-left:10px; padding-right:10px; }
    #categoryNameLine,.cartNameLine{ font-size:24px; }
    .card-header{ font-size:21px; }
    .card-body{ padding:12px 10px; }
    .card-title{ font-size:15px; }
    .card-text{ font-size:12px; }
    .pictures{ width:92px; min-width:92px; margin-left:9px; }
    .pictures img{ width:86px; height:86px; }
    .card-body .btn{ padding:.32rem .65rem; font-size:13px; }
    #cartControlBtns{ padding:0 10px; }
    #cartControlBtns .btn{ width:50%!important; }
}

/* ===== Mobile service controls fix =====
   On small screens the service buttons must participate in normal document flow.
   The desktop layout above keeps its original absolute positioning. */
@media (max-width: 560px) {
    .imageDiv {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        background: #0f1214;
    }

    .imageDiv .mainPageImage {
        display: block;
        width: 100%;
        max-width: 100%;
        flex: 0 0 auto;
    }

    .imageDiv .adminBtn,
    .imageDiv .cleanBtn,
    .imageDiv .orderPlaidBtn {
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        display: block;
        width: calc(100% - 20px);
        min-width: 0;
        max-width: none;
        min-height: 42px;
        margin: 8px 10px 0;
        padding: 8px 12px;
        white-space: normal;
        line-height: 1.25;
        flex: 0 0 auto;
    }

    /* Preserve the visual order used by the old absolute coordinates. */
    .imageDiv .orderPlaidBtn { order: 2; }
    .imageDiv .cleanBtn      { order: 3; }
    .imageDiv .adminBtn      { order: 4; margin-bottom: 8px; }

    .mainPageCategories {
        clear: both;
        margin-top: 0;
        padding-top: 8px;
    }

    .bothInfo {
        width: 100%;
        overflow-wrap: anywhere;
    }

    .lines {
        clear: both;
        width: 100%;
    }
}

@media (max-width: 360px) {
    .imageDiv .adminBtn,
    .imageDiv .cleanBtn,
    .imageDiv .orderPlaidBtn {
        font-size: 14px;
    }
}

/* Poster modifications: each variant on its own line */
.product-modification-price {
    display: block;
    line-height: 1.45;
}


/* Poster recipe composition: shown below the product/modification prices. */
.product-ingredients {
    margin-top: 10px;
    margin-bottom: 8px;
    line-height: 1.45;
    opacity: .92;
}


/* Product card layout: text stays on the left, photo is always pinned to the right. */
.product-card-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    min-width: 0;
}
.product-card-content {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}
.product-card-row .pictures {
    display: block;
    flex: 0 0 118px;
    width: 118px;
    min-width: 118px;
    max-width: 118px;
    margin-left: 14px;
    margin-right: 0;
    align-self: flex-start;
}
.product-card-row .pictures img {
    display: block;
    width: 108px;
    height: 108px;
    margin: 0 0 0 auto;
    object-fit: cover;
}
@media (max-width: 560px) {
    .product-card-row .pictures {
        flex: 0 0 92px;
        width: 92px;
        min-width: 92px;
        max-width: 92px;
        margin-left: 8px;
    }
    .product-card-row .pictures img {
        width: 86px;
        height: 86px;
    }
}
@media (max-width: 360px) {
    .product-card-row .pictures {
        flex: 0 0 78px;
        width: 78px;
        min-width: 78px;
        max-width: 78px;
        margin-left: 6px;
    }
    .product-card-row .pictures img {
        width: 74px;
        height: 74px;
    }
}

/* Interactive product image / enlarged preview */
.product-card-row .pictures img.product-image-zoomable {
    cursor: zoom-in;
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}
.product-card-row .pictures img.product-image-zoomable:hover {
    transform: scale(1.045);
    filter: brightness(1.08);
    box-shadow: 0 6px 18px rgba(0,0,0,.32);
}
.product-card-row .pictures img.product-image-zoomable:active {
    transform: scale(.98);
}
.product-image-preview-popup .swal2-image {
    width: auto !important;
    height: auto !important;
    max-width: min(90vw, 900px) !important;
    max-height: 78vh !important;
    object-fit: contain !important;
    border-radius: 8px !important;
    margin: 0 auto !important;
}
.product-image-preview-popup .swal2-html-container {
    margin: 0 !important;
}
.product-image-preview-popup .swal2-close {
    font-size: 2rem;
}

/* Desktop: keep enlarged product photos comfortably inside the viewport */
@media (min-width: 769px) {
    .product-image-preview-popup.swal2-popup {
        width: auto !important;
        max-width: 80vw !important;
        max-height: 76vh !important;
        padding: 10px !important;
    }

    .product-image-preview-popup .swal2-image {
        width: auto !important;
        height: auto !important;
        max-width: 72vw !important;
        max-height: 70vh !important;
        object-fit: contain !important;
        margin: 0 auto !important;
    }
}

/* ===== Frosted subcategory navigation =====
   The strip itself is translucent/frosted; tab buttons stay fully opaque. */
.categoriesTabs{
    background:rgba(32,37,41,.68);
    -webkit-backdrop-filter:blur(14px) saturate(135%);
    backdrop-filter:blur(14px) saturate(135%);
    border-bottom:1px solid rgba(255,255,255,.08);
    box-shadow:0 8px 24px rgba(0,0,0,.14);
}
.categoriesTabs .tabsBtn{
    background:#252b2f;
    opacity:1;
}
.categoriesTabs .tabsBtn_UnActive{
    background:#252b2f;
    border-color:#3b444a;
    color:#c3cbd0;
}
.categoriesTabs .tabsBtn_Active{
    background:var(--menu-green);
    border-color:var(--menu-green);
    color:#fff;
}

/* Multiplex + Georges Club logos in the navigation */
.brand-logos{
    display:flex;
    align-items:center;
    gap:8px;
    height:38px;
}
.brand-logo{
    width:92px;
    height:38px;
    object-fit:contain;
    object-position:center;
    flex:0 0 92px;
}
@media (max-width: 520px){
    .brand-logos{ gap:5px; }
    .brand-logo{ width:70px; height:34px; flex-basis:70px; }
    .menu-brand-title{ display:none; }
}
