.v3-wrap {
  width: min(var(--v3-max), 100% - (var(--v3-gutter) * 2));
  margin-inline: auto;
}

/* Sections with horizontal padding already inset content; avoid double gutter */
.v3-hero > .v3-wrap,
.v3-panel--orange > .v3-wrap,
.v3-panel--orange > .v3-panel__canvas {
  width: 100%;
  max-width: var(--v3-max);
}

@media (max-width: 1024px) and (min-width: 481px) {
  .v3-hero:not(.v3-hero--compact):not(.v3-hero--split) > .v3-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
    max-width: none;
  }
}

.v3-section {
  padding: clamp(4rem, 10vw, 8rem) 0;
  border-top: 1px solid var(--v3-line);
}

.v3-section--dark {
  background: var(--v3-bg);
}

.v3-section--elevated {
  background: var(--v3-bg-elevated);
}

.v3-main {
  position: relative;
  z-index: 2;
}

body.cozq-v3 .v3-main > :first-child:not(.v3-hero):not(.v3-panel--orange):not(.v3-marquee) {
  padding-top: calc(var(--v3-nav-h) + 2rem);
}

.v3-reveal {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity 0.7s var(--v3-ease), transform 0.7s var(--v3-ease);
}

.v3-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.v3-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--v3-line);
  border: 1px solid var(--v3-line);
}

.v3-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--v3-line);
  border: 1px solid var(--v3-line);
}

.v3-grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1px;
  background: var(--v3-line);
  border: 1px solid var(--v3-line);
}

@media (max-width: 900px) {
  .v3-grid-2,
  .v3-grid-3,
  .v3-grid-12 {
    grid-template-columns: 1fr;
  }
}
