/* Food Story — Loyale template core layout */

/* ── Reset ── */
*, *:before, *:after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; }

body {
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  font-size: 13px;
  color: #fff;
  background: #000;
}

/* ── Site wrapper ── */
#site-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
}

/* ── Sidebar ── */
#main-sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 260px;
  height: 100vh;
  background: rgba(0, 0, 0, 0.85);
  z-index: 100;
  display: flex;
  flex-direction: column;
  padding: 0;
}

#main-sidebar .table-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 30px 30px 20px;
}

#main-sidebar .table-top { flex-shrink: 0; }
#main-sidebar .table-middle { flex: 1; display: flex; align-items: center; overflow: hidden; }
#main-sidebar .table-cell { width: 100%; }
#main-sidebar .table-footer { flex-shrink: 0; padding-top: 20px; }

/* ── Logo ── */
.logo {
  margin-bottom: 20px;
  margin-top: 60px;
}

.logo a { display: block; }
.logo img { max-width: 100%; height: auto; display: block; }

/* ── Dividers ── */
.horizontal-line {
  display: block;
  width: 40px;
  height: 1px;
  background: rgba(255,255,255,0.3);
  margin: 15px 0;
}

/* ── Navigation ── */
#st-menu { margin: 0; padding: 0; }
#st-menu ul.nav.menu { list-style: none; margin: 0; padding: 0; }
#st-menu ul.nav.menu li { position: relative; }

#st-menu ul.nav.menu li a.nav-item {
  display: block;
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  padding: 6px 0;
  text-decoration: none;
  transition: color 0.2s ease;
}

#st-menu ul.nav.menu li a.nav-item:hover,
#st-menu ul.nav.menu li.current a.nav-item,
#st-menu ul.nav.menu li.active a.nav-item {
  color: #fff;
}

/* Dropdown submenus */
#st-menu ul.nav-child {
  display: none;
  list-style: none;
  padding: 0 0 0 12px;
  margin: 0;
}

#st-menu li.deeper:hover > ul.nav-child,
#st-menu li.parent:hover > ul.nav-child {
  display: block;
}

#st-menu ul.nav-child li a.nav-item {
  font-size: 10px;
  color: rgba(255,255,255,0.5);
  padding: 4px 0;
}

#st-menu ul.nav-child li a.nav-item:hover {
  color: #fff;
}

/* ── Social Icons ── */
.social-icons { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; }
.social-icons li a {
  display: inline-block;
  width: 24px;
  height: 24px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  transition: background 0.2s;
}
.social-icons li a:hover { background: rgba(255,255,255,0.7); }

/* ── Copyright ── */
.copyrights {
  font-size: 10px;
  color: rgba(255,255,255,0.4);
  line-height: 1.6;
  margin: 10px 0 0;
}

/* ── Mobile toggle ── */
#st-mobile-toggle {
  display: none;
  position: fixed;
  top: 15px;
  left: 15px;
  z-index: 200;
  width: 40px;
  height: 40px;
  background: rgba(0,0,0,0.7);
  padding: 8px;
  cursor: pointer;
}

#st-mobile-toggle .icon-bar {
  display: block;
  width: 100%;
  height: 2px;
  background: #fff;
  margin: 4px 0;
}

/* ── Background section (full screen) ── */
#background {
  position: fixed;
  top: 0;
  left: 260px;
  right: 0;
  bottom: 0;
  overflow: hidden;
  background: #111;
}

/* ── Slideshow ── */
.st-slider, .sequence {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
}

.sequence-canvas {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
  width: 100%;
  height: 100%;
}

.sequence-canvas li {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.sequence-canvas li.animate-in,
.sequence-canvas li:first-child {
  opacity: 1;
  z-index: 2;
}

.slide-image {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
}

.slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.slide-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
  background: rgba(0,0,0,0.25);
  z-index: 1;
}

/* ── Slide text ── */
.text-block {
  position: absolute;
  bottom: 15%;
  left: 8%;
  z-index: 3;
  max-width: 520px;
}

.slide-title {
  font-size: 38px;
  font-weight: 300;
  color: #fff;
  margin: 0 0 10px;
  letter-spacing: 0.03em;
  line-height: 1.1;
}

.slide-title a { color: #fff; text-decoration: none; }
.slide-title a:hover { text-decoration: underline; }

.slide-subtitle {
  font-size: 16px;
  font-weight: 300;
  color: rgba(255,255,255,0.85);
  margin: 0;
  font-style: italic;
}

/* ── Preloader ── */
.sequence-preloader {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0; left: 0;
  background: #000;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
}

.spinner {
  width: 30px;
  height: 30px;
  border: 3px solid rgba(255,255,255,0.2);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ── Mobile menu overlay ── */
#mobile-menu-wrap {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.95);
  z-index: 300;
  padding: 40px 30px;
  overflow-y: auto;
}

#mobile-menu-wrap.active { display: block; }

#st-mobile-close {
  position: absolute;
  top: 15px;
  right: 20px;
  font-size: 30px;
  color: #fff;
  text-decoration: none;
  line-height: 1;
}

#st-mobile-menu ul.nav.menu { list-style: none; margin: 0; padding: 0; }
#st-mobile-menu ul.nav.menu li a {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  text-decoration: none;
}

#st-mobile-menu ul.nav-child { list-style: none; padding: 0 0 0 15px; margin: 0; }
#st-mobile-menu ul.nav-child li a {
  font-size: 11px;
  padding: 7px 0;
  color: rgba(255,255,255,0.6);
}

/* ── Back to top ── */
#totop {
  display: none;
}

/* ── Main content area (inner pages) ── */
#main-container {
  position: absolute;
  top: 0;
  left: 260px;
  right: 0;
  bottom: 0;
  overflow-y: auto;
  background: rgba(255,255,255,0.96);
  color: #333;
  z-index: 10;
}

#main-container .content-column {
  max-width: 720px;
  padding: 80px;
}

/* Background image on inner pages (behind content) */
#background-image {
  position: fixed;
  top: 0;
  left: 260px;
  right: 0;
  bottom: 0;
  overflow: hidden;
  z-index: 1;
}

#background-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.4;
}

#background-image .image-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(255,255,255,0.5);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  #main-sidebar { display: none; }
  #background { left: 0; }
  #main-container { left: 0; }
  #st-mobile-toggle { display: block; }
  .text-block { left: 5%; bottom: 10%; }
  .slide-title { font-size: 26px; }
  .slide-subtitle { font-size: 13px; }
}
