/* Green brand layer: lime energises key moments while purple stays editorial. */
.publicsite {
  --pub-green: #477f32;
  --pub-green-strong: #315f25;
  --pub-green-soft: #e8f2df;
  --pub-green-line: #b9d4a7;
  --pub-lime: #c8ff8f;
  --pub-primary-soft: #ece9f7;
  --pub-primary-line: #c9c0e9;
}

@supports (color: color-mix(in srgb, black, white)) {
  .publicsite {
    --pub-green-strong: color-mix(in srgb, var(--pub-green) 76%, #152015);
    --pub-green-soft: color-mix(in srgb, var(--pub-green) 15%, white);
    --pub-green-line: color-mix(in srgb, var(--pub-green) 38%, white);
    --pub-lime: color-mix(in srgb, var(--pub-green) 44%, white);
    --pub-primary-soft: color-mix(in srgb, var(--pub-accent) 12%, white);
    --pub-primary-line: color-mix(in srgb, var(--pub-accent) 34%, white);
  }
}

.publicnav {
  border-bottom-color: #d8e3d0;
  box-shadow: 0 8px 24px #315f2505;
}

.publicnav nav a:hover { color: var(--pub-green); }
.publicnav nav a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 2px;
  border-radius: 2px;
  background: var(--pub-lime);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .18s;
}
.publicnav nav a:hover::after { transform: scaleX(1); }

.pub-login {
  border-color: var(--pub-primary-line);
  color: var(--pub-accent);
}
.pub-login:hover {
  background: var(--pub-primary-soft);
  color: var(--pub-accent);
}

.pub-kicker { color: var(--pub-green); }
.pub-kicker i {
  background: var(--pub-lime);
  box-shadow: 0 0 0 4px #c8ff8f2e;
}
.pub-hero-line { display: block; color: var(--pub-ink); }
.pub-hero-line-2 { color: var(--pub-accent); }
.pub-hero-line-3 {
  color: var(--pub-green);
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-weight: 400;
  letter-spacing: -4px;
}
.pub-button:not(.pub-outline) {
  background: var(--pub-accent);
  border-color: var(--pub-accent);
  box-shadow: 0 10px 28px color-mix(in srgb, var(--pub-accent) 20%, transparent);
}
.pub-button:hover {
  background: var(--pub-green-strong);
  border-color: var(--pub-green-strong);
}
.pub-text-link { color: var(--pub-accent); }
.pub-text-link:hover { color: var(--pub-green); }
.pub-proof { border-top-color: #d6e5ca; }
.pub-sticker {
  background: var(--pub-lime);
  box-shadow: 0 12px 34px #477f3226;
}

.pub-next {
  box-shadow: inset 5px 0 var(--pub-lime), 0 12px 35px #22331b12;
}
.pub-next-button:hover {
  background: var(--pub-lime);
  border-color: var(--pub-lime);
  color: #20351b;
}

.pub-section h2 em { color: var(--pub-accent); }
#public-meetings h2 em,
#public-club h2 em { color: var(--pub-green); }
#public-members .pub-kicker,
#public-gallery .pub-kicker { color: var(--pub-accent); }
#public-members .pub-kicker i,
#public-gallery .pub-kicker i { background: var(--pub-accent); }

.pub-search { border-color: #ceddc3; }
.pub-search:focus-within { outline-color: var(--pub-green); }
.pub-search button:hover { color: var(--pub-green); }
.pub-portrait-arrow {
  background: #eff8e8ed;
  color: var(--pub-green-strong);
  border: 1px solid #d5e8c7;
}
.pub-portrait:hover .pub-portrait-arrow {
  background: var(--pub-green);
  border-color: var(--pub-green);
  color: #fff;
}
.pub-member h3 button:hover { color: var(--pub-green); }
.pub-outline {
  border-color: var(--pub-primary-line);
  color: var(--pub-accent);
}
.pub-outline:hover {
  background: var(--pub-green-soft);
  border-color: var(--pub-green-line);
  color: var(--pub-green-strong);
}

.pub-agenda-wrap { background: #eef1e9; }
.pub-periods button[aria-pressed='true'] {
  color: var(--pub-green);
  border-color: var(--pub-green);
}
.pub-periods button[aria-pressed='true'] span {
  background: var(--pub-green-soft);
  color: var(--pub-green-strong);
}
.pub-filters button[aria-pressed='true'] {
  background: var(--pub-green-strong);
  border-color: var(--pub-green-strong);
}
.pub-tag {
  border-color: var(--pub-green-line);
  background: #f5faef;
  color: var(--pub-green-strong);
}
.pub-timeline::before { background: var(--pub-green-line); }
.pub-timeline-item::before {
  background: var(--pub-green);
  border-color: #eef1e9;
  box-shadow: 0 0 0 1px var(--pub-green-line);
}
.pub-timeline-item:has(.pub-past-badge)::before { background: #a4a99b; }
.pub-timeline .pub-event {
  border-color: #d3e2c8;
  background: #fbfcf8;
}
.pub-timeline .pub-date {
  background: var(--pub-green-soft);
  color: var(--pub-green-strong);
}
.pub-event-action:hover {
  background: var(--pub-green-soft);
  border-color: var(--pub-green-line);
  color: var(--pub-green-strong);
}
.pub-event-action {
  border-color: var(--pub-primary-line);
  color: var(--pub-accent);
}
.pub-agenda-note > svg,
.pub-agenda-note a { color: var(--pub-green); }

.pub-values article {
  border-top-color: #cfdfc2;
  transition: border-color .18s, transform .18s;
}
.pub-values article:hover {
  border-top-color: var(--pub-green);
  transform: translateY(-3px);
}
.pub-values article > div { color: var(--pub-green); }
.pub-values article:nth-child(2) > div { color: var(--pub-accent); }

.pub-visit {
  background: linear-gradient(135deg, #e3f0d9 0%, #eef4e8 52%, #e7e0f3 100%);
  box-shadow: inset 5px 0 var(--pub-lime);
}
.pub-visit .pub-button {
  background: var(--pub-accent);
  border-color: var(--pub-accent);
}
.pub-visit .pub-button:hover {
  background: var(--pub-green-strong);
  border-color: var(--pub-green-strong);
}
.pub-visit-actions .pub-text-link { color: var(--pub-green-strong); }
.pub-visit-side { border-left-color: #bfd2b0; }
.publicfooter { border-top-color: #cfe0c2; }
.publicfooter a:hover { color: var(--pub-green); }

.pub-media-nav {
  border-color: var(--pub-primary-line);
  color: var(--pub-accent);
}
.pub-media-nav:hover {
  background: var(--pub-primary-soft);
  border-color: var(--pub-primary-line);
  color: var(--pub-accent);
}
.pub-media-discover { color: var(--pub-green-strong); }
.pub-profile .pub-button { --pub-accent: var(--primary); }

@media (max-width: 760px) {
  .publicnav nav a::after { bottom: -1px; }
  .pub-next { box-shadow: inset 4px 0 var(--pub-lime), 0 10px 25px #22331b10; }
  .pub-visit { box-shadow: inset 4px 0 var(--pub-lime); }
}
