/* ==========================================================================
   Services — executive practice page
   Editorial, evidence-forward. Navy ground, restrained gold, generous type.
   ========================================================================== */

.sv-ce {
  --ce-navy: #06192b;
  --ce-navy-2: #0b2a44;
  --ce-ink: #0c1c29;
  --ce-body: #4a6070;
  --ce-line: #e3ebf1;
  --ce-gold: #c79a4b;
  --ce-gold-soft: #f3e8d3;
  --ce-wash: #f6f9fb;
  color: var(--ce-ink);
  overflow-x: hidden;
}
.sv-ce-wrap {
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  padding-left: clamp(22px, 5vw, 56px);
  padding-right: clamp(22px, 5vw, 56px);
  box-sizing: border-box;
}
.sv-ce-eyebrow {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ce-gold);
  margin-bottom: 16px;
}
.sv-ce h2 {
  font-size: clamp(27px, 3.1vw, 42px);
  line-height: 1.12;
  letter-spacing: -.028em;
  margin: 0 0 16px;
  max-width: 24ch;
}
.sv-ce-head { max-width: 780px; margin-bottom: clamp(30px, 4vw, 48px); }
.sv-ce-head p {
  font-size: 16.5px;
  line-height: 1.74;
  color: var(--ce-body);
  margin: 0;
  max-width: 66ch;
}
.sv-ce-section { padding: clamp(56px, 7vw, 92px) 0; }
.sv-ce-section--tint { background: var(--ce-wash); border-top: 1px solid var(--ce-line); border-bottom: 1px solid var(--ce-line); }

/* ---------------------------------------------------------------- buttons */
.sv-ce-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: 48px;
  padding: 0 22px;
  border-radius: 4px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.sv-ce-btn--solid { background: var(--ce-gold); color: #14100a; }
.sv-ce-btn--solid:hover { background: #d8ab5c; transform: translateY(-1px); }
.sv-ce-btn--ghost { border-color: rgba(255, 255, 255, .38); color: #fff; }
.sv-ce-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }

/* ---------------------------------------------------------------- hero */
.sv-ce-hero {
  position: relative;
  color: #fff;
  background: var(--ce-navy);
  overflow: hidden;
}
.sv-ce-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 32%;
  opacity: .34;
}
.sv-ce-hero-veil {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(4, 18, 32, .92) 0%, rgba(5, 22, 38, .82) 45%, rgba(6, 25, 43, .96) 100%),
    radial-gradient(900px 440px at 82% 0%, rgba(199, 154, 75, .18), transparent 66%);
}
.sv-ce-hero .sv-ce-wrap { position: relative; z-index: 2; }
.sv-ce-hero-grid {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: end;
  padding: clamp(64px, 8vw, 104px) 0 clamp(56px, 7vw, 88px);
}
.sv-ce-hero h1 {
  font-size: clamp(32px, 4.2vw, 60px);
  line-height: 1.06;
  letter-spacing: -.035em;
  margin: 0 0 22px;
  max-width: 20ch;
}
.sv-ce-hero h1 em { font-style: normal; color: #e9c98f; }
.sv-ce-lede {
  font-size: 17px;
  line-height: 1.72;
  color: #c4d4e0;
  margin: 0;
  max-width: 58ch;
}
.sv-ce-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

.sv-ce-hero-aside {
  border-left: 1px solid rgba(255, 255, 255, .18);
  padding-left: 26px;
  display: grid;
  gap: 22px;
}
.sv-ce-hero-aside > div { display: grid; gap: 5px; }
.sv-ce-hero-aside b {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -.03em;
  color: #fff;
  line-height: 1;
}
.sv-ce-hero-aside span {
  font-size: 12.5px;
  line-height: 1.55;
  color: #a8bfd0;
  max-width: 26ch;
}
.sv-ce-aside-note {
  font-size: 11.5px;
  line-height: 1.65;
  color: #8aa4b8;
  margin: 4px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  max-width: 30ch;
}

/* ------------------------------------------------------- practice lines */
.sv-ce-lines {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ce-line);
}
.sv-ce-line {
  padding: 34px 30px 30px 0;
  border-right: 1px solid var(--ce-line);
  display: flex;
  flex-direction: column;
}
.sv-ce-line:last-child { border-right: 0; padding-right: 0; }
.sv-ce-line + .sv-ce-line { padding-left: 30px; }
.sv-ce-line-tag {
  display: block;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #93a7b5;
  margin-bottom: 12px;
}
.sv-ce-line h3 {
  font-size: clamp(22px, 2.2vw, 28px);
  letter-spacing: -.025em;
  margin: 0 0 10px;
}
.sv-ce-line-head p {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ce-body);
  margin: 0 0 22px;
}
.sv-ce-line-list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 9px;
}
.sv-ce-line-list li {
  position: relative;
  padding-left: 18px;
  font-size: 13.4px;
  line-height: 1.55;
  color: #33495a;
}
.sv-ce-line-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 1px;
  background: var(--ce-gold);
}
.sv-ce-line-go {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .02em;
  color: var(--ce-navy-2);
  text-decoration: none;
  border-bottom: 1px solid rgba(12, 28, 41, .18);
  padding-bottom: 3px;
  align-self: flex-start;
}
.sv-ce-line-go:hover { color: #000; border-bottom-color: var(--ce-gold); }
.sv-ce-line--tech { box-shadow: inset 0 3px 0 #1f6fb2; }
.sv-ce-line--mkt { box-shadow: inset 0 3px 0 var(--ce-gold); }
.sv-ce-line--media { box-shadow: inset 0 3px 0 #7a3f8f; }

/* ---------------------------------------------------------- engagements */
.sv-ce-engage {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.sv-ce-engage article {
  background: #fff;
  border: 1px solid var(--ce-line);
  border-radius: 4px;
  padding: 26px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sv-ce-eng-num {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--ce-gold);
}
.sv-ce-engage h3 { font-size: 17.5px; margin: 0; letter-spacing: -.015em; }
.sv-ce-engage p { font-size: 13.4px; line-height: 1.65; color: var(--ce-body); margin: 0; flex: 1; }
.sv-ce-eng-fit {
  font-size: 11.5px;
  line-height: 1.5;
  color: #7d8f9c;
  border-top: 1px solid var(--ce-line);
  padding-top: 12px;
  margin-top: 4px;
}
.sv-ce-inline-link { margin: 22px 0 0; }
.sv-ce-inline-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ce-navy-2);
  text-decoration: none;
  border-bottom: 1px solid rgba(12, 28, 41, .2);
  padding-bottom: 3px;
}

/* ------------------------------------------------------------- outcomes */
.sv-ce-outcome-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(30px, 5vw, 64px);
  align-items: start;
}
.sv-ce-outcome-grid h2 { max-width: 20ch; }
.sv-ce-outcomes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--ce-line);
  border: 1px solid var(--ce-line);
}
.sv-ce-outcomes > div {
  background: #fff;
  padding: 22px 22px;
  display: grid;
  gap: 6px;
}
.sv-ce-outcomes b { font-size: 14px; letter-spacing: -.01em; }
.sv-ce-outcomes span { font-size: 12.8px; line-height: 1.62; color: var(--ce-body); }

/* --------------------------------------------------------- disciplines */
.sv-ce-section--dark { background: var(--ce-navy); color: #fff; }
.sv-ce-section--dark .sv-ce-head h2 { color: #fff; }
.sv-ce-section--dark .sv-ce-head p { color: #a9c0d2; }
.sv-ce-disc {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 4vw, 48px);
  border-top: 1px solid rgba(255, 255, 255, .14);
  padding-top: 34px;
}
.sv-ce-disc-title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.sv-ce-disc-title span { color: var(--ce-gold); font-size: 10.5px; }
.sv-ce-disc-list { display: grid; }
.sv-ce-discipline {
  display: grid;
  grid-template-columns: 26px 1fr 20px;
  grid-template-areas: "num name go" ". blurb go";
  gap: 2px 10px;
  padding: 13px 8px 13px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  text-decoration: none;
  color: inherit;
  transition: background .16s ease, padding-left .16s ease;
}
.sv-ce-discipline:hover { background: rgba(255, 255, 255, .05); padding-left: 8px; }
.sv-ce-num {
  grid-area: num;
  font-size: 10.5px;
  font-weight: 800;
  color: #6f8ba1;
  padding-top: 3px;
}
.sv-ce-name {
  grid-area: name;
  font-size: 14.2px;
  font-weight: 700;
  letter-spacing: -.012em;
  color: #eaf3f9;
}
.sv-ce-blurb {
  grid-area: blurb;
  font-size: 12.2px;
  line-height: 1.55;
  color: #93aabd;
}
.sv-ce-go {
  grid-area: go;
  color: #5d7c93;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  transition: color .16s ease, transform .16s ease;
}
.sv-ce-discipline:hover .sv-ce-go { color: var(--ce-gold); transform: translateX(2px); }

/* ------------------------------------------------------------ assurance */
.sv-ce-assure {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--ce-line);
}
.sv-ce-assure > div {
  padding: 28px 26px 4px 0;
  border-right: 1px solid var(--ce-line);
}
.sv-ce-assure > div:last-child { border-right: 0; padding-right: 0; }
.sv-ce-assure > div + div { padding-left: 26px; }
.sv-ce-assure h3 { font-size: 14.5px; margin: 0 0 10px; letter-spacing: -.01em; }
.sv-ce-assure p { font-size: 13px; line-height: 1.68; color: var(--ce-body); margin: 0; }

/* ----------------------------------------------------------------- cta */
.sv-ce-close {
  position: relative;
  background: var(--ce-navy);
  color: #fff;
  margin: clamp(40px, 6vw, 72px) clamp(16px, 4vw, 48px) clamp(28px, 4vw, 44px);
  border-radius: 6px;
  overflow: hidden;
}
.sv-ce-close::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(700px 320px at 88% 0%, rgba(199, 154, 75, .2), transparent 65%);
  pointer-events: none;
}
.sv-ce-close-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 34px;
  align-items: center;
  padding-top: clamp(38px, 5vw, 56px);
  padding-bottom: clamp(38px, 5vw, 56px);
}
.sv-ce-close h2 { color: #fff; max-width: 22ch; font-size: clamp(25px, 3vw, 38px); }
.sv-ce-close p { font-size: 15px; line-height: 1.7; color: #b6c9d7; margin: 0; max-width: 52ch; }
.sv-ce-close-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1080px) {
  .sv-ce-hero-grid { grid-template-columns: 1fr; align-items: start; }
  .sv-ce-hero-aside {
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, .16);
    padding-left: 0;
    padding-top: 26px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
  .sv-ce-aside-note { grid-column: 1 / -1; border-top: 0; padding-top: 0; max-width: 60ch; }
  .sv-ce-lines { grid-template-columns: 1fr; border-top: 0; }
  .sv-ce-line {
    border-right: 0;
    border-top: 1px solid var(--ce-line);
    padding: 28px 0 26px !important;
  }
  .sv-ce-engage, .sv-ce-assure { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sv-ce-assure > div { padding: 24px 24px 4px 0; }
  .sv-ce-assure > div:nth-child(2n) { border-right: 0; }
  .sv-ce-outcome-grid { grid-template-columns: 1fr; }
  .sv-ce-close-grid { grid-template-columns: 1fr; }
  .sv-ce-close-actions { justify-content: flex-start; }
}

@media (max-width: 900px) {
  .sv-ce-disc { grid-template-columns: 1fr; gap: 30px; }
  .sv-ce-disc-col + .sv-ce-disc-col { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 26px; }
}

@media (max-width: 640px) {
  .sv-ce-hero-grid { padding-top: 52px; padding-bottom: 48px; }
  .sv-ce-hero-aside { grid-template-columns: 1fr; gap: 16px; }
  .sv-ce-hero-aside b { font-size: 24px; }
  .sv-ce-actions .sv-ce-btn, .sv-ce-close-actions .sv-ce-btn { width: 100%; justify-content: center; }
  .sv-ce-engage, .sv-ce-assure, .sv-ce-outcomes { grid-template-columns: 1fr; }
  .sv-ce-assure > div { padding: 22px 0 20px !important; border-right: 0; border-bottom: 1px solid var(--ce-line); }
  .sv-ce-assure > div:last-child { border-bottom: 0; }
  .sv-ce-discipline { grid-template-columns: 22px 1fr; grid-template-areas: "num name" ". blurb"; }
  .sv-ce-go { display: none; }
  .sv-ce-close { margin-left: 12px; margin-right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .sv-ce-btn, .sv-ce-discipline, .sv-ce-go { transition: none; }
}

/* ------------------------------------------------------------ selected work */
.sv-ce-section--tight { padding-top: clamp(44px, 5vw, 68px); padding-bottom: clamp(44px, 5vw, 68px); }
.sv-ce-head--row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 48px;
  align-items: end;
  max-width: none;
}
.sv-ce-head--row h2 { margin-bottom: 0; }
.sv-ce-head--row p { font-size: 14.5px; max-width: 46ch; }
.sv-ce-work {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.sv-ce-work a {
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 22px 20px;
  border: 1px solid var(--ce-line);
  border-radius: 4px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sv-ce-work a:hover {
  border-color: #c6d6e2;
  transform: translateY(-2px);
  box-shadow: 0 18px 32px -26px rgba(6, 25, 43, .55);
}
.sv-ce-work-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--ce-gold);
}
.sv-ce-work b { font-size: 15px; letter-spacing: -.015em; line-height: 1.3; }
.sv-ce-work span:last-child { font-size: 12.6px; line-height: 1.6; color: var(--ce-body); }

@media (max-width: 1080px) {
  .sv-ce-head--row { grid-template-columns: 1fr; align-items: start; }
  .sv-ce-work { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .sv-ce-work { grid-template-columns: 1fr; }
}
.sv-ce-side-note {
  font-size: 14.5px;
  line-height: 1.72;
  color: var(--ce-body);
  margin: 4px 0 0;
  max-width: 34ch;
}

/* discipline list — clean rows, no numbering, no clutter */
.sv-ce-disc-title { display: block; }
.sv-ce-disc-title span { display: none; }
.sv-ce-num { display: none; }
.sv-ce-discipline > .sv-ce-go { opacity: .28; transition: opacity .18s ease, transform .18s ease; }
.sv-ce-discipline:hover > .sv-ce-go { opacity: 1; transform: translateX(2px); }

/* hero aside: one quiet note, aligned to the foot of the column */
@media (min-width: 1081px) {
  .sv-ce-hero-aside { align-content: end; }
}
@media (max-width: 1080px) {
  .sv-ce-hero-aside {
    grid-template-columns: 1fr;
    max-width: 46ch;
    padding-top: 22px;
  }
}

/* the closing panel must stay attached to the page, not float over the footer */
.sv-ce-close { margin-bottom: clamp(44px, 6vw, 76px); }
