/* =====================================================================
   Srinidhi Biotech — theme from the Claude Design mockup.
   Loaded after site.css; every component here is prefixed .sb-
   ===================================================================== */

:root{
  --sb-bg:#f7f5ee; --sb-sand:#efece1; --sb-ink:#10180f; --sb-ink-2:#1a2417;
  --sb-forest:#143b22; --sb-deep:#0f2c19; --sb-green:#1e5c33; --sb-leaf:#4b9b3f;
  --sb-lime:#8cc63f; --sb-lime-2:#a8d46a; --sb-lime-3:#b7dc85; --sb-cream:#f3f2e8;
  --sb-muted:#4a5545; --sb-muted-2:#626c5d; --sb-muted-3:#3d4a38;
  --sb-blue:#2b7fb8; --sb-sky:#7cc3ea; --sb-ice:#cfe6f4;
  --sb-line:rgba(20,59,34,.12);
  --sb-serif:'Newsreader',Georgia,serif;
  --sb-sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --sb-ease:cubic-bezier(.16,1,.3,1);
  --brand:#1e5c33;
}

@keyframes sbRise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes sbFade{from{opacity:0}to{opacity:1}}
@keyframes sbDrift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(36px,-28px) scale(1.12)}100%{transform:translate(0,0) scale(1)}}
@keyframes sbSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes sbMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes sbGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sbZoom{from{transform:scale(1.09)}to{transform:scale(1)}}
@keyframes sbPulse{0%,100%{opacity:.25;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}
@keyframes sbTravel{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:100%;opacity:0}}

/* --------------------------------------------------------------- base */
body.sb-theme{
  margin:0; background:var(--sb-bg); color:var(--sb-ink);
  font-family:var(--sb-sans); font-size:1rem; line-height:1.5;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.sb-theme a{ color:var(--sb-green); text-decoration:none; }
.sb-theme a:hover{ color:var(--sb-leaf); }
.sb-theme ::selection{ background:#c9e7a8; color:var(--sb-ink); }
.sb-theme main{ display:block; }

.sb-wrap{ width:100%; max-width:1240px; margin:0 auto; padding-inline:clamp(20px,4vw,40px); }
.sb-section{ padding-block:clamp(56px,7vw,104px); }
.sb-section--intro{ padding-block:clamp(44px,5vw,76px); }
.sb-section--flush-top{ padding-top:0; }
.sb-bg-sand{ background:var(--sb-sand); }
.sb-bg-deep{ background:var(--sb-deep); color:var(--sb-cream); }
.sb-bg-forest{ background:var(--sb-forest); color:var(--sb-cream); }

.sb-kicker{ font-size:11.5px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--sb-leaf); }
.sb-bg-deep .sb-kicker, .sb-bg-forest .sb-kicker{ color:var(--sb-lime); }
.sb-kicker--sky{ color:var(--sb-sky) !important; }

.sb-h1{ font-family:var(--sb-serif); font-weight:400; font-size:clamp(34px,4.6vw,62px); line-height:1.06; letter-spacing:-.02em; margin:16px 0 0; max-width:20ch; text-wrap:balance; color:inherit; }
.sb-h1--xl{ font-size:clamp(36px,5vw,68px); line-height:1.05; max-width:18ch; }
.sb-h2{ font-family:var(--sb-serif); font-weight:400; font-size:clamp(30px,3.7vw,50px); line-height:1.08; letter-spacing:-.02em; margin:12px 0 0; text-wrap:balance; color:inherit; }
.sb-h2--sm{ font-size:clamp(28px,3.2vw,42px); line-height:1.12; }
.sb-lead{ font-size:15.5px; line-height:1.68; color:var(--sb-muted); margin:18px 0 0; max-width:600px; }
.sb-bg-deep .sb-lead, .sb-bg-forest .sb-lead{ color:rgba(243,242,232,.78); }
.sb-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:38px; }
.sb-head-row > p{ max-width:380px; margin:0; font-size:15px; line-height:1.65; color:var(--sb-muted); }
.sb-note{ margin:26px 0 0; font-size:13px; color:#6b7566; max-width:70ch; }
.sb-img{ width:100%; height:100%; object-fit:cover; display:block; background:#dfe6d6; }
.sb-rounded{ position:relative; border-radius:18px; overflow:hidden; background:#dfe6d6; }

.sb-reveal{ animation:sbRise .8s var(--sb-ease) both; }
@supports (animation-timeline: view()){
  .sb-reveal{ animation-timeline:view(); animation-range:entry 0% cover 28%; }
}

/* ------------------------------------------------------------ buttons */
.sb-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 26px; border-radius:999px; border:1px solid transparent;
  font-weight:800; font-size:14.5px; line-height:1.2; letter-spacing:.01em;
  cursor:pointer; text-decoration:none; transition:background .25s,border-color .25s,color .25s;
}
.sb-btn--lime{ background:var(--sb-lime); color:var(--sb-deep) !important; }
.sb-btn--lime:hover{ background:var(--sb-lime-2); }
.sb-btn--ghost{ background:rgba(15,44,25,.3); border-color:rgba(243,242,232,.4); color:var(--sb-cream) !important; font-weight:700; }
.sb-btn--ghost:hover{ background:rgba(243,242,232,.14); border-color:rgba(243,242,232,.7); }
.sb-btn--dark{ background:var(--sb-forest); color:var(--sb-cream) !important; font-weight:700; padding:13px 22px; font-size:13.5px; }
.sb-btn--dark:hover{ background:var(--sb-green); }
.sb-btn--cream{ background:var(--sb-bg); color:var(--sb-ink) !important; }
.sb-btn--cream:hover{ background:#fff; }
.sb-btn--blue{ background:var(--sb-blue); color:#fff !important; padding:14px 24px; font-size:14px; }
.sb-btn--blue:hover{ background:#3d95cf; }
.sb-btn--outline{ border-color:rgba(20,59,34,.28); color:var(--sb-forest) !important; font-weight:700; padding:14px 24px; font-size:14px; }
.sb-btn--outline:hover{ background:var(--sb-bg); border-color:var(--sb-leaf); }
.sb-btn--sm{ padding:12px 22px; font-size:13px; }
.sb-btn-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.sb-arrow{ font-size:17px; line-height:1; }

/* ------------------------------------------------------------- header */
.sb-header{
  position:sticky; top:0; z-index:1030;
  background:rgba(247,245,238,.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--sb-line);
}
.sb-topbar{ background:var(--sb-forest); color:rgba(243,242,232,.82); }
.sb-topbar-in{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:8px; font-size:12px; font-weight:600; letter-spacing:.02em; }
.sb-topbar-group{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.sb-topbar-item{ display:flex; align-items:center; gap:8px; color:inherit !important; }
a.sb-topbar-item:hover{ color:#fff !important; }

.sb-header-in{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:10px; }
.sb-logo{ display:block; width:200px; height:84px; flex:none; }
.sb-logo img{ width:100%; height:100%; object-fit:contain; object-position:left center; display:block; }

.sb-nav{ display:flex; align-items:center; gap:clamp(4px,1.6vw,10px); flex-wrap:wrap; }
.sb-nav-link{
  position:relative; display:flex; align-items:center; gap:7px; padding:9px 14px;
  font-size:14px; font-weight:600; letter-spacing:.01em; color:var(--sb-ink-2) !important;
}
.sb-nav-link:hover{ color:var(--sb-leaf) !important; }
.sb-nav-link.is-active::after{
  content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px;
  background:var(--sb-leaf); transform-origin:left; animation:sbGrowX .35s var(--sb-ease) both;
}
.sb-nav-item{ position:relative; }
.sb-sub{
  position:absolute; top:100%; left:0; min-width:220px; padding:8px; display:none;
  background:#fff; border:1px solid var(--sb-line); border-radius:14px; box-shadow:0 18px 40px rgba(15,44,25,.14);
}
.sb-nav-item:hover .sb-sub, .sb-nav-item:focus-within .sb-sub{ display:block; }
.sb-sub a{ display:block; padding:9px 12px; border-radius:9px; font-size:14px; font-weight:600; color:var(--sb-ink-2) !important; }
.sb-sub a:hover{ background:var(--sb-sand); color:var(--sb-leaf) !important; }

.sb-call{
  display:flex; align-items:center; gap:9px; margin-left:8px; padding:11px 18px; border-radius:999px;
  background:var(--sb-forest); color:var(--sb-bg) !important; font-size:13.5px; font-weight:700; letter-spacing:.01em;
}
.sb-call:hover{ background:var(--sb-green); color:#fff !important; }
.sb-pulse{ width:7px; height:7px; border-radius:50%; background:var(--sb-lime); animation:sbPulse 2s ease-in-out infinite; }

.sb-menu-toggle{
  display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--sb-line);
  background:transparent; align-items:center; justify-content:center; padding:0;
}

@media (max-width: 991.98px){
  .sb-menu-toggle{ display:inline-flex; }
  .sb-logo{ width:160px; height:64px; }
  .sb-nav{
    display:none; position:absolute; left:0; right:0; top:100%;
    flex-direction:column; align-items:stretch; gap:2px;
    background:var(--sb-bg); padding:10px clamp(20px,4vw,40px) 20px;
    border-bottom:1px solid var(--sb-line); box-shadow:0 22px 40px rgba(15,44,25,.14);
  }
  .sb-header.is-open .sb-nav{ display:flex; }
  .sb-nav-link{ padding:12px 6px; }
  .sb-nav-link.is-active::after{ left:6px; right:auto; width:40px; }
  .sb-sub{ position:static; display:block; box-shadow:none; border:0; background:transparent; padding:0 0 6px 28px; }
  .sb-call{ margin:10px 0 0; justify-content:center; }
}
@media (max-width: 640px){
  .sb-topbar-in{ justify-content:center; text-align:center; }
  .sb-topbar-group{ display:none; }
}

/* --------------------------------------------------------- hero slider */
.sb-hero{ position:relative; background:var(--sb-deep); color:var(--sb-cream); overflow:hidden; }
.sb-hero-stage{ position:relative; min-height:clamp(520px,74vh,700px); display:flex; flex-direction:column; justify-content:center; }
.sb-hero-bg{ position:absolute; inset:0; opacity:0; transition:opacity 1.1s cubic-bezier(.4,0,.2,1); }
.sb-hero-bg.is-active{ opacity:1; }
.sb-hero-bg-img{ position:absolute; inset:0; background-size:cover; background-position:center; }
.sb-hero-bg.is-active .sb-hero-bg-img{ animation:sbZoom 12s ease-out both; }
.sb-hero-scrim{
  pointer-events:none; position:absolute; inset:0;
  background:linear-gradient(100deg,rgba(15,44,25,.97) 0%,rgba(15,44,25,.93) 44%,rgba(15,44,25,.6) 76%,rgba(15,44,25,.78) 100%);
}
.sb-orb{ pointer-events:none; position:absolute; border-radius:50%; }
.sb-orb--lime{ width:620px; height:620px; left:-200px; top:-240px; background:radial-gradient(circle at 40% 40%,rgba(140,198,63,.3),rgba(140,198,63,0) 68%); animation:sbDrift 18s ease-in-out infinite; }
.sb-orb--blue{ width:660px; height:660px; right:-260px; bottom:-320px; background:radial-gradient(circle at 50% 50%,rgba(43,127,184,.3),rgba(43,127,184,0) 66%); animation:sbDrift 24s ease-in-out infinite reverse; }

.sb-hero-content{ position:relative; width:100%; max-width:1240px; margin:0 auto; padding:clamp(44px,5.5vw,84px) clamp(20px,4vw,40px) clamp(28px,3vw,40px); }
.sb-hero-stack{ position:relative; display:grid; }
.sb-slide{
  grid-area:1 / 1; display:flex; flex-direction:column; justify-content:center;
  opacity:0; visibility:hidden; pointer-events:none; transform:translateY(18px);
  transition:opacity .9s cubic-bezier(.4,0,.2,1), transform 1.1s var(--sb-ease), visibility 0s linear .9s;
}
.sb-slide.is-active{
  opacity:1; visibility:visible; pointer-events:auto; transform:none;
  transition:opacity .9s cubic-bezier(.4,0,.2,1), transform 1.1s var(--sb-ease), visibility 0s;
}
.sb-badge{
  display:inline-flex; align-self:flex-start; align-items:center; gap:10px; padding:7px 15px 7px 9px;
  border:1px solid rgba(140,198,63,.45); border-radius:999px; background:rgba(15,44,25,.4);
  font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--sb-lime-3);
}
.sb-dot{ display:inline-block; flex:none; width:6px; height:6px; border-radius:50%; background:var(--sb-lime); }
.sb-hero-title{
  font-family:var(--sb-serif); font-weight:400; font-size:clamp(36px,5.2vw,70px); line-height:1.04;
  letter-spacing:-.022em; margin:20px 0 0; max-width:19ch; text-wrap:balance; color:var(--sb-cream);
}
.sb-hero-body{ max-width:52ch; margin:20px 0 0; font-size:clamp(15px,1.35vw,17.5px); line-height:1.65; color:rgba(243,242,232,.86); }

.sb-hero-controls{ position:relative; z-index:2; width:100%; max-width:1240px; margin:0 auto; padding:0 clamp(20px,4vw,40px) clamp(24px,2.8vw,36px); }
.sb-hero-bar{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; border-top:1px solid rgba(243,242,232,.18); padding-top:clamp(16px,1.8vw,22px); }
.sb-progress{ display:flex; align-items:center; gap:14px; flex:1 1 auto; max-width:680px; }
.sb-progress-item{ display:flex; flex-direction:column; gap:9px; min-width:74px; max-width:150px; flex:1 1 74px; cursor:pointer; background:none; border:0; padding:0; text-align:left; color:inherit; }
.sb-progress-track{ height:3px; border-radius:999px; background:rgba(243,242,232,.28); overflow:hidden; }
.sb-progress-fill{ height:100%; width:0; background:var(--sb-lime); transition:width .6s var(--sb-ease); }
.sb-progress-item.is-active .sb-progress-fill{ width:100%; }
.sb-progress-label{ font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(243,242,232,.55); transition:color .4s; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sb-progress-item.is-active .sb-progress-label{ color:var(--sb-cream); }
.sb-hero-nav{ display:flex; align-items:center; gap:10px; }
.sb-counter{ font-size:12.5px; font-weight:700; letter-spacing:.1em; color:rgba(243,242,232,.7); font-variant-numeric:tabular-nums; }
.sb-round-btn{
  width:40px; height:40px; border-radius:50%; padding:0; cursor:pointer;
  border:1px solid rgba(243,242,232,.42); background:rgba(15,44,25,.45); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; transition:background .25s,border-color .25s;
}
.sb-round-btn:hover{ background:var(--sb-lime); border-color:var(--sb-lime); }

.sb-ticker{ position:relative; border-top:1px solid rgba(243,242,232,.14); overflow:hidden; padding:16px 0; }
.sb-ticker-track{ display:flex; width:max-content; animation:sbMarquee 34s linear infinite; }
.sb-ticker-row{ display:flex; align-items:center; gap:30px; padding-right:30px; }
.sb-ticker-word{ display:flex; align-items:center; gap:30px; font-size:12.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(243,242,232,.6); white-space:nowrap; }
.sb-ticker-word .sb-dot{ width:5px; height:5px; }

@media (prefers-reduced-motion: reduce){
  .sb-ticker-track, .sb-orb, .sb-hero-bg.is-active .sb-hero-bg-img{ animation:none; }
}

/* ---------------------------------------------------------- divisions */
.sb-grid-2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; }
.sb-div-card{
  position:relative; overflow:hidden; border-radius:24px; padding:clamp(28px,3vw,42px); min-height:430px;
  display:flex; flex-direction:column; transition:transform .45s var(--sb-ease), box-shadow .45s;
}
.sb-div-card:hover{ transform:translateY(-8px); }
.sb-div-card--green{ background:linear-gradient(160deg,#1e5c33,#0f2c19); color:var(--sb-cream) !important; }
.sb-div-card--green:hover{ box-shadow:0 28px 60px rgba(15,44,25,.32); }
.sb-div-card--blue{ background:linear-gradient(160deg,#2b7fb8,#12405f); color:#f2f8fc !important; }
.sb-div-card--blue:hover{ box-shadow:0 28px 60px rgba(18,64,95,.32); }
.sb-div-ring{ position:absolute; right:-70px; top:-70px; width:280px; height:280px; border-radius:50%; border:1px solid rgba(140,198,63,.28); animation:sbSpin 40s linear infinite; }
.sb-div-card--blue .sb-div-ring{ border-color:rgba(207,230,244,.3); animation-duration:46s; animation-direction:reverse; }
.sb-div-glow{ position:absolute; right:-30px; top:-30px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle,rgba(140,198,63,.22),transparent 70%); }
.sb-div-lines{ position:absolute; inset:0; opacity:.2; background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.5) 0 1px,transparent 1px 26px); -webkit-mask-image:linear-gradient(200deg,#000,transparent 60%); mask-image:linear-gradient(200deg,#000,transparent 60%); }
.sb-div-num{ position:relative; font-family:var(--sb-serif); font-size:56px; line-height:1; color:rgba(140,198,63,.5); }
.sb-div-card--blue .sb-div-num{ color:rgba(207,230,244,.55); }
.sb-div-title{ position:relative; font-family:var(--sb-serif); font-weight:400; font-size:clamp(26px,2.6vw,36px); line-height:1.14; margin:16px 0 0; color:inherit; }
.sb-div-text{ position:relative; font-size:14.5px; line-height:1.65; color:rgba(243,242,232,.75); margin:14px 0 0; max-width:44ch; }
.sb-div-card--blue .sb-div-text{ color:rgba(242,248,252,.8); }
.sb-tags{ position:relative; margin-top:auto; padding-top:26px; display:flex; flex-wrap:wrap; gap:8px; }
.sb-tag{ padding:8px 13px; border-radius:999px; border:1px solid rgba(243,242,232,.24); font-size:12px; font-weight:600; color:rgba(243,242,232,.86); }
.sb-zones{ position:relative; margin-top:auto; padding-top:26px; display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; }
.sb-zone{ border:1px solid rgba(242,248,252,.26); border-radius:14px; padding:13px 14px; }
.sb-zone b{ display:block; font-family:var(--sb-serif); font-weight:400; font-size:24px; line-height:1; }
.sb-zone span{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(242,248,252,.72); margin-top:5px; }
.sb-div-link{ position:relative; margin-top:22px; display:inline-flex; align-items:center; gap:10px; font-size:13.5px; font-weight:800; letter-spacing:.02em; color:var(--sb-lime-2); }
.sb-div-card--blue .sb-div-link{ color:var(--sb-ice); }

/* ------------------------------------------------------- card grids */
.sb-card{ background:var(--sb-bg); border:1px solid rgba(20,59,34,.1); border-radius:20px; padding:26px 24px 24px; transition:transform .4s var(--sb-ease), border-color .4s, box-shadow .4s; }
.sb-card--hover:hover{ transform:translateY(-6px); border-color:rgba(75,155,63,.5); box-shadow:0 20px 40px rgba(20,59,34,.1); }
.sb-app-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:18px; margin-top:42px; }
.sb-app-top{ display:flex; align-items:center; justify-content:space-between; }
.sb-app-num{ width:38px; height:38px; border-radius:11px; background:var(--sb-forest); color:var(--sb-lime); display:flex; align-items:center; justify-content:center; font-family:var(--sb-serif); font-size:18px; }
.sb-app-kicker{ font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--sb-muted-2); }
.sb-card-title{ font-family:var(--sb-serif); font-weight:400; font-size:23px; line-height:1.2; margin:18px 0 12px; }
.sb-bullets{ display:flex; flex-direction:column; gap:11px; margin:0; padding:0; list-style:none; }
.sb-bullets li{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; line-height:1.55; color:var(--sb-muted-3); }
.sb-bullets li::before{ content:""; margin-top:7px; width:5px; height:5px; border-radius:50%; background:var(--sb-leaf); flex:none; }
.sb-bullets strong{ font-weight:700; color:var(--sb-ink); }

.sb-grid-3{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; }
.sb-grid-4{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; }
.sb-card--quote{ padding:28px 26px; border-color:rgba(20,59,34,.12); }
.sb-mark{ font-family:var(--sb-serif); font-size:40px; line-height:1; color:var(--sb-leaf); }
.sb-card-h{ font-family:var(--sb-serif); font-weight:400; font-size:22px; line-height:1.25; margin-top:14px; }
.sb-card-p{ font-size:13.5px; line-height:1.6; color:var(--sb-muted); margin:10px 0 0; }
.sb-card--mile{ border-radius:18px; padding:24px 22px; }
.sb-card--mile .sb-kicker{ font-size:11.5px; letter-spacing:.14em; }
.sb-card--mile .sb-card-h{ font-size:21px; margin-top:10px; }
.sb-card--mile .sb-card-p{ margin-top:8px; }

/* ------------------------------------------------------------ process */
.sb-live{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--sb-muted-2); }
.sb-live::before{ content:""; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--sb-leaf); animation:sbPulse 2.2s ease-in-out infinite; }
.sb-live--plain::before{ display:none; }
.sb-process{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin-top:44px; }
.sb-step{ position:relative; padding-top:26px; transition:transform .4s var(--sb-ease); }
.sb-step:hover{ transform:translateY(-6px); }
.sb-step-line{ position:absolute; top:0; left:0; right:0; height:2px; background:rgba(20,59,34,.14); overflow:hidden; }
.sb-step-line::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,#4b9b3f,#8cc63f); transform-origin:left; animation:sbGrowX 1.1s var(--sb-ease) both; }
.sb-step-runner{ position:absolute; top:-3px; left:0; width:8px; height:8px; border-radius:50%; background:var(--sb-lime); box-shadow:0 0 0 4px rgba(140,198,63,.22); animation:sbTravel 4.6s cubic-bezier(.55,0,.45,1) infinite; }
.sb-step-pin{ position:absolute; top:-4px; left:0; width:10px; height:10px; border-radius:50%; background:var(--sb-leaf); }
.sb-step-n{ display:flex; align-items:center; gap:9px; margin-top:2px; font-size:11.5px; font-weight:800; letter-spacing:.14em; color:var(--sb-leaf); }
.sb-step-n::after{ content:""; height:1px; flex:1; background:rgba(20,59,34,.12); }
.sb-step-title{ font-family:var(--sb-serif); font-size:20px; line-height:1.25; margin-top:8px; }
.sb-step-body{ font-size:13px; line-height:1.55; color:var(--sb-muted); margin-top:8px; }

/* ----------------------------------------------------- split feature */
.sb-split{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(30px,4vw,56px); align-items:center; }
.sb-split--top{ align-items:start; gap:clamp(28px,4vw,56px); }
.sb-feat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin-top:26px; }
.sb-feat{ border-top:1px solid rgba(243,242,232,.2); padding-top:14px; }
.sb-feat b{ display:block; font-family:var(--sb-serif); font-weight:400; font-size:19px; line-height:1.2; }
.sb-feat span{ display:block; font-size:12.5px; line-height:1.5; color:rgba(243,242,232,.66); margin-top:6px; }
.sb-mosaic{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sb-mosaic > .sb-rounded{ height:clamp(130px,14vw,170px); }
.sb-mosaic > .sb-rounded:first-child{ grid-column:span 2; height:clamp(180px,20vw,240px); }

.sb-about-hero{ height:clamp(240px,28vw,360px); border-radius:20px; }
.sb-duo{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }
.sb-duo > .sb-rounded{ height:150px; border-radius:16px; }
.sb-prose p{ margin:0 0 18px; font-size:15.5px; line-height:1.7; color:var(--sb-muted-3); }
.sb-values{ display:flex; flex-direction:column; gap:14px; margin-top:26px; }
.sb-value{ display:flex; gap:16px; align-items:flex-start; border-top:1px solid var(--sb-line); padding-top:14px; }
.sb-value-n{ font-family:var(--sb-serif); font-size:15px; color:var(--sb-leaf); min-width:28px; }
.sb-value b{ display:block; font-weight:700; font-size:15px; }
.sb-value p{ font-size:13.5px; line-height:1.6; color:var(--sb-muted); margin:4px 0 0; }

/* ---------------------------------------------------------- CTA band */
.sb-cta{ position:relative; overflow:hidden; border-radius:26px; background:linear-gradient(120deg,#143b22,#1e5c33 55%,#2b7fb8); color:var(--sb-cream); padding:clamp(36px,5vw,64px); }
.sb-cta-orb{ position:absolute; right:-90px; bottom:-120px; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(140,198,63,.3),transparent 68%); animation:sbDrift 20s ease-in-out infinite; }
.sb-cta-in{ position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:28px; }
.sb-cta h2{ font-family:var(--sb-serif); font-weight:400; font-size:clamp(28px,3.4vw,44px); line-height:1.1; margin:0 0 12px; max-width:20ch; color:inherit; }
.sb-cta p{ margin:0; font-size:15px; line-height:1.6; color:rgba(243,242,232,.8); max-width:48ch; }
.sb-cta .sb-btn-row{ margin-top:0; }

/* ----------------------------------------------------------- products */
.sb-pills{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:32px; }
.sb-pill{ position:relative; padding:10px 18px; border-radius:999px; border:1px solid rgba(20,59,34,.18); font-size:13px; font-weight:700; color:#14301c !important; background:transparent; transition:border-color .3s, background .3s; }
.sb-pill:hover{ border-color:var(--sb-leaf); }
.sb-pill.is-active{ background:#cbe6a4; border-color:var(--sb-leaf); }
.sb-prod-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:20px; }
.sb-prod-card{ background:var(--sb-bg); border:1px solid rgba(20,59,34,.11); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; transition:transform .4s var(--sb-ease), box-shadow .4s, border-color .4s; animation:sbRise .7s var(--sb-ease) both; }
.sb-prod-card:hover{ transform:translateY(-6px); box-shadow:0 22px 44px rgba(20,59,34,.12); border-color:rgba(75,155,63,.45); }
.sb-prod-media{ position:relative; display:block; height:190px; background:#dfe6d6; }
.sb-prod-cat{ position:absolute; left:12px; top:12px; padding:6px 12px; border-radius:999px; background:rgba(15,44,25,.86); color:#e8f3d8; font-size:10.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; pointer-events:none; }
.sb-prod-body{ padding:22px 22px 24px; display:flex; flex-direction:column; flex:1; }
.sb-prod-body h3{ font-family:var(--sb-serif); font-weight:400; font-size:22px; line-height:1.22; margin:0 0 10px; }
.sb-prod-body h3 a{ color:var(--sb-ink) !important; }
.sb-prod-body p{ margin:0 0 16px; font-size:13.5px; line-height:1.6; color:var(--sb-muted); }
.sb-prod-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid rgba(20,59,34,.1); padding-top:14px; }
.sb-prod-spec{ font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--sb-muted-2); }
.sb-link-strong{ font-size:12.5px; font-weight:800; color:var(--sb-green) !important; white-space:nowrap; }
.sb-link-strong:hover{ color:var(--sb-leaf) !important; }
.sb-spec{ border:1px solid rgba(20,59,34,.14); border-radius:18px; overflow:hidden; }
.sb-spec-row{ display:flex; justify-content:space-between; gap:16px; padding:14px 20px; border-bottom:1px solid rgba(20,59,34,.08); font-size:13.5px; }
.sb-spec-row:last-child{ border-bottom:0; }
.sb-spec-row span{ color:var(--sb-muted); }
.sb-spec-row b{ font-weight:700; color:var(--sb-ink); text-align:right; }
.sb-empty{ padding:48px 20px; text-align:center; color:var(--sb-muted); border:1px dashed rgba(20,59,34,.2); border-radius:20px; }
.sb-pager{ display:flex; justify-content:center; gap:8px; margin-top:40px; }
.sb-pager a{ min-width:42px; height:42px; padding:0 12px; border-radius:999px; border:1px solid rgba(20,59,34,.18); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; color:#14301c !important; }
.sb-pager a.is-active{ background:var(--sb-forest); border-color:var(--sb-forest); color:var(--sb-cream) !important; }

/* --------------------------------------------------------------- blog */
.sb-feature{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; align-items:stretch; margin-bottom:32px; }
.sb-feature-media{ position:relative; display:block; border-radius:22px; overflow:hidden; min-height:340px; background:#dfe6d6; }
.sb-feature-media img{ position:absolute; inset:0; }
.sb-feature-body{ background:var(--sb-deep); color:var(--sb-cream); border-radius:22px; padding:clamp(28px,3.4vw,44px); display:flex; flex-direction:column; justify-content:center; }
.sb-feature-body .sb-kicker{ font-size:11px; letter-spacing:.14em; color:var(--sb-lime); }
.sb-feature-body h2{ font-family:var(--sb-serif); font-weight:400; font-size:clamp(26px,3vw,38px); line-height:1.14; margin:16px 0 14px; }
.sb-feature-body h2 a{ color:var(--sb-cream) !important; }
.sb-feature-body p{ margin:0 0 22px; font-size:15px; line-height:1.65; color:rgba(243,242,232,.76); }
.sb-meta{ display:flex; align-items:center; gap:14px; font-size:12.5px; color:rgba(243,242,232,.6); }
.sb-post-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:20px; }
.sb-post-card{ background:var(--sb-bg); border:1px solid rgba(20,59,34,.11); border-radius:18px; overflow:hidden; display:flex; flex-direction:column; color:inherit !important; transition:transform .4s var(--sb-ease), box-shadow .4s; }
.sb-post-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(20,59,34,.1); }
.sb-post-media{ height:160px; background:#dfe6d6; }
.sb-post-body{ padding:20px 20px 22px; display:flex; flex-direction:column; flex:1; }
.sb-post-cat{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--sb-leaf); }
.sb-post-body h3{ font-family:var(--sb-serif); font-weight:400; font-size:20px; line-height:1.25; margin:10px 0; color:var(--sb-ink); }
.sb-post-body p{ margin:0 0 16px; font-size:13.5px; line-height:1.6; color:var(--sb-muted); }
.sb-post-meta{ margin-top:auto; font-size:12px; color:var(--sb-muted-2); }

.sb-article{ max-width:760px; margin:0 auto; }
.sb-article-media{ height:clamp(240px,34vw,420px); border-radius:22px; margin-bottom:36px; }
.sb-article .rich-text{ font-size:16.5px; line-height:1.8; color:var(--sb-muted-3); }
.sb-article .rich-text h2, .sb-article .rich-text h3{ font-family:var(--sb-serif); font-weight:400; color:var(--sb-ink); margin:32px 0 12px; }

/* ------------------------------------------------------------ contact */
.sb-stack{ display:flex; flex-direction:column; gap:18px; }
.sb-info{ display:block; border:1px solid rgba(20,59,34,.13); border-radius:18px; padding:22px 24px; background:var(--sb-bg); color:inherit !important; }
a.sb-info:hover{ border-color:var(--sb-leaf); }
.sb-info-k{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--sb-muted-2); }
.sb-info-v{ font-size:15.5px; line-height:1.6; margin-top:10px; color:var(--sb-ink); }
.sb-info-v--sm{ font-size:14px; }
.sb-info-phone{ font-size:18px; font-weight:700; margin-top:10px; color:var(--sb-forest); }
.sb-info-link{ display:inline-flex; align-items:center; gap:7px; margin-top:14px; font-size:13px; font-weight:700; color:var(--sb-green) !important; }
.sb-grid-auto{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:18px; }
.sb-map{ position:relative; border-radius:18px; overflow:hidden; border:1px solid rgba(20,59,34,.13); }
.sb-map iframe{ width:100%; height:280px; border:0; display:block; }
.sb-map > a{ display:flex; align-items:center; gap:8px; padding:13px 18px; background:var(--sb-bg); border-top:1px solid rgba(20,59,34,.12); font-size:13px; font-weight:700; color:var(--sb-green) !important; }

.sb-form-card{ background:var(--sb-deep); color:var(--sb-cream); border-radius:24px; padding:clamp(28px,3.4vw,44px); }
.sb-form-card h2{ font-family:var(--sb-serif); font-weight:400; font-size:clamp(24px,2.6vw,32px); line-height:1.15; margin:0 0 24px; color:inherit; }
.sb-form{ display:flex; flex-direction:column; gap:16px; }
.sb-form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; }
.sb-field{ display:flex; flex-direction:column; gap:8px; margin:0; font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(243,242,232,.6); }
.sb-input{
  width:100%; padding:13px 15px; border-radius:12px; border:1px solid rgba(243,242,232,.24);
  background:rgba(243,242,232,.06); color:var(--sb-cream); font-family:inherit; font-size:14.5px;
  font-weight:500; letter-spacing:0; text-transform:none;
}
.sb-input::placeholder{ color:rgba(243,242,232,.42); }
.sb-input:focus{ outline:none; border-color:var(--sb-lime); }
.sb-input.is-invalid{ border-color:#f0a39b; }
textarea.sb-input{ resize:vertical; min-height:110px; }
.sb-choice{ display:flex; flex-wrap:wrap; gap:9px; margin-top:2px; }
.sb-choice input{ position:absolute; opacity:0; pointer-events:none; }
.sb-choice label{
  display:inline-flex; align-items:center; padding:10px 16px; border-radius:999px; cursor:pointer;
  border:1px solid rgba(243,242,232,.26); font-size:12.5px; font-weight:700; letter-spacing:0; text-transform:none;
  color:var(--sb-cream); transition:border-color .3s;
}
.sb-choice label:hover{ border-color:var(--sb-lime); }
.sb-choice input:checked + label::before{ content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--sb-lime); margin-right:8px; }
.sb-choice input:focus-visible + label{ border-color:var(--sb-lime); }
.sb-form .sb-btn{ width:100%; margin-top:6px; }
.sb-form-note{ font-size:12px; color:rgba(243,242,232,.5); text-align:center; }
.sb-form .hp-field{ position:absolute; left:-9999px; }
.sb-form .alert{ border-radius:14px; font-size:14px; }
.sb-sent{ min-height:420px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; animation:sbFade .5s both; }
.sb-sent[hidden]{ display:none; }
.sb-sent-check{ width:54px; height:54px; border-radius:50%; background:var(--sb-lime); color:var(--sb-deep); display:flex; align-items:center; justify-content:center; font-size:26px; }
.sb-sent h2{ margin:22px 0 12px; font-size:32px; }
.sb-sent p{ margin:0 0 24px; font-size:15px; line-height:1.65; color:rgba(243,242,232,.75); max-width:38ch; }

/* ------------------------------------------------------------ gallery */
.sb-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.sb-gal{ position:relative; display:block; border-radius:18px; overflow:hidden; height:clamp(190px,20vw,250px); background:#dfe6d6; transition:transform .45s var(--sb-ease), box-shadow .45s; }
.sb-gal.is-wide{ grid-column:span 2; }
.sb-gal:hover{ transform:translateY(-6px); box-shadow:0 22px 46px rgba(20,59,34,.16); }
.sb-gal-cap{ pointer-events:none; position:absolute; left:0; right:0; bottom:0; padding:34px 16px 14px; background:linear-gradient(to top,rgba(15,44,25,.9),rgba(15,44,25,0)); }
.sb-gal-cap small{ display:block; font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--sb-lime-2); }
.sb-gal-cap b{ display:block; font-family:var(--sb-serif); font-weight:400; font-size:17px; line-height:1.25; color:var(--sb-cream); margin-top:4px; }
@media (max-width: 560px){ .sb-gal.is-wide{ grid-column:auto; } }

/* ------------------------------------------------------------ careers */
.sb-perks{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sb-perk{ border:1px solid rgba(243,242,232,.2); border-radius:16px; padding:20px 18px; }
.sb-perk b{ display:block; font-family:var(--sb-serif); font-weight:400; font-size:19px; line-height:1.25; }
.sb-perk span{ display:block; font-size:12.5px; line-height:1.55; color:rgba(243,242,232,.7); margin-top:8px; }
.sb-jobs{ display:flex; flex-direction:column; gap:14px; }
.sb-job{ background:var(--sb-bg); border:1px solid var(--sb-line); border-radius:18px; padding:24px 26px; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; align-items:center; transition:transform .4s var(--sb-ease), border-color .4s, box-shadow .4s; }
.sb-job:hover{ transform:translateY(-4px); border-color:rgba(75,155,63,.5); box-shadow:0 18px 38px rgba(20,59,34,.1); }
.sb-job-role{ font-family:var(--sb-serif); font-size:22px; line-height:1.2; }
.sb-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.sb-chip{ padding:6px 12px; border-radius:999px; background:#e8f0dc; color:var(--sb-green); font-size:11.5px; font-weight:700; }
.sb-job-body{ font-size:13.5px; line-height:1.6; color:var(--sb-muted-3); }
.sb-job .sb-btn{ justify-self:start; white-space:nowrap; }
.sb-callout{ margin-top:36px; border-radius:20px; background:var(--sb-sand); padding:clamp(26px,3vw,38px); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.sb-callout b{ display:block; font-family:var(--sb-serif); font-weight:400; font-size:clamp(22px,2.4vw,30px); line-height:1.2; }
.sb-callout p{ font-size:14px; line-height:1.6; color:var(--sb-muted-3); margin:8px 0 0; max-width:52ch; }
@media (max-width: 480px){ .sb-perks{ grid-template-columns:1fr; } }

/* ------------------------------------------------------------- footer */
.sb-footer{ background:#10180f; color:rgba(243,242,232,.72); padding:clamp(44px,5vw,72px) 0 32px; }
.sb-footer-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:36px; }
.sb-footer-logo{ display:block; width:100%; max-width:284px; background:var(--sb-bg); border-radius:14px; padding:16px 20px; box-shadow:0 10px 26px rgba(0,0,0,.28); }
.sb-footer-logo img{ width:100%; height:auto; display:block; }
.sb-footer-about{ margin:18px 0 0; font-size:13.5px; line-height:1.65; max-width:34ch; }
.sb-footer-web{ margin-top:16px; display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(243,242,232,.5); }
.sb-socials{ display:flex; gap:10px; margin-top:20px; }
.sb-social{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(243,242,232,.22); display:flex; align-items:center; justify-content:center; transition:border-color .25s, background .25s; }
.sb-social:hover{ border-color:var(--sb-lime); background:rgba(140,198,63,.14); }
.sb-footer-h{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--sb-lime); }
.sb-footer-links{ display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.sb-footer-links a{ display:flex; align-items:flex-start; gap:9px; font-size:14px; color:rgba(243,242,232,.72) !important; width:max-content; max-width:100%; }
.sb-footer-links a:hover{ color:var(--sb-lime) !important; }
.sb-footer-links svg{ margin-top:3px; flex:none; }
.sb-footer-addr{ margin-top:16px; font-size:13.5px; line-height:1.7; }
.sb-footer-phone{ display:inline-flex; align-items:center; gap:9px; margin-top:14px; font-size:16px; font-weight:700; color:var(--sb-cream) !important; }
.sb-footer-phone:hover{ color:var(--sb-lime) !important; }
.sb-footer-bottom{ margin-top:36px; padding-top:20px; border-top:1px solid rgba(243,242,232,.14); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:12px; color:rgba(243,242,232,.62); }
.sb-footer-bottom strong{ font-weight:800; color:rgba(243,242,232,.8); }

/* ------------------------------------- older templates inside the theme */
.sb-theme .page-head{ background:var(--sb-forest); color:var(--sb-cream); }
.sb-theme .page-head-title{ font-family:var(--sb-serif); font-weight:400; }
.sb-theme .page-head .breadcrumb a{ color:var(--sb-lime-2); }
.sb-theme .btn-brand{ background:var(--sb-forest); border-color:var(--sb-forest); border-radius:999px; }
.sb-theme .btn-brand:hover{ background:var(--sb-green); border-color:var(--sb-green); }
.sb-theme .section-title{ font-family:var(--sb-serif); font-weight:400; }

/* Address card on the contact page, given more weight than the rest. */
.sb-info--address{
  border-color:rgba(75,155,63,.5); border-left:4px solid var(--sb-leaf);
  background:linear-gradient(180deg,#f1f7e8,var(--sb-bg));
  box-shadow:0 12px 30px rgba(20,59,34,.09);
}
.sb-info--address .sb-info-k{ color:var(--sb-leaf); }
.sb-info--address .sb-info-v{ font-size:18px; font-weight:700; line-height:1.6; color:var(--sb-forest); }
.sb-info--address .sb-info-link{ font-weight:800; }

/* Full-width map under the contact columns. */
.sb-map--wide{ margin-top:clamp(28px,3.5vw,44px); }
.sb-map--wide iframe{ height:clamp(300px,34vw,430px); }
