/**
 * JaxBeachTech — Layout
 */

.layout-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--space-lg);
}

/* ── Page wrapper ── */
.page-wrapper {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  position: relative;
}

/* Right-side decorative rule */
.page-wrapper::after {
  content: '';
  position: fixed;
  right: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, transparent 5%, var(--gold) 20%, var(--gold) 80%, transparent 95%);
  opacity: .2;
  pointer-events: none;
  z-index: 9998;
}

/* ── Main content area ── */
.layout-main {
  padding: var(--space-xl) 0;
}

/* ── With sidebar ── */
.layout-with-sidebar {
  display: grid;
  grid-template-columns: 1fr var(--sidebar-width);
  gap: var(--space-xl);
  align-items: start;
}

.layout-with-two-sidebars {
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr var(--sidebar-width);
  gap: var(--space-xl);
  align-items: start;
}

/* ── Node/page content max-width ── */
.node__content,
.field--type-text-long,
.field--type-text-with-summary {
  max-width: var(--content-width);
}

/* ── Views / listing grids ── */
.view-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-lg);
}

/* ── Section spacing ── */
.section {
  padding: var(--space-xl) 0;
  border-bottom: var(--border);
}

.section:last-child { border-bottom: none; }

.section-title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 300;
  color: var(--ink);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: var(--border);
  position: relative;
}

.section-title::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 40px;
  height: 2px;
  background: linear-gradient(to right, var(--gold), var(--gold2));
}
