/* Make It So Camp — Swiss poster system (V2/B direction: bone + grotesque + terracotta) */
:root {
  --bg:#EAE6DD;
  --ink:#1A1712;
  --muted:#8C877D;
  --line:#D6D0C4;
  --accent:#8F2E20;
  --accent-hover:#A63D2F;
  --sans:"Helvetica Neue", Helvetica, Arial, sans-serif;
  --wide:1360px;
  --pad:clamp(1.5rem, 3.5vw, 3rem);
}

* { margin:0; padding:0; box-sizing:border-box; }

html {
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body {
  font-size:clamp(1rem, 1.1vw, 1.15rem);
  line-height:1.5;
  overflow-x:hidden;
}

a { color:inherit; }
img, svg { display:block; max-width:100%; }

.meta { font-size:clamp(1rem, 1.3vw, 1.3rem); line-height:1.2; letter-spacing:-0.01em; font-weight:500; }
.light { color:var(--muted); }
.label { font-size:0.82rem; font-weight:600; letter-spacing:0.04em; color:var(--muted); }
.num { font-size:0.82rem; font-weight:700; color:var(--accent); }
.accent { color:var(--accent); text-decoration:none; }
.accent:hover { color:var(--accent-hover); }

/* Header */
.site-header {
  display:flex; justify-content:space-between; align-items:baseline;
  gap:1rem; flex-wrap:wrap;
  width:100%; max-width:var(--wide); margin:0 auto;
  padding:var(--pad) var(--pad) 0;
}
.brand { font-weight:700; letter-spacing:-0.02em; font-size:1.35rem; text-decoration:none; color:var(--ink); }
.nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0.6rem 1.3rem; font-weight:500; }
.nav a { color:var(--muted); text-decoration:none; }
.nav a:hover { color:var(--ink); }
.nav a.accent { color:var(--accent); }

/* Poster hero — shares the section grid so left edges align on all viewports */
.hero {
  min-height:58svh;
  width:100%;
  max-width:var(--wide);
  margin:0 auto;
  display:flex; flex-direction:column;
  padding:clamp(1.5rem, 3.5vw, 2.75rem) var(--pad) var(--pad);
}
.hero-top { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.hero-top > :last-child { text-align:right; }
.hero .spacer { flex:1; min-height:2rem; }
.statement {
  font-weight:700;
  font-size:clamp(2.7rem, 9.2vw, 8.4rem);
  line-height:0.98;
  letter-spacing:-0.03em;
  max-width:15ch;
}
.hero-sub { margin-top:clamp(0.9rem,1.8vw,1.5rem); font-weight:600; font-size:clamp(1.25rem,2.2vw,2rem); line-height:1.25; letter-spacing:-0.015em; max-width:32ch; color:var(--muted); }
.sched { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4.5vw,4.5rem); margin-top:clamp(2rem,3.5vw,3rem); }
.sched h3 { font-weight:700; font-size:clamp(1.3rem,1.8vw,1.65rem); letter-spacing:-0.01em; margin-bottom:0.9rem; }
.slot { display:grid; grid-template-columns:4.5rem 1fr; gap:1rem; padding:0.55rem 0; border-top:1px solid var(--line); font-weight:500; }
.slot-time { font-size:0.85rem; font-weight:700; color:var(--accent); padding-top:0.15rem; }
@media (max-width:820px){ .sched { grid-template-columns:1fr; gap:2rem; } }
.hero-cta { margin-top:clamp(1.2rem, 2.5vw, 2rem); font-size:clamp(1.05rem, 1.4vw, 1.3rem); font-weight:600; }
.hero-cta a { color:var(--accent); text-decoration:none; border-bottom:2px solid var(--accent); }
.hero-cta a:hover { color:var(--accent-hover); border-color:var(--accent-hover); }
.hero-cta-alt { margin-left:1.4rem; }
.hero-cta a.hero-cta-alt { color:var(--muted); border-bottom:2px solid var(--line); }
.hero-cta a.hero-cta-alt:hover { color:var(--ink); border-color:var(--ink); }

/* Section shell */
.section { max-width:var(--wide); margin:0 auto; padding:clamp(3.5rem, 7vw, 6.5rem) var(--pad); }
.section-label { display:flex; gap:1rem; align-items:baseline; margin-bottom:clamp(1.5rem, 3vw, 2.75rem); }
.section-label h2.label { margin:0; }

/* Large statement (what it is / request deck) */
.lead-statement {
  font-weight:600;
  font-size:clamp(1.5rem, 3vw, 2.6rem);
  line-height:1.2;
  letter-spacing:-0.02em;
  max-width:26ch;
}
.lead-statement .dim { color:var(--muted); }

/* Editorial block — content-rich register: lead + two reading columns */
.cols {
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(2rem, 4.5vw, 4.5rem);
  margin-top:clamp(2rem, 3.5vw, 3rem);
}
.cols p {
  max-width:44ch;
  margin-bottom:1.05rem;
  font-size:clamp(1.02rem, 1.15vw, 1.18rem);
  line-height:1.55;
}
.cols p:last-child { margin-bottom:0; }

@media (max-width:820px) {
  .cols { grid-template-columns:1fr; gap:0; }
  /* Stacked columns need their own separation: the last p in each column has no margin. */
  .cols > div + div { margin-top:1.05rem; }
}

/* Camps as Swiss metadata entries */
.camps { display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem, 4vw, 3.5rem); }
.camp { border-top:2px solid var(--ink); padding-top:1rem; }
.camp h2 { font-weight:700; font-size:clamp(1.8rem, 3vw, 2.6rem); letter-spacing:-0.02em; margin-bottom:1.1rem; }
.camp dl { display:grid; grid-template-columns:auto 1fr; gap:0.45rem 1.4rem; margin-bottom:1.3rem; }
.camp dt { color:var(--muted); font-weight:500; }
.camp dd { font-weight:500; }
.camp .cta { font-weight:600; }

/* Method — three numbered moves */
.moves { display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(1.5rem, 3vw, 3rem); }
.move { border-top:2px solid var(--ink); padding-top:0.9rem; }
.move .num { display:block; margin-bottom:0.6rem; }
.move h3 { font-weight:700; font-size:clamp(1.3rem, 1.8vw, 1.65rem); letter-spacing:-0.01em; margin-bottom:0.45rem; }
.move p { color:var(--ink); }
.moves-four { grid-template-columns:repeat(4, 1fr); }
@media (max-width:1100px) { .moves-four { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:640px) { .moves-four { grid-template-columns:1fr; } }

/* How it works — labeled rows */
.day-list { display:grid; }
.day-row {
  display:grid; grid-template-columns:8rem minmax(0, 1fr);
  gap:1.5rem; align-items:start;
  padding:1.4rem 0;
  border-top:2px solid var(--ink);
}
.day-label { font-size:0.82rem; font-weight:700; color:var(--accent); padding-top:0.35rem; }
.day-row h3 { font-weight:700; font-size:clamp(1.3rem, 1.8vw, 1.65rem); letter-spacing:-0.01em; margin-bottom:0.45rem; }
.day-row p { color:var(--ink); max-width:62ch; }

/* Aside note (e.g. "not for") */
.note {
  margin-top:clamp(1.75rem, 3vw, 2.5rem);
  max-width:58ch;
  color:var(--ink);
  font-size:clamp(1.02rem, 1.15vw, 1.18rem);
  line-height:1.55;
}

@media (max-width:820px) {
  .day-row { grid-template-columns:1fr; gap:0.4rem; border-top-width:1.5px; }
}

/* Invitation */
.invite .email { font-weight:700; font-size:clamp(2rem, 5.5vw, 4.2rem); letter-spacing:-0.02em; }
.invite .email a { color:var(--accent); text-decoration:none; border-bottom:3px solid var(--accent); }
.invite .email a:hover { color:var(--accent-hover); border-color:var(--accent-hover); }
.imprint { font-size:0.85rem; line-height:1.65; color:var(--muted); }
.imprint a { font-size:inherit; }

/* Footer */
.footer {
  max-width:var(--wide); margin:0 auto;
  padding:clamp(2rem, 4vw, 3rem) var(--pad);
  border-top:1px solid var(--line);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem 1.5rem;
  color:var(--muted); font-weight:500;
}
.footer a { color:var(--muted); text-decoration:none; }
.footer a:hover { color:var(--ink); }
.footer .collab { max-width:44ch; }

@media (max-width:820px) {
  .hero-top { grid-template-columns:1fr; gap:0.6rem; }
  .hero-top > :last-child { text-align:left; }
  .camps { grid-template-columns:1fr; }
  .moves { grid-template-columns:1fr; }
  .camp, .move { border-top-width:1.5px; }
}

/* Camp detail utilities */
.statement-sm {
  font-size:clamp(2.2rem, 6vw, 5rem);
  max-width:16ch;
}

.facts {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0.45rem 1.4rem;
  margin:0;
  max-width:56rem;
}

.facts dt {
  color:var(--muted);
  font-weight:500;
}

.facts dd {
  margin:0;
  font-weight:500;
}

/* Mobile: single-row scrollable nav; hero CTAs stack */
@media (max-width:640px) {
  .site-header { flex-direction:column; align-items:flex-start; gap:0.55rem; }
  .nav {
    width:100%;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:1.1rem;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    font-size:0.95rem;
    padding-bottom:0.2rem;
  }
  .nav::-webkit-scrollbar { display:none; }
  .nav a { white-space:nowrap; }
  .hero-cta a { display:block; width:fit-content; }
  .hero-cta a.hero-cta-alt, .hero-cta-alt { margin-left:0; margin-top:0.9rem; }
}

/* Imprint — one-line legal strip above the footer */
.imprint-strip { max-width:var(--wide); margin:0 auto; padding:0 var(--pad) 1.4rem; }
.imprint-strip .imprint { font-size:0.78rem; line-height:1.55; color:var(--muted); max-width:none; }
.imprint-strip .imprint a { color:var(--muted); }
.imprint-strip .imprint a:hover { color:var(--ink); }

/* Programme — timed blocks with a takeaway (agenda page) */
.programme { display:grid; }
.prog-row {
  display:grid; grid-template-columns:8rem minmax(0, 1fr);
  gap:1.5rem; align-items:start;
  padding:1.4rem 0;
  border-top:2px solid var(--ink);
}
.prog-time { font-size:0.82rem; font-weight:700; color:var(--accent); padding-top:0.35rem; white-space:nowrap; }
.prog-row h3 { font-weight:700; font-size:clamp(1.3rem, 1.8vw, 1.65rem); letter-spacing:-0.01em; margin-bottom:0.35rem; }
.prog-kicker { color:var(--muted); font-weight:600; max-width:52ch; margin-bottom:0.5rem; }
.prog-row p.prog-body { color:var(--ink); max-width:62ch; }
.prog-take { margin-top:0.7rem; font-size:0.95rem; font-weight:600; color:var(--accent); max-width:62ch; }
.prog-take .prog-take-label { color:var(--muted); font-weight:500; }

.prog-row.rest { border-top-width:1px; padding:0.7rem 0; }
.prog-row.rest .prog-time { color:var(--muted); }
.prog-row.rest h3 { font-size:1.05rem; font-weight:600; color:var(--muted); margin-bottom:0; }

@media (max-width:820px) {
  .prog-row { grid-template-columns:1fr; gap:0.4rem; border-top-width:1.5px; }
  .prog-row.rest { gap:0.2rem; }
}
