/* Standard layout styles */

html,
body#ly-standard {
  background: var(--bg);
}

body#ly-standard {
  font-family: var(--ubuntu);
  line-height: var(--relaxed);
  color: var(--text);
  font-size: var(--body);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  counter-reset: h2-counter h3-counter h4-counter;
}

body#ly-standard .main-content {
  flex: 1;
}

/* CSS Grid System - Flexible width control */
body#ly-standard .grid-container {
  display: grid;
  grid-template-columns:
    [full-start]
    minmax(var(--md), 1fr)
    [page-start]
    minmax(0, calc(var(--page) - (var(--md) * 2)))
    [page-end]
    minmax(var(--md), 1fr)
    [full-end];
  padding-top: var(--2xl);
  padding-bottom: var(--2xl);
}

/* Default: all direct children use page width lane (965px) */
body#ly-standard .grid-container > * {
  grid-column: page;
}

/* Opt-in to full width for direct children only */
body#ly-standard .grid-container > .width-full {
  grid-column: full;
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}

/* Container utilities */
body#ly-standard .container {
  max-width: var(--wide);
  margin: 0 auto;
  padding: 0 1.5rem;
}

body#ly-standard .container-narrow {
  max-width: var(--narrow);
  margin: 0 auto;
  padding: 0 1.5rem;
}

body#ly-standard .container-medium {
  max-width: var(--page);
  margin: 0 auto;
  padding: 0 1.5rem;
}

body#ly-standard .container-wide {
  max-width: var(--wide);
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* Responsive container padding */
@media (max-width: 768px) {
  body#ly-standard .container,
  body#ly-standard .container-narrow,
  body#ly-standard .container-medium,
  body#ly-standard .container-wide {
    padding: 0 1.25rem;
  }

  body#ly-standard .grid-container {
    padding-top: var(--xl);
    padding-bottom: var(--xl);
  }
}

@media (max-width: 480px) {
  body#ly-standard .container,
  body#ly-standard .container-narrow,
  body#ly-standard .container-medium,
  body#ly-standard .container-wide {
    padding: 0 1rem;
  }

  body#ly-standard .grid-container {
    padding-top: var(--lg);
    padding-bottom: var(--lg);
  }
}

@media (max-width: 375px) {
  body#ly-standard .container,
  body#ly-standard .container-narrow,
  body#ly-standard .container-medium,
  body#ly-standard .container-wide {
    padding: 0 0.875rem;
  }
}

@media (max-width: 320px) {
  body#ly-standard .container,
  body#ly-standard .container-narrow,
  body#ly-standard .container-medium,
  body#ly-standard .container-wide {
    padding: 0 0.75rem;
  }

  body#ly-standard .grid-container {
    padding-top: var(--md);
    padding-bottom: var(--md);
  }
}

/* Numbered headings - layout specific due to margin space requirements */
/* Auto-reset child counters for proper hierarchy */
body#ly-standard h2 {
  counter-reset: h3-counter h4-counter;
}

body#ly-standard h3 {
  counter-reset: h4-counter;
}

body#ly-standard h2.numbered,
body#ly-standard h3.numbered,
body#ly-standard h4.numbered {
  position: relative;
}

body#ly-standard h2.numbered::before {
  counter-increment: h2-counter;
  content: counter(h2-counter) ") ";
}

body#ly-standard h3.numbered::before {
  counter-increment: h3-counter;
  content: counter(h3-counter) ") ";
}

body#ly-standard h4.numbered::before {
  counter-increment: h4-counter;
  content: counter(h4-counter) ") ";
}

@media (min-width: 1200px) {
  body#ly-standard h2.numbered::before,
  body#ly-standard h3.numbered::before,
  body#ly-standard h4.numbered::before {
    position: absolute;
    transform: translateX(calc(-100% - 1rem));
  }
}
