/* ================================================================
   layout.css — container, secties, grids
   ================================================================ */

.container {
  width: 100%;
  max-width: var(--cc-container);
  margin: 0 auto;
  padding-left: var(--cc-gutter);
  padding-right: var(--cc-gutter);
}

/* ---- Section base ---- */

.section {
  position: relative;
  padding: clamp(80px, 12vw, 160px) 0;
  background: var(--cc-surface);
  color: var(--cc-text-primary);
}

.section--inverse {
  background: var(--cc-inverse-surface);
  color: var(--cc-inverse-primary);
}

.section__head {
  display: flex;
  flex-direction: column;
  gap: var(--cc-space-4);
  margin-bottom: var(--cc-space-24);
  max-width: 880px;
}

.section__intro {
  font-family: var(--cc-font-display);
  font-size: var(--cc-text-section);
  line-height: 0.95;
  letter-spacing: var(--cc-tracking-wordmark);
  text-transform: none;
}
.section__intro--inverse { color: var(--cc-inverse-primary); }

.section__lede {
  font-family: var(--cc-font-body);
  font-weight: 400;
  font-size: clamp(16px, 1.4vw, 20px);
  color: var(--cc-text-muted);
  max-width: 56ch;
  margin-top: var(--cc-space-2);
  line-height: 1.5;
}
[data-mode="inverse"] .section__lede { color: var(--cc-text-on-dark-muted); }

/* ============================== SECTION SEAMS \u2014 editorial chapter band ============================== */
/* Geen schuine snijlijn: typografische sectiemarkering met \u00a7-nummer + mono-tags.\n   De Vermillion 1pt onderkant is de eigenlijke kleurovergang. */

.seam {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 32px);
  padding: clamp(20px, 2.5vw, 32px) var(--cc-gutter);
  font-family: var(--cc-font-mono);
  font-size: 11px;
  letter-spacing: var(--cc-tracking-caps);
  text-transform: uppercase;
  border-bottom: 1px solid var(--cc-accent);
  isolation: isolate;
}

/* R.05 misregistratie: 1px Forest schaduw onder de Vermillion onderkant */
.seam::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: -2px;
  height: 1px;
  background: var(--cc-primary);
  opacity: 0.55;
  z-index: -1;
}

.seam--from-inverse {
  background: var(--cc-inverse-surface);
  color: var(--cc-text-on-dark-muted);
}
.seam--from-default {
  background: var(--cc-surface);
  color: var(--cc-text-muted);
}

.seam__chapter {
  font-family: var(--cc-font-display);
  font-weight: 900;
  font-size: clamp(14px, 1.4vw, 18px);
  letter-spacing: var(--cc-tracking-caps);
  color: var(--cc-accent);
  flex-shrink: 0;
}

.seam__next {
  flex-shrink: 0;
  letter-spacing: var(--cc-tracking-caps);
  font-weight: 500;
}

.seam__meta {
  flex-shrink: 0;
  font-style: normal;
  letter-spacing: var(--cc-tracking-caps);
  opacity: 0.7;
}

.seam__rule {
  flex: 1;
  height: 1px;
  background: currentColor;
  opacity: 0.25;
  min-width: 24px;
}

@media (max-width: 720px) {
  .seam {
    flex-wrap: wrap;
    gap: var(--cc-space-3);
    padding: var(--cc-space-6) var(--cc-gutter);
  }
  .seam__rule { display: none; }
  .seam__meta { display: none; }
}

/* ============================== HERO ============================== */

#hero {
  min-height: 100svh;
  padding: 0;
  display: grid;
  place-items: stretch;
  overflow: hidden;
}

.hero {
  position: relative;
  width: 100%;
  min-height: 100svh;
  padding: max(var(--cc-nav-h), 80px) var(--cc-gutter) var(--cc-space-16);
  display: grid;
  grid-template-rows: 1fr auto auto auto auto;
  gap: var(--cc-space-6);
  align-content: end;
  max-width: var(--cc-container);
  margin: 0 auto;
}

.hero__mark {
  position: relative;
  width: max-content;
  overflow: hidden;
  margin-bottom: var(--cc-space-8);
}

.hero__wordmark {
  font-size: var(--cc-text-hero);
  line-height: 0.88;
  color: var(--cc-surface);
  font-family: var(--cc-font-display);
  letter-spacing: var(--cc-tracking-wordmark);
  font-weight: 900;
  text-transform: uppercase;
  max-width: 18ch;
}
.hero__wordmark .cc-wordmark { display: inline-block; }

.hero__statement {
  font-family: var(--cc-font-body);
  font-weight: 500;
  font-size: clamp(20px, 2.2vw, 32px);
  color: var(--cc-inverse-primary);
  max-width: 36ch;
  line-height: 1.25;
}

.hero__sub {
  font-family: var(--cc-font-body);
  font-size: clamp(15px, 1.1vw, 20px);
  color: var(--cc-text-on-dark-muted);
  letter-spacing: 0;
}

.hero__fig {
  position: absolute;
  right: var(--cc-gutter);
  bottom: var(--cc-space-12);
  text-align: right;
}

.hero__corner-tl {
  position: absolute;
  top: calc(var(--cc-nav-h) + var(--cc-space-8));
  right: var(--cc-gutter);
}
.hero__corner-bl {
  position: absolute;
  left: var(--cc-gutter);
  bottom: var(--cc-space-12);
}

@media (max-width: 768px) {
  .hero__fig { position: static; text-align: left; }
  .hero__corner-tl, .hero__corner-bl { display: none; }
}

/* ============================== MANIFESTO ============================== */

.manifesto {
  display: grid;
  gap: var(--cc-space-16);
  border-top: 1px solid var(--cc-border-default);
  padding-top: var(--cc-space-16);
}

.waarde {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--cc-space-8);
  padding-bottom: var(--cc-space-16);
  border-bottom: 1px solid var(--cc-border-subtle);
  align-items: baseline;
}
.waarde:last-child { border-bottom: 0; }

.waarde__num {
  align-self: start;
  padding-top: var(--cc-space-3);
}

.waarde__word {
  font-family: var(--cc-font-display);
  font-size: clamp(56px, 8vw, 128px);
  line-height: 0.9;
  letter-spacing: var(--cc-tracking-wordmark);
  color: var(--cc-primary);
  font-weight: 900;
  text-transform: none;
  margin-bottom: var(--cc-space-4);
}

.waarde__body {
  font-family: var(--cc-font-body);
  font-size: clamp(16px, 1.3vw, 20px);
  color: var(--cc-text-muted);
  max-width: 60ch;
}

@media (max-width: 640px) {
  .waarde { grid-template-columns: 1fr; }
}

/* ============================== WERK ============================== */

.werk-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--cc-space-12);
}
@media (max-width: 768px) {
  .werk-grid { grid-template-columns: 1fr; gap: var(--cc-space-8); }
}

/* ============================== STUDIO ============================== */

.studio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--cc-space-12);
  border-top: 1px solid var(--cc-border-inv-default);
  padding-top: var(--cc-space-16);
}
@media (max-width: 900px) {
  .studio-grid { grid-template-columns: 1fr; gap: 0; }
}

/* ============================== OVER ============================== */

.over-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--cc-space-16);
  align-items: start;
}
@media (max-width: 900px) {
  .over-grid { grid-template-columns: 1fr; }
}

.over-statement { padding-top: var(--cc-space-6); }

.big-statement {
  font-family: var(--cc-font-display);
  font-size: clamp(64px, 9vw, 140px);
  line-height: 0.92;
  letter-spacing: var(--cc-tracking-wordmark);
  color: var(--cc-primary);
  display: flex;
  flex-direction: column;
  gap: var(--cc-space-2);
}
.big-statement__line { display: block; }
.big-statement__line--mark {
  display: inline-flex;
  align-items: baseline;
  position: relative;
}
.big-statement__word { display: inline-block; position: relative; }
.big-statement__rule {
  position: absolute;
  left: 0; right: 0;
  bottom: -0.06em;
  height: 0.08em;
  background: var(--cc-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--cc-dur-slow) var(--cc-ease) 600ms;
}
.big-statement__line--mark.in-view .big-statement__rule { transform: scaleX(1); }

/* ============================== PROCES ============================== */

.plate {
  background: var(--cc-surface-raised);
  border: 1px solid var(--cc-border-default);
  padding: clamp(20px, 3vw, 40px);
  display: grid;
  gap: var(--cc-space-8);
}

.plate__bleed {
  background: var(--cc-surface);
  border: 0.5px solid var(--cc-border-subtle);
  overflow: hidden;
}

.plate__svg { width: 100%; height: auto; display: block; }

.plate__caption {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--cc-space-4);
  padding-top: var(--cc-space-4);
  border-top: 1px solid var(--cc-border-subtle);
}

/* ============================== CONTACT ============================== */

.contact {
  display: grid;
  gap: var(--cc-space-8);
  max-width: 880px;
}

.contact__statement {
  font-family: var(--cc-font-display);
  font-size: clamp(56px, 9vw, 120px);
  line-height: 0.9;
  color: var(--cc-inverse-primary);
  letter-spacing: var(--cc-tracking-wordmark);
}

.contact__sub {
  font-size: clamp(18px, 1.6vw, 24px);
  color: var(--cc-text-on-dark-muted);
  margin-bottom: var(--cc-space-6);
  max-width: 36ch;
}

.contact__options {
  margin-top: var(--cc-space-12);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--cc-space-8);
  border-top: 1px solid var(--cc-border-inv-default);
  padding-top: var(--cc-space-8);
}
.contact__options li {
  display: flex;
  flex-direction: column;
  gap: var(--cc-space-2);
  font-family: var(--cc-font-mono);
  font-size: 14px;
  color: var(--cc-inverse-primary);
}
.contact__options a { color: var(--cc-inverse-primary); text-decoration: none; }
.contact__options a:hover { color: var(--cc-accent); }

@media (max-width: 720px) {
  .contact__options { grid-template-columns: 1fr; gap: var(--cc-space-6); }
}
