/* Wellspring landing — brand tokens mirror /branding/tokens.json */
:root {
  --ws-primary:#2E7D5F;
  --ws-primary-dark:#1F5A44;
  --ws-primary-light:#3A9A77;
  --ws-accent:#F3E9D2;
  --ws-accent-dark:#D9C9A3;
  --ws-sky:#7BB7C9;
  --ws-ink:#1A2B2B;
  --ws-ink-muted:#4F6363;
  --ws-surface:#FFFFFF;
  --ws-surface-alt:#F7F5EF;
  --ws-border:#E3E1DB;
  --ws-danger:#B7424A;
  --ws-radius-card:12px;
  --ws-radius-control:8px;
  --ws-max:1120px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--ws-surface);color:var(--ws-ink);
  font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Fraunces,Lora,Georgia,serif;font-weight:600;color:var(--ws-ink);margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(36px,5vw,56px);line-height:1.08}
h2{font-size:clamp(26px,3vw,36px);line-height:1.15;margin-bottom:.4em}
h3{font-size:20px;line-height:1.3;font-family:Inter,sans-serif;font-weight:600}
p{margin:0 0 1em}
a{color:var(--ws-primary);text-decoration:none}
a:hover{text-decoration:underline}

/* header */
.ws-header{display:flex;align-items:center;gap:16px;padding:18px 32px;
  border-bottom:1px solid var(--ws-border);background:var(--ws-surface);
  position:sticky;top:0;z-index:10}
.ws-brand{display:flex;align-items:center;gap:12px;color:var(--ws-ink)}
.ws-brand:hover{text-decoration:none}
.ws-mark{height:40px;width:40px;display:block}
.ws-wordmark{font-family:Fraunces,serif;font-weight:600;font-size:22px;color:var(--ws-ink)}
.ws-nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.ws-nav a{color:var(--ws-ink-muted);font-weight:500;font-size:14px;padding:8px 14px;border-radius:var(--ws-radius-control)}
.ws-nav a:hover{background:var(--ws-surface-alt);color:var(--ws-ink);text-decoration:none}

/* hero */
.ws-hero{background:
    radial-gradient(1000px 500px at 90% -10%, rgba(123,183,201,.22), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(58,154,119,.18), transparent 60%),
    linear-gradient(180deg,#FAFBF7 0%,#F3F1EA 100%);
  padding:clamp(48px,7vw,96px) 32px}
.ws-hero-inner{max-width:var(--ws-max);margin:0 auto}
.ws-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:600;color:var(--ws-primary);margin-bottom:14px}
.ws-lede{font-size:clamp(17px,2vw,20px);color:var(--ws-ink-muted);max-width:60ch;margin-top:8px}
.ws-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.ws-button{display:inline-block;padding:13px 22px;background:var(--ws-primary);color:#fff;
  border-radius:var(--ws-radius-control);font-weight:600;font-size:15px;transition:background .2s}
.ws-button:hover{background:var(--ws-primary-dark);text-decoration:none}
.ws-button-ghost{background:transparent;color:var(--ws-primary);border:1px solid var(--ws-primary)}
.ws-button-ghost:hover{background:var(--ws-accent)}

/* quote banner — the rotating marquee */
.ws-quote-banner{background:var(--ws-primary-dark);color:var(--ws-accent);
  padding:56px 32px 44px;position:relative;overflow:hidden}
.ws-quote-banner::before,.ws-quote-banner::after{content:'';position:absolute;border-radius:50%;
  background:radial-gradient(circle,rgba(243,233,210,.14),transparent 70%);pointer-events:none}
.ws-quote-banner::before{width:460px;height:460px;left:-140px;top:-180px}
.ws-quote-banner::after{width:520px;height:520px;right:-180px;bottom:-240px}
.ws-quote-inner{max-width:820px;margin:0 auto;position:relative;min-height:180px}
.ws-quote{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;text-align:center}
.ws-quote[data-active="true"]{opacity:1;position:relative}
.ws-quote blockquote{font-family:Fraunces,Lora,Georgia,serif;font-weight:500;
  font-size:clamp(20px,2.4vw,28px);line-height:1.35;margin:0 0 22px;color:#FFF8E6}
.ws-quote cite{display:block;font-style:normal;font-size:14px;
  color:rgba(243,233,210,.78);letter-spacing:.02em}
.ws-quote cite em{font-style:italic;color:rgba(243,233,210,.95)}
.ws-quote-dots{display:flex;gap:8px;justify-content:center;margin-top:32px;position:relative}
.ws-quote-dots button{width:8px;height:8px;border-radius:999px;background:rgba(243,233,210,.35);
  border:none;padding:0;cursor:pointer;transition:background .2s,transform .2s}
.ws-quote-dots button[aria-selected="true"]{background:var(--ws-accent);transform:scale(1.25)}

/* practice */
.ws-practice{max-width:var(--ws-max);margin:0 auto;padding:clamp(56px,7vw,96px) 32px}
.ws-section-lede{color:var(--ws-ink-muted);max-width:56ch;margin-bottom:32px;font-size:17px}
.ws-practice-grid{list-style:none;padding:0;margin:0;display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.ws-practice-grid li{background:var(--ws-surface-alt);border:1px solid var(--ws-border);
  padding:22px 22px 20px;border-radius:var(--ws-radius-card);transition:transform .2s,border-color .2s}
.ws-practice-grid li:hover{transform:translateY(-2px);border-color:var(--ws-primary-light)}
.ws-practice-grid strong{display:block;font-size:17px;font-weight:600;color:var(--ws-primary-dark);margin-bottom:4px}
.ws-practice-grid span{color:var(--ws-ink-muted);font-size:14px}

/* events */
.ws-events{background:var(--ws-surface-alt);padding:clamp(56px,7vw,96px) 32px;border-top:1px solid var(--ws-border);border-bottom:1px solid var(--ws-border)}
.ws-events > h2{max-width:var(--ws-max);margin:0 auto .6em}
.ws-event-list{max-width:var(--ws-max);margin:0 auto;list-style:none;padding:0;
  display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.ws-event-list li{display:flex;gap:20px;background:var(--ws-surface);border:1px solid var(--ws-border);
  border-radius:var(--ws-radius-card);padding:22px;align-items:flex-start}
.ws-event-date{flex-shrink:0;width:74px;background:var(--ws-accent);color:var(--ws-primary-dark);
  border-radius:var(--ws-radius-control);padding:10px 0;text-align:center;font-weight:600}
.ws-event-date .day{display:block;font-size:28px;font-family:Fraunces,serif;line-height:1}
.ws-event-date .month{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-top:4px}
.ws-event-date .year{display:block;font-size:11px;color:var(--ws-ink-muted);margin-top:2px}
.ws-event-body h3{margin:0 0 6px;font-family:Fraunces,serif;font-size:19px}
.ws-event-body p{margin:0 0 6px;color:var(--ws-ink-muted);font-size:15px}
.ws-event-meta{font-size:13px !important;color:var(--ws-ink-muted) !important}

/* visit */
.ws-visit{max-width:var(--ws-max);margin:0 auto;padding:clamp(56px,7vw,96px) 32px}
.ws-visit-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}
.ws-visit-grid > div{padding:22px;background:var(--ws-surface-alt);
  border:1px solid var(--ws-border);border-radius:var(--ws-radius-card)}
.ws-visit-grid h3{margin:0 0 6px;color:var(--ws-primary-dark);font-size:18px}
.ws-visit-grid p{margin:0 0 4px;color:var(--ws-ink-muted);font-size:15px}

/* footer */
.ws-footer{border-top:1px solid var(--ws-border);padding:28px 32px;background:var(--ws-surface)}
.ws-footer-inner{max-width:var(--ws-max);margin:0 auto;display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap;color:var(--ws-ink-muted);font-size:14px}
.ws-footer-muted{font-family:Fraunces,serif;font-style:italic;color:var(--ws-primary)}

@media (max-width:640px){
  .ws-header{padding:14px 18px}
  .ws-nav{display:none}
  .ws-hero,.ws-events,.ws-practice,.ws-visit,.ws-quote-banner{padding-left:18px;padding-right:18px}
}
