:root {
  --burgundy:#7A2E1D; --burgundy-dark:#5C2115; --gold:#C9A860;
  --cream:#F5EFE6; --cream-dark:#EAE1D3;
  --ink:#2C2C2C; --muted:#6B5B4E; --rule:#D8CFC3; --bg:#FBF8F3;
}
* { box-sizing:border-box; }
html,body { margin:0; padding:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.55; color:var(--ink); background:var(--bg); }
a { color:var(--burgundy); text-decoration:none; }
a:hover { text-decoration:underline; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4 { color:var(--burgundy); font-weight:700; margin:0 0 .6em; line-height:1.2; }
h1 { font-size:2.2rem; }
h2 { font-size:1.6rem; margin-top:1.6em; padding-bottom:.3em; border-bottom:2px solid var(--rule); }
h3 { font-size:1.2rem; }
p { margin:0 0 1em; }
.container { max-width:1140px; margin:0 auto; padding:0 20px; }

.site-header { background:var(--burgundy); color:#fff; padding:14px 0; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.site-header .container { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:14px; color:#fff; }
.brand-mark { width:44px; height:44px; background:var(--gold); color:var(--burgundy-dark); border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.05rem; flex-shrink:0; }
.brand strong { font-size:1.05rem; letter-spacing:.4px; color:#fff; }
.brand small { font-size:.7rem; color:rgba(255,255,255,.75); letter-spacing:1.5px; text-transform:uppercase; display:block; }
.nav { display:flex; gap:22px; flex-wrap:wrap; align-items:center; }
.nav a { color:#fff; font-size:.92rem; font-weight:500; padding:6px 0; border-bottom:2px solid transparent; }
.nav a:hover, .nav a.active { border-bottom-color:var(--gold); text-decoration:none; }
.nav a.cta { background:var(--gold); color:var(--burgundy-dark); padding:8px 18px; border-radius:4px; border:none; font-weight:700; }
.nav a.cta:hover { background:#d9b970; border-bottom-color:transparent; }

.hero { background:linear-gradient(135deg, var(--burgundy) 0%, var(--burgundy-dark) 100%); color:#fff; padding:60px 0 70px; text-align:center; }
.hero h1 { color:#fff; font-size:2.6rem; margin-bottom:.3em; }
.hero .kicker { color:var(--gold); letter-spacing:3px; text-transform:uppercase; font-size:.85rem; font-weight:700; margin-bottom:14px; }
.hero .lead { font-size:1.15rem; opacity:.95; max-width:720px; margin:0 auto 28px; }
.hero .facts { display:flex; justify-content:center; gap:40px; flex-wrap:wrap; margin-top:20px; }
.hero .fact { text-align:center; }
.hero .fact-val { font-size:1.35rem; font-weight:700; color:var(--gold); }
.hero .fact-lbl { font-size:.75rem; letter-spacing:1.5px; text-transform:uppercase; opacity:.8; margin-top:2px; }
.hero .cta-row { margin-top:34px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn { display:inline-block; padding:12px 28px; border-radius:4px; font-weight:600; font-size:.95rem; border:none; cursor:pointer; text-decoration:none; }
.btn-primary { background:var(--gold); color:var(--burgundy-dark); }
.btn-primary:hover { background:#d9b970; text-decoration:none; }
.btn-secondary { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.5); }
.btn-secondary:hover { border-color:#fff; text-decoration:none; }

.page-header { background:var(--cream); padding:30px 0; border-bottom:2px solid var(--rule); text-align:center; }
.page-header h1 { margin-bottom:.2em; }
.page-header .sub { color:var(--muted); font-size:1.05rem; }

main { padding:40px 0 60px; }
.section { margin-bottom:40px; }
.card { background:#fff; padding:24px; border-radius:6px; border:1px solid var(--rule); box-shadow:0 1px 4px rgba(0,0,0,.04); margin-bottom:16px; }
.card-title { color:var(--burgundy); font-weight:700; margin-bottom:8px; }

.info-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:16px; margin:24px 0; }
.info-card { background:#fff; padding:20px; border-radius:6px; border-top:3px solid var(--gold); box-shadow:0 1px 4px rgba(0,0,0,.04); }
.info-card h3 { font-size:1rem; margin-bottom:8px; }
.info-card p { margin:0; color:var(--muted); font-size:.95rem; }

.programme-day { margin-bottom:36px; }
.programme-day h3 { background:var(--burgundy); color:#fff; padding:10px 16px; margin:0; border-radius:4px 4px 0 0; font-size:1.1rem; }
.prog-table { width:100%; border-collapse:collapse; margin:0; background:#fff; border:1px solid var(--rule); font-size:.92rem; }
.prog-table th { background:var(--cream-dark); color:var(--burgundy-dark); text-align:left; padding:9px 12px; font-weight:600; font-size:.75rem; letter-spacing:.5px; text-transform:uppercase; }
.prog-table td { padding:11px 12px; vertical-align:top; border-top:1px solid var(--rule); }
.prog-table .time { white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; color:var(--burgundy-dark); width:110px; }
.prog-table .break td { background:var(--gold); color:var(--burgundy-dark); font-weight:700; text-align:center; letter-spacing:2px; text-transform:uppercase; font-size:.8rem; }
.prog-table .topic strong.keynote-flag { display:inline-block; background:var(--gold); color:var(--burgundy-dark); font-size:.65rem; padding:2px 6px; border-radius:2px; margin-right:8px; letter-spacing:1px; font-weight:700; vertical-align:middle; }
.prog-table .speaker { font-size:.85rem; color:var(--muted); margin-top:3px; }
.prog-table .speaker strong { color:var(--burgundy-dark); }

.speaker-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:16px; }
.speaker { background:#fff; padding:18px; border-radius:6px; border:1px solid var(--rule); }
.speaker .name { color:var(--burgundy); font-weight:700; font-size:1.05rem; margin-bottom:4px; }
.speaker .org { color:var(--muted); font-size:.9rem; }
.speaker .role { display:inline-block; background:var(--gold); color:var(--burgundy-dark); font-size:.65rem; padding:2px 8px; border-radius:2px; margin-top:8px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; }

.venue-rooms { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:14px; }
.venue-room { background:#fff; padding:16px; border-left:4px solid var(--gold); border-radius:4px; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.venue-room-name { color:var(--burgundy); font-weight:700; margin-bottom:4px; }
.venue-room-use { color:var(--muted); font-size:.92rem; }

.form-wrap { max-width:720px; background:#fff; padding:32px; border-radius:6px; border:1px solid var(--rule); box-shadow:0 2px 8px rgba(0,0,0,.05); margin:0 auto; }
.form-row { margin-bottom:16px; }
.form-row-2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
label { display:block; font-weight:600; color:var(--burgundy-dark); margin-bottom:6px; font-size:.9rem; }
label .req { color:#c33; }
input[type=text], input[type=email], input[type=tel], select, textarea {
  width:100%; padding:10px 12px; font-size:1rem; border:1px solid var(--rule); border-radius:4px; background:#fff; color:var(--ink); font-family:inherit;
}
textarea { min-height:70px; resize:vertical; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--burgundy); box-shadow:0 0 0 2px rgba(122,46,29,.15); }
.checkbox-row { display:flex; align-items:flex-start; gap:8px; padding:6px 0; }
.checkbox-row input[type=checkbox] { margin-top:3px; flex-shrink:0; }
.checkbox-row label { margin:0; font-weight:400; color:var(--ink); font-size:.95rem; }
.form-hint { color:var(--muted); font-size:.85rem; margin-top:4px; }
.form-alert { background:var(--cream); border-left:3px solid var(--gold); padding:12px 16px; border-radius:3px; margin-bottom:20px; font-size:.92rem; color:var(--burgundy-dark); }
.form-error { background:#fdecea; border-left:3px solid #c33; padding:12px 16px; border-radius:3px; margin-bottom:20px; color:#8a1c1c; }
.form-success { background:#e8f5e9; border-left:3px solid #2e7d32; padding:16px 20px; border-radius:3px; color:#1b5e20; }
.honeypot { position:absolute; left:-9999px; opacity:0; height:0; width:0; overflow:hidden; }

.download-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px; }
.download-item { background:#fff; padding:18px; border-radius:6px; border:1px solid var(--rule); display:flex; align-items:center; gap:14px; }
.download-icon { width:44px; height:44px; background:var(--cream); color:var(--burgundy); border-radius:6px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.75rem; flex-shrink:0; }
.download-item .title { color:var(--burgundy); font-weight:600; margin-bottom:2px; }
.download-item .size { color:var(--muted); font-size:.82rem; }

.confirmation { max-width:640px; margin:0 auto; text-align:center; }
.confirmation .reg-code { font-size:2rem; font-weight:700; color:var(--burgundy); letter-spacing:3px; margin:16px 0; padding:14px 20px; background:var(--cream); border:2px dashed var(--gold); border-radius:6px; display:inline-block; font-family:"Courier New",monospace; }
.confirmation .qr-image { margin:24px auto; max-width:220px; }

.site-footer { background:var(--burgundy-dark); color:rgba(255,255,255,.8); padding:32px 0 40px; margin-top:60px; font-size:.9rem; }
.site-footer .container { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.site-footer a { color:var(--gold); }
.site-footer .disclaimer { flex-basis:100%; font-size:.78rem; opacity:.7; margin-top:16px; border-top:1px solid rgba(255,255,255,.15); padding-top:16px; }

@media (max-width:720px) {
  h1 { font-size:1.7rem; } h2 { font-size:1.35rem; }
  .hero { padding:40px 0 50px; } .hero h1 { font-size:1.9rem; } .hero .lead { font-size:1rem; }
  .hero .facts { gap:20px; }
  .form-row-2 { grid-template-columns:1fr; }
  .nav { gap:14px; font-size:.85rem; }
  .form-wrap { padding:20px; }
  .prog-table { font-size:.85rem; }
  .prog-table th, .prog-table td { padding:8px 6px; }
  .prog-table .time { width:88px; font-size:.78rem; }
}

/* --- Speaker cards with photos --- */
.speaker-grid { grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
.speaker { padding:0; overflow:hidden; transition:transform .2s, box-shadow .2s; }
.speaker:hover { transform:translateY(-3px); box-shadow:0 6px 20px rgba(122,46,29,.15); }
.speaker-photo { width:100%; aspect-ratio:1/1; overflow:hidden; background:var(--cream); display:flex; align-items:center; justify-content:center; border-bottom:3px solid var(--gold); }
.speaker-photo img { width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.speaker-photo.placeholder { color:var(--burgundy); font-size:2.5rem; font-weight:700; letter-spacing:2px; font-family:Georgia, serif; opacity:.35; }
.speaker-body { padding:14px 16px 18px; }
.speaker-body .name { color:var(--burgundy); font-weight:700; font-size:1.02rem; margin-bottom:4px; line-height:1.25; }
.speaker-body .org { color:var(--muted); font-size:.85rem; line-height:1.35; }
.speaker-body .role { display:inline-block; background:var(--gold); color:var(--burgundy-dark); font-size:.65rem; padding:2px 8px; border-radius:2px; margin-top:8px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; }

/* --- Hero background image --- */
.hero.with-bg { position:relative; background:linear-gradient(135deg, rgba(122,46,29,.92) 0%, rgba(92,33,21,.88) 100%), url('/assets/images/cover.jpg') center/cover no-repeat; }
.hero.with-bg::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at center, transparent 0%, rgba(0,0,0,.15) 100%); pointer-events:none; }
.hero .container { position:relative; z-index:1; }

/* --- Venue floor plan --- */
.floor-plan-frame { background:#fff; padding:20px; border:1px solid var(--rule); border-radius:6px; box-shadow:0 2px 12px rgba(0,0,0,.06); text-align:center; margin:16px 0 24px; }
.floor-plan-frame img { max-width:100%; height:auto; border-radius:4px; }
.floor-plan-frame .caption { color:var(--muted); font-size:.85rem; margin-top:10px; }

/* --- Feature strip below hero --- */
.feature-strip { background:var(--burgundy-dark); color:#fff; padding:18px 0; text-align:center; }
.feature-strip .container { display:flex; justify-content:space-around; gap:20px; flex-wrap:wrap; align-items:center; }
.feature-strip .fs-item { display:flex; align-items:center; gap:10px; font-size:.9rem; }
.feature-strip .fs-item strong { color:var(--gold); font-weight:700; }
