/* ==========================================================================
   SmartLink Services — design system
   Translated from the approved UI mockup (Claude Design canvas).
   Palette: deep green #004532 / #00301F with gold #F0B040 accents.
   Type: IBM Plex Sans (headings) · IBM Plex Mono (kickers) · Inter (body).
   All copy/content comes from the CMS; this file only carries presentation.
   ========================================================================== */

/* Fallback faces sized to match the webfonts, so the swap does not reflow.
   Values derived in-browser by rendering the same string in the webfont and
   in the fallback face, then correcting until the widths match. */
@font-face{font-family:'Plex Fallback';src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:103.6%;ascent-override:95%;descent-override:25%;line-gap-override:0%;font-weight:600;font-display:swap}
@font-face{font-family:'Plex Fallback';src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:99.5%;ascent-override:95%;descent-override:25%;line-gap-override:0%;font-weight:400;font-display:swap}
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('Helvetica'),local('Liberation Sans');
  size-adjust:106.0%;ascent-override:90%;descent-override:22%;line-gap-override:0%;font-display:swap}

:root{
  --sl-green:#004532;
  --sl-green-deep:#00301F;
  --sl-green-mid:#005C42;
  --sl-green-bright:#007050;
  --sl-leaf:#80B050;
  --sl-gold:#F0B040;
  --sl-gold-2:#F5C468;
  --sl-gold-3:#E0A129;
  --sl-gold-dark:#8B5E10;
  --sl-sage:#9DBBAB;
  --sl-mist:#C8DBCF;
  --sl-tint:#F1F8EE;
  --sl-tint-2:#DCEFE0;
  --sl-tint-3:#EAF5E6;
  --sl-tint-4:#F4F9F3;
  --sl-line:#DCE3DD;
  --sl-text:#303030;
  --sl-body:#3C4A40;
  --sl-muted:#545454;
  --sl-muted-2:#6E6E6E;
  --sl-white:#FFFFFF;
  --sl-ease:cubic-bezier(.22,1,.36,1);
  --sl-shell:1320px;
  --sl-gutter:clamp(20px,4.5vw,64px);
  --sl-font:Inter,'Inter Fallback',system-ui,-apple-system,"Segoe UI",sans-serif;
  --sl-display:'IBM Plex Sans','Plex Fallback',sans-serif;
  --sl-mono:'IBM Plex Mono',ui-monospace,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--sl-white);color:var(--sl-text);
  font-family:var(--sl-font);font-weight:400;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--sl-green-mid);text-decoration:none;transition:color 150ms var(--sl-ease)}
a:hover{color:var(--sl-gold-dark)}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--sl-display);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--sl-green)}
p{margin:0}
ul{margin:0}
button,input,textarea,select{font-family:inherit}
::selection{background:var(--sl-gold);color:var(--sl-green-deep)}

/* ---------- layout ---------- */
.sl-shell{max-width:var(--sl-shell);margin:0 auto;padding-left:var(--sl-gutter);padding-right:var(--sl-gutter)}
.sl-section{padding:clamp(64px,8.5vw,124px) 0}
.sl-section--tint{background:linear-gradient(180deg,var(--sl-tint-4) 0%,var(--sl-white) 100%)}
.sl-section--tint-rev{background:linear-gradient(180deg,var(--sl-white) 0%,var(--sl-tint-4) 100%)}
.sl-section--dark{background:var(--sl-green-deep);color:var(--sl-white);position:relative;overflow:hidden}
.sl-section--line{border-top:1px solid var(--sl-line)}
.sl-section--dark h2,.sl-section--dark h3,.sl-section--dark h4{color:var(--sl-white)}

/* split heading rows used across the mockup */
.sl-split{display:grid;grid-template-columns:.52fr .48fr;gap:clamp(32px,5vw,80px);align-items:start}
.sl-split--end{align-items:end}
.sl-split--narrow{grid-template-columns:.46fr .54fr}
@media (max-width:900px){.sl-split,.sl-split--narrow{grid-template-columns:1fr}}

/* ---------- kicker (mono label with gold rule) ---------- */
.sl-kicker{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.sl-kicker::before{content:"";display:block;width:22px;height:2px;background:var(--sl-gold);flex:none}
.sl-kicker span{
  font-family:var(--sl-mono);font-weight:500;font-size:.6875rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--sl-gold-dark);
}
.sl-section--dark .sl-kicker span{color:var(--sl-gold)}

/* ---------- headings ---------- */
.sl-h1{font-size:clamp(2.25rem,5.4vw,4.25rem);line-height:1.04;letter-spacing:-.032em;max-width:19ch;text-wrap:balance}
.sl-h2{font-size:clamp(1.75rem,3.6vw,2.875rem);max-width:20ch}
.sl-h3{font-size:1.3125rem;line-height:1.24;letter-spacing:-.028em}
.sl-h4{font-size:1.125rem;letter-spacing:-.025em}
.sl-lede{margin-top:24px;max-width:64ch;font-size:1.125rem;font-weight:300;line-height:1.62;color:var(--sl-mist)}
.sl-intro{font-size:.9375rem;color:var(--sl-muted);max-width:64ch}
.sl-prose{margin-top:24px;max-width:64ch;font-size:1.0625rem;color:var(--sl-text)}
.sl-prose--sm{margin-top:16px;font-size:.9375rem;color:var(--sl-muted)}

/* ---------- buttons ---------- */
.sl-btn{
  display:inline-block;border-radius:999px;white-space:nowrap;cursor:pointer;
  font-size:.9375rem;font-weight:500;padding:14px 28px;border:1px solid transparent;
  transition:transform 150ms var(--sl-ease),background 150ms var(--sl-ease),color 150ms var(--sl-ease),border-color 150ms var(--sl-ease);
}
.sl-btn--primary{background:var(--sl-green);color:var(--sl-white)}
.sl-btn--primary:hover{background:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-1px)}
.sl-btn--gold{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}
.sl-btn--gold:hover{background:var(--sl-white);color:var(--sl-green-deep);transform:translateY(-2px)}
/* Ghost button defaults to a LIGHT background, because that is the common case.
   The white treatment is scoped to the dark bands that need it, so a ghost
   button dropped into a light section is never white on white. */
.sl-btn--ghost{border-color:rgba(0,69,50,.28);color:var(--sl-green);font-weight:500;background:transparent}
.sl-btn--ghost:hover{border-color:var(--sl-gold);background:rgba(240,176,64,.12);color:var(--sl-green-deep)}
.sl-hero .sl-btn--ghost,.sl-banner .sl-btn--ghost,.sl-section--dark .sl-btn--ghost{border-color:rgba(255,255,255,.26);color:var(--sl-white);font-weight:400}
.sl-hero .sl-btn--ghost:hover,.sl-banner .sl-btn--ghost:hover,.sl-section--dark .sl-btn--ghost:hover{border-color:rgba(240,176,64,.7);background:rgba(240,176,64,.08);color:var(--sl-white)}
.sl-btn--sm{font-size:.8125rem;padding:11px 20px}
.sl-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:40px}

/* ---------- header ---------- */
.sl-header{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.93);
  backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--sl-line);
}
.sl-header__bar{max-width:var(--sl-shell);margin:0 auto;padding:0 var(--sl-gutter);min-height:76px;display:flex;align-items:center;gap:32px}
.sl-brand{display:flex;align-items:center;gap:10px;padding:8px 0}
.sl-brand img{height:54px;width:auto}
.sl-brand__word{font-family:var(--sl-display);font-weight:600;font-size:22px;letter-spacing:-.02em;color:var(--sl-green)}
.sl-nav{margin-left:auto;display:flex;gap:clamp(14px,1.9vw,26px);align-items:center;flex-wrap:nowrap}
.sl-nav ul{display:flex;gap:clamp(14px,1.9vw,26px);align-items:center;list-style:none;padding:0;margin:0}
.sl-nav a{font-size:.8125rem;font-weight:500;color:var(--sl-muted);padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.sl-nav a:hover,.sl-nav li.active>a{color:var(--sl-green);border-bottom-color:var(--sl-gold)}
.sl-nav__cta{background:var(--sl-green);color:var(--sl-white);font-size:.8125rem;font-weight:500;padding:11px 20px;border-radius:999px;white-space:nowrap;transition:background 150ms var(--sl-ease),transform 150ms var(--sl-ease)}
.sl-nav__cta:hover{background:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-1px)}
.sl-burger{display:none;margin-left:auto;background:none;border:none;cursor:pointer;padding:8px;color:var(--sl-green)}
.sl-burger svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2}
@media (max-width:900px){
  .sl-burger{display:block}
  .sl-nav{position:fixed;inset:76px 0 auto 0;background:var(--sl-white);border-bottom:1px solid var(--sl-line);flex-direction:column;align-items:stretch;gap:0;padding:12px var(--sl-gutter) 20px;display:none;max-height:calc(100vh - 76px);overflow-y:auto}
  .sl-nav.is-open{display:flex}
  .sl-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .sl-nav a{padding:12px 0;border-bottom:1px solid var(--sl-line)}
  .sl-nav__cta{margin-top:14px;text-align:center}
}

/* ---------- hero ---------- */
.sl-hero{position:relative;background:var(--sl-green-deep);color:var(--sl-white);overflow:hidden}
.sl-hero__inner{position:relative;max-width:var(--sl-shell);margin:0 auto;padding:clamp(88px,11vw,152px) var(--sl-gutter) clamp(48px,6vw,72px)}
.sl-hero h1{color:var(--sl-white)}
.sl-hero .sl-gold{color:var(--sl-gold)}
.sl-blob{position:absolute;border-radius:50%;pointer-events:none}
.sl-blob--1{top:-18%;right:-8%;width:min(760px,72vw);height:min(760px,72vw);background:radial-gradient(circle at 40% 40%,rgba(128,176,80,.42),rgba(0,92,66,.18) 46%,rgba(0,48,31,0) 72%);filter:blur(6px);animation:slFloat 16s ease-in-out infinite}
.sl-blob--2{bottom:-30%;left:-14%;width:min(620px,66vw);height:min(620px,66vw);background:radial-gradient(circle at 50% 50%,rgba(240,176,64,.20),rgba(0,48,31,0) 68%);animation:slFloat 22s ease-in-out 2s infinite}
.sl-hero__flow{position:absolute;inset:0;width:100%;height:100%;opacity:.55}
.sl-hero__flow path{stroke-dasharray:2200;stroke-dashoffset:2200;animation:slTrace 3000ms var(--sl-ease) 250ms forwards}
/* stat rail under the hero */
.sl-rail{position:relative;border-top:1px solid rgba(255,255,255,.14)}
.sl-rail__grid{max-width:var(--sl-shell);margin:0 auto;padding:0 var(--sl-gutter);display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.sl-rail__item{padding:24px 0;border-right:1px solid rgba(255,255,255,.14)}
.sl-rail__label{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-sage)}
.sl-rail__value{margin-top:8px;font-family:var(--sl-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.025em;color:var(--sl-white)}

/* ---------- cards ---------- */
.sl-card{
  position:relative;overflow:hidden;border-radius:20px;padding:26px;
  background:linear-gradient(155deg,var(--sl-white) 0%,var(--sl-tint) 100%);
  border:1px solid rgba(0,69,50,.08);
  transition:transform 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease),background 400ms var(--sl-ease),border-color 400ms var(--sl-ease);
}
.sl-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,69,50,.10);background:linear-gradient(155deg,#FFFFFF 0%,#FBEFD6 100%)}
.sl-card__k{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-muted-2)}
.sl-card h4{margin-top:12px}
.sl-card p{margin-top:8px;font-size:.9375rem;color:var(--sl-muted)}
/* service card (deeper tint, gold on hover) */
.sl-card--service{border-radius:22px;padding:28px 26px 30px;background:linear-gradient(155deg,var(--sl-tint) 0%,var(--sl-tint-2) 100%);border-color:rgba(0,69,50,.10);display:block;text-align:left}
.sl-card--service:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,69,50,.13);background:linear-gradient(155deg,var(--sl-gold-2) 0%,var(--sl-gold-3) 100%);border-color:rgba(139,94,16,.35)}
.sl-card--service p{color:var(--sl-body)}
.sl-card__num{position:absolute;top:-14px;right:14px;font-family:var(--sl-display);font-weight:600;font-size:5rem;line-height:1;letter-spacing:-.04em;color:rgba(0,69,50,.06);pointer-events:none}
.sl-card__more{margin-top:20px;display:flex;align-items:center;gap:8px;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-green-mid)}

/* grids */
.sl-grid{display:grid;gap:18px}
.sl-grid--auto{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.sl-grid--3{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.sl-grid--4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.sl-grid--tight{gap:16px}

/* ---------- pills / tags ---------- */
.sl-tag{display:inline-block;border-radius:999px;padding:7px 14px;font-size:.8125rem;color:var(--sl-green);background:linear-gradient(150deg,var(--sl-tint-3),var(--sl-tint-2));border:1px solid rgba(0,69,50,.10)}
.sl-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:44px}
.sl-tab{cursor:pointer;border-radius:999px;padding:12px 20px;font-size:.9375rem;font-weight:500;background:linear-gradient(150deg,var(--sl-tint) 0%,#E3F0E4 100%);color:var(--sl-green);border:1px solid rgba(0,69,50,.10);transition:all 180ms var(--sl-ease)}
.sl-tab.is-active,.sl-tab:hover{background:linear-gradient(150deg,var(--sl-gold-2) 0%,var(--sl-gold-3) 100%);color:var(--sl-green-deep);border-color:rgba(139,94,16,.35);box-shadow:0 6px 16px rgba(0,69,50,.12)}
.sl-tab__count{font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.12em;margin-left:10px;opacity:.65}

/* ---------- bullet lists ---------- */
.sl-bullets{margin-top:16px;display:grid;gap:12px}
.sl-bullets li{display:flex;gap:12px;align-items:flex-start;list-style:none;font-size:.9375rem;color:var(--sl-text)}
.sl-bullets li::before{content:"";flex:none;margin-top:8px;width:6px;height:6px;border-radius:50%;background:var(--sl-gold)}
.sl-bullets--leaf li::before{background:var(--sl-leaf)}

/* ---------- scope layers ---------- */
.sl-layer{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;border-radius:18px;padding:20px 22px;transition:transform 350ms var(--sl-ease)}
.sl-layer:hover{transform:translateX(6px)}
.sl-layer__head{display:flex;align-items:center;gap:16px;min-width:0}
.sl-layer__num{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em}
.sl-layer__title{font-family:var(--sl-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.025em}
.sl-layer__body{margin-top:4px;font-size:.875rem}
.sl-layer__tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.sl-layer__tag{border-radius:999px;padding:6px 13px;font-size:.8125rem;white-space:nowrap}
.sl-layer__role{border-radius:999px;padding:6px 14px;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
/* tones */
.sl-layer--deep{background:linear-gradient(120deg,var(--sl-green) 0%,var(--sl-green-mid) 100%);border:1px solid rgba(0,69,50,.20)}
.sl-layer--deep .sl-layer__title{color:#fff}.sl-layer--deep .sl-layer__body{color:var(--sl-mist)}
.sl-layer--deep .sl-layer__num{background:rgba(255,255,255,.14);color:#fff}
.sl-layer--deep .sl-layer__tag{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.20)}
.sl-layer--deep .sl-layer__role{background:rgba(240,176,64,.14);color:var(--sl-gold);border:1px solid rgba(240,176,64,.45)}
.sl-layer--mid{background:linear-gradient(120deg,var(--sl-tint-2) 0%,var(--sl-tint-3) 100%);border:1px solid rgba(0,69,50,.14)}
.sl-layer--light{background:linear-gradient(120deg,var(--sl-tint) 0%,#F8FCF6 100%);border:1px solid rgba(0,69,50,.10)}
.sl-layer--mid .sl-layer__title,.sl-layer--light .sl-layer__title{color:var(--sl-green)}
.sl-layer--mid .sl-layer__body{color:var(--sl-body)}.sl-layer--light .sl-layer__body{color:var(--sl-muted)}
.sl-layer--mid .sl-layer__num,.sl-layer--light .sl-layer__num{background:rgba(0,69,50,.10);color:var(--sl-green)}
.sl-layer--mid .sl-layer__tag,.sl-layer--light .sl-layer__tag{background:rgba(255,255,255,.8);color:var(--sl-green);border:1px solid rgba(0,69,50,.12)}
.sl-layer--mid .sl-layer__role,.sl-layer--light .sl-layer__role{background:var(--sl-gold);color:var(--sl-green-deep);border:1px solid var(--sl-gold)}
.sl-layer--muted{background:repeating-linear-gradient(135deg,#F6F7F6 0px,#F6F7F6 9px,#EFF1EF 9px,#EFF1EF 18px);border:1px solid rgba(0,0,0,.10)}
.sl-layer--muted .sl-layer__title{color:var(--sl-muted)}.sl-layer--muted .sl-layer__body{color:var(--sl-muted-2)}
.sl-layer--muted .sl-layer__num{background:rgba(0,0,0,.06);color:var(--sl-muted)}
.sl-layer--muted .sl-layer__tag{background:rgba(255,255,255,.85);color:var(--sl-muted);border:1px solid rgba(0,0,0,.10)}
.sl-layer--muted .sl-layer__role{background:transparent;color:var(--sl-muted);border:1px solid rgba(84,84,84,.45)}

/* ---------- counters ---------- */
.sl-counters{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:rgba(0,69,50,.10);border:1px solid rgba(0,69,50,.10);border-radius:20px;overflow:hidden}
.sl-counter{background:linear-gradient(160deg,var(--sl-white) 0%,var(--sl-tint) 100%);padding:26px 24px;transition:background 350ms var(--sl-ease)}
.sl-counter:hover{background:linear-gradient(160deg,#FBEFD6 0%,var(--sl-gold-2) 100%)}
.sl-counter__v{font-family:var(--sl-display);font-weight:600;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1;letter-spacing:-.03em;color:var(--sl-green)}
.sl-counter__l{margin-top:10px;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-gold-dark)}
.sl-counter__n{margin-top:6px;font-size:.875rem;color:var(--sl-muted)}

/* ---------- process steps ---------- */
.sl-step{border-radius:20px;padding:28px 24px 34px;background:linear-gradient(160deg,var(--sl-white) 0%,#EFF7EC 100%);border:1px solid rgba(0,69,50,.08);transition:transform 400ms var(--sl-ease),background 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease)}
.sl-step:hover{transform:translateY(-4px);background:linear-gradient(160deg,var(--sl-gold-2) 0%,var(--sl-gold-3) 100%);box-shadow:0 14px 34px rgba(0,69,50,.13)}
.sl-step__n{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;color:var(--sl-gold-dark)}
.sl-step__rule{margin-top:18px;height:2px;background:var(--sl-green);width:22px;opacity:.4}
.sl-step h4{margin-top:18px;font-size:1.0625rem}
.sl-step p{margin-top:10px;font-size:.9375rem;color:var(--sl-body)}

/* ---------- engagement ---------- */
.sl-engage{position:relative;overflow:hidden;border-radius:22px;padding:28px 26px 30px;background:linear-gradient(155deg,var(--sl-tint) 0%,var(--sl-tint-2) 100%);border:1px solid rgba(0,69,50,.10);transition:transform 400ms var(--sl-ease),background 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease),border-color 400ms var(--sl-ease)}
.sl-engage:hover{transform:translateY(-4px);background:linear-gradient(155deg,var(--sl-gold-2) 0%,var(--sl-gold-3) 100%);border-color:rgba(139,94,16,.35);box-shadow:0 14px 36px rgba(0,69,50,.13)}
.sl-engage__basis{margin-top:20px;padding-top:16px;border-top:1px solid rgba(0,69,50,.12);font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-green-mid)}

/* ---------- platforms (dark) ---------- */
.sl-plat{display:flex;flex-wrap:wrap;gap:12px;align-content:flex-start}
.sl-plat__item{border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:14px 18px;transition:border-color 300ms var(--sl-ease),background 300ms var(--sl-ease),transform 300ms var(--sl-ease)}
.sl-plat__item:hover{border-color:var(--sl-gold);background:rgba(240,176,64,.12);transform:translateY(-2px)}
.sl-plat__name{font-family:var(--sl-display);font-weight:600;font-size:.9375rem;letter-spacing:-.02em;color:var(--sl-white)}
.sl-plat__role{margin-top:4px;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-sage)}

/* ---------- case / work cards ---------- */
.sl-case{border-radius:22px;overflow:hidden;border:1px solid rgba(0,69,50,.10);background:linear-gradient(170deg,var(--sl-white) 0%,var(--sl-tint) 100%);transition:transform 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease)}
.sl-case:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,69,50,.12)}
.sl-case__top{border-bottom:1px solid rgba(0,69,50,.08);padding:20px 26px;display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.sl-case__tag,.sl-case__num{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase}
.sl-case__tag{color:var(--sl-muted-2)}.sl-case__num{color:var(--sl-gold-dark)}
.sl-case__body{padding:28px 26px 32px}
.sl-case__body p{margin-top:12px;font-size:.9375rem;color:var(--sl-muted)}
.sl-case__metric{margin-top:24px;padding-top:20px;border-top:1px solid rgba(0,69,50,.08);font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-gold-dark)}

/* ---------- forms ---------- */
.sl-formcard{background:var(--sl-white);border:1px solid rgba(0,69,50,.10);border-radius:24px;padding:clamp(24px,3vw,40px);box-shadow:0 14px 40px rgba(0,69,50,.10)}
.sl-field{display:grid;gap:8px;margin-bottom:20px}
.sl-field label,.sl-label{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-muted-2)}
.sl-field input,.sl-field textarea,.sl-field select{
  border:1px solid var(--sl-line);border-radius:12px;padding:12px 14px;font-size:.9375rem;
  color:var(--sl-text);outline:none;width:100%;background:var(--sl-white);
  transition:border-color 150ms var(--sl-ease),box-shadow 150ms var(--sl-ease);
}
.sl-field input:focus,.sl-field textarea:focus,.sl-field select:focus{border-color:var(--sl-green-bright);box-shadow:0 0 0 3px rgba(0,112,80,.14)}
.sl-field textarea{resize:vertical;line-height:1.62;min-height:120px}
.sl-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:600px){.sl-row{grid-template-columns:1fr}}
.sl-fine{font-size:.8125rem;color:var(--sl-muted-2)}
.sl-alert{padding:14px 18px;border-radius:12px;font-size:.9375rem;margin-bottom:16px}
.sl-alert--ok{background:rgba(0,112,80,.10);color:var(--sl-green)}
.sl-alert--err{background:rgba(217,48,37,.10);color:#B3261E}

/* contact detail list */
.sl-contacts{margin-top:40px;display:grid;gap:20px}
.sl-contacts__l{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-muted-2)}
.sl-contacts__v{margin-top:6px;font-size:.9375rem;color:var(--sl-text);max-width:44ch}

/* ---------- callout ---------- */
.sl-callout{margin-top:32px;border-radius:20px;padding:24px 26px;background:linear-gradient(150deg,var(--sl-tint-3) 0%,var(--sl-tint-2) 100%);border:1px solid rgba(0,69,50,.08)}
.sl-callout__k{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-gold-dark)}
.sl-callout p{margin-top:10px;font-size:.9375rem;color:var(--sl-text)}

/* ---------- footer ---------- */
.sl-footer{background:var(--sl-green-deep);color:#E4EFE8}
.sl-footer__top{max-width:var(--sl-shell);margin:0 auto;padding:64px var(--sl-gutter) 40px;display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,2.1fr);gap:clamp(32px,4vw,64px)}
@media (max-width:900px){.sl-footer__top{grid-template-columns:1fr}}
.sl-footer__brand img{height:32px;filter:brightness(0) invert(1)}
.sl-footer__word{font-family:var(--sl-display);font-weight:600;font-size:22px;color:#fff}
.sl-footer__addr{margin-top:24px;max-width:44ch;font-size:.9375rem;color:var(--sl-sage)}
.sl-footer__tel{margin-top:12px;font-size:.9375rem;color:#E4EFE8}
.sl-footer__mail{margin-top:4px;font-size:.9375rem}
.sl-footer__mail a{color:var(--sl-gold)}
.sl-footer__links{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:24px;align-content:start;list-style:none;padding:0;margin:0}
.sl-footer__links a{font-size:.9375rem;color:var(--sl-sage)}
.sl-footer__links a:hover{color:var(--sl-gold)}
.sl-footer__bar{border-top:1px solid #0A4A36}
.sl-footer__bar-in{max-width:var(--sl-shell);margin:0 auto;padding:20px var(--sl-gutter);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-sage)}

/* ---------- page banner (inner pages) ---------- */
.sl-banner{background:var(--sl-green-deep);color:#fff;position:relative;overflow:hidden}
.sl-banner__in{position:relative;max-width:var(--sl-shell);margin:0 auto;padding:clamp(56px,7vw,96px) var(--sl-gutter)}
.sl-banner h1{color:#fff;font-size:clamp(2rem,4.4vw,3.25rem);max-width:22ch}
.sl-crumb{display:flex;gap:10px;list-style:none;padding:0;margin:0 0 18px;font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-sage)}
.sl-crumb a{color:var(--sl-sage)}
.sl-crumb a:hover{color:var(--sl-gold)}

/* ---------- blog ---------- */
.sl-post{border-radius:22px;overflow:hidden;border:1px solid rgba(0,69,50,.10);background:linear-gradient(170deg,var(--sl-white) 0%,var(--sl-tint) 100%);transition:transform 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease)}
.sl-post:hover{transform:translateY(-4px);box-shadow:0 14px 36px rgba(0,69,50,.12)}
.sl-post__media img{width:100%;aspect-ratio:16/9;object-fit:cover}
.sl-post__body{padding:24px 26px 28px}
.sl-post__meta{font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-muted-2)}
.sl-post h3{margin-top:12px;font-size:1.1875rem}
.sl-post p{margin-top:10px;font-size:.9375rem;color:var(--sl-muted)}
.sl-article{max-width:76ch;margin:0 auto}
.sl-article p{margin:0 0 18px;font-size:1.0625rem;color:var(--sl-text)}
.sl-article h2,.sl-article h3{margin:32px 0 12px}
.sl-article img{border-radius:16px;margin:24px 0}
.sl-pagination{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:40px;list-style:none;padding:0}
.sl-pagination a,.sl-pagination span{display:inline-block;padding:9px 15px;border-radius:999px;border:1px solid rgba(0,69,50,.12);font-size:.875rem;color:var(--sl-green);background:var(--sl-tint)}
.sl-pagination .active span{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}

/* ---------- utilities ---------- */
.sl-mt-0{margin-top:0}.sl-mt-16{margin-top:16px}.sl-mt-24{margin-top:24px}.sl-mt-32{margin-top:32px}.sl-mt-44{margin-top:44px}
.sl-center{text-align:center}
.sl-scrolltop{position:fixed;right:22px;bottom:22px;z-index:70;width:44px;height:44px;border-radius:50%;border:1px solid rgba(0,69,50,.15);background:var(--sl-white);color:var(--sl-green);cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,69,50,.14)}
.sl-scrolltop.is-on{display:flex}
.sl-scrolltop svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}

/* reveal on scroll */
[data-sl-reveal]{opacity:0;transform:translateY(24px);transition:opacity 700ms var(--sl-ease),transform 700ms var(--sl-ease)}
[data-sl-reveal].is-in{opacity:1;transform:none}

@keyframes slTrace{to{stroke-dashoffset:0}}
@keyframes slFloat{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-14px,0)}100%{transform:translate3d(0,0,0)}}
@keyframes slSheen{0%{opacity:.25}50%{opacity:.6}100%{opacity:.25}}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  [data-sl-reveal]{opacity:1;transform:none}
}

/* ---------- FAQ accordion (same card language as the rest of the system) ---------- */
.sl-faq{max-width:860px}
.sl-faq__item{
  border-radius:18px;border:1px solid rgba(0,69,50,.10);margin-bottom:12px;overflow:hidden;
  background:linear-gradient(155deg,var(--sl-white) 0%,var(--sl-tint) 100%);
  transition:border-color 300ms var(--sl-ease),box-shadow 300ms var(--sl-ease);
}
.sl-faq__item.is-open{border-color:rgba(139,94,16,.35);box-shadow:0 10px 28px rgba(0,69,50,.10)}
.sl-faq__q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;
  background:none;border:none;cursor:pointer;text-align:left;padding:20px 22px;
  font-family:var(--sl-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.02em;color:var(--sl-green);
}
.sl-faq__q svg{flex:none;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;transition:transform 300ms var(--sl-ease)}
.sl-faq__item.is-open .sl-faq__q svg{transform:rotate(180deg);color:var(--sl-gold-dark)}
.sl-faq__a{max-height:0;overflow:hidden;transition:max-height 320ms var(--sl-ease)}
.sl-faq__a p{padding:0 22px 20px;font-size:.9375rem;color:var(--sl-muted);margin:0 0 10px}
.sl-faq__a p:last-child{margin-bottom:0}

/* ---------- portfolio / work grid ---------- */
.sl-work{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}
.sl-work__card{
  border-radius:22px;overflow:hidden;border:1px solid rgba(0,69,50,.10);
  background:linear-gradient(170deg,var(--sl-white) 0%,var(--sl-tint) 100%);
  transition:transform 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease),border-color 400ms var(--sl-ease);
}
.sl-work__card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,69,50,.14);border-color:rgba(139,94,16,.28)}
.sl-work__media{overflow:hidden;background:var(--sl-tint-2)}
.sl-work__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform 600ms var(--sl-ease)}
.sl-work__card:hover .sl-work__media img{transform:scale(1.04)}
.sl-work__body{padding:24px 26px 28px}
.sl-work__top{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.sl-work__body p{margin-top:10px;font-size:.9375rem;color:var(--sl-muted)}
.sl-work__body .sl-case__metric{margin-top:20px;padding-top:16px}

/* ---------- reusable carousel (same card language, gold controls) ---------- */
.sl-carousel{position:relative}
.sl-carousel__viewport{overflow:hidden}
.sl-carousel__track{
  display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;padding:4px 2px 18px;
  scrollbar-width:none;-ms-overflow-style:none;cursor:grab;
}
.sl-carousel__track::-webkit-scrollbar{display:none}
.sl-carousel__track.is-drag{cursor:grabbing;scroll-behavior:auto}
.sl-carousel__track > *{scroll-snap-align:start;flex:0 0 min(380px,86vw)}
.sl-carousel__nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:8px}
.sl-carousel__btn{
  width:44px;height:44px;flex:none;border-radius:50%;cursor:pointer;
  border:1px solid rgba(0,69,50,.16);background:var(--sl-white);color:var(--sl-green);
  display:flex;align-items:center;justify-content:center;
  transition:border-color 200ms var(--sl-ease),color 200ms var(--sl-ease),transform 200ms var(--sl-ease),background 200ms var(--sl-ease);
}
.sl-carousel__btn:hover:not(:disabled){border-color:var(--sl-gold);background:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-1px)}
.sl-carousel__btn:disabled{opacity:.35;cursor:default}
.sl-carousel__btn svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}
.sl-carousel__dots{display:flex;gap:8px;align-items:center}
.sl-carousel__dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:rgba(0,69,50,.18);cursor:pointer;transition:all .25s var(--sl-ease)}
.sl-carousel__dot.is-active{background:var(--sl-gold);width:22px;border-radius:5px}
.sl-section--dark .sl-carousel__btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}
.sl-section--dark .sl-carousel__dot{background:rgba(255,255,255,.25)}

/* ---------- platform logos + marquee ---------- */
.sl-plat__logo{height:26px;width:auto;max-width:132px;object-fit:contain;display:block;margin-bottom:10px;opacity:.92}
.sl-plat__item:hover .sl-plat__logo{opacity:1}
.sl-plat__wordmark{
  display:inline-block;margin-bottom:10px;font-family:var(--sl-display);font-weight:600;
  font-size:1.0625rem;letter-spacing:-.02em;color:var(--sl-gold);
}
.sl-marquee{position:relative;overflow:hidden;padding:22px 0;margin-top:36px;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.sl-marquee::before,.sl-marquee::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.sl-marquee::before{left:0;background:linear-gradient(90deg,var(--sl-green-deep),transparent)}
.sl-marquee::after{right:0;background:linear-gradient(270deg,var(--sl-green-deep),transparent)}
.sl-marquee__track{display:flex;align-items:center;gap:56px;width:max-content;animation:slMarquee 38s linear infinite}
.sl-marquee:hover .sl-marquee__track{animation-play-state:paused}
.sl-marquee__track img{height:26px;width:auto;opacity:.7;transition:opacity .25s var(--sl-ease)}
.sl-marquee__track img:hover{opacity:1}
.sl-marquee__track span{font-family:var(--sl-display);font-weight:600;font-size:1rem;color:rgba(255,255,255,.6);white-space:nowrap}
@keyframes slMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.sl-marquee__track{animation:none}}

/* ---------- tech chips with brand marks ---------- */
.sl-tag--logo{display:inline-flex;align-items:center;gap:8px;padding-left:10px}
.sl-tag--logo img{height:16px;width:auto;max-width:22px;object-fit:contain;flex:none;opacity:.9}
.sl-tag--logo:hover img{opacity:1}
.sl-layer__tag.sl-tag--logo{padding-left:9px}

/* header CTA must never be squeezed by the nav list */
.sl-nav__cta{flex:none}
.sl-nav ul{flex:0 1 auto;min-width:0}
.sl-header__bar{gap:24px}
@media (max-width:1100px){
  .sl-nav{gap:16px}
  .sl-nav ul{gap:14px}
  .sl-nav a{font-size:.78125rem}
}

/* Dark band: render every brand mark as a uniform white silhouette so mixed
   full-colour and dark-wordmark logos all read against the deep green. */
.sl-section--dark .sl-plat__logo,
.sl-marquee__track img{filter:brightness(0) invert(1);opacity:.82;transition:opacity .25s var(--sl-ease)}
.sl-section--dark .sl-plat__item:hover .sl-plat__logo,
.sl-marquee__track img:hover{opacity:1}
.sl-plat__logo{height:22px;max-width:120px}
.sl-marquee__track img{height:22px}

/* The generic `.sl-nav a` rule outranks `.sl-nav__cta`, which stripped the pill's
   horizontal padding. Match specificity so the button keeps its shape. */
.sl-nav a.sl-nav__cta{
  padding:11px 20px;border-bottom:none;color:var(--sl-white);
  background:var(--sl-green);border-radius:999px;flex:none;
}
.sl-nav a.sl-nav__cta:hover{background:var(--sl-gold);color:var(--sl-green-deep);border-bottom:none}

/* ---------- gold CTA band ----------
   Keeps the closing call to action visually separate from the dark green footer. */
.sl-section--gold{
  position:relative;overflow:hidden;color:var(--sl-green-deep);
  background:linear-gradient(150deg,var(--sl-gold-2) 0%,var(--sl-gold) 52%,var(--sl-gold-3) 100%);
}
.sl-section--gold h2,.sl-section--gold h3,.sl-section--gold h4{color:var(--sl-green-deep)}
.sl-section--gold .sl-lede{color:rgba(0,48,31,.80)}
.sl-section--gold .sl-kicker span{color:var(--sl-green)}
.sl-section--gold .sl-kicker::before{background:var(--sl-green-deep)}
/* primary action flips to deep green for contrast on gold */
.sl-section--gold .sl-btn--gold{background:var(--sl-green);border-color:var(--sl-green);color:var(--sl-white)}
.sl-section--gold .sl-btn--gold:hover{background:var(--sl-green-deep);border-color:var(--sl-green-deep);color:var(--sl-white);transform:translateY(-2px)}
.sl-section--gold .sl-btn--ghost{border-color:rgba(0,48,31,.38);color:var(--sl-green-deep);font-weight:500}
.sl-section--gold .sl-btn--ghost:hover{background:rgba(0,48,31,.09);border-color:var(--sl-green-deep);color:var(--sl-green-deep)}
.sl-section--gold .sl-blob{opacity:.5;mix-blend-mode:soft-light}
.sl-section--gold .sl-h2{color:var(--sl-green-deep)}
.sl-section--gold p{color:rgba(0,48,31,.82)}

/* ================= accessibility widget ================= */
.sl-a11y{position:fixed;left:22px;bottom:22px;z-index:90}
.sl-a11y__toggle{
  width:48px;height:48px;border-radius:50%;cursor:pointer;
  background:var(--sl-green);color:var(--sl-white);border:1px solid var(--sl-green);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(0,69,50,.28);
  transition:background 200ms var(--sl-ease),transform 200ms var(--sl-ease);
}
.sl-a11y__toggle:hover{background:var(--sl-gold);color:var(--sl-green-deep);border-color:var(--sl-gold);transform:translateY(-2px)}
.sl-a11y__toggle svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.sl-a11y__toggle svg circle{fill:currentColor;stroke:none}
.sl-a11y__panel{
  position:absolute;left:0;bottom:60px;width:288px;padding:18px;border-radius:20px;
  background:var(--sl-white);border:1px solid rgba(0,69,50,.12);
  box-shadow:0 24px 60px rgba(0,69,50,.20);
}
.sl-a11y__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;
  font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--sl-gold-dark)}
.sl-a11y__close{background:none;border:none;cursor:pointer;color:var(--sl-muted);padding:2px;display:flex}
.sl-a11y__close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.sl-a11y__close:hover{color:var(--sl-green)}
.sl-a11y__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.sl-a11y__label{font-size:.875rem;color:var(--sl-text)}
.sl-a11y__group{display:flex;gap:6px}
.sl-a11y__btn{
  min-width:34px;height:32px;border-radius:9px;cursor:pointer;font-size:.8125rem;font-weight:600;
  background:var(--sl-tint);border:1px solid rgba(0,69,50,.12);color:var(--sl-green);
  transition:all 150ms var(--sl-ease);
}
.sl-a11y__btn:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}
.sl-a11y__opt{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:.875rem;color:var(--sl-text);cursor:pointer}
.sl-a11y__opt input{width:17px;height:17px;accent-color:var(--sl-green);cursor:pointer;flex:none}
.sl-a11y__reset{
  width:100%;margin-top:12px;padding:10px;border-radius:999px;cursor:pointer;font-size:.8125rem;font-weight:500;
  background:var(--sl-green);color:var(--sl-white);border:1px solid var(--sl-green);transition:all 150ms var(--sl-ease);
}
.sl-a11y__reset:hover{background:var(--sl-gold);color:var(--sl-green-deep);border-color:var(--sl-gold)}
@media (max-width:600px){.sl-a11y{left:14px;bottom:14px}.sl-a11y__panel{width:min(288px,calc(100vw - 28px))}}

/* ---- preference classes applied to <html> ---- */
html.sl-a11y-contrast body{background:#fff}
html.sl-a11y-contrast{--sl-text:#111;--sl-muted:#222;--sl-muted-2:#333;--sl-body:#111;--sl-line:#555;--sl-mist:#fff;--sl-sage:#eee}
html.sl-a11y-contrast .sl-section--dark,html.sl-a11y-contrast .sl-hero,html.sl-a11y-contrast .sl-banner,html.sl-a11y-contrast .sl-footer{background:#00170f}
html.sl-a11y-contrast .sl-card,html.sl-a11y-contrast .sl-work__card,html.sl-a11y-contrast .sl-faq__item{background:#fff;border-color:#555}
html.sl-a11y-links a{text-decoration:underline!important;text-underline-offset:3px}
html.sl-a11y-links .sl-btn,html.sl-a11y-links .sl-nav__cta{text-decoration:none!important;outline:2px solid var(--sl-gold-dark);outline-offset:2px}
html.sl-a11y-readable,html.sl-a11y-readable body,
html.sl-a11y-readable h1,html.sl-a11y-readable h2,html.sl-a11y-readable h3,html.sl-a11y-readable h4,
html.sl-a11y-readable p,html.sl-a11y-readable a,html.sl-a11y-readable span,html.sl-a11y-readable li,
html.sl-a11y-readable button,html.sl-a11y-readable input,html.sl-a11y-readable textarea{
  font-family:Verdana,Tahoma,"DejaVu Sans",sans-serif!important;letter-spacing:.01em!important;
}
html.sl-a11y-spacing body{line-height:1.95!important;letter-spacing:.035em!important;word-spacing:.12em!important}
html.sl-a11y-spacing p,html.sl-a11y-spacing li{margin-bottom:1em!important}
html.sl-a11y-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* keyboard focus is always visible */
.sl-a11y__toggle:focus-visible,.sl-a11y__btn:focus-visible,.sl-a11y__reset:focus-visible,
.sl-btn:focus-visible,.sl-nav a:focus-visible,.sl-faq__q:focus-visible,.sl-carousel__btn:focus-visible{
  outline:3px solid var(--sl-gold);outline-offset:2px;border-radius:6px;
}

/* ---------------------------------------------------------------
   Horizontal delivery timeline (replaces the 4-up step grid)
   --------------------------------------------------------------- */
.sl-tl{position:relative}
.sl-tl__viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;padding-bottom:6px;outline:none}
.sl-tl__viewport::-webkit-scrollbar{display:none}
.sl-tl__viewport:focus-visible{outline:2px solid var(--sl-gold);outline-offset:6px;border-radius:20px}
.sl-tl__track{display:flex;list-style:none;margin:0;padding:0;align-items:stretch}
.sl-tl__item{position:relative;flex:0 0 clamp(268px,25%,330px);padding-right:24px;scroll-snap-align:start}
.sl-tl__item:last-child{padding-right:0}

/* the continuous rail runs through every node, so there is no gap in the line */
.sl-tl__node{position:relative;height:34px;display:flex;align-items:center}
.sl-tl__node::before{content:"";position:absolute;left:0;right:-1px;top:50%;height:2px;transform:translateY(-50%);background:rgba(0,69,50,.14)}
.sl-tl__item:first-child .sl-tl__node::before{left:9px}
.sl-tl__item:last-child .sl-tl__node::before{right:auto;width:9px}
.sl-tl__dot{position:relative;z-index:1;width:18px;height:18px;border-radius:50%;background:var(--sl-white);border:2px solid rgba(0,69,50,.22);transition:border-color 400ms var(--sl-ease),background 400ms var(--sl-ease),box-shadow 400ms var(--sl-ease),transform 400ms var(--sl-ease)}
.sl-tl__dot::after{content:"";position:absolute;inset:4px;border-radius:50%;background:transparent;transition:background 400ms var(--sl-ease)}
.sl-tl__item.is-active .sl-tl__dot{border-color:var(--sl-gold);background:var(--sl-white);transform:scale(1.12);box-shadow:0 0 0 6px rgba(240,176,64,.18)}
.sl-tl__item.is-active .sl-tl__dot::after{background:var(--sl-gold)}
.sl-tl__item.is-done .sl-tl__dot{border-color:var(--sl-green);}
.sl-tl__item.is-done .sl-tl__dot::after{background:var(--sl-green)}
.sl-tl__item.is-done .sl-tl__node::before{background:rgba(0,69,50,.32)}

.sl-tl__card{margin-top:18px;height:calc(100% - 52px);border-radius:20px;padding:26px 24px 30px;background:linear-gradient(160deg,var(--sl-white) 0%,#EFF7EC 100%);border:1px solid rgba(0,69,50,.08);transition:transform 500ms var(--sl-ease),background 500ms var(--sl-ease),box-shadow 500ms var(--sl-ease),border-color 500ms var(--sl-ease)}
.sl-tl__card .sl-step__n{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;color:var(--sl-gold-dark)}
.sl-tl__card h4{margin-top:14px;font-size:1.0625rem}
.sl-tl__card p{margin-top:10px;font-size:.9375rem;color:var(--sl-body)}
.sl-tl__item.is-active .sl-tl__card{background:linear-gradient(160deg,var(--sl-gold-2) 0%,var(--sl-gold-3) 100%);border-color:rgba(139,94,16,.18);box-shadow:0 16px 38px rgba(0,69,50,.14);transform:translateY(-4px)}
.sl-tl__item.is-active .sl-tl__card .sl-step__n{color:var(--sl-green-deep)}
.sl-tl__item:not(.is-active) .sl-tl__card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,69,50,.10)}

/* progress rail + controls */
.sl-tl__rail{margin-top:28px;height:3px;border-radius:3px;background:rgba(0,69,50,.10);overflow:hidden}
.sl-tl__fill{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--sl-green) 0%,var(--sl-gold) 100%);transition:width 260ms linear}
.sl-tl__bar{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.sl-tl__dots{display:flex;align-items:center;gap:8px}
.sl-tl__pip{width:26px;height:22px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.sl-tl__pip span{display:block;width:22px;height:4px;border-radius:4px;background:rgba(0,69,50,.16);transition:background 360ms var(--sl-ease),width 360ms var(--sl-ease)}
.sl-tl__pip:hover span{background:rgba(0,69,50,.34)}
.sl-tl__pip.is-active span{width:34px;background:var(--sl-gold)}
.sl-tl__pip:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px;border-radius:6px}
.sl-tl__nav{display:flex;align-items:center;gap:10px}
.sl-tl__btn{width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,69,50,.16);background:var(--sl-white);color:var(--sl-green);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background 300ms var(--sl-ease),color 300ms var(--sl-ease),border-color 300ms var(--sl-ease),transform 300ms var(--sl-ease)}
.sl-tl__btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sl-tl__btn[data-play] .sl-tl__ico--play{display:none;fill:currentColor;stroke-width:1}
.sl-tl__btn[data-play].is-paused .sl-tl__ico--pause{display:none}
.sl-tl__btn[data-play].is-paused .sl-tl__ico--play{display:block}
.sl-tl__btn:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-2px)}
.sl-tl__btn:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px}
.sl-tl__btn[disabled]{opacity:.35;cursor:default;transform:none;background:var(--sl-white);color:var(--sl-green);border-color:rgba(0,69,50,.16)}
.sl-tl.is-static .sl-tl__rail,.sl-tl.is-static .sl-tl__bar{display:none}
.sl-tl.is-static .sl-tl__item{flex:1 1 0}

/* dark bands */
.sl-section--dark .sl-tl__node::before{background:rgba(255,255,255,.16)}
.sl-section--dark .sl-tl__item.is-done .sl-tl__node::before{background:rgba(255,255,255,.34)}
.sl-section--dark .sl-tl__dot{background:var(--sl-green-deep);border-color:rgba(255,255,255,.26)}
.sl-section--dark .sl-tl__card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.10)}
.sl-section--dark .sl-tl__card p{color:rgba(255,255,255,.74)}
.sl-section--dark .sl-tl__rail{background:rgba(255,255,255,.12)}
.sl-section--dark .sl-tl__pip span{background:rgba(255,255,255,.2)}
.sl-section--dark .sl-tl__btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.24)}

@media (max-width:900px){
  .sl-tl__item{flex:0 0 min(78%,300px)}
  .sl-tl__bar{justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .sl-tl__card,.sl-tl__dot,.sl-tl__fill{transition:none}
}

/* ---------------------------------------------------------------
   Section header row: heading left, standfirst right
   --------------------------------------------------------------- */
.sl-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end}
.sl-head > p.sl-intro{margin:0;padding-bottom:6px}
@media (max-width:900px){.sl-head{grid-template-columns:1fr;align-items:start}.sl-head > p.sl-intro{padding-bottom:0}}

/* ---------------------------------------------------------------
   Industry matrix: hairline grid of sector tiles
   --------------------------------------------------------------- */
.sl-ind{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--sl-line);border-radius:22px;overflow:hidden;background:var(--sl-white)}
.sl-ind__tile{position:relative;display:flex;flex-direction:column;padding:30px 26px 34px;color:inherit;text-decoration:none;border-right:1px solid var(--sl-line);border-bottom:1px solid var(--sl-line);background:var(--sl-white);transition:background 420ms var(--sl-ease),color 420ms var(--sl-ease),transform 420ms var(--sl-ease)}
.sl-ind__tile:nth-child(4n){border-right:0}
.sl-ind__tile:nth-last-child(-n+4){border-bottom:0}
.sl-ind__tile::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--sl-gold);transform:scaleX(0);transform-origin:left;transition:transform 460ms var(--sl-ease)}
.sl-ind__num{font-family:var(--sl-mono);font-size:.625rem;font-weight:500;letter-spacing:.18em;color:var(--sl-muted-2);transition:color 420ms var(--sl-ease)}
.sl-ind__icon{margin-top:20px;width:44px;height:44px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:var(--sl-tint);color:var(--sl-green);transition:background 420ms var(--sl-ease),color 420ms var(--sl-ease),transform 420ms var(--sl-ease)}
.sl-ind__icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sl-ind__name{margin-top:18px;font-family:var(--sl-display);font-weight:600;font-size:1.0625rem;line-height:1.3;color:var(--sl-green-deep);transition:color 420ms var(--sl-ease)}
.sl-ind__body{margin-top:9px;font-size:.875rem;line-height:1.6;color:var(--sl-body);transition:color 420ms var(--sl-ease)}
.sl-ind__go{margin-top:18px;width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,69,50,.16);display:inline-flex;align-items:center;justify-content:center;color:var(--sl-green);opacity:0;transform:translateX(-6px);transition:opacity 420ms var(--sl-ease),transform 420ms var(--sl-ease),border-color 420ms var(--sl-ease),color 420ms var(--sl-ease)}
.sl-ind__go svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
a.sl-ind__tile:hover{background:var(--sl-green);transform:translateY(-2px);z-index:1}
a.sl-ind__tile:hover::after{transform:scaleX(1)}
a.sl-ind__tile:hover .sl-ind__name{color:#fff}
a.sl-ind__tile:hover .sl-ind__body{color:rgba(255,255,255,.76)}
a.sl-ind__tile:hover .sl-ind__num{color:var(--sl-gold)}
a.sl-ind__tile:hover .sl-ind__icon{background:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-2px)}
a.sl-ind__tile:hover .sl-ind__go{opacity:1;transform:none;border-color:rgba(255,255,255,.3);color:#fff}
a.sl-ind__tile:focus-visible{outline:2px solid var(--sl-gold);outline-offset:-3px}

.sl-section--dark .sl-ind{background:transparent;border-color:rgba(255,255,255,.14)}
.sl-section--dark .sl-ind__tile{background:transparent;border-color:rgba(255,255,255,.14)}
.sl-section--dark .sl-ind__name{color:#fff}
.sl-section--dark .sl-ind__body{color:rgba(255,255,255,.7)}
.sl-section--dark .sl-ind__icon{background:rgba(255,255,255,.08);color:#fff}
.sl-section--dark a.sl-ind__tile:hover{background:rgba(255,255,255,.06)}

@media (max-width:1100px){
  .sl-ind{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sl-ind__tile:nth-child(4n){border-right:1px solid var(--sl-line)}
  .sl-ind__tile:nth-child(3n){border-right:0}
  .sl-ind__tile:nth-last-child(-n+4){border-bottom:1px solid var(--sl-line)}
  .sl-ind__tile:nth-last-child(-n+3){border-bottom:0}
}
@media (max-width:760px){
  .sl-ind{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sl-ind__tile{padding:24px 20px 28px}
  .sl-ind__tile:nth-child(3n){border-right:1px solid var(--sl-line)}
  .sl-ind__tile:nth-child(2n){border-right:0}
  .sl-ind__tile:nth-last-child(-n+3){border-bottom:1px solid var(--sl-line)}
  .sl-ind__tile:nth-last-child(-n+2){border-bottom:0}
  .sl-ind__body{display:none}
}

/* ---------------------------------------------------------------
   Long-form editorial block (sl_detail)
   --------------------------------------------------------------- */
.sl-h2--sm{font-size:clamp(1.6rem,2.6vw,2.15rem)}
.sl-detail{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr);gap:clamp(28px,5vw,80px);align-items:start}
.sl-detail__rail{position:sticky;top:104px}
.sl-detail__intro{margin-top:18px;font-size:1rem;line-height:1.75;color:var(--sl-body)}
.sl-detail__note{margin-top:20px;padding-left:16px;border-left:2px solid var(--sl-gold);font-size:.875rem;line-height:1.7;color:var(--sl-muted)}
.sl-detail__body{display:flex;flex-direction:column}
.sl-detail__block{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;padding:30px 0;border-top:1px solid var(--sl-line)}
.sl-detail__block:first-child{border-top:0;padding-top:0}
.sl-detail__block:last-child{padding-bottom:0}
.sl-detail__num{font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.15em;color:var(--sl-gold-dark)}
.sl-detail__text h3{color:var(--sl-green-deep);font-size:1.125rem;line-height:1.35}
.sl-detail__text p{margin-top:12px;font-size:.9688rem;line-height:1.8;color:var(--sl-body)}
.sl-detail__list{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:9px}
.sl-detail__list li{position:relative;padding-left:24px;font-size:.9375rem;line-height:1.65;color:var(--sl-body)}
.sl-detail__list li::before{content:"";position:absolute;left:2px;top:9px;width:9px;height:9px;border-radius:50%;border:2px solid var(--sl-gold)}
.sl-section--dark .sl-detail__block{border-color:rgba(255,255,255,.12)}
.sl-section--dark .sl-detail__text h3{color:#fff}
.sl-section--dark .sl-detail__text p,.sl-section--dark .sl-detail__list li,.sl-section--dark .sl-detail__intro{color:rgba(255,255,255,.74)}
@media (max-width:980px){
  .sl-detail{grid-template-columns:1fr;gap:34px}
  .sl-detail__rail{position:static}
  .sl-detail__block{grid-template-columns:40px minmax(0,1fr)}
}

/* ---------------------------------------------------------------
   Credentials: partner and compliance cards
   --------------------------------------------------------------- */
.sl-cred .sl-carousel__track{gap:18px}
.sl-cred .sl-carousel__track > *{flex:0 0 clamp(240px,25%,300px)}
.sl-cred .sl-carousel__viewport{overflow:visible}
.sl-cred .sl-carousel__nav{margin-top:24px;justify-content:flex-start}
.sl-cred__card{display:flex;gap:16px;padding:26px 22px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);transition:background 420ms var(--sl-ease),border-color 420ms var(--sl-ease),transform 420ms var(--sl-ease)}
.sl-cred__card:hover{background:rgba(255,255,255,.09);border-color:rgba(240,176,64,.4);transform:translateY(-3px)}
.sl-cred__seal{flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:rgba(240,176,64,.16);color:var(--sl-gold)}
.sl-cred__seal svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sl-cred__name{font-family:var(--sl-display);font-size:1rem;font-weight:600;color:#fff;line-height:1.3}
.sl-cred__label{display:block;margin-top:5px;font-family:var(--sl-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-gold)}
.sl-cred__text p{margin-top:10px;font-size:.875rem;line-height:1.65;color:rgba(255,255,255,.72)}
.sl-cred__note{margin-top:30px;font-size:.8125rem;line-height:1.7;color:rgba(255,255,255,.55);max-width:76ch}
.sl-section--tint .sl-cred__card{background:var(--sl-white);border-color:var(--sl-line)}
.sl-section--tint .sl-cred__seal{background:var(--sl-tint);color:var(--sl-green)}
.sl-section--tint .sl-cred__name{color:var(--sl-green-deep)}
.sl-section--tint .sl-cred__label{color:var(--sl-gold-dark)}
.sl-section--tint .sl-cred__text p{color:var(--sl-body)}
.sl-section--tint .sl-cred__note{color:var(--sl-muted)}

/* ---------------------------------------------------------------
   Testimonials: three up, centre weighted
   --------------------------------------------------------------- */
.sl-quotes{position:relative}
.sl-quotes__viewport{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;padding:8px 0 12px}
.sl-quotes__viewport::-webkit-scrollbar{display:none}
.sl-quotes__track{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.sl-quotes__item{flex:0 0 clamp(280px,32%,420px);scroll-snap-align:center;display:flex}
.sl-quotes__card{margin:0;display:flex;flex-direction:column;width:100%;padding:32px 28px 28px;border-radius:22px;background:var(--sl-white);border:1px solid var(--sl-line);transition:transform 480ms var(--sl-ease),box-shadow 480ms var(--sl-ease),border-color 480ms var(--sl-ease),background 480ms var(--sl-ease)}
.sl-quotes__mark{font-family:var(--sl-display);font-size:2.75rem;line-height:.6;color:var(--sl-gold)}
.sl-quotes__card blockquote{margin:20px 0 0;font-size:1rem;line-height:1.8;color:var(--sl-body)}
.sl-quotes__card figcaption{margin-top:22px;padding-top:18px;border-top:1px solid var(--sl-line)}
.sl-quotes__name{display:block;font-family:var(--sl-display);font-weight:600;font-size:.9375rem;color:var(--sl-green-deep)}
.sl-quotes__role{display:block;margin-top:3px;font-size:.8125rem;color:var(--sl-muted-2)}
.sl-quotes__item.is-active .sl-quotes__card{transform:translateY(-6px);border-color:rgba(240,176,64,.55);box-shadow:0 20px 46px rgba(0,69,50,.13)}
.sl-quotes__item:not(.is-active) .sl-quotes__card{background:var(--sl-tint-4)}
.sl-quotes__bar{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.sl-quotes__dots{display:flex;gap:8px}
.sl-quotes__pip{width:26px;height:22px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.sl-quotes__pip span{display:block;width:22px;height:4px;border-radius:4px;background:rgba(0,69,50,.16);transition:background 360ms var(--sl-ease),width 360ms var(--sl-ease)}
.sl-quotes__pip.is-active span{width:34px;background:var(--sl-gold)}
.sl-quotes__nav{display:flex;gap:10px}
@media (max-width:900px){.sl-quotes__item{flex:0 0 min(84%,360px)}.sl-quotes__bar{justify-content:center}}

/* ---------------------------------------------------------------
   Mega menu
   --------------------------------------------------------------- */
.sl-nav__item{position:static}
.sl-nav a.sl-nav__link{display:inline-flex;align-items:center;gap:5px}
.sl-nav__caret{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 320ms var(--sl-ease);opacity:.7}
.sl-nav__item.is-open > .sl-nav__link .sl-nav__caret{transform:rotate(180deg)}
.sl-nav .sl-nav__item.is-open > .sl-nav__link{color:var(--sl-green);border-bottom-color:var(--sl-gold)}
.sl-nav__expand{display:none}

.sl-mega{
  position:absolute;left:0;right:0;top:100%;z-index:59;
  background:var(--sl-white);border-top:1px solid var(--sl-line);
  border-bottom:1px solid var(--sl-line);
  box-shadow:0 26px 50px -24px rgba(0,48,31,.28);
  opacity:0;transform:translateY(-8px);pointer-events:none;
  transition:opacity 260ms var(--sl-ease),transform 260ms var(--sl-ease);
}
.sl-mega::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:linear-gradient(90deg,var(--sl-green) 0%,var(--sl-gold) 100%)}
.sl-nav__item.is-open > .sl-mega{opacity:1;transform:none;pointer-events:auto}
.sl-mega__inner{max-width:var(--sl-shell);margin:0 auto;padding:38px var(--sl-gutter) 42px;display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,2fr);gap:clamp(28px,4vw,64px)}
.sl-mega__aside{padding-right:clamp(16px,2vw,32px);border-right:1px solid var(--sl-line)}
.sl-mega__lede{margin-top:16px;font-size:.875rem;line-height:1.7;color:var(--sl-body)}
.sl-nav .sl-mega__all{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sl-green);border-bottom:0;padding:0}
.sl-mega__all svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 300ms var(--sl-ease)}
.sl-nav .sl-mega__all:hover{color:var(--sl-gold-dark);border-bottom:0}
.sl-nav .sl-mega__all:hover svg{transform:translateX(4px)}

.sl-mega__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 18px;align-content:start}
.sl-nav a.sl-mega__link{display:block;padding:12px 14px;border-radius:12px;border-bottom:0;white-space:normal;transition:background 260ms var(--sl-ease),transform 260ms var(--sl-ease)}
.sl-nav a.sl-mega__link:hover{background:var(--sl-tint);border-bottom:0;transform:translateX(2px)}
.sl-mega__name{display:block;font-family:var(--sl-display);font-weight:600;font-size:.875rem;color:var(--sl-green-deep);line-height:1.35}
.sl-mega__blurb{display:block;margin-top:4px;font-size:.78rem;line-height:1.55;color:var(--sl-muted-2);font-weight:400}
.sl-nav a.sl-mega__link.is-current{background:var(--sl-tint)}
.sl-nav a.sl-mega__link.is-current .sl-mega__name{color:var(--sl-gold-dark)}

.sl-mega__cols--grouped{gap:26px 24px;grid-template-columns:repeat(4,minmax(0,1fr))}
.sl-nav a.sl-mega__grouphead{display:block;font-family:var(--sl-mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sl-gold-dark);padding:0 0 10px;border-bottom:1px solid var(--sl-line);white-space:normal}
.sl-mega__group ul{display:block !important;margin:10px 0 0;padding:0;list-style:none}
.sl-mega__group li{margin:0}
.sl-nav .sl-mega__group a:not(.sl-mega__grouphead){display:block;padding:6px 0;font-size:.8125rem;color:var(--sl-body);border-bottom:0;white-space:normal}
.sl-nav .sl-mega__group a:not(.sl-mega__grouphead):hover{color:var(--sl-green);border-bottom:0}
.sl-nav .sl-mega__group a.is-current{color:var(--sl-gold-dark)}

@media (max-width:900px){
  .sl-nav__item{position:relative}
  .sl-nav__caret{display:none}
  .sl-nav__expand{display:flex;position:absolute;right:0;top:0;height:45px;width:44px;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--sl-green)}
  .sl-nav__expand svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 300ms var(--sl-ease)}
  .sl-nav__expand[aria-expanded="true"] svg{transform:rotate(180deg)}
  .sl-mega{position:static;opacity:1;transform:none;pointer-events:auto;box-shadow:none;border:0;background:var(--sl-tint-4);border-radius:12px;margin:0 0 10px}
  .sl-mega::before{display:none}
  .sl-mega__inner{display:block;padding:10px 14px 14px;max-width:none}
  .sl-mega__aside{border-right:0;padding:0 0 12px}
  .sl-mega__aside .sl-kicker{display:none}
  .sl-mega__lede{display:none}
  .sl-mega__cols,.sl-mega__cols--grouped{grid-template-columns:1fr;gap:0}
  .sl-nav a.sl-mega__link{padding:10px 0;border-bottom:1px solid var(--sl-line)}
  .sl-mega__blurb{display:none}
}

/* Legal and policy pages: no artwork, title centred, comfortable measure */
.sl-banner--center .sl-banner__in{text-align:center;max-width:860px}
.sl-banner--center .sl-crumb{justify-content:center}
.sl-banner--center .sl-kicker{justify-content:center}
.sl-banner--center .sl-lede{margin-left:auto;margin-right:auto}
.sl-banner--center .sl-actions{justify-content:center}
.sl-banner--center .sl-blob{display:none}

/* ---------------------------------------------------------------
   Footer: sitemap columns and a legal bar
   --------------------------------------------------------------- */
.sl-footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.sl-footer__col > span{display:block;font-family:var(--sl-mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sl-gold);padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.14)}
.sl-footer__col ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.sl-footer__col a{font-size:.8125rem;color:rgba(255,255,255,.7);transition:color 260ms var(--sl-ease)}
.sl-footer__col a:hover{color:var(--sl-gold)}
.sl-footer__legal{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center}
.sl-footer__legal a{font-size:.75rem;color:rgba(255,255,255,.6)}
.sl-footer__legal a:hover{color:var(--sl-gold)}
@media (max-width:900px){.sl-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}}
@media (max-width:560px){.sl-footer__cols{grid-template-columns:1fr}}

/* legal bar: separators between links only, never a leading one */
.sl-footer__legal li{position:relative;list-style:none}
.sl-footer__legal li + li{padding-left:20px}
.sl-footer__legal li + li::before{content:"";position:absolute;left:7px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--sl-gold);opacity:.7;transform:translateY(-50%)}
.sl-footer__legal{margin:0;padding:0}
.sl-footer__col a{line-height:1.45}

/* ---------------------------------------------------------------
   Brand figures: schematic artwork for the space beside body copy
   --------------------------------------------------------------- */
.sl-rich--split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.82fr);gap:clamp(28px,5vw,72px);align-items:start}
.sl-rich--split .sl-article{max-width:64ch;margin-left:0}
.sl-rich__fig{position:sticky;top:110px}

.sl-figure{margin:0;position:relative}
.sl-figure svg{display:block;width:100%;height:auto;overflow:visible}
.sl-figure figcaption{margin-top:14px;font-family:var(--sl-mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-muted-2)}

/* shared drawing language: isometric solids, three shaded faces each */
.sl-figure__field{opacity:.55}
.sl-figure__scene path,.sl-figure__scene circle{shape-rendering:geometricPrecision}

.iso-top{fill:url(#slIsoTop)}
.iso-left{fill:url(#slIsoLeft)}
.iso-right{fill:url(#slIsoRight)}
.iso-top,.iso-left,.iso-right{stroke:var(--sl-green-deep);stroke-width:.9;stroke-linejoin:round;stroke-opacity:.28}

.iso-top.is-gold{fill:url(#slIsoGoldTop)}
.iso-left.is-gold{fill:url(#slIsoGoldLeft)}
.iso-right.is-gold{fill:url(#slIsoGoldRight)}
.is-gold{stroke:var(--sl-gold-dark);stroke-opacity:.32}

.iso-top.is-hub{fill:var(--sl-green-bright)}
.iso-left.is-hub{fill:url(#slIsoHub)}
.iso-right.is-hub{fill:var(--sl-green-deep)}

.iso-top.is-base{fill:var(--sl-white);fill-opacity:.9}
.iso-left.is-base,.iso-right.is-base{fill:var(--sl-mist);fill-opacity:.75}
.is-base{stroke-opacity:.18}

.iso-top.is-cool{fill:url(#slIsoTop)}
.iso-top.is-plane{fill:var(--sl-tint-2)}
.iso-left.is-plane{fill:var(--sl-green-mid);fill-opacity:.75}
.iso-right.is-plane{fill:var(--sl-green);fill-opacity:.8}
.iso-top.is-cool-low{fill:var(--sl-tint-4)}
.iso-left.is-cool-low,.iso-right.is-cool-low{fill:var(--sl-sage);fill-opacity:.55}
.iso-top.is-warm{fill:#FDF0D8}
.iso-left.is-warm{fill:var(--sl-gold-3);fill-opacity:.75}
.iso-right.is-warm{fill:var(--sl-gold-dark);fill-opacity:.75}
.iso-top.is-warmlow{fill:#FAF3E6}
.iso-left.is-warmlow,.iso-right.is-warmlow{fill:var(--sl-gold-dark);fill-opacity:.42}

.iso-top.is-track{fill:var(--sl-mist);fill-opacity:.8}
.iso-left.is-track,.iso-right.is-track{fill:var(--sl-green);fill-opacity:.45}

.iso-top.is-page{fill:var(--sl-white)}
.iso-left.is-page,.iso-right.is-page{fill:var(--sl-mist);fill-opacity:.85}
.iso-top.is-page-top{fill:var(--sl-white)}
.iso-left.is-page-top{fill:var(--sl-sage);fill-opacity:.8}
.iso-right.is-page-top{fill:var(--sl-green);fill-opacity:.45}

.iso-top.is-sheet{fill:var(--sl-tint-4)}
.iso-left.is-sheet,.iso-right.is-sheet{fill:var(--sl-mist)}

.iso-top.is-glass{fill:var(--sl-white);fill-opacity:.96}
.iso-left.is-glass,.iso-right.is-glass{fill:var(--sl-mist);fill-opacity:.9}
.is-glass{stroke:var(--sl-green);stroke-opacity:.3}

.iso-top.is-ghost{fill:none;stroke-dasharray:7 6;stroke-opacity:.55}
.iso-left.is-ghost,.iso-right.is-ghost{fill:none;stroke:none}

/* connective tissue */
.iso-beam{fill:none;stroke:url(#slIsoBeam);stroke-width:2.6;stroke-linecap:round}
.iso-drop{fill:none;stroke:var(--sl-green);stroke-width:1.2;stroke-dasharray:4 5;opacity:.45}
.iso-rule{fill:none;stroke:var(--sl-green);stroke-width:1.3;opacity:.42}
.iso-hair{fill:none;stroke:var(--sl-green);stroke-width:2.6;stroke-linecap:round;opacity:.2}
.iso-hair.is-light{stroke:#fff;opacity:.5}
.iso-hair.is-dark{stroke:var(--sl-green-deep);opacity:.34}
.iso-arrow{fill:none;stroke:var(--sl-gold-3);stroke-width:4;stroke-linecap:round;opacity:1}
.iso-ribbon{fill:none;stroke:var(--sl-gold);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.iso-dot{fill:var(--sl-gold);stroke:var(--sl-white);stroke-width:1.6}
.iso-spark{fill:var(--sl-gold);opacity:.85}
.iso-pin{fill:var(--sl-green-deep);opacity:.5}
.iso-select{fill:none;stroke:var(--sl-gold);stroke-width:2;stroke-dasharray:7 5;opacity:.9}

/* the audit seal is drawn in screen space, not scene space */
.iso-seal__body{fill:url(#slIsoHub);stroke:var(--sl-green-deep);stroke-opacity:.3}
.iso-seal__ring{fill:none;stroke:#fff;stroke-opacity:.3;stroke-width:1.6}
.iso-seal__check{fill:none;stroke:var(--sl-gold);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}

/* the scene assembles on reveal, back to front */
.sl-figure__scene > *{opacity:0;transform:translateY(14px)}
[data-sl-reveal].is-in .sl-figure__scene > *{animation:slIsoIn 620ms var(--sl-ease) forwards;animation-delay:calc(var(--i, 0) * 65ms + 120ms)}
.iso-beam,.iso-ribbon{stroke-dasharray:600;stroke-dashoffset:600}
[data-sl-reveal].is-in .iso-beam,[data-sl-reveal].is-in .iso-ribbon{animation:slIsoIn 620ms var(--sl-ease) forwards,slIsoDraw 1100ms var(--sl-ease) forwards;animation-delay:calc(var(--i, 0) * 65ms + 120ms)}
[data-sl-reveal].is-in .iso-dot{animation:slIsoPop 620ms var(--sl-ease) forwards;animation-delay:calc(var(--i, 0) * 65ms + 320ms)}
@keyframes slIsoIn{to{opacity:1;transform:none}}
@keyframes slIsoDraw{to{stroke-dashoffset:0}}
@keyframes slIsoPop{0%{opacity:0;transform:translateY(10px) scale(.6)}60%{transform:translateY(0) scale(1.18)}100%{opacity:1;transform:none}}

/* dark bands */
.sl-section--dark .iso-top{fill:rgba(255,255,255,.14)}
.sl-section--dark .iso-left{fill:rgba(255,255,255,.07)}
.sl-section--dark .iso-right{fill:rgba(255,255,255,.04)}
.sl-section--dark .iso-top,.sl-section--dark .iso-left,.sl-section--dark .iso-right{stroke:#fff;stroke-opacity:.22}
.sl-section--dark .iso-top.is-base{fill:rgba(255,255,255,.06)}
.sl-section--dark .iso-hair{stroke:#fff;opacity:.34}
.sl-section--dark .iso-rule,.sl-section--dark .iso-drop{stroke:#fff;opacity:.35}
.sl-section--dark .iso-dot{stroke:var(--sl-green-deep)}

@media (max-width:980px){
  .sl-rich--split{grid-template-columns:1fr;gap:32px}
  .sl-rich__fig{position:static;max-width:520px}
  .sl-rich--split .sl-article{max-width:76ch}
}
@media (prefers-reduced-motion:reduce){
  .sl-figure__draw path,.sl-figure__stack path,.sl-figure__milestones line{stroke-dashoffset:0;animation:none}
  .sl-figure__node rect,.sl-figure__cells rect,.sl-figure__bars rect,.sl-figure__milestones path,.sl-figure__milestones rect,.sl-figure__dots circle,.sl-figure__ticks circle,.sl-figure__hub,.sl-figure__hi,.sl-figure__shield,.sl-figure__check{opacity:1;animation:none}
}

/* ---------------------------------------------------------------
   Read more: folded prose, all of it still in the document
   --------------------------------------------------------------- */
.sl-more__rest{overflow:hidden;transition:max-height 520ms var(--sl-ease)}
.sl-more:not(.is-open) .sl-more__rest{position:relative}
.sl-more__btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:9px 18px 9px 20px;border-radius:999px;border:1px solid rgba(0,69,50,.18);background:transparent;color:var(--sl-green);font-family:var(--sl-mono);font-size:.6875rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background 300ms var(--sl-ease),border-color 300ms var(--sl-ease),color 300ms var(--sl-ease)}
.sl-more__btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 380ms var(--sl-ease)}
.sl-more__btn:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}
.sl-more__btn:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px}
.sl-more.is-open .sl-more__btn svg{transform:rotate(180deg)}
/* a soft edge on the folded paragraph, so it reads as continuing */
.sl-more:not(.is-open) > p:first-of-type{position:relative}
.sl-section--dark .sl-more__btn{border-color:rgba(255,255,255,.24);color:#fff}
.sl-section--dark .sl-more__btn:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}
@media (prefers-reduced-motion:reduce){.sl-more__rest{transition:none}}

/* social profiles in the footer */
.sl-social{display:flex;gap:10px;list-style:none;margin:22px 0 0;padding:0}
.sl-social a{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.8);transition:background 300ms var(--sl-ease),color 300ms var(--sl-ease),border-color 300ms var(--sl-ease),transform 300ms var(--sl-ease)}
.sl-social svg{width:17px;height:17px;fill:currentColor}
.sl-social a:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-2px)}
.sl-social a:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px}

/* Clutchpilot review badge under the social icons. The embed is drawn at its native
   320x130 and scaled to 60% (192x78), since its contents can't be styled from here.
   The fixed box means the lazy load causes no layout shift, and 192px is narrower
   than the brand column at its tightest (~212px at 901px wide). */
.sl-footer__reviews{margin-top:22px}
.sl-footer__reviews > span{display:block;font-family:var(--sl-mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sl-gold);margin-bottom:8px}
.sl-footer__badge{width:192px;height:78px;overflow:hidden;border-radius:5px}
.sl-footer__badge iframe{display:block;width:320px;height:130px;border:0;transform:scale(.6);transform-origin:0 0}

/* ---------------------------------------------------------------
   Target size: WCAG 2.2 asks for at least 24 by 24 CSS pixels on
   controls. The visual dots stay small, the hit area does not.
   --------------------------------------------------------------- */
.sl-tl__pip,.sl-quotes__pip{width:30px;height:28px}
.sl-carousel__dot{width:24px;height:24px;padding:0;background:none;border:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.sl-carousel__dot::before{content:"";display:block;width:8px;height:8px;border-radius:50%;background:rgba(0,69,50,.18);transition:all .25s var(--sl-ease)}
.sl-carousel__dot.is-active::before{background:var(--sl-gold);width:22px;border-radius:5px}
.sl-section--dark .sl-carousel__dot::before{background:rgba(255,255,255,.25)}
.sl-section--dark .sl-carousel__dot.is-active::before{background:var(--sl-gold)}
.sl-carousel__dots{gap:2px}

/* navigation links in lists get a comfortable vertical hit area */
.sl-footer__col a,.sl-footer__legal a{display:inline-block;padding:5px 0}
.sl-footer__mail a{display:inline-block;padding:4px 0}
.sl-nav .sl-mega__group a:not(.sl-mega__grouphead){padding:8px 0}
@media (max-width:900px){
  .sl-footer__col a{padding:8px 0}
}

/* breadcrumb links and the carousel dot need the full 24px hit area too */
.sl-crumb a{display:inline-block;padding:5px 0}
.sl-carousel__dot{min-width:24px}
.sl-carousel__dot.is-active{width:28px}

/* services rail: one row of cards, so an odd count never orphans one */
.sl-svcrail .sl-carousel__track{gap:20px}
.sl-svcrail .sl-carousel__track > *{flex:0 0 clamp(268px,26%,336px)}
.sl-svcrail .sl-carousel__viewport{overflow:visible}
.sl-svcrail .sl-carousel__nav{margin-top:26px;justify-content:flex-start;gap:14px}
.sl-svcrail__count{font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sl-muted-2)}
.sl-svcrail .sl-card--service{height:auto}

/* ---------------------------------------------------------------
   Tab strip as a rail: the practices scroll instead of crowding
   --------------------------------------------------------------- */
.sl-tabrail{position:relative;display:flex;align-items:center;gap:10px;margin-top:36px}
.sl-tabrail .sl-tabs{margin-top:0;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;flex-wrap:nowrap;scroll-snap-type:x proximity;padding:2px 0}
.sl-tabrail .sl-tabs::-webkit-scrollbar{display:none}
.sl-tabrail .sl-tab{flex:0 0 auto;scroll-snap-align:start}
.sl-tabrail__btn{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,69,50,.16);background:var(--sl-white);color:var(--sl-green);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background 260ms var(--sl-ease),border-color 260ms var(--sl-ease),color 260ms var(--sl-ease),opacity 260ms var(--sl-ease)}
.sl-tabrail__btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sl-tabrail__btn:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep)}
.sl-tabrail__btn:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px}
.sl-tabrail__btn[hidden]{display:none}
/* a soft fade tells you the row continues */
.sl-tabrail::before,.sl-tabrail::after{content:"";position:absolute;top:0;bottom:0;width:34px;pointer-events:none;opacity:0;transition:opacity 260ms var(--sl-ease);z-index:1}
.sl-tabrail::before{left:44px;background:linear-gradient(90deg,var(--sl-white),rgba(255,255,255,0))}
.sl-tabrail::after{right:44px;background:linear-gradient(270deg,var(--sl-white),rgba(255,255,255,0))}
.sl-tabrail.can-prev::before,.sl-tabrail.can-next::after{opacity:1}
@media (max-width:700px){
  .sl-tabrail::before{left:0}
  .sl-tabrail::after{right:0}
}

/* Shared text on the dark bands. .sl-intro is a muted grey tuned for light
   sections, which left it almost invisible on dark green. */
.sl-section--dark .sl-intro,
.sl-hero .sl-intro,
.sl-banner .sl-intro{color:rgba(255,255,255,.74)}
.sl-section--dark .sl-h2,
.sl-section--dark .sl-h3{color:#fff}
.sl-section--gold .sl-intro{color:var(--sl-green-deep)}

/* ---------------------------------------------------------------
   Full width note marquee (the HIPAA wording note)
   --------------------------------------------------------------- */
.sl-notemq{position:relative;width:100%;margin-top:44px;padding:16px 0;overflow:hidden;
  border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
.sl-notemq__track{display:flex;align-items:center;gap:28px;width:max-content;
  animation:slNoteMq 64s linear infinite;will-change:transform}
.sl-notemq__item{white-space:nowrap;font-size:.8125rem;line-height:1.6;color:rgba(255,255,255,.62)}
.sl-notemq__sep{color:var(--sl-gold);opacity:.85;font-size:.75rem}
.sl-notemq:hover .sl-notemq__track,
.sl-notemq:focus-within .sl-notemq__track{animation-play-state:paused}
/* edge fades so the line dissolves rather than clipping */
.sl-notemq::before,.sl-notemq::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.sl-notemq::before{left:0;background:linear-gradient(90deg,var(--sl-green-deep),transparent)}
.sl-notemq::after{right:0;background:linear-gradient(270deg,var(--sl-green-deep),transparent)}
@keyframes slNoteMq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* light section variant */
.sl-section--tint .sl-notemq{border-color:var(--sl-line)}
.sl-section--tint .sl-notemq__item{color:var(--sl-muted)}
.sl-section--tint .sl-notemq::before{background:linear-gradient(90deg,var(--sl-tint),transparent)}
.sl-section--tint .sl-notemq::after{background:linear-gradient(270deg,var(--sl-tint),transparent)}
@media (prefers-reduced-motion:reduce){
  .sl-notemq__track{animation:none;width:auto;white-space:normal}
  .sl-notemq__item{white-space:normal}
  .sl-notemq{padding:16px var(--sl-gutter)}
}

/* ---------------------------------------------------------------
   Platforms: the card grid runs much taller than the intro column,
   so the intro sticks and travels instead of leaving dead space.
   --------------------------------------------------------------- */
.sl-plat__rail{position:sticky;top:104px}
.sl-plat__note{margin-top:20px;padding-left:16px;border-left:2px solid var(--sl-gold);font-size:.875rem;line-height:1.7;color:rgba(255,255,255,.72);max-width:52ch}
.sl-plat__cta{display:inline-flex;align-items:center;gap:9px;margin-top:26px;padding:12px 22px;border-radius:999px;border:1px solid rgba(255,255,255,.24);color:#fff;font-family:var(--sl-mono);font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;transition:background 300ms var(--sl-ease),border-color 300ms var(--sl-ease),color 300ms var(--sl-ease),transform 300ms var(--sl-ease)}
.sl-plat__cta svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform 300ms var(--sl-ease)}
.sl-plat__cta:hover{background:var(--sl-gold);border-color:var(--sl-gold);color:var(--sl-green-deep);transform:translateY(-2px)}
.sl-plat__cta:hover svg{transform:translateX(4px)}
.sl-plat__cta:focus-visible{outline:2px solid var(--sl-gold);outline-offset:3px}
@media (max-width:900px){
  .sl-plat__rail{position:static}
  .sl-plat__note{max-width:none}
}

/* Reserve the hero stat rail's height. Its text has no measured height until
   the webfont resolves, so the rail grew from 31px to 101px on load and that
   single reflow was the whole of the homepage CLS. Reserving the line boxes
   fixes it whatever the font timing does. */
.sl-rail__label{min-height:18px}
.sl-rail__value{min-height:28px}
.sl-rail__item{min-height:101px}
