/* =========================
   OLIVA — CONSOLIDATED CSS
   ========================= */

/* Vars / base */
:root{
  --olive:#b5c295;
  --green:#557a46;
  --bg:#f7f8f3;
  --dark:#202820;
  --light:#fff;

  --radius:14px;
  --shadow:0 10px 24px rgba(10,10,10,.08);

  font-family:Inter,Arial,sans-serif;
}

html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--dark);font-family:inherit;-webkit-font-smoothing:antialiased;}

/* Layout */
.container{max-width:1100px;margin:28px auto;padding:0 20px}
.logo{text-align:center;margin-bottom:16px}
.logo h1{margin:6px 0 0;font-size:26px;color:var(--green)}

/* =================
   TOP INFO (2 cols)
   ================= */
.info-block{
  display:flex;gap:16px;align-items:center;justify-content:space-between;
  background:var(--light);border-radius:24px;padding:20px;box-shadow:var(--shadow)
}
.info-text,.info-img{
  flex:1;min-height:160px;border-radius:16px;padding:20px;
  background:#a6b68d33;display:flex;align-items:center;justify-content:center;text-align:center
}
.info-text h2{margin:0 0 6px;color:var(--green)}

/* arrows near info (if used) */
.arrow{font-size:24px;color:var(--green);cursor:pointer;user-select:none}
.arrow:hover{color:var(--dark)}

/* =========================
   MENU TYPE SWITCH (buttons)
   ========================= */

/* Base (NOT selected) */
.menu-select button{
  background:#e7eedf;color:var(--green);
  border:none;border-radius:999px;padding:10px 18px;
  transition:.2s;font-weight:600;font-family:inherit
}
/* Hover only for not-active */
.menu-select button:not(.active):hover{background:#d9e6cc}
/* Selected */
.menu-select button.active{
  background:var(--green);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.12);font-weight:700
}
/* Focus ring */
.menu-select button:focus-visible{
  outline:2px solid rgba(85,122,70,.45);outline-offset:2px
}

/* =======
   DATES
   ======= */
.date-nav{display:flex;align-items:center;gap:14px;margin:12px 0}
.date-carousel{display:flex;gap:8px;overflow:hidden;width:360px}
.date-card{
  flex:0 0 72px;background:#fff;border-radius:12px;text-align:center;
  padding:6px 0;border:2px solid transparent;cursor:pointer
}
.date-card-day{font-size:12px;color:#667}
.date-card-date{font-weight:800}
.date-card.active{background:var(--green);color:#fff;border-color:var(--olive)}
.date-card.active .date-card-day{color:#fff}

/* ==============================
   MAIN GRID (cards + right panel)
   ============================== */
.menu-section{
  display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start
}

/* Right panel (calculator) */
.sidebar{
  background:linear-gradient(180deg,var(--green),#44653a);
  color:#fff;border-radius:24px;padding:18px;
  width:100%; /* width governed by grid column */
  position:relative;z-index:5; /* avoid overlay issues */
  box-shadow:0 12px 28px rgba(0,0,0,.10)
}
.sidebar h3{margin:0 0 10px}
.option-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.option-row button{
  background:#ffffff22;color:#fff;border:0;border-radius:999px;
  padding:8px 12px;cursor:pointer;transition:.18s
}
.option-row button:hover{background:#ffffff33}
.option-row button.active{background:#fff;color:var(--green)}
.total{font-size:20px;font-weight:800;margin-top:8px}

/* Order button in the panel */
.order-btn{
  width:100%;padding:14px;border-radius:999px;border:0;
  background:var(--olive);color:#222;font-weight:800;cursor:pointer;margin-top:12px;
  box-shadow:0 8px 20px rgba(0,0,0,.12);transition:transform .1s ease, background .18s ease
}
.order-btn:hover{background:#a4b784}
.order-btn:active{transform:translateY(1px)}

/* =================
   MENU ITEM CARDS
   ================= */
.menu-items{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:980px){ .menu-items{grid-template-columns:repeat(2,1fr)} }
@media (max-width:620px){ .menu-section{grid-template-columns:1fr} .date-carousel{width:100%} }

.menu-card{
  background:#fff;border-radius:16px;padding:12px;box-shadow:0 3px 10px #0000000c;cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;will-change:transform
}
.menu-card:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.08) }
.menu-card img{
  width:100%;height:120px;object-fit:cover;border-radius:12px;margin-bottom:6px;background:#eee
}
.menu-card h4{margin:0;font-size:14px}

/* =================
   LIGHTBOX (unified)
   ================= */
.lb{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:9999; }
.lb.is-open{ display:flex; }
.lb__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.5); opacity:0; transition:opacity .2s ease;}
.lb.is-open .lb__backdrop{ opacity:1; }

.lb__dialog{
  position:relative; width:min(920px, 92vw); max-height:90vh; background:#fff;
  border-radius:16px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.25);
  transform:translateY(10px) scale(.98); opacity:0;
  transition:transform .22s ease, opacity .22s ease;
}
.lb.is-open .lb__dialog{ transform:translateY(0) scale(1); opacity:1; }

.lb__close{
  position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:999px;
  border:none; background:#fff; cursor:pointer; font-size:20px; line-height:1;
  box-shadow:0 4px 14px rgba(0,0,0,.15)
}
.lb__img-wrap{ width:100%; aspect-ratio:16/9; background:#f3f3f3 }
.lb__img-wrap img{ width:100%; height:100%; object-fit:cover; display:block }
.lb__body{ padding:16px 18px 20px }
.lb__body h3{ margin:0 0 6px; font-size:20px }
.lb__body p{ margin:0; color:#555 }

/* Inputs inside lightbox forms (order form) */
.lb__body form input,
.lb__body form select,
.lb__body form textarea{
  width:100%; box-sizing:border-box; background:#f6f7f2; border:1px solid #e0e5d8;
  border-radius:10px; padding:12px 14px; font:inherit; color:var(--dark);
  outline:none; transition:border-color .15s, box-shadow .15s; margin-bottom:12px;
}
.lb__body form input:focus,
.lb__body form select:focus,
.lb__body form textarea:focus{
  border-color:#b6c7a5; box-shadow:0 0 0 3px rgba(181,194,149,.25)
}
.lb__body form textarea{ min-height:120px; resize:vertical }

/* Radios (custom look but simple) */
.form-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}
.form-row label{display:flex;gap:8px;align-items:center;cursor:pointer}
.form-row input[type="radio"]{accent-color:var(--green)}

/* Submit button inside modal */
.lb__body .submit-order{
  display:block;width:100%;border:0;border-radius:999px;padding:14px 18px;margin-top:8px;
  font-weight:700;background:var(--olive);color:#1a1f16;cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.12);transition:background .18s, transform .1s
}
.lb__body .submit-order:hover{background:#a4b784}
.lb__body .submit-order:active{transform:translateY(1px)}

/* =========================
   BANQUET OFFER (right top)
   ========================= */
.banquet-box{
  display:flex;flex-direction:column;justify-content:space-between;
  background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.08);
  border-radius:16px;padding:16px 18px;width:100%;height:100%;
  box-sizing:border-box;color:#1f331f;font-family:inherit
}
.banquet-head{display:flex;flex-direction:column;gap:8px}
.banquet-title{font-size:20px;line-height:1.2;font-weight:700;color:#1f331f}
.banquet-desc{font-size:14px;line-height:1.4;color:#2f3d2f;max-width:260px;font-weight:400}

.banquet-btn{
  align-self:flex-start;margin-top:16px;background:var(--olive);color:var(--dark);
  font-weight:600;font-size:15px;border:0;border-radius:999px;padding:12px 20px;line-height:1.2;
  cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.12);transition:background .18s, box-shadow .18s
}
.banquet-btn:hover{background:#a4b784;box-shadow:0 10px 24px rgba(0,0,0,.16)}

/* =========
   UTILITIES
   ========= */

/* Чтобы соседние блоки не «съедали» клики */
.menu-select button,
#caloriesRow button,
#daysRow button{ pointer-events:auto }