/* =====================================
   DESIGN TOKENS (edit here)
   ===================================== */
:root{
  /* Light */
  --bg:#fff; --fg:#222; --muted:#666;
  --accent:#0a84ff; --accent-ink:#fff;
  --border:#e6e6e6;
  --surface:#f6f7fb;          /* card bg */
  --surface-strong:#eef1f7;   /* open/active */
  --surface-border:#e2e5ec;   /* card border */

  /* Layout */
  --radius:12px; --gap:.75rem;
  --eventsH:520px;            /* calendar & poster height */
  --headerH:64px;             /* sticky header height */

  /* Effects */
  --shadow: 0 1px 2px color-mix(in srgb, var(--fg) 12%, transparent);

  /* Links (light) */
  --link:#0a5bd3; --link-hover:#0a84ff; --link-visited:#5a38c8;
}
.dark{
  /* Dark */
  --bg:#111; --fg:#eee; --muted:#aaa;
  --accent:#66aaff; --accent-ink:#0b1220;
  --border:#2a2a2a;
  --surface:rgba(255,255,255,.08);
  --surface-strong:rgba(255,255,255,.12);
  --surface-border:#2a2a2a;

  /* Links (dark) */
  --link:#9bc1ff; --link-hover:#c8ddff; --link-visited:#89b4ff;
}
@media (max-width:700px){ :root{ --eventsH:380px } }
@media (max-width:480px){ :root{ --eventsH:320px } }

/* =====================================
   BASE / LAYOUT
   ===================================== */
*{ box-sizing:border-box }
html{ scroll-behavior:smooth }
html,body{ margin:0; padding:0 }
body{
  background:var(--bg); color:var(--fg);
  font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}
.container{ max-width:920px; margin:0 auto; padding:1.25rem; padding-top:.5rem }
[id]{ scroll-margin-top: var(--headerH) }

/* =====================================
   HEADER (sticky) + NAV
   ===================================== */
.site-header{
  display:flex; align-items:center; gap:.8rem; justify-content:space-between;
  padding:.5rem 1rem; border-bottom:1px solid var(--border);
  background:var(--bg); position:sticky; top:0; z-index:10001;
}
.brand{ display:flex; align-items:center; gap:.5rem; text-decoration:none; color:inherit }
.logo{ height:36px; width:auto }
.logo-circle{ width:48px; height:48px; flex:0 0 48px; border-radius:50%; overflow:hidden; line-height:0 }
.logo-circle img{ width:100%; height:100%; object-fit:contain; display:block }
@media (max-width:900px){ .logo-circle{ width:36px; height:36px; flex:0 0 36px } }

/* Desktop nav (right-justified) */
@media (min-width:901px){
  .site-header{ display:flex; align-items:center }
  .nav{ margin-left:auto; display:flex; align-items:center; gap:1.25rem }
}

/* Header links */
.nav a{ text-decoration:none; color:inherit }
.site-header .nav a:visited{ color:inherit } /* no purple in header */

/* Mobile CTA (always show Meetings) */
.cta-meetings{ text-decoration:none; font-weight:600; margin-left:auto; margin-right:.5rem }
@media (min-width:901px){ .cta-meetings{ display:none } }

/* Hamburger */
.menu-toggle{
  background:none; border:0; box-shadow:none; padding:.4rem; margin:0;
  font:700 24px/1 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  cursor:pointer;
}
.menu-toggle:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);
  outline-offset:2px;
}

/* Theme toggle (emoji-only) */
.theme-toggle{
  background:none; border:0; padding:.2rem; margin:0;
  font-size:22px; line-height:1; cursor:pointer; border-radius:0; box-shadow:none;
  font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji","EmojiOne Color","Segoe UI Symbol",system-ui,sans-serif;
}
.nav .theme-toggle{ font-size:20px } /* slightly smaller inside drawer */
.theme-toggle:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);
  outline-offset:2px;
}

/* Visibility helpers */
.only-mobile{ display:none } .only-desktop{ display:inline-flex }
@media (max-width:900px){ .only-mobile{ display:inline-flex } .only-desktop{ display:none } }

/* Header site title */
.site-header .brand span{
  font-weight:700;
  font-size:1.15rem;              /* mobile */
  letter-spacing:.2px; line-height:1.1;
}
@media (min-width:901px){
  .site-header .brand span{ font-size:1.25rem } /* desktop bump */
}

/* =====================================
   MOBILE DRAWER + SCRIM
   ===================================== */
@media (max-width:900px){
  .nav{
    position:fixed; top:var(--headerH); right:0; left:auto;
    display:none; width:fit-content; inline-size:max-content;
    max-width:92vw; min-width:220px;
    padding:.75rem 1rem; text-align:right;
    background:var(--bg);
    border-left:1px solid color-mix(in srgb, var(--fg) 15%, transparent);
    max-height:calc(100dvh - var(--headerH)); overflow:auto; z-index:10002;
  }
  body.nav-open .nav{ display:block }

  .nav a{
    display:block; padding:.9rem 0 .9rem 1rem;
    border-bottom:1px solid color-mix(in srgb, var(--fg) 10%, transparent);
    white-space:nowrap;
  }
  .nav a:last-of-type{ border-bottom:0 }

  /* Scrim */
  .nav-scrim{
    position:fixed; inset:var(--headerH) 0 0 0;
    background: rgba(0,0,0,.28); z-index:10001;
  }
  #nav-scrim[hidden], body:not(.nav-open) #nav-scrim{ display:none !important }
}

/* =====================================
   BUTTONS
   ===================================== */
.btn{
  display:inline-block; background:var(--accent); color:var(--accent-ink);
  padding:.6rem 1rem; border-radius:.5rem; text-decoration:none;
}
.btn:hover{ opacity:.92 }

/* Space between link text and the external-link icon */
a .ext-icon{ display:inline-block; margin-left:.35rem; flex-shrink:0; }

/* =====================================
   SECTIONS / HEADINGS
   ===================================== */
.section{ margin-top:.75rem; padding-top:0; border-top:0 }
h1,h2,h3{ line-height:1.25; margin:0 0 .75rem }
h1{ font-size:2rem } h2{ font-size:1.5rem } h3{ font-size:1.25rem }
.content p{ margin:.5rem 0 }

/* =====================================
   HERO
   ===================================== */
.hero{ margin-bottom:.75rem }
.hero--slim{ padding:1rem 0 } .hero--medium{ padding:1.25rem 0 } .hero--large{ padding:2rem 0 }
.hero-title{ margin:0; line-height:1.15 }
.hero-tagline{ margin:.25rem 0 .5rem; font-style:italic; color:var(--muted) }
.hero-media{ margin:0; overflow:hidden; border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,.12) }
.hero-media img{ width:100%; height:360px; object-fit:cover; object-position:center; display:block; filter:contrast(1.05) saturate(1.06) }
@media (min-width:980px){ .hero-media img{ height:420px } }

/* Safety cap if JS height sync fails */
.hero-col .hero-rot,
.hero-col .hero-rot-thumb { max-height: min(70vh, 560px); }

.hero-col .hero-rot-thumbimg{
  width:100%;
  height:100% !important;
  object-fit:cover;
  max-height:inherit;
}

.hero-col .hero-rot-thumbimg{
  width:100%;
  height:100% !important;     /* keep crop behavior */
  object-fit: cover;
  max-height: inherit;        /* obey the cap above */
}
/* =====================================
   GRID UTILITIES
   ===================================== */
.two-col{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
  width:100%;
}
.two-col .col{ min-width:0 }
@media (max-width:900px){ .two-col{ grid-template-columns:1fr } }

.twocol{ display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; align-items:start } /* legacy */
.twocol .col{ min-width:0 }
@media (max-width:820px){ .twocol{ grid-template-columns:1fr } }

/* Hero-specific grid */
.two-col-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
  width:100%;
}
.two-col-hero > .col{ min-width:0 }
@media (max-width:900px){ .two-col-hero{ grid-template-columns:1fr } }
.twocol-hero{ align-items:stretch } /* legacy support */

/* Right column sizing helpers for hero */
.twocol-hero .col.hero-col{ justify-self:stretch; align-self:start; width:100%; min-width:0 }
.hero-col .hero-rot,
.hero-col .hero-rot-thumb{ display:block; width:100%; height:var(--hero-max-h, auto); overflow:hidden }
.hero-col .hero-rot-thumbimg{ width:100%; height:100% !important; aspect-ratio:auto !important; object-fit:cover; border-radius:12px }

/* =====================================
   PANELS
   ===================================== */
.panel{ border:1px solid var(--border); border-radius:10px; padding:1rem; background:var(--bg) }
.panel__title{ margin:0 0 .5rem; font-size:1.15rem }
.panel__body > p:first-child{ margin-top:0 }

/* =====================================
   LINKS (content areas)
   ===================================== */
.content a, .panel .content a, .prose a, .hero .content a, .hero-notice a, .site-footer a{
  color:var(--link);
  text-decoration:underline; text-underline-offset:.15em; text-decoration-thickness:.085em;
  text-decoration-color: color-mix(in srgb, currentColor 80%, transparent);
}
.content a:hover, .panel .content a:hover, .prose a:hover,
.hero .content a:hover, .hero-notice a:hover, .site-footer a:hover{
  color:var(--link-hover); text-decoration-thickness:.11em;
}
.content a:visited, .panel .content a:visited, .prose a:visited,
.hero .content a:visited, .hero-notice a:visited, .site-footer a:visited{
  color:var(--link-visited);
}
.content a:focus-visible, .panel .content a:focus-visible, .prose a:focus-visible,
.hero .content a:focus-visible, .hero-notice a:focus-visible, .site-footer a:focus-visible{
  outline:2px solid var(--accent); outline-offset:2px; border-radius:4px;
}
a.btn, .site-header .nav a{ text-decoration:none !important }

/* =====================================
   ACCORDIONS (unified)
   ===================================== */
details,
details.accordion,
details.hero-acc,
.section .content details,
details.mission,
details.mission-acc{
  background: var(--surface);
  border: 1px solid var(--surface-border);
  border-left: 6px solid var(--accent);
  border-radius: 10px;
  padding: .9rem 1.1rem;
  margin: 1rem 0 1.25rem;
  box-shadow: inset 0 1px 0 rgba(0,0,0,.04);
}
details:hover{ background: color-mix(in srgb, var(--accent) 18%, var(--surface)) }
details[open]{ background: var(--surface-strong) }
details > summary{ list-style:none; cursor:pointer; font-weight:700; margin:0 }
details > summary::-webkit-details-marker{ display:none }
details > summary::before{
  content:"▸"; display:inline-block; margin-right:.5rem; opacity:.9;
  transition: transform .15s ease;
}
details[open] > summary::before{ transform: rotate(90deg) }

/* =====================================
   BLOCKQUOTE: mission
   ===================================== */
blockquote.mission{
  margin:1rem 0 1.25rem; padding:.9rem 1.1rem;
  border-left:6px solid var(--accent); border-radius:10px;
  background: color-mix(in srgb, var(--accent) 14%, var(--bg));
  box-shadow: inset 0 1px 0 rgba(0,0,0,.04);
}
blockquote.mission > strong{ display:block; margin-bottom:.35rem; font-weight:700 }
blockquote.mission > p{ margin:0; line-height:1.5 }

/* =====================================
   CALENDARS / SPRITES
   ===================================== */
.calendar-wrap{
  border:1px solid var(--border); border-left:6px solid var(--accent);
  border-radius:10px; padding:.9rem 1.1rem;
  background: color-mix(in srgb, var(--accent) 14%, var(--bg));
  box-shadow: inset 0 1px 0 rgba(0,0,0,.04);
}
.calendar-wrap iframe{
  width:100% !important; height:700px; border:0; display:block; background:#fff; border-radius:8px;
}
@media (max-width:900px){ .calendar-wrap iframe{ height:min(72vh,640px) } }

.fullbleed{ margin-left:-1.25rem; margin-right:-1.25rem; padding-left:1.25rem; padding-right:1.25rem }
.cal-link{ margin:.6rem 0 0; font-weight:600 }

/* Title sprites (color = currentColor) */
.sprite{
  display:inline-block; width:1.25em; height:1.25em; vertical-align:-0.2em; margin-right:.4em; background:currentColor;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-size:contain; mask-size:contain; -webkit-mask-position:center; mask-position:center;
}
.sprite-inperson{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3zM8 11c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5C15 14.17 10.33 13 8 13zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.89 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3zM8 11c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5C15 14.17 10.33 13 8 13zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.89 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/></svg>");
}
.sprite-zoom{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17 10.5V7c0-1.1-.9-2-2-2H3C1.9 5 1 5.9 1 7v6c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3.5l4 4v-9l-4 4z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17 10.5V7c0-1.1-.9-2-2-2H3C1.9 5 1 5.9 1 7v6c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3.5l4 4v-9l-4 4z'/></svg>");
}
/* Additional header sprites */
.sprite-pin{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5z'/></svg>");
}

.sprite-calendar{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2v2H5a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm12 7H5v10h14V9z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7 2v2H5a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-2V2h-2v2H9V2H7zm12 7H5v10h14V9z'/></svg>");
}

.sprite-book{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 4a2 2 0 0 1 2-2h6a4 4 0 0 1 4 4v14a1 1 0 0 1-1.45.9L11 19.76 7.45 20.9A1 1 0 0 1 6 19.99V4H5a2 2 0 0 0-2 2v14H2V6a2 2 0 0 1 1-2zM8 4h3a2 2 0 0 1 2 2v11.53l-2-.73-3 1V4z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 4a2 2 0 0 1 2-2h6a4 4 0 0 1 4 4v14a1 1 0 0 1-1.45.9L11 19.76 7.45 20.9A1 1 0 0 1 6 19.99V4H5a2 2 0 0 0-2 2v14H2V6a2 2 0 0 1 1-2zM8 4h3a2 2 0 0 1 2 2v11.53l-2-.73-3 1V4z'/></svg>");
}

.sprite-heart{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.19-4.35-9.33-8.06C.95 9.29 2.45 6 5.57 6c1.9 0 3.09 1.01 3.93 2.12C10.91 7.01 12.1 6 14 6c3.12 0 4.62 3.29 2.9 6.94C19.19 16.65 12 21 12 21z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21s-7.19-4.35-9.33-8.06C.95 9.29 2.45 6 5.57 6c1.9 0 3.09 1.01 3.93 2.12C10.91 7.01 12.1 6 14 6c3.12 0 4.62 3.29 2.9 6.94C19.19 16.65 12 21 12 21z'/></svg>");
}

.sprite-badge{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.39 4.85L20 7.64l-3.5 3.41.83 4.95L12 14.77 6.67 16l.83-4.95L4 7.64l5.61-.79L12 2z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.39 4.85L20 7.64l-3.5 3.41.83 4.95L12 14.77 6.67 16l.83-4.95L4 7.64l5.61-.79L12 2z'/></svg>");
}

.sprite-link{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.59 13.41a1.98 1.98 0 0 1 0-2.82l3.18-3.18a4.5 4.5 0 1 1 6.36 6.36l-2.12 2.12a4.5 4.5 0 0 1-6.36 0l-.71-.71 1.41-1.41.71.71a2.5 2.5 0 0 0 3.54 0l2.12-2.12a2.5 2.5 0 1 0-3.54-3.54l-3.18 3.18a1.98 1.98 0 0 1-2.82 0zM13.41 10.59l-3.18 3.18a4.5 4.5 0 1 1-6.36-6.36L6 5.29a4.5 4.5 0 0 1 6.36 0l.71.71-1.41 1.41-.71-.71a2.5 2.5 0 0 0-3.54 0L5.29 8.82a2.5 2.5 0 1 0 3.54 3.54l3.18-3.18 1.41 1.41z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.59 13.41a1.98 1.98 0 0 1 0-2.82l3.18-3.18a4.5 4.5 0 1 1 6.36 6.36l-2.12 2.12a4.5 4.5 0 0 1-6.36 0l-.71-.71 1.41-1.41.71.71a2.5 2.5 0 0 0 3.54 0l2.12-2.12a2.5 2.5 0 1 0-3.54-3.54l-3.18 3.18a1.98 1.98 0 0 1-2.82 0zM13.41 10.59l-3.18 3.18a4.5 4.5 0 1 1-6.36-6.36L6 5.29a4.5 4.5 0 0 1 6.36 0l.71.71-1.41 1.41-.71-.71a2.5 2.5 0 0 0-3.54 0L5.29 8.82a2.5 2.5 0 1 0 3.54 3.54l3.18-3.18 1.41 1.41z'/></svg>");
}

.sprite-info{
  -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/></svg>");
          mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/></svg>");
}

/* =====================================
   MEETINGS / CALENDAR EMBEDS (unified)
   ===================================== */
/* Grid for the two calendars */
.meetings-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
@media (max-width:900px){ .meetings-grid{ grid-template-columns:1fr } }

/* Card wrappers (stripped to let iframes sit flush) */
.cal-card{ background:transparent; border:0; box-shadow:none; padding:0; margin:0 }
.cal-card__body{ padding:0; overflow:hidden }

/* Iframes: full width/height with rounding */
.meetings-cal iframe,
.zoom-cal iframe,
.calendar-embed iframe,
.eventscal-wrap iframe{
  display:block;
  width:100% !important;
  height:700px;
  border:0 !important;
  border-radius:12px;
  background:transparent;
  box-sizing:border-box;
}
@media (max-width:640px){
  .meetings-cal iframe,
  .zoom-cal iframe,
  .calendar-embed iframe,
  .eventscal-wrap iframe{ height:520px }
}

/* Dark-mode readability for Google Calendar */
.dark .meetings-cal iframe,
.dark .zoom-cal iframe,
.dark .calendar-embed iframe,
.dark .eventscal-wrap iframe{
  filter: invert(0.92) hue-rotate(180deg) contrast(0.95) brightness(0.9) !important;
  border-color:#444 !important;
}

/* Optional: edge-crop style */
.cal-flush{ position:relative; overflow:hidden; border-radius:10px }
.cal-flush iframe{
  display:block; width:calc(100% + 2px); height:720px;
  transform:translate(-1px,-1px); border:0 !important;
}
@media (max-width:640px){ .cal-flush iframe{ height:520px } }
.cal-sm iframe{ height:480px }
@media (max-width:900px){ .cal-sm iframe{ height:480px } }

/* =====================================
   FORMS
   ===================================== */
.content form label{ display:block; margin:.25rem 0 .15rem; font-weight:600; color:var(--fg) }
.content form p{ margin:.15rem 0 .4rem }
.content form textarea{ min-height:180px }
.content form input[type="text"],
.content form input[type="email"],
.content form input[type="tel"],
.content form input[type="url"],
.content form input[type="search"],
.content form input[type="password"],
.content form input[type="number"],
.content form input[type="date"],
.content form input[type="time"],
.content form input[type="datetime-local"],
.content form select,
.content form textarea{
  display:block; width:100%; padding:.65rem .75rem; margin:0 0 .55rem;
  border:1px solid var(--surface-border); border-radius:12px;
  background:var(--surface); color:var(--fg);
  transition:border-color .15s ease, box-shadow .15s ease;
  box-shadow: inset 0 1px 0 rgba(0,0,0,.02);
}
.content form input:focus, .content form select:focus, .content form textarea:focus{
  outline:0; border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);
}
.content form input[type="submit"],
.content form button[type="submit"]{
  appearance:none; border:0; border-radius:10px;
  background:var(--accent); color:#fff; padding:.6rem 1rem; cursor:pointer;
}
.content form input[type="submit"]:hover,
.content form button[type="submit"]{ opacity:.92 }
.dark ::placeholder{ color:#b9c0cc; opacity:.95 }

/* =====================================
   POSTER (flyer) COMPONENT
   ===================================== */
.poster__thumb{ display:block; cursor:zoom-in }
.poster__img{
  display:block; width:100%; height:auto;
  border-radius:12px; box-shadow:0 2px 16px rgba(0,0,0,.25);
  background:rgba(0,0,0,.06);
}
.poster__lightbox{ position:fixed; inset:0; display:none; z-index:9999 }
.poster__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.85); display:block }
.poster__imagewrap{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:block; cursor:zoom-out }
.poster__full{
  width:min(96vw,900px); max-height:96vh; height:auto; object-fit:contain;
  border-radius:10px; box-shadow:0 6px 30px rgba(0,0,0,.5);
}
.poster__toggle:checked ~ .poster__lightbox{ display:block }

@media print{
  body *{ visibility:hidden !important }
  .poster__toggle:checked ~ .poster__lightbox,
  .poster__toggle:checked ~ .poster__lightbox *{ visibility:visible !important }
  .poster__toggle:checked ~ .poster__lightbox{ position:static; inset:auto; display:block; background:none }
  .poster__backdrop{ display:none }
  .poster__imagewrap{ position:static; transform:none }
  .poster__full{ width:100% !important; max-height:none !important; box-shadow:none !important; border-radius:0 !important }
}
@media (max-width:480px){ .poster__full{ width:94vw; max-height:90vh } }

/* =====================================
   FOOTER
   ===================================== */
.site-footer{
  text-align:center; padding:.5rem 1rem; border-top:1px solid var(--border);
  color:var(--muted); font-size:.9rem; line-height:1.3;
}
.site-footer p{ margin:.25rem 0 }
.site-footer .fine{ margin:.15rem 0; line-height:1.25 }
.site-footer .fine.dim{ margin-top:.1rem; opacity:.9 }
.site-footer nav a + a::before{ content:" · "; opacity:.7; padding:0 .2rem }

/* Header CTA: never show visited purple */
.cta-meetings,
.cta-meetings:link,
.cta-meetings:visited{ color:inherit !important; text-decoration:none }
