:root {
  --romw-navy: #0a2342; --romw-navy-soft: #13375f; --romw-gold: #b38b18;
  --romw-gold-light: #f4ead0; --romw-ink: #20252b; --romw-muted: #626b74;
  --romw-surface: #fff; --romw-canvas: #f6f5f1; --romw-border: #dfe3e7;
  --romw-shadow: 0 1rem 2.5rem rgba(10,35,66,.09);
}
html { scroll-behavior: smooth; }
body { background: var(--romw-canvas); color: var(--romw-ink); font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; font-size: 1.05rem; line-height: 1.7; }
a { color: var(--romw-navy-soft); text-underline-offset: .2em; }
a:hover { color: var(--romw-gold); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--romw-gold); outline-offset: 3px; }
h1,h2,h3,h4,h5,h6 { color: var(--romw-navy); font-family: Georgia,"Times New Roman",serif; font-weight: 700; line-height: 1.2; }
.skip-link { position: absolute; left: -9999px; top: .5rem; z-index: 2000; }
.skip-link:focus { left: .5rem; background: #fff; color: var(--romw-navy); padding: .6rem 1rem; border-radius: .35rem; }
.site-shell { max-width: 1200px; margin-inline: auto; background: var(--romw-surface); min-height: 100vh; box-shadow: 0 0 0 1px var(--romw-border); }
.archive-banner { background: var(--romw-navy); color: #fff; font-size: .86rem; letter-spacing: .025em; padding: .45rem 1rem; text-align: center; }
.site-header { padding: 1.5rem 1rem 1.25rem; text-align: center; }
.brand-marks { display: flex; justify-content: center; align-items: center; gap: clamp(.5rem,2vw,1.25rem); margin-bottom: .8rem; }
.brand-logo { width: auto; height: clamp(74px,12vw,118px); object-fit: contain; }
.brand-and { width: auto; height: clamp(27px,5vw,44px); }
.site-title { font-size: clamp(1.35rem,3vw,2rem); margin: 0; }
.site-kicker { color: var(--romw-gold); font-size: .78rem; font-weight: 800; letter-spacing: .16em; margin: .3rem 0 0; text-transform: uppercase; }
.navbar { background: #f0f2f4; border-block: 1px solid var(--romw-border); padding-inline: 1rem; }
.navbar-brand { color: var(--romw-navy); font-family: Georgia,serif; font-weight: 700; }
.navbar-toggler { border-color: #9ba5af; }
.navbar-nav { gap: .15rem; }
.nav-link { border-radius: .35rem; color: var(--romw-navy) !important; font-size: .94rem; font-weight: 700; padding: .65rem .8rem !important; }
.nav-link:hover { background: #e3e7eb; }
.nav-link.active,.nav-link[aria-current="page"] { background: var(--romw-navy); color: #fff !important; }
.site-main { padding: clamp(2rem,5vw,4rem) clamp(1rem,4vw,3rem); }
.page-heading { max-width: 780px; margin: 0 auto 2.25rem; text-align: center; }
.eyebrow { color: var(--romw-gold); font-size: .78rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.page-title { font-size: clamp(2rem,5vw,3.25rem); margin: .25rem 0 .7rem; }
.page-intro { color: var(--romw-muted); font-size: 1.12rem; margin: 0; }
.hero { background: var(--romw-navy); border-radius: .8rem; box-shadow: var(--romw-shadow); color: #fff; overflow: hidden; }
.hero-image { display: block; width: 100%; height: auto; }
.hero-copy { padding: clamp(1.4rem,4vw,2.5rem); }
.hero-copy p { font-size: clamp(1.05rem,2vw,1.2rem); margin-bottom: 1.4rem; }
.btn-romw { background: var(--romw-gold); border: 1px solid var(--romw-gold); color: #111; font-weight: 800; }
.btn-romw:hover { background: #d0a82f; border-color: #d0a82f; color: #111; }
.info-card,.speaker-entry,.agenda-item,.media-card,.invitation-frame { background: #fff; border: 1px solid var(--romw-border); border-radius: .75rem; box-shadow: 0 .45rem 1.5rem rgba(10,35,66,.07); }
.info-card { height: 100%; padding: 1.5rem; }
.info-card h2 { font-size: 1.35rem; }
.info-label { color: var(--romw-gold); font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.legacy-panel { background: var(--romw-gold-light); border-left: 5px solid var(--romw-gold); padding: 1.75rem; text-align: center; }
.legacy-panel p { color: var(--romw-navy); font-family: Georgia,serif; font-size: clamp(1.25rem,3vw,1.7rem); font-weight: 700; margin: 0; }
.prose { max-width: 790px; margin-inline: auto; }
.prose p { margin-bottom: 1.35rem; }
.prose .lead { font-size: 1.12rem; }
.nav-tabs { border-bottom-color: var(--romw-border); gap: .35rem; }
.nav-tabs .nav-link { border-radius: .5rem .5rem 0 0; }
.nav-tabs .nav-link.active { background: var(--romw-navy); border-color: var(--romw-navy); color: #fff !important; }
.speaker-entry { margin-bottom: 1.5rem; padding: clamp(1rem,3vw,1.5rem); }
.speaker-entry img { aspect-ratio: 4/5; object-fit: cover; }
.speaker-entry .col-md-3 h5:first-of-type { font-size: 1.25rem; margin-top: .75rem; }
.speaker-entry .col-md-3 h5:nth-of-type(2) { color: var(--romw-gold); font-family: inherit; font-size: .75rem; letter-spacing: .09em; text-transform: uppercase; }
.speaker-entry .col-md-9 { font-size: .98rem; }
.speaker-entry p:last-child,.speaker-entry ul:last-child { margin-bottom: 0; }
.agenda-day { margin-bottom: 3rem; }
.agenda-day-header { border-bottom: 3px solid var(--romw-gold); margin-bottom: 1.25rem; padding-bottom: .8rem; }
.agenda-day-header p { color: var(--romw-muted); margin: 0; }
.agenda-item { display: grid; grid-template-columns: minmax(115px,160px) 1fr; margin-bottom: .85rem; overflow: hidden; }
.agenda-time { background: var(--romw-navy); color: #fff; font-size: .9rem; font-weight: 800; padding: 1.25rem; }
.agenda-detail { padding: 1.2rem 1.4rem; }
.agenda-detail h3 { font-size: 1.2rem; margin-bottom: .35rem; }
.agenda-topic { color: var(--romw-gold); font-weight: 800; text-transform: uppercase; }
.agenda-detail ul { margin: .75rem 0 0; padding-left: 1.2rem; }
.media-card,.invitation-frame { padding: clamp(.6rem,2vw,1rem); }
.ratio { border-radius: .55rem; overflow: hidden; }
.ratio iframe { border: 0; }
.invitation-image { display: block; height: auto; width: 100%; }
.site-footer { background: var(--romw-navy); color: rgba(255,255,255,.82); padding: 2.25rem 1rem; text-align: center; }
.site-footer strong { color: #fff; }
.site-footer p { margin: .25rem 0; }
.site-footer .remembrance { color: #fff; font-family: Georgia,serif; font-size: 1.2rem; margin-bottom: .75rem; }
@media (max-width:767.98px) { body { font-size: 1rem; } .site-shell { box-shadow: none; } .navbar-collapse { padding-block: .65rem; } .agenda-item { grid-template-columns: 1fr; } .agenda-time { padding: .65rem 1rem; } }
@media print { .skip-link,.archive-banner,.navbar,.site-footer,.btn { display:none!important; } body,.site-shell { background:#fff; box-shadow:none; } .site-main { padding:0; } .agenda-item { break-inside:avoid; box-shadow:none; } }
