:root {
  --ink: #1d1d1b;
  --muted: #6f7376;
  --green: #f7a602;
  --lime: #f7a602;
  --paper: #f4f4f4;
  --line: #dedede;
  --sl-dark: #25292b;
  --sl-orange: #f7a602;
}

html { font-size: 15px; min-height: 100%; }
body {
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, sans-serif;
  min-height: 100vh;
}
.site-navbar { min-height: 86px; background: #fff; border-bottom: 4px solid var(--sl-orange); box-shadow: 0 5px 18px rgba(0,0,0,.08); }
.navbar-brand { display: flex; align-items: center; gap: .85rem; font-weight: 800; letter-spacing: .04em; }
.navbar-brand img { display: block; width: 112px; height: 48px; object-fit: contain; object-position: left center; }
.brand-divider { width: 1px; height: 30px; background: var(--line); }
.brand-events { color: var(--ink); font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; }
.site-navbar .nav-link { color: var(--ink); padding-inline: .85rem !important; }
.site-navbar .nav-link:hover { color: #9c6800; }
.nav-link { font-weight: 600; }
.container { max-width: 1180px; }
main { padding-top: 0; }
.admin-tabs {
  display: flex;
  gap: .4rem;
  margin: -.5rem 0 2.25rem;
  overflow-x: auto;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--line);
}
.admin-tab {
  color: var(--muted);
  border-radius: .35rem;
  font-weight: 750;
  padding: .65rem .9rem;
  text-decoration: none;
  white-space: nowrap;
}
.admin-tab:hover { color: var(--ink); background: #e9ede8; }
.admin-tab.active { color: #fff; background: var(--ink); }
.eyebrow { color: var(--green); font-size: .74rem; font-weight: 800; letter-spacing: .18em; }
h1 { font-size: clamp(2rem, 4vw, 3.4rem); font-weight: 750; letter-spacing: 0; }
h2 { font-size: 1.15rem; font-weight: 750; }
.btn { border-radius: .35rem; font-weight: 700; padding: .65rem 1rem; }
.btn-primary { color: #171717; background: var(--sl-orange); border-color: var(--sl-orange); }
.btn-primary:hover { color: #fff; background: var(--sl-dark); border-color: var(--sl-dark); }
.hero {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  min-height: 58vh;
  background: #fff;
  border: 1px solid var(--line);
  padding: clamp(2rem, 7vw, 6rem);
  overflow: hidden;
}
.hero h1 { font-size: clamp(3rem, 7vw, 6.5rem); max-width: 700px; }
.hero p { color: var(--paper); font-size: 1.25rem; max-width: 600px; margin: 1.25rem 0 2rem; }
.hero p.eyebrow { margin: 0; }
.hero-mark {
  color: var(--lime);
  font-size: clamp(10rem, 25vw, 24rem);
  font-weight: 900;
  line-height: .7;
  transform: rotate(7deg);
}
.event-table, .form-section, .empty-state {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: .45rem;
}
.event-table th { color: var(--muted); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.event-table td, .event-table th { padding: 1.1rem 1.25rem; }
.empty-state { padding: 5rem 2rem; text-align: center; }
.empty-state p { color: var(--muted); }
.form-section { margin-bottom: 1rem; padding: 1.5rem; }
.form-section h2 { border-bottom: 1px solid var(--line); padding-bottom: .9rem; margin-bottom: 1rem; }
.form-control, .form-select { border-color: #cbd4ce; border-radius: .3rem; padding: .72rem .8rem; }
.form-control:focus, .form-select:focus { border-color: var(--green); box-shadow: 0 0 0 .2rem rgba(11,107,77,.12); }
.form-label { font-size: .85rem; font-weight: 700; }
.back-link { color: var(--muted); font-weight: 700; text-decoration: none; }
.status { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 800; padding: .25rem .65rem; }
.status-draft { background: #edf0ed; color: #56625d; }
.status-published { background: #d9f4e9; color: #075c40; }
.status-archived { background: #f5e7e5; color: #8a3028; }
.status-pending { background: #fff2c7; color: #745800; }
.status-approved { background: #d9f4e9; color: #075c40; }
.status-rejected { background: #f5e7e5; color: #8a3028; }
.admin-banner-preview { display: block; max-height: 260px; max-width: 100%; margin-bottom: 1rem; object-fit: cover; }
.public-event-body { background: #e9e9e9; }
.public-event-main { padding: 0; }
.public-event { max-width: 1050px; margin: 0 auto; background: #fff; min-height: 100vh; }
.public-event-header { padding: clamp(2.5rem, 7vw, 6rem); padding-bottom: 2.5rem; }
.event-language-switch { display: flex; gap: .4rem; justify-content: flex-end; margin-bottom: 2rem; }
.event-language-switch a { color: var(--muted); font-size: .78rem; font-weight: 800; padding: .4rem .55rem; text-decoration: none; }
.event-language-switch a.active { color: #fff; background: var(--ink); border-radius: .25rem; }
.public-event-header h1 { font-size: clamp(3rem, 8vw, 6.5rem); max-width: 900px; }
.public-event-header p { color: var(--muted); font-size: 1.2rem; }
.public-event-banner { display: block; width: 100%; max-height: 560px; object-fit: cover; }
.public-event-description, .registration-card { padding: clamp(2rem, 7vw, 5rem); }
.public-event-description { font-size: 1.15rem; white-space: pre-wrap; }
.public-event-description h2, .registration-card h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.registration-card { background: var(--paper); border-top: 5px solid var(--sl-orange); }
.registration-options { display: flex; flex-wrap: wrap; gap: 1.5rem; padding-top: 1rem; }
.registration-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; }
.registration-thanks { max-width: 800px; margin: 15vh auto; padding: 3rem; text-align: center; }
.registration-filters { display: flex; gap: .5rem; flex-wrap: wrap; }
.registration-filters .form-control { min-width: 260px; }
.registration-filters .form-select { width: auto; min-width: 190px; }
.sort-link { color: inherit; text-decoration: none; white-space: nowrap; }
.sort-link:hover { color: var(--green); }
.validation-summary-valid { display: none; }
.placeholder-reference { position: sticky; top: 1.5rem; background: #fff; border: 1px solid var(--line); padding: 1.5rem; }
.placeholder-reference h2 { margin-top: .4rem; }
.placeholder-reference h3 { font-size: .9rem; margin-top: 1.5rem; text-transform: uppercase; letter-spacing: .08em; }
.placeholder-list { padding-left: 1.15rem; font-size: .84rem; }
.placeholder-list li { margin-bottom: .38rem; }
.placeholder-list code { color: var(--green); }
.template-body { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .9rem; }
.overview-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.overview-heading p { color: var(--muted); margin: .5rem 0 0; }
.overview-language-switch { display: flex; gap: .25rem; }
.overview-language-switch a { color: var(--muted); font-size: .75rem; font-weight: 800; padding: .4rem .55rem; text-decoration: none; }
.overview-language-switch a.active { color: #fff; background: var(--ink); border-radius: .25rem; }
.upcoming-event-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.4rem; }
.upcoming-event-card { color: var(--ink); background: #fff; border-radius: .3rem; box-shadow: 0 .35rem 1rem rgba(0,0,0,.09); overflow: hidden; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.upcoming-event-card:hover { color: var(--ink); transform: translateY(-3px); box-shadow: 0 .65rem 1.5rem rgba(0,0,0,.15); }
.upcoming-event-image { position: relative; height: 185px; margin: .75rem .75rem 0; border-radius: .45rem; overflow: hidden; background: #dfe8e2; }
.upcoming-event-image img { width: 100%; height: 100%; object-fit: cover; }
.event-image-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #fff; background: linear-gradient(145deg, #4a4e50, #202325); font-weight: 800; letter-spacing: .1em; }
.event-image-placeholder span { color: var(--sl-orange); margin-right: .35rem; }
.event-card-date { position: absolute; left: .65rem; bottom: .65rem; display: grid; min-width: 52px; color: #fff; background: rgba(10, 37, 29, .86); border-left: 4px solid var(--lime); padding: .35rem .5rem; backdrop-filter: blur(5px); }
.event-card-date strong { font-size: 1.25rem; line-height: 1; }
.event-card-date span { font-size: .65rem; font-weight: 800; margin-top: .2rem; }
.upcoming-event-content { padding: 1rem 1.1rem 1.15rem; }
.upcoming-event-content h2 { font-size: 1.1rem; margin-bottom: .45rem; }
.event-card-meta { display: flex; flex-wrap: wrap; gap: .3rem; color: var(--muted); font-size: .8rem; }
.event-card-action { color: var(--green); font-size: .7rem; font-weight: 900; letter-spacing: .08em; margin-top: .8rem; }
@media (max-width: 620px) { .overview-heading { align-items: start; flex-direction: column; } }
.footer { position: static; }
.site-footer { color: #fff; background: var(--sl-dark); border-top: 6px solid var(--sl-orange); margin-top: 5rem; padding: 3rem 0; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 3rem; align-items: start; }
.footer-logo { width: 145px; height: auto; margin-bottom: 1rem; }
.site-footer p, .site-footer span { color: #c9cccd; }
.site-footer p { margin: 0; }
.footer-contact, .footer-legal { display: flex; flex-direction: column; gap: .38rem; }
.site-footer a, .event-legal-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover, .event-legal-footer a:hover { color: var(--sl-orange); }
.event-legal-footer { display: flex; justify-content: space-between; align-items: center; gap: 2rem; max-width: 1050px; margin: 0 auto; color: #fff; background: var(--sl-dark); border-top: 5px solid var(--sl-orange); padding: 1.35rem clamp(1.5rem, 7vw, 4rem); }
.event-legal-footer img { width: 105px; height: auto; }
.event-legal-footer nav { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.legal-page { max-width: 900px; margin: 0 auto; }
.legal-hero { border-left: 7px solid var(--sl-orange); margin-bottom: 2rem; padding: 2rem 2.25rem; background: #fff; }
.legal-hero p { color: var(--muted); font-size: 1.1rem; margin: .75rem 0 0; }
.legal-page section { background: #fff; border-bottom: 1px solid var(--line); padding: 1.6rem 2.25rem; }
.legal-page section:last-child { border-bottom: 0; }
.legal-page section h2 { margin-bottom: .8rem; }
.legal-page address { font-style: normal; }
.legal-page a { color: #8a5c00; font-weight: 650; }
@media (max-width: 760px) {
  .hero { grid-template-columns: 1fr; }
  .hero-mark { display: none; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .event-legal-footer { align-items: flex-start; flex-direction: column; }
  .legal-hero, .legal-page section { padding-inline: 1.35rem; }
}
