.wrap{max-width:1080px;margin:0 auto;padding:0 16px;}

header{position:sticky;top:0;z-index:30;background:var(--cream);border-bottom:1px solid rgba(128,128,128,0.2);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;max-width:1080px;margin:0 auto;}
.header-actions{display:flex;align-items:center;gap:8px;}
@media (max-width:420px){ .brand-sub{display:none;} .account-link{padding:8px 11px;} .cart-btn{padding:9px 14px;} }
.account-link{color:var(--charcoal);text-decoration:none;font-weight:600;font-size:0.9rem;padding:9px 14px;border-radius:999px;border:1.5px solid rgba(128,128,128,0.35);white-space:nowrap;max-width:44vw;overflow:hidden;text-overflow:ellipsis;}
.account-box{background:var(--cream-2);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:0.86rem;line-height:1.5;}
.account-box a{color:var(--ocre-dark);font-weight:700;}
.cart-btn{position:relative;display:flex;align-items:center;gap:8px;background:var(--charcoal);color:var(--cream);border:none;border-radius:999px;padding:10px 18px;font-weight:600;font-size:0.92rem;}
.cart-count{background:var(--ocre);color:#36353A;border-radius:999px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:700;padding:0 5px;}

.hero{padding:36px 16px 24px;}
.hero-inner{display:flex;flex-direction:column;gap:14px;max-width:640px;}
.hero h1{font-size:clamp(1.6rem,4vw,2.5rem);line-height:1.12;margin:0;}
.hero p{margin:0;font-size:1rem;line-height:1.55;opacity:0.85;max-width:52ch;}
.hero p.ttc{font-size:0.78rem;opacity:0.6;}
.mode-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:6px;}
.mode-info div{background:var(--white);border:1px solid rgba(128,128,128,0.25);border-radius:12px;padding:10px 14px;font-size:0.84rem;line-height:1.45;}
.mode-info strong{display:block;font-size:0.92rem;margin-bottom:2px;}
.drawer-hint{font-size:0.78rem;opacity:0.7;margin-top:-6px;}
.mode-choice{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;}
.mode-card{display:flex;gap:14px;align-items:flex-start;text-align:left;width:100%;background:var(--white);border:2px solid rgba(128,128,128,0.3);border-radius:14px;padding:16px;}
.mode-card:hover:not(:disabled){border-color:var(--ocre-dark);}
.mode-card:disabled{opacity:0.55;cursor:not-allowed;}
.mode-card .mode-icon{font-size:1.8rem;line-height:1;}
.mode-card strong{display:block;font-size:1.05rem;margin-bottom:4px;}
.mode-card span.mode-detail{display:block;font-size:0.84rem;line-height:1.45;opacity:0.85;}
.mode-card .mode-warn{display:block;color:var(--danger);font-weight:700;font-size:0.84rem;margin-top:6px;}
.mode-recap{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--ocre);color:#36353A;border-radius:12px;padding:10px 14px;font-weight:700;margin-bottom:12px;}
.mode-recap button{border:none;background:rgba(255,255,255,0.6);color:#36353A;border-radius:999px;padding:6px 12px;font-weight:700;font-size:0.8rem;}
.recap-lines{font-size:0.88rem;margin-bottom:14px;}
.recap-lines div{display:flex;justify-content:space-between;padding:2px 0;}
.recap-lines .grand{font-weight:700;font-size:1rem;border-top:1px solid rgba(128,128,128,0.3);margin-top:4px;padding-top:6px;}
.status-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:0.85rem;font-weight:600;width:fit-content;}
.status-open{background:var(--ok-bg);color:var(--ok-fg);}
.status-closed{background:var(--ko-bg);color:var(--ko-fg);}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;}

.cat-nav{position:sticky;top:59px;z-index:20;background:var(--cream);padding:10px 0 12px;border-bottom:1px solid rgba(128,128,128,0.15);}
.cat-nav-inner{display:flex;gap:8px;overflow-x:auto;max-width:1080px;margin:0 auto;padding:0 16px;scrollbar-width:none;}
.cat-nav-inner::-webkit-scrollbar{display:none;}
.cat-pill{flex-shrink:0;border:1.5px solid rgba(128,128,128,0.35);background:var(--white);color:var(--charcoal);border-radius:999px;padding:9px 18px;font-weight:600;font-size:0.88rem;white-space:nowrap;}
.cat-pill.active{background:var(--charcoal);color:var(--cream);border-color:var(--charcoal);}

main{padding:24px 16px 90px;}
.cat-section{margin-bottom:64px;scroll-margin-top:130px;}
.cat-title{display:flex;align-items:baseline;gap:12px;margin-bottom:24px;background:var(--ocre);padding:14px 20px;border-radius:12px;color:#36353A;}
.cat-title h2{font-size:1.6rem;margin:0;}
.cat-title .cat-count{font-size:0.82rem;opacity:0.7;font-weight:600;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.subfam-block{margin-bottom:28px;}
.subfam-title{font-size:1.1rem;font-weight:700;margin:0 0 14px;color:var(--ocre-dark);padding-left:12px;border-left:4px solid var(--ocre);}

.card{background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(128,128,128,0.18);display:flex;flex-direction:column;}
.card-art{aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--cream-2);}
.card-art img.photo{width:100%;height:100%;object-fit:cover;display:block;}
.card-art .placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.card-art .placeholder span{width:55%;aspect-ratio:1;border-radius:50%;background:var(--ocre);opacity:0.55;}
.veggie-badge-photo{position:absolute;bottom:6px;right:6px;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(0,0,0,0.4));}
.card-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.card-name{font-weight:700;font-size:0.98rem;line-height:1.25;}
.card-desc{font-size:0.8rem;opacity:0.7;line-height:1.4;}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:6px;gap:8px;}
.price{font-weight:700;font-size:0.98rem;}
.price-note{font-size:0.68rem;opacity:0.6;}
.add-btn{border:none;background:var(--ocre);color:#36353A;border-radius:999px;width:38px;height:38px;font-size:1.3rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;}
.add-btn.notready{background:var(--cream-2);color:var(--charcoal);opacity:0.75;}
.qty-stepper{display:flex;align-items:center;gap:8px;background:var(--cream-2);border-radius:999px;padding:4px 6px;}
.qty-stepper button{border:none;background:var(--white);width:30px;height:30px;border-radius:50%;font-weight:700;font-size:1rem;line-height:1;}
.qty-stepper span{min-width:16px;text-align:center;font-weight:700;font-size:0.88rem;}

.accomp-picker{background:var(--cream-2);border-radius:10px;padding:8px 10px;margin:4px 0;}
.accomp-label{font-size:0.72rem;font-weight:700;opacity:0.7;margin-bottom:4px;}
.accomp-option{display:flex;align-items:center;gap:8px;font-size:0.85rem;padding:4px 0;cursor:pointer;}
.accomp-option input{width:18px;height:18px;flex-shrink:0;accent-color:var(--ocre-dark);}

.menu-group{margin-bottom:30px;}
.menu-card{background:var(--white);border-radius:var(--radius);border:1px solid rgba(128,128,128,0.18);padding:16px;display:flex;flex-direction:column;gap:10px;}
.menu-card .card-art{aspect-ratio:16/10;border-radius:10px;}
.menu-card h4{font-size:0.98rem;margin:0;font-weight:700;}
.menu-field{display:flex;flex-direction:column;gap:4px;}
.menu-field > label{font-size:0.72rem;font-weight:700;opacity:0.7;}
.picker-btn{display:flex;align-items:center;gap:8px;width:100%;padding:6px;border-radius:10px;border:1px solid rgba(128,128,128,0.35);background:var(--cream-2);color:var(--charcoal);font-size:0.86rem;text-align:left;}
.picker-thumb{width:34px;height:34px;border-radius:7px;background:var(--white);flex-shrink:0;overflow:hidden;}
.picker-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.picker-label{flex:1;}
.picker-chevron{opacity:0.5;}
.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;}
.picker-option{background:var(--white);border:1px solid rgba(128,128,128,0.25);border-radius:12px;padding:8px;text-align:left;display:flex;flex-direction:column;gap:4px;}
.picker-option:hover{border-color:var(--ocre-dark);}
.picker-option-img{aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:var(--cream-2);}
.picker-option-img img{width:100%;height:100%;object-fit:cover;display:block;}
.picker-option-name{font-size:0.82rem;font-weight:700;line-height:1.25;}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,0.35);opacity:0;pointer-events:none;transition:opacity .2s;z-index:40;}
.overlay.show{opacity:1;pointer-events:auto;}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,100%);background:var(--cream);z-index:50;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;box-shadow:-8px 0 24px rgba(0,0,0,0.15);visibility:hidden;}
.drawer.show{transform:translateX(0);visibility:visible;}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid rgba(128,128,128,0.2);}
.drawer-head h2{margin:0;font-size:1.15rem;}
.close-btn{border:none;background:transparent;font-size:1.6rem;line-height:1;color:var(--charcoal);}
.drawer-items{flex:1;overflow-y:auto;padding:14px 20px;display:flex;flex-direction:column;gap:14px;}
.drawer-item{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:0.9rem;}
.drawer-item-name{font-weight:600;}
.drawer-item-meta{font-size:0.78rem;opacity:0.7;}
.drawer-item-right{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.drawer-item-rm{border:none;background:var(--cream-2);border-radius:50%;width:26px;height:26px;font-size:0.9rem;flex-shrink:0;}
.drawer-warning{color:var(--danger);font-size:0.84rem;font-weight:600;}
.drawer-foot{border-top:1px solid rgba(128,128,128,0.2);padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px;}
.total-row{display:flex;justify-content:space-between;font-weight:700;font-size:1.05rem;}

.confirm-icon{width:52px;height:52px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#36353A;margin-bottom:14px;}
.form-error{color:var(--danger);font-size:0.85rem;font-weight:600;min-height:1.2em;margin:0 0 10px;}

footer{padding:30px 16px 50px;text-align:center;}
.legal-links{font-size:0.8rem;margin-bottom:10px;}
.legal-links a{color:var(--ocre-dark);}
.admin-link{font-size:0.75rem;opacity:0.5;color:var(--charcoal);}
