*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: Georgia,'Times New Roman',serif; font-size:17px; line-height:1.7; color:#111; background:#fff; max-width:760px; margin:0 auto; padding:0 24px; }
nav { border-bottom:1px solid #111; padding:18px 0 14px; margin-bottom:52px; }
nav .nav-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
nav .logo img { height:32px; width:auto; display:block; }
nav .nav-links { display:flex; flex-wrap:wrap; gap:0; list-style:none; font-size:13px; }
nav .nav-links li::after { content:' · '; color:#aaa; }
nav .nav-links li:last-child::after { content:''; }
nav .nav-links a { color:#111; text-decoration:none; }
nav .nav-links a:hover { text-decoration:underline; }
nav .nav-links a.active { border-bottom:1px solid #111; }
h1 { font-size:28px; font-weight:normal; line-height:1.25; margin-bottom:20px; }
h2 { font-size:19px; font-weight:normal; border-bottom:1px solid #111; padding-bottom:8px; margin:40px 0 20px; }
h2:first-of-type { margin-top:0; }
h3 { font-size:15px; font-weight:bold; margin:24px 0 8px; }
p { margin-bottom:16px; }
p:last-child { margin-bottom:0; }
a { color:#111; }
a:hover { color:#555; }
strong { font-weight:bold; }
em { font-style:italic; }
.eyebrow { font-size:12px; text-transform:uppercase; letter-spacing:0.1em; color:#999; margin-bottom:14px; }
.lead { font-size:19px; line-height:1.6; color:#333; margin-bottom:28px; }
.page-header { margin-bottom:44px; }
.page-header h1 { margin-bottom:12px; }
.cta { display:inline-block; border:1px solid #111; padding:11px 22px; font-size:15px; text-decoration:none; color:#111; font-family:Georgia,serif; margin-top:8px; }
.cta:hover { background:#111; color:#fff; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:1px; border:1px solid #ddd; margin:16px 0 28px; }
.two-col-item { padding:22px; background:#fff; }
.two-col-item:hover { background:#f9f9f9; }
.two-col-item .label { font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:#aaa; margin-bottom:6px; }
.two-col-item h3 { font-size:16px; font-weight:normal; margin:0 0 8px; }
.two-col-item p { font-size:14px; color:#555; margin-bottom:10px; }
.two-col-item a.more { font-size:13px; text-decoration:none; color:#111; border-bottom:1px solid #ddd; }
.two-col-item a.more:hover { border-bottom-color:#111; }
.highlight { border-left:3px solid #111; padding:20px 24px; background:#f8f8f8; margin:20px 0 28px; }
.highlight p { font-size:16px; color:#333; }
.resource-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1px; border:1px solid #ddd; margin:12px 0 28px; }
.resource-item { padding:20px; background:#fff; }
.resource-item:hover { background:#f9f9f9; }
.resource-item .r-label { font-size:11px; text-transform:uppercase; letter-spacing:0.1em; color:#aaa; margin-bottom:6px; }
.resource-item .r-title { font-size:15px; line-height:1.4; }
.resource-item .r-title a { text-decoration:none; }
.resource-item .r-title a:hover { text-decoration:underline; }
.resource-item .r-desc { font-size:13px; color:#666; margin-top:4px; }
table { width:100%; border-collapse:collapse; margin:16px 0 28px; font-size:15px; }
th, td { text-align:left; padding:12px 14px; vertical-align:top; border-bottom:1px solid #eee; }
th { font-weight:bold; font-size:12px; text-transform:uppercase; letter-spacing:0.07em; color:#666; border-bottom:1px solid #111; }
tr:last-child td { border-bottom:none; }
.prog-table { width:100%; border-collapse:collapse; margin:16px 0; }
.prog-table tr { border-bottom:1px solid #eee; }
.prog-table tr:last-child { border-bottom:none; }
.prog-table td { padding:10px 0; vertical-align:top; font-size:15px; }
.prog-table .time { color:#999; font-size:13px; width:110px; padding-right:16px; white-space:nowrap; }
.prog-table .day-head { font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#666; padding:20px 0 6px; border-bottom:1px solid #111; }
.foto-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:6px; margin:12px 0 28px; }
.foto-placeholder { aspect-ratio:4/3; background:#f0f0f0; display:flex; align-items:center; justify-content:center; font-size:12px; color:#aaa; border:1px solid #e0e0e0; }
.foto-real { aspect-ratio:4/3; object-fit:cover; display:block; width:100%; border:1px solid #e0e0e0; }
.banner { border:1px solid #111; padding:20px 24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; margin:28px 0; }
.banner p { margin:0; font-size:15px; }
.banner a.cta { margin:0; }
.video-wrapper { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; background:#f0f0f0; border:1px solid #ddd; margin:12px 0 28px; }
.video-wrapper iframe { position:absolute; top:0; left:0; width:100%; height:100%; }
.video-placeholder { position:absolute; top:0; left:0; width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:14px; color:#aaa; text-align:center; padding:20px; }
.hero-image { width:100%; display:block; margin:0 0 8px; max-height:380px; object-fit:cover; }
.image-credit { font-size:12px; color:#aaa; margin-bottom:28px; }
.session-list { list-style:none; }
.session-list li { border-bottom:1px solid #eee; padding:14px 0; display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; }
.session-list li:first-child { border-top:1px solid #eee; }
.session-title { font-size:15px; }
.session-link { font-size:13px; color:#555; text-decoration:none; }
.session-link:hover { text-decoration:underline; }
.placeholder-tag { font-size:12px; color:#aaa; border:1px solid #ddd; padding:2px 8px; }
.agenda-item { border-bottom:1px solid #eee; padding:14px 0; }
.agenda-item:first-child { border-top:1px solid #eee; }
.agenda-date { font-size:12px; text-transform:uppercase; letter-spacing:0.08em; color:#999; margin-bottom:3px; }
.agenda-title { font-size:15px; }
.agenda-status { font-size:12px; color:#aaa; margin-top:2px; }
.login-form { display:flex; max-width:400px; }
.login-form input[type="password"] { flex:1; border:1px solid #111; border-right:none; padding:10px 14px; font-size:15px; font-family:Georgia,serif; outline:none; }
.login-form button { border:1px solid #111; background:#111; color:#fff; padding:10px 20px; font-size:14px; font-family:Georgia,serif; cursor:pointer; }
.login-form button:hover { background:#333; }
#login-error { margin-top:10px; font-size:14px; color:#c00; display:none; }
.section-tabs { display:flex; border-bottom:1px solid #ddd; margin-bottom:32px; flex-wrap:wrap; }
.section-tabs button { background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-1px; padding:10px 20px; font-size:14px; font-family:Georgia,serif; color:#555; cursor:pointer; }
.section-tabs button.active { color:#111; border-bottom-color:#111; }
.section-tabs button:hover { color:#111; }
.tab-content { display:none; }
.tab-content.active { display:block; }
footer { border-top:1px solid #ddd; margin-top:80px; padding:22px 0 40px; font-size:13px; color:#999; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
footer a { color:#999; text-decoration:none; }
footer a:hover { text-decoration:underline; }
@media (max-width:540px) { h1 { font-size:22px; } .two-col { grid-template-columns:1fr; } nav .nav-links { font-size:12px; } .section-tabs button { padding:10px 12px; font-size:13px; } }
