/* layout.css — container, section rhythm, grid, alternating ivory/stone */

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

.wh-section {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
  background: var(--c-paper);
}
.wh-section--alt { background: var(--c-paper-alt); }
.wh-section--tight { padding-top: var(--space-block); padding-bottom: var(--space-block); }

@media (max-width: 768px) {
  .wh-container { padding-left: var(--gutter-m); padding-right: var(--gutter-m); }
  .wh-section { padding-top: var(--space-section-m); padding-bottom: var(--space-section-m); }
}

.wh-grid { display: grid; gap: var(--gutter); }
.wh-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wh-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 900px) {
  .wh-grid-3 { grid-template-columns: 1fr; }
  .wh-grid-2 { grid-template-columns: 1fr; }
}

.wh-stack > * + * { margin-top: var(--space-item); }
.wh-stack-lg > * + * { margin-top: var(--space-block); }

/* Utility rules — softer than before, stone-based by default */
.wh-rule           { border: 0; border-top: 1px solid var(--c-stone); margin: var(--space-block) 0; opacity: 0.6; }
.wh-rule-midnight  { border: 0; border-top: 1px solid var(--c-stone); margin: var(--space-block) 0; }
.wh-rule-2         { border: 0; border-top: 1px solid var(--c-accent); margin: var(--space-item) 0; opacity: 0.3; }
.wh-rule-3         { border: 0; border-top: 1px solid var(--c-saffron); margin: var(--space-block) 0; max-width: 80px; }

/* Section H2 reveal animation — opacity only. */
.wh-reveal { opacity: 0; transition: opacity 0.3s ease; will-change: opacity; }
.wh-reveal.is-visible { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .wh-reveal { opacity: 1; } }

.wh-muted { color: var(--c-ink-muted); }
.wh-stone { color: var(--c-stone); }
.wh-center { text-align: center; }

.wh-pagetitle {
  font-family: var(--f-display);
  font-style: italic;
  font-weight: 300;
  font-size: var(--f-display-xl);
  line-height: 1.08;
  color: var(--c-accent);
  max-width: 18ch;
  margin: 0 0 var(--space-item);
}
