:root{
  --ink:#071A3D;
  --deep:#0C2E6E;
  --splash:#1E7BFF;
  --aqua:#29D3E6;
  --wash:#E9F3FF;
  --paper:#FBFDFF;
  --text:#0E1B33;
  --muted:#5B6B85;
  --line:#DCE7F5;
  --grad:linear-gradient(120deg,var(--splash),var(--aqua));
  --bs-primary:#1E7BFF;
  --bs-primary-rgb:30,123,255;
}

*{ scroll-behavior:smooth; }

body{
  font-family:"DM Sans",system-ui,sans-serif;
  color:var(--text);
  background:var(--paper);
  font-size:1.0625rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:"Space Grotesk",system-ui,sans-serif;
  color:var(--ink);
  letter-spacing:-0.01em;
  line-height:1.08;
}

a{ color:var(--splash); text-decoration:none; }
a:hover{ color:var(--deep); }
::selection{ background:var(--aqua); color:var(--ink); }

:focus-visible{
  outline:3px solid var(--aqua);
  outline-offset:2px;
  border-radius:4px;
}

.container{ max-width:1140px; }

/* ---------- Buttons ---------- */
.btn-splash{
  background:var(--grad);
  color:#fff;
  border:0;
  font-weight:600;
  padding:.8rem 1.6rem;
  border-radius:999px;
  box-shadow:0 10px 24px -10px rgba(30,123,255,.7);
  transition:transform .18s ease, box-shadow .18s ease;
}
.btn-splash:hover{
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 16px 30px -12px rgba(30,123,255,.85);
}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1.5px solid var(--line);
  font-weight:600;
  padding:.8rem 1.6rem;
  border-radius:999px;
  transition:border-color .18s ease, color .18s ease;
}
.btn-ghost:hover{ border-color:var(--splash); color:var(--splash); }
.on-dark .btn-ghost{ color:#fff; border-color:rgba(255,255,255,.28); }
.on-dark .btn-ghost:hover{ border-color:var(--aqua); color:var(--aqua); }

/* ---------- Navbar ---------- */
.site-nav{
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding:1.1rem 0;
}
.site-nav.scrolled{
  background:rgba(7,26,61,.92);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(255,255,255,.06);
  padding:.7rem 0;
}
.brand{
  font-family:"Space Grotesk",sans-serif;
  font-weight:700;
  font-size:1.28rem;
  color:#fff;
  display:flex;
  align-items:center;
  gap:.55rem;
}
.brand svg{ flex:0 0 auto; }
.site-nav .nav-link{
  color:rgba(255,255,255,.78);
  font-weight:500;
  padding:.4rem 1rem;
  transition:color .15s ease;
}
.site-nav .nav-link:hover,
.site-nav .nav-link:focus{ color:#fff; }
.navbar-toggler{ border-color:rgba(255,255,255,.35); }
.navbar-toggler:focus{ box-shadow:none; }
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255,255,255,0.85)' stroke-width='2.2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E");
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:radial-gradient(120% 120% at 80% -10%, #12408f 0%, var(--ink) 55%);
  color:#fff;
  overflow:hidden;
  padding:11rem 0 8rem;
}
.hero .eyebrow{ color:var(--aqua); font-weight:600; font-size:.95rem; margin-bottom:1rem; }
.hero h1{ color:#fff; font-size:clamp(2.6rem,6vw,4.6rem); font-weight:700; margin-bottom:1.4rem; }
.hero h1 .wet{
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero .lede{ color:rgba(255,255,255,.82); font-size:1.2rem; max-width:34rem; margin-bottom:2.2rem; }
.hero-meta{ margin-top:3.5rem; display:flex; gap:2.6rem; flex-wrap:wrap; }
.hero-meta .num{ font-family:"Space Grotesk",sans-serif; font-size:2rem; font-weight:700; color:#fff; }
.hero-meta .lbl{ color:rgba(255,255,255,.6); font-size:.92rem; }

.splash-blob{ position:absolute; border-radius:50%; filter:blur(2px); opacity:.9; pointer-events:none; }
.blob-1{
  width:420px;height:420px;top:-90px;right:-60px;
  background:radial-gradient(circle at 35% 35%, rgba(41,211,230,.55), rgba(30,123,255,.18) 60%, transparent 72%);
  animation:float 9s ease-in-out infinite;
}
.blob-2{
  width:260px;height:260px;bottom:-40px;right:22%;
  background:radial-gradient(circle at 40% 40%, rgba(30,123,255,.5), transparent 70%);
  animation:float 11s ease-in-out infinite reverse;
}
.droplet{ position:absolute; border-radius:50%; background:var(--aqua); opacity:.5; pointer-events:none; }
.d1{width:14px;height:14px;top:26%;right:18%;animation:float 6s ease-in-out infinite;}
.d2{width:9px;height:9px;top:60%;right:40%;background:var(--splash);animation:float 7.5s ease-in-out infinite reverse;}
.d3{width:20px;height:20px;top:74%;right:9%;opacity:.35;animation:float 8s ease-in-out infinite;}

@keyframes float{
  0%,100%{ transform:translateY(0) translateX(0); }
  50%{ transform:translateY(-18px) translateX(8px); }
}

.reveal{ opacity:0; transform:translateY(16px); }
.loaded .reveal{ opacity:1; transform:none; transition:opacity .7s ease, transform .7s ease; }
.loaded .r1{ transition-delay:.05s; }
.loaded .r2{ transition-delay:.18s; }
.loaded .r3{ transition-delay:.31s; }
.loaded .r4{ transition-delay:.44s; }

.wave{ display:block; width:100%; height:70px; }

/* ---------- Sections ---------- */
section{ padding:6rem 0; }
.section-head{ max-width:46rem; margin-bottom:3.2rem; }
.section-head .kicker{ color:var(--splash); font-weight:600; margin-bottom:.6rem; }
.section-head h2{ font-size:clamp(2rem,4vw,2.9rem); margin-bottom:.9rem; }
.section-head p{ color:var(--muted); font-size:1.12rem; margin:0; }

/* ---------- Services / pillars ---------- */
.service{
  height:100%;
  padding:2.2rem 1.9rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.service:hover{
  border-color:transparent;
  transform:translateY(-4px);
  box-shadow:0 24px 48px -28px rgba(12,46,110,.5);
}
.service .ic{
  width:52px;height:52px;border-radius:14px;
  display:grid;place-items:center;
  background:var(--wash);color:var(--splash);
  margin-bottom:1.2rem;
}
.service:hover .ic{ background:var(--grad); color:#fff; }
.service h3{ font-size:1.35rem; margin-bottom:.5rem; }
.service > p{ color:var(--muted); font-size:1rem; }
.svc-list{ list-style:none; padding:0; margin:1.1rem 0 0; }
.svc-list li{
  position:relative; padding-left:1.5rem; margin-bottom:.55rem;
  color:var(--text); font-size:.99rem;
}
.svc-list li::before{
  content:""; position:absolute; left:0; top:.5rem;
  width:9px; height:9px; border-radius:50%; background:var(--grad);
}

/* ---------- Process ---------- */
.process{ background:var(--ink); color:#fff; }
.process .section-head h2{ color:#fff; }
.process .section-head p{ color:rgba(255,255,255,.7); }
.process .kicker{ color:var(--aqua); }
.step{ position:relative; padding-top:2.4rem; }
.step .idx{
  font-family:"Space Grotesk",sans-serif;
  font-size:1rem; font-weight:700; color:var(--ink);
  width:2.4rem;height:2.4rem;border-radius:50%;
  background:var(--grad); display:grid;place-items:center;
  position:absolute;top:0;left:0;
}
.step h3{ color:#fff; font-size:1.25rem; margin:.4rem 0 .5rem; }
.step p{ color:rgba(255,255,255,.68); font-size:1rem; margin:0; }
.step-line{ height:2px; background:linear-gradient(90deg,var(--splash),transparent); margin-top:1.2rem; }

/* ---------- Work ---------- */
.work-card{
  border-radius:18px; overflow:hidden;
  border:1px solid var(--line); background:#fff; height:100%;
  transition:transform .2s ease, box-shadow .2s ease;
}
.work-card:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -28px rgba(12,46,110,.5); }
.work-thumb{ height:190px; }
.work-thumb--1{ background:linear-gradient(135deg,#1E7BFF,#0C2E6E); }
.work-thumb--2{ background:linear-gradient(135deg,#29D3E6,#1E7BFF); }
.work-thumb--3{ background:linear-gradient(135deg,#0C2E6E,#29D3E6); }
.work-body{ padding:1.4rem 1.5rem 1.7rem; }
.work-body .tag{ color:var(--splash); font-weight:600; font-size:.85rem; }
.work-body h3{ font-size:1.22rem; margin:.3rem 0 .4rem; }
.work-body p{ color:var(--muted); font-size:.98rem; margin:0; }

/* ---------- Stats ---------- */
.band{ background:var(--wash); }
.stat .n{
  font-family:"Space Grotesk",sans-serif;
  font-size:clamp(2.4rem,5vw,3.4rem); font-weight:700;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; line-height:1;
}
.stat p{ color:var(--muted); margin:.5rem 0 0; }

/* ---------- Testimonial ---------- */
.quote{
  font-family:"Space Grotesk",sans-serif;
  font-size:clamp(1.5rem,3.4vw,2.2rem); line-height:1.32;
  color:var(--ink); font-weight:500;
}
.quote-mark{
  font-family:"Space Grotesk",sans-serif;
  font-size:4rem; line-height:0; color:var(--aqua);
  display:block; height:1.6rem;
}
.who{ color:var(--muted); margin-top:1.4rem; }
.who strong{ color:var(--ink); }

/* ---------- Contact ---------- */
.contact{
  background:radial-gradient(120% 120% at 20% 0%, #12408f 0%, var(--ink) 60%);
  color:#fff; border-radius:28px; padding:3.5rem;
}
.contact h2{ color:#fff; font-size:clamp(2rem,4vw,2.8rem); }
.contact p.sub{ color:rgba(255,255,255,.78); }
.contact-details{ margin-top:1.6rem; }
.contact-line{ color:rgba(255,255,255,.85); margin-bottom:.5rem; }
.contact-line a{ color:#fff; }
.contact-line a:hover{ color:var(--aqua); }
.form-label{ color:rgba(255,255,255,.8); font-weight:500; font-size:.95rem; }
.form-control{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
  color:#fff; border-radius:12px; padding:.8rem 1rem;
}
.form-control::placeholder{ color:rgba(255,255,255,.45); }
.form-control:focus{
  background:rgba(255,255,255,.1);
  border-color:var(--aqua);
  box-shadow:0 0 0 .2rem rgba(41,211,230,.2);
  color:#fff;
}

/* Honeypot — kept out of the visual + tab order */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Flash messages */
.flash{ border-radius:12px; padding:.9rem 1.1rem; margin-bottom:1.3rem; font-weight:500; }
.flash--ok{ background:rgba(41,211,230,.14); border:1px solid rgba(41,211,230,.5); color:#d6fbff; }
.flash--error{ background:rgba(255,107,107,.12); border:1px solid rgba(255,107,107,.5); color:#ffdede; }

/* ---------- Footer ---------- */
footer{ background:var(--ink); color:rgba(255,255,255,.6); padding:3rem 0; }
.foot-brand{ font-size:1.15rem; margin-bottom:.8rem; }
.foot-lead{ max-width:22rem; margin:0; }
.foot-h{ color:#fff; font-size:1rem; margin-bottom:1rem; }
footer a{ color:rgba(255,255,255,.6); }
footer a:hover{ color:#fff; }
.foot-rule{ border-color:rgba(255,255,255,.12); margin:2.2rem 0 1.2rem; }

@media (max-width:575px){
  .contact{ padding:2.2rem 1.5rem; }
  .hero{ padding:9rem 0 5.5rem; }
  section{ padding:4.5rem 0; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto; }
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- Error pages (404 / 403 / 400 / 500) ---------- */
.err-page{
  min-height:100vh;
  display:flex; align-items:center; justify-content:center; text-align:center;
  background:radial-gradient(120% 120% at 50% -10%, #12408f 0%, var(--ink) 62%);
  color:#fff; padding:2rem;
}
.err-inner{ max-width:34rem; }
.err-mark{ width:112px; height:auto; margin:0 auto 1.6rem; display:block; }
.err-code{
  font-family:"Space Grotesk",sans-serif; font-weight:700;
  font-size:clamp(4rem,15vw,7.5rem); line-height:1; margin-bottom:.3rem;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.err-title{ color:#fff; font-size:clamp(1.6rem,4vw,2.4rem); margin:0 0 .9rem; }
.err-text{ color:rgba(255,255,255,.8); font-size:1.12rem; margin:0 auto 2rem; max-width:30rem; }
.err-actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.err-actions a{ display:inline-block; text-decoration:none; }
@media (prefers-reduced-motion:reduce){ .err-page *{ animation:none !important; } }

/* ---------- Subpages: solid nav, page hero, news, articles ---------- */
.site-nav.solid{ background:rgba(7,26,61,.96); backdrop-filter:blur(10px); box-shadow:0 1px 0 rgba(255,255,255,.06); }
.site-nav.solid.scrolled{ padding:.7rem 0; }

.page-hero{
  background:radial-gradient(120% 130% at 80% -20%, #12408f 0%, var(--ink) 60%);
  color:#fff; padding:9.5rem 0 3.5rem;
}
.page-hero .eyebrow{ color:var(--aqua); font-weight:600; margin-bottom:.7rem; }
.page-hero .eyebrow .crumb{ color:var(--aqua); }
.page-hero h1{ color:#fff; font-size:clamp(2rem,5vw,3.2rem); margin-bottom:.7rem; }
.page-hero .lede{ color:rgba(255,255,255,.8); font-size:1.15rem; max-width:40rem; margin:0; }
.page-hero .article-meta{ color:rgba(255,255,255,.7); margin:0; font-size:.98rem; }

.subpage-main{ padding:4.5rem 0 5.5rem; }

/* News cards */
.news-card{
  display:block; height:100%; background:#fff; border:1px solid var(--line);
  border-radius:18px; overflow:hidden; text-decoration:none; color:inherit;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.news-card:hover{ transform:translateY(-4px); box-shadow:0 24px 48px -28px rgba(12,46,110,.5); border-color:transparent; color:inherit; }
.news-card-body{ padding:1.6rem 1.6rem 1.8rem; }
.news-date{ color:var(--splash); font-weight:600; font-size:.85rem; }
.news-card h3{ font-size:1.25rem; margin:.5rem 0 .55rem; }
.news-card p{ color:var(--muted); font-size:1rem; margin:0 0 1rem; }
.news-more{ color:var(--splash); font-weight:600; font-size:.95rem; }
.news-card:hover .news-more{ color:var(--deep); }

/* Article reading typography */
.article-body{ font-size:1.13rem; line-height:1.75; color:#20304d; }
.article-body h2{ font-size:1.7rem; margin:2.2rem 0 .8rem; }
.article-body h3{ font-size:1.35rem; margin:1.8rem 0 .6rem; }
.article-body h4{ font-size:1.15rem; margin:1.5rem 0 .5rem; }
.article-body p{ margin:0 0 1.2rem; }
.article-body ul{ margin:0 0 1.3rem; padding-left:1.3rem; }
.article-body li{ margin-bottom:.5rem; }
.article-body a{ color:var(--splash); text-decoration:underline; text-underline-offset:2px; }
.article-body a:hover{ color:var(--deep); }
.article-body strong{ color:var(--ink); }
.article-foot{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--line); }

.empty-state{ text-align:center; padding:2rem 0 1rem; }
.empty-state h2{ font-size:1.8rem; margin-bottom:.6rem; }
.empty-state p{ color:var(--muted); margin-bottom:1.6rem; }

@media (max-width:575px){ .page-hero{ padding:8rem 0 2.8rem; } .subpage-main{ padding:3rem 0 4rem; } }

/* Article header with background image */
.page-hero--with-image{ position:relative; overflow:hidden; }
.page-hero--with-image .page-hero-image{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:.28;
}
.page-hero--with-image .container{ position:relative; z-index:1; }

/* Image credit line above article body */
.image-credit{
  color:var(--muted); font-size:.85rem; text-align:right;
  margin:-1rem 0 1.6rem;
}
.image-credit a{ color:var(--muted); text-decoration:underline; text-underline-offset:2px; }

/* ---------- Services page ---------- */

/* Quick-jump pills at the top — one per service, icon + title.
   Wraps on narrow screens; hoverable, sticky on scroll on desktop. */
.svc-jump{
  display:flex; flex-wrap:wrap; gap:.7rem;
  padding:1rem; margin:-1.5rem 0 3rem;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  position:sticky; top:80px; z-index:5;
  box-shadow:0 8px 24px -18px rgba(12,46,110,.35);
}
.svc-pill{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.55rem .95rem;
  background:var(--wash); border:1px solid var(--line); border-radius:999px;
  color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem;
  transition:background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.svc-pill:hover{
  background:var(--grad); border-color:transparent; color:#fff;
  transform:translateY(-2px);
}
.svc-pill-ic{ display:inline-flex; color:var(--splash); }
.svc-pill:hover .svc-pill-ic{ color:#fff; }
.svc-pill-ic svg{ width:18px; height:18px; }

@media (max-width:767px){
  .svc-jump{ position:static; margin-top:-1rem; }
}

/* Big service section — clear separation from the next one */
.svc-block{
  padding:2.6rem 0 3.4rem;
  border-bottom:1px solid var(--line);
  scroll-margin-top:140px;  /* so the sticky nav doesn't cover the heading on jump */
}
.svc-block:last-of-type{ border-bottom:0; }

.svc-head{
  display:flex; align-items:center; gap:1.1rem; margin-bottom:1.4rem;
}
.svc-ic{
  width:56px; height:56px; flex:0 0 auto;
  border-radius:14px;
  background:var(--wash); color:var(--splash);
  display:grid; place-items:center;
}
.svc-ic svg{ width:28px; height:28px; }
.svc-head h2{ font-size:clamp(1.6rem, 3vw, 2rem); margin:0 0 .1rem; }
.svc-tag{ color:var(--muted); margin:0; font-size:1.05rem; }

/* Bulleted highlights row (from the "bullets" field) */
.svc-hi{
  display:flex; flex-wrap:wrap; gap:.55rem;
  list-style:none; padding:0; margin:0 0 2rem;
}
.svc-hi li{
  padding:.45rem .95rem;
  background:var(--wash); color:var(--ink);
  border-radius:999px; font-size:.92rem; font-weight:500;
}

/* Markdown detail body — inherits article-body styles for typography */
.svc-detail{ margin-bottom:2rem; }

/* Call-to-action row below each service */
.svc-cta{
  display:flex; gap:.8rem; flex-wrap:wrap; align-items:center;
  padding-top:.3rem;
}

/* Service-detail-page hero variant + "Other services" grid on that page */
.svc-head--hero{ margin-bottom:0; }
.svc-ic--hero{
  width:72px; height:72px;
  background:rgba(41,211,230,.15); color:var(--aqua);
}
.svc-ic--hero svg{ width:36px; height:36px; }
.svc-head--hero h1{ color:#fff; margin-bottom:.2rem; }

.svc-others{ margin-top:4rem; padding-top:3rem; border-top:1px solid var(--line); }
.svc-others-h{ font-size:1.4rem; margin-bottom:1.4rem; }
.svc-other{
  display:flex; gap:1rem; padding:1.2rem;
  background:#fff; border:1px solid var(--line); border-radius:14px;
  text-decoration:none; color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  height:100%;
}
.svc-other:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 36px -22px rgba(12,46,110,.4);
  border-color:transparent; color:inherit;
}
.svc-other h3{ font-size:1.05rem; margin:0 0 .2rem; }
.svc-other p{ color:var(--muted); margin:0; font-size:.9rem; }

/* ---------- Industries ---------- */

/* Card in the industries grid */
.ind-card{
  display:flex; flex-direction:column;
  height:100%; padding:1.5rem;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  text-decoration:none; color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ind-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 40px -22px rgba(12,46,110,.4);
  border-color:transparent; color:inherit;
}
.ind-card-ic{
  display:inline-grid; place-items:center;
  width:52px; height:52px; margin-bottom:1rem;
  border-radius:14px;
  background:var(--wash); color:var(--splash);
  font-size:1.5rem;
}
.ind-card h3{ font-size:1.15rem; margin:0 0 .4rem; }
.ind-card p{ color:var(--muted); margin:0 0 1rem; flex-grow:1; }
.ind-card-more{ color:var(--splash); font-weight:600; font-size:.9rem; }

/* Industry detail page — hero icon next to the title */
.ind-hero{ display:flex; align-items:center; gap:1.2rem; }
.ind-hero-ic{
  display:inline-grid; place-items:center;
  width:72px; height:72px; flex:0 0 auto;
  border-radius:16px;
  background:rgba(41,211,230,.15); color:var(--aqua);
  font-size:2rem;
}
.ind-hero h1{ margin:0; }
.ind-hero .lede{ margin:.3rem 0 0; }

/* "Other industries" grid at the bottom of a detail page uses .svc-other markup */
.svc-other-ic{
  display:inline-grid; place-items:center;
  width:40px; height:40px; flex:0 0 auto;
  border-radius:10px;
  background:var(--wash); color:var(--splash);
  font-size:1.15rem;
}

/* Article listing card — optional header image thumbnail */
.news-card--with-image{ overflow:hidden; }
.news-card-img{
  display:block; width:100%; aspect-ratio: 16 / 9;
  background-size:cover; background-position:center;
  background-color:var(--wash);
}

/* ---------- Author profile ---------- */

.author-hero{
  display:flex; align-items:center; gap:1.4rem;
}
.author-hero-avatar{
  width:96px; height:96px; flex:0 0 auto;
  border-radius:50%; object-fit:cover;
  border:3px solid rgba(255,255,255,.12);
  background:var(--wash);
}
.author-hero-avatar--placeholder{
  display:inline-grid; place-items:center;
  color:var(--splash); font-family:var(--head-font, inherit);
  font-weight:600; font-size:2.6rem;
  background:linear-gradient(135deg, var(--wash), #d4e4fb);
  border-color:rgba(255,255,255,.2);
}
.author-hero h1{ margin:0; }
.author-hero .lede{ margin:.3rem 0 0; }

.author-bio{ margin-top:1rem; }

.author-social{
  list-style:none; padding:0; margin:1.6rem 0 0;
  display:flex; flex-wrap:wrap; gap:.55rem;
}
.author-social a{
  display:inline-grid; place-items:center;
  width:42px; height:42px;
  background:var(--wash); color:var(--splash);
  border-radius:50%; text-decoration:none;
  transition:background .15s ease, color .15s ease, transform .15s ease;
}
.author-social a:hover{
  background:var(--grad); color:#fff; transform:translateY(-2px);
}
.author-social i{ font-size:1.1rem; }

/* Byline link on article pages */
.article-byline{
  color:inherit; text-decoration:none;
  border-bottom:1px dotted rgba(255,255,255,.5);
}
.article-byline:hover{ border-bottom-color:#fff; color:#fff; }

/* Visually hidden text (for screen-reader-only labels) */
.visually-hidden{
  position:absolute !important; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

/* ---------- Case studies ---------- */

/* Section container (used inside service pages + homepage) */
.cs-section{ margin-top:3rem; padding-top:2.6rem; border-top:1px solid var(--line); }
.cs-section:first-child{ margin-top:0; padding-top:0; border-top:0; }
.cs-section-head{ margin-bottom:1.6rem; }
.cs-section-head h2{ font-size:1.5rem; margin:0 0 .25rem; }
.cs-section-head p{ margin:0; }

.cs-teaser{ padding:4rem 0; background:linear-gradient(180deg, #fbfdff 0%, #fff 100%); }
.cs-teaser-more{ text-align:center; margin-top:2rem; }

/* Card */
.cs-card{
  display:flex; flex-direction:column;
  height:100%; overflow:hidden;
  background:#fff; border:1px solid var(--line); border-radius:16px;
  text-decoration:none; color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.cs-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 40px -22px rgba(12,46,110,.4);
  border-color:transparent; color:inherit;
}
.cs-card-img{
  display:block; width:100%; aspect-ratio: 16 / 9;
  object-fit:cover; background:var(--wash);
}
.cs-card-img--placeholder{
  background:linear-gradient(135deg, var(--wash), #d4e4fb);
}
.cs-card-body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.cs-card-client{
  color:var(--splash); font-weight:600; font-size:.8rem;
  text-transform:uppercase; letter-spacing:.08em;
  margin:0 0 .35rem;
}
.cs-card h3{ font-size:1.1rem; margin:0 0 .45rem; }
.cs-card-summary{ color:var(--muted); margin:0 0 .9rem; flex-grow:1; }
.cs-card-tags{
  list-style:none; padding:0; margin:0 0 1rem;
  display:flex; flex-wrap:wrap; gap:.35rem;
}
.cs-card-tags li{
  font-size:.72rem; padding:.2rem .55rem;
  background:var(--wash); color:var(--ink);
  border-radius:999px;
}
.cs-card-more{ color:var(--splash); font-weight:600; font-size:.9rem; }

/* Case study detail page — tags row above the body */
.cs-tags{
  list-style:none; padding:0; margin:0 0 1.6rem;
  display:flex; flex-wrap:wrap; gap:.4rem;
}
.cs-tags li{
  padding:.25rem .65rem;
  background:var(--wash); color:var(--splash);
  border-radius:999px; font-size:.85rem; font-weight:500;
}

/* Footer social icon strip — sits under the tagline */
.foot-social{
  list-style:none; padding:0; margin:1rem 0 0;
  display:flex; flex-wrap:wrap; gap:.5rem;
}
.foot-social a{
  display:inline-grid; place-items:center;
  width:38px; height:38px;
  background:rgba(255,255,255,.06); color:#fff;
  border-radius:50%; text-decoration:none;
  transition:background .15s ease, transform .15s ease;
}
.foot-social a:hover{
  background:var(--grad); transform:translateY(-2px);
}
.foot-social i{ font-size:1rem; }

/* ---------- About page — team member card ---------- */
.team-avatar{
  display:block; width:100%; aspect-ratio: 1 / 1;
  object-fit:cover; background:var(--wash);
}
.team-avatar--placeholder{
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--wash), #d4e4fb);
  color:var(--splash); font-family:var(--head-font, inherit);
  font-weight:600; font-size:3rem;
}

/* Author bio block on auto-generated articles */
.article-bio{
  margin: 3rem auto 1rem;
  padding: 1.6rem 1.8rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: linear-gradient(180deg, #fbfdff, #f5f9fe);
}
.article-bio p{ margin: 0 0 1rem; }
.article-bio p:last-child{ margin-bottom: 0; }
