/* DairyCore public site: shared look for landing, for-* pages, legal and auth. Loaded after dc-ui.css. */
:root{
  --s-ink:#0b2b2a; --s-ink-2:#12403d; --s-green:#00b894; --s-green-hi:#3de0b8; --s-leaf:#2e9b4f;
  --s-sun:#ffb648; --s-sky:#4f8cff; --s-mint:#e8faf4; --s-milk:#f6fbfa; --s-line:#d8ece6;
  --s-display:'Bricolage Grotesque','Figtree',system-ui,sans-serif; --s-body:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
}
html{scroll-behavior:smooth}
body.dc-public,body.dc-auth-body{font-family:var(--s-body);color:#17302e;background:var(--s-milk)}
.dc-public h1,.dc-public h2,.dc-public h3,.dc-public .brand{font-family:var(--s-display);letter-spacing:-.02em}
.dc-public h1{font-weight:800}
.dc-public h2{font-weight:700;font-size:clamp(1.7rem,3vw,2.5rem)}

/* scroll progress + condensing nav */
.s-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:1100;background:linear-gradient(90deg,var(--s-green),var(--s-sun),var(--s-sky));transform-origin:0 50%;transform:scaleX(0)}
.dc-public .landing-nav,.dc-public .public-nav{transition:padding .25s,box-shadow .25s,background .25s}
.dc-public.is-scrolled .landing-nav,.dc-public.is-scrolled .public-nav{box-shadow:0 8px 30px -14px rgba(11,43,42,.35);background:rgba(255,255,255,.96)}

/* buttons: one pill language everywhere */
.dc-public .btn{border-radius:999px;font-weight:700;padding:.6rem 1.25rem;transition:transform .18s,box-shadow .18s,background .18s,color .18s}
.dc-public .btn-hero-primary,.dc-public .btn-success,.dc-public .btn-primary{background:var(--s-green);border-color:var(--s-green);color:var(--s-ink);box-shadow:0 10px 24px -10px rgba(0,184,148,.8)}
.dc-public .btn-hero-primary:hover,.dc-public .btn-success:hover,.dc-public .btn-primary:hover{background:var(--s-green-hi);border-color:var(--s-green-hi);color:var(--s-ink);transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(0,184,148,.9)}
.dc-public .btn-hero-secondary,.dc-public .btn-outline-success,.dc-public .btn-outline-primary,.dc-public .btn-outline-secondary{background:#fff;border:1.5px solid var(--s-ink);color:var(--s-ink)}
.dc-public .btn-hero-secondary:hover,.dc-public .btn-outline-success:hover,.dc-public .btn-outline-primary:hover,.dc-public .btn-outline-secondary:hover{background:var(--s-ink);color:#fff;transform:translateY(-2px)}

/* cards */
.dc-public .card{border:1px solid var(--s-line);border-radius:1.25rem;box-shadow:0 1px 0 rgba(11,43,42,.03);transition:transform .25s,box-shadow .25s,border-color .25s}
.dc-public .card.h-100:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(11,43,42,.35);border-color:var(--s-green)}

/* hero */
.hero{background:radial-gradient(900px 480px at 88% -8%,rgba(61,224,184,.30),transparent 60%),radial-gradient(700px 420px at -5% 10%,rgba(255,182,72,.20),transparent 60%),linear-gradient(180deg,#fff 0%,var(--s-mint) 100%)!important}
.hero h1{color:var(--s-ink)}
.hero h1 .accent{background:linear-gradient(100deg,var(--s-green),var(--s-leaf));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-visual{background:linear-gradient(160deg,var(--s-ink) 0%,var(--s-ink-2) 100%)!important;border-radius:1.75rem!important;padding:1.4rem!important;box-shadow:0 40px 70px -30px rgba(11,43,42,.7);position:relative;overflow:hidden}
.hero-visual::before{content:"";position:absolute;width:300px;height:300px;right:-90px;top:-110px;background:radial-gradient(circle,rgba(61,224,184,.35),transparent 65%)}
.hero-stat{background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.1);border-radius:1rem!important;padding:.9rem 1rem!important;position:relative}
.hero-stat .num{font-family:var(--s-display);font-size:clamp(1.9rem,3.2vw,2.7rem)!important;line-height:1.05;font-weight:800;letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums}
.hero-stat .lbl{color:#9fd8cb!important;font-size:.8rem!important;margin-top:.15rem}
.hero-stat .wk{display:inline-block;margin-top:.35rem;font-size:.72rem;font-weight:700;color:var(--s-green-hi);background:rgba(61,224,184,.12);border-radius:999px;padding:.1rem .5rem}
.hero-spark{width:100%;height:84px;display:block;margin:.2rem 0 .6rem}
.hero-spark path.line{fill:none;stroke:var(--s-green-hi);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.hero-spark path.fill{fill:url(#sparkFill);opacity:0}
.hero-spark.is-in path.line{animation:s-draw 2.2s .2s cubic-bezier(.6,0,.2,1) forwards}
.hero-spark.is-in path.fill{animation:s-fade 1s 1.6s forwards}
.hero-spark circle{fill:var(--s-sun);opacity:0}
.hero-spark.is-in circle{animation:s-fade .4s 2.2s forwards}
@keyframes s-draw{to{stroke-dashoffset:0}}
@keyframes s-fade{to{opacity:1}}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--s-green-hi);margin-right:.35rem;box-shadow:0 0 0 0 rgba(61,224,184,.7);animation:s-pulse 2s infinite}
@keyframes s-pulse{70%{box-shadow:0 0 0 9px rgba(61,224,184,0)}100%{box-shadow:0 0 0 0 rgba(61,224,184,0)}}

/* scroll reveal: one gentle stagger, only where JS is on */
.js .s-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .s-reveal.is-in{opacity:1;transform:none}
.js .s-reveal:nth-child(2){transition-delay:.08s}.js .s-reveal:nth-child(3){transition-delay:.16s}.js .s-reveal:nth-child(4){transition-delay:.24s}

/* section rhythm: alternate milk, mint, ink */
.dc-public section:nth-of-type(even){background-color:#fff}
.dc-public .py-5.bg-light,.dc-public .bg-light{background:var(--s-mint)!important}
.dc-public footer{background:var(--s-ink)!important;color:#b9d8d1}
.dc-public footer a{color:#d9f3ec}.dc-public footer a:hover{color:var(--s-green-hi)}
.dc-public .badge.bg-success{background:var(--s-mint)!important;color:var(--s-ink-2)!important;border:1px solid var(--s-line)}
.dc-public .form-control,.dc-public .form-select{border-radius:.85rem;border-color:#cfe5de}
.dc-public .form-control:focus,.dc-public .form-select:focus{border-color:var(--s-green);box-shadow:0 0 0 .25rem rgba(0,184,148,.2)}
.dc-public a:focus-visible,.dc-public .btn:focus-visible{outline:3px solid var(--s-sun);outline-offset:3px}

/* auth pages */
.dc-auth-body{background:radial-gradient(800px 420px at 90% -10%,rgba(61,224,184,.28),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(255,182,72,.18),transparent 60%),var(--s-milk)}
.dc-auth-body .card{border-radius:1.5rem;border:1px solid var(--s-line);box-shadow:0 30px 60px -34px rgba(11,43,42,.45)}
.dc-auth-body .btn{border-radius:999px;font-weight:700}
.dc-auth-body .btn-success,.dc-auth-body .btn-primary{background:var(--s-green);border-color:var(--s-green);color:var(--s-ink)}
.dc-auth-body .btn-success:hover,.dc-auth-body .btn-primary:hover{background:var(--s-green-hi);border-color:var(--s-green-hi);color:var(--s-ink)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .s-reveal{opacity:1;transform:none;transition:none}
  .hero-spark path.line{stroke-dashoffset:0;animation:none!important}.hero-spark path.fill,.hero-spark circle{opacity:1;animation:none!important}
  .live-dot{animation:none}
}
