.event-update-dialog { margin:auto; padding:0; border:0; border-radius:20px; width:min(900px, calc(100% - 32px)); max-height:calc(100dvh - 48px); overflow:auto; box-shadow:0 24px 100px #0004; color:#263626; }
.event-update-dialog::backdrop { background:#102019b8; }
.event-update-layout { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
.event-update-art { background:#f0f3eb; padding:24px; display:grid; align-items:center; }
.event-update-art img { display:block; width:100%; max-height:calc(100dvh - 100px); object-fit:contain; }
.event-update-copy { padding:64px 32px 32px; text-align:left; align-self:center; }
.event-update-copy h2 { display:block; margin:16px 0; font-size:clamp(24px, 3vw, 34px); line-height:1.2; color:#004d00; }
.event-update-copy p { margin:12px 0; line-height:1.6; }
.event-update-label { display:block; font-size:11px; letter-spacing:.12em; font-weight:700; color:#52704c; }
.event-update-date { font-weight:700; color:#004d00; }
.event-update-description { max-height:150px; overflow:auto; }
.event-update-close { position:absolute; top:16px; right:16px; display:grid; place-items:center; box-sizing:border-box; width:44px; height:44px; padding:0; margin:0; border:1px solid #dfe6dc; border-radius:50%; background:white; color:#004d00; line-height:1; cursor:pointer; z-index:1; box-shadow:none; }
.event-update-close svg { display:block; width:20px; height:20px; pointer-events:none; }
.event-update-close:hover { background:#edf4e9; }
.event-update-dialog .event-update-close:focus-visible { outline:2px solid #004d00; outline-offset:3px; }
.event-update-dialog:focus { outline:none; }
.event-update-copy .event-popup-link { display:block; padding:14px 18px; margin-top:24px; background:#004d00; color:white; border-radius:8px; text-decoration:none; text-align:center; }
.event-update-later { display:block; margin:12px auto 0; padding:10px; background:none; border:0; color:#526052; font:inherit; cursor:pointer; }
.event-update-no-poster { width:min(480px, calc(100% - 32px)); }
.event-update-no-poster .event-update-layout { grid-template-columns:1fr; }
#roleDialog { box-sizing:border-box; margin:auto; padding:36px; border:0; border-radius:20px; width:min(460px, calc(100% - 32px)); max-height:calc(100dvh - 32px); text-align:center; box-shadow:0 24px 80px #0003; }
#roleDialog h3 { margin:0 0 10px; font-size:24px; }
#roleDialog p { color:#606b60; line-height:1.5; margin:0; }
#roleDialog .role-options { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:28px 0 16px; }
#roleDialog .role-options button { display:flex; flex-direction:column; align-items:center; gap:12px; padding:24px 12px; border:1px solid #d9e4d6; background:#f6f9f3; color:#004d00; border-radius:12px; }
#roleDialog .role-options button:hover { background:#eaf3e4; border-color:#004d00; }
#roleDialog .role-options i { font-size:24px; }
#roleDialog .role-options span { font-size:12px; line-height:1.4; color:#5c6a59; }
#roleDialog #cancelRole { background:transparent; color:#526052; padding:10px 20px; }
.password-field { position:relative; }
.login-form .password-field input { width:100%; box-sizing:border-box; padding-right:52px; }
.login-form .password-field #togglePassword { position:absolute; right:4px; top:50%; transform:translateY(-50%); margin:0; width:44px; height:36px; padding:0; border:0; background:transparent; color:#365a36; cursor:pointer; }
@media (max-width:600px) {
  .event-update-layout { grid-template-columns:1fr; }
  .event-update-art { padding:20px; }
  .event-update-art img { max-height:40dvh; }
  .event-update-copy { padding:24px; }
  #roleDialog { padding:28px 20px; }
}
/* Shared public navigation: identical dimensions and link spacing on every page. */
.site-header { font-family:"Poppins", sans-serif; }
.site-header nav { box-sizing:border-box; min-height:94px; padding:18px clamp(24px, 5vw, 80px); gap:24px; background:#fffbe6; }
.site-header nav.scrolled { background:#fffbe6; }
.site-header nav .logo img { width:164px; height:auto; max-height:58px; object-fit:contain; margin:0; }
.site-header nav > ul { align-items:center; justify-content:flex-end; gap:clamp(8px, 1.2vw, 20px); padding:0; margin:0; }
.site-header nav > ul > li { margin:0; }
.site-header nav > ul > li > a { font-size:14px; line-height:1.5; padding:8px 6px; white-space:nowrap; }
.site-header .hamburger { padding:4px; border:0; background:transparent; cursor:pointer; z-index:4; }
.site-header .menubar { box-sizing:border-box; top:94px; left:0; width:100%; height:auto; max-height:calc(100dvh - 94px); overflow:auto; padding:16px 24px; visibility:hidden; opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity 160ms ease, transform 160ms ease, visibility 160ms; }
.site-header .menubar.active { visibility:visible; opacity:1; transform:none; pointer-events:auto; }
.site-header .menubar ul { width:100%; margin:0; }
.site-header .menubar ul li { margin:0; }
.site-header .menubar ul li a { display:block; padding:12px 16px; font-size:15px; }
.site-header a:focus-visible, .password-field button:focus-visible, .event-update-dialog :is(a,button):focus-visible { outline:3px solid #cb932e; outline-offset:3px; }
#event-page-main { background:#fffbe6; }
body:has(#event-page-main) { background:#fffbe6; }
body:has(#event-page-main) > .event-page-back { position:relative; top:auto; margin:112px 5% 12px; box-shadow:none; border-radius:5px; }
#event-page-main .container { box-sizing:border-box; width:min(1200px, 100%); padding:40px 24px; }
#event-page-main .btn { background:#004d00; border-radius:5px; padding:12px 22px; }
#event-page-main .section-title { color:#004d00; font-size:28px; }
#event-page-main .services_container h1 { font-size:18px; font-weight:400; line-height:1.7; }
.new-event-alert { border-left-color:#004d00; border-radius:12px; box-sizing:border-box; }
@media (max-width:1100px) {
  .site-header nav > ul { display:none; }
  .site-header .hamburger { display:block; }
}
@media (min-width:1101px) { .site-header .hamburger, .site-header .menubar { display:none; } }
@media (max-width:600px) {
  .site-header nav { min-height:80px; padding:14px 20px; }
  .site-header nav .logo img { width:140px; }
  .site-header .menubar { top:80px; max-height:calc(100dvh - 80px); }
  body:has(#event-page-main) > .event-page-back { margin-top:96px; }
  .new-event-alert { left:16px; right:16px; bottom:16px; max-width:none; flex-wrap:wrap; }
}
/* Portal headers share the public header's logo, spacing and control sizes. */
.portal-header nav { box-sizing:border-box; min-height:94px; padding:18px clamp(24px, 5vw, 80px); gap:24px; background:#fffbe6; }
.portal-header nav .logo img { width:164px; height:auto; max-height:58px; margin:0; object-fit:contain; }
.portal-header nav > ul { align-items:center; justify-content:flex-end; gap:12px; padding:0; margin:0; }
.portal-header nav > ul > li { margin:0; }
.portal-header nav :is(a.portal-link,button) { box-sizing:border-box; min-height:42px; padding:10px 16px; border:0; border-radius:6px; background:#004d00; color:white; font:500 14px/1.5 "Poppins",sans-serif; box-shadow:none; }
.portal-header nav button:hover, .portal-header nav a.portal-link:hover { background:#003a00; }
.portal-header nav a:not(.portal-link) { font-size:14px; }
.portal-header-simple nav > ul { display:flex; }
@media (max-width:1100px) {
  .portal-header:not(.portal-header-simple) nav > ul { display:none; }
  .portal-header:not(.portal-header-simple) .hamburger { display:block; }
}
@media (max-width:600px) {
  .portal-header nav { min-height:80px; padding:14px 20px; }
  .portal-header nav .logo img { width:140px; }
  .portal-header nav :is(a.portal-link,button) { padding:10px 12px; font-size:12px; }
}
.site-header .hamburger .line { display:block; }
.portal-header nav #logoutBtn { border-radius:6px; }
#passwordEyeSlash[hidden] { display:none; }
.portal-header .menubar { box-sizing:border-box; top:94px; left:0; width:100%; height:auto; max-height:calc(100dvh - 94px); overflow:auto; padding:16px 24px; visibility:hidden; opacity:0; pointer-events:none; }
.portal-header .menubar.active { visibility:visible; opacity:1; pointer-events:auto; }
.portal-header .menubar ul { width:100%; }
.portal-header .menubar li { margin:8px 0; }
.portal-header .menubar button { box-sizing:border-box; padding:12px 16px; border:0; border-radius:6px; font:inherit; }
@media(min-width:1101px) { .portal-header .hamburger, .portal-header .menubar { display:none; } }
@media(max-width:600px) { .portal-header .menubar { top:80px; max-height:calc(100dvh - 80px); } }
/* One portal navigation component supplies the same header on every portal page. */
.portal-header nav .portal-nav-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; box-sizing:border-box; min-height:42px; padding:10px 16px; margin:0; border:0; border-radius:6px; background:#004d00; color:#fff; font:500 14px/1.5 "Poppins",sans-serif; text-decoration:none; white-space:nowrap; box-shadow:none; cursor:pointer; }
.portal-header nav .portal-nav-action:hover { background:#003a00; color:white; transform:none; }
.portal-header .hamburger { padding:4px; background:transparent; border:0; box-shadow:none; min-height:0; border-radius:0; }
.portal-header .menubar .portal-nav-action { display:flex; align-items:center; gap:8px; width:100%; box-sizing:border-box; padding:12px 16px; background:transparent; color:#fff; text-decoration:none; font:500 14px/1.5 "Poppins",sans-serif; border:0; text-align:left; border-radius:6px; }
.portal-header .menubar .portal-nav-action:hover { background:#003a00; }
.portal-header .portal-nav-action:focus-visible { outline:2px solid #7b986b; outline-offset:3px; }
body:has(.portal-header) > .admin-topbar { display:none; }
body:has(.portal-header) > .admin-wrap { margin-top:118px; }
@media(max-width:600px) { body:has(.portal-header) > .admin-wrap { margin-top:104px; } }
.portal-header nav button.hamburger { width:36px; height:40px; min-height:0; padding:0; background:transparent; border:0; box-shadow:none; }
.portal-header nav button.hamburger .line { display:block; width:25px; height:2px; margin:5px auto; background:#004d00; }
/* The expanded admin navigation collapses before its controls become crowded. */
@media (min-width:1101px) and (max-width:1250px) {
  .portal-header[data-portal-role="admin"] nav > ul { display:none; }
  .portal-header[data-portal-role="admin"] nav .hamburger { display:block; }
  .portal-header[data-portal-role="admin"] .menubar { display:flex; }
}
/* Newsletter uses the shared fixed-header dimensions and full-width footer. */
body.newsletter-page { padding-top:0; }
@media(max-width:1044px) { body.newsletter-page { padding-top:50px; } }
.newsletter-page .nl-container { background:#fffbe6; }
.nl-page-intro { padding:60px clamp(20px, 6vw, 100px) 0; }
.nl-page-intro h2 { margin:12px 0; color:#004d00; font-size:clamp(24px, 2.4vw, 32px); line-height:1.35; }
.nl-page-intro p { max-width:800px; color:#414c40; }
@media(max-width:600px) { .nl-page-intro { padding-top:32px; } }
