/* Xylem Cookie design lock — Appily-onehundredfifteen
   Shared by nav (cookie), footer (stump), hero (cambium fan), and every page.
   Charcoal #1C261E · sprout #2F9B44 · lime #C8F04A · pith #EAF6E4 · bark #6A4A2C · Nunito */
:root {
  --xy-charcoal: #1C261E;
  --xy-charcoal-deep: #121810;
  --xy-sprout: #2F9B44;
  --xy-sprout-ink: #1A6B32;
  --xy-lime: #C8F04A;
  --xy-pith: #EAF6E4;
  --xy-bark: #6A4A2C;
  --xy-mute: #3A4A3C;
  --xy-mute-on-dark: #C5D4C6;
  --xy-surface: #F7FBF4;
  --xy-line: #C5D4C6;
  --xy-err: #9B1D2E;
  --xy-font: "Nunito", "Source Sans 3", "Segoe UI", sans-serif;
  --xy-display: "Calistoga", "Palatino Linotype", Georgia, serif;
  --xy-radius: 18px;
  --xy-radius-sm: 10px;
  --xy-radius-pill: 999px;
  --xy-shadow: 0 10px 28px rgba(18, 24, 16, 0.12);
  --xy-ease: cubic-bezier(0.22, 1, 0.36, 1);

  --a115-primary: var(--xy-charcoal);
  --a115-primary-deep: var(--xy-charcoal-deep);
  --a115-secondary: var(--xy-sprout);
  --a115-secondary-deep: var(--xy-sprout-ink);
  --a115-accent: var(--xy-lime);
  --a115-accent-deep: #b4d63a;
  --a115-background: var(--xy-pith);
  --a115-surface: var(--xy-surface);
  --a115-text: var(--xy-charcoal);
  --a115-mute: var(--xy-mute);
  --a115-border: var(--xy-line);
  --a115-night: var(--xy-charcoal-deep);
  --a115-on-primary: var(--xy-lime);
  --a115-on-secondary: #f4fff6;
  --a115-on-accent: var(--xy-charcoal-deep);
  --a115-ok: var(--xy-sprout);
  --a115-err: var(--xy-err);

  --a115-font-display: var(--xy-display);
  --a115-font-body: var(--xy-font);

  --a115-space-1: 8px;
  --a115-space-2: 16px;
  --a115-space-3: 24px;
  --a115-space-4: 32px;
  --a115-space-5: 48px;
  --a115-space-6: 64px;

  --a115-radius-sm: var(--xy-radius-sm);
  --a115-radius-md: var(--xy-radius);
  --a115-radius-lg: 28px;
  --a115-radius-lens: 50%;

  --a115-shadow-soft: var(--xy-shadow);
  --a115-shadow-plate: var(--xy-shadow);
  --a115-ease: var(--xy-ease);

  --a115-nav-h: 236px;
  --a115-nav-h-mobile: 168px;
  --a115-nav-offset: var(--a115-nav-h);
  --xr-dock: 64px;
  --a115-max: 1160px;

  --a115-type-xs: clamp(0.72rem, 0.68rem + 0.2vw, 0.8rem);
  --a115-type-sm: clamp(0.86rem, 0.82rem + 0.2vw, 0.94rem);
  --a115-type-md: clamp(0.98rem, 0.94rem + 0.2vw, 1.06rem);
  --a115-type-lg: clamp(1.15rem, 1.05rem + 0.4vw, 1.35rem);
  --a115-type-xl: clamp(1.7rem, 1.4rem + 1.1vw, 2.4rem);
  --a115-type-display: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem);

  --se-crimson: var(--xy-charcoal);
  --se-crimson-deep: var(--xy-charcoal-deep);
  --se-signal: var(--xy-sprout);
  --se-signal-deep: var(--xy-sprout-ink);
  --se-amber: var(--xy-lime);
  --se-amber-deep: var(--a115-accent-deep);
  --se-wash: var(--xy-pith);
  --se-surface: var(--xy-surface);
  --se-ink: var(--xy-charcoal);
  --se-mute: var(--xy-mute);
  --se-line: var(--xy-line);
  --se-rose: var(--xy-bark);
  --se-clear: var(--xy-sprout);
  --se-night: var(--xy-charcoal-deep);
  --se-on-crimson: var(--xy-lime);
  --se-on-signal: #f4fff6;
  --se-on-amber: var(--xy-charcoal-deep);
  --se-on-night: var(--xy-pith);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body.a115-body {
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  font-family: var(--a115-font-body);
  font-size: var(--a115-type-md);
  line-height: 1.55;
  color: var(--a115-text);
  background:
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(106, 74, 44, 0.03) 2px,
      rgba(106, 74, 44, 0.03) 3px
    ),
    var(--a115-background);
}

/* Labels & chrome copy: relative document flow only (never sticky/fixed) */
label:not(.visually-hidden):not([class*="skip"]),
[class*="-label"],
[class*="_label"],
.a115-kicker,
[class*="-kicker"],
.xr-pith-text,
.xr-knot-label,
.xr-chip,
.xr-tab span,
.sl-ring-title,
.sp-meter-label,
.vc-opt-label,
.pr-status-label,
.wd-fact-label,
.mx-label,
.cf-kicker,
.cf-bloom-kicker {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
}
label.visually-hidden {
  position: absolute !important;
}

.a115-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 9999;
  padding: 12px 18px;
  background: var(--xy-lime);
  color: var(--xy-charcoal-deep);
  font-weight: 800;
  text-decoration: none;
  border-radius: var(--xy-radius-pill);
}
.a115-skip:focus { left: 12px; top: 12px; }

.a115-wrap {
  width: min(var(--a115-max), calc(100% - 2 * var(--a115-space-3)));
  margin-inline: auto;
}

.a115-kicker {
  margin: 0 0 0.35em;
  font-size: var(--a115-type-xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--xy-bark);
}

.a115-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45em;
  min-height: 46px;
  padding: 0.7em 1.3em;
  border: 2px solid transparent;
  border-radius: var(--xy-radius-pill);
  font-family: var(--xy-font);
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s var(--xy-ease), background 0.2s, box-shadow 0.2s;
}
.a115-btn--primary,
.a115-btn--accent {
  background: var(--xy-charcoal);
  color: var(--xy-lime);
}
.a115-btn--primary:hover,
.a115-btn--accent:hover { background: var(--xy-charcoal-deep); }
.a115-btn--secondary {
  background: var(--xy-sprout);
  color: #f4fff6;
}
.a115-btn--ghost {
  background: var(--xy-surface);
  color: var(--xy-charcoal);
  border-color: var(--xy-line);
}
.a115-btn--ghost:hover { border-color: var(--xy-sprout); }
.a115-btn:focus-visible {
  outline: 3px solid var(--xy-sprout);
  outline-offset: 2px;
}
.a115-btn:disabled,
.a115-btn.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.a115-field { display: flex; flex-direction: column; gap: 0.35em; }
.a115-field span {
  font-size: var(--a115-type-xs);
  font-weight: 800;
  color: var(--xy-bark);
}
.a115-field input,
.a115-field select,
.a115-field textarea {
  width: 100%;
  min-height: 46px;
  padding: 0.75em 1em;
  border: 2px solid var(--xy-line);
  border-radius: var(--xy-radius-sm);
  background: var(--xy-surface);
  color: var(--xy-charcoal);
  font: inherit;
}
.a115-field input:focus-visible,
.a115-field select:focus-visible,
.a115-field textarea:focus-visible {
  outline: none;
  border-color: var(--xy-sprout);
  box-shadow: 0 0 0 3px rgba(47, 155, 68, 0.28);
}

a:focus-visible,
button:focus-visible,
[type="button"]:focus-visible,
[type="submit"]:focus-visible,
[type="search"]:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--xy-sprout);
  outline-offset: 2px;
}

.a115-notice {
  padding: var(--a115-space-2);
  border-radius: var(--xy-radius-sm);
  background: #e4f6e8;
  border: 2px solid var(--xy-sprout);
  color: var(--xy-charcoal);
}
.a115-notice--err {
  background: #fde8ee;
  border-color: var(--xy-err);
}

.xy-card {
  background: var(--xy-surface);
  border-radius: var(--xy-radius);
  box-shadow: var(--xy-shadow);
  color: inherit;
  text-decoration: none;
}
.xy-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--xy-radius-pill);
  background: var(--xy-lime);
  color: var(--xy-charcoal-deep);
  font-size: 0.72rem;
  font-weight: 800;
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
