:root { --ink:#23282b; --teal:#0d5c63; --muted:#626b6d; --line:#dcdcd5; --alt:#f5f4f0; --sand:#ece7dc; }
* { box-sizing:border-box; }
body { margin:0; background:#fff; color:var(--ink); font:16px/1.62 Arial,Helvetica,sans-serif; }
a { color:#0d5c63; }
.wrap { max-width:1020px; margin:0 auto; padding:0 22px; }
.masthead { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:22px 0 14px; }
.wordmark { font-size:21px; font-weight:bold; color:var(--teal); text-decoration:none; letter-spacing:-0.3px; }
.wordmark span { color:var(--ink); font-weight:normal; }
.contactline { font-size:13px; color:var(--muted); }
nav { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
nav ul { display:flex; gap:24px; list-style:none; margin:0; padding:11px 0; font-size:14px; }
nav a { color:#3a4244; text-decoration:none; }
nav a:hover { text-decoration:underline; }
.hero { background:var(--alt); border-bottom:1px solid var(--line); }
.hero .wrap { display:flex; gap:50px; align-items:flex-start; padding:46px 22px 50px; }
.hero .main { flex:1 1 58%; }
.sessioncard { flex:0 0 300px; border:1px solid var(--line); background:#fff; }
.sessioncard .cap { background:var(--sand); font-size:12px; text-transform:uppercase; letter-spacing:0.07em; color:#4d5658; padding:10px 14px; border-bottom:1px solid var(--line); }
.sessioncard dl { margin:0; padding:14px; font-size:14px; }
.sessioncard dt { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:0.05em; margin-top:10px; }
.sessioncard dt:first-child { margin-top:0; }
.sessioncard dd { margin:2px 0 0; }
.sessioncard .code { font-size:20px; letter-spacing:0.12em; font-weight:bold; color:var(--teal); }
h1 { font-size:29px; line-height:1.3; margin:0 0 15px; letter-spacing:-0.3px; }
h2 { font-size:20px; margin:0 0 12px; }
h3 { font-size:15.5px; margin:0 0 7px; }
h4 { font-size:12.5px; text-transform:uppercase; letter-spacing:0.07em; margin:0 0 10px; }
p { margin:0 0 14px; }
.lead { font-size:17px; color:#3a4244; }
.muted { color:var(--muted); font-size:14.5px; }
.actions { margin-top:22px; }
.btn { display:inline-block; background:var(--teal); color:#fff; text-decoration:none; padding:11px 20px; border-radius:2px; font-size:15px; }
.btn.ghost { background:#fff; color:var(--teal); border:1px solid #b3c2c2; margin-left:10px; }
section { padding:44px 0; }
section.alt { background:var(--alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.g3 { display:flex; gap:32px; }
.g3 > div { flex:1; }
.g4 { display:flex; gap:26px; }
.g4 > div { flex:1; }
ol.timeline { counter-reset:t; list-style:none; margin:0; padding:0 0 0 4px; }
ol.timeline > li { counter-increment:t; position:relative; padding:0 0 24px 34px; border-left:2px solid var(--sand); }
ol.timeline > li:last-child { border-left-color:transparent; padding-bottom:0; }
ol.timeline > li:before { content:counter(t); position:absolute; left:-13px; top:0; width:24px; height:24px; background:var(--teal); color:#fff; font-size:12.5px; text-align:center; line-height:24px; border-radius:50%; }
table { border-collapse:collapse; width:100%; font-size:14.5px; }
th, td { border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }
th { background:var(--alt); font-size:12.5px; text-transform:uppercase; letter-spacing:0.05em; }
.note { background:var(--alt); border:1px solid var(--line); padding:14px 16px; margin:18px 0; }
.note p:last-child { margin-bottom:0; }
ul.plain { padding-left:20px; margin:0 0 14px; }
ul.plain li { margin-bottom:7px; }
footer { background:#1f2b2c; color:#b3bfbd; font-size:13px; padding:38px 0 26px; }
footer .cols { display:flex; gap:40px; margin-bottom:24px; }
footer .cols > div { flex:1; }
footer h4 { color:#fff; }
footer p { margin:0; }
footer ul { list-style:none; margin:0; padding:0; }
footer li { margin:6px 0; }
footer a { color:#d3dedc; text-decoration:none; }
footer a:hover { text-decoration:underline; }
.legal-note { border-top:1px solid #33403f; padding-top:16px; font-size:12px; color:#93a19f; margin:0; }
@media (max-width:840px) {
  .masthead { display:block; }
  .contactline { margin-top:6px; }
  nav ul { flex-wrap:wrap; gap:14px; }
  .hero .wrap { display:block; padding:30px 22px 34px; }
  .sessioncard { margin-top:24px; }
  .g3, .g4, footer .cols { display:block; }
  .g3 > div, .g4 > div, footer .cols > div { margin-bottom:22px; }
}
