/* =========================================================
   Hairun Trading — Layout
   Container, header, footer, grid utilities
   ========================================================= */

/* ---- Container -------------------------------------- */
.container {
  width: 100%;
  max-width: var(--hairun-container-lg);
  margin-inline: auto;
  padding-inline: var(--hairun-space-16);
}
.container--sm { max-width: var(--hairun-container-sm); }
.container--md { max-width: var(--hairun-container-md); }
.container--lg { max-width: var(--hairun-container-lg); }
.container--xl { max-width: var(--hairun-container-xl); }

@media (min-width: 480px) { .container { padding-inline: var(--hairun-space-24); } }
@media (min-width: 768px) { .container { padding-inline: var(--hairun-space-32); } }
@media (min-width: 1024px) { .container { padding-inline: var(--hairun-space-40); } }
@media (min-width: 1280px) { .container { padding-inline: var(--hairun-space-48); } }

/* ---- Section ---------------------------------------- */
.section {
  padding-block: var(--hairun-section-padding);
}
.section--tight { padding-block: clamp(var(--hairun-space-32), 5vw, var(--hairun-space-64)); }
.section--wide  { padding-block: clamp(var(--hairun-space-64), 10vw, var(--hairun-space-160)); }
.section--dark  { background: var(--hairun-color-brand-dark); color: var(--hairun-color-neutral-50); }
.section--deep  { background: var(--hairun-color-brand-deep); color: var(--hairun-color-neutral-50); }
.section--soft  { background: var(--hairun-color-neutral-100); }
.section--warm  { background: var(--hairun-color-neutral-50); }

.section__header {
  max-width: 720px;
  margin: 0 auto var(--hairun-space-48);
  text-align: center;
}
.section__header--left {
  margin-inline: 0;
  text-align: left;
}
.section__title { color: inherit; }
.section--dark .section__title,
.section--deep .section__title { color: var(--hairun-color-neutral-50); }
.section__intro { margin-top: var(--hairun-space-16); color: inherit; opacity: .85; }

/* ---- Header ----------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--hairun-z-sticky);
  background: rgba(250, 247, 242, .85);
  backdrop-filter: saturate(160%) blur(12px);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--hairun-color-neutral-200);
  transition: box-shadow var(--hairun-duration-base) var(--hairun-ease-out-quart);
}
.site-header.is-scrolled {
  box-shadow: var(--hairun-shadow-md);
}
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hairun-space-24);
  height: var(--hairun-header-height);
}
.site-header__brand {
  display: flex;
  align-items: center;
  gap: var(--hairun-space-12);
  font-family: var(--hairun-font-family-display);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--hairun-color-neutral-900);
  letter-spacing: var(--hairun-letter-spacing-snug);
}
.site-header__brand svg { width: 32px; height: 32px; }
.site-header__nav { display: none; }
@media (min-width: 1024px) {
  .site-header__nav { display: flex; align-items: center; gap: var(--hairun-space-32); }
}
.site-header__nav a {
  position: relative;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--hairun-color-neutral-700);
  padding-block: var(--hairun-space-8);
  transition: color var(--hairun-duration-fast) var(--hairun-ease-out-quart);
}
.site-header__nav a:hover,
.site-header__nav a[aria-current="page"] {
  color: var(--hairun-color-brand-gold);
}
.site-header__nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--hairun-color-brand-gold);
}

.site-header__cta {
  display: flex;
  align-items: center;
  gap: var(--hairun-space-16);
}

.nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--hairun-radius-8);
  color: var(--hairun-color-neutral-900);
  background: transparent;
}
.nav-toggle:hover { background: var(--hairun-color-neutral-100); }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  transition: transform var(--hairun-duration-base) var(--hairun-ease-out-quart),
              opacity var(--hairun-duration-fast) var(--hairun-ease-out-quart);
}
.nav-toggle__bar { position: relative; }
.nav-toggle__bar::before,
.nav-toggle__bar::after {
  content: "";
  position: absolute;
  left: 0;
}
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after  { top: 7px; }
body.nav-open .nav-toggle__bar { background: transparent; }
body.nav-open .nav-toggle__bar::before { top: 0; transform: rotate(45deg); }
body.nav-open .nav-toggle__bar::after  { top: 0; transform: rotate(-45deg); }

/* Mobile nav drawer */
.mobile-nav {
  position: fixed;
  inset: var(--hairun-header-height) 0 0 0;
  z-index: var(--hairun-z-overlay);
  background: var(--hairun-color-neutral-50);
  padding: var(--hairun-space-32) var(--hairun-space-24);
  transform: translateY(-12px);
  opacity: 0;
  pointer-events: none;
  transition: transform var(--hairun-duration-base) var(--hairun-ease-out-quart),
              opacity var(--hairun-duration-fast) var(--hairun-ease-out-quart);
}
body.nav-open .mobile-nav {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.mobile-nav ul { display: flex; flex-direction: column; gap: var(--hairun-space-8); }
.mobile-nav a {
  display: block;
  padding: var(--hairun-space-12) var(--hairun-space-16);
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--hairun-color-neutral-900);
  border-radius: var(--hairun-radius-8);
}
.mobile-nav a:hover,
.mobile-nav a[aria-current="page"] { background: var(--hairun-color-neutral-100); }
@media (min-width: 1024px) { .mobile-nav { display: none; } }

/* ---- Footer ----------------------------------------- */
.site-footer {
  background: var(--hairun-color-brand-dark);
  color: var(--hairun-color-neutral-100);
  padding-block: var(--hairun-space-64) var(--hairun-space-24);
  margin-top: auto;
}
.site-footer a { color: var(--hairun-color-neutral-100); transition: color var(--hairun-duration-fast); }
.site-footer a:hover { color: var(--hairun-color-brand-gold); }
.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--hairun-space-40);
  margin-bottom: var(--hairun-space-48);
}
@media (min-width: 768px) {
  .site-footer__grid {
    grid-template-columns: 1.5fr repeat(3, 1fr);
    gap: var(--hairun-space-48);
  }
}
.site-footer__brand p {
  color: var(--hairun-color-neutral-300);
  margin-top: var(--hairun-space-16);
  max-width: 28rem;
}
.site-footer__heading {
  font-family: var(--hairun-font-family-display);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: var(--hairun-letter-spacing-eyebrow);
  text-transform: uppercase;
  color: var(--hairun-color-brand-gold);
  margin-bottom: var(--hairun-space-16);
}
.site-footer__list { display: flex; flex-direction: column; gap: var(--hairun-space-8); }
.site-footer__list a { color: var(--hairun-color-neutral-200); font-size: 0.9375rem; }
.site-footer__list a:hover { color: var(--hairun-color-brand-gold); }
.site-footer__contact { display: flex; flex-direction: column; gap: var(--hairun-space-8); }
.site-footer__contact-line { font-size: 0.9375rem; color: var(--hairun-color-neutral-200); }
.site-footer__contact-line strong { color: var(--hairun-color-neutral-50); font-weight: 600; }
.site-footer__bottom {
  display: flex;
  flex-direction: column;
  gap: var(--hairun-space-8);
  padding-top: var(--hairun-space-24);
  border-top: 1px solid rgba(250,247,242,.12);
  font-size: 0.8125rem;
  color: var(--hairun-color-neutral-300);
}
@media (min-width: 768px) {
  .site-footer__bottom {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
  }
}
.site-footer__legal { display: flex; gap: var(--hairun-space-24); flex-wrap: wrap; }
.site-footer__legal a { color: var(--hairun-color-neutral-100); }
.site-footer__legal a:hover { color: var(--hairun-color-brand-gold); }

/* ---- Grid utilities --------------------------------- */
.grid { display: grid; gap: var(--hairun-space-24); }
.grid--cards   { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.grid--news    { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.grid--team    { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.grid--3col    { grid-template-columns: 1fr; }
@media (min-width: 768px)  { .grid--3col { grid-template-columns: repeat(3, 1fr); } }
.grid--2col    { grid-template-columns: 1fr; }
@media (min-width: 768px)  { .grid--2col { grid-template-columns: repeat(2, 1fr); } }

/* ---- Layout helpers --------------------------------- */
.stack > * + * { margin-top: var(--hairun-space-24); }
.stack-sm > * + * { margin-top: var(--hairun-space-12); }
.stack-lg > * + * { margin-top: var(--hairun-space-48); }

.flow > * + * { margin-top: var(--hairun-space-16); }
.flow-lg > * + * { margin-top: var(--hairun-space-32); }

.cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--hairun-space-16);
}

.divider {
  height: 1px;
  background: var(--hairun-color-neutral-200);
  margin-block: var(--hairun-space-48);
}
.section--dark .divider,
.section--deep .divider { background: rgba(250,247,242,.12); }

/* ---- Breadcrumb ------------------------------------- */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--hairun-space-8);
  font-size: 0.875rem;
  color: var(--hairun-color-neutral-500);
  margin-bottom: var(--hairun-space-24);
}
.breadcrumb a { color: var(--hairun-color-neutral-700); }
.breadcrumb a:hover { color: var(--hairun-color-brand-gold); }
.breadcrumb__sep { color: var(--hairun-color-neutral-400); }
.breadcrumb__current { color: var(--hairun-color-neutral-900); font-weight: 500; }
.section--dark .breadcrumb,
.section--deep .breadcrumb { color: rgba(250,247,242,.7); }
.section--dark .breadcrumb a,
.section--deep .breadcrumb a { color: rgba(250,247,242,.85); }
.section--dark .breadcrumb__current,
.section--deep .breadcrumb__current { color: var(--hairun-color-neutral-50); }

/* ---- Decorative band ------------------------------- */
.band {
  position: relative;
  overflow: hidden;
  padding-block: clamp(var(--hairun-space-32), 5vw, var(--hairun-space-64));
  background: linear-gradient(135deg, var(--hairun-color-brand-deep), var(--hairun-color-brand-dark));
  color: var(--hairun-color-neutral-50);
}