/* ============================================================
   Samastha Capital Management — Design System
   Palette carried over from the existing brand.
   ============================================================ */

@import url("https://fonts.googleapis.com/css2?family=Fira+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap");

:root{
  /* Brand */
  --navy:      #1D2063;
  --navy-deep: #12143F;
  --navy-lift: #262A7E;
  --blue:      #2A1EFF;
  --blue-link: #174DAD;

  --gold-1: #CFA233;
  --gold-2: #E6BE6A;
  --gold-3: #FFF6DC;
  --gold-grad: linear-gradient(100deg, var(--gold-1), var(--gold-2) 42%, var(--gold-3) 62%, var(--gold-2) 82%, var(--gold-1));

  /* The brand gold only reaches 2.4:1 on white, so small gold text on light
     surfaces uses a deeper tone (5.3:1). Bright gold stays for navy sections. */
  --gold-ink:      #8A6613;
  --gold-grad-ink: linear-gradient(100deg, var(--gold-ink), #B08628 46%, #8F6C16 70%, var(--gold-ink));

  --slate:      #45505F;
  --slate-soft: #64707F;
  --white: #fff;
  --tint:  #F4F7FC;
  --tint-2:#EDF2FA;

  --line:      rgba(29,32,99,.11);
  --line-soft: rgba(29,32,99,.06);
  --line-gold: rgba(207,162,51,.34);

  --shadow-sm: 0 1px 2px rgba(18,20,63,.05);
  --shadow-md: 0 14px 34px -18px rgba(18,20,63,.28);
  --shadow-lg: 0 34px 70px -32px rgba(18,20,63,.42);

  --r-sm: 10px;
  --r:    16px;
  --r-lg: 22px;

  --shell: 1180px;
  --gut: clamp(20px, 5vw, 40px);
  --sec: clamp(76px, 10vw, 132px);

  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:"Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size:16.5px;
  line-height:1.68;
  color:var(--slate);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:var(--blue-link); text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; }

h1,h2,h3,h4,h5{
  margin:0;
  color:var(--navy);
  font-weight:600;
  line-height:1.14;
  letter-spacing:-.022em;
}
h1{ font-size:clamp(2.5rem, 5.6vw, 4.35rem); line-height:1.04; letter-spacing:-.035em; }
h2{ font-size:clamp(1.95rem, 3.9vw, 3rem); letter-spacing:-.03em; }
h3{ font-size:clamp(1.18rem, 1.7vw, 1.45rem); }
h4{ font-size:1.03rem; letter-spacing:-.01em; }
p{ margin:0 0 1.05em; }
p:last-child{ margin-bottom:0; }

/* ---------- Layout ---------- */
.shell{ width:100%; max-width:var(--shell); margin-inline:auto; padding-inline:var(--gut); }
.shell-narrow{ max-width:880px; }
.section{ padding-block:var(--sec); }
.section--tint{ background:var(--tint); }
.section--navy{ background:var(--navy-deep); color:rgba(255,255,255,.76); }
.section--navy h2,.section--navy h3,.section--navy h4{ color:#fff; }

.grid{ display:grid; gap:clamp(16px,2.2vw,26px); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:940px){ .g-3,.g-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:620px){ .g-2,.g-3,.g-4{ grid-template-columns:1fr; } }

/* ---------- Type helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:11px;
  font-size:.735rem; font-weight:600; letter-spacing:.19em; text-transform:uppercase;
  color:var(--gold-ink); margin-bottom:20px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold-grad); flex:none; }

/* Gold small text switches back to the bright tone on every dark surface */
.section--navy .eyebrow,
.hero .eyebrow,
.panel--navy .eyebrow,
.cta .eyebrow,
.card--navy .idx,
.section--navy .card .idx,
.section--navy .feat .n{ color:var(--gold-2); }
.section--navy .feat .n{ border-color:rgba(230,190,106,.4); }

.lead{
  font-size:clamp(1.03rem,1.35vw,1.16rem);
  line-height:1.72; color:var(--slate-soft); max-width:62ch; font-weight:400;
}
.section--navy .lead{ color:rgba(255,255,255,.68); }
.gold-text{
  background:var(--gold-grad); -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.sec-head{ max-width:720px; margin-bottom:clamp(38px,5vw,62px); }
.sec-head--center{ margin-inline:auto; text-align:center; }
.sec-head--center .eyebrow{ justify-content:center; }
.sec-head h2 + .lead{ margin-top:18px; }
.sec-head--split{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; max-width:none; }
.sec-head--split > div{ max-width:660px; }
@media(max-width:840px){ .sec-head--split{ flex-direction:column; align-items:flex-start; } }

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:var(--navy); --btn-fg:#fff;
  position:relative; display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; border-radius:100px; border:1px solid transparent;
  background:var(--btn-bg); color:var(--btn-fg);
  font-weight:500; font-size:.95rem; letter-spacing:.005em;
  cursor:pointer; overflow:hidden; isolation:isolate;
  transition:color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.btn::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--gold-grad); transform:translateY(101%);
  transition:transform .48s var(--ease);
}
.btn:hover{ color:var(--navy-deep); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn:hover::after{ transform:translateY(0); }
.btn .ar{ transition:transform .4s var(--ease); }
.btn:hover .ar{ transform:translateX(4px); }

.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--navy); border-color:var(--line); }
.btn--ghost-light{ --btn-bg:transparent; --btn-fg:#fff; border-color:rgba(255,255,255,.28); }
.btn--gold{ --btn-fg:var(--navy-deep); background:var(--gold-grad); }
.btn--gold::after{ background:var(--navy); }
.btn--gold:hover{ color:#fff; }
.btn--sm{ padding:11px 22px; font-size:.88rem; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:500; font-size:.92rem; color:var(--navy);
  transition:gap .35s var(--ease), color .35s var(--ease);
}
.link-arrow:hover{ gap:14px; color:var(--gold-ink); }
.section--navy .link-arrow{ color:var(--gold-2); }

/* ---------- Scroll progress ---------- */
.progress{
  position:fixed; top:0; left:0; height:2px; width:0; z-index:200;
  background:var(--gold-grad); transition:width .1s linear;
}

/* ---------- Header ---------- */
.hdr{
  position:fixed; top:0; left:0; right:0; z-index:120;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.hdr.is-stuck{ border-bottom-color:var(--line); box-shadow:0 6px 26px -22px rgba(18,20,63,.6); }
.hdr-in{
  display:flex; align-items:center; justify-content:space-between; gap:26px;
  height:82px; transition:height .35s var(--ease);
}
.hdr.is-stuck .hdr-in{ height:68px; }
.brand{ display:flex; align-items:center; flex:none; }
.brand img{ height:40px; width:auto; transition:height .35s var(--ease); }
.hdr.is-stuck .brand img{ height:34px; }

.nav{ display:flex; align-items:center; gap:2px; margin-left:auto; }
.nav > li{ position:relative; }
.nav > li > a, .nav-trigger{
  position:relative; display:inline-flex; align-items:center; gap:6px;
  padding:10px 14px; border:0; background:none;
  font-size:.93rem; font-weight:500; color:var(--navy); cursor:pointer;
  transition:color .3s var(--ease);
}
.nav > li > a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:3px; height:1.5px;
  background:var(--gold-grad); transform:scaleX(0); transform-origin:left;
  transition:transform .4s var(--ease);
}
.nav > li > a:hover::after, .nav > li > a.is-active::after{ transform:scaleX(1); }
.nav > li > a:hover, .nav-trigger:hover{ color:var(--gold-ink); }
.nav-trigger svg{ transition:transform .35s var(--ease); }
.has-drop:hover .nav-trigger svg{ transform:rotate(180deg); }
.nav-trigger.is-active{ color:var(--gold-ink); }

.drop{
  position:absolute; top:calc(100% - 4px); left:50%; transform:translate(-50%,10px);
  min-width:340px; padding:10px; border-radius:var(--r); background:#fff;
  border:1px solid var(--line); box-shadow:var(--shadow-lg);
  opacity:0; visibility:hidden; transition:opacity .34s var(--ease), transform .34s var(--ease), visibility .34s;
}
.has-drop:hover .drop, .has-drop:focus-within .drop{ opacity:1; visibility:visible; transform:translate(-50%,0); }
.drop a{
  display:block; padding:11px 14px; border-radius:9px;
  font-size:.9rem; font-weight:500; color:var(--navy);
  transition:background .25s, color .25s, padding-left .3s var(--ease);
}
.drop a span{ display:block; font-size:.775rem; font-weight:400; color:var(--slate-soft); margin-top:2px; }
.drop a:hover{ background:var(--tint); padding-left:20px; }

.hdr-cta{ flex:none; margin-left:12px; }
@media(max-width:1120px){ .hdr-cta{ display:none; } }

.burger{
  display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:11px;
  background:#fff; cursor:pointer; padding:0; place-items:center; position:relative; z-index:130;
}
.burger i{ display:block; width:17px; height:1.6px; background:var(--navy); margin:3.4px auto; transition:transform .35s var(--ease), opacity .25s; }
body.menu-open .burger i:nth-child(1){ transform:translateY(5px) rotate(45deg); }
body.menu-open .burger i:nth-child(2){ opacity:0; }
body.menu-open .burger i:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }
@media(max-width:1120px){
  .nav{ display:none; }
  .burger{ display:grid; }
}

/* Mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:110; background:#fff;
  padding:110px var(--gut) 48px; overflow-y:auto;
  clip-path:circle(0% at calc(100% - 44px) 44px);
  visibility:hidden;
  /* visibility flips instantly on open, and only after the close animation ends */
  transition:clip-path .6s var(--ease), visibility 0s linear .6s;
}
body.menu-open .drawer{
  clip-path:circle(150% at calc(100% - 44px) 44px); visibility:visible;
  transition:clip-path .6s var(--ease), visibility 0s linear 0s;
}
body.menu-open{ overflow:hidden; }
/* :not(.btn) so the drawer CTA keeps the button's own colours */
.drawer a:not(.btn){
  display:block; padding:14px 0; border-bottom:1px solid var(--line-soft);
  font-size:1.25rem; font-weight:500; color:var(--navy); letter-spacing:-.02em;
}
.drawer .sub-label{
  padding-top:20px; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold-ink); font-weight:600;
}
.drawer .sub a{ font-size:1rem; font-weight:400; color:var(--slate); padding-left:16px; }
.drawer .btn{ margin-top:30px; width:100%; justify-content:center; }

/* ---------- Hero ---------- */
.hero{
  position:relative; background:var(--navy-deep); color:rgba(255,255,255,.72);
  padding-top:clamp(140px,15vw,178px); padding-bottom:clamp(76px,9vw,112px);
  overflow:hidden; isolation:isolate;
}
.hero::before{
  content:""; position:absolute; inset:-30%; z-index:-2;
  background:
    radial-gradient(46% 42% at 18% 18%, rgba(42,30,255,.42), transparent 62%),
    radial-gradient(40% 38% at 84% 26%, rgba(207,162,51,.20), transparent 66%),
    radial-gradient(52% 48% at 62% 96%, rgba(38,42,126,.75), transparent 68%);
  animation:drift 22s ease-in-out infinite alternate;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:78px 78px;
  -webkit-mask-image:radial-gradient(74% 70% at 50% 40%, #000, transparent 78%);
          mask-image:radial-gradient(74% 70% at 50% 40%, #000, transparent 78%);
}
@keyframes drift{
  0%{ transform:translate3d(0,0,0) scale(1); }
  50%{ transform:translate3d(2.5%,-2%,0) scale(1.06); }
  100%{ transform:translate3d(-2%,2.5%,0) scale(1.02); }
}
.hero h1{ color:#fff; }
.hero .lead{ color:rgba(255,255,255,.66); margin-top:26px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }

.hero--home{ min-height:min(94vh,920px); display:flex; align-items:center; }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(36px,5vw,72px); align-items:center; width:100%; }
@media(max-width:960px){ .hero-grid{ grid-template-columns:1fr; } }

/* Rotating word.
   Words are stacked in one grid cell, so the cell is as wide as the longest
   one and the layout never shifts. Visibility (not opacity) does the hiding,
   so a browser that never runs the animation still shows exactly one legible
   word rather than all three painted on top of each other. */
.rotator{ display:inline-grid; vertical-align:bottom; }
.rotator > span{ grid-area:1/1; white-space:nowrap; text-align:left; }

/* Before JS starts it — or if JS never runs — only the first word shows. */
.rotator:not(.is-live) > span:not(:first-child){ visibility:hidden; }

.rotator.is-live > span{ visibility:hidden; }
.rotator.is-live > span.is-current{
  visibility:visible;
  /* no fill-mode: if animations are disabled the word simply appears */
  animation:rot-in .55s var(--ease);
}
@keyframes rot-in{
  from{ opacity:0; transform:translateY(.3em); }
  to  { opacity:1; transform:none; }
}

/* Hero side card */
.hero-card{
  background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.13);
  border-radius:var(--r-lg); padding:clamp(24px,3vw,34px);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.hero-card h2{ color:#fff; font-size:.76rem; letter-spacing:.17em; text-transform:uppercase; font-weight:600; }
.hero-card ul{ margin-top:20px; }
.hero-card li{
  display:flex; align-items:baseline; gap:14px; padding:14px 0;
  border-top:1px solid rgba(255,255,255,.1); font-size:.94rem; color:rgba(255,255,255,.8);
}
.hero-card li b{ font-weight:600; font-size:.78rem; color:var(--gold-2); min-width:24px; }

.scroll-cue{
  display:inline-flex; align-items:center; gap:12px; margin-top:52px;
  font-size:.71rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.45);
}
.scroll-cue i{ display:block; width:1px; height:34px; background:linear-gradient(rgba(255,255,255,.55), transparent); animation:cue 2.1s var(--ease) infinite; transform-origin:top; }
@keyframes cue{ 0%{ transform:scaleY(0); } 45%{ transform:scaleY(1); } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* Page hero (inner pages) */
.hero--page{ padding-bottom:clamp(62px,7vw,90px); }
.hero--page h1{ font-size:clamp(2.15rem,4.4vw,3.5rem); max-width:19ch; }
.crumb{ font-size:.8rem; letter-spacing:.05em; color:rgba(255,255,255,.58); margin-bottom:22px; }
.crumb a{ color:rgba(255,255,255,.62); } .crumb a:hover{ color:var(--gold-2); }

/* ---------- Stats ---------- */
.stats{ border-block:1px solid var(--line); background:#fff; }
.stats-in{ display:grid; grid-template-columns:repeat(4,1fr); }
@media(max-width:780px){ .stats-in{ grid-template-columns:repeat(2,1fr); } }
.stat{ padding:clamp(30px,4vw,52px) clamp(14px,2vw,28px); border-left:1px solid var(--line-soft); }
.stat:first-child{ border-left:0; }
@media(max-width:780px){ .stat:nth-child(odd){ border-left:0; } .stat:nth-child(n+3){ border-top:1px solid var(--line-soft); } }
.stat .num{
  font-size:clamp(2.05rem,3.6vw,2.95rem); font-weight:600; letter-spacing:-.04em; line-height:1;
  background:var(--gold-grad-ink); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
}
.stats--navy .stat .num{ background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; }
.stat .lbl{ margin-top:12px; font-size:.85rem; color:var(--slate-soft); line-height:1.5; }
.stats--navy{ background:transparent; border:0; }
.stats--navy .stat{ border-color:rgba(255,255,255,.13); }
.stats--navy .lbl{ color:rgba(255,255,255,.58); }

/* Column-count variants for stat rows that aren't four-up */
.stats-in--2{ grid-template-columns:repeat(2,1fr); }
.stats-in--3{ grid-template-columns:repeat(3,1fr); }
@media(max-width:780px){
  .stats-in--2{ grid-template-columns:repeat(2,1fr); }
  .stats-in--3{ grid-template-columns:1fr; }
  .stats-in--3 .stat{ border-left:0; border-top:1px solid rgba(255,255,255,.13); }
  .stats-in--3 .stat:first-child{ border-top:0; }
}

/* ---------- Cards ---------- */
.card{
  position:relative; background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:clamp(26px,2.8vw,34px);
  overflow:hidden; isolation:isolate;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gold-grad); transform:scaleX(0); transform-origin:left;
  transition:transform .55s var(--ease);
}
.card:hover{ transform:translateY(-7px); box-shadow:var(--shadow-lg); border-color:rgba(29,32,99,.2); }
.card:hover::before{ transform:scaleX(1); }
.card .idx{ font-size:.73rem; font-weight:600; letter-spacing:.16em; color:var(--gold-ink); display:block; margin-bottom:18px; }
.card h3{ margin-bottom:12px; }
.card p{ font-size:.94rem; color:var(--slate-soft); line-height:1.66; }
.card .link-arrow{ margin-top:auto; padding-top:20px; }
.card--link{ display:flex; flex-direction:column; }
.card--flat:hover{ transform:none; box-shadow:var(--shadow-md); }

.card--navy{ background:rgba(255,255,255,.045); border-color:rgba(255,255,255,.12); }
.card--navy h3{ color:#fff; } .card--navy p{ color:rgba(255,255,255,.63); }
.card--navy:hover{ border-color:rgba(230,190,106,.4); background:rgba(255,255,255,.07); }

/* Numbered feature list */
.feat{ display:flex; gap:22px; padding:clamp(22px,2.6vw,30px) 0; border-top:1px solid var(--line); }
.feat:last-child{ border-bottom:1px solid var(--line); }
.feat .n{
  flex:none; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  border:1px solid var(--line-gold); font-size:.82rem; font-weight:600; color:var(--gold-ink);
  transition:background .45s var(--ease), color .45s var(--ease), transform .45s var(--ease);
}
.feat:hover .n{ background:var(--gold-grad); color:var(--navy-deep); transform:scale(1.06); }
.feat h3{ font-size:1.08rem; margin-bottom:7px; }
.feat p{ font-size:.94rem; color:var(--slate-soft); margin:0; }
.section--navy .feat{ border-color:rgba(255,255,255,.12); }
.section--navy .feat p{ color:rgba(255,255,255,.6); }

/* ---------- Split panels ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.4vw,26px); }
@media(max-width:820px){ .split{ grid-template-columns:1fr; } }
.split--lean{ grid-template-columns:.85fr 1.15fr; align-items:center; gap:clamp(30px,5vw,68px); }
@media(max-width:820px){ .split--lean{ grid-template-columns:1fr; } }
.panel{ border-radius:var(--r-lg); padding:clamp(30px,4vw,52px); }
.panel--navy{ background:var(--navy); color:rgba(255,255,255,.72); position:relative; overflow:hidden; }
.panel--navy::after{
  content:""; position:absolute; right:-70px; bottom:-70px; width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, rgba(230,190,106,.24), transparent 68%);
}
.panel--navy h3{ color:#fff; }
.panel--tint{ background:var(--tint); }
.panel h3{ font-size:clamp(1.35rem,2.2vw,1.75rem); margin-bottom:16px; }
.panel .eyebrow{ margin-bottom:16px; }
.panel--navy .eyebrow{ color:var(--gold-2); }

/* ---------- Team ---------- */
.person{
  background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:clamp(24px,2.6vw,30px);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.person:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:rgba(29,32,99,.2); }
.avatar{
  width:60px; height:60px; border-radius:50%; display:grid; place-items:center;
  background:var(--navy); color:var(--gold-2); font-weight:600; font-size:1.04rem; letter-spacing:.02em;
  margin-bottom:20px; position:relative;
}
.avatar::after{
  content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid var(--line-gold);
  opacity:0; transition:opacity .45s var(--ease), inset .45s var(--ease);
}
.person:hover .avatar::after{ opacity:1; inset:-7px; }
.person .role{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink); font-weight:600; }
.person h3{ margin:8px 0 12px; font-size:1.18rem; }
.person p{ font-size:.92rem; color:var(--slate-soft); line-height:1.68; }
.chip{
  display:inline-block; margin-top:18px; padding:6px 13px; border-radius:100px;
  background:var(--tint); border:1px solid var(--line-soft);
  font-size:.76rem; font-weight:500; color:var(--navy);
}

/* ---------- Chips row ---------- */
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chips span{
  padding:9px 18px; border-radius:100px; border:1px solid var(--line);
  font-size:.87rem; color:var(--navy); background:#fff;
  transition:border-color .35s var(--ease), transform .35s var(--ease), color .35s;
}
.chips span:hover{ border-color:var(--gold-ink); transform:translateY(-2px); color:var(--gold-ink); }

/* ---------- Checklist ---------- */
.checks li{
  position:relative; padding:11px 0 11px 30px; font-size:.96rem; color:var(--slate);
  border-bottom:1px solid var(--line-soft);
}
.checks li:last-child{ border-bottom:0; }
.checks li::before{
  content:""; position:absolute; left:2px; top:19px; width:9px; height:9px; border-radius:50%;
  background:var(--gold-grad);
}
.checks li b{ color:var(--navy); font-weight:600; }
.section--navy .checks li{ color:rgba(255,255,255,.72); border-color:rgba(255,255,255,.1); }
.section--navy .checks li b{ color:#fff; }
.panel--navy .checks li{ color:rgba(255,255,255,.72); border-color:rgba(255,255,255,.1); }
.panel--navy .checks li b{ color:#fff; }

/* ---------- Process rail ---------- */
.rail{ position:relative; }
.rail::before{ content:""; position:absolute; left:23px; top:26px; bottom:26px; width:1px; background:var(--line); }
.rail-item{ position:relative; display:flex; gap:24px; padding:18px 0; }
.rail-item .dot{
  flex:none; width:47px; height:47px; border-radius:50%; background:#fff; border:1px solid var(--line);
  display:grid; place-items:center; font-size:.8rem; font-weight:600; color:var(--navy); z-index:1;
  transition:border-color .45s var(--ease), background .45s var(--ease), color .45s var(--ease);
}
.rail-item:hover .dot{ background:var(--navy); color:var(--gold-2); border-color:var(--navy); }
.rail-item h3{ font-size:1.05rem; margin-bottom:6px; }
.rail-item p{ font-size:.93rem; color:var(--slate-soft); margin:0; }
.section--tint .rail-item .dot{ background:var(--tint); }

/* ---------- CTA band ---------- */
.cta{
  position:relative; background:var(--navy); border-radius:var(--r-lg);
  padding:clamp(40px,6vw,76px); overflow:hidden; text-align:center; isolation:isolate;
}
.cta::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(58% 90% at 50% 0%, rgba(42,30,255,.5), transparent 70%),
             radial-gradient(46% 70% at 82% 100%, rgba(207,162,51,.22), transparent 70%);
}
.cta h2{ color:#fff; max-width:17ch; margin-inline:auto; }
.cta .lead{ color:rgba(255,255,255,.68); margin:20px auto 0; text-align:center; max-width:54ch; }
.cta-actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:34px; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,4vw,60px); align-items:start; }
@media(max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.info-row{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
.info-row:first-of-type{ border-top:1px solid var(--line); }
.info-row .ic{
  flex:none; width:42px; height:42px; border-radius:11px; display:grid; place-items:center;
  background:var(--tint); border:1px solid var(--line-soft); color:var(--navy);
}
.info-row .k{ font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--slate-soft); font-weight:600; }
.info-row .v{ display:block; font-size:1rem; color:var(--navy); font-weight:500; margin-top:4px; line-height:1.55; }
.info-row a.v:hover{ color:var(--gold-ink); }

.form{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(26px,3.4vw,42px); box-shadow:var(--shadow-md); }
.field{ margin-bottom:20px; }
.field label{ display:block; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--slate-soft); margin-bottom:9px; }
.field input, .field select, .field textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r-sm);
  font:inherit; font-size:.96rem; color:var(--navy); background:#fff;
  transition:border-color .3s, box-shadow .3s;
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:0; border-color:var(--navy); box-shadow:0 0 0 3px rgba(29,32,99,.09);
}
.form .btn{ width:100%; justify-content:center; }
.form-note{ margin-top:16px; font-size:.82rem; color:var(--slate-soft); text-align:center; }

.map-wrap{ margin-top:clamp(30px,4vw,44px); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); filter:grayscale(.35); transition:filter .5s var(--ease); }
.map-wrap:hover{ filter:grayscale(0); }
.map-wrap iframe{ display:block; width:100%; height:380px; border:0; }

/* ---------- Blog ---------- */
.post{
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.post:hover{ transform:translateY(-7px); box-shadow:var(--shadow-lg); border-color:rgba(29,32,99,.2); }
.post .thumb{ height:170px; background:linear-gradient(135deg,var(--navy-deep),var(--navy) 60%,var(--navy-lift)); position:relative; overflow:hidden; }
.post .thumb::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(60% 80% at 76% 18%, rgba(207,162,51,.34), transparent 66%);
}
.post .thumb b{
  position:absolute; left:24px; bottom:20px; z-index:1; color:rgba(255,255,255,.92);
  font-size:.71rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
}
.post .body{ padding:26px 26px 30px; flex:1; display:flex; flex-direction:column; }
.post .meta{ font-size:.78rem; color:var(--slate-soft); letter-spacing:.04em; }
.post h3{ font-size:1.12rem; margin:11px 0 12px; }
.post p{ font-size:.92rem; color:var(--slate-soft); margin-bottom:20px; }
.post .link-arrow{ margin-top:auto; }

.empty{
  border:1px dashed var(--line); border-radius:var(--r-lg); padding:clamp(40px,6vw,72px);
  text-align:center; background:var(--tint);
}
.empty h2{ font-size:clamp(1.5rem,2.6vw,2.05rem); margin-bottom:12px; }

/* ---------- Footer ---------- */
.ftr{ background:var(--navy-deep); color:rgba(255,255,255,.58); padding-top:clamp(58px,7vw,84px); position:relative; }
.ftr::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--gold-grad); opacity:.6; }
.ftr-grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:clamp(28px,4vw,48px); padding-bottom:clamp(40px,5vw,60px); }
@media(max-width:900px){ .ftr-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .ftr-grid{ grid-template-columns:1fr; } }
.ftr h2{ color:#fff; font-size:.73rem; letter-spacing:.17em; text-transform:uppercase; margin-bottom:20px; font-weight:600; }
.ftr p{ font-size:.91rem; line-height:1.72; max-width:38ch; }
.ftr li{ margin-bottom:11px; }
.ftr a{ color:rgba(255,255,255,.58); font-size:.91rem; transition:color .3s, padding-left .3s var(--ease); }
.ftr a:hover{ color:var(--gold-2); }
.ftr ul a:hover{ padding-left:5px; }
/* Text wordmark rather than the logo image: whiting the mark out for a dark
   background flattened the diamond into a shapeless blob. */
.ftr-mark{
  font-size:1.12rem; font-weight:600; color:#fff;
  letter-spacing:-.015em; margin-bottom:20px;
}
.ftr-mark span{ color:var(--gold-2); font-weight:500; }
.ftr-bot{
  border-top:1px solid rgba(255,255,255,.1); padding-block:24px;
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center;
  font-size:.82rem; color:rgba(255,255,255,.58);
}
.social{ display:flex; gap:10px; }
.social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.16);
  display:grid; place-items:center; color:rgba(255,255,255,.7); transition:all .35s var(--ease);
}
.social a:hover{ background:var(--gold-grad); border-color:transparent; color:var(--navy-deep); transform:translateY(-3px); }

/* ---------- Scroll reveal ---------- */
[data-reveal]{
  opacity:0; transform:translateY(26px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
  transition-delay:var(--d,0ms);
}
[data-reveal="left"]{ transform:translateX(-28px); }
[data-reveal="right"]{ transform:translateX(28px); }
[data-reveal="scale"]{ transform:scale(.965); }
[data-reveal="fade"]{ transform:none; }
[data-reveal].is-in{ opacity:1; transform:none; }

.to-top{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:46px; height:46px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--navy); display:grid; place-items:center; cursor:pointer;
  box-shadow:var(--shadow-md); opacity:0; pointer-events:none; transform:translateY(12px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s, color .3s, border-color .3s;
}
.to-top.show{ opacity:1; pointer-events:auto; transform:none; }
.to-top:hover{ background:var(--navy); color:var(--gold-2); border-color:var(--navy); }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  html{ scroll-behavior:auto; }
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  /* rotation is left off entirely; the first word stays put */
}
