:root{
  --bg: #f7f3ea;
  --text: #1f1f1f;
  --muted: #5f5f5f;
  --accent: #3D0C02;
  --forest: #1B3B2F;
  --card: #ffffff;
  --border: #e4ded3;
  --tint-beige: #f4efe3;
  --tint-green: #EEF4EF;
  --tint-red: #F6ECEC;
}

* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--bg); color:var(--text); font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Helvetica, Arial; line-height:1.6; }
section { scroll-margin-top: 84px; }

a { color: var(--text); text-decoration: none; border-bottom: 1px solid transparent; }
a:hover { border-color: var(--text); }

.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* Header: beige with border; fades slightly on scroll */
.site-header { position: sticky; top: 0; z-index: 10; background: rgba(247,243,234,1); border-bottom:1px solid var(--border); transition: background-color .3s ease, box-shadow .3s ease; }
.site-header.scrolled { background: rgba(247,243,234,0.95); box-shadow: 0 2px 10px rgba(0,0,0,.05); }
.nav { display:flex; align-items:center; justify-content:space-between; height:64px; }
.brand { display:flex; gap:.6rem; align-items:center; font-weight:700; letter-spacing:.04em; color: var(--forest); }
.brand .wordmark { font-size:1.1rem; color: var(--forest); }
.logo { width:30px; height:30px; display:block; flex:0 0 30px; }
.links a { margin-left: 18px; opacity:.9; color: var(--forest); border-color: transparent; }
.links a:hover { border-color: rgba(27,59,47,.25); }
.menu { display:none; background:none; border:1px solid var(--border); color: var(--forest); border-radius:8px; padding:.35rem .6rem; }

@media (max-width: 780px) {
  .menu { display:block; }
  .links { position: absolute; right: 20px; top: 64px; background: var(--bg); border:1px solid var(--border); padding:12px; border-radius:12px; display:none; }
  .links.open { display:block; }
  .links a { display:block; margin:8px 0; }
}

/* Hero */
.hero.beige { position: relative; padding: 96px 0 120px; background: var(--tint-beige); border-bottom:1px solid var(--border); overflow:hidden; }
.hero-mountains { position:absolute; left:0; right:0; bottom:0; width:100%; height:160px; object-fit: cover; opacity:.9; }
.hero h1 { font-size: clamp(2.2rem, 4.5vw, 4rem); letter-spacing:.02em; margin:0 0 10px; color: var(--forest); }
.tagline { font-size: clamp(1.05rem, 2vw, 1.25rem); color: var(--muted); }

.section { padding: 64px 0; }
.section.alt { background: #fff; }
.section h2 { color: var(--forest); border-left: 6px solid var(--forest); padding-left: 10px; }
.two-col { display:grid; grid-template-columns: 1.2fr .95fr; gap:32px; align-items:start; }
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; } }

.card { background: var(--card); border:1px solid var(--border); border-radius:16px; padding:20px; }
.card h3 { margin-top:0; color: var(--forest); }

.glance.colourful { background: var(--tint-green); }
.stats { display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin-top:10px; }
@media (max-width: 700px) { .stats { grid-template-columns: 1fr; } }
.stat { display:flex; gap:12px; align-items:center; background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px; }
.ico-svg { width:34px; height:34px; flex:0 0 auto; }

.stat span { display:block; color: var(--muted); font-size:.95rem; }
.stat b { display:block; font-size:1.05rem; }

.cols { display:grid; grid-template-columns: 1fr 1fr; gap:20px; margin-top:16px; }
@media (max-width: 900px) { .cols { grid-template-columns: 1fr; } }
.callout { border:1px solid var(--border); border-radius:14px; padding:16px 18px; background: #fff; }
.callout.green { background: var(--tint-green); }
.callout.red { background: var(--tint-red); }
.callout h4 { margin:0 0 8px; color: var(--forest); }
.callout.red h4 { color: var(--forest); }
.tip { margin-top: 14px; background: var(--tint-beige); border:1px solid var(--border); border-radius:12px; padding:12px 14px; }

.disclaimer { background: var(--card); border:1px solid var(--border); border-radius:14px; padding:20px; }
.form { display:grid; gap:12px; max-width:720px; }
.form label { display:grid; gap:6px; }
.form .hidden { display:none; }
input, textarea { background:#fff; border:1px solid var(--border); border-radius:10px; color: var(--text); padding:.7rem .8rem; }
input:focus, textarea:focus { outline:2px solid var(--forest); outline-offset: 1px; }
.small { font-size:.9rem; }
.muted { color: var(--muted); }

.btn-register { width: 100%; background: var(--forest); color: white; border: none; border-radius: 10px; padding: 1rem; font-size: 1.05rem; font-weight: 600; cursor: pointer; }

.site-footer { border-top:1px solid var(--border); padding: 28px 0; background: var(--bg); }
.foot.center { display:flex; justify-content:center; }
.brandline { color: var(--forest); margin:0; opacity:.85; font-weight:600; }
