/* =============================
  GENERAL (Shared site styles)
  ============================= */
/* Variables */
:root {
  --font-serif: 'Cinzel', serif; /* Trajan-like for headings */
  --font-sans-compact: 'Barlow Condensed', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; /* compact sans for body */
}

/* Base theme */
body {
  font-family: var(--font-sans-compact);
  margin-bottom: 1rem;
}

/* Home page three-block vertical layout */
.home-layout { min-height: 100vh; display: grid; grid-template-rows: 1fr 1fr 1fr; }
.home-block { display: flex; flex-direction: column; justify-content: center; }
.home-bg {
  position: relative;
  background: url('../assets/home.jpg') center/cover no-repeat fixed;
}
.home-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.80); /* transparent black wash */
  pointer-events: none;
}
.home-bg > * { position: relative; z-index: 1; }

/* Global dark theme text color */
body.bg-black { color: #f8f9fa; }

/* Layout helpers */
.menu-max { max-width: 820px; }
.menu-logo { max-width: 90%; width: 90%; height: auto; object-fit: contain; }
.banner-divider { height: 65px; overflow: hidden; margin: 3rem 0 1rem; }
.banner-divider img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* =============================
  MENU PAGE (menu.html)
  ============================= */
/* Navigation tabs & pills */
.nav-pills .nav-link {
  color: #ddd;
  background: transparent;
  border: 1px solid rgba(255,255,255,.15);
}
.nav-pills .nav-link.active {
  color: #000;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}
/* Equal-width, full-width nav pills */
.nav.nav-fill > .nav-item { flex: 1 1 0; }
.nav.nav-fill > .nav-item > .nav-link { width: 100%; }

/* Make external white SVG icons black on active (white background) */
.nav-pills .nav-link.active .menu-tab-icon { filter: invert(1); }

/* Icon tabs (compact) */
.menu-tab {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .25rem;
  padding-block: .5rem;
  padding-inline: .5rem;
}
.menu-tab-icon {
  font-size: 1.6rem;
  line-height: 1;
  width: 1.2em;
  height: 1.2em;
  margin: .25rem 0;
  display: inline-block;
}
.menu-tab-label {
  font-family: var(--font-serif);
  font-size: .95rem;
  letter-spacing: .2px;
  font-weight: 600;
  text-transform: uppercase;
}

/* Accordion (categories) */
.category-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.accordion-item {
  background-color: #111 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}
.accordion-button {
  color: #f8f9fa;
  background-color: #111;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  letter-spacing: .3px;
}
.accordion-button:not(.collapsed) {
  color: #000;
  background-color: #f8f9fa;
}
.accordion-button::after { filter: invert(1) grayscale(1); }
.accordion-body { background-color: #0b0b0b; }

/* Item cards (menu items) */
.card {
  background-color: #151515;
  color: #f1f1f1;
  border: 1px solid rgba(255,255,255,.06);
}
.card-body { position: relative; }

.card-title {
  font-family: var(--font-serif);
  margin-bottom: .25rem;
  padding-right: 5.5rem; /* space for top-right price */
  min-height: 1.5em;
}

.item-price {
  font-size: 1.75rem;
  font-weight: 400;
  white-space: nowrap;
  position: absolute; top: .6rem; right: .75rem; z-index: 1;
}
.item-meta { font-size: .875rem; }
.card .text-muted, .item-meta { color: #b7b7b7 !important; }
.item-price.text-primary { color: #ffffff !important; }

/* Fix: prevent horizontal overflow for long titles (e.g., Drinks/Răcoritoare) */
.card-body .d-flex > .card-title {
  flex: 1 1 auto;
  min-width: 0; /* allow flex child to shrink */
  overflow-wrap: anywhere;
  word-break: break-word;
}
.card-text, .item-meta { overflow-wrap: anywhere; word-break: break-word; }

/* Items grid: full-width on mobile */
.items-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}


/* =============================
  GALLERY PAGE (gallery.html)
  ============================= */
/* Gallery grid */
/* Thumbnail grid */
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px,1fr)); gap: .75rem; }
@media (min-width:576px){ .gallery-grid { gap:1.1rem; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); } }

/* Gallery actions (menu link button) */
.gallery-actions { margin-top:.25rem; }
.gallery-menu-btn {
  font-family: var(--font-serif);
  font-size: 1.25rem; /* match accordion-button size */
  letter-spacing: .3px; /* align with category buttons */
  font-weight: 400; /* match accordion category buttons weight */
  text-transform: uppercase;
  padding: .6rem .9rem; /* increase vertical rhythm since btn-sm shrinks padding */
  line-height: 1.15;
}
/* Increase specificity so Bootstrap .btn.btn-sm rules do not override our sizing */
.btn.gallery-menu-btn {
  font-family: var(--font-serif);
  font-size: 1.25rem;
}

/* Gallery thumbnail cards */
.gallery-card { position:relative; display:inline-flex; padding:0; border:0; border-radius:0; overflow:hidden; background:#111; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease; }
.gallery-card:hover { transform:translateY(-2px); box-shadow:0 12px 26px rgba(0,0,0,.35); }
.gallery-card:focus-visible { outline:2px solid #f8f9fa; outline-offset:4px; }
.gallery-card img { width:100%; height:100%; aspect-ratio:1/1; object-fit:cover; display:block; }

/* Gallery modal layout */
#galleryModal .modal-dialog { margin:0; width:100%; max-width:none; min-height:100vh; }
#galleryModal .modal-content { border-radius:0; background:#050505; min-height:100vh; display:flex; flex-direction:column; justify-content:center; }
.gallery-modal-stack { display:flex; flex-direction:column; justify-content:center; min-height:100vh; }

/* Gallery carousel */
#galleryCarousel { background:#050505; }
#galleryCarousel .carousel-inner { width:100%; }
#galleryCarousel .carousel-item { min-height:50vh; }
#galleryCarousel .carousel-item figure { margin:0; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
#galleryCarousel .carousel-item img { width:100%; height:auto; max-height:70vh; object-fit:contain; padding:0 1rem; }

/* Gallery caption & details */
.gallery-modal-caption { padding:.75rem 2.5rem; text-align:center; }
.gallery-modal-caption h2 { font-family:var(--font-serif); letter-spacing:.05em; margin-bottom:.5rem; }
.gallery-modal-caption p { font-size:.95rem; line-height:1.6; margin:0; }
#galleryModalDescription { margin-bottom:.9rem; }
.gallery-modal-details { margin-top:.75rem; display:grid; gap:.3rem; justify-items:center; }
.gallery-modal-details .item-meta { margin:0; text-align:center; }


/* =============================
  FOOTER (Shared)
  ============================= */
/* Social links */
.footer-social { display: inline-flex; gap: .75rem; align-items: center; }
.footer-social-link { color: #d2d6da; display: inline-flex; padding: .25rem; border-radius: .5rem; transition: color .2s ease, background-color .2s ease; }
.footer-social-link i { font-size: 1.6rem; line-height: 1; }
.footer-social-link:hover { color: #000; background-color: #f8f9fa; }

/* Home page: force address line white for contrast over darkened background */
/* Make both copyright and address lines white (all non-social direct divs) */
body.home-bg footer .menu-max > div:not(.footer-social) { color: #ffffff; }
