/**
 * Per-region layout width — theme-nav-*, theme-hero-*, theme-body-* on body.
 * Nova also uses nv-head-* in theme-03/css/theme.css.
 */
:root {
  --site-inner-width: min(var(--theme-max-width, 1440px), calc(100% - 40px));
  --site-inner-gutter: 20px;
}

/* ---- Navbar ---- */
body.theme-nav-container .site-header .container,
body.theme-nav-container .site-header .container-fluid,
body.theme-nav-container .header-inner,
body.theme-nav-container .container.header-inner,
body.theme-nav-container .header-wrap,
body.theme-nav-container .nav-container,
body.theme-nav-container .centernav,
body.theme-nav-container .t24-header-inner,
body.theme-nav-container .aurora-header-inner,
body.theme-nav-container .am-header__in,
body.theme-nav-container .sl-header__in,
body.theme-nav-container .or-header__in,
body.theme-nav-container .ink-top__in,
body.theme-nav-container .ink-nav__in,
body.theme-nav-container .au-top__in,
body.theme-nav-container .az-header__inner,
body.theme-nav-container .mf-header .container,
body.theme-nav-container header .container:not(.nv-nav),
body.theme-nav-container .navbar .nav-container,
body.theme-nav-container .header-navigation.container,
body.theme-nav-container #masthead .container,
body.theme-nav-container .t04-header .container,
body.theme-nav-container .t11-header .container,
body.theme-nav-container .nv-bar {
  width: var(--site-inner-width);
  max-width: var(--site-inner-width);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

body.theme-nav-full .nav-container,
body.theme-nav-full .site-header .container,
body.theme-nav-full .header-inner,
body.theme-nav-full .container.header-inner,
body.theme-nav-full .header-wrap,
body.theme-nav-full .nv-bar {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* ---- Hero content (background stays full bleed) ---- */
body.theme-hero-container .theme-hero-inner,
body.theme-hero-container .nv-hero__copy,
body.theme-hero-container [class*="hero__copy"],
body.theme-hero-container [class*="hero-copy"],
body.theme-hero-container [class*="Hero__copy"],
body.theme-hero-container [class*="slide__copy"],
body.theme-hero-container [class*="banner__copy"],
body.theme-hero-container .TPMvCn,
body.theme-hero-container .au-hero__copy,
body.theme-hero-container .ink-slide__copy {
  width: var(--site-inner-width);
  max-width: var(--site-inner-width);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

body.theme-hero-full .theme-hero-inner,
body.theme-hero-full .nv-hero__copy {
  max-width: none;
  width: 100%;
}

/* ---- Body / home rows ---- */
body.theme-body-container .theme-body-shell,
body.theme-body-container .catalog-home-head,
body.theme-body-container .home-section__head,
body.theme-body-container .section-top.justify,
body.theme-body-container .movie-row__head,
body.theme-body-container .t11-home-section__title-wrap,
body.theme-body-container .nv-row__head:not(.catalog-home-head--nova),
body.theme-body-container .nv-rail,
body.theme-body-container .nv-grid,
body.theme-body-container .nv-grid--home,
body.theme-body-container .home-grid,
body.theme-body-container .row-scroll,
body.theme-body-container .scroller[data-nv-scroller],
body.theme-body-container .TpRwCont.cont,
body.theme-body-container [class*="movie-row"] [class*="scroller"],
body.theme-body-container [class*="home-row"] [class*="scroller"] {
  width: var(--site-inner-width);
  max-width: var(--site-inner-width);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

body.theme-body-full .theme-body-shell,
body.theme-body-full .catalog-home-head,
body.theme-body-full .nv-row__head,
body.theme-body-full .nv-rail,
body.theme-body-full .nv-grid,
body.theme-body-full .nv-scroller,
body.theme-body-full .TpRwCont.cont,
body.theme-body-full .section-top.justify {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: auto;
}

/* Legacy combined classes (other themes) */
body.theme-head-container .site-header .container,
body.theme-head-container .nav-container {
  width: var(--site-inner-width);
  max-width: var(--site-inner-width);
  margin-left: auto;
  margin-right: auto;
}

body.theme-head-full .nav-container,
body.theme-head-full .catalog-home-head {
  max-width: none;
  width: 100%;
}

@media (max-width: 860px) {
  :root {
    --site-inner-width: min(var(--theme-max-width, 1440px), calc(100% - 28px));
  }
}
