/* Public pages only. The CMS continues to use style.css without these overrides. */
:root {
  --glass-ink: #263724;
  --glass-muted: #52614e;
  --glass-edge: rgba(255, 255, 255, 0.88);
  --glass-shadow: 0 22px 60px rgba(47, 64, 39, 0.07), 0 3px 8px rgba(47, 64, 39, 0.035), inset 0 1px 0 #fff;
  --glass-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ambient-sage: #9db77a;
  --ambient-gold: #dfba77;
  --ambient-mist: #a6c7a6;
}

html { scroll-padding-top: 128px; }
body {
  background: #f7f6f0;
  color: var(--glass-ink);
  isolation: isolate;
}

/* A decorative layer behind the page. Only transforms animate: no video,
   canvas, animated blur, layout changes, or per-frame JavaScript. */
.ambient-background {
  position: fixed;
  inset: 0 0 auto;
  height: 100vh;
  height: 100lvh;
  z-index: -1;
  overflow: hidden;
  contain: strict;
  pointer-events: none;
  user-select: none;
  opacity: 0.4;
}
.ambient-orb {
  position: absolute;
  width: clamp(24rem, 70vw, 58rem);
  aspect-ratio: 1;
  border-radius: 44% 56% 63% 37% / 54% 42% 58% 46%;
  background: radial-gradient(ellipse at 46% 44%, currentColor 0 22%, transparent 70%);
  animation: ambient-rise 38s ease-in-out infinite alternate;
  animation-play-state: paused;
}
.ambient-orb--sage { left: -16%; top: -22%; color: var(--ambient-sage); animation-delay: -12s; }
.ambient-orb--gold { right: -19%; top: 12%; color: var(--ambient-gold); animation-name: ambient-sway; animation-duration: 46s; animation-delay: -25s; }
.ambient-orb--mist { left: 19%; bottom: -44%; color: var(--ambient-mist); animation-name: ambient-drift; animation-duration: 42s; animation-delay: -19s; }
[data-ambient-motion="running"] .ambient-orb { animation-play-state: running; }
@keyframes ambient-rise {
  from { transform: translate3d(-3%, -5%, 0) rotate(-12deg) scale(0.96, 1.08); }
  to { transform: translate3d(21%, 28%, 0) rotate(16deg) scale(1.08, 0.95); }
}
@keyframes ambient-sway {
  from { transform: translate3d(4%, 22%, 0) rotate(18deg) scale(1.08, 0.94); }
  to { transform: translate3d(-24%, -12%, 0) rotate(-14deg) scale(0.93, 1.1); }
}
@keyframes ambient-drift {
  from { transform: translate3d(-16%, 9%, 0) rotate(-8deg) scale(0.96, 1.05); }
  to { transform: translate3d(13%, -30%, 0) rotate(20deg) scale(1.1, 0.94); }
}
.ambient-motion-toggle {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #e6eadf38;
  border-radius: 14px;
  background: #ffffff08;
  color: #e6eadf;
  font: inherit;
  font-size: 0.78rem;
  cursor: pointer;
}
.ambient-motion-toggle:hover { background: #ffffff14; }
.ambient-motion-toggle:focus-visible { outline-color: #d3e8ba; }
.ambient-motion-toggle:disabled { cursor: default; }
.ambient-switch {
  flex: 0 0 30px;
  width: 30px;
  height: 18px;
  padding: 3px;
  border-radius: 12px;
  background: #56634f;
}
.ambient-switch::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f6f8f0;
  transition: transform 180ms var(--glass-ease);
}
.ambient-motion-toggle[aria-checked="true"] .ambient-switch { background: #91ad76; }
.ambient-motion-toggle[aria-checked="true"] .ambient-switch::before { transform: translateX(12px); }
@media (max-width: 680px) {
  .ambient-orb { width: 28rem; }
  .ambient-orb--sage { left: -17rem; top: -5rem; }
  .ambient-orb--gold { right: -15rem; top: 25%; }
  .ambient-orb--mist { display: none; }
  .ambient-motion-toggle { margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .ambient-orb { animation: none !important; }
}
@media (prefers-reduced-transparency: reduce), (forced-colors: active) {
  .ambient-background { display: none; }
}
@media print {
  .ambient-background, .ambient-motion-toggle { display: none !important; }
}
button, a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
::selection { background: #d5e1bd; color: #203019; }
:where(a, button, summary, [tabindex]):focus-visible {
  outline: 3px solid #486c3b;
  outline-offset: 5px;
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 100;
  border-radius: 12px;
  padding: 12px 18px;
  background: #263724;
  color: white;
}
.skip-link:focus { top: 18px; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.container { width: min(1160px, calc(100% - 48px)); }
.site-header {
  top: 14px;
  width: min(1260px, calc(100% - 32px));
  margin: 14px auto 0;
  border: 1px solid var(--glass-edge);
  border-radius: 30px;
  background: #f4f5ec;
  box-shadow: 0 8px 28px rgba(47, 64, 39, 0.06), inset 0 1px 0 #fff;
  transition: box-shadow 300ms ease;
}
.site-header.is-scrolled { box-shadow: 0 12px 36px rgba(47, 64, 39, 0.14), inset 0 1px 0 #fff; }
.nav-wrap { width: 100%; min-height: 78px; padding: 10px 20px; gap: 20px; }
.brand { display: flex; align-items: center; gap: 11px; line-height: 1.1; }
.brand-copy { display: grid; gap: 4px; }
.brand-copy small {
  font-family: "Inter", sans-serif;
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.brand-copy strong { font-size: 1.55rem; font-weight: 600; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 38px;
  height: 46px;
  border-radius: 22px 22px 12px 12px;
  border: 1px solid #bac9ac;
  background: linear-gradient(145deg, #fff, #dce7cc);
  box-shadow: inset 0 1px 3px #fff;
}
.brand-mark svg { width: 20px; height: 24px; }
.nav { gap: 3px; }
.nav a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 999px;
  font-size: 0.84rem;
  color: #45533e;
  transition: background 220ms ease, color 220ms ease, box-shadow 220ms ease;
}
.nav a:hover { background: rgba(255, 255, 255, 0.6); opacity: 1; }
.nav a[aria-current] {
  color: #263724;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 9px rgba(39, 58, 27, 0.06), inset 0 0 0 1px #fff;
}
.header-actions { gap: 10px; }
.language-toggle {
  padding: 4px;
  gap: 2px;
  background: rgba(223, 230, 212, 0.55);
  border: 1px solid rgba(112, 133, 95, 0.13);
}
.language-toggle > span { display: none; }
.lang-button {
  min-width: 40px;
  min-height: 40px;
  border-radius: 999px;
  color: #52614e;
  transition: background 220ms ease, box-shadow 220ms ease;
}
.lang-button.active { background: #fffefa; box-shadow: 0 2px 7px #35442714; color: #263724; }
.menu-button { width: 44px; height: 44px; border-radius: 50%; color: #263724; }
.menu-button span {
  display: block;
  width: 19px;
  height: 2px;
  margin: 5px auto;
  border-radius: 2px;
  background: currentColor;
  transition: transform 250ms var(--glass-ease);
}
.menu-button[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.hero { position: relative; overflow: clip; padding: 98px 0 86px; }
.hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.85fr); gap: 70px; }
.hero h1 { font-size: clamp(3.2rem, 6.4vw, 5.4rem); line-height: 1.04; text-wrap: balance; letter-spacing: -0.055em; }
.hero-copy { max-width: 530px; color: var(--glass-muted); line-height: 1.85; font-size: 1rem; }
.eyebrow { color: #59634b; font-size: 0.7rem; letter-spacing: 0.18em; }
.hero-actions { gap: 10px; }
.button {
  min-height: 50px;
  border-radius: 999px;
  font-size: 0.88rem;
  padding: 13px 24px;
  letter-spacing: -0.015em;
  -webkit-font-smoothing: antialiased;
  transition: transform 180ms var(--glass-ease), background 220ms ease, box-shadow 220ms ease;
}
.button-primary {
  background: linear-gradient(150deg, #526744, #293e27);
  border-color: #3c5032;
  box-shadow: inset 0 1px 0 #b1c69e66, 0 2px 4px #31432714, 0 5px 12px #3143270d;
}
.button-secondary, .button-light {
  background: rgba(255, 255, 255, 0.74);
  border-color: rgba(116, 137, 98, 0.23);
  color: #263724;
  box-shadow: 0 2px 5px #31432708, inset 0 1px 0 #fff;
}
.button:active { transform: translateY(1px) scale(0.98); }
.hero-card, .preview-card, .service-feature, .announcement-card, .full-newsletter, .archive-item {
  position: relative;
  background: #fafbf5;
  border-color: var(--glass-edge);
  box-shadow: var(--glass-shadow);
}
.hero-card {
  isolation: isolate;
  border-radius: 150px 150px 34px 34px;
  padding: 50px 34px 30px;
  text-align: center;
  background: linear-gradient(145deg, #f7fbef, #e5efd9);
}
.hero-card::before {
  content: "";
  position: absolute;
  inset: 12px;
  z-index: -1;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 140px 140px 24px 24px;
  pointer-events: none;
}
.hero-card::after {
  content: "";
  position: absolute;
  inset: -30px;
  z-index: -2;
  border-radius: 48%;
  background: radial-gradient(ellipse, rgba(180, 204, 154, 0.28), transparent 70%);
  pointer-events: none;
}
.card-symbol {
  display: grid;
  place-items: center;
  width: 62px;
  height: 72px;
  margin: 0 auto 27px;
  border-radius: 36px 36px 20px 20px;
  background: linear-gradient(145deg, #ffffffc9, #ffffff33);
  border: 1px solid #ffffffde;
  box-shadow: 0 10px 22px #44583b12, inset 0 1px 0 #fff;
}
.card-symbol svg { width: 28px; height: 36px; }
.hero-card h2 { font-size: 2.25rem; margin-bottom: 6px; }
.hero-card .card-label { font-size: 0.66rem; color: #56664b; margin-bottom: 13px; }
.hero-card .service-time { font-weight: 500; font-size: clamp(2.7rem, 4.5vw, 3.8rem); letter-spacing: -0.05em; margin-bottom: 17px; }
.hero-card > p:not(.service-time):not(.card-label) { color: #52614e; font-size: 0.9rem; }
.status-pill { background: #fff9; color: #3b5330; border: 1px solid #fff; font-size: 0.74rem; }
.status-pill::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 7px; border-radius: 50%; background: #618145; vertical-align: middle; }
.card-direction { display: block; width: fit-content; margin: 22px auto 0; padding: 8px 12px; font-size: 0.8rem; }
.section { padding: 76px 0; }
.section-title { line-height: 1.12; letter-spacing: -0.035em; text-wrap: balance; }
.section-copy { color: var(--glass-muted); font-size: 1rem; line-height: 1.85; }
#services { padding-top: 18px; }
.service-feature { max-width: none; padding: 30px 34px; gap: 24px; }
.service-feature > div:nth-child(2) { flex: 1; }
.service-feature h3 { font-size: 1.06rem; }
.service-feature strong { font-size: 1.8rem; font-weight: 600; }
.service-icon { color: #466039; background: linear-gradient(135deg, #e7eedc, #f9fbf6); border: 1px solid #fff; }
.service-icon svg { width: 30px; height: 30px; }
.section-alt { background: rgba(228, 233, 216, 0.48); border-block: 1px solid #fff9; }
.preview-card { padding: 34px; }
.tag { background: #e5eddb; color: #3b5231; }
.text-link { text-underline-offset: 5px; }
.text-link:hover { text-decoration: underline; }
.announcement-card { border-radius: 24px; }
.visit-section {
  position: relative;
  background: radial-gradient(ellipse at 90% 0, #587044, transparent 68%), #293e28;
}
.visit-card { background: #f4f5eb; border: 1px solid #ffffff6b; box-shadow: 0 20px 50px #14201326, inset 0 1px 0 #fff; }
.copy-address { display: inline-flex; align-items: center; gap: 8px; }
.copy-address svg { width: 16px; height: 16px; flex: 0 0 auto; }
.copy-status { min-height: 1.5em; margin: 12px 0 0; color: #e1ebd7; font-size: 0.84rem; }
.visit-address { user-select: all; }
.footer { background: #20321f; }
.newsletter-hero { padding: 76px 0 24px; }
.newsletter-page-section { padding-top: 24px; }
.full-newsletter { background: #fffffff0; overflow-wrap: anywhere; }
.archive-item { transition: transform 250ms var(--glass-ease), box-shadow 250ms ease; }
.newsletter-page-grid aside { position: sticky; top: 120px; }
.back-to-top {
  position: fixed;
  right: 22px;
  bottom: max(22px, env(safe-area-inset-bottom));
  z-index: 40;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #fff;
  border-radius: 50%;
  color: #263724;
  background: #f5f8eff2;
  box-shadow: 0 5px 22px #26372424;
  cursor: pointer;
}
.back-to-top svg { width: 20px; height: 20px; }

/* Opaque colors above are the fallback for browsers without backdrop blur. */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header, .nav, .back-to-top {
    -webkit-backdrop-filter: blur(22px) saturate(1.3);
    backdrop-filter: blur(22px) saturate(1.3);
  }
  .site-header { background: rgba(247, 249, 240, 0.79); }
  /* Keep scrolling cards inexpensive to paint; only the floating chrome blurs. */
  .preview-card, .service-feature, .announcement-card, .archive-item { background: rgba(255, 255, 250, 0.69); }
  .hero-card { background: linear-gradient(145deg, #ffffffa6, #dce9c985); }
  .visit-card { background: rgba(251, 253, 242, 0.9); }
}

@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-1px); box-shadow: 0 5px 14px #3143271c, inset 0 1px 0 #ffffff77; }
  .button:active { transform: translateY(1px) scale(0.98); box-shadow: inset 0 1px 2px #26372417; }
  .archive-item:hover { transform: translateY(-3px); box-shadow: 0 12px 28px #31432714, inset 0 1px 0 white; }
  .hero-card { background-image: radial-gradient(circle at var(--light-x, 30%) var(--light-y, 10%), #ffffffb0, transparent 58%), linear-gradient(145deg, #f7fbef99, #dce9c999); }
}

@media (max-width: 1100px) {
  .nav-wrap { grid-template-columns: 1fr auto; }
  .header-actions { order: initial; }
  .menu-button { display: block; }
  .nav {
    display: flex;
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 4px;
    padding: 12px;
    border: 1px solid #fff;
    border-radius: 25px;
    background: #f8faf2f5;
    box-shadow: var(--glass-shadow);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px) scale(0.98);
    transform-origin: top;
    pointer-events: none;
    transition: opacity 220ms ease, transform 300ms var(--glass-ease), visibility 220ms;
  }
  .nav.open { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .nav a { border-radius: 14px; padding: 12px 16px; }
  .hero-grid { gap: 40px; }
}
@media (max-width: 900px) {
  .hero { padding: 62px 0 58px; }
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .hero h1 { max-width: 650px; font-size: clamp(3rem, 8.5vw, 4.8rem); }
  .hero-card { width: min(460px, 100%); margin-inline: auto; }
  .service-feature { flex-wrap: wrap; }
  .service-feature > .button { margin-left: 98px; }
  .newsletter-page-grid aside { position: static; }
  .section { padding-block: 58px; }
}
@media (max-width: 540px) {
  .container { width: calc(100% - 36px); }
  .site-header { top: 8px; width: calc(100% - 20px); margin-top: 8px; border-radius: 23px; }
  .nav-wrap { width: 100%; min-height: 70px; padding: 8px 12px; gap: 8px; }
  .brand-mark { display: none; }
  .brand-copy small { font-size: 0.49rem; letter-spacing: 0.09em; }
  .brand-copy strong { font-size: 1.3rem; }
  .header-actions { gap: 3px; }
  .language-toggle { padding: 2px; }
  .lang-button { min-width: 35px; min-height: 40px; font-size: 0.72rem; }
  .hero { padding-top: 48px; }
  .hero h1 { font-size: clamp(2.7rem, 11.2vw, 3.7rem); }
  .hero-actions > .button { flex: 1 1 auto; }
  .hero-card { padding: 45px 24px 30px; }
  .service-feature { padding: 24px 20px; gap: 16px; }
  .service-icon { width: 52px; height: 58px; border-radius: 17px; }
  .service-feature > .button { margin-left: 0; width: 100%; }
  .service-feature p { font-size: 0.88rem; }
  .section-title { font-size: 2.45rem; }
  .preview-card, .full-newsletter, .visit-card { padding: 26px; }
  .footer-row { padding-right: 42px; }
  .footer-links { flex-wrap: wrap; gap: 10px; }
  .back-to-top { right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button:hover, .button:active, .archive-item:hover { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header, .nav, .hero-card, .preview-card, .service-feature, .announcement-card, .archive-item, .visit-card, .back-to-top {
    background: #f8faf2;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
@media (forced-colors: active) {
  .button, .site-header, .language-toggle, .hero-card, .back-to-top { border: 1px solid ButtonText; }
  .nav a[aria-current], .lang-button.active { outline: 2px solid Highlight; }
}

/* Appearance control, alongside the language selector on both public pages. */
html { scrollbar-gutter: stable; }
.theme-toggle {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border: 1px solid rgba(112, 133, 95, 0.2);
  border-radius: 15px;
  background: #ffffffa6;
  color: var(--glass-ink);
  cursor: pointer;
  transition: background-color 220ms ease, transform 180ms var(--glass-ease);
}
.theme-toggle:active { transform: scale(0.94); }
.theme-toggle svg { position: absolute; width: 20px; height: 20px; transition: opacity 200ms ease, transform 280ms var(--glass-ease); }
.theme-moon { opacity: 0; transform: rotate(-30deg) scale(0.7); }
[data-theme="dark"] .theme-sun { opacity: 0; transform: rotate(30deg) scale(0.7); }
[data-theme="dark"] .theme-moon { opacity: 1; transform: none; }
body, .site-header, .section-alt, .hero-card, .preview-card, .service-feature, .announcement-card, .visit-card, .full-newsletter, .archive-item {
  transition: background-color 240ms ease, color 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}
#announcementList { min-height: 150px; }
[data-theme="dark"] {
  --glass-ink: #edf1e8;
  --glass-muted: #b9c5b1;
  --glass-edge: #41503b;
  --glass-shadow: 0 14px 40px #0003, inset 0 1px 0 #ffffff08;
  --ambient-sage: #4c713b;
  --ambient-gold: #7d5e30;
  --ambient-mist: #346f62;
}
[data-theme="dark"] body {
  background: #121912;
}
[data-theme="dark"] ::selection { background: #4c663d; color: #fff; }
[data-theme="dark"] :where(a, button, summary, [tabindex]):focus-visible { outline-color: #b2cf98; }
[data-theme="dark"] .site-header { background: #1c281dea; box-shadow: 0 8px 30px #0003, inset 0 1px 0 #ffffff0d; }
[data-theme="dark"] .brand-mark { background: linear-gradient(145deg, #405136, #283b23); border-color: #596a4d; box-shadow: inset 0 1px 0 #ffffff17; }
[data-theme="dark"] .nav a, [data-theme="dark"] .lang-button, [data-theme="dark"] .menu-button { color: #dce6d4; }
[data-theme="dark"] .nav a:hover { background: #ffffff12; }
[data-theme="dark"] .nav a[aria-current], [data-theme="dark"] .lang-button.active { background: #415138; color: #f1f6eb; box-shadow: inset 0 1px 0 #ffffff17; }
[data-theme="dark"] .language-toggle, [data-theme="dark"] .theme-toggle { background: #ffffff08; border-color: #526447; }
[data-theme="dark"] .hero-card { background: linear-gradient(145deg, #32412a, #22321d); }
[data-theme="dark"] .hero-card::before { border-color: #81977555; }
[data-theme="dark"] .card-symbol { background: linear-gradient(145deg, #ffffff19, #ffffff05); border-color: #82947566; box-shadow: inset 0 1px 0 #ffffff20; }
[data-theme="dark"] .eyebrow, [data-theme="dark"] .hero-card .card-label, [data-theme="dark"] .hero-card > p:not(.service-time):not(.card-label),
[data-theme="dark"] .page-intro, [data-theme="dark"] .preview-card p, [data-theme="dark"] .announcement-card p,
[data-theme="dark"] .service-feature p, [data-theme="dark"] .newsletter-section p, [data-theme="dark"] .issue-date,
[data-theme="dark"] .archive-item span, [data-theme="dark"] .content-note, [data-theme="dark"] .mini-label { color: var(--glass-muted); }
[data-theme="dark"] .status-pill, [data-theme="dark"] .tag { background: #374b2e; color: #dceacc; border-color: #596f48; }
[data-theme="dark"] .status-pill::before { background: #b1d58f; }
[data-theme="dark"] .button-primary { background: linear-gradient(150deg, #d5e7bf, #b6ce9a); border-color: #c9dcb5; color: #1c2d15; box-shadow: inset 0 1px 0 #ffffff77, 0 4px 12px #0002; }
[data-theme="dark"] .button-secondary, [data-theme="dark"] .button-light { background: #32432b; color: #edf3e5; border-color: #5c7150; box-shadow: inset 0 1px 0 #ffffff12; }
[data-theme="dark"] .preview-card, [data-theme="dark"] .service-feature, [data-theme="dark"] .announcement-card,
[data-theme="dark"] .archive-item, [data-theme="dark"] .full-newsletter, [data-theme="dark"] .visit-card { background: #202c1e; color: var(--glass-ink); }
[data-theme="dark"] .service-icon { background: #35482b; border-color: #526547; color: #cee2bb; }
[data-theme="dark"] .section-alt { background: #1a2418; border-color: #354130; }
[data-theme="dark"] .text-link { color: #c8dfb2; }
[data-theme="dark"] .visit-section { background: radial-gradient(ellipse at 90% 0, #354c2a, transparent 68%), #182915; }
[data-theme="dark"] .newsletter-section { border-color: #46513d; }
[data-theme="dark"] .newsletter-important-banner { background: #3e321e; border-color: #73613c; }
[data-theme="dark"] .newsletter-important-banner h3, [data-theme="dark"] .newsletter-important-banner span { color: #f1d298; }
[data-theme="dark"] .newsletter-important-banner p { color: #ddc49a; }
[data-theme="dark"] .back-to-top { background: #2a3a22; border-color: #627652; color: #e9f2df; }
[data-theme="dark"] .footer { background: #0d170d; }
@media (max-width: 1100px) {
  [data-theme="dark"] .nav { background: #202c1efa; border-color: #46583b; }
}
@media (max-width: 540px) {
  .nav-wrap { grid-template-columns: minmax(0, 1fr) auto; padding-inline: 10px; gap: 5px; }
  .brand-copy small { max-width: 100px; }
  .header-actions { gap: 2px; }
  .theme-toggle { width: 40px; height: 42px; flex-basis: 40px; border-radius: 14px; }
}
@media (prefers-reduced-transparency: reduce) {
  [data-theme="dark"] .site-header, [data-theme="dark"] .nav { background: #202c1e; }
}
@media (prefers-reduced-motion: reduce) {
  .theme-toggle:active { transform: none; }
}

/* A quieter, tactile glass system. Text stays on a readable surface; only
   navigation chrome uses backdrop blur, keeping scrolling inexpensive. */
body { -webkit-font-smoothing: antialiased; }
main, .hero-grid > *, .newsletter-preview-grid > *, .visit-grid > *,
.newsletter-page-grid > * { min-width: 0; }
.brand, .brand-copy { min-width: 0; }
.brand-copy strong { overflow-wrap: anywhere; }
main :is(section[id], [id][tabindex="-1"]) { scroll-margin-top: 126px; }
.site-header { border-bottom-color: #c5ceb980; }
.hero-location { display: flex; align-items: center; gap: 10px; margin: 25px 0 0; color: var(--glass-muted); font-size: .8rem; }
.location-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: #668454; box-shadow: 0 0 0 5px #7f986912; }
.hero-card { border-radius: 180px 180px 42px 42px; border: 1px solid var(--glass-edge); box-shadow: 0 30px 80px #45573812, inset 0 1px 0 #fff; }
.hero-card::before { inset: 10px; border-radius: 172px 172px 33px 33px; border-bottom-color: #ffffff40; }
.hero-card .service-time, .service-feature strong, .big-time { font-variant-numeric: tabular-nums; }
.card-symbol { background: linear-gradient(140deg, #ffffffed, #ffffff42); box-shadow: 0 9px 24px #44583b17, inset 0 1px 1px #fff; }
.service-feature, .preview-card, .announcement-card { border-radius: 30px; }
.service-feature { border: 1px solid var(--glass-edge); }
.preview-card { overflow: hidden; padding: 40px; }
.preview-card::after { content: ""; position: absolute; width: 150px; height: 150px; right: -95px; top: -70px; border: 24px solid #a1b68416; border-radius: 50%; pointer-events: none; }
.preview-card h3 { max-width: 28ch; font-size: 1.8rem; line-height: 1.2; letter-spacing: -.035em; }
.preview-card .preview-date { color: var(--glass-muted); font-size: .78rem; margin: 12px 0; }
.preview-date:empty { display: none; }
.preview-card .text-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; }
.tag { padding: 6px 12px; font-size: .69rem; border-radius: 999px; letter-spacing: .035em; }
.announcement-card { padding: 30px; overflow-wrap: anywhere; }
.announcement-card h3 { line-height: 1.3; letter-spacing: -.025em; }
.announcement-card > p { line-height: 1.8; }
.public-empty { grid-column: 1 / -1; text-align: center; padding: 36px 24px; }
.public-empty p { max-width: 46ch; margin: 8px auto 0; color: var(--glass-muted); }
.public-empty h3 { font-size: 1.4rem; margin: 16px 0 0; }
.empty-mark { display: grid; place-items: center; width: 42px; height: 42px; margin: 0 auto; border-radius: 50%; border: 1px solid #a7bd924a; background: #a7bd921a; color: var(--glass-muted); }
.retry-button { margin-top: 18px; }
.visit-section { border-radius: 42px 42px 0 0; }
.visit-card { border-radius: 30px; }
.visit-address { font-size: 1.1rem; line-height: 1.8; }
.newsletter-heading-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-bottom: 12px; }
.newsletter-heading-row > .eyebrow { margin: 0; }
.newsletter-tools { display: flex; flex-wrap: wrap; gap: 8px; }
.utility-button {
  min-height: 44px; padding: 9px 14px; border: 1px solid #a0b38c55;
  border-radius: 999px; background: #ffffffb8; color: var(--glass-ink);
  font: inherit; font-size: .77rem; cursor: pointer;
  box-shadow: inset 0 1px 0 #fff; transition: background 180ms ease, transform 180ms var(--glass-ease);
}
.utility-button:hover { background: #fff; }
.utility-button:active { transform: scale(.97); }
.tool-status { color: var(--glass-muted); font-size: .8rem; margin: 0 0 12px; }
.tool-status:empty { display: none; }
.selection-notice { padding: 14px 18px; border: 1px solid var(--glass-edge); border-radius: 16px; background: #91ac7815; color: var(--glass-muted); font-size: .86rem; }
.full-newsletter { border-radius: 32px; padding: clamp(26px, 4vw, 46px); }
.full-newsletter h2 { font-size: clamp(1.9rem, 3.8vw, 2.7rem); line-height: 1.15; text-wrap: balance; letter-spacing: -.04em; }
.newsletter-section h3 { font-size: 1.35rem; line-height: 1.4; }
.newsletter-section p { font-size: 1rem; line-height: 1.9; max-width: 67ch; }
.newsletter-page-grid { gap: 36px; }
.newsletter-page-grid > aside { padding: 24px; border: 1px solid var(--glass-edge); border-radius: 28px; background: #f1f4eaa8; }
.archive-item { border-radius: 18px; box-shadow: 0 3px 12px #35432705, inset 0 1px 0 #fff; }
.archive-item strong { line-height: 1.45; overflow-wrap: anywhere; }
.archive-search-wrap { margin: 18px 0 0; }
.archive-search-wrap label { display: block; color: var(--glass-muted); font-size: .78rem; margin-bottom: 7px; }
.archive-search-wrap input { width: 100%; min-height: 46px; border: 1px solid #879d726b; border-radius: 14px; padding: 11px 13px; background: #fffffff0; color: var(--glass-ink); font: inherit; font-size: 1rem; }
.archive-search-wrap input:focus-visible { outline: 3px solid #486c3b; outline-offset: 3px; }
.archive-count, .archive-empty { color: var(--glass-muted); font-size: .79rem; line-height: 1.75; }
.archive-count:empty { display: none; }
.archive-more { width: 100%; margin-top: 16px; }
.newsletter-empty-public { display: grid; align-content: center; min-height: 260px; text-align: center; }
.newsletter-empty-public p { color: var(--glass-muted); line-height: 1.8; }
button:disabled { cursor: default; opacity: .65; }
.not-found-main { display: grid; align-items: center; padding-block: 70px; }
.not-found-card { max-width: 720px; text-align: center; }
.not-found-card h1 { font-size: clamp(2.8rem, 6vw, 4.8rem); line-height: 1.1; letter-spacing: -.045em; }
.not-found-card .hero-actions { justify-content: center; }
.not-found-card .section-copy { max-width: 52ch; margin: 24px auto; }
.not-found-number { display: inline-block; margin-bottom: 20px; padding: 8px 20px; border: 1px solid var(--glass-edge); border-radius: 999px; background: #94ae7420; color: var(--glass-muted); font-size: .85rem; letter-spacing: .12em; }
[data-theme="dark"] .site-header { border-color: #8394783b; }
[data-theme="dark"] .hero-card { background: linear-gradient(145deg, #3a492dcc, #20321fe6); box-shadow: 0 28px 70px #0003, inset 0 1px 0 #baca9e2b; }
[data-theme="dark"] .card-symbol { background: linear-gradient(145deg, #ffffff24, #ffffff04); box-shadow: 0 9px 24px #0002, inset 0 1px 0 #ffffff30; }
[data-theme="dark"] .preview-card, [data-theme="dark"] .service-feature, [data-theme="dark"] .announcement-card { background: linear-gradient(135deg, #2a3627ec, #1f2b1eec); }
[data-theme="dark"] .newsletter-page-grid > aside { background: #1b271acf; border-color: #62725144; }
[data-theme="dark"] .archive-item { box-shadow: 0 3px 12px #0001, inset 0 1px 0 #ffffff0a; }
[data-theme="dark"] .utility-button, [data-theme="dark"] .archive-search-wrap input { background: #293923; color: #edf1e8; border-color: #6c805a; box-shadow: inset 0 1px 0 #ffffff12; }
[data-theme="dark"] .utility-button:hover { background: #394b30; }
[data-theme="dark"] .archive-search-wrap input:focus-visible { outline-color: #b2cf98; }
@media (max-width: 900px) {
  .newsletter-page-grid { grid-template-columns: minmax(0, 1fr); }
  .newsletter-page-grid > aside { margin-top: 6px; }
  .visit-section { border-radius: 30px 30px 0 0; }
}
@media (max-width: 540px) {
  .hero-location { font-size: .76rem; }
  .preview-card, .announcement-card { padding: 26px; border-radius: 24px; }
  .hero-card { border-radius: 160px 160px 32px 32px; }
  .hero-card::before { border-radius: 152px 152px 24px 24px; }
  .full-newsletter { border-radius: 24px; }
  .newsletter-heading-row { align-items: flex-start; flex-direction: column; gap: 12px; }
  .newsletter-tools { width: 100%; }
  .utility-button { flex: 1; }
  .newsletter-page-grid > aside { padding: 20px; }
}
@media (prefers-reduced-transparency: reduce) {
  .preview-card, .service-feature, .announcement-card, .newsletter-page-grid > aside { background: #fafbf5; }
  [data-theme="dark"] .hero-card, [data-theme="dark"] .preview-card, [data-theme="dark"] .service-feature,
  [data-theme="dark"] .announcement-card, [data-theme="dark"] .newsletter-page-grid > aside { background: #202c1e; }
}
@media (prefers-reduced-motion: reduce) {
  .utility-button { transition: none; }
  .utility-button:active { transform: none; }
}
@media (forced-colors: active) {
  .utility-button, .archive-search-wrap input, .newsletter-page-grid > aside, .archive-item { border: 1px solid ButtonText; }
  .hero-card, .preview-card, .service-feature, .announcement-card { background: Canvas !important; }
  .hero-card::before, .hero-card::after, .preview-card::after { display: none; }
}
