/* ==============================================================
   TechInfini Theme — main.css
   Ported from the approved "Six" homepage design.
   Brand colors: Blue #1976D2 + Red #E53935 + Black.
   Brand color vars can be overridden by the Customizer (see
   inc/enqueue.php — it injects :root overrides after this file).
   ============================================================== */

:root{
  --blue:#1976D2;
  --blue-1:#2196F3;
  --blue-2:#1565C0;
  --blue-3:#0D47A1;
  --blue-pale:#E3F2FD;
  --blue-soft:#BBDEFB;
  --red:#E53935;
  --red-1:#EF5350;
  --red-2:#D32F2F;
  --red-3:#C62828;
  --red-pale:#FFEBEE;
  --red-soft:#FFCDD2;
  --silver:#B0B7C3;
  --ink:#0A0A0A;
  --ink-2:#1A1A1A;
  --ink-3:#262626;
  --muted:#64748B;
  --muted-2:#94A3B8;
  --line:#E5E7EB;
  --line-2:#D1D5DB;
  --surface:#FFFFFF;
  --soft:#FAFAF7;
  --soft-2:#F1F5F9;
  --off-white:#f9f9f9e0;
  --win-bg: #fff8e1;
  --win-bd: #ffb300;
  --r:12px;
  --r-lg:18px;
  --r-xl:24px;
  --r-2xl:32px;
  --ease:cubic-bezier(0.22,1,0.36,1);
  --shadow-sm:0 1px 2px rgba(10,10,10,0.04);
  --shadow:0 8px 24px -6px rgba(10,10,10,0.08);
  --shadow-lg:0 20px 40px -12px rgba(10,10,10,0.12);
  --shadow-xl:0 30px 60px -15px rgba(10,10,10,0.18);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--soft);color:var(--ink);
  line-height:1.6;-webkit-font-smoothing:antialiased;
  overflow-x:clip;font-size:16px;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;border:none;cursor:pointer;background:none;color:inherit;}
h1,h2,h3,h4,h5{
  font-family:'Inter',sans-serif;font-weight:700;
  line-height:1.05;letter-spacing:-0.03em;color:var(--ink);
}
.italic{
  font-family:'Instrument Serif',serif;
  font-style:italic;font-weight:400;letter-spacing:-0.015em;
}
h1 span.italic, h2 span.italic{
  color: var(--red);
}
.mono{font-family:'JetBrains Mono',monospace;}

/* === WordPress / accessibility utilities === */
.screen-reader-text{
  position:absolute !important;clip:rect(1px,1px,1px,1px);
  width:1px;height:1px;overflow:hidden;word-wrap:normal !important;
}
.skip-link:focus{
  position:fixed;top:8px;left:8px;z-index:100000;
  background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:6px;
  clip:auto !important;width:auto;height:auto;
}
.alignwide{width:min(1320px,93%);margin-inline:auto;}
.alignfull{width:100%;}
.aligncenter{margin-inline:auto;}

/* === Admin bar offset (logged-in users) === */
body.admin-bar .topbar{top:32px;}
body.admin-bar .hdr{top:68px;}
body.admin-bar .hdr.is-scrolled{top:32px;}
@media screen and (max-width:782px){
  body.admin-bar .topbar{top:46px;}
  body.admin-bar .hdr{top:82px;}
  body.admin-bar .hdr.is-scrolled{top:46px;}
}

.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:'JetBrains Mono',monospace;font-size:.78rem;
  font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  padding:.4rem .85rem;border-radius:999px;
  color:var(--blue);background:var(--blue-pale);
  border:1px solid var(--blue-soft);
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px var(--blue);animation:pulse 2s ease-in-out infinite;}
.eyebrow a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease;}
.eyebrow a:hover{border-bottom-color:currentColor;}
.eyebrow--red{background:var(--red-pale);color:var(--red);border-color:var(--red-soft);}
.eyebrow--red .dot{background:var(--red);box-shadow:0 0 10px var(--red);}
.eyebrow--dark{background:rgba(255,255,255,0.08);color:#fff;border-color:rgba(255,255,255,0.15);}
.eyebrow--dark .dot{background:var(--red);box-shadow:0 0 10px var(--red);}
@keyframes pulse{50%{opacity:.4;}}

.container{width:min(1320px,93%);margin-inline:auto;}
.section{padding:clamp(70px,8vw,130px) 0;position:relative;}
.section--soft{background:var(--soft);}
.section--ink{background:var(--ink);color:#fff;}
.section--ink h2,.section--ink h3,.section--ink h4{color:#fff;}
.section--ink p{color:rgba(255,255,255,0.7);}

.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.95rem 1.55rem;border-radius:10px;
  font-weight:600;font-size:.95rem;letter-spacing:-0.01em;
  transition:all .25s var(--ease);
  border:1px solid transparent;white-space:nowrap;position:relative;overflow:hidden;
  font-family:inherit;cursor:pointer;line-height:1.2;
}
button.btn{appearance:none;-webkit-appearance:none;}
button.btn:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.btn--red{background:var(--red);color:#fff;box-shadow:0 6px 16px -4px rgba(229,57,53,0.4);}
.btn--red:hover{background:var(--red-2);transform:translateY(-2px);box-shadow:0 10px 26px -4px rgba(229,57,53,0.55);color:#fff;}
.btn--blue{background:var(--blue);color:#fff;box-shadow:0 6px 16px -4px rgba(25,118,210,0.4);}
.btn--blue:hover{background:var(--blue-2);transform:translateY(-2px);color:#fff;}
.btn--ink{background:var(--ink);color:#fff;}
.btn--ink:hover{background:var(--ink-3);transform:translateY(-2px);color:#fff;}
.btn--ghost{background:#fff;color:var(--ink);border-color:var(--line);}
.btn--ghost:hover{border-color:var(--ink);transform:translateY(-2px);}
.btn--ghost-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,0.25);}
.btn--ghost-dark:hover{background:rgba(255,255,255,0.1);color:#fff;}
.btn .arr{display:inline-flex;width:14px;height:14px;transition:transform .25s var(--ease);}
.btn:hover .arr{transform:translateX(3px);}

/* ===== TOPBAR ===== */
.topbar{position:fixed;top:0;left:0;right:0;z-index:51;background:var(--ink);color:rgba(255,255,255,0.85);padding:.55rem 0;font-size:.82rem;border-bottom:1px solid var(--ink-3);transition:transform .35s var(--ease);}
.topbar.is-hidden{transform:translateY(-100%);}
.topbar__inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.topbar__left,.topbar__right{display:flex;gap:1.4rem;align-items:center;flex-wrap:wrap;}
.topbar__phone{display:inline-flex;align-items:center;gap:.4rem;}
.topbar__phone:hover{color:var(--red);}
.topbar__divider{width:1px;height:14px;background:rgba(255,255,255,0.18);}
.topbar__avail{display:inline-flex;align-items:center;gap:.4rem;color:#fff;font-family:'JetBrains Mono',monospace;font-size:.74rem;}
.topbar__avail .live{width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);animation:pulse 1.6s ease-in-out infinite;}
@media (max-width:780px){.topbar__avail,.topbar__divider:last-of-type{display:none;}}

/* ===== HEADER ===== */
.hdr{
  position:fixed;top:36px;left:0;right:0;z-index:50;
  background:transparent;border-bottom:1px solid transparent;
  transition:top .35s var(--ease),background .3s var(--ease),backdrop-filter .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.hdr.is-scrolled{top:0;background:rgba(255,255,255,0.95);backdrop-filter:saturate(180%) blur(14px);border-color:var(--line);box-shadow:var(--shadow-sm);}
/* Top-level nav links only — DON'T cascade into the mega menu's <a> elements. */
.hdr:not(.is-scrolled):not(.hdr--inner) .nav__list > li > a{color:rgba(255,255,255,0.85);}
.hdr:not(.is-scrolled):not(.hdr--inner) .nav__list > li > a:hover{background:rgba(255,255,255,0.1);color:#fff;}
.hdr:not(.is-scrolled):not(.hdr--inner) .hdr__quote{color:#fff;}
.hdr:not(.is-scrolled):not(.hdr--inner) .burger{color:#fff;border-color:rgba(255,255,255,0.3);}
.hdr__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.85rem 0;}

/* Brand / logo */
.brand{display:flex;align-items:center;gap:.5rem;}
.brand img{height:42px;width:auto;display:block;}
@media (max-width:780px){.brand img{height:42px;}}
.brand__text{font-family:'Inter',sans-serif;font-weight:800;font-style:italic;font-size:1.4rem;letter-spacing:-0.025em;}
.brand__text .blue{color:var(--blue);}
.brand__text .red{color:var(--red);}
.hdr:not(.is-scrolled):not(.hdr--inner) .brand__text{color:#fff;}
@media (max-width:560px){.brand img{height:36px;}}

.nav{display:flex;gap:.25rem;align-items:center;}
.nav ul{list-style:none;display:flex;gap:.25rem;align-items:center;margin:0;padding:0;}
/* Top-level nav links — scoped to direct children of .nav__list so mega menu
   internals don't inherit padding / color / hover from these rules. */
.nav__list > li > a{font-size:.92rem;font-weight:500;color:var(--ink-2);padding:.55rem .85rem;border-radius:8px;transition:all .2s var(--ease);display:inline-flex;align-items:center;gap:.3rem;}
.nav__list > li > a:hover{background:var(--soft-2);color:var(--ink);}
.nav .caret{
  width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);opacity:.55;margin-top:-2px;display:inline-block;
}
.hdr__cta{display:flex;gap:.6rem;align-items:center;}
.hdr__quote{font-size:.92rem;font-weight:600;color:var(--blue);padding:.55rem .85rem;}
.burger{display:none;}
@media (max-width:1080px){.nav,.hdr__quote{display:none;}.burger{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,0.06);}}

/* ===== Mobile header layout fix =====
   The header is position:fixed; top:36px — designed to clear a 36px-tall
   single-row topbar. On mobile the topbar's two phones + email wrap to
   multiple lines (~80px) and the header ended up hidden behind it.
   Fix: compress the topbar to a single row on mobile (show only the first
   phone, hide the rest). Topbar stays ~32-36px tall, header remains visible
   below it without changing the (working) fixed-positioning system. */
@media (max-width:780px){
  /* Slim the topbar height and centre the visible phone. */
  .topbar{padding:.45rem 0;font-size:.78rem;}
  .topbar__inner{justify-content:center;}
  .topbar__right{justify-content:center;gap:0;flex-wrap:nowrap;}
  /* Hide every .topbar__phone after the first, plus every divider, so
     only the first phone link remains visible. The full contact details
     are still reachable from the in-page sections (Get a Quote, footer,
     and the schedule modal). */
  .topbar__right > .topbar__phone ~ .topbar__phone{display:none!important;}
  .topbar__right > .topbar__divider{display:none!important;}

  /* Keep the Schedule a Call CTA visible in the mobile header with its
     original styling — no overrides. Get a Quote text-link stays hidden
     at <1080px (already handled above) — it lives inside the drawer. */

  /* Tighten the homepage hero on phone-width — the desktop padding
     (11rem top, 6rem bottom) eats most of the viewport. Drop it so the
     headline lands above the fold. */
  .hero{
    min-height:auto;
    padding:5.5rem 0 3rem;
  }
  /* Tighter top spacing inside the hero too. */
  .hero__inner{padding-top:0;}
}

/* Mobile nav drawer — full-width slide-in panel */
.nav.is-open{
  display:flex;flex-direction:column;align-items:stretch;
  position:fixed;top:0;right:0;bottom:0;left:0;
  width:100vw;width:100dvw;
  height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;
  background:#fff;z-index:60;padding:0 1.25rem 1.5rem;gap:.3rem;
  box-shadow:none;
  overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

/* Drawer header — logo (left) + X close (right). Hidden on desktop;
   shown only inside the open drawer. Sticks to the top while scrolling. */
.nav__header{display:none;}
.nav.is-open .nav__header{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:1rem 0;margin:0 0 .5rem;
  position:sticky;top:0;z-index:2;
  background:#fff;border-bottom:1px solid var(--line);
}
.nav.is-open .nav__header .brand{
  display:inline-flex;align-items:center;
}
.nav.is-open .nav__header .brand img{
  max-height:36px;width:auto;height:auto;
}
/* Force brand text to render in normal colours inside the drawer,
   overriding the transparent-header white-text rule on the homepage. */
.hdr:not(.is-scrolled):not(.hdr--inner) .nav.is-open .nav__header .brand__text{
  color:inherit;
}
.nav.is-open .nav__header .brand__text .blue{color:var(--blue);}
.nav.is-open .nav__header .brand__text .red{color:var(--red);}
.nav__close{
  display:inline-grid;place-items:center;
  width:40px;height:40px;border-radius:8px;
  background:transparent;border:1px solid var(--line);
  color:var(--ink);cursor:pointer;
  flex-shrink:0;
}
.nav__close:hover,.nav__close:focus{
  background:var(--soft);
}
.nav.is-open ul{flex-direction:column;align-items:stretch;gap:.3rem;}
.nav.is-open a{color:var(--ink-2);padding:.85rem 1rem;font-size:1rem;}
.nav-overlay{position:fixed;inset:0;background:rgba(10,10,10,0.5);z-index:55;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);}
.nav-overlay.is-visible{opacity:1;pointer-events:auto;}

/* Stacking-context fix for the open mobile drawer.
   The drawer (.nav.is-open) lives inside .hdr (z-index:50). Because .hdr
   has a stacking context, the drawer's own z-index:60 only competes WITHIN
   that context, while the .nav-overlay (appended to <body>, z-index:55)
   sits at the root level — above the entire .hdr context. Net result: the
   overlay covers the drawer too, so menu items look dimmed/greyed.
   Lifting .hdr above 55 on mobile pushes the drawer above the overlay
   at the root level too. (Desktop is unaffected — no drawer to open.) */
@media (max-width:1080px){
  .hdr{z-index:65;}
}

/* When the drawer is open, prevent the page underneath from scrolling.
   The JS already sets `body.style.overflow = hidden`, but iOS Safari
   sometimes ignores that on a long page; this is the belt-and-braces
   addition. */
body:has(.nav.is-open){overflow:hidden;}

/* Drawer CTAs — hidden in the desktop header (where the CTAs already
   live in .hdr__cta), shown only when the slide-out nav drawer opens. */
.nav__cta{display:none;}
.nav.is-open .nav__cta{
  display:flex;flex-direction:column;gap:.6rem;
  margin-top:1.5rem;padding-top:1.5rem;
  border-top:1px solid var(--line);
}
.nav.is-open .nav__cta-btn{
  width:100%;justify-content:center;padding:.95rem 1rem;font-size:.95rem;
}

/* Override homepage transparent-header colour rules inside the open drawer.
   On the homepage the header overlays the dark hero, so nav links are
   styled white via `.hdr:not(.is-scrolled):not(.hdr--inner) .nav__list>li>a`.
   That rule wins by specificity inside the (white-background) drawer too,
   leaving white text on white = invisible items. Force dark text + hide the
   mega-menu panels (they're position:absolute and useless in the drawer). */
.hdr .nav.is-open .nav__list > li > a,
.hdr:not(.is-scrolled):not(.hdr--inner) .nav.is-open .nav__list > li > a{
  color:var(--ink-2);
}
.hdr .nav.is-open .nav__list > li > a:hover,
.hdr:not(.is-scrolled):not(.hdr--inner) .nav.is-open .nav__list > li > a:hover{
  background:var(--soft);color:var(--ink);
}
.nav.is-open .sub-menu{display:none!important;}
.nav.is-open .nav__list{display:flex;flex-direction:column;}
.nav.is-open .nav__list > li{display:block;}
.nav.is-open .nav__list > li > a{display:block;border-radius:8px;display:flex;align-items:center;justify-content:space-between;}

/* === Mobile drawer accordion — Level 1 (top-level) === */
/* Replace the rotating chevron with a +/− text indicator, anchored right.
   Hide the underlying chevron span only on parents that have a mega; the
   non-mega items (Work, Insights) keep no caret either. */
.nav.is-open .caret{display:none;}
.nav.is-open .nav__item--has-mega > a{
  position:relative;padding-right:2.2rem;
}
.nav.is-open .nav__item--has-mega > a::after{
  content:'+';
  position:absolute;right:.85rem;top:50%;
  transform:translateY(-50%);
  font-size:1.4rem;font-weight:300;line-height:1;
  color:var(--ink-2,#374151);
}
.nav.is-open .nav__item--has-mega.is-expanded > a::after{
  content:'\2013'; /* en-dash */
}

/* Expanded mega container — soft grey rounded card */
.nav.is-open .nav__item--has-mega > .mega{display:none;}
.nav.is-open .nav__item--has-mega.is-expanded > .mega{
  display:block;
  position:static;
  width:100%;max-width:none;
  margin:.4rem 0 .6rem;
  opacity:1;visibility:visible;pointer-events:auto;
  transform:none;
  box-shadow:none;
  border:0;
  border-radius:14px;
  background:#f3f4f6;
  padding:.2rem 1rem;
  z-index:auto;
}

/* Collapse desktop grid into a single column */
.nav.is-open .mega__grid,
.nav.is-open .mega__simple-grid{
  display:block;grid-template-columns:none;gap:0;
}

/* Hide featured panels & tab column (level-2 names come from panel-head) */
.nav.is-open .mega__feats,
.nav.is-open .mega__feat,
.nav.is-open .mega__tabs{display:none !important;}

/* === SERVICES mega — Level 2 accordion === */
.nav.is-open .mega__panels{position:static;display:block;}
.nav.is-open .mega__panel,
.nav.is-open .mega__panel[hidden]{
  display:block !important;
  position:static;
  border:0;padding:0;background:transparent;
  margin:0;
}
.nav.is-open .mega__panel + .mega__panel{
  border-top:1px solid rgba(0,0,0,.06);
}
.nav.is-open .mega__panel-head{
  display:block;position:relative;
  padding:.85rem 2.2rem .85rem 0;
  border:0;cursor:pointer;
}
.nav.is-open .mega__panel-head h4{
  margin:0;font-size:1rem;font-weight:500;
  color:var(--ink);letter-spacing:0;text-transform:none;
}
/* Strip " services" suffix visually — done in CSS so HTML stays intact */
.nav.is-open .mega__panel-head::after{
  content:'+';
  position:absolute;right:0;top:50%;
  transform:translateY(-50%);
  font-size:1.4rem;font-weight:300;line-height:1;
  color:var(--ink-2,#374151);pointer-events:none;
}
.nav.is-open .mega__panel.is-expanded > .mega__panel-head::after{
  content:'\2013';
}
/* Hide the inline "View parent →" link in the head — parent page reachable
   via the dedicated link rendered below the sub-list. */
.nav.is-open .mega__panel-head > a{display:none;}

/* Sub-services list collapsed by default; revealed when panel is expanded */
.nav.is-open .mega__sub{
  display:none;padding:0 0 .8rem;margin:0;
  background:transparent;border:0;gap:0;
}
.nav.is-open .mega__panel.is-expanded > .mega__sub{display:block;}
.nav.is-open .mega__sub a{
  display:block;padding:.5rem .5rem;
  font-size:.92rem;font-weight:400;
  color:var(--ink-2,#374151);text-decoration:none;
  border-radius:6px;border:0;background:transparent;
}
.nav.is-open .mega__sub a small{display:none;}
.nav.is-open .mega__sub a:hover,
.nav.is-open .mega__sub a:focus{
  background:rgba(0,0,0,.04);color:var(--ink);
}

/* === HIRE / INDUSTRIES / SOLUTIONS mega — plain text-link list === */
.nav.is-open .mega__cards{
  display:block;padding:0;background:transparent;border:0;gap:0;
}
.nav.is-open .mega__card,
.nav.is-open .mega__item{
  display:block;align-items:initial;gap:0;
  padding:.85rem 0;font-size:1rem;font-weight:500;
  background:transparent;border:0;border-radius:0;
  text-decoration:none;color:var(--ink);
}
.nav.is-open .mega__card + .mega__card,
.nav.is-open .mega__item + .mega__item{
  border-top:1px solid rgba(0,0,0,.06);
}
.nav.is-open .mega__card:hover,
.nav.is-open .mega__card:focus,
.nav.is-open .mega__item:hover{color:var(--blue);}
.nav.is-open .mega__card-ic,
.nav.is-open .mega__item-ic{display:none;}
.nav.is-open .mega__card-body{display:block;}
.nav.is-open .mega__card strong{
  font-size:inherit;font-weight:inherit;color:inherit;display:inline;
}
.nav.is-open .mega__card small,
.nav.is-open .mega__card-meta,
.nav.is-open .mega__card p{display:none;}

/* ===== HERO ===== */
.hero{
  position:relative;min-height:100vh;padding:11rem 0 6rem;
  overflow:hidden;background:var(--ink);color:#fff;
  display:flex;align-items:center;
}
.hero__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;filter:brightness(0.55) saturate(0.9);}
.hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,10,10,0.55) 0%,rgba(10,10,10,0.88) 100%);}
.hero__aurora{
  position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    radial-gradient(ellipse 50% 40% at 12% 30%,rgba(25,118,210,0.5),transparent 60%),
    radial-gradient(ellipse 55% 45% at 88% 25%,rgba(229,57,53,0.4),transparent 60%),
    radial-gradient(ellipse 70% 50% at 50% 110%,rgba(123,31,162,0.3),transparent 60%);
  filter:blur(80px);animation:auroraShift 18s ease-in-out infinite;
}
@keyframes auroraShift{0%,100%{transform:scale(1) translate(0,0);}50%{transform:scale(1.05) translate(-20px,15px);}}
.hero__grid{
  position:absolute;inset:0;pointer-events:none;z-index:2;
  background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px);
  background-size:60px 60px;
  mask:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 80%);
  -webkit-mask:radial-gradient(ellipse 70% 60% at 50% 30%,#000,transparent 80%);
}
.hero__inner{position:relative;z-index:3;text-align:center;max-width:1080px;margin:0 auto;}
.hero__chip{
  display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .9rem;border-radius:999px;
  background:rgba(255,255,255,0.08);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.18);
  font-family:'JetBrains Mono',monospace;font-size:.78rem;color:rgba(255,255,255,0.9);letter-spacing:.04em;margin-bottom:1.8rem;
}
.hero__chip .dot{width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red);animation:pulse 1.6s ease-in-out infinite;}
.hero__h1{
  font-family:'Inter',sans-serif;font-size:clamp(2.8rem,6.8vw,6.2rem);
  font-weight:800;letter-spacing:-0.045em;line-height:.98;color:#fff;margin-bottom:1.6rem;
  text-shadow:0 2px 30px rgba(0,0,0,0.3);
}
.hero__h1 .line{display:block;}
.cycler{display:inline-block;position:relative;min-width:9ch;height:1em;vertical-align:bottom;overflow:hidden;}
.cycler__word{
  position:absolute;left:50%;top:0;white-space:nowrap;
  font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;
  background:linear-gradient(110deg,var(--blue) 0%,var(--red) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:-0.01em;opacity:0;transform:translateX(-50%) translateY(40px);
  animation:cycle 21s infinite;
}
.cycler__word:nth-child(1){animation-delay:0s;}
.cycler__word:nth-child(2){animation-delay:3.5s;}
.cycler__word:nth-child(3){animation-delay:7s;}
.cycler__word:nth-child(4){animation-delay:10.5s;}
.cycler__word:nth-child(5){animation-delay:14s;}
.cycler__word:nth-child(6){animation-delay:17.5s;}
@keyframes cycle{
  0%,1%{opacity:0;transform:translateX(-50%) translateY(40px);}
  4%,14%{opacity:1;transform:translateX(-50%) translateY(0);}
  17%,100%{opacity:0;transform:translateX(-50%) translateY(-40px);}
}
.hero .hero__inner .hero__lede,
.hero__lede{
  font-size:1.15rem !important;
  color:rgba(255,255,255,0.78);
  max-width:640px !important;
  max-inline-size:640px !important;
  width:auto !important;
  inline-size:auto !important;
  margin-left:auto !important;
  margin-right:auto !important;
  margin-bottom:2rem !important;
  line-height:1.6;
  display:block !important;
  box-sizing:border-box !important;
}
.hero__lede b{color:#fff;font-weight:600;}
.hero__cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-bottom:2.5rem;}
.hero__pills{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;max-width:900px;margin:0 auto 2.5rem;}
.pill{
  display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border-radius:999px;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);
  font-size:.88rem;font-weight:600;color:#fff;letter-spacing:-0.01em;
  transition:all .25s var(--ease);backdrop-filter:blur(12px);
}
.pill:hover{transform:translateY(-2px);background:rgba(255,255,255,0.14);border-color:var(--red);box-shadow:0 8px 20px -6px rgba(229,57,53,0.4);color:#fff;}
.pill__ic{width:18px;height:18px;color:#90CAF9;transition:color .25s var(--ease);display:inline-flex;}
.pill:hover .pill__ic{color:var(--red-1);}
.pill__ic svg{width:100%;height:100%;}
.hero__trust{
  display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;
  font-size:.86rem;color:rgba(255,255,255,0.7);
  padding-top:2rem;border-top:1px solid rgba(255,255,255,0.12);max-width:780px;margin:0 auto;
}
.hero__trust b{color:#fff;font-weight:700;}
.hero__trust .star{color:var(--red-1);letter-spacing:.05em;}
.hero__trust-sep{width:1px;height:14px;background:rgba(255,255,255,0.2);}

/* ===== MARQUEE ===== */
.marq{padding:1.8rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink);color:#fff;overflow:hidden;}
.marq__track{display:flex;gap:3rem;animation:slide 40s linear infinite;white-space:nowrap;}
.marq__word{display:inline-flex;align-items:center;gap:3rem;font-family:'Inter',sans-serif;font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:800;letter-spacing:-0.025em;}
.marq__word::after{content:"●";color:var(--red);font-size:.5em;}
.marq__word .italic{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;background:linear-gradient(90deg,var(--blue-1) 0%,var(--red-1) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.1em;line-height:1;}
@keyframes slide{to{transform:translateX(-50%);}}

/* ===== EXPERTISE SHOWCASE ===== */
.exp{background:var(--surface);}
.exp__head{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:end;margin-bottom:3rem;}
@media (max-width:900px){.exp__head{grid-template-columns:1fr;}}
.exp__head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-0.04em;line-height:1.02;}
.exp__head h2 .italic{background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.exp__head p{color:var(--muted);font-size:1.05rem;line-height:1.6;max-width:560px;}
.exp__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media (max-width:1000px){.exp__grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.exp__grid{grid-template-columns:1fr;}}
.exp-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-2xl);overflow:hidden;position:relative;transition:all .35s var(--ease);display:flex;flex-direction:column;}
.exp-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:var(--line-2);}
.exp-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--red));opacity:0;transition:opacity .3s var(--ease);z-index:5;}
.exp-card:hover::before{opacity:1;}
.exp-card__img{aspect-ratio:16/9;overflow:hidden;position:relative;background:var(--soft);}
.exp-card__img::after {content: "";position: absolute;inset: 0;background: linear-gradient(180deg, transparent 50%, rgba(10, 10, 10, 0.6) 100%);}
.exp-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.exp-card:hover .exp-card__img img{transform:scale(1.05);}
.exp-card__num{position:absolute;top:1rem;left:1rem;font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;font-size:1.6rem;color:var(--blue);z-index:2;}
.exp-card__icon{position:absolute;top:1rem;right:1rem;width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,0.92);backdrop-filter:blur(10px);display:grid;place-items:center;color:var(--blue);transition:all .3s var(--ease);z-index:2;}
.exp-card:hover .exp-card__icon{background:var(--red);color:#fff;transform:rotate(-6deg);}
.exp-card__icon svg{width:22px;height:22px;}
.exp-card__body{padding:1.8rem;display:flex;flex-direction:column;flex:1;gap:.8rem;}
.exp-card h3{font-size:1.5rem;line-height:1.15;letter-spacing:-0.025em;}
.exp-card h3 .italic{color:var(--red);}
.exp-card__solves{display:flex;align-items:flex-start;gap:.5rem;padding:.7rem .85rem;border-radius:10px;background:var(--blue-pale);border:1px solid var(--blue-soft);font-size:.86rem;color:var(--ink-2);line-height:1.45;}
.exp-card__solves b{color:var(--blue);font-weight:700;text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;font-family:'JetBrains Mono',monospace;display:block;margin-bottom:.2rem;}
.exp-card p{font-size:.94rem;color:var(--muted);line-height:1.55;}
.exp-card__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);}
.exp-card__tag{font-family:'JetBrains Mono',monospace;font-size:.72rem;padding:.3rem .55rem;border-radius:6px;background:var(--soft);color:var(--ink-2);border:1px solid var(--line);}
.exp-card__cta{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--blue);margin-top:.6rem;}
.exp-card__cta:hover{color:var(--red);}
.exp-card__cta:hover .arr{transform:translateX(3px);}
.exp-card__cta .arr{display:inline-flex;width:14px;height:14px;transition:transform .25s var(--ease);}

/* ===== SERVICE OVERVIEW ===== */
.s-ov{background:var(--soft);}
.s-ov__grid{display:grid;grid-template-columns:minmax(0,234px) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:start;}
.s-ov__aside{position:sticky;top:108px;}
.s-ov__aside h2{margin-top:.9rem;font-size:1.8rem;line-height:1.12;letter-spacing:-0.03em;}
.s-ov__rule{display:block;width:56px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--red));margin:1.1rem 0 .3rem;}
.s-ov__toc{display:flex;flex-direction:column;margin-top:.8rem;}
.s-ov__toc a{display:flex;gap:.7rem;align-items:flex-start;padding:.72rem 0;border-top:1px solid var(--line);color:var(--muted);transition:color .2s var(--ease);}
.s-ov__toc a:last-child{border-bottom:1px solid var(--line);}
.s-ov__toc a:hover{color:var(--blue);}
.s-ov__toc-n{flex:none;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:700;color:var(--blue);padding-top:.12rem;}
.s-ov__toc a span:last-child{font-size:.86rem;line-height:1.4;}
.s-ov__body{max-width:740px;counter-reset:ovsec;}
.s-ov__body > *:first-child{margin-top:0;}
.s-ov__body p{color:var(--ink-3);line-height:1.8;margin:0 0 1.15rem;}
.s-ov__body > p:first-of-type{font-size:1.16rem;line-height:1.66;color:var(--ink-2);border-left:3px solid var(--blue);padding-left:1.1rem;margin-bottom:2.3rem;}
.s-ov__body h2{counter-increment:ovsec;display:flex;align-items:center;gap:.85rem;font-size:1.4rem;line-height:1.18;letter-spacing:-0.02em;color:var(--ink);margin:2.6rem 0 1.1rem;padding-top:1.9rem;border-top:1px solid var(--line);scroll-margin-top:120px;}
.s-ov__body h2:first-of-type{margin-top:0;padding-top:0;border-top:0;}
.s-ov__body h2::before{content:counter(ovsec,decimal-leading-zero);flex:none;font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;font-size:2.6rem;line-height:1;color:var(--blue);}
.s-ov__body h3{font-size:1.15rem;line-height:1.25;color:var(--ink);margin:1.8rem 0 .7rem;}
.s-ov__body ul{list-style:none;margin:1.3rem 0 1.6rem;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.s-ov__body li{position:relative;padding:.7rem .9rem .7rem 2rem;background:var(--off-white);border:1px solid var(--line);border-radius:10px;color:var(--ink-3);font-size:.93rem;line-height:1.45;}
.s-ov__body li::before{content:"";position:absolute;left:.9rem;top:1.05em;width:7px;height:7px;border-radius:2px;background:var(--blue);}
.s-ov__body li:nth-child(odd):last-child{grid-column:1/-1;}
.s-ov__body a{color:var(--blue);font-weight:600;border-bottom:1px solid var(--blue-soft);transition:color .2s var(--ease),border-color .2s var(--ease);}
.s-ov__body a:hover{color:var(--red);border-color:var(--red-soft);}
.s-ov__body figure{margin:1.8rem auto;max-width:440px;}
.s-ov__body figure img{width:100%;height:auto;display:block;border-radius:var(--r);border:1px solid var(--line);}
@media(max-width:880px){
	.s-ov__grid{grid-template-columns:1fr;gap:1.5rem;}
	.s-ov__aside{position:static;}
	.s-ov__aside h2{font-size:1.55rem;}
	.s-ov__body ul{grid-template-columns:1fr;}
}

/* ===== STATS MOMENT ===== */
.stats-mom{background:var(--soft);padding:clamp(60px,7vw,100px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.stats-mom__inner{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;align-items:start;}
@media (max-width:980px){.stats-mom__inner{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.stats-mom__inner{grid-template-columns:1fr;}}
.stat-mom{position:relative;}
.stat-mom::before{content:"";position:absolute;top:0;left:0;width:30px;height:2px;background:var(--blue);}
.stat-mom:nth-child(2)::before{background:var(--red);}
.stat-mom:nth-child(3)::before{background:var(--blue);}
.stat-mom:nth-child(4)::before{background:var(--red);}
.stat-mom__n{font-size:clamp(2.6rem,4.4vw,4rem);font-weight:800;letter-spacing:-0.045em;line-height:1;color:var(--ink);margin-top:1rem;display:flex;align-items:baseline;gap:.05em;}
.stat-mom__n .suf{font-size:.5em;color:var(--blue);}
.stat-mom:nth-child(2) .stat-mom__n .suf,.stat-mom:nth-child(4) .stat-mom__n .suf{color:var(--red);}
.stat-mom__l{margin-top:.6rem;font-size:.92rem;color:var(--muted);line-height:1.5;max-width:240px;}

/* ===== AI FEATURED ===== */
.ai-feat{background:var(--ink);color:#fff;position:relative;overflow:hidden;}
.ai-feat__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.15;}
.ai-feat::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 50% at 20% 30%,rgba(25,118,210,0.5),transparent 60%),radial-gradient(ellipse 50% 50% at 80% 70%,rgba(229,57,53,0.4),transparent 60%);}
.ai-feat__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:center;}
@media (max-width:1000px){.ai-feat__inner{grid-template-columns:1fr;}}
.ai-feat h2{color:#fff;font-size:clamp(2.4rem,4vw,3.6rem);letter-spacing:-0.035em;line-height:1.05;}
.ai-feat h2 .italic{background:linear-gradient(110deg,#90CAF9,#FFCDD2);-webkit-background-clip:text;background-clip:text;color:transparent;}
.ai-feat p{color:rgba(255,255,255,0.78);margin-top:1.4rem;font-size:1.05rem;line-height:1.6;max-width:540px;}
.ai-feat__cta{margin-top:2rem;display:flex;gap:.7rem;flex-wrap:wrap;}
.ai-feat__cards{display:grid;grid-template-columns:1fr;gap:1rem;}
.ai-feat__card{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:var(--r-xl);padding:1.4rem;display:grid;grid-template-columns:auto 1fr;gap:1.1rem;backdrop-filter:blur(20px);transition:all .35s var(--ease);}
.ai-feat__card:hover{background:rgba(255,255,255,0.1);transform:translateX(6px);}
.ai-feat__card-ic{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--red));color:#fff;display:grid;place-items:center;}
.ai-feat__card-ic svg{width:24px;height:24px;}
.ai-feat__card h4{color:#fff;font-size:1.1rem;margin-bottom:.3rem;letter-spacing:-0.02em;}
.ai-feat__card p{color:rgba(255,255,255,0.7);font-size:.92rem;margin:0;line-height:1.55;}

/* ===== ENGAGEMENT MODELS ===== */
.eng{background:var(--surface);}
.eng__head{text-align:center;max-width:780px;margin:0 auto 3rem;}
.eng__head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-0.04em;line-height:1.02;}
.eng__head h2 .italic{background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.eng__head p{color:var(--muted);margin-top:1rem;font-size:1.05rem;line-height:1.6;}
.eng__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media (max-width:1000px){.eng__grid{grid-template-columns:1fr;}}
.eng-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-2xl);overflow:hidden;display:flex;flex-direction:column;transition:all .35s var(--ease);}
.eng-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:var(--line-2);}
.eng-card__img{aspect-ratio:16/9;overflow:hidden;position:relative;}
.eng-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.eng-card:hover .eng-card__img img{transform:scale(1.06);}
.eng-card__tag{position:absolute;top:1.2rem;left:1.2rem;font-family:'JetBrains Mono',monospace;font-size:.72rem;padding:.35rem .7rem;border-radius:999px;background:rgba(255,255,255,0.92);color:var(--blue);font-weight:600;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(10px);z-index:2;}
.eng-card--feat .eng-card__tag{background:var(--red);color:#fff;}
.eng-card__body{padding:1.8rem;display:flex;flex-direction:column;flex:1;}
.eng-card h3{font-size:1.5rem;letter-spacing:-0.025em;margin-bottom:.4rem;line-height:1.1;}
.eng-card h3 .italic{color:var(--red);}
.eng-card > p{font-size:.94rem;color:var(--muted);line-height:1.55;margin-bottom:1.4rem;}
.eng-card__bullets{list-style:none;display:flex;flex-direction:column;gap:.6rem;padding-top:1.2rem;border-top:1px solid var(--line);margin-bottom:1.4rem;flex:1;}
.eng-card__bullets li{display:flex;align-items:flex-start;gap:.6rem;font-size:.9rem;color:var(--ink-2);line-height:1.5;}
.eng-card__bullets li::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--blue-pale);flex-shrink:0;margin-top:.1rem;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%231976D2' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");background-size:10px;background-position:center;background-repeat:no-repeat;}
.eng-card--feat .eng-card__bullets li::before{background-color:var(--red-pale);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23E53935' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");}
.eng-card__bestfor{font-size:.85rem;color:var(--ink-2);padding:.7rem .9rem;border-radius:8px;background:var(--blue-pale);border:1px solid var(--blue-soft);margin-bottom:1.2rem;}
.eng-card__bestfor b{color:var(--blue);font-weight:600;}
.eng-card--feat .eng-card__bestfor{background:var(--red-pale);border-color:var(--red-soft);}
.eng-card--feat .eng-card__bestfor b{color:var(--red);}
.eng-card__cta{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;color:var(--blue);background:transparent;border:0;padding:0;cursor:pointer;font-family:inherit;text-align:left;}
button.eng-card__cta:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:4px;}
.eng-card--feat .eng-card__cta{color:var(--red);}
.eng-card__cta:hover .arr{transform:translateX(3px);}
.eng-card__cta .arr{display:inline-flex;width:14px;height:14px;transition:transform .25s var(--ease);}

/* ===== INDUSTRIES ===== */
.ind{background:var(--soft);}
.ind__head{text-align:center;max-width:780px;margin:0 auto 3rem;}
.ind__head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-0.04em;line-height:1.02;}
.ind__head h2 .italic{background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.ind__head p{color:var(--muted);margin-top:1rem;font-size:1.05rem;line-height:1.6;}
.ind__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media (max-width:1000px){.ind__grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:680px){.ind__grid{grid-template-columns:repeat(2,1fr);}}
.icard{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:1/1;cursor:pointer;display:block;transition:transform .35s var(--ease);}
.icard:hover{transform:translateY(-4px);}
.icard img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.icard:hover img{transform:scale(1.08);}
.icard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0.1) 0%,rgba(10,10,10,0.85) 100%);}
.icard__body{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;color:#fff;z-index:2;}
.icard h4{font-size:1.1rem;font-weight:700;color:#fff;letter-spacing:-0.02em;margin-bottom:.2rem;}
.icard h4 .italic{color:#FFCDD2;}
.icard p{font-size:.8rem;color:rgba(255,255,255,0.85);}
.icard__cnt{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:#90CAF9;letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-top:.4rem;}

/* ===== FEATURED WORK ===== */
.work{background:var(--surface);}
.work__head{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;margin-bottom:3rem;}
@media (max-width:780px){.work__head{grid-template-columns:1fr;}}
.work__head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-0.04em;line-height:1.02;}
.work__head h2 .italic{background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.work__head p{color:var(--muted);max-width:520px;line-height:1.6;font-size:1.05rem;margin-top:.8rem;}
.work__bento{display:grid;grid-template-columns:1.4fr 1fr;gap:1.2rem;grid-template-rows:auto auto;}
@media (max-width:980px){.work__bento{grid-template-columns:1fr;}}
.wcard{position:relative;border-radius:var(--r-2xl);overflow:hidden;color:#fff;cursor:pointer;transition:transform .35s var(--ease);display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;background-size:cover;background-position:center;}
.wcard:hover{transform:translateY(-6px);}
.wcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,0.15) 30%,rgba(10,10,10,0.9) 100%);z-index:1;}
.wcard > *{position:relative;z-index:2;}
.wcard--big{grid-row:span 2;min-height:560px;background-color:var(--blue-3);}
.wcard--small{min-height:270px;background-color:var(--ink);}
.wcard__cat{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-radius:999px;background:rgba(255,255,255,0.18);backdrop-filter:blur(10px);font-family:'JetBrains Mono',monospace;font-size:.72rem;color:#fff;letter-spacing:.06em;text-transform:uppercase;align-self:flex-start;margin-bottom:1.2rem;}
.wcard h3{color:#fff;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.1;letter-spacing:-0.025em;margin-bottom:.7rem;}
.wcard--big h3{font-size:clamp(1.8rem,3.4vw,2.8rem);}
.wcard h3 .italic{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;color:#FFCDD2;}
.wcard p{font-size:.94rem;color:rgba(255,255,255,0.85);line-height:1.5;margin-bottom:1rem;max-width:540px;}
.wcard--small p{font-size:.88rem;}
.wcard__metrics{display:flex;gap:2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,0.2);}
.wcard__m-n{font-size:1.6rem;font-weight:800;letter-spacing:-0.03em;color:#fff;line-height:1;}
.wcard--big .wcard__m-n{font-size:2.2rem;}
.wcard__m-n .sub{color:var(--red-1);}
.wcard__m-l{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:rgba(255,255,255,0.7);text-transform:uppercase;letter-spacing:.06em;margin-top:.3rem;}
.wcard__cta{margin-top:1.4rem;display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;color:#fff;align-self:flex-start;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,0.4);transition:border-color .25s var(--ease);}
.wcard__cta:hover{border-color:#fff;}

/* --- wcard gradient fallbacks — used when no hero_image is set.
 * Each category renders a distinct branded gradient + subtle radial
 * highlight so the card still feels designed, not blank. The category
 * slug is appended to the article class as wcard--cat-<slug>. --- */
.wcard--no-img{background-image:linear-gradient(135deg,#1a1c2e 0%,#2a2e4a 100%);}
.wcard--no-img::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.08) 0%,transparent 50%);z-index:1;}
.wcard--no-img::after{background:linear-gradient(180deg,rgba(10,10,20,0.15) 25%,rgba(10,10,20,0.75) 100%);}

/* Accent-colour cards — saturated 135° gradient using two shades of the
   picked colour. Bottom vignette keeps white text/metrics readable. */
.wcard--has-accent{
  position:relative;
  background-image:linear-gradient(135deg,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 90%, #fff 10%) 0%,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 60%, #000 40%) 100%);
}
.wcard--has-accent::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,0.45) 100%);z-index:1;pointer-events:none;}
/* AI / Automation — deep blue → purple */
.wcard--cat-ai-platform.wcard--no-img,
.wcard--cat-ai-automation.wcard--no-img,
.wcard--cat-ai-ml-development.wcard--no-img,
.wcard--cat-generative-ai-development.wcard--no-img{background-image:linear-gradient(135deg,#1e3a8a 0%,#6d28d9 100%);}
/* Shopify / E-commerce — green → teal */
.wcard--cat-shopify-plus.wcard--no-img,
.wcard--cat-shopify.wcard--no-img,
.wcard--cat-ecommerce-development.wcard--no-img,
.wcard--cat-e-commerce-development.wcard--no-img,
.wcard--cat-headless-shopify.wcard--no-img{background-image:linear-gradient(135deg,#064e3b 0%,#0d9488 100%);}
/* ERP — slate blue → indigo */
.wcard--cat-odoo-erp.wcard--no-img,
.wcard--cat-erp-odoo.wcard--no-img,
.wcard--cat-erp.wcard--no-img,
.wcard--cat-custom-platform.wcard--no-img,
.wcard--cat-multi-store-platform.wcard--no-img{background-image:linear-gradient(135deg,#0f172a 0%,#3730a3 100%);}
/* Mobile — magenta → red */
.wcard--cat-mobile-app.wcard--no-img,
.wcard--cat-mobile-app-development.wcard--no-img,
.wcard--cat-react-native.wcard--no-img,
.wcard--cat-flutter.wcard--no-img{background-image:linear-gradient(135deg,#831843 0%,#dc2626 100%);}
/* Custom Software — neutral dark */
.wcard--cat-custom-software.wcard--no-img,
.wcard--cat-custom-software-development.wcard--no-img,
.wcard--cat-saas-platform.wcard--no-img{background-image:linear-gradient(135deg,#1a1c2e 0%,#3f3f6b 100%);}
/* Cloud / DevOps — sky → cyan */
.wcard--cat-cloud-devops.wcard--no-img,
.wcard--cat-cloud.wcard--no-img,
.wcard--cat-devops.wcard--no-img{background-image:linear-gradient(135deg,#0c4a6e 0%,#0891b2 100%);}

/* ===== TESTIMONIALS ===== */
.test{background:var(--soft);}
.test__head{text-align:center;max-width:780px;margin:0 auto 3rem;}
.test__head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);letter-spacing:-0.04em;line-height:1.02;}
.test__head h2 .italic{background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.test__head p{color:var(--muted);margin-top:1rem;font-size:1.05rem;}
.test__bento{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;}
.tcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:1.8rem;display:flex;flex-direction:column;gap:1.2rem;transition:all .35s var(--ease);}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.tcard__stars{color:var(--red);letter-spacing:.08em;font-size:.95rem;}
.tcard__q{font-size:1.02rem;color:var(--ink);line-height:1.55;font-weight:500;letter-spacing:-0.01em;}
.tcard__q .italic{color:var(--blue);font-size:1.05em;}
.tcard__cite{margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);display:flex;align-items:center;gap:.9rem;}
.tcard__av{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--blue-pale);}
.tcard__name{font-weight:700;font-size:.95rem;color:var(--ink);}
.tcard__role{font-size:.8rem;color:var(--muted);}
.tcard__co{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--red);margin-top:.15rem;font-weight:600;}
.t-7{grid-column:span 7;}.t-5{grid-column:span 5;}.t-4{grid-column:span 4;}.t-8{grid-column:span 8;}
@media (max-width:900px){.t-7,.t-5,.t-4,.t-8{grid-column:span 12;}}
.tcard--stat{background:linear-gradient(135deg,var(--ink) 0%,var(--blue-3) 100%);color:#fff;border-color:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;position:relative;overflow:hidden;}
.tcard--stat::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(229,57,53,0.4),transparent 60%);}
.tcard--stat > *{position:relative;z-index:2;}
.tcard--stat .num{font-size:clamp(3rem,5vw,4.5rem);font-weight:800;letter-spacing:-0.04em;color:#fff;line-height:1;}
.tcard--stat .num small{font-size:.45em;color:var(--red-1);}
.tcard--stat .lbl{margin-top:.5rem;color:rgba(255,255,255,0.7);font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;}
.tcard--big{background:linear-gradient(135deg,var(--blue-pale) 0%,var(--red-pale) 100%);border-color:transparent;}
.tcard--big .tcard__q{font-size:1.3rem;line-height:1.4;}
.tcard--big .tcard__q .italic{color:var(--red);}

/* ===== CTA FINALE ===== */
.cta{background:var(--ink);color:#fff;padding:clamp(80px,10vw,140px) 0;position:relative;overflow:hidden;}
.cta__aurora{position:absolute;inset:0;background:radial-gradient(ellipse 50% 40% at 20% 50%,rgba(25,118,210,0.5),transparent 60%),radial-gradient(ellipse 50% 40% at 80% 50%,rgba(229,57,53,0.4),transparent 60%),radial-gradient(ellipse 60% 50% at 50% 100%,rgba(123,31,162,0.3),transparent 60%);filter:blur(60px);animation:auroraShift 18s ease-in-out infinite;}
.cta__inner{position:relative;z-index:2;}
.cta__head{text-align:center;max-width:880px;margin:0 auto 3rem;}
.cta__head h2{color:#fff;font-size:clamp(2.6rem,5.4vw,5rem);font-weight:800;letter-spacing:-0.045em;line-height:1.02;margin-bottom:1.2rem;}
.cta__head h2 .italic{background:linear-gradient(110deg,#90CAF9 0%,#FFCDD2 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.cta__head p{color:rgba(255,255,255,0.75);font-size:1.15rem;line-height:1.55;}
.cta__buttons{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;margin-top:2rem;}
.cta__offices{margin-top:4rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media (max-width:980px){.cta__offices{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.cta__offices{grid-template-columns:1fr;}}
.cta-office{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:var(--r-lg);padding:1.4rem;display:flex;flex-direction:column;gap:.6rem;transition:all .3s var(--ease);backdrop-filter:blur(20px);}
.cta-office:hover{background:rgba(255,255,255,0.1);transform:translateY(-3px);border-color:rgba(255,255,255,0.18);}
.cta-office__flag{font-size:1.8rem;line-height:1;}
.cta-office__city{font-weight:700;font-size:1.05rem;color:#fff;letter-spacing:-0.015em;}
.cta-office__addr{font-size:.85rem;color:rgba(255,255,255,0.7);line-height:1.5;}
.cta-office__phone{color:#90CAF9;font-family:'JetBrains Mono',monospace;font-size:.84rem;margin-top:auto;}

/* ===== FOOTER ===== */
.foot{background:var(--ink);color:#fff;padding-top:4rem;border-top:1px solid var(--ink-3);}
.foot__bigword{text-align:center;padding:2rem 0 3rem;font-family:'Inter',sans-serif;font-weight:800;font-style:italic;font-size:clamp(5rem,18vw,16rem);letter-spacing:-0.05em;line-height:.85;background:linear-gradient(110deg,rgba(25,118,210,0.18) 0%,rgba(229,57,53,0.18) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;overflow:hidden;}
.foot__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem;}
@media (max-width:980px){.foot__top{grid-template-columns:1fr 1fr 1fr;}}
@media (max-width:680px){.foot__top{grid-template-columns:1fr 1fr;}}
@media (max-width:480px){.foot__top{grid-template-columns:1fr;}}
.foot__brand img{height:48px;width:auto;margin-bottom:1.2rem;}
.foot__brand .brand__text{font-size:1.5rem;color:#fff;margin-bottom:1.2rem;display:inline-block;}
.foot__brand p{color:rgba(255,255,255,0.6);font-size:.92rem;line-height:1.5;max-width:280px;margin-bottom:1.4rem;}
.foot__social{display:flex;gap:.5rem;}
.foot__social a{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);display:grid;place-items:center;color:rgba(255,255,255,0.7);transition:all .25s var(--ease);}
.foot__social a:hover{background:var(--red);color:#fff;border-color:transparent;transform:translateY(-2px);}
.foot__social svg{width:16px;height:16px;}
.foot__col h5{font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#90CAF9;margin-bottom:1.2rem;font-weight:600;}
.foot__col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin:0;padding:0;}
.foot__col a{font-size:.9rem;color:rgba(255,255,255,0.7);transition:color .2s var(--ease);}
.foot__col a:hover{color:#fff;}
.foot__bottom{padding:1.4rem 0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.82rem;color:rgba(255,255,255,0.5);border-top:1px solid var(--ink-3);}
.foot__bottom a{color:rgba(255,255,255,0.7);margin-left:1.2rem;}
.foot__bottom a:hover{color:#fff;}
.foot__bottom ul{list-style:none;display:inline-flex;margin:0;padding:0;}

/* ===== Reveal ===== */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;} .cycler__word{animation:none;opacity:1;}}

/* ==============================================================
   Inner-page header treatment (WordPress)
   On the homepage the header is transparent over the dark hero.
   On every other page it gets a permanent solid treatment and the
   page content is offset below the fixed topbar + header.
   ============================================================== */
.hdr--inner{
  background:rgba(255,255,255,0.97);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}
.hdr--inner .nav__list > li > a{color:var(--ink-2);}
.hdr--inner .nav__list > li > a:hover{background:var(--soft-2);color:var(--ink);}
.hdr--inner .brand__text{color:var(--ink);}
.hdr--inner .hdr__quote{color:var(--blue);}
.hdr--inner .burger{color:var(--ink);border-color:var(--line);background:#fff;}

/* Offset inner-page content below the fixed topbar + header */
body:not(.ti-page-home) .ti-main{padding-top:115px;}
@media (max-width:1080px){body:not(.ti-page-home) .ti-main{padding-top:112px;}}
@media (max-width:780px){body:not(.ti-page-home) .ti-main{padding-top:104px;}}
body.admin-bar:not(.ti-page-home) .ti-main{padding-top:115px;}
@media screen and (max-width:782px){body.admin-bar:not(.ti-page-home) .ti-main{padding-top:118px;}}

/* ==============================================================
   PHASE 2 — Inner-page components (single + archive templates)
   Ported from the approved service / industry / case-study /
   engagement designs. Base tokens, header, footer, buttons,
   .section and .eyebrow utilities are already defined above.
   The fixed-header offset is handled by .ti-main padding above,
   so inner sections do not repeat a large padding-top.
   ============================================================== */

/* --- Shared --- */
.container--narrow{width:min(960px,93%);margin-inline:auto;}
.btn--block{width:100%;justify-content:center;}
.sec-head{text-align:center;margin-bottom:2.6rem;}
.sec-head--center{margin-inline:auto;text-align:center;}
.sec-head h2{font-size:clamp(2rem,3.6vw,3rem);font-weight:800;letter-spacing:-0.04em;margin:1rem 0 .8rem;}
.sec-head p{color:var(--muted);font-size:1.05rem;}

/* --- Breadcrumb bar ---
 * Transparent on purpose: the breadcrumb sits above the next section and
 * inherits whatever background that section uses, so it doesn't create a
 * visible seam against custom hero gradients (About/Contact/Hire/Tier 3).
 * Old .s-hero pages also work — they start with var(--soft), and the small
 * tonal step from body-white to that hero is imperceptible.
 */
.crumbs{background:transparent;}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;list-style:none;font-size:.84rem;font-family:'JetBrains Mono',monospace;color:var(--muted);padding:.9rem 0 .4rem;margin:0;}
.crumbs a{color:var(--muted);text-decoration:none;transition:color .15s var(--ease);}
.crumbs a:hover{color:var(--blue);}
.crumbs li[aria-current]{color:var(--ink);font-weight:500;}
.crumbs .sep{opacity:.45;}

/* --- Inner hero (service / industry / engagement) --- */
.s-hero{background:var(--soft);position:relative;overflow:hidden;padding:1.5rem 0 clamp(60px,7vw,100px);}
.s-hero::before{content:"";position:absolute;top:-200px;right:-200px;width:680px;height:680px;background:radial-gradient(circle,rgba(25,118,210,0.10),transparent 65%);}
.s-hero::after{content:"";position:absolute;bottom:-260px;left:-160px;width:560px;height:560px;background:radial-gradient(circle,rgba(229,57,53,0.07),transparent 65%);}
.s-hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,4vw,4rem);align-items:center;}
@media(max-width:920px){.s-hero__grid{grid-template-columns:1fr;}}
.s-hero h1{font-size:clamp(2.4rem,4.6vw,4rem);font-weight:800;letter-spacing:-0.045em;margin:1.2rem 0 1rem;}
.s-hero h1 .italic{color:var(--blue);}
.s-hero__lede{font-size:1.18rem;color:var(--muted);line-height:1.6;max-width:560px;}
.s-hero__cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.8rem;}
.s-hero__meta{display:flex;gap:1.8rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line);}
.s-hero__meta div{display:flex;flex-direction:column;}
.s-hero__meta b{font-size:1.5rem;font-weight:800;letter-spacing:-0.03em;color:var(--ink);}
.s-hero__meta span{font-size:.8rem;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.s-hero__visual{position:relative;}
.s-hero__visual img{border-radius:var(--r-xl);box-shadow:var(--shadow-xl);aspect-ratio:4/3.4;object-fit:cover;width:100%;}
.s-hero__float{position:absolute;left:-26px;bottom:34px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.2rem;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:.8rem;}
.s-hero__float .ic{width:42px;height:42px;border-radius:10px;background:var(--blue-pale);color:var(--blue);display:grid;place-items:center;}
.s-hero__float .ic svg{width:21px;height:21px;}
.s-hero__float b{display:block;font-size:1.05rem;}
.s-hero__float span{font-size:.78rem;color:var(--muted);}
@media(max-width:920px){.s-hero__float{left:auto;right:20px;}}
.s-hero__facts{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem;}
.s-hero__fact{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem 1rem;}
.s-hero__fact svg{width:18px;height:18px;color:var(--blue);}
.s-hero__fact b{font-size:.95rem;}
.s-hero__fact span{font-size:.78rem;color:var(--muted);}
.tag-badge{display:inline-flex;align-items:center;gap:.4rem;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.35rem .8rem;border-radius:6px;background:var(--red);color:#fff;margin-left:.5rem;}

/* --- Quick answer (AEO) --- */
.qa__inner{background:linear-gradient(135deg,var(--ink) 0%,var(--blue-3) 130%);color:#fff;border-radius:var(--r-2xl);padding:clamp(2rem,3.5vw,3rem);position:relative;overflow:hidden;}
.qa__inner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 12%,rgba(229,57,53,0.34),transparent 52%);}
.qa__label{position:relative;display:inline-flex;align-items:center;gap:.5rem;font-family:'JetBrains Mono',monospace;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:#90CAF9;margin-bottom:1rem;}
.qa__text{position:relative;font-size:clamp(1.25rem,2vw,1.7rem);font-weight:600;letter-spacing:-0.02em;line-height:1.5;max-width:1000px;}
.qa__text .italic{color:var(--red-1);font-weight:400;}

/* --- Solve / pain points --- */
.solve__grid,.pain__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;}
@media(max-width:780px){.solve__grid,.pain__grid{grid-template-columns:1fr;}}
.solve-card{display:flex;gap:1rem;padding:1.5rem;background:var(--soft);border:1px solid var(--line);border-radius:var(--r-lg);transition:all .3s var(--ease);}
.solve-card:hover{background:#fff;box-shadow:var(--shadow);border-color:var(--red-soft);}
.solve-card__x{flex-shrink:0;width:34px;height:34px;border-radius:9px;background:var(--red-pale);color:var(--red);display:grid;place-items:center;font-weight:800;}
.solve-card h4{font-size:1.05rem;margin-bottom:.3rem;}
.solve-card p{font-size:.92rem;color:var(--muted);}
.pain-card{padding:1.6rem;background:var(--soft);border:1px solid var(--line);border-radius:var(--r-lg);transition:all .3s var(--ease);}
.pain-card:hover{background:#fff;box-shadow:var(--shadow);}
.pain-card__top{display:flex;align-items:center;gap:.8rem;margin-bottom:.7rem;}
.pain-card__x{flex-shrink:0;width:32px;height:32px;border-radius:9px;background:var(--red-pale);color:var(--red);display:grid;place-items:center;font-weight:800;}
.pain-card h4{font-size:1.08rem;}
.pain-card__sol{display:flex;gap:.55rem;font-size:.93rem;color:var(--muted);}
.pain-card__sol svg{flex-shrink:0;width:17px;height:17px;color:var(--blue);margin-top:.15rem;}

/* --- Offerings / solutions grid --- */
.offers__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
@media(max-width:980px){.offers__grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.offers__grid{grid-template-columns:1fr;}}
.offer{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:1.7rem;transition:all .35s var(--ease);}
.offer:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.offer__ic{width:50px;height:50px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--blue-3));color:#fff;display:grid;place-items:center;margin-bottom:1.1rem;}
.offer__ic svg{width:24px;height:24px;}
.offer__ic img{width:26px;height:26px;}
.offer h3{font-size:1.15rem;margin-bottom:.5rem;}
.offer p{font-size:.93rem;color:var(--muted);margin-bottom:1rem;}
.offer__link{font-size:.86rem;font-weight:600;color:var(--blue);display:inline-flex;align-items:center;gap:.35rem;}
.offer__link svg{width:13px;height:13px;}

/* --- USP grid --- */
.usp__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem 2.6rem;}
@media(max-width:780px){.usp__grid{grid-template-columns:1fr;}}
.usp{display:flex;gap:1.2rem;}
.usp__n{font-family:'JetBrains Mono',monospace;font-size:1rem;font-weight:600;color:var(--red);padding-top:.2rem;}
.usp h3{font-size:1.2rem;margin-bottom:.4rem;}
.usp p{color:rgba(255,255,255,0.66);font-size:.96rem;}

/* USP icon-chip variant moved to after the editorial CSS block so it
   wins by cascade order against .layout-editorial .usp. See further below. */

/* --- Process (5-up) --- */
.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:0;}
@media(max-width:900px){.proc{grid-template-columns:1fr;}}
.proc-step{position:relative;padding:1.8rem 1.4rem;border:1px solid var(--line);background:#fff;}
.proc-step:not(:last-child){border-right:none;}
@media(max-width:900px){.proc-step{border-right:1px solid var(--line);}.proc-step:not(:last-child){border-bottom:none;}}
.proc-step:first-child{border-radius:var(--r-lg) 0 0 var(--r-lg);}
.proc-step:last-child{border-radius:0 var(--r-lg) var(--r-lg) 0;}
@media(max-width:900px){.proc-step:first-child{border-radius:var(--r-lg) var(--r-lg) 0 0;}.proc-step:last-child{border-radius:0 0 var(--r-lg) var(--r-lg);}}
.proc-step__n{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--blue);font-weight:600;margin-bottom:.7rem;}
.proc-step h4{font-size:1.05rem;margin-bottom:.4rem;}
.proc-step p{font-size:.86rem;color:var(--muted);}

/* --- Process (vertical, engagement) --- */
.eproc{display:flex;flex-direction:column;}
.eproc-step{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;padding:1.5rem 0;border-bottom:1px solid var(--line);}
.eproc-step:last-child{border-bottom:none;}
.eproc-step__n{width:46px;height:46px;border-radius:12px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.05rem;}
.eproc-step h4{font-size:1.15rem;margin-bottom:.3rem;}
.eproc-step p{color:var(--muted);font-size:.96rem;}

/* --- Tech stack --- */
.tech__row{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--line);align-items:center;}
.tech__row:last-child{border-bottom:none;}
@media(max-width:680px){.tech__row{grid-template-columns:1fr;gap:.8rem;}}
.tech__cat{font-weight:700;font-size:1rem;}
.tech__cat span{display:block;font-size:.78rem;color:var(--muted);font-weight:400;font-family:'JetBrains Mono',monospace;}
.tech__tags{display:flex;flex-wrap:wrap;gap:.5rem;}
.tech__tag{padding:.5rem .9rem;border-radius:8px;background:var(--soft-2);border:1px solid var(--line);font-size:.85rem;font-weight:500;}

/* --- Compliance --- */
.compliance{background:linear-gradient(135deg,var(--blue-pale),var(--red-pale));}
.compliance__inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,4vw,4rem);align-items:center;}
@media(max-width:860px){.compliance__inner{grid-template-columns:1fr;}}
.compliance h2{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800;letter-spacing:-0.04em;margin:.9rem 0 .7rem;}
.compliance p{color:var(--muted);}
.compliance__badges{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;}
@media(max-width:480px){.compliance__badges{grid-template-columns:repeat(2,1fr);}}
.cbadge{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.2rem 1rem;text-align:center;transition:all .3s var(--ease);}
.cbadge:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.cbadge__ic{width:38px;height:38px;border-radius:9px;background:var(--blue);color:#fff;display:grid;place-items:center;margin:0 auto .6rem;}
.cbadge__ic svg{width:19px;height:19px;}
.cbadge b{display:block;font-size:.98rem;}
.cbadge span{font-size:.74rem;color:var(--surface);font-family:'JetBrains Mono',monospace;}

/* --- Industry stats --- */
.istats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media(max-width:860px){.istats{grid-template-columns:repeat(2,1fr);}}
.istat{padding:1.8rem 1.4rem;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;text-align:center;}
.istat b{display:block;font-size:clamp(2.2rem,3.6vw,3rem);font-weight:800;letter-spacing:-0.04em;color:var(--blue);line-height:1;}
.istat span{font-size:.88rem;color:var(--muted);margin-top:.5rem;display:block;}

/* --- Case cards (related / archive) --- */
.cases__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem;}
.cases__grid--3{grid-template-columns:repeat(3,1fr);}
@media(max-width:880px){.cases__grid--3{grid-template-columns:1fr;}}
@media(max-width:820px){.cases__grid{grid-template-columns:1fr;}}
.case-card{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:#fff;transition:all .35s var(--ease);display:block;}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.case-card__img{position:relative;aspect-ratio:16/9;overflow:hidden;}
.case-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.case-card:hover .case-card__img img{transform:scale(1.05);}
.case-card__cat{position:absolute;top:.9rem;left:.9rem;background:rgba(10,10,10,0.85);color:#fff;font-family:'JetBrains Mono',monospace;font-size:.7rem;padding:.35rem .7rem;border-radius:6px;}
.case-card__body{padding:1.5rem;}
.case-card__body h3{font-size:1.2rem;margin-bottom:.5rem;}
.case-card__body h3 .italic{color:var(--blue);}
.case-card__body p{font-size:.92rem;color:var(--muted);margin-bottom:1rem;}
.case-card__metrics{display:flex;gap:1.6rem;padding-top:1rem;border-top:1px solid var(--line);}
.case-card__metrics b{font-size:1.4rem;font-weight:800;color:var(--ink);letter-spacing:-0.03em;}
.case-card__metrics span{font-size:.76rem;color:var(--muted);display:block;}

/* ============================================================
   .case-card--rich  — richer variant used by the Solutions
   "Proof of Work" section. Adds:
     · image-source priority (photo → accent gradient → brand fallback)
     · light-style category chip overlay
     · pill-style metric chip row below the body
   Only applies when the card carries the .case-card--rich modifier,
   so the plain .case-card used elsewhere is unaffected.
   ============================================================ */
.case-card--rich .case-card__img{aspect-ratio:16/9;display:block;}
/* Accent-driven gradient — same color-mix recipe as the case study
   archive/hero so a card always feels native to that case. */
.case-card--rich .case-card__img--accent{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 90%, #fff 10%) 0%,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 60%, #000 40%) 100%);
}
/* Brand fallback — soft blue → soft red gradient (matches the homepage
   .wcard--no-img fallback). */
.case-card--rich .case-card__img--brand{
  background:linear-gradient(135deg,#dbe7f5 0%,#e8e2ef 50%,#f9d9d2 100%);
}
/* Light chip overlay — readable on both photos and gradients. */
.case-card--rich .case-card__cat--chip{
  background:rgba(255,255,255,.92);color:var(--ink);
  font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  font-size:.66rem;padding:.32rem .65rem;border-radius:999px;
  backdrop-filter:blur(4px);
}
/* Pill-style metric chips. */
.case-card--rich .case-card__chips{
  display:flex;flex-wrap:wrap;gap:.45rem;
  margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--line);
}
.case-card--rich .case-card__chip{
  display:inline-flex;align-items:baseline;gap:.35rem;
  padding:.3rem .7rem;background:var(--soft,#FAFAF7);
  border:1px solid var(--line);border-radius:999px;
  font-size:.78rem;color:var(--ink-2,#374151);font-weight:500;line-height:1.2;
}
.case-card--rich .case-card__chip b{
  color:var(--red);font-weight:700;font-size:.82rem;letter-spacing:-.01em;
}

/* --- Pull quote --- */
.quote{max-width:900px;margin-inline:auto;text-align:center;}
.quote__mark{font-family:'Instrument Serif',serif;font-size:5rem;line-height:.5;color:var(--blue-soft);}
.quote__text{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:600;letter-spacing:-0.02em;line-height:1.45;margin:1rem 0 1.6rem;}
.quote__text .italic{color:var(--blue);}
.quote__cite{display:flex;align-items:center;justify-content:center;gap:.9rem;}
.quote__cite img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--blue-pale);}
.quote__cite b{display:block;}
.quote__cite span{font-size:.85rem;color:var(--muted);}

/* --- Voices — multi-testimonial proof grid on service / industry pages --- */
.voices__head{max-width:760px;margin:0 auto 2.6rem;text-align:center;}
.voices__head .eyebrow{justify-content:center;}
.voices__head h2{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.1;letter-spacing:-.02em;margin-top:.7rem;text-wrap:balance;}
.voices__grid{display:grid;gap:1.4rem;max-width:1180px;margin:0 auto;}
.voices__grid--1{grid-template-columns:minmax(0,680px);justify-content:center;}
.voices__grid--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:920px;}
.voices__grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.vcard{
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--r-xl,18px);
	padding:1.6rem 1.5rem 1.4rem;
	display:flex;flex-direction:column;
	box-shadow:0 1px 3px rgba(0,0,0,.02);
	transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
	position:relative;
}
.vcard::before{
	content:"\201C";
	position:absolute;
	top:.7rem;right:1.1rem;
	font-family:'Instrument Serif',serif;
	font-size:4rem;line-height:1;
	color:var(--blue-pale,#eef2ff);
	pointer-events:none;
	user-select:none;
}
.vcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(15,23,42,.07);border-color:var(--blue-soft,#dbe4ff);}
.vcard__stars{color:#f5b400;font-size:.95rem;letter-spacing:.08em;margin-bottom:.85rem;}
.vcard__quote{
	font-size:.98rem;line-height:1.55;color:var(--ink-2,#374151);
	margin:0 0 1.3rem;flex:1;font-weight:500;
}
.vcard__cite{display:flex;align-items:center;gap:.85rem;border-top:1px dashed var(--line);padding-top:1rem;}
.vcard__avatar{
	width:44px;height:44px;border-radius:50%;flex-shrink:0;
	background:linear-gradient(135deg,var(--red,#e63946),#ff7e7e);
	color:#fff;font-weight:700;font-size:.92rem;letter-spacing:.02em;
	display:inline-flex;align-items:center;justify-content:center;
	box-shadow:0 4px 10px rgba(230,57,70,.18);
}
.vcard__avatar--img{padding:0;object-fit:cover;background:none;box-shadow:none;}
.vcard__meta{display:flex;flex-direction:column;min-width:0;line-height:1.25;}
.vcard__meta b{font-size:.94rem;color:var(--ink);font-weight:600;}
.vcard__meta span{font-size:.8rem;color:var(--muted);margin-top:.15rem;overflow:hidden;text-overflow:ellipsis;}
.vcard__meta small{font-size:.72rem;color:var(--muted);opacity:.75;margin-top:.1rem;}
.voices__foot{
	text-align:center;font-size:.85rem;color:var(--muted);
	margin:2rem 0 0;letter-spacing:.01em;
}
.voices__foot a{color:var(--ink-2,#374151);text-decoration:underline;text-decoration-color:var(--blue-soft);text-underline-offset:3px;}
.voices__foot a:hover{color:var(--blue);}
@media (max-width: 980px){
	.voices__grid--3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 680px){
	.voices__grid--2,.voices__grid--3{grid-template-columns:1fr;}
	.vcard{padding:1.4rem 1.3rem 1.2rem;}
	.vcard::before{font-size:3rem;top:.5rem;right:.9rem;}
}

/* --- FAQ accordion --- */
.faq{max-width:840px;margin-inline:auto;}
.faq-item{border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:.8rem;background:#fff;overflow:hidden;transition:border-color .25s var(--ease);}
.faq-item.is-open{border-color:var(--blue-soft);box-shadow:var(--shadow);}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.4rem;font-weight:600;font-size:1.02rem;text-align:left;}
.faq-q__ic{position:relative;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--soft-2);display:grid;place-items:center;transition:all .25s var(--ease);}
.faq-q__ic::before,.faq-q__ic::after{content:"";position:absolute;width:11px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s var(--ease);}
.faq-q__ic::after{transform:rotate(90deg);}
.faq-item.is-open .faq-q__ic{background:var(--blue);}
.faq-item.is-open .faq-q__ic::before,.faq-item.is-open .faq-q__ic::after{background:#fff;}
.faq-item.is-open .faq-q__ic::after{transform:rotate(0);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease);}
.faq-a p{padding:0 1.4rem 1.3rem;color:var(--muted);font-size:.96rem;}

/* --- Related cards --- */
.related__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;}
@media(max-width:880px){.related__grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.related__grid{grid-template-columns:1fr;}}
.rel-card{padding:1.3rem;border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;display:flex;flex-direction:column;gap:.5rem;transition:all .3s var(--ease);}
.rel-card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow);}
.rel-card__ic{width:38px;height:38px;border-radius:9px;background:var(--blue-pale);color:var(--blue);display:grid;place-items:center;}
.rel-card__ic svg{width:18px;height:18px;}
.rel-card b{font-size:1rem;}
.rel-card span{font-size:.85rem;color:var(--muted);}

/* --- Case study: story blocks --- */
.story__grid{display:grid;grid-template-columns:.42fr .58fr;gap:clamp(2rem,5vw,5rem);}
@media(max-width:860px){.story__grid{grid-template-columns:1fr;gap:1.2rem;}}
.story__head{align-self:start;position:sticky;top:130px;}
@media(max-width:860px){.story__head{position:static;}}
.story__head h2{font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:800;letter-spacing:-0.035em;margin-top:.9rem;}
.story__body p{font-size:1.06rem;color:var(--ink-2);margin-bottom:1.1rem;}
.story__body p:last-child{margin-bottom:0;}
.story__body strong{font-weight:700;color:var(--ink);}
.story__body ul{list-style:none;margin:1.2rem 0;display:flex;flex-direction:column;gap:.7rem;padding:0;}
.story__body li{display:flex;gap:.65rem;font-size:1rem;color:var(--ink-2);}
.story__body li svg{flex-shrink:0;width:18px;height:18px;color:var(--blue);margin-top:.2rem;}
.story__diagram{margin-top:1.6rem;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}

/* ==============================================================
   CASE STUDY PAGE  (single-ti_case_study.php)
   Renders in two layouts via body class:
     - body.cs--light  → brand-aligned, calm rhythm (default)
     - body.cs--bold   → full gradient hero, dramatic
   Selection via ti_get_case_study_layout() — see functions-utility.php.
   ============================================================== */

/* 1. Thin category stripe (light layout only — inline style sets the gradient) */
.cs-stripe{height:4px;width:100%;}

/* 2. Hero — centred, shared structure */
.cs-hero{position:relative;overflow:hidden;padding:clamp(60px,7vw,110px) 0 clamp(40px,5vw,70px);}
.cs-hero__inner{position:relative;text-align:center;}
.cs-hero__crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.04em;margin-bottom:2.5rem;}
.cs-hero__crumbs .sep{margin:0 .55rem;opacity:.5;}
.cs-hero__crumbs a:hover{border-bottom:1px solid currentColor;}
.cs-hero__title{font-size:clamp(2.6rem,5.4vw,4.8rem);font-weight:800;line-height:1.04;letter-spacing:-.035em;max-width:1000px;margin:1.4rem auto 1.4rem;text-wrap:balance;}
.cs-hero__lede{font-size:1.25rem;line-height:1.55;max-width:740px;margin:0 auto;}
.cs-hero__buttons{display:flex;gap:.7rem;margin-top:2rem;flex-wrap:wrap;justify-content:center;}

/* Hero — LIGHT variant (cream/white with subtle aurora) */
body.cs--light .cs-hero{background:var(--surface);}
body.cs--light .cs-hero::before{content:"";position:absolute;top:-200px;right:-100px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(25,118,210,.10),transparent 65%);filter:blur(20px);pointer-events:none;}
body.cs--light .cs-hero::after{content:"";position:absolute;bottom:-100px;left:-150px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(229,57,53,.07),transparent 65%);filter:blur(20px);pointer-events:none;}
body.cs--light .cs-hero__crumbs{color:var(--muted);}
body.cs--light .cs-hero__crumbs a{color:var(--muted);}
body.cs--light .cs-hero__crumbs a:hover{color:var(--ink);}
body.cs--light .cs-hero__crumbs .current{color:var(--ink);font-weight:500;}
body.cs--light .cs-hero__title{color:var(--ink);}
body.cs--light .cs-hero__title .italic{color:var(--red);}
body.cs--light .cs-hero__lede{color:var(--muted);}

/* Hero — BOLD variant (gradient via inline style on .cs-hero) */
body.cs--bold .cs-hero{color:#fff;padding:clamp(70px,8vw,130px) 0 clamp(80px,9vw,140px);}
body.cs--bold .cs-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 25%,rgba(255,255,255,.1) 0%,transparent 40%),radial-gradient(circle at 85% 65%,rgba(255,255,255,.08) 0%,transparent 45%);pointer-events:none;}
body.cs--bold .cs-hero__inner{z-index:1;}
body.cs--bold .cs-hero__crumbs,
body.cs--bold .cs-hero__crumbs a{color:rgba(255,255,255,.7);}
body.cs--bold .cs-hero__crumbs a:hover{color:#fff;}
body.cs--bold .cs-hero__crumbs .current{color:#fff;}
body.cs--bold .cs-hero__title{color:#fff;}
body.cs--bold .cs-hero__title .italic{color:#FFCDD2;}
body.cs--bold .cs-hero__lede{color:rgba(255,255,255,.85);}

/* Hero with uploaded background image — text inverts to white regardless
   of body.cs--light/cs--bold class, and the gradient pseudo-blobs are
   suppressed (the photo + overlay already provides the visual interest). */
.cs-hero--has-image{background-size:cover;background-position:center;background-repeat:no-repeat;color:#fff;}
.cs-hero--has-image::before,
.cs-hero--has-image::after{display:none;}
body.cs--light .cs-hero--has-image,
body.cs--bold .cs-hero--has-image{color:#fff;}
.cs-hero--has-image .cs-hero__crumbs,
.cs-hero--has-image .cs-hero__crumbs a{color:rgba(255,255,255,.82);}
.cs-hero--has-image .cs-hero__crumbs a:hover{color:#fff;}
.cs-hero--has-image .cs-hero__crumbs .current,
.cs-hero--has-image .cs-hero__crumbs .sep{color:#fff;}
.cs-hero--has-image .cs-hero__title{color:#fff;}
.cs-hero--has-image .cs-hero__title .italic{color:#FFCDD2;}
.cs-hero--has-image .cs-hero__lede{color:rgba(255,255,255,.88);}

/* Accent-colour hero — saturated 135° gradient using two shades of the
   picked colour (no white tint). Matches the staging site's per-category
   gradient pattern for a vibrant, branded look. */
.cs-hero--has-accent{
  color:#fff;position:relative;
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 90%, #fff 10%) 0%,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 60%, #000 40%) 100%);
}
.cs-hero--has-accent::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 25%,rgba(255,255,255,.12) 0%,transparent 40%),
             radial-gradient(circle at 85% 65%,rgba(0,0,0,.18) 0%,transparent 50%);
  pointer-events:none;
}
.cs-hero--has-accent::after{display:none;}
body.cs--light .cs-hero--has-accent,
body.cs--bold .cs-hero--has-accent{color:#fff;}
.cs-hero--has-accent .cs-hero__crumbs,
.cs-hero--has-accent .cs-hero__crumbs a{color:rgba(255,255,255,.82);}
.cs-hero--has-accent .cs-hero__crumbs a:hover{color:#fff;}
.cs-hero--has-accent .cs-hero__crumbs .current,
.cs-hero--has-accent .cs-hero__crumbs .sep{color:#fff;}
.cs-hero--has-accent .cs-hero__title{color:#fff;}
.cs-hero--has-accent .cs-hero__title .italic{color:#FFCDD2;}
.cs-hero--has-accent .cs-hero__lede{color:rgba(255,255,255,.88);}

/* 3. Meta strip */
.cs-meta{padding:1.7rem 0;}
.cs-meta__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.cs-meta__cell{padding:.2rem 1.5rem;}
.cs-meta__cell:first-child{border-left:none;padding-left:0;}
.cs-meta__lbl{font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;}
.cs-meta__val{font-size:.95rem;font-weight:600;}
body.cs--light .cs-meta{background:var(--soft);border-bottom:1px solid var(--line);}
body.cs--light .cs-meta__cell{border-left:1px solid var(--line);}
body.cs--light .cs-meta__cell:first-child{border-left:none;}
body.cs--light .cs-meta__lbl{color:var(--muted);}
body.cs--light .cs-meta__val{color:var(--ink);}
body.cs--bold .cs-meta{background:var(--ink);color:#fff;}
body.cs--bold .cs-meta__cell{border-left:1px solid var(--ink-3);}
body.cs--bold .cs-meta__cell:first-child{border-left:none;}
body.cs--bold .cs-meta__lbl{color:var(--muted-2);}
body.cs--bold .cs-meta__val{color:#fff;}

/* Client logo (optional) — small mark inline with the client name. */
.cs-meta__cell--client .cs-meta__val{display:inline-flex;align-items:center;gap:.55rem;}
.cs-meta__logo{display:inline-block;width:auto;height:22px;max-width:80px;object-fit:contain;flex:0 0 auto;}
body.cs--bold .cs-meta__logo{filter:brightness(0) invert(1);}

/* 4. Stats band */
.cs-stats{padding:clamp(70px,8vw,120px) 0;}
.cs-stats__head{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:start;margin-bottom:3rem;}
.cs-stats__h2{font-size:clamp(2rem,3.4vw,3rem);font-weight:700;letter-spacing:-.025em;margin-top:1rem;line-height:1.05;}
.cs-stats__h2 .italic{color:var(--red);}
.cs-stats__sub{font-size:1.05rem;line-height:1.55;color:var(--muted);}
.cs-stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-top:2.5rem;}
.cs-stat{padding:0 2.5rem;}
.cs-stat:first-child{padding-left:0;border-left:none;}
.cs-stat__v{font-family:'Inter',sans-serif;font-size:clamp(2.4rem,4.6vw,3.8rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin-bottom:.8rem;}
.cs-stat__l{font-family:'JetBrains Mono',monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;}
body.cs--light .cs-stats{background:var(--surface);}
body.cs--light .cs-stats__grid{border-top:2px solid var(--ink);}
body.cs--light .cs-stat{border-left:1px solid var(--line);}
body.cs--light .cs-stat:first-child{border-left:none;}
body.cs--light .cs-stat__v{color:var(--ink);}
body.cs--light .cs-stat__l{color:var(--muted);}
body.cs--bold .cs-stats{background:var(--ink);color:#fff;padding:4rem 0 5rem;}
body.cs--bold .cs-stats__h2{color:#fff;}
body.cs--bold .cs-stats__h2 .italic{color:var(--red-1);}
body.cs--bold .cs-stats__sub{color:rgba(255,255,255,.7);}
body.cs--bold .cs-stats__grid{border-top:1px solid var(--ink-3);}
body.cs--bold .cs-stat{border-left:1px solid var(--ink-3);}
body.cs--bold .cs-stat:first-child{border-left:none;}
body.cs--bold .cs-stat__v{color:#fff;}
body.cs--bold .cs-stat__l{color:rgba(255,255,255,.6);}

/* 5. Story sections (Challenge / Approach / Solution) */
.cs-section{padding:clamp(70px,8vw,120px) 0;}
.cs-section--soft{background:var(--soft);}
.cs-section__head{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;align-items:start;}
.cs-section__lead h2{font-size:clamp(2rem,3.4vw,3rem);font-weight:700;letter-spacing:-.025em;line-height:1.05;margin-top:1rem;}
.cs-section__lead h2 .italic{color:var(--red);}
.cs-section__body p{font-size:1.08rem;line-height:1.65;color:var(--muted);margin-bottom:1.1rem;}
.cs-section__body p:last-child{margin-bottom:0;}
.cs-section__body p strong{color:var(--ink);font-weight:700;}
.cs-section__body ul,.cs-section__body ol{margin:1rem 0 1rem 1.4rem;color:var(--muted);font-size:1.04rem;line-height:1.6;}
.cs-section__body ul li,.cs-section__body ol li{margin-bottom:.4rem;}

/* 6. Features grid */
.cs-features__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.3rem;margin-top:3rem;}
.cs-feat{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:2rem;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);}
.cs-feat:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--red-soft);}
.cs-feat__num{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--red-pale);color:var(--red);font-family:'JetBrains Mono',monospace;font-size:.85rem;font-weight:700;margin-bottom:1.2rem;}
.cs-feat__h{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--ink);line-height:1.2;}
.cs-feat__p{font-size:.96rem;line-height:1.6;color:var(--muted);}

/* 7. Tech section — applied as a section modifier on the helper's
   own section (`section cs-tech ti-tech`). Layout-aware backgrounds:
   light variant keeps the helper's default soft; bold variant flips
   it to ink black with white text and red accents. */
body.cs--light .cs-tech{background:var(--soft);}
body.cs--bold .cs-tech{background:var(--ink);color:#fff;}
body.cs--bold .cs-tech .sec-head h2{color:#fff;}
body.cs--bold .cs-tech .sec-head h2 .italic{color:var(--red-1);}
body.cs--bold .cs-tech .ti-tech__group-label{color:rgba(255,255,255,.55);}
body.cs--bold .cs-tech .ti-tech__chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);}
body.cs--bold .cs-tech .ti-tech__chip:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);}
body.cs--bold .cs-tech .ti-tech__name{color:#fff;}

/* 8. Inline client quote (light variant) */
.cs-quote{max-width:880px;margin:0 auto;text-align:center;}
.cs-quote__mark{font-family:'Instrument Serif',serif;font-size:5rem;color:var(--blue-pale);line-height:.4;margin-bottom:1rem;}
.cs-quote__text{font-family:'Instrument Serif',serif;font-style:italic;font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.35;margin-bottom:1.5rem;color:var(--ink);font-weight:400;letter-spacing:-.01em;}
.cs-quote__cite{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--muted);}
.cs-quote__cite b{font-family:'Inter',sans-serif;color:var(--ink);font-weight:600;margin-right:.4rem;}

/* Mobile */
@media (max-width: 980px){
  .cs-meta__grid{grid-template-columns:repeat(2,1fr);gap:1.2rem 0;}
  body.cs--light .cs-meta__cell{border-left:none;border-bottom:1px solid var(--line);padding:.6rem 0;}
  body.cs--bold .cs-meta__cell{border-left:none;border-bottom:1px solid var(--ink-3);padding:.6rem 0;}
  .cs-meta__cell:nth-last-child(-n+2){border-bottom:none !important;}
  .cs-stats__head,.cs-section__head{grid-template-columns:1fr;gap:1.5rem;}
  .cs-stats__grid{grid-template-columns:1fr;}
  .cs-stat{border-left:none;padding:1.5rem 0;}
  body.cs--light .cs-stat{border-top:1px solid var(--line);}
  body.cs--bold .cs-stat{border-top:1px solid var(--ink-3);}
  .cs-stat:first-child{border-top:none;padding-top:0;}
  .cs-features__grid{grid-template-columns:1fr;}
}

/* ==============================================================
   CASE STUDY ARCHIVE  (archive-ti_case_study.php)
   Design B — centred hero + sticky filter chips + 12-col bento + pagination
   ============================================================== */

/* Category gradients — same palette as homepage Featured Work + single hero */
.csa__bento .cat-ai-platform .csa__tile-cover,
.csa__bento .cat-ai-platform.csa__tile--featured{background:linear-gradient(135deg,#1e3a8a 0%,#6d28d9 100%);}
.csa__bento .cat-shopify-plus .csa__tile-cover,
.csa__bento .cat-shopify-plus.csa__tile--featured,
.csa__bento .cat-shopify .csa__tile-cover,
.csa__bento .cat-shopify.csa__tile--featured,
.csa__bento .cat-e-commerce-development .csa__tile-cover,
.csa__bento .cat-e-commerce-development.csa__tile--featured{background:linear-gradient(135deg,#064e3b 0%,#0d9488 100%);}
.csa__bento .cat-multi-store-platform .csa__tile-cover,
.csa__bento .cat-multi-store-platform.csa__tile--featured{background:linear-gradient(135deg,#7c2d12 0%,#ea580c 100%);}
.csa__bento .cat-erp .csa__tile-cover,
.csa__bento .cat-erp.csa__tile--featured,
.csa__bento .cat-odoo-erp .csa__tile-cover,
.csa__bento .cat-odoo-erp.csa__tile--featured,
.csa__bento .cat-custom-platform .csa__tile-cover,
.csa__bento .cat-custom-platform.csa__tile--featured{background:linear-gradient(135deg,#0f172a 0%,#3730a3 100%);}
.csa__bento .cat-mobile-app .csa__tile-cover,
.csa__bento .cat-mobile-app.csa__tile--featured,
.csa__bento .cat-mobile .csa__tile-cover,
.csa__bento .cat-mobile.csa__tile--featured{background:linear-gradient(135deg,#831843 0%,#dc2626 100%);}
.csa__bento .cat-custom-software .csa__tile-cover,
.csa__bento .cat-custom-software.csa__tile--featured,
.csa__bento .cat-custom-software-development .csa__tile-cover,
.csa__bento .cat-custom-software-development.csa__tile--featured{background:linear-gradient(135deg,#1a1c2e 0%,#3f3f6b 100%);}
/* Fallback gradient for any uncategorised tile */
.csa__bento .csa__tile-cover,
.csa__bento .csa__tile--featured{background:linear-gradient(135deg,#1a1c2e 0%,#3f3f6b 100%);}

/* 1. Hero — same pattern as service / case-study single */
.csa__top{
  background:var(--surface);
  padding:clamp(60px,7vw,110px) 0 clamp(45px,6vw,80px);
  position:relative;overflow:hidden;
  border-bottom:1px solid var(--line);
}
.csa__top::before{
  content:"";position:absolute;top:-200px;right:-100px;
  width:620px;height:620px;border-radius:50%;
  background:radial-gradient(circle,rgba(25,118,210,.10),transparent 65%);
  filter:blur(20px);pointer-events:none;
}
.csa__top::after{
  content:"";position:absolute;bottom:-150px;left:-120px;
  width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(229,57,53,.07),transparent 65%);
  filter:blur(20px);pointer-events:none;
}
.csa__top-inner{position:relative;text-align:center;}
.csa__crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-bottom:2.5rem;}
.csa__crumbs a{color:var(--muted);}
.csa__crumbs a:hover{color:var(--ink);}
.csa__crumbs .sep{margin:0 .55rem;opacity:.5;}
.csa__crumbs .current{color:var(--ink);font-weight:500;}
.csa__h1{font-size:clamp(2.6rem,5.4vw,4.8rem);font-weight:800;line-height:1.04;letter-spacing:-.035em;max-width:1000px;margin:1.4rem auto 1.4rem;text-wrap:balance;color:var(--ink);}
.csa__h1 .italic{color:var(--red);}
.csa__lede{font-size:1.25rem;line-height:1.55;color:var(--muted);max-width:740px;margin:0 auto;}
.csa__hero-buttons{display:flex;gap:.7rem;margin-top:2rem;flex-wrap:wrap;justify-content:center;}

/* 2. Sticky filter bar */
.csa__filterbar{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  padding:.9rem 0;
}
body.admin-bar .csa__filterbar{top:32px;}
@media screen and (max-width:782px){body.admin-bar .csa__filterbar{top:46px;}}
.csa__filterbar-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;}
.csa__filter-group{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.csa__filter-lbl{font-family:'JetBrains Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-right:.5rem;}
.csa__chip{
  padding:.5rem .95rem;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-size:.84rem;font-weight:500;color:var(--ink);
  font-family:'Inter',sans-serif;
  transition:all .2s var(--ease);
  display:inline-flex;align-items:center;gap:.4rem;
  text-decoration:none;
}
.csa__chip:hover{border-color:var(--ink);}
.csa__chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink);}
.csa__chip-count{font-family:'JetBrains Mono',monospace;font-size:.68rem;opacity:.55;font-weight:400;}
.csa__chip.is-active .csa__chip-count{opacity:.7;}
.csa__sort{display:flex;align-items:center;gap:.8rem;font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);}
.csa__results{color:var(--ink);font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;letter-spacing:0;}

/* 3. Bento grid */
.csa__bento{
  padding:3rem 0 4rem;
  display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem;
  grid-auto-rows:minmax(140px,auto);
}
.csa__tile{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  overflow:hidden;position:relative;
  display:flex;flex-direction:column;
  transition:all .35s var(--ease);
}
.csa__tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:transparent;}
.csa__tile-link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none;}

/* Featured tile — 8 cols × 2 rows */
.csa__tile--featured{
  grid-column:span 8;grid-row:span 2;
  color:#fff;border:none;
}
.csa__tile--featured .csa__tile-link{padding:2.5rem;justify-content:space-between;flex:1;}
.csa__tile--featured::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.15),transparent 50%);
  pointer-events:none;
}
.csa__featured-top{position:relative;display:flex;justify-content:space-between;align-items:flex-start;}
.csa__featured-tag{
  background:rgba(255,255,255,.15);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.2);
  padding:.4rem .9rem;border-radius:999px;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;
}
.csa__featured-pin{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:rgba(255,255,255,.6);letter-spacing:.1em;text-transform:uppercase;}
.csa__featured-body{position:relative;}
.csa__featured-title{font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-bottom:1rem;text-wrap:balance;color:#fff;}
.csa__featured-title .italic{color:rgba(255,255,255,.7);}
.csa__featured-sum{font-size:1.05rem;line-height:1.5;color:rgba(255,255,255,.85);max-width:600px;margin-bottom:1.4rem;}
.csa__featured-metrics{display:flex;gap:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.2);flex-wrap:wrap;}
.csa__featured-metric{display:flex;flex-direction:column;}
.csa__featured-metric b{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:#fff;}
.csa__featured-metric span{font-size:.72rem;font-family:'JetBrains Mono',monospace;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;}

/* Stat tile — 4 cols × 1 row */
.csa__tile--stat{
  grid-column:span 4;grid-row:span 1;
  background:var(--ink);color:#fff;border:none;
  padding:2rem;justify-content:center;
}
.csa__tile--stat:hover{transform:none;box-shadow:none;}
.csa__stat-h{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.5rem;}
.csa__stat-v{font-size:2.4rem;font-weight:800;letter-spacing:-.03em;line-height:1;margin-bottom:.4rem;color:#fff;}
.csa__stat-v .accent{color:var(--red-1);}
.csa__stat-l{font-size:.85rem;color:rgba(255,255,255,.7);line-height:1.4;}

/* Medium tile — 6 cols × 2 rows */
.csa__tile--med{grid-column:span 6;grid-row:span 2;}
.csa__tile--med .csa__tile-cover{height:160px;}

/* Small tile — 4 cols × 2 rows */
.csa__tile--sm{grid-column:span 4;grid-row:span 2;}
.csa__tile--sm .csa__tile-cover{height:120px;}

/* Tile cover (medium + small share) */
.csa__tile-cover{
  padding:1.4rem;color:#fff;position:relative;overflow:hidden;
  display:flex;align-items:flex-end;
}
.csa__tile-cover::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.15),transparent 50%);
}
.csa__tile-cat{
  position:relative;z-index:1;
  background:rgba(0,0,0,.25);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);
  padding:.3rem .8rem;border-radius:999px;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:#fff;
}
.csa__tile-mark{
  position:absolute;top:1.4rem;right:1.4rem;
  font-family:'Instrument Serif',serif;font-style:italic;
  font-size:1.3rem;color:rgba(255,255,255,.45);
  max-width:55%;text-align:right;line-height:1.1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.csa__tile-body{padding:1.6rem;flex:1;display:flex;flex-direction:column;}
.csa__tile-title{font-size:1.15rem;font-weight:700;letter-spacing:-.015em;line-height:1.25;margin-bottom:.5rem;color:var(--ink);}
.csa__tile-sum{font-size:.9rem;line-height:1.55;color:var(--muted);flex:1;margin-bottom:1rem;}
.csa__tile-metrics{display:flex;gap:1.2rem;padding-top:.8rem;border-top:1px dashed var(--line);}
.csa__tile-metric{display:flex;flex-direction:column;}
.csa__tile-metric b{font-size:.95rem;font-weight:700;color:var(--red);}
.csa__tile-metric span{font-size:.66rem;font-family:'JetBrains Mono',monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;}

/* ---------- Hero image on tiles (matches homepage .wcard pattern) ----
   When a case study has a hero_image, the image becomes the tile-cover
   background (med / sm) or the whole featured tile background. A dark
   overlay sits on top so the white category pill and project mark stay
   readable. Per-category gradient (cat-ai-platform, cat-shopify, etc.)
   remains the fallback when no image is set. */
.csa__tile--has-img .csa__tile-cover,
.csa__tile--featured.csa__tile--has-img{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  position:relative;
}
.csa__tile--has-img .csa__tile-cover::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,10,.25) 0%,rgba(10,10,10,.55) 100%);
  pointer-events:none;
}
.csa__tile--featured.csa__tile--has-img::before{
  background:linear-gradient(135deg,rgba(10,10,10,.65) 0%,rgba(10,10,10,.95) 100%);
}
/* Keep label text + project mark above the overlay. */
.csa__tile--has-img .csa__tile-cat,
.csa__tile--has-img .csa__tile-mark{position:relative;z-index:1;}

/* Accent-colour tiles — admin picks one colour; stylesheet builds a
   saturated 135° gradient with two shades of the SAME hue (no white tint).
   Mirrors the per-category gradient pattern (e.g. cat-mobile-app red plum
   → red): subtle lift at top-left, accent in the middle, deeper mix at
   bottom-right. Stays vibrant and "branded" rather than washed out.

   These selectors deliberately include the `.csa__bento` ancestor + 2
   classes on the element to MATCH the specificity of the per-category
   `.csa__bento .cat-* .csa__tile-cover` rule and beat it via later
   cascade position. */
.csa__bento .csa__tile--has-accent .csa__tile-cover,
.csa__bento .csa__tile--featured.csa__tile--has-accent{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 90%, #fff 10%) 0%,
    color-mix(in srgb, var(--ti-accent,#1a1c2e) 60%, #000 40%) 100%);
}

/* 4. Pagination */
.csa__pagination{
  padding:2rem 0 5rem;
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--line);
  margin-top:.5rem;padding-top:2rem;flex-wrap:wrap;gap:1.5rem;
}
.csa__pag-info{font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--muted);letter-spacing:.02em;}
.csa__pag-info b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;letter-spacing:0;font-size:.88rem;}
.csa__pag-controls{display:flex;align-items:center;gap:.35rem;}
.csa__pag-controls .csa__pag-btn,
.csa__pag-controls .page-numbers{
  min-width:38px;height:38px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;border:1px solid var(--line);background:#fff;
  font-family:'Inter',sans-serif;font-size:.9rem;font-weight:600;color:var(--ink);
  transition:all .2s var(--ease);padding:0 .65rem;text-decoration:none;
}
.csa__pag-controls .csa__pag-btn:hover,
.csa__pag-controls .page-numbers:hover{border-color:var(--ink);}
.csa__pag-controls .is-current,
.csa__pag-controls .current{background:var(--ink);color:#fff;border-color:var(--ink);cursor:default;}
.csa__pag-controls .csa__pag-ellipsis,
.csa__pag-controls .dots{
  padding:0 .25rem;color:var(--muted);font-weight:600;border:none;background:none;min-width:auto;
}

/* Empty state */
.csa__empty{
  text-align:center;padding:5rem 1rem;color:var(--muted);
}
.csa__empty p{font-size:1.1rem;margin-bottom:1.4rem;}

/* Mobile */
@media (max-width: 980px){
  .csa__bento{grid-template-columns:1fr;}
  .csa__tile,
  .csa__tile--featured,
  .csa__tile--stat,
  .csa__tile--med,
  .csa__tile--sm{grid-column:span 1 !important;grid-row:span 1 !important;}
  .csa__tile--featured .csa__tile-link{padding:1.8rem;}
  .csa__pagination{justify-content:center;}
  .csa__pag-info{order:2;flex-basis:100%;text-align:center;}
}

/* ==============================================================
   BLOG LISTING  (home.php + archive.php)
   Renders in Editorial or Magazine via body.blog--editorial / blog--magazine.
   Class prefix .bla__* (blog archive).
   ============================================================== */

/* Shared: hero, filter bar, pagination */
.bla__top{
  background:var(--surface);position:relative;overflow:hidden;
  padding:clamp(60px,7vw,110px) 0 clamp(45px,6vw,80px);
  border-bottom:1px solid var(--line);
}
.bla__top::before{content:"";position:absolute;top:-200px;right:-100px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(25,118,210,.10),transparent 65%);filter:blur(20px);pointer-events:none;}
.bla__top::after{content:"";position:absolute;bottom:-150px;left:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(229,57,53,.07),transparent 65%);filter:blur(20px);pointer-events:none;}
.bla__top-inner{position:relative;text-align:center;}
.bla__crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-bottom:2.5rem;}
.bla__crumbs a{color:var(--muted);}
.bla__crumbs a:hover{color:var(--ink);}
.bla__crumbs .sep{margin:0 .55rem;opacity:.5;}
.bla__crumbs .current{color:var(--ink);font-weight:500;}
.bla__h1{font-size:clamp(2.6rem,5.4vw,4.8rem);font-weight:800;line-height:1.04;letter-spacing:-.035em;max-width:1000px;margin:1.4rem auto 1.4rem;text-wrap:balance;color:var(--ink);}
.bla__h1 .italic{color:var(--red);}
.bla__lede{font-size:1.25rem;line-height:1.55;color:var(--muted);max-width:740px;margin:0 auto;}

.bla__filterbar{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:.9rem 0;}
body.admin-bar .bla__filterbar{top:32px;}
@media screen and (max-width:782px){body.admin-bar .bla__filterbar{top:46px;}}
.bla__filterbar-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;}
.bla__filter-group{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.bla__filter-lbl{font-family:'JetBrains Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-right:.5rem;}
.bla__chip{padding:.5rem .95rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.84rem;font-weight:500;color:var(--ink);transition:all .2s var(--ease);display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;}
.bla__chip:hover{border-color:var(--ink);}
.bla__chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink);}
.bla__chip-count{font-family:'JetBrains Mono',monospace;font-size:.68rem;opacity:.55;font-weight:400;}
.bla__chip.is-active .bla__chip-count{opacity:.7;}
.bla__sort{display:flex;align-items:center;gap:.8rem;font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);}
.bla__results{color:var(--ink);font-family:'Inter',sans-serif;font-size:.85rem;font-weight:500;letter-spacing:0;}

/* Editorial featured card */
.bla__featured-wrap{padding:3rem 0 1rem;}
.bla__feat-card{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;transition:all .35s var(--ease);}
.bla__feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.bla__feat-cover{min-height:380px;padding:2rem;color:#fff;position:relative;display:flex;align-items:flex-end;}
.bla__feat-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.15),transparent 50%);}
.bla__feat-tag{position:relative;z-index:1;background:rgba(255,255,255,.15);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);padding:.4rem .9rem;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;}
.bla__feat-mark{position:absolute;top:1.8rem;right:1.8rem;font-family:'Instrument Serif',serif;font-style:italic;font-size:1.5rem;color:rgba(255,255,255,.45);}
.bla__feat-body{padding:2.5rem;display:flex;flex-direction:column;justify-content:center;}
.bla__feat-pin{font-family:'JetBrains Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--red);margin-bottom:1rem;display:inline-flex;align-items:center;gap:.4rem;}
.bla__feat-pin::before{content:"★";color:var(--red);}
.bla__feat-h{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin-bottom:1rem;color:var(--ink);}
.bla__feat-sum{font-size:1.04rem;line-height:1.55;color:var(--muted);margin-bottom:1.4rem;}
.bla__feat-meta{display:flex;gap:1rem;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.74rem;color:var(--muted);padding-top:1rem;border-top:1px dashed var(--line);flex-wrap:wrap;}
.bla__feat-meta b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;font-size:.85rem;letter-spacing:0;}
.bla__dot{width:4px;height:4px;border-radius:50%;background:var(--muted);}

/* Editorial grid */
.bla__grid{padding:2rem 0 4rem;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.bla__post{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;transition:all .35s var(--ease);color:inherit;text-decoration:none;}
.bla__post:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.bla__post-cover{height:170px;padding:1.2rem;color:#fff;position:relative;display:flex;align-items:flex-end;}
.bla__post-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.15),transparent 50%);}
.bla__post-body{padding:1.6rem;flex:1;display:flex;flex-direction:column;}
.bla__post-h{font-size:1.18rem;font-weight:700;letter-spacing:-.015em;line-height:1.3;margin-bottom:.6rem;color:var(--ink);}
.bla__post-sum{font-size:.92rem;line-height:1.55;color:var(--muted);margin-bottom:1.1rem;flex:1;}
.bla__post-meta{display:flex;gap:.7rem;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);padding-top:.8rem;border-top:1px dashed var(--line);flex-wrap:wrap;}
.bla__post-meta b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;font-size:.78rem;letter-spacing:0;}

/* Tile cat / mark (shared between editorial post cover + magazine tile cover) */
.bla__tile-cat{position:relative;z-index:1;background:rgba(0,0,0,.25);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);padding:.3rem .8rem;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;}
.bla__tile-mark{position:absolute;top:1.1rem;right:1.1rem;font-family:'Instrument Serif',serif;font-style:italic;font-size:1.15rem;color:rgba(255,255,255,.45);max-width:55%;text-align:right;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Magazine bento */
.bla__bento{padding:3rem 0 2rem;display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem;grid-auto-rows:minmax(140px,auto);}
.bla__tile{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;transition:all .35s var(--ease);color:inherit;text-decoration:none;}
.bla__tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:transparent;}
.bla__tile--featured{grid-column:span 8;grid-row:span 2;color:#fff;border:none;padding:2.5rem;justify-content:space-between;position:relative;overflow:hidden;}
.bla__tile--featured::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.15),transparent 50%);pointer-events:none;}
.bla__tile--featured .bla__feat-top{position:relative;display:flex;justify-content:space-between;align-items:flex-start;}
.bla__tile--featured .bla__feat-tag{background:rgba(255,255,255,.15);}
.bla__tile--featured .bla__feat-pin{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:rgba(255,255,255,.6);letter-spacing:.08em;text-transform:uppercase;background:none;border:none;padding:0;margin:0;display:inline;}
.bla__tile--featured .bla__feat-pin::before{display:none;}
.bla__tile--featured .bla__feat-body{position:relative;}
.bla__tile--featured .bla__feat-h{color:#fff;}
.bla__tile--featured .bla__feat-h .italic{color:rgba(255,255,255,.7);}
.bla__tile--featured .bla__feat-sum{color:rgba(255,255,255,.85);max-width:600px;}
.bla__tile--featured .bla__feat-meta{border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.7);}
.bla__tile--featured .bla__feat-meta b{color:#fff;}

/* Newsletter + Topics tiles */
.bla__tile--newsletter{grid-column:span 4;grid-row:span 1;background:var(--ink);color:#fff;border:none;padding:2rem;justify-content:center;}
.bla__tile--newsletter:hover{transform:none;box-shadow:none;}
.bla__news-h{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--red-1);margin-bottom:.5rem;}
.bla__news-title{font-size:1.05rem;font-weight:700;line-height:1.25;letter-spacing:-.015em;margin-bottom:.6rem;color:#fff;}
.bla__news-p{font-size:.85rem;color:rgba(255,255,255,.7);margin-bottom:.9rem;line-height:1.45;}
.bla__news-form{display:flex;gap:.4rem;}
.bla__news-form input{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:.5rem .8rem;border-radius:8px;color:#fff;font-size:.82rem;font-family:'Inter',sans-serif;outline:none;}
.bla__news-form input::placeholder{color:rgba(255,255,255,.4);}
.bla__news-form button{background:var(--red);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font-weight:600;font-size:.82rem;cursor:pointer;}
.bla__tile--topic{grid-column:span 4;grid-row:span 1;background:var(--soft);border-color:transparent;padding:1.5rem 1.8rem;justify-content:center;}
.bla__tile--topic:hover{transform:none;box-shadow:none;}
.bla__topic-h{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;}
.bla__topic-list{display:flex;flex-wrap:wrap;gap:.4rem;}
.bla__topic-tag{background:#fff;border:1px solid var(--line);padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:500;color:var(--ink);transition:all .2s var(--ease);}
.bla__topic-tag:hover{border-color:var(--ink);}

/* Magazine medium + small tiles */
.bla__tile--med{grid-column:span 6;grid-row:span 2;}
.bla__tile--med .bla__tile-cover{height:160px;}
.bla__tile--sm{grid-column:span 4;grid-row:span 2;}
.bla__tile--sm .bla__tile-cover{height:130px;}
.bla__tile-cover{padding:1.2rem;color:#fff;position:relative;overflow:hidden;display:flex;align-items:flex-end;}
.bla__tile-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.15),transparent 50%);}
.bla__tile-body{padding:1.5rem;flex:1;display:flex;flex-direction:column;}
.bla__tile-h{font-size:1.1rem;font-weight:700;line-height:1.25;letter-spacing:-.015em;margin-bottom:.5rem;color:var(--ink);}
.bla__tile-sum{font-size:.88rem;line-height:1.55;color:var(--muted);flex:1;margin-bottom:.9rem;}
.bla__tile-meta{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);padding-top:.7rem;border-top:1px dashed var(--line);display:flex;gap:.6rem;align-items:center;}
.bla__tile-meta b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;font-size:.78rem;letter-spacing:0;}

/* Blog pagination — shares with .csa__pag-* if present, but scoped to .bla__ */
.bla__pagination{padding:2rem 0 5rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:.5rem;padding-top:2rem;flex-wrap:wrap;gap:1.5rem;}
.bla__pag-info{font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--muted);letter-spacing:.02em;}
.bla__pag-info b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;letter-spacing:0;font-size:.88rem;}
.bla__pag-controls{display:flex;align-items:center;gap:.35rem;}
.bla__pag-controls .bla__pag-btn,
.bla__pag-controls .page-numbers{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line);background:#fff;font-family:'Inter',sans-serif;font-size:.9rem;font-weight:600;color:var(--ink);transition:all .2s var(--ease);padding:0 .65rem;text-decoration:none;}
.bla__pag-controls .bla__pag-btn:hover,
.bla__pag-controls .page-numbers:hover{border-color:var(--ink);}
.bla__pag-controls .is-current,
.bla__pag-controls .current{background:var(--ink);color:#fff;border-color:var(--ink);cursor:default;}
.bla__pag-controls .bla__pag-ellipsis,
.bla__pag-controls .dots{padding:0 .25rem;color:var(--muted);font-weight:600;border:none;background:none;min-width:auto;}

.bla__empty{text-align:center;padding:5rem 1rem;color:var(--muted);}

@media (max-width: 980px){
  .bla__grid{grid-template-columns:repeat(2,1fr);}
  .bla__feat-card{grid-template-columns:1fr;}
  .bla__feat-cover{min-height:240px;}
  .bla__bento{grid-template-columns:1fr;}
  .bla__tile,.bla__tile--featured,.bla__tile--newsletter,.bla__tile--topic,.bla__tile--med,.bla__tile--sm{grid-column:span 1 !important;grid-row:span 1 !important;}
  .bla__pagination{justify-content:center;}
}
@media (max-width: 680px){
  .bla__grid{grid-template-columns:1fr;}
}

/* ==============================================================
   BLOG SINGLE  (single.php)
   Renders in Editorial or Magazine via body.blog--editorial / blog--magazine.
   Class prefix .bls__* (blog single).
   ============================================================== */

/* Reading progress bar (magazine only) */
.bls__progress{position:sticky;top:0;height:3px;background:var(--line);z-index:50;}
body.admin-bar .bls__progress{top:32px;}
@media screen and (max-width:782px){body.admin-bar .bls__progress{top:46px;}}
.bls__progress-bar{height:100%;width:0;background:var(--red);transition:width .15s linear;}
body.blog--editorial .bls__progress{display:none;}

/* === EDITORIAL HERO === */
body.blog--editorial .bls__top{
  background:var(--surface);position:relative;overflow:hidden;
  padding:clamp(60px,7vw,110px) 0 clamp(35px,4vw,50px);
  border-bottom:1px solid var(--line);
}
body.blog--editorial .bls__top::before{content:"";position:absolute;top:-200px;right:-100px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(25,118,210,.10),transparent 65%);filter:blur(20px);pointer-events:none;}
body.blog--editorial .bls__top::after{content:"";position:absolute;bottom:-150px;left:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(229,57,53,.07),transparent 65%);filter:blur(20px);pointer-events:none;}
body.blog--editorial .bls__top-inner{position:relative;text-align:center;max-width:920px;margin:0 auto;}
body.blog--editorial .bls__h1{color:var(--ink);}
body.blog--editorial .bls__h1 .italic{color:var(--red);}
body.blog--editorial .bls__deck{color:var(--muted);}
body.blog--editorial .bls__byline{color:var(--muted);border-color:var(--line);}
body.blog--editorial .bls__byline b{color:var(--ink);}

.bls__crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);margin-bottom:2.2rem;}
.bls__crumbs a{color:var(--muted);}
.bls__crumbs a:hover{color:var(--ink);}
.bls__crumbs .sep{margin:0 .55rem;opacity:.5;}
.bls__crumbs .current{color:var(--ink);font-weight:500;}
.bls__h1{font-size:clamp(2.4rem,4.6vw,4.2rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin:1.4rem auto 1.4rem;text-wrap:balance;}
.bls__deck{font-size:1.25rem;line-height:1.55;margin-bottom:2rem;}
.bls__byline{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:.82rem;padding-top:1.5rem;border-top:1px solid;max-width:600px;margin:0 auto;}
.bls__byline b{font-family:'Inter',sans-serif;font-weight:600;font-size:.88rem;letter-spacing:0;}
.bls__byline-dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5;}

/* Editorial cover band */
body.blog--editorial .bls__cover{margin:0 auto;max-width:1180px;padding:2rem 1.5rem 0;}
body.blog--editorial .bls__cover-img{height:380px;border-radius:var(--r-xl);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:2rem;}
body.blog--editorial .bls__cover-img::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.15),transparent 50%);}
body.blog--editorial .bls__cover-cap{position:absolute;bottom:2rem;left:2rem;right:2rem;font-family:'Instrument Serif',serif;font-style:italic;font-size:1rem;color:rgba(255,255,255,.7);max-width:640px;}
body.blog--editorial .bls__cover-cap::before{content:"Fig. 01 — ";color:rgba(255,255,255,.5);font-family:'JetBrains Mono',monospace;font-style:normal;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;}

/* Editorial body grid */
body.blog--editorial .bls__body-grid{display:grid;grid-template-columns:220px 1fr;gap:4rem;padding:4rem 0;max-width:1180px;margin:0 auto;padding-inline:1.5rem;}
body.blog--editorial .bls__toc-side{position:sticky;top:80px;align-self:start;display:none;}
body.blog--editorial .bls__toc-side--ready{display:block;}
.bls__toc-side .bls__toc-h{font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.9rem;}
.bls__toc-side ul{list-style:none;padding:0;margin:0;}
.bls__toc-side li{margin-bottom:.25rem;}
.bls__toc-side a{display:flex;align-items:baseline;gap:.6rem;padding:.4rem .8rem;font-size:.88rem;color:var(--muted);border-left:2px solid transparent;transition:all .15s;line-height:1.4;text-decoration:none;}
.bls__toc-side a:hover{color:var(--ink);}
.bls__toc-side a.is-active{color:var(--red);border-left-color:var(--red);background:var(--red-pale);}
.bls__toc-n{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:inherit;opacity:.6;}

/* Article body — shared shell, layout-specific widths */
.bls__article{font-size:1.14rem;line-height:1.75;color:#2b2419;min-width:0;}
body.blog--editorial .bls__article{max-width:780px;}
.bls__article p{margin-bottom:1.4rem;color:#3a3a3a;}
.bls__article p:first-of-type::first-letter{font-family:'Instrument Serif',serif;font-weight:400;font-size:4.4rem;float:left;line-height:.9;padding-right:.8rem;padding-top:.4rem;color:var(--red);}
.bls__article h2{font-size:1.95rem;font-weight:700;letter-spacing:-.02em;margin:2.6rem 0 1rem;line-height:1.2;color:var(--ink);scroll-margin-top:90px;}
.bls__article h2 .italic{color:var(--red);}
.bls__article h3{font-size:1.3rem;font-weight:700;margin:2rem 0 .7rem;color:var(--ink);}
.bls__article a{color:var(--red);border-bottom:1px solid currentColor;}
.bls__article a:hover{background:var(--red-pale);}
.bls__article strong{font-weight:700;color:var(--ink);}
.bls__article ul,.bls__article ol{margin:1.2rem 0 1.4rem 1.4rem;}
.bls__article li{margin-bottom:.5rem;}
.bls__article blockquote{margin:2rem 0;padding:1.6rem 2rem;background:var(--red-pale);border-left:3px solid var(--red);border-radius:0 8px 8px 0;}
.bls__article blockquote p{font-family:'Instrument Serif',serif;font-style:italic;font-size:1.4rem;line-height:1.45;color:var(--ink);margin:0;}
.bls__article pre{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:1.4rem 1.6rem;font-family:'JetBrains Mono',monospace;font-size:.86rem;line-height:1.55;margin:1.4rem 0;overflow-x:auto;}
.bls__article code{font-family:'JetBrains Mono',monospace;font-size:.9em;background:var(--soft-2);padding:.1em .3em;border-radius:4px;color:var(--ink);}
.bls__article pre code{background:none;padding:0;color:inherit;}

/* Tag list + author card (editorial) */
.bls__tag-list{display:flex;gap:.4rem;flex-wrap:wrap;}
.bls__tag{background:var(--soft);border:1px solid var(--line);padding:.35rem .8rem;border-radius:999px;font-size:.78rem;font-weight:500;color:var(--ink);text-decoration:none;}
.bls__tag:hover{border-color:var(--ink);}
.bls__author-card{background:var(--soft);border-radius:var(--r-xl);padding:2rem;margin:3rem 0 0;display:flex;gap:1.5rem;align-items:flex-start;max-width:780px;}
.bls__author-img{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--red),#ff7e7e);color:#fff;font-weight:700;font-size:1.05rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.bls__author-img--lg{width:64px;height:64px;font-size:1.4rem;}
.bls__author-line b{display:block;font-size:1rem;font-weight:700;margin-bottom:.2rem;}
.bls__author-line span{font-size:.85rem;color:var(--muted);}
.bls__author-bio{margin-top:.5rem;font-size:.9rem;color:var(--muted);line-height:1.5;}

/* === MAGAZINE HERO === */
body.blog--magazine .bls__hero{position:relative;color:#fff;overflow:hidden;padding:clamp(50px,6vw,90px) 0 clamp(80px,8vw,130px);}
body.blog--magazine .bls__hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.08),transparent 50%);pointer-events:none;}
body.blog--magazine .bls__hero-inner{position:relative;text-align:center;max-width:920px;margin:0 auto;padding:0 1.5rem;}
body.blog--magazine .bls__crumbs{color:rgba(255,255,255,.7);}
body.blog--magazine .bls__crumbs a{color:rgba(255,255,255,.7);}
body.blog--magazine .bls__crumbs a:hover{color:#fff;}
body.blog--magazine .bls__crumbs .current{color:#fff;}
body.blog--magazine .bls__chip{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.15);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);padding:.4rem .9rem;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.5rem;color:#fff;}
body.blog--magazine .bls__chip::before{content:"";width:6px;height:6px;background:#FFCDD2;border-radius:50%;box-shadow:0 0 10px #FFCDD2;}
body.blog--magazine .bls__h1{color:#fff;}
body.blog--magazine .bls__h1 .italic{color:#FFCDD2;}
body.blog--magazine .bls__deck{color:rgba(255,255,255,.85);}
body.blog--magazine .bls__byline{color:rgba(255,255,255,.6);border-top-color:rgba(255,255,255,.2);}
body.blog--magazine .bls__byline b{color:#fff;}

/* Floating card */
body.blog--magazine .bls__card-wrap{margin-top:-60px;position:relative;z-index:5;padding:0 1.5rem;}
body.blog--magazine .bls__card{background:#fff;border-radius:var(--r-xl);max-width:980px;margin:0 auto;box-shadow:0 30px 80px rgba(0,0,0,.08);padding:3rem 4rem;}
body.blog--magazine .bls__article-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.2rem;margin-bottom:2rem;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:1rem;}
body.blog--magazine .bls__author-inline{display:flex;align-items:center;gap:.85rem;}
body.blog--magazine .bls__author-info b{display:block;font-size:.9rem;font-weight:700;}
body.blog--magazine .bls__author-info span{font-size:.74rem;color:var(--muted);}
body.blog--magazine .bls__article-info{display:flex;gap:1rem;font-family:'JetBrains Mono',monospace;font-size:.74rem;color:var(--muted);}
body.blog--magazine .bls__article-info b{color:var(--ink);font-family:'Inter',sans-serif;font-weight:600;font-size:.82rem;letter-spacing:0;}

/* End-of-article (magazine) */
body.blog--magazine .bls__article-end{padding-top:2rem;margin-top:3rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;}
body.blog--magazine .bls__share-inline{display:flex;gap:.4rem;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--muted);}
body.blog--magazine .bls__share-h{margin-right:.4rem;text-transform:uppercase;letter-spacing:.08em;}
body.blog--magazine .bls__share-btn{width:34px;height:34px;border-radius:8px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .2s var(--ease);}
body.blog--magazine .bls__share-btn:hover{border-color:var(--ink);color:var(--ink);}
body.blog--magazine .bls__share-btn svg{width:14px;height:14px;}

/* Floating share dock (both layouts) */
.bls__share-dock{position:fixed;bottom:30px;right:30px;z-index:60;display:flex;flex-direction:column;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.4rem;box-shadow:var(--shadow-lg);}
.bls__share-dock-h{position:absolute;left:-6.5rem;top:50%;transform:translateY(-50%) rotate(-90deg);font-family:'JetBrains Mono',monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);white-space:nowrap;}
.bls__share-dock-btn{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .2s var(--ease);}
.bls__share-dock-btn:hover{background:var(--red-pale);color:var(--red);}
.bls__share-dock-btn svg{width:15px;height:15px;}
@media (max-width: 900px){.bls__share-dock{display:none;}}

/* Related posts (both layouts) */
.bls__related{padding:4rem 0;background:var(--soft);}
.bls__related-head{text-align:center;margin-bottom:2.5rem;max-width:600px;margin-inline:auto;}
.bls__related-h2{font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:700;letter-spacing:-.02em;margin-top:1rem;}
.bls__related-h2 .italic{color:var(--red);}
.bls__related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.bls__rel-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;transition:all .35s var(--ease);color:inherit;text-decoration:none;}
.bls__rel-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent;}
.bls__rel-cover{height:140px;position:relative;padding:1rem;display:flex;align-items:flex-end;}
.bls__rel-cover::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.15),transparent 50%);}
.bls__rel-cat{position:relative;z-index:1;background:rgba(0,0,0,.25);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);padding:.25rem .6rem;border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:.62rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#fff;}
.bls__rel-body{padding:1.4rem;flex:1;display:flex;flex-direction:column;}
.bls__rel-meta{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem;}
.bls__rel-h3{font-size:1.05rem;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--ink);}

@media (max-width: 980px){
  body.blog--editorial .bls__body-grid{grid-template-columns:1fr;gap:2rem;}
  body.blog--editorial .bls__toc-side{position:static;}
  body.blog--editorial .bls__article{max-width:none;}
  body.blog--magazine .bls__card{padding:1.8rem;}
  body.blog--magazine .bls__article-head{flex-direction:column;align-items:flex-start;}
  body.blog--magazine .bls__article-end{flex-direction:column;align-items:flex-start;}
  .bls__related-grid{grid-template-columns:1fr;}
}
.a-hero{background:var(--soft);position:relative;overflow:hidden;padding:clamp(34px,4vw,52px) 0 clamp(48px,6vw,80px);text-align:center;}
.a-hero::before{content:"";position:absolute;top:-180px;left:50%;transform:translateX(-50%);width:760px;height:560px;background:radial-gradient(ellipse,rgba(25,118,210,0.12),transparent 65%);}
.a-hero__inner{position:relative;z-index:2;max-width:760px;margin-inline:auto;}
.a-hero h1{font-size:clamp(2.5rem,5vw,4.3rem);font-weight:800;letter-spacing:-0.045em;margin:1.1rem 0 1rem;}
.a-hero h1 .italic{color:var(--blue);}
.a-hero p{font-size:1.18rem;color:var(--muted);line-height:1.6;}
.a-hero__crumbs{display:flex;gap:.5rem;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--muted);}
.a-hero__crumbs a:hover{color:var(--blue);}
.a-hero__crumbs .sep{opacity:.45;}
.a-hero__stats{display:flex;gap:2.4rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line);}
.a-hero__stats div{display:flex;flex-direction:column;}
.a-hero__stats b{font-size:1.7rem;font-weight:800;letter-spacing:-0.03em;}
.a-hero__stats span{font-size:.8rem;color:var(--muted);font-family:'JetBrains Mono',monospace;}

/* --- Services archive cards --- */
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
@media(max-width:980px){.sv-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.sv-grid{grid-template-columns:1fr;}}
.sv-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;transition:all .35s var(--ease);}
.sv-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:transparent;}
.sv-card__img{position:relative;aspect-ratio:16/9;overflow:hidden;}
.sv-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.sv-card:hover .sv-card__img img{transform:scale(1.06);}
.sv-card__ic{position:absolute;left:1.2rem;bottom:-22px;width:52px;height:52px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--blue-3));color:#fff;display:grid;place-items:center;box-shadow:var(--shadow);}
.sv-card__ic svg{width:25px;height:25px;}
.sv-card__body{padding:2rem 1.6rem 1.6rem;display:flex;flex-direction:column;flex:1;}
.sv-card__body h3{font-size:1.3rem;margin-bottom:.5rem;}
.sv-card__body h3 .italic{color:var(--blue);}
.sv-card__body>p{font-size:.94rem;color:var(--muted);margin-bottom:1rem;}
.sv-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;}
.sv-card__tag{font-size:.74rem;font-family:'JetBrains Mono',monospace;padding:.3rem .6rem;border-radius:6px;background:var(--soft-2);color:var(--muted);}
.sv-card__cta{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--blue);}
.sv-card__cta svg{width:14px;height:14px;transition:transform .25s var(--ease);}
.sv-card:hover .sv-card__cta svg{transform:translateX(3px);}

/* --- Engagement teaser band --- */
.eng-band{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:820px){.eng-band{grid-template-columns:1fr;}}
.eng-pill{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:var(--r-lg);padding:1.6rem;transition:all .3s var(--ease);}
.eng-pill:hover{background:rgba(255,255,255,0.08);transform:translateY(-3px);}
.eng-pill h3{font-size:1.2rem;color:#fff;margin-bottom:.4rem;}
.eng-pill h3 .italic{color:#90CAF9;}
.eng-pill p{font-size:.92rem;color:rgba(255,255,255,0.65);}
.eng-pill__size{font-family:'JetBrains Mono',monospace;font-size:.76rem;color:#90CAF9;margin-bottom:.7rem;}

/* --- Industry archive cards --- */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media(max-width:1080px){.ind-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:460px){.ind-grid{grid-template-columns:1fr;}}
.ind-card{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:3/3.4;display:flex;align-items:flex-end;transition:all .35s var(--ease);}
.ind-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.ind-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.ind-card:hover img{transform:scale(1.07);}
.ind-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,0.92) 0%,rgba(10,10,10,0.45) 45%,rgba(10,10,10,0.05) 100%);}
.ind-card__body{position:relative;z-index:2;padding:1.4rem;color:#fff;}
.ind-card__cnt{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:#90CAF9;margin-bottom:.4rem;}
.ind-card__body h3{font-size:1.25rem;color:#fff;margin-bottom:.25rem;}
.ind-card__body h3 .italic{color:#FFCDD2;}
.ind-card__body p{font-size:.85rem;color:rgba(255,255,255,0.72);}
.ind-card__go{display:inline-flex;align-items:center;gap:.35rem;margin-top:.7rem;font-size:.82rem;font-weight:600;color:#fff;opacity:0;transform:translateY(6px);transition:all .25s var(--ease);}
.ind-card__go svg{width:13px;height:13px;}
.ind-card:hover .ind-card__go{opacity:1;transform:translateY(0);}
.appr__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media(max-width:820px){.appr__grid{grid-template-columns:1fr;}}
.appr-card{padding:1.7rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);}
.appr-card__ic{width:46px;height:46px;border-radius:11px;background:var(--blue-pale);color:var(--blue);display:grid;place-items:center;margin-bottom:1rem;}
.appr-card__ic svg{width:22px;height:22px;}
.appr-card h3{font-size:1.12rem;margin-bottom:.4rem;}
.appr-card p{font-size:.93rem;color:var(--muted);}

/* --- Case studies archive: filter + grid + proof --- */
.filter{background:var(--soft);position:sticky;top:96px;z-index:40;border-bottom:1px solid var(--line);}
.filter__row{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;padding:1.1rem 0;}
.filter__btn{padding:.5rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:.86rem;font-weight:600;color:var(--muted);transition:all .2s var(--ease);}
.filter__btn:hover{border-color:var(--ink);color:var(--ink);}
.filter__btn.is-active{background:var(--ink);color:#fff;border-color:var(--ink);}
.cs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
@media(max-width:980px){.cs-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.cs-grid{grid-template-columns:1fr;}}
.cs-card{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:#fff;transition:all .35s var(--ease);display:flex;flex-direction:column;}
.cs-card.is-hidden{display:none;}
.cs-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);}
.cs-card__img{position:relative;aspect-ratio:16/10;overflow:hidden;}
.cs-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.cs-card:hover .cs-card__img img{transform:scale(1.06);}
.cs-card__cat{position:absolute;top:.9rem;left:.9rem;background:rgba(10,10,10,0.85);color:#fff;font-family:'JetBrains Mono',monospace;font-size:.68rem;padding:.35rem .7rem;border-radius:6px;}
.cs-card__body{padding:1.5rem;display:flex;flex-direction:column;flex:1;}
.cs-card__body h3{font-size:1.18rem;margin-bottom:.45rem;}
.cs-card__body h3 .italic{color:var(--blue);}
.cs-card__body>p{font-size:.9rem;color:var(--muted);margin-bottom:1.1rem;}
.cs-card__metrics{display:flex;gap:1.4rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);}
.cs-card__metrics b{font-size:1.3rem;font-weight:800;letter-spacing:-0.03em;}
.cs-card__metrics span{font-size:.72rem;color:var(--muted);display:block;}
.cs-empty{text-align:center;color:var(--muted);padding:3rem 0;display:none;}
.proof{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
@media(max-width:760px){.proof{grid-template-columns:repeat(2,1fr);}}
.proof div{padding:2rem 1rem;text-align:center;border-right:1px solid var(--ink-3);}
.proof div:last-child{border-right:none;}
@media(max-width:760px){.proof div:nth-child(2){border-right:none;}.proof div:nth-child(1),.proof div:nth-child(2){border-bottom:1px solid var(--ink-3);}}
.proof b{display:block;font-size:clamp(2.2rem,4vw,3rem);font-weight:800;letter-spacing:-0.04em;color:#fff;line-height:1;}
.proof span{display:block;margin-top:.5rem;font-size:.8rem;color:rgba(255,255,255,0.6);font-family:'JetBrains Mono',monospace;}

/* --- Engagement models archive --- */
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:start;}
@media(max-width:920px){.models{grid-template-columns:1fr;max-width:480px;margin-inline:auto;}}
.model{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:2rem 1.8rem;display:flex;flex-direction:column;transition:all .35s var(--ease);}
.model:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.model--feat{border-color:var(--blue);box-shadow:var(--shadow-lg);position:relative;}
@media(min-width:921px){.model--feat{transform:scale(1.04);}.model--feat:hover{transform:scale(1.04) translateY(-4px);}}
.model__tag{display:inline-flex;align-self:flex-start;font-family:'JetBrains Mono',monospace;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .7rem;border-radius:6px;background:var(--soft-2);color:var(--muted);margin-bottom:1rem;}
.model--feat .model__tag{background:var(--red);color:#fff;}
.model h3{font-size:1.5rem;margin-bottom:.2rem;}
.model h3 .italic{color:var(--blue);}
.model__size{font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--muted);margin-bottom:1rem;}
.model>p{font-size:.95rem;color:var(--muted);margin-bottom:1.2rem;}
.model__list{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.4rem;padding:0;}
.model__list li{display:flex;gap:.55rem;font-size:.92rem;}
.model__list svg{flex-shrink:0;width:17px;height:17px;color:var(--blue);margin-top:.2rem;}
.model__best{font-size:.88rem;color:var(--ink-2);background:var(--soft);border-radius:10px;padding:.8rem 1rem;margin-bottom:1.3rem;}
.model__best b{color:var(--ink);}
.model__cta{margin-top:auto;}
.cmp-wrap{overflow-x:auto;}
.cmp-table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;}
.cmp-table th,.cmp-table td{padding:1.1rem 1.3rem;text-align:left;font-size:.92rem;border-bottom:1px solid var(--line);}
.cmp-table thead th{background:var(--ink);color:#fff;font-weight:700;font-size:.95rem;}
.cmp-table thead th:first-child{background:var(--ink-2);}
.cmp-table tbody tr:last-child td{border-bottom:none;}
.cmp-table tbody th{font-weight:600;color:var(--ink);background:var(--soft);font-family:'JetBrains Mono',monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;width:170px;}
.cmp-table td{color:var(--muted);}
.cmp-table .col-feat{background:var(--blue-pale);color:var(--ink-2);font-weight:500;}
.cmp-table thead .col-feat{background:var(--blue);}

/* --- Engagement single: best-for / inclusions / pricing / compare --- */
.bestfor__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
@media(max-width:760px){.bestfor__grid{grid-template-columns:1fr;}}
.bestfor-card{display:flex;gap:1rem;align-items:flex-start;padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);transition:all .3s var(--ease);}
.bestfor-card:hover{box-shadow:var(--shadow);border-color:var(--blue-soft);}
.bestfor-card__ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:var(--blue-pale);color:var(--blue);display:grid;place-items:center;}
.bestfor-card__ic svg{width:19px;height:19px;}
.bestfor-card h4{font-size:1.04rem;margin-bottom:.25rem;}
.bestfor-card p{font-size:.9rem;color:var(--muted);}
.incl__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem 2rem;}
@media(max-width:760px){.incl__grid{grid-template-columns:1fr;}}
.incl-item{display:flex;gap:.7rem;align-items:center;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,0.1);}
.incl-item svg{flex-shrink:0;width:22px;height:22px;color:var(--red-1);}
.incl-item span{font-size:1rem;}
.pricing{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;}
@media(max-width:860px){.pricing{grid-template-columns:1fr;}}
.pricing__panel{background:linear-gradient(135deg,var(--ink),var(--blue-3) 140%);color:#fff;border-radius:var(--r-2xl);padding:clamp(2rem,3.5vw,3rem);position:relative;overflow:hidden;}
.pricing__panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 0%,rgba(229,57,53,0.3),transparent 55%);}
.pricing__panel>*{position:relative;}
.pricing__tag{font-family:'JetBrains Mono',monospace;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:#90CAF9;}
.pricing__amt{font-size:clamp(2.2rem,4vw,3rem);font-weight:800;letter-spacing:-0.04em;margin:.6rem 0;}
.pricing__amt small{font-size:.4em;color:rgba(255,255,255,0.6);font-weight:500;}
.pricing__note{color:rgba(255,255,255,0.72);font-size:.96rem;margin-bottom:1.5rem;}
.pricing__list{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.7rem;padding:0;}
.pricing__list li{display:flex;gap:.6rem;font-size:.94rem;color:rgba(255,255,255,0.85);}
.pricing__list svg{flex-shrink:0;width:17px;height:17px;color:var(--red-1);margin-top:.2rem;}
.pricing h2{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:800;letter-spacing:-0.04em;margin:.9rem 0 .7rem;}
.pricing__txt p{color:var(--muted);margin-bottom:1rem;}
.compare__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:860px){.compare__grid{grid-template-columns:1fr;}}
.cmp{border:1px solid var(--line);border-radius:var(--r-xl);padding:1.8rem;background:#fff;transition:all .3s var(--ease);}
.cmp:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);}
.cmp--active{border-color:var(--red);box-shadow:var(--shadow-lg);position:relative;}
.cmp--active::before{content:"You are here";position:absolute;top:-11px;left:1.8rem;background:var(--red);color:#fff;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .65rem;border-radius:5px;}
.cmp h3{font-size:1.2rem;margin-bottom:.3rem;}
.cmp h3 .italic{color:var(--blue);}
.cmp__size{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);margin-bottom:.8rem;}
.cmp p{font-size:.92rem;color:var(--muted);margin-bottom:1rem;}
.cmp a{font-size:.86rem;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:.35rem;}
.cmp a svg{width:13px;height:13px;}
.cmp--active a{color:var(--red);pointer-events:none;}

/* --- Page CTA band (inner-page version, distinct from homepage .cta) --- */
.pcta{background:var(--ink);color:#fff;padding:clamp(70px,8vw,120px) 0;position:relative;overflow:hidden;}
.pcta__aurora{position:absolute;inset:0;background:radial-gradient(ellipse 50% 40% at 22% 50%,rgba(25,118,210,0.5),transparent 60%),radial-gradient(ellipse 50% 40% at 80% 50%,rgba(229,57,53,0.4),transparent 60%);filter:blur(70px);}
.pcta__inner{position:relative;z-index:2;text-align:center;max-width:760px;margin-inline:auto;}
.pcta h2{color:#fff;font-size:clamp(2.2rem,4.4vw,3.6rem);font-weight:800;letter-spacing:-0.04em;line-height:1.05;margin:1rem 0 1rem;}
.pcta h2 .italic{background:linear-gradient(110deg,#90CAF9,#FFCDD2);-webkit-background-clip:text;background-clip:text;color:transparent;}
.pcta p{color:rgba(255,255,255,0.72);font-size:1.1rem;margin-bottom:1.8rem;}
.pcta__buttons{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;}

/* --- Generic page / blog / search / 404 --- */
.page-head{background:var(--soft);border-bottom:1px solid var(--line);padding:clamp(34px,4vw,52px) 0 clamp(34px,4vw,50px);}
.page-head h1{font-size:clamp(2rem,4vw,3.2rem);font-weight:800;letter-spacing:-0.04em;}
.page-head p{color:var(--muted);font-size:1.05rem;margin-top:.7rem;}
.page-body{padding:clamp(40px,5vw,72px) 0;}
.prose{max-width:760px;margin-inline:auto;}
.prose h2{font-size:1.7rem;margin:2rem 0 .8rem;letter-spacing:-0.03em;}
.prose h3{font-size:1.3rem;margin:1.6rem 0 .6rem;}
.prose p{margin-bottom:1.1rem;color:var(--ink-2);}
.prose a{color:var(--blue);text-decoration:underline;}
.prose ul,.prose ol{margin:0 0 1.1rem 1.3rem;color:var(--ink-2);}
.prose li{margin-bottom:.4rem;}
.prose img{border-radius:var(--r-lg);margin:1.4rem 0;}
.prose blockquote{border-left:3px solid var(--blue);padding-left:1.2rem;margin:1.4rem 0;color:var(--muted);font-style:italic;}

/* ===== Legal documents (Privacy / Terms / Cookie Policy) ===== */
.legal-hero{
  background:linear-gradient(180deg,var(--soft) 0%, #fff 100%);
  border-bottom:1px solid var(--line);
  padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(2rem,4vw,3.2rem);
}
.legal-hero__inner{max-width:760px;margin:0 auto;text-align:center;}
.legal-hero__badge{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:600;letter-spacing:.02em;
  color:var(--ink-2,#374151);
  background:#fff;border:1px solid var(--line);
  padding:.4rem .7rem;border-radius:999px;margin-bottom:1.1rem;
}
.legal-hero__badge svg{color:var(--blue);}
.legal-hero h1{
  font-size:clamp(2.1rem,4vw,3.2rem);font-weight:800;
  letter-spacing:-0.035em;line-height:1.1;margin:0;
  color:var(--ink);
}
.legal-hero__lede{
  margin:1.1rem auto 0;max-width:620px;
  font-size:1.05rem;line-height:1.55;color:var(--muted);
}

.legal-body{padding:clamp(2rem,4vw,3.6rem) 0 clamp(3rem,6vw,5rem);}
.legal-grid{
  display:grid;grid-template-columns:240px minmax(0,1fr);
  gap:clamp(1.6rem,4vw,3.4rem);
  align-items:start;
  max-width:1080px;margin-inline:auto;
}
.legal-toc{position:sticky;top:7.5rem;}
.legal-toc__inner{
  border-left:2px solid var(--line);
  padding:.2rem 0 .2rem 1rem;
}
.legal-toc__title{
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);
  margin:0 0 .7rem;
}
.legal-toc__nav{display:flex;flex-direction:column;gap:.05rem;}
.legal-toc__nav a{
  display:block;padding:.4rem .25rem;
  font-size:.86rem;line-height:1.35;color:var(--ink-2,#374151);
  text-decoration:none;border-radius:4px;
  transition:color .15s ease;
}
.legal-toc__nav a:hover{color:var(--blue);}
.legal-toc__nav a.is-active{
  color:var(--blue);font-weight:600;
  position:relative;
}
.legal-toc__nav a.is-active::before{
  content:'';position:absolute;left:-1.1rem;top:50%;
  width:2px;height:1.1rem;background:var(--blue);
  transform:translateY(-50%);
}

.legal-prose{max-width:none;}
.legal-prose h2{
  font-size:1.55rem;font-weight:700;letter-spacing:-0.02em;
  margin:2.6rem 0 1rem;line-height:1.25;
  scroll-margin-top:6rem;
}
.legal-prose h2:first-child{margin-top:0;}
.legal-prose h3{
  font-size:1.12rem;font-weight:600;letter-spacing:-0.005em;
  margin:1.8rem 0 .6rem;line-height:1.35;
  color:var(--ink);
  scroll-margin-top:6rem;
}
.legal-prose p{
  margin-bottom:1rem;line-height:1.7;
  color:var(--ink-2,#374151);font-size:.98rem;
}
.legal-prose ul,.legal-prose ol{
  margin:0 0 1.1rem 1.4rem;
  color:var(--ink-2,#374151);font-size:.98rem;
}
.legal-prose li{margin-bottom:.45rem;line-height:1.6;}
.legal-prose strong{color:var(--ink);font-weight:600;}
.legal-prose code{
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.85em;background:var(--soft);
  padding:.1rem .35rem;border-radius:4px;
  color:var(--ink);
}
.legal-prose a{
  color:var(--blue);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:2px;
}
.legal-prose a:hover{text-decoration-thickness:2px;}

/* Contact card at the foot of the policy */
.legal-contact{
  display:flex;gap:1rem;align-items:flex-start;
  margin-top:3rem;padding:1.5rem 1.6rem;
  background:var(--soft);border:1px solid var(--line);
  border-radius:14px;
}
.legal-contact__ic{
  flex-shrink:0;width:42px;height:42px;
  display:grid;place-items:center;border-radius:10px;
  background:#fff;border:1px solid var(--line);
  color:var(--blue);
}
.legal-contact__body h3{
  font-size:1.05rem;font-weight:600;letter-spacing:-0.005em;
  margin:0 0 .35rem;color:var(--ink);
}
.legal-contact__body p{
  margin:0;font-size:.92rem;line-height:1.55;
  color:var(--ink-2,#374151);
}

/* Tablet + mobile: drop the TOC to a top dropdown, full-width prose */
@media (max-width:900px){
  .legal-grid{grid-template-columns:1fr;}
  .legal-toc{position:static;}
  .legal-toc__inner{
    border-left:0;border:1px solid var(--line);
    border-radius:10px;padding:.85rem 1rem;
    background:#fff;
  }
  .legal-toc__nav{
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .legal-toc.is-open .legal-toc__nav{max-height:60vh;overflow-y:auto;padding-top:.5rem;}
  .legal-toc__title{
    margin:0;cursor:pointer;
    display:flex;justify-content:space-between;align-items:center;
  }
  .legal-toc__title::after{
    content:'+';font-size:1.2rem;font-weight:300;
    color:var(--ink-2,#374151);
  }
  .legal-toc.is-open .legal-toc__title::after{content:'\2013';}
}

/* Print: drop TOC and contact card, show the policy clean */
@media print{
  .legal-toc,.legal-contact,.hdr,.foot,.topbar,.crumbs,.ti-top{display:none !important;}
  .legal-hero{background:transparent;border:0;padding:1rem 0 0;}
  .legal-body{padding:0;}
  .legal-grid{display:block;}
  .legal-prose{max-width:none;}
  .legal-prose h2{margin-top:1.8rem;page-break-after:avoid;}
  .legal-prose h3{page-break-after:avoid;}
  a{color:#000;text-decoration:none;}
}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
@media(max-width:980px){.post-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.post-grid{grid-template-columns:1fr;}}
.post-card{border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:all .35s var(--ease);}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.post-card__img{aspect-ratio:16/9;overflow:hidden;}
.post-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.post-card:hover .post-card__img img{transform:scale(1.05);}
.post-card__body{padding:1.4rem;display:flex;flex-direction:column;flex:1;}
.post-card__meta{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--muted);margin-bottom:.5rem;}
.post-card__body h3{font-size:1.12rem;margin-bottom:.5rem;}
.post-card__body p{font-size:.9rem;color:var(--muted);margin-bottom:1rem;}
.post-card__more{margin-top:auto;font-size:.86rem;font-weight:600;color:var(--blue);}
.ti-pagination{margin-top:2.6rem;}
.ti-pagination .nav-links{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;}
.ti-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 .6rem;border-radius:9px;border:1px solid var(--line);background:#fff;font-size:.9rem;font-weight:600;color:var(--ink-2);}
.ti-pagination .page-numbers:hover{border-color:var(--ink);}
.ti-pagination .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink);}
.notfound{text-align:center;max-width:560px;margin-inline:auto;padding:clamp(50px,8vw,110px) 0;}
.notfound__code{font-size:clamp(5rem,16vw,11rem);font-weight:800;letter-spacing:-0.05em;line-height:.9;background:linear-gradient(110deg,var(--blue),var(--red));-webkit-background-clip:text;background-clip:text;color:transparent;}
.notfound h1{font-size:clamp(1.6rem,3vw,2.4rem);margin:.6rem 0 .8rem;}
.notfound p{color:var(--muted);margin-bottom:1.6rem;}
.notfound__search{display:flex;justify-content:center;margin-bottom:1.6rem;}

/* --- Search form --- */
.ti-search{display:flex;gap:.5rem;width:100%;max-width:480px;}
.ti-search--center{margin-inline:auto;}
.ti-search input[type="search"]{flex:1;min-width:0;padding:.85rem 1.1rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);}
.ti-search input[type="search"]:focus{outline:2px solid var(--blue);outline-offset:1px;}
.ti-search button{padding:.85rem 1.4rem;border-radius:10px;background:var(--ink);color:#fff;font-weight:600;font-size:.95rem;white-space:nowrap;}
.ti-search button:hover{background:var(--ink-3);}

/* ==============================================================
   SITE-WIDE CTA MODAL  ("Schedule a Call" popup)
   Markup in template-parts/cta-modal.php — appended to footer.
   ============================================================== */
.cta-modal{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:2rem 1rem;
  opacity:0;pointer-events:none;
  transition:opacity .25s var(--ease);
}
.cta-modal[hidden]{display:none;}
.cta-modal.is-open{opacity:1;pointer-events:auto;}
.cta-modal__backdrop{
  position:absolute;inset:0;
  background:rgba(10,10,10,.6);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  cursor:pointer;
}
.cta-modal__card{
  position:relative;
  width:100%;max-width:560px;max-height:calc(100vh - 4rem);
  background:#fff;border-radius:var(--r-xl);
  box-shadow:0 40px 80px rgba(0,0,0,.25);
  overflow-y:auto;overflow-x:hidden;
  transform:translateY(20px) scale(.98);
  transition:transform .3s var(--ease);
}
.cta-modal.is-open .cta-modal__card{transform:translateY(0) scale(1);}
.cta-modal__close{
  position:absolute;top:1rem;right:1rem;
  width:36px;height:36px;border-radius:50%;
  background:var(--soft);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink);cursor:pointer;
  transition:all .2s var(--ease);z-index:2;
}
.cta-modal__close:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:rotate(90deg);}
.cta-modal__close svg{width:16px;height:16px;}
.cta-modal__head{padding:2.5rem 2rem 1.4rem;text-align:center;border-bottom:1px solid var(--line);}
.cta-modal__head .eyebrow{margin-bottom:1rem;}
.cta-modal__head h2{font-size:clamp(1.45rem,2.4vw,1.8rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-bottom:.75rem;}
.cta-modal__head h2 .italic{color:var(--red);}
.cta-modal__lede{font-size:.96rem;color:var(--muted);line-height:1.55;max-width:440px;margin:0 auto;}

/* Tabs — shown when both calendar embed + callback form are configured */
.cta-modal__tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem;
  padding:1rem 2rem 0;background:#fff;
}
.cta-modal__tab{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);color:var(--muted);
  font:inherit;font-size:.9rem;font-weight:600;letter-spacing:-.005em;
  cursor:pointer;transition:all .2s var(--ease);
}
.cta-modal__tab svg{width:16px;height:16px;flex-shrink:0;}
.cta-modal__tab:hover{color:var(--ink);border-color:var(--ink);}
.cta-modal__tab.is-active{
  background:var(--ink);color:#fff;border-color:var(--ink);
}
.cta-modal__tab.is-active:hover{background:var(--ink);color:#fff;}
.cta-modal__tab:focus-visible{outline:2px solid var(--red);outline-offset:2px;}

.cta-modal__body{padding:1.6rem 2rem 2rem;}

/* Tab panes — hidden by default, JS toggles .is-active */
.cta-modal__pane{display:none;}
.cta-modal__pane.is-active{display:block;}

/* Calendar embed container — gives iframe room to breathe and forces
   a sensible min-height so booking widgets render their date grid */
.cta-modal__embed{
  width:100%;min-height:580px;
  border-radius:10px;overflow:hidden;background:var(--surface);
}
.cta-modal__embed iframe{
  width:100%;min-height:580px;border:0;display:block;background:#fff;
}

/* Built-in fallback form (when no Fluent Form ID is configured) */
.cta-modal__form{display:flex;flex-direction:column;gap:1rem;}
.cta-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.cta-modal__form label{display:flex;flex-direction:column;gap:.4rem;}
.cta-modal__form label span{font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;}
.cta-modal__form input,
.cta-modal__form textarea{
  padding:.75rem .9rem;border:1px solid var(--line);border-radius:8px;
  font:inherit;font-size:.92rem;color:var(--ink);
  background:#fff;outline:none;transition:border .2s var(--ease);
}
.cta-modal__form input:focus,
.cta-modal__form textarea:focus{border-color:var(--ink);}
.cta-modal__form textarea{resize:vertical;min-height:80px;font-family:inherit;}
.cta-modal__actions{margin-top:.6rem;display:flex;flex-direction:column;align-items:center;gap:.7rem;}
.cta-modal__actions .btn{width:100%;justify-content:center;}
.cta-modal__privacy{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--muted);text-align:center;margin:0;letter-spacing:.02em;}

/* Body scroll lock while modal is open */
body.cta-modal-open{overflow:hidden;}

@media (max-width: 560px){
  .cta-modal{padding:0;}
  .cta-modal__card{max-height:100vh;border-radius:0;}
  .cta-modal__head{padding:2rem 1.4rem 1.2rem;}
  .cta-modal__tabs{padding:.9rem 1.4rem 0;gap:.4rem;}
  .cta-modal__tab{padding:.6rem .5rem;font-size:.82rem;}
  .cta-modal__tab svg{width:14px;height:14px;}
  .cta-modal__body{padding:1.4rem 1.4rem 2rem;}
  .cta-modal__row{grid-template-columns:1fr;}
  .cta-modal__embed,
  .cta-modal__embed iframe{min-height:520px;}
}

/* ==============================================================
   GET A QUOTE PAGE  (page-get-a-quote.php)
   ============================================================== */
.quote__hero{
  background:var(--surface);position:relative;overflow:hidden;
  padding:clamp(60px,7vw,110px) 0 clamp(45px,6vw,70px);
  border-bottom:1px solid var(--line);
}
.quote__hero::before{content:"";position:absolute;top:-200px;right:-100px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(25,118,210,.10),transparent 65%);filter:blur(20px);pointer-events:none;}
.quote__hero::after{content:"";position:absolute;bottom:-150px;left:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(229,57,53,.07),transparent 65%);filter:blur(20px);pointer-events:none;}
.quote__hero-inner{position:relative;text-align:center;}
.quote__crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin-bottom:2rem;}
.quote__crumbs a{color:var(--muted);}
.quote__crumbs .sep{margin:0 .55rem;opacity:.5;}
.quote__crumbs .current{color:var(--ink);font-weight:500;}
.quote__h1{font-size:clamp(2.4rem,5vw,4.2rem);font-weight:800;line-height:1.04;letter-spacing:-.035em;max-width:900px;margin:1.4rem auto 1.4rem;text-wrap:balance;}
.quote__h1 .italic{color:var(--red);}
.quote__lede{font-size:1.2rem;line-height:1.55;color:var(--muted);max-width:720px;margin:0 auto;}
.quote__hero-stats{display:flex;justify-content:center;gap:2.5rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line);max-width:740px;margin-left:auto;margin-right:auto;flex-wrap:wrap;}
.quote__hero-stats div{display:flex;flex-direction:column;align-items:center;}
.quote__hero-stats b{font-size:1.4rem;font-weight:800;letter-spacing:-.025em;}
.quote__hero-stats span{font-size:.72rem;font-family:'JetBrains Mono',monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.15rem;}

.quote__body{padding:clamp(50px,6vw,90px) 0;}
.quote__body-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:start;}
.quote__form-col{}
.quote__form-head{margin-bottom:2rem;}
.quote__form-h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:700;letter-spacing:-.025em;line-height:1.05;margin-bottom:.6rem;}
.quote__form-sub{font-size:.95rem;color:var(--muted);}

/* Fallback form styling */
.quote__form{display:flex;flex-direction:column;gap:1.6rem;}
.quote__group{border:none;display:flex;flex-direction:column;gap:.9rem;padding:1.4rem;background:var(--soft);border-radius:var(--r-lg);}
.quote__group legend{font-family:'JetBrains Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);font-weight:600;padding:0 .4rem;margin-left:-.4rem;}
.quote__row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.quote__form label{display:flex;flex-direction:column;gap:.4rem;}
.quote__form label span{font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;}
.quote__form input,
.quote__form select,
.quote__form textarea{
  padding:.75rem .9rem;border:1px solid var(--line);border-radius:8px;
  font:inherit;font-size:.92rem;color:var(--ink);
  background:#fff;outline:none;transition:border .2s var(--ease);
}
.quote__form input:focus,
.quote__form select:focus,
.quote__form textarea:focus{border-color:var(--ink);}
.quote__form textarea{resize:vertical;min-height:100px;font-family:inherit;}
.quote__actions{margin-top:.6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;}
.quote__privacy{font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--muted);margin:0;line-height:1.5;}

/* Trust column */
.quote__trust-col{display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:90px;}
.quote__trust-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;}
.quote__trust-card--soft{background:var(--soft);border-color:transparent;}
.quote__trust-card--ink{background:var(--ink);color:#fff;border-color:transparent;}
.quote__trust-h{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin-bottom:1rem;}
.quote__trust-card:not(.quote__trust-card--ink) .quote__trust-h{color:var(--red);}
.quote__trust-card--ink .quote__trust-h{color:var(--red-1);}
.quote__trust-list,.quote__process{list-style:none;display:flex;flex-direction:column;gap:.7rem;}
.quote__trust-list li{display:flex;flex-direction:column;gap:.15rem;}
.quote__trust-list b{font-size:.92rem;color:var(--ink);font-weight:600;}
.quote__trust-list span{font-size:.82rem;color:var(--muted);line-height:1.5;}
.quote__process li{font-size:.92rem;line-height:1.5;color:var(--ink);}
.quote__process b{color:var(--red);font-family:'JetBrains Mono',monospace;font-size:.78rem;margin-right:.4rem;font-weight:600;}
.quote__trust-meta{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.quote__trust-meta div{display:flex;flex-direction:column;}
.quote__trust-meta b{color:#fff;font-size:1.4rem;font-weight:800;letter-spacing:-.025em;}
.quote__trust-meta span{font-size:.72rem;font-family:'JetBrains Mono',monospace;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.06em;margin-top:.15rem;line-height:1.4;}

/* FAQ band */
.quote__faq{background:var(--soft);padding:clamp(50px,6vw,90px) 0;}
.quote__faq-head{text-align:center;margin-bottom:2.5rem;max-width:680px;margin-inline:auto;}
.quote__faq-h2{font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:700;letter-spacing:-.025em;margin-top:1rem;}
.quote__faq-h2 .italic{color:var(--red);}
.quote__faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:.7rem;}
.quote__faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
.quote__faq-item summary{
  padding:1.1rem 1.4rem;cursor:pointer;font-weight:600;font-size:1rem;
  list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--ink);
}
.quote__faq-item summary::-webkit-details-marker{display:none;}
.quote__faq-item summary::after{content:"+";font-size:1.3rem;color:var(--muted);font-weight:400;transition:transform .25s var(--ease);}
.quote__faq-item[open] summary::after{content:"−";}
.quote__faq-item p{padding:0 1.4rem 1.3rem;color:var(--muted);font-size:.95rem;line-height:1.6;margin:0;}

@media (max-width: 980px){
  .quote__body-grid{grid-template-columns:1fr;}
  .quote__trust-col{position:static;}
  .quote__row{grid-template-columns:1fr;}
  .quote__trust-meta{grid-template-columns:1fr;}
  .quote__hero-stats{gap:1.5rem;}
}

/* --- Blog single / page extras --- */
.page-head--center{text-align:center;}
.page-head--center .page-head__inner{max-width:760px;margin-inline:auto;}
.post-eyebrow{display:inline-flex;font-family:'JetBrains Mono',monospace;font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:.7rem;}
.post-meta{font-family:'JetBrains Mono',monospace;font-size:.82rem;color:var(--muted);margin-top:.9rem;display:flex;gap:.7rem;flex-wrap:wrap;}
.page-head--center .post-meta{justify-content:center;}
.post-feature{max-width:1000px;margin:clamp(28px,4vw,48px) auto 0;}
.post-feature img{width:100%;border-radius:var(--r-xl);}
.post-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);}
.post-tag{font-size:.78rem;font-family:'JetBrains Mono',monospace;padding:.35rem .75rem;border-radius:7px;background:var(--soft-2);color:var(--muted);}

/* ==============================================================
   Customizer — display toggles
   ============================================================== */
/* Top contact bar hidden: header rises to the top, content offset shrinks. */
body.ti-no-topbar .hdr{top:0;}
body.ti-no-topbar.admin-bar .hdr{top:32px;}
body.ti-no-topbar:not(.ti-page-home) .ti-main{padding-top:80px;}
body.ti-no-topbar.admin-bar:not(.ti-page-home) .ti-main{padding-top:80px;}
@media screen and (max-width:782px){
  body.ti-no-topbar.admin-bar .hdr{top:46px;}
  body.ti-no-topbar.admin-bar:not(.ti-page-home) .ti-main{padding-top:80px;}
}

/* Back-to-top button */
.ti-top{position:fixed;right:20px;bottom:20px;z-index:45;width:46px;height:46px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-lg);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s var(--ease),transform .3s var(--ease),background .2s var(--ease),visibility .3s;}
.ti-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.ti-top:hover{background:var(--red);}
.ti-top svg{width:20px;height:20px;}

/* ==============================================================
   Contact form — split layout + Fluent Forms re-skin
   ============================================================== */
.ti-contact-form{
  position:relative;overflow:hidden;
  padding:clamp(2.8rem,5vw,4.4rem) 0 clamp(2.8rem,5vw,4.4rem);
  background:
    radial-gradient(ellipse 60% 80% at 85% 0%,rgba(25,118,210,.10),transparent 60%),
    radial-gradient(ellipse 50% 70% at 10% 100%,rgba(229,57,53,.07),transparent 60%),
    linear-gradient(180deg,#f6f8fc 0%,#eef2f8 100%);
}
/* Subtle dot grid texture for tactile depth */
.ti-contact-form::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(15,23,42,.06) 1px,transparent 1.5px);
  background-size:22px 22px;
  mask-image:linear-gradient(180deg,transparent 0%,#000 25%,#000 75%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 25%,#000 75%,transparent 100%);
  opacity:.7;
}
/* Decorative glow overlays (kept on top of the dots for color) */
.ti-contact-form__glow{position:absolute;pointer-events:none;border-radius:50%;filter:blur(80px);}
.ti-contact-form__glow--blue{top:-25%;right:-12%;width:55%;height:130%;background:radial-gradient(ellipse,rgba(25,118,210,.18) 0%,transparent 65%);}
.ti-contact-form__glow--red{bottom:-30%;left:-10%;width:45%;height:100%;background:radial-gradient(ellipse,rgba(229,57,53,.12) 0%,transparent 65%);}
.ti-contact-form .container{position:relative;z-index:1;}
.ti-contact-form h2{font-size: clamp(2.5rem, 5.4vw, 4.6rem);}

.ti-contact-form__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;}
@media (max-width:900px){.ti-contact-form__grid{grid-template-columns:1fr;gap:2rem;align-items:start;}}

.ti-contact-form__intro h2{margin-bottom:1.2rem;}

.ti-contact-form__points{list-style:none;padding:0;margin:2rem 0 0;display:flex;flex-direction:column;gap:.95rem;}
.ti-contact-form__points li{display:flex;align-items:flex-start;gap:.85rem;color:var(--ink-2,#374151);font-size:.97rem;line-height:1.55;}
.ti-contact-form__check{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:rgba(25,118,210,.10);color:var(--blue,#1976D2);display:inline-flex;align-items:center;justify-content:center;margin-top:.1rem;}
.ti-contact-form__check svg{width:12px;height:12px;}

.ti-contact-form__alt{margin-top:2.2rem;padding-top:1.6rem;border-top:1px dashed var(--line,#e5e7eb);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;color:var(--muted,#6b7280);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;}
.ti-contact-form__alt-label{text-transform:uppercase;letter-spacing:.08em;}
.ti-contact-form__alt a{color:var(--ink,#0a0a14);font-weight:600;border-bottom:1px solid rgba(25,118,210,.3);transition:border-color .2s var(--ease);}
.ti-contact-form__alt a:hover{border-color:var(--blue,#1976D2);}
.ti-contact-form__alt-dot{opacity:.4;}

.ti-contact-form__card{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:18px;padding:clamp(1.6rem,3vw,2.4rem);box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px -12px rgba(15,23,42,.10);position:relative;}
.ti-contact-form__card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(25,118,210,.25),transparent 40%,rgba(229,57,53,.18) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5;}

/* ---------- Fluent Forms re-skin (scoped to .ti-contact-form__card) ---------- */
.ti-contact-form__card .fluentform .ff-el-group{margin-bottom:1.2rem;}
.ti-contact-form__card .fluentform .ff-el-input--label label,
.ti-contact-form__card .fluentform .ff-el-input--label > label{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2,#374151);margin-bottom:.5rem;display:inline-block;}
.ti-contact-form__card .fluentform .ff-el-input--label .ff-el-is-required.asterisk-right label:after,
.ti-contact-form__card .fluentform .ff-el-input--label label .ff-el-is-required.asterisk-right:after{color:var(--red,#E53935);}

.ti-contact-form__card .fluentform input[type="text"],
.ti-contact-form__card .fluentform input[type="email"],
.ti-contact-form__card .fluentform input[type="tel"],
.ti-contact-form__card .fluentform input[type="url"],
.ti-contact-form__card .fluentform input[type="number"],
.ti-contact-form__card .fluentform input[type="password"],
.ti-contact-form__card .fluentform input[type="date"],
.ti-contact-form__card .fluentform textarea,
.ti-contact-form__card .fluentform select,
.ti-contact-form__card .fluentform .ff-el-form-control{width:100%;padding:.85rem 1rem;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:#fff;color:var(--ink,#0a0a14);font:inherit;font-size:.97rem;line-height:1.45;box-shadow:none;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s var(--ease);}
.ti-contact-form__card .fluentform textarea{min-height:140px;resize:vertical;}
.ti-contact-form__card .fluentform input:focus,
.ti-contact-form__card .fluentform textarea:focus,
.ti-contact-form__card .fluentform select:focus,
.ti-contact-form__card .fluentform .ff-el-form-control:focus{outline:0;border-color:var(--blue,#1976D2);box-shadow:0 0 0 3px rgba(25,118,210,.14);background:#fff;}
.ti-contact-form__card .fluentform input::placeholder,
.ti-contact-form__card .fluentform textarea::placeholder{color:var(--muted,#9ca3af);}

/* Radio + checkbox lists */
.ti-contact-form__card .fluentform .ff-el-form-check,
.ti-contact-form__card .fluentform .ff_item_block label{display:inline-flex;align-items:center;gap:.5rem;font-size:.94rem;color:var(--ink-2,#374151);cursor:pointer;}
.ti-contact-form__card .fluentform .ff-el-form-check + .ff-el-form-check{margin-top:.45rem;}
.ti-contact-form__card .fluentform input[type="radio"],
.ti-contact-form__card .fluentform input[type="checkbox"]{accent-color:var(--blue,#1976D2);width:auto;}

/* Help / sub-label text */
.ti-contact-form__card .fluentform .ff-el-help-message{font-size:.82rem;color:var(--muted,#6b7280);margin-top:.4rem;}

/* Validation */
.ti-contact-form__card .fluentform .error,
.ti-contact-form__card .fluentform .text-danger{color:var(--red,#E53935);font-size:.82rem;margin-top:.35rem;}
.ti-contact-form__card .fluentform .ff-el-is-error input,
.ti-contact-form__card .fluentform .ff-el-is-error textarea,
.ti-contact-form__card .fluentform .ff-el-is-error select{border-color:var(--red,#E53935);box-shadow:0 0 0 3px rgba(229,57,53,.10);}

/* Submit button */
.ti-contact-form__card .fluentform .ff-btn,
.ti-contact-form__card .fluentform button[type="submit"]{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.95rem 1.5rem;border-radius:10px;background:var(--red,#E53935);color:#fff;font-weight:600;font-size:.97rem;letter-spacing:.005em;border:0;cursor:pointer;box-shadow:0 4px 14px -4px rgba(229,57,53,.45);transition:transform .15s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);width:auto;margin-top:.4rem;}
.ti-contact-form__card .fluentform .ff-btn:hover,
.ti-contact-form__card .fluentform button[type="submit"]:hover{background:#c8302c;transform:translateY(-1px);box-shadow:0 8px 22px -6px rgba(229,57,53,.55);}
.ti-contact-form__card .fluentform .ff-btn:focus-visible,
.ti-contact-form__card .fluentform button[type="submit"]:focus-visible{outline:2px solid var(--blue,#1976D2);outline-offset:2px;}

/* Step / multi-page progress bar */
.ti-contact-form__card .fluentform .ff-step-header,
.ti-contact-form__card .fluentform .ff-el-progress{background:transparent;}
.ti-contact-form__card .fluentform .ff-el-progress-bar{background:var(--blue,#1976D2);}

/* Success message */
.ti-contact-form__card .fluentform .ff-message-success,
.ti-contact-form__card .ff_submit_success_message{background:rgba(25,118,210,.06);border:1px solid rgba(25,118,210,.18);border-radius:12px;padding:1rem 1.2rem;color:var(--ink,#0a0a14);font-size:.97rem;}

/* Two-column rows that Fluent Forms emits for name/email split */
.ti-contact-form__card .fluentform .ff-t-container{gap:1rem;}
@media (max-width:600px){
  .ti-contact-form__card .fluentform .ff-t-container{flex-direction:column;}
  .ti-contact-form__card .fluentform .ff-t-cell{width:100% !important;flex:1 1 100% !important;}
}

/* ==============================================================
   Technology grid — service / case-study / hire pages
   ============================================================== */
.ti-tech__intro{max-width:680px;color:var(--ink-2,#374151);font-size:1.02rem;line-height:1.6;margin:.4rem 0 1.6rem;}
.ti-tech__groups{display:flex;flex-direction:column;gap:clamp(1.6rem,3vw,2.4rem);margin-top:2rem;}
.ti-tech__group{display:grid;grid-template-columns:200px 1fr;gap:clamp(1rem,3vw,2.4rem);align-items:start;padding-top:1.4rem;border-top:1px solid #9999992e;}
.ti-tech__group:first-child{border-top:0;padding-top:0;}
@media (max-width:780px){
  .ti-tech__group{grid-template-columns:1fr;gap:.8rem;}
}
.ti-tech__group-label{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--muted,#6b7280);margin:0;padding-top:.55rem;line-height:1.4;}
@media (max-width:780px){.ti-tech__group-label{padding-top:0;}}

.ti-tech__grid{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.65rem;}
.ti-tech__chip{
  --tech-color:rgba(25,118,210,.85);
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.55rem .9rem .55rem .65rem;
  background:#fff;border:1px solid var(--line,#e5e7eb);
  border-radius:999px;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease),background .18s var(--ease);
  cursor:default;user-select:none;
}
.ti-tech__chip:hover{
  border-color:var(--tech-color);
  box-shadow:0 6px 18px -8px rgba(15,23,42,.12),0 0 0 3px color-mix(in srgb,var(--tech-color) 12%,transparent);
  transform:translateY(-1px);
}
.ti-tech__logo{
  width:22px;height:22px;flex-shrink:0;object-fit:contain;
  background:transparent;display:block;
}
.ti-tech__logo--fallback{
  display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue,#1976D2),var(--red,#E53935));
  color:#fff;font-weight:700;font-size:.74rem;line-height:1;
}
.ti-tech__name{font-size:.93rem;font-weight:600;color:var(--ink,#0a0a14);letter-spacing:-.005em;line-height:1;}

/* Dark/inverted variant if dropped into a dark section in future */
.section--dark .ti-tech__chip,
.has-dark-bg .ti-tech__chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.10);}
.section--dark .ti-tech__chip:hover,
.has-dark-bg .ti-tech__chip:hover{background:rgba(255,255,255,.10);}
.section--dark .ti-tech__name,
.has-dark-bg .ti-tech__name{color:#fff;}
.section--dark .ti-tech__group-label,
.has-dark-bg .ti-tech__group-label{color:rgba(255,255,255,.55);}

/* ==============================================================
   Solution page — use-case chips + pricing/timeline split
   ============================================================== */
.ti-usecases{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.85rem 1.4rem;}
.ti-usecases__item{display:flex;align-items:flex-start;gap:.7rem;font-size:1rem;line-height:1.5;color:var(--ink,#0a0a14);padding:.5rem 0;}
.ti-usecases__tick{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:rgba(25,118,210,.10);color:var(--blue,#1976D2);display:inline-flex;align-items:center;justify-content:center;margin-top:.05rem;}
.ti-usecases__tick svg{width:12px;height:12px;}

.ti-delivery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;margin-top:2rem;}
.ti-delivery__card{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:16px;padding:1.6rem 1.8rem;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.ti-delivery__card::before{content:"";position:absolute;left:0;top:1.6rem;bottom:1.6rem;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--blue,#1976D2),var(--red,#E53935));}
.ti-delivery__label{display:inline-block;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted,#6b7280);margin-bottom:.4rem;}
.ti-delivery__body p{margin:.25rem 0;}
.ti-delivery__body ul{margin:.4rem 0 0;padding-left:1.2rem;}

/* ==============================================================
   Comparison page — TL;DR / table / criteria / when-cards
   ============================================================== */
.ti-tldr{
  background:linear-gradient(135deg,rgba(25,118,210,.05),rgba(229,57,53,.04));
  border:1px solid var(--line,#e5e7eb);
  border-left:4px solid var(--blue,#1976D2);
  border-radius:14px;padding:1.6rem 1.8rem;
  display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;
}
@media (max-width:680px){.ti-tldr{grid-template-columns:1fr;}}
.ti-tldr__label{display:inline-block;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue,#1976D2);margin-bottom:.5rem;grid-column:1;}
.ti-tldr__text{font-size:1.08rem;line-height:1.6;color:var(--ink,#0a0a14);margin:0;grid-column:1;}
.ti-tldr__winner{grid-column:2;grid-row:1 / span 2;text-align:right;padding-left:1.4rem;border-left:1px dashed var(--line,#e5e7eb);min-width:160px;}
@media (max-width:680px){.ti-tldr__winner{grid-column:1;grid-row:auto;text-align:left;padding-left:0;border-left:0;padding-top:1rem;border-top:1px dashed var(--line,#e5e7eb);}}
.ti-tldr__winner-label{display:block;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;letter-spacing:.10em;text-transform:uppercase;color:var(--muted,#6b7280);margin-bottom:.25rem;}
.ti-tldr__winner-name{font-size:1.25rem;font-weight:700;color:var(--ink,#0a0a14);}

/* Comparison table */
.ti-cmp-table-wrap{margin-top:1.6rem;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ti-cmp-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden;font-size:.97rem;}
.ti-cmp-table th,.ti-cmp-table td{padding:1rem 1.2rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line,#e5e7eb);}
.ti-cmp-table thead th{background:linear-gradient(180deg,#fafbfc,#f3f4f6);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink,#0a0a14);font-weight:700;border-bottom:1px solid var(--line,#e5e7eb);}
.ti-cmp-table tbody tr:last-child th,.ti-cmp-table tbody tr:last-child td{border-bottom:0;}
.ti-cmp-table tbody th{font-weight:600;color:var(--ink,#0a0a14);width:24%;background:#fafbfc;}
.ti-cmp-table tbody td{color:var(--ink-2,#374151);}
.ti-cmp-table__win{position:relative;background:var(--win-bg);font-weight:600;color:var(--ink,#0a0a14);}
.ti-cmp-table__win::after{content:"★";display:inline-block;margin-left:.45rem;color:var(--win-bd,#1976D2);font-weight:700;}
.ti-cmp-table__note{margin-top:.85rem;font-size:.85rem;color:var(--muted,#6b7280);font-style:italic;}

/* Detailed criteria */
.ti-cmp-criteria{display:flex;flex-direction:column;gap:1.4rem;margin-top:1.6rem;}
.ti-cmp-criterion{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:1.6rem 1.8rem;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.ti-cmp-criterion__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;border-bottom:1px solid var(--line,#e5e7eb);padding-bottom:.8rem;flex-wrap:wrap;}
.ti-cmp-criterion__head h3{margin:0;font-size:1.2rem;line-height:1.35;}
.ti-cmp-criterion__winner{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;letter-spacing:.05em;color:var(--muted,#6b7280);background:rgba(25,118,210,.06);padding:.35rem .7rem;border-radius:999px;white-space:nowrap;}
.ti-cmp-criterion__winner strong{color:var(--blue,#1976D2);font-weight:700;}
.ti-cmp-criterion__body{font-size:1rem;line-height:1.65;color:var(--ink-2,#374151);}
.ti-cmp-criterion__body p{margin:.5rem 0;}

/* When to choose cards */
.ti-cmp-when{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;margin-top:2rem;}
.ti-cmp-when__card{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:1.6rem 1.8rem;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.ti-cmp-when__card h3{margin:0 0 .8rem;font-size:1.15rem;line-height:1.35;color:var(--ink,#0a0a14);}
.ti-cmp-when__card header{padding-bottom:.6rem;border-bottom:2px solid var(--blue,#1976D2);margin-bottom:.8rem;}
.ti-cmp-when__body{color:var(--ink-2,#374151);font-size:.97rem;line-height:1.6;}
.ti-cmp-when__body p{margin:.5rem 0;}
.ti-cmp-when__body ul{margin:.5rem 0 0;padding-left:1.2rem;}
.ti-cmp-when__body li{margin-bottom:.35rem;}

/* Migration block */
.ti-cmp-migration{max-width:780px;color:var(--ink-2,#374151);font-size:1.02rem;line-height:1.7;margin-top:1.4rem;}
.ti-cmp-migration p{margin:.5rem 0 1rem;}
.ti-cmp-migration ol,.ti-cmp-migration ul{padding-left:1.4rem;}

/* ==============================================================
   Resource page — cover, author card, gated form
   ============================================================== */
.ti-resource__cover{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px -20px rgba(15,23,42,.25);transform:rotate(-2deg);transition:transform .4s var(--ease);}
.ti-resource__cover:hover{transform:rotate(0);}
.ti-resource__cover img{width:100%;height:auto;display:block;}
.ti-resource__gate{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:1.6rem 1.8rem;box-shadow:0 6px 20px -10px rgba(15,23,42,.15);}

.ti-resource__author{display:grid;grid-template-columns:96px 1fr;gap:1.4rem;align-items:center;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:1.4rem 1.6rem;max-width:760px;}
@media (max-width:600px){.ti-resource__author{grid-template-columns:64px 1fr;gap:1rem;}}
.ti-resource__author-photo{width:96px;height:96px;border-radius:50%;object-fit:cover;}
@media (max-width:600px){.ti-resource__author-photo{width:64px;height:64px;}}
.ti-resource__author-body strong{display:block;font-size:1.05rem;color:var(--ink,#0a0a14);}
.ti-resource__author-role{display:block;font-size:.85rem;color:var(--muted,#6b7280);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;margin-top:.15rem;}
.ti-resource__author-body p{margin:.6rem 0 0;font-size:.95rem;line-height:1.6;color:var(--ink-2,#374151);}

/* ==============================================================
   Landing page — hero with form, proof, sticky CTA, no-nav option
   ============================================================== */
/* Hide site nav on no-nav landing pages */
body.ti-landing--no-nav .hdr .nav,
body.ti-landing--no-nav .hdr__cta{display:none !important;}
body.ti-landing--no-nav .hdr__bar{justify-content:flex-start;}

/* Landing-page hero with form on the right */
.ti-lp-hero{padding-bottom:1rem;}
.ti-lp-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:clamp(2rem,4vw,3.5rem);align-items:start;}
@media (max-width:900px){.ti-lp-hero__grid{grid-template-columns:1fr;}}
.ti-lp-hero__copy h1{font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.1;}
.ti-lp-hero__usps{list-style:none;padding:0;margin:1.8rem 0 0;display:flex;flex-direction:column;gap:.75rem;}
.ti-lp-hero__usps li{display:flex;align-items:flex-start;gap:.7rem;font-size:1rem;line-height:1.5;color:var(--ink,#0a0a14);}
.ti-lp-hero__tick{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--red,#E53935);color:#fff;display:inline-flex;align-items:center;justify-content:center;}
.ti-lp-hero__tick svg{width:11px;height:11px;}

.ti-lp-hero__form{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:18px;padding:1.8rem;box-shadow:0 8px 30px -12px rgba(15,23,42,.18);position:sticky;top:120px;}
@media (max-width:900px){.ti-lp-hero__form{position:static;}}
.ti-lp-hero__form-head{margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:1px solid var(--line,#e5e7eb);}
.ti-lp-hero__form-label{display:block;font-weight:700;font-size:1.05rem;color:var(--ink,#0a0a14);}
.ti-lp-hero__form-note{margin:.35rem 0 0;font-size:.88rem;color:var(--muted,#6b7280);}
.ti-lp-hero__calendly iframe{display:block;border:0;border-radius:10px;}

/* Inherit our Fluent Forms re-skin inside the LP hero form too */
.ti-lp-hero__form .fluentform input[type="text"],
.ti-lp-hero__form .fluentform input[type="email"],
.ti-lp-hero__form .fluentform input[type="tel"],
.ti-lp-hero__form .fluentform input[type="url"],
.ti-lp-hero__form .fluentform input[type="number"],
.ti-lp-hero__form .fluentform textarea,
.ti-lp-hero__form .fluentform select,
.ti-lp-hero__form .fluentform .ff-el-form-control{width:100%;padding:.8rem 1rem;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:#fff;color:var(--ink,#0a0a14);font:inherit;font-size:.95rem;}
.ti-lp-hero__form .fluentform input:focus,
.ti-lp-hero__form .fluentform textarea:focus,
.ti-lp-hero__form .fluentform select:focus,
.ti-lp-hero__form .fluentform .ff-el-form-control:focus{outline:0;border-color:var(--blue,#1976D2);box-shadow:0 0 0 3px rgba(25,118,210,.14);}
.ti-lp-hero__form .fluentform .ff-btn,
.ti-lp-hero__form .fluentform button[type="submit"]{display:block;width:100%;padding:.95rem 1.5rem;border-radius:10px;background:var(--red,#E53935);color:#fff;font-weight:600;font-size:1rem;border:0;cursor:pointer;box-shadow:0 4px 14px -4px rgba(229,57,53,.45);transition:transform .15s var(--ease),background .2s var(--ease);}
.ti-lp-hero__form .fluentform .ff-btn:hover,
.ti-lp-hero__form .fluentform button[type="submit"]:hover{background:#c8302c;transform:translateY(-1px);}

/* Proof section — case + testimonials */
.ti-lp-proof{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.6rem;align-items:start;margin-top:1.6rem;}
@media (max-width:900px){.ti-lp-proof{grid-template-columns:1fr;}}
.ti-lp-proof__case{display:block;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04);transition:transform .25s var(--ease),box-shadow .25s var(--ease);text-decoration:none;color:inherit;}
.ti-lp-proof__case:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(15,23,42,.15);}
.ti-lp-proof__case-img{aspect-ratio:16/9;background:#f3f4f6;overflow:hidden;}
.ti-lp-proof__case-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ti-lp-proof__case-body{padding:1.4rem 1.6rem;}
.ti-lp-proof__case-body h3{margin:.5rem 0 .5rem;font-size:1.25rem;line-height:1.3;}
.ti-lp-proof__case-body p{margin:0 0 1rem;color:var(--ink-2,#374151);font-size:.97rem;line-height:1.6;}
.ti-lp-proof__metrics{display:flex;flex-wrap:wrap;gap:1.6rem;padding-top:1rem;border-top:1px solid var(--line,#e5e7eb);}
.ti-lp-proof__metrics > div{display:flex;flex-direction:column;}
.ti-lp-proof__metrics strong{font-size:1.4rem;font-weight:700;color:var(--blue,#1976D2);}
.ti-lp-proof__metrics span{font-size:.78rem;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.06em;margin-top:.15rem;}

.ti-lp-proof__quotes{display:flex;flex-direction:column;gap:1rem;}
.ti-lp-proof__quote{background:#fff;border:1px solid var(--line,#e5e7eb);border-left:3px solid var(--red,#E53935);border-radius:10px;padding:1.2rem 1.4rem;margin:0;}
.ti-lp-proof__quote p{margin:0;font-size:.98rem;line-height:1.55;color:var(--ink-2,#374151);font-style:italic;}
.ti-lp-proof__quote cite{display:block;font-style:normal;margin-top:.8rem;font-size:.86rem;}
.ti-lp-proof__quote cite strong{display:block;color:var(--ink,#0a0a14);}
.ti-lp-proof__quote cite span{display:block;color:var(--muted,#6b7280);}

.ti-lp-pricing{max-width:780px;margin-top:1.6rem;color:var(--ink-2,#374151);font-size:1.02rem;line-height:1.7;}
.ti-lp-pricing p{margin:.5rem 0 1rem;}
.ti-lp-pricing ul{padding-left:1.2rem;}

/* Sticky CTA — appears at bottom of viewport */
.ti-lp-sticky{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:50;display:inline-flex;align-items:center;gap:.5rem;background:var(--red,#E53935);color:#fff;font-weight:600;font-size:.95rem;padding:.85rem 1.4rem;border-radius:999px;box-shadow:0 8px 30px -8px rgba(229,57,53,.55);text-decoration:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);}
.ti-lp-sticky:hover{background:#c8302c;transform:translateX(-50%) translateY(-2px);box-shadow:0 14px 36px -10px rgba(229,57,53,.65);}
@media (max-width:600px){.ti-lp-sticky{left:14px;right:14px;transform:none;width:auto;justify-content:center;}.ti-lp-sticky:hover{transform:translateY(-2px);}}

/* ==============================================================
   Hire Talent archive — Option 5 hero + role cards
   ============================================================== */
/* Centred hero with avatars + live availability strip */
.hire-hero{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(25,118,210,.08),transparent 60%),
    linear-gradient(180deg,#fff 0%,#fafbfc 100%);
  position:relative;overflow:hidden;
  padding:clamp(2.5rem,5vw,4rem) 0 clamp(2.5rem,5vw,3.6rem);
}
.hire-hero__inner{max-width:980px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem);text-align:center;position:relative;}

/* Crumbs centred (no background — sits on the gradient) */
.hire-hero__crumbs{display:inline-flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem;background:transparent;padding:0;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;letter-spacing:.02em;color:var(--muted,#6b7280);}
.hire-hero__crumbs a{color:var(--muted,#6b7280);text-decoration:none;transition:color .15s var(--ease);}
.hire-hero__crumbs a:hover{color:var(--ink,#0a0a14);}
.hire-hero__crumbs .sep{opacity:.4;}
.hire-hero__crumbs .current{color:var(--ink,#0a0a14);font-weight:500;}

/* Avatar cluster */
.hire-hero__avatars{display:flex;justify-content:center;margin-bottom:1.4rem;}
.hire-hero__avatar{
  width:48px;height:48px;border-radius:50%;border:3px solid #fff;
  box-shadow:0 4px 12px -4px rgba(0,0,0,.15);
  display:inline-flex;align-items:center;justify-content:center;
  font-weight:700;color:var(--ink,#0a0a14);font-size:.9rem;
  margin-left:-12px;position:relative;
}
.hire-hero__avatar:first-child{margin-left:0;}
.hire-hero__avatar--v1{background:linear-gradient(135deg,#fef3c7,#fde68a);}
.hire-hero__avatar--v2{background:linear-gradient(135deg,#dbeafe,#bfdbfe);}
.hire-hero__avatar--v3{background:linear-gradient(135deg,#fce7f3,#fbcfe8);}
.hire-hero__avatar--v4{background:linear-gradient(135deg,#d1fae5,#a7f3d0);}
.hire-hero__avatar--v5{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);}
.hire-hero__avatar--count{
  background:var(--ink,#0a0a14);color:#fff;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.78rem;
}
/* Green "live" pulse on the first avatar */
.hire-hero__avatar--live::after{
  content:"";position:absolute;right:-2px;bottom:-2px;
  width:14px;height:14px;border-radius:50%;background:#22c55e;
  border:3px solid #fff;box-shadow:0 0 0 4px rgba(34,197,94,.18);
}

/* Headline + lede */
.hire-hero h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:800;line-height:1.05;letter-spacing:-.025em;margin:.6rem auto 1.2rem;max-width:780px;}
.hire-hero__lede{font-size:1.1rem;color:var(--ink-2,#374151);max-width:600px;margin:0 auto 1.8rem;line-height:1.6;}

/* CTAs */
.hire-hero__cta{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:2.2rem;}

/* Live availability strip */
.hire-hero__strip{
  display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
  max-width:880px;margin:0 auto;
  background:#fff;border:1px solid var(--line,#e5e7eb);
  border-radius:16px;
  padding:1rem 1.4rem;
  box-shadow:0 12px 30px -16px rgba(15,23,42,.14);
  text-align:left;
}
.hire-hero__strip-live{display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0;}
.hire-hero__pulse{
  display:inline-block;width:10px;height:10px;border-radius:50%;background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.18);
  animation:hire-pulse 2.4s cubic-bezier(.66,0,0,1) infinite;
}
@keyframes hire-pulse{
  0%   {box-shadow:0 0 0 0  rgba(34,197,94,.55);}
  70%  {box-shadow:0 0 0 12px rgba(34,197,94,0);}
  100% {box-shadow:0 0 0 0  rgba(34,197,94,0);}
}
.hire-hero__strip-text{display:flex;flex-direction:column;gap:.05rem;}
.hire-hero__strip-text strong{font-size:1rem;font-weight:700;color:var(--ink,#0a0a14);line-height:1.1;}
.hire-hero__strip-text small{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.06em;color:var(--muted,#6b7280);text-transform:uppercase;}

.hire-hero__strip-roles{display:flex;flex-wrap:wrap;gap:.45rem;flex:1;justify-content:flex-end;}
.hire-hero__role{
  display:inline-flex;align-items:center;gap:.5rem;
  background:var(--soft-2,#fafbfc);border:1px solid var(--line,#e5e7eb);
  border-radius:999px;padding:.4rem .85rem;font-size:.82rem;color:var(--ink-2,#374151);
  text-decoration:none;
  transition:border-color .15s var(--ease),color .15s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease);
}
.hire-hero__role:hover{border-color:var(--blue,#1976D2);color:var(--blue,#1976D2);transform:translateY(-1px);box-shadow:0 4px 12px -6px rgba(25,118,210,.25);}
.hire-hero__role b{color:var(--ink,#0a0a14);font-weight:700;}
.hire-hero__role-num{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:#22c55e;font-weight:700;}

/* Inline stats footer */
.hire-hero__inline{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:.6rem 1.4rem;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.84rem;color:var(--muted,#6b7280);
  margin:1.8rem 0 0;padding:1.6rem 0 .2rem;
  border-top:1px solid var(--line,#e5e7eb);
}
.hire-hero__inline span b{color:var(--ink,#0a0a14);font-weight:700;}
.hire-hero__inline .pip{opacity:.3;}

/* Mobile tuning */
@media (max-width:760px){
  .hire-hero__strip{flex-direction:column;align-items:flex-start;}
  .hire-hero__strip-roles{justify-content:flex-start;}
}

/* ==============================================================
   Hire single page hero — mirrors archive Option 5 aesthetic
   Centred layout, role avatar with pulse, compact stats strip
   ============================================================== */
.hire-single-hero{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(25,118,210,.08),transparent 60%),
    linear-gradient(180deg,#fff 0%,#fafbfc 100%);
  position:relative;overflow:hidden;
  padding:clamp(2rem,4vw,3.6rem) 0 clamp(2.5rem,5vw,3.6rem);
}
.hire-single-hero__inner{
  max-width:900px;margin:0 auto;
  padding:0 clamp(1rem,3vw,2rem);
  text-align:center;position:relative;
}

/* Integrated breadcrumb on the same gradient (no separate strip) */
.hire-single-hero__crumbs{
  display:flex;justify-content:center;align-items:center;flex-wrap:wrap;
  gap:.5rem;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.78rem;letter-spacing:.02em;
  color:var(--muted,#6b7280);
  margin:0 0 1.8rem;
}
.hire-single-hero__crumbs a{color:var(--muted,#6b7280);text-decoration:none;transition:color .15s var(--ease);}
.hire-single-hero__crumbs a:hover{color:var(--ink,#0a0a14);}
.hire-single-hero__crumbs .sep{opacity:.4;}
.hire-single-hero__crumbs .current{color:var(--ink,#0a0a14);font-weight:500;}

/* Single role avatar — bigger than the archive cluster */
.hire-single-hero__avatar-wrap{display:flex;justify-content:center;margin-bottom:1.4rem;}
.hire-single-hero__avatar{
  width:80px;height:80px;border-radius:50%;border:4px solid #fff;
  background:linear-gradient(135deg,rgba(25,118,210,.10),rgba(229,57,53,.06));
  box-shadow:0 8px 24px -8px rgba(15,23,42,.18);
  display:inline-flex;align-items:center;justify-content:center;
  position:relative;color:var(--ink,#0a0a14);
}
.hire-single-hero__avatar img{width:48px;height:48px;object-fit:contain;}
.hire-single-hero__avatar span{font-size:2rem;font-weight:800;letter-spacing:-.02em;}
.hire-single-hero__avatar--live::after{
  content:"";position:absolute;right:0;bottom:2px;
  width:18px;height:18px;border-radius:50%;background:#22c55e;
  border:3px solid #fff;
  animation:hire-pulse 2.4s cubic-bezier(.66,0,0,1) infinite;
}

/* Headline + lede */
.hire-single-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:800;line-height:1.05;letter-spacing:-.025em;margin:.6rem auto 1.1rem;max-width:780px;}
.hire-single-hero__lede{font-size:1.08rem;color:var(--ink-2,#374151);max-width:600px;margin:0 auto 1.6rem;line-height:1.6;}

/* CTAs */
.hire-single-hero__cta{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:2rem;}

/* Live availability strip — single-role variant */
.hire-single-hero__strip{
  display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap;
  max-width:780px;margin:0 auto;
  background:#fff;border:1px solid var(--line,#e5e7eb);
  border-radius:16px;padding:1rem 1.4rem;
  box-shadow:0 12px 30px -16px rgba(15,23,42,.14);
  text-align:left;
}
.hire-single-hero__strip-live{display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0;min-width:0;}
.hire-single-hero__strip-text{display:flex;flex-direction:column;gap:.05rem;min-width:0;}
.hire-single-hero__strip-text strong{font-size:1rem;font-weight:700;color:var(--ink,#0a0a14);line-height:1.15;}
.hire-single-hero__strip-text small{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.06em;color:var(--muted,#6b7280);text-transform:uppercase;}

.hire-single-hero__strip-stats{display:flex;gap:1.6rem;flex-wrap:wrap;}
.hire-single-hero__stat{display:flex;flex-direction:column;}
.hire-single-hero__stat dt{
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;font-weight:600;letter-spacing:.08em;
  color:var(--muted,#6b7280);text-transform:uppercase;
  margin:0 0 .2rem;
}
.hire-single-hero__stat dd{
  margin:0;font-size:1rem;font-weight:700;
  color:var(--ink,#0a0a14);line-height:1.2;letter-spacing:-.005em;
}
.hire-single-hero__stat dd span{font-size:.74rem;color:var(--muted,#6b7280);font-weight:500;margin-left:.1rem;}

/* Inline stats footer */
.hire-single-hero__inline{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:.6rem 1.4rem;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.82rem;color:var(--muted,#6b7280);
  margin:1.8rem 0 0;padding:1.6rem 0 .2rem;
  border-top:1px solid var(--line,#e5e7eb);
}
.hire-single-hero__inline span b{color:var(--ink,#0a0a14);font-weight:700;}
.hire-single-hero__inline .pip{opacity:.3;}

/* Mobile reflow */
@media (max-width:680px){
  .hire-single-hero__strip{flex-direction:column;align-items:flex-start;}
  .hire-single-hero__avatar{width:64px;height:64px;}
  .hire-single-hero__avatar img{width:38px;height:38px;}
  .hire-single-hero__avatar span{font-size:1.6rem;}
}

/* ==============================================================
   Locations — single office hero + cards, archive grid
   ============================================================== */

/* Single office hero */
.loc-hero{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(25,118,210,.08),transparent 60%),
    linear-gradient(180deg,#fff 0%,#fafbfc 100%);
  position:relative;overflow:hidden;
  padding:clamp(2rem,4vw,3.4rem) 0 clamp(2rem,4vw,3rem);
}
.loc-hero__inner{max-width:900px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem);text-align:center;position:relative;}
.loc-hero__crumbs{display:inline-flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem;margin:0 0 1.6rem;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;letter-spacing:.02em;color:var(--muted,#6b7280);}
.loc-hero__crumbs a{color:var(--muted,#6b7280);text-decoration:none;transition:color .15s var(--ease);}
.loc-hero__crumbs a:hover{color:var(--ink,#0a0a14);}
.loc-hero__crumbs .sep{opacity:.4;}
.loc-hero__crumbs .current{color:var(--ink,#0a0a14);font-weight:500;}

.loc-hero__flag{display:block;font-size:3.4rem;line-height:1;margin-bottom:.6rem;}
.loc-hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:800;line-height:1.05;letter-spacing:-.025em;margin:.4rem auto 1rem;max-width:780px;}
.loc-hero__lede{font-size:1.08rem;color:var(--ink-2,#374151);max-width:640px;margin:0 auto 1.6rem;line-height:1.6;}
.loc-hero__cta{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;}

/* Office contact grid */
.loc-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-auto-rows:auto;
  gap:1.4rem;
  margin-top:1rem;
}
.loc-card{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:1.5rem 1.6rem;box-shadow:0 1px 3px rgba(0,0,0,.04);position:relative;}
.loc-card--map{grid-column:1 / -1;padding:0;overflow:hidden;}
@media (max-width:780px){.loc-grid{grid-template-columns:1fr;}.loc-card--map{grid-column:auto;}}

.loc-card__head{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--line,#e5e7eb);}
.loc-card__head h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.005em;color:var(--ink,#0a0a14);}
.loc-card__ic{width:32px;height:32px;border-radius:8px;background:rgba(25,118,210,.08);color:var(--blue,#1976D2);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.loc-card__ic svg{width:18px;height:18px;}

.loc-card__address{font-style:normal;color:var(--ink-2,#374151);font-size:.97rem;line-height:1.55;margin:0 0 1rem;}
.loc-card__contact{margin:0;padding:.8rem 0 0;border-top:1px dashed var(--line,#e5e7eb);display:flex;flex-direction:column;gap:.5rem;}
.loc-card__contact > div{display:grid;grid-template-columns:90px 1fr;align-items:baseline;gap:.6rem;}
.loc-card__contact dt{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6b7280);margin:0;}
.loc-card__contact dd{margin:0;font-size:.94rem;color:var(--ink,#0a0a14);}
.loc-card__contact dd a{color:var(--ink,#0a0a14);text-decoration:none;border-bottom:1px solid rgba(25,118,210,.3);transition:border-color .15s var(--ease);}
.loc-card__contact dd a:hover{border-color:var(--blue,#1976D2);}

.loc-card__hours{width:100%;border-collapse:collapse;font-size:.96rem;}
.loc-card__hours th,.loc-card__hours td{padding:.55rem 0;text-align:left;border-bottom:1px solid var(--soft,#f3f4f6);}
.loc-card__hours tr:last-child th,.loc-card__hours tr:last-child td{border-bottom:0;}
.loc-card__hours th{font-weight:600;color:var(--ink,#0a0a14);width:40%;}
.loc-card__hours td{color:var(--ink-2,#374151);}
.loc-card__hours tr.is-closed td{color:var(--muted,#6b7280);font-style:italic;}

.loc-card__map iframe{display:block;border-radius:14px;}
.loc-card__photo{width:100%;height:auto;display:block;border-radius:14px;}

/* "Other offices" footer row on single location */
.loc-other{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem;}
.loc-other__card{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:12px;text-decoration:none;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease);}
.loc-other__card:hover{transform:translateY(-2px);box-shadow:0 8px 22px -10px rgba(15,23,42,.15);border-color:rgba(25,118,210,.35);}
.loc-other__flag{font-size:1.8rem;line-height:1;flex-shrink:0;}
.loc-other__card h3{margin:0;font-size:1.02rem;font-weight:700;color:var(--ink,#0a0a14);}
.loc-other__team{display:block;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:var(--muted,#6b7280);margin-top:.15rem;}
.loc-other__arr{margin-left:auto;color:var(--blue,#1976D2);font-size:1.2rem;font-weight:700;transition:transform .2s var(--ease);}
.loc-other__card:hover .loc-other__arr{transform:translateX(3px);}

/* ==============================================================
   Locations archive — "Our Offices" listing
   ============================================================== */
.loc-archive-hero{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(25,118,210,.08),transparent 60%),
    linear-gradient(180deg,#fff 0%,#fafbfc 100%);
  position:relative;overflow:hidden;
  padding:clamp(2.5rem,5vw,4rem) 0 clamp(2.5rem,5vw,3.6rem);
}
.loc-archive-hero__inner{max-width:980px;margin:0 auto;padding:0 clamp(1rem,3vw,2rem);text-align:center;position:relative;}
.loc-archive-hero h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:800;line-height:1.05;letter-spacing:-.025em;margin:.6rem auto 1.2rem;}
.loc-archive-hero__lede{font-size:1.1rem;color:var(--ink-2,#374151);max-width:680px;margin:0 auto 2rem;line-height:1.6;}
.loc-archive-hero__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem 2rem;margin-top:1.6rem;padding:1.6rem 0 0;border-top:1px dashed var(--line,#e5e7eb);}
.loc-archive-hero__stats > div{display:flex;flex-direction:column;align-items:center;text-align:center;}
.loc-archive-hero__stats strong{font-size:1.55rem;font-weight:700;color:var(--ink,#0a0a14);letter-spacing:-.01em;line-height:1.1;}
.loc-archive-hero__stats span{font-size:.82rem;color:var(--muted,#6b7280);font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;margin-top:.3rem;}

.loc-archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1.4rem;margin-top:2rem;}
.loc-archive-card{
  background:#fff;border:1px solid var(--line,#e5e7eb);
  border-radius:16px;padding:1.5rem 1.6rem;
  display:flex;flex-direction:column;gap:1rem;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
}
.loc-archive-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(15,23,42,.16);border-color:rgba(25,118,210,.35);}

.loc-archive-card__head{display:flex;align-items:center;gap:.9rem;padding-bottom:.9rem;border-bottom:1px solid var(--line,#e5e7eb);}
.loc-archive-card__flag{font-size:2rem;line-height:1;flex-shrink:0;}
.loc-archive-card__head h3{margin:0;font-size:1.18rem;line-height:1.25;letter-spacing:-.005em;}
.loc-archive-card__head h3 a{color:var(--ink,#0a0a14);}
.loc-archive-card__head h3 a:hover{color:var(--blue,#1976D2);}
.loc-archive-card__badge{display:inline-block;margin-top:.3rem;padding:.18rem .55rem;background:linear-gradient(135deg,rgba(25,118,210,.12),rgba(229,57,53,.10));color:var(--blue,#1976D2);border-radius:999px;font-size:.7rem;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}

.loc-archive-card__address{font-style:normal;font-size:.93rem;line-height:1.55;color:var(--ink-2,#374151);margin:0;}

.loc-archive-card__meta{margin:0;padding:.85rem 0;border-top:1px solid var(--line,#e5e7eb);border-bottom:1px solid var(--line,#e5e7eb);display:flex;flex-direction:column;gap:.4rem;}
.loc-archive-card__meta > div{display:grid;grid-template-columns:70px 1fr;align-items:baseline;gap:.6rem;}
.loc-archive-card__meta dt{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6b7280);margin:0;}
.loc-archive-card__meta dd{margin:0;font-size:.92rem;color:var(--ink,#0a0a14);}
.loc-archive-card__meta dd a{color:var(--ink,#0a0a14);text-decoration:none;border-bottom:1px solid rgba(25,118,210,.3);transition:border-color .15s var(--ease);}
.loc-archive-card__meta dd a:hover{border-color:var(--blue,#1976D2);}

.loc-archive-card__foot{margin-top:auto;}
.loc-archive-card__cta{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.94rem;color:var(--red,#E53935);text-decoration:none;letter-spacing:-.005em;}
.loc-archive-card__cta svg{width:13px;height:13px;transition:transform .2s var(--ease);}
.loc-archive-card__cta:hover svg{transform:translate(2px,-2px);}

/* ==============================================================
   Service single-page hero (Option 12)
   Centred editorial layout with consolidated Quick Answer + 4-stat card
   ============================================================== */
.svc-hero{
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(25,118,210,.08),transparent 60%),
    linear-gradient(180deg,#fff 0%,#fafbfc 100%);
  position:relative;overflow:hidden;
  padding:clamp(1.6rem,3vw,2.2rem) 0 clamp(2rem,4vw,2.8rem);
}
.svc-hero__inner{
  max-width:900px;margin:0 auto;
  padding:0 clamp(1rem,3vw,2rem);
  text-align:center;position:relative;
}

/* Breadcrumb — integrated on the same gradient */
.svc-hero__crumbs{
  display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:.5rem;margin:0 0 1.2rem;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.78rem;letter-spacing:.02em;color:var(--muted,#6b7280);
}
.svc-hero__crumbs a{color:var(--muted,#6b7280);text-decoration:none;transition:color .15s var(--ease);}
.svc-hero__crumbs a:hover{color:var(--ink,#0a0a14);}
.svc-hero__crumbs .sep{opacity:.4;}
.svc-hero__crumbs .current{color:var(--ink,#0a0a14);font-weight:500;}

/* Brand-gradient service icon */
.svc-hero__icon-wrap{display:flex;justify-content:center;margin-bottom:1.1rem;}
.svc-hero__icon{
  width:64px;height:64px;border-radius:16px;
  background:linear-gradient(135deg,var(--blue,#1976D2) 0%,var(--red,#E53935) 100%);
  display:inline-flex;align-items:center;justify-content:center;color:#fff;
  box-shadow:0 10px 26px -10px rgba(25,118,210,.5),0 4px 8px -4px rgba(229,57,53,.3);
}
.svc-hero__icon img{width:30px;height:30px;object-fit:contain;filter:brightness(0) invert(1);}
.svc-hero__icon svg{width:32px;height:32px;}

/* Headline + lede */
.svc-hero h1{font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:800;line-height:1.06;letter-spacing:-.025em;margin:.55rem auto 1rem;max-width:780px;}
.svc-hero__lede{font-size:1.08rem;color:var(--ink-2,#374151);max-width:620px;margin:0 auto 1.4rem;line-height:1.6;}

/* CTAs */
.svc-hero__cta{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.6rem;}

/* Consolidated Quick Answer + 4-stat card */
.svc-hero__card{
  max-width:840px;margin:0 auto;
  background:#fff;border:1px solid var(--line,#e5e7eb);
  border-radius:14px;
  box-shadow:0 10px 24px -16px rgba(15,23,42,.14);
  text-align:left;overflow:hidden;
}
/* Intro paragraph — clean lede that opens the card. This is the AEO snippet
   (quick_answer Carbon field) presented as readable prose, no visual label.
   Schema.php still emits it as a FAQPage Q/A invisibly. */
.svc-hero__intro{
  margin:0;
  padding:1.1rem 1.4rem 1rem;
  font-size:.96rem;line-height:1.6;
  color:var(--ink-2,#374151);
  text-align:left;
}

/* Stat row — defaults to 4 columns but adapts via inline `--svc-stat-cols`
 * when a template renders fewer (e.g. Solutions, which has 3 baseline
 * stats: Timeline / Pricing / Stack). Inline custom-property approach
 * keeps the mobile media query below working without !important. */
.svc-hero__stats{
  display:grid;grid-template-columns:repeat(var(--svc-stat-cols,4),1fr);gap:0;margin:0;
  border-top:1px solid var(--line,#e5e7eb);
}
.svc-hero__stats > div{padding:.85rem 1.1rem;border-right:1px solid var(--line,#e5e7eb);}
.svc-hero__stats > div:last-child{border-right:0;}
.svc-hero__stats dt{
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted,#6b7280);margin:0 0 .15rem;font-weight:600;
}
.svc-hero__stats dd{margin:0;font-size:.92rem;font-weight:700;color:var(--ink,#0a0a14);letter-spacing:-.005em;}

/* Mobile reflow */
@media (max-width:680px){
  .svc-hero__qa{grid-template-columns:1fr;text-align:left;gap:.7rem;}
  .svc-hero__stats{grid-template-columns:1fr 1fr;}
  .svc-hero__stats > div{border-right:0;border-bottom:1px solid var(--line,#e5e7eb);}
  .svc-hero__stats > div:nth-child(2n){border-right:0;}
  .svc-hero__stats > div:nth-child(odd){border-right:1px solid var(--line,#e5e7eb);}
  .svc-hero__stats > div:nth-last-child(-n+2){border-bottom:0;}
}

/* ==============================================================
   Mega menu — Services (Option 12)
   Three-column layout: parent tabs | sub-services | featured panel
   Featured panel has dark / light / off variants
   ============================================================== */

/* No position:relative on the trigger LI — we want the mega menu to anchor
   against the fixed-position .hdr (full viewport width) so it can centre
   itself in the page rather than under the trigger item. */

/* Mega menu container — hidden by default, shown on hover/focus.
   Positioned absolutely against .hdr (which is position:fixed, so it acts
   as a positioned ancestor for any non-positioned descendants). This lets
   the menu sit centred in the viewport regardless of which top-level
   nav item triggers it. */
.mega--services{
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%) translateY(8px);
  margin-top:8px;
  width:min(1200px,96vw);
  background:#fff;
  border:1px solid var(--line,#e5e7eb);
  border-radius:16px;
  box-shadow:0 24px 50px -20px rgba(15,23,42,.22),0 8px 16px -8px rgba(15,23,42,.12);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .18s var(--ease),transform .22s var(--ease),visibility .18s;
  z-index:60;overflow:hidden;
}
/* JS handles open/close with a hide-delay so the mouse can cross the gap
   between the trigger and the menu without it collapsing. The .is-open
   class is added/removed by JS based on mouseenter/leave + focusin/out. */
.mega--services.is-open{
  opacity:1;pointer-events:auto;visibility:visible;
  transform:translateX(-50%) translateY(0);
}

.mega__grid{display:grid;grid-template-columns:230px 1fr 260px;}

/* ---------- Left rail: parent tabs ---------- */
.mega__tabs{
  background:#fafbfc;border-right:1px solid var(--line,#e5e7eb);
  padding:.6rem;display:flex;flex-direction:column;gap:.2rem;
}
.mega__tab{
  display:flex;align-items:center;gap:.7rem;
  padding:.65rem .8rem;border-radius:8px;
  text-decoration:none;color:var(--ink,#0a0a14);font-weight:500;font-size:.92rem;
  transition:background .15s var(--ease),color .15s var(--ease);
  outline:none;
}
.mega__tab:hover,
.mega__tab:focus-visible{background:rgba(15,23,42,.04);}
.mega__tab.is-active{
  background:#fff;color:var(--ink,#0a0a14);
  box-shadow:0 1px 3px rgba(15,23,42,.06);
}
.mega__tab-ic{
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(25,118,210,.10),rgba(229,57,53,.06));
  color:var(--blue,#1976D2);
  display:inline-flex;align-items:center;justify-content:center;
}
.mega__tab-ic img{width:18px;height:18px;object-fit:contain;}
.mega__tab-ic svg{width:16px;height:16px;}
.mega__tab-label strong{display:block;font-weight:600;line-height:1.2;letter-spacing:-.005em;font-size:.92rem;color:inherit;}
.mega__tab-label small{display:block;font-size:.72rem;color:var(--muted,#6b7280);font-weight:400;margin-top:.1rem;}

/* ---------- Middle: sub-service panels (one per parent, only active shown) ---------- */
.mega__panels{position:relative;}
.mega__panel{
  padding:1.4rem 1.6rem;border-right:1px solid var(--line,#e5e7eb);
  height:100%;
}
.mega__panel[hidden]{display:none;}
.mega__panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:.85rem;margin-bottom:.9rem;
  border-bottom:1px solid var(--line,#e5e7eb);
}
.mega__panel-head h4{margin:0;font-size:1.02rem;letter-spacing:-.005em;color:var(--ink,#0a0a14);}
.mega__panel-head a{
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.74rem;font-weight:600;color:var(--red,#E53935);text-decoration:none;
}
.mega__panel-head a:hover{text-decoration:underline;}
.mega__sub{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .8rem;}
.mega__sub a{
  display:block;padding:.45rem .55rem;margin:0 -.55rem;
  border-radius:6px;
  color:var(--ink-2,#374151);text-decoration:none;
  font-size:.9rem;font-weight:500;line-height:1.3;
  transition:background .15s var(--ease),color .15s var(--ease);
}
.mega__sub a:hover{background:var(--soft,#f3f4f6);color:var(--blue,#1976D2);}
.mega__sub a small{display:block;font-size:.74rem;color:var(--muted,#6b7280);font-weight:400;margin-top:.1rem;}

/* ---------- Right: featured panels (only active shown) ---------- */
.mega__feats{position:relative;}
.mega__feat{
  padding:1.6rem 1.5rem;
  display:flex;flex-direction:column;justify-content:center;gap:.5rem;
  position:relative;overflow:hidden;
  height:100%;
}
.mega__feat[hidden]{display:none;}

/* OFF variant — collapse the right column entirely when this style is set on
   every parent. If only the active parent is OFF, the column stays sized for
   the others and the off-state renders as a transparent placeholder. */
.mega__feat--off{padding:0;background:transparent;}

/* Shared eyebrow + headline + description + CTA across dark + light */
.mega__feat-eyebrow{
  display:inline-flex;align-items:center;gap:.35rem;width:fit-content;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;font-weight:700;letter-spacing:.10em;text-transform:uppercase;
  padding:.3rem .7rem;border-radius:999px;margin:0 0 .8rem;
}
.mega__feat h4{margin:0 0 .55rem;font-size:1.2rem;line-height:1.2;letter-spacing:-.015em;font-weight:700;}
.mega__feat p{margin:0 0 1.1rem;font-size:.86rem;line-height:1.55;}
.mega__feat-cta{
  display:inline-flex;align-items:center;gap:.45rem;
  background:var(--red,#E53935);color:#fff;
  font-weight:600;font-size:.88rem;
  padding:.7rem 1.1rem;border-radius:8px;
  text-decoration:none;width:fit-content;
  transition:transform .15s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);
}
.mega__feat-cta svg{width:12px;height:12px;}
.mega__feat-cta:hover{background:#c8302c;transform:translateY(-1px);}

/* DARK variant */
.mega__feat--dark{
  background:linear-gradient(135deg,#0a0a14 0%,#15152a 60%,#1a1a2e 100%);
  color:#fff;
}
.mega__feat--dark::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 80% 10%,rgba(25,118,210,.45),transparent 60%),
    radial-gradient(ellipse 60% 50% at 15% 100%,rgba(229,57,53,.35),transparent 60%);
  filter:blur(40px);
}
.mega__feat--dark > *{position:relative;z-index:1;}
.mega__feat--dark .mega__feat-eyebrow{
  color:#90caf9;background:rgba(144,202,249,.12);border:1px solid rgba(144,202,249,.18);
}
.mega__feat--dark h4{color:#fff;}
.mega__feat--dark p{color:rgba(255,255,255,.72);}
.mega__feat--dark .mega__feat-cta{box-shadow:0 6px 18px -6px rgba(229,57,53,.55);}
.mega__feat--dark .mega__feat-cta:hover{box-shadow:0 10px 24px -8px rgba(229,57,53,.65);}

/* LIGHT variant */
.mega__feat--light{
  background:linear-gradient(180deg,#f6f8fc 0%,#eef2f8 100%);
  color:var(--ink,#0a0a14);
}
.mega__feat--light::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 70% 60% at 85% 10%,rgba(25,118,210,.18),transparent 60%),
    radial-gradient(ellipse 60% 50% at 10% 100%,rgba(229,57,53,.14),transparent 60%);
  filter:blur(40px);
}
.mega__feat--light > *{position:relative;z-index:1;}
.mega__feat--light .mega__feat-eyebrow{
  color:var(--blue,#1976D2);background:rgba(25,118,210,.08);border:1px solid rgba(25,118,210,.18);
}
.mega__feat--light h4{color:var(--ink,#0a0a14);}
.mega__feat--light p{color:var(--ink-2,#374151);}
.mega__feat--light .mega__feat-cta{box-shadow:0 6px 18px -6px rgba(229,57,53,.4);}
.mega__feat--light .mega__feat-cta:hover{box-shadow:0 10px 24px -8px rgba(229,57,53,.5);}

/* ---------- Mobile reflow (collapse to stacked accordion) ---------- */
@media (max-width:900px){
  .mega--services{
    position:static;transform:none;width:100%;margin-top:0;
    box-shadow:none;border:0;border-radius:0;border-top:1px solid var(--line,#e5e7eb);
  }
  .mega--services::before{display:none;}
  .mega__grid{grid-template-columns:1fr;}
  .mega__tabs{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line,#e5e7eb);}
  .mega__panel,.mega__feat{border-right:0;}
  .mega__sub{grid-template-columns:1fr;}
}

/* ==============================================================
   Mega menu — flat (Hire / Industries / Solutions)
   Same container/positioning + WIDTH as .mega--services so all four
   menus have a consistent footprint. Body is a 3-column card grid on
   the left + featured panel on the right.
   ============================================================== */
.mega--simple{
  position:absolute;
  left:50%;top:100%;
  transform:translateX(-50%) translateY(8px);
  margin-top:8px;
  width:min(1200px,96vw);
  background:#fff;
  border:1px solid var(--line,#e5e7eb);
  border-radius:16px;
  box-shadow:0 24px 50px -20px rgba(15,23,42,.22),0 8px 16px -8px rgba(15,23,42,.12);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .18s var(--ease),transform .22s var(--ease),visibility .18s;
  z-index:60;overflow:hidden;
}
/* JS-controlled open state — see main.js mega-menu hover handler. */
.mega--simple.is-open{
  opacity:1;pointer-events:auto;visibility:visible;
  transform:translateX(-50%) translateY(0);
}

.mega__simple-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;}
/* When featured panel is OFF, the grid collapses to a single column */
.mega__simple-grid:has(.mega__feat--off),
.mega__simple-grid:not(:has(.mega__feat)){grid-template-columns:1fr;}

/* LEFT — card grid (3 columns when there's room to breathe) */
.mega__cards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.4rem;
  padding:1.2rem;
  align-content:start;
}
/* Below ~720px of card area (small viewport), fall back to 2 columns */
@media (max-width:1080px){
  .mega__cards{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.mega__card{
  display:flex;align-items:flex-start;gap:.7rem;
  padding:.7rem .8rem;border-radius:10px;
  text-decoration:none;color:var(--ink,#0a0a14);
  transition:background .15s var(--ease),transform .15s var(--ease);
}
.mega__card:hover{background:var(--soft,#f3f4f6);transform:translateY(-1px);}
.mega__card-ic{
  width:34px;height:34px;border-radius:8px;flex-shrink:0;
  background:linear-gradient(135deg,rgba(25,118,210,.10),rgba(229,57,53,.06));
  color:var(--blue,#1976D2);
  display:inline-flex;align-items:center;justify-content:center;
}
.mega__card-ic img{width:18px;height:18px;object-fit:contain;}
.mega__card-ic svg{width:16px;height:16px;}
.mega__card-body strong{display:block;font-size:.93rem;font-weight:600;color:var(--ink,#0a0a14);line-height:1.2;letter-spacing:-.005em;}
.mega__card-body small{display:block;font-size:.77rem;color:var(--muted,#6b7280);font-weight:400;margin-top:.18rem;line-height:1.4;}
.mega__card-meta{
  display:inline-block;margin-top:.35rem;
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--blue,#1976D2);
  background:rgba(25,118,210,.08);
  padding:.18rem .5rem;border-radius:999px;
}

/* Mobile reflow */
@media (max-width:900px){
  .mega--simple{
    position:static;transform:none;width:100%;margin-top:0;
    box-shadow:none;border:0;border-radius:0;border-top:1px solid var(--line,#e5e7eb);
  }
  .mega--simple::before{display:none;}
  .mega__simple-grid{grid-template-columns:1fr;}
  .mega__cards{grid-template-columns:1fr;}
}

/* Role cards grid */
.hire-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1.4rem;margin-top:2rem;}

.hire-card{
  background:#fff;
  border:1px solid var(--line,#e5e7eb);
  border-radius:16px;
  padding:1.5rem 1.6rem 1.4rem;
  display:flex;flex-direction:column;gap:1.1rem;
  position:relative;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
}
.hire-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(15,23,42,.16);border-color:rgba(25,118,210,.35);}
.hire-card::before{content:"";position:absolute;left:0;top:1.5rem;bottom:1.5rem;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--blue,#1976D2),var(--red,#E53935));opacity:0;transition:opacity .25s var(--ease);}
.hire-card:hover::before{opacity:1;}

.hire-card__head{display:grid;grid-template-columns:48px 1fr;gap:1rem;align-items:flex-start;}
.hire-card__ic{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,rgba(25,118,210,.10),rgba(229,57,53,.06));display:inline-flex;align-items:center;justify-content:center;color:var(--blue,#1976D2);flex-shrink:0;}
.hire-card__ic img{width:30px;height:30px;object-fit:contain;}
.hire-card__ic svg{width:24px;height:24px;}
.hire-card__head h3{margin:0;font-size:1.18rem;line-height:1.3;letter-spacing:-.005em;}
.hire-card__head h3 a{color:var(--ink,#0a0a14);}
.hire-card__head h3 a:hover{color:var(--blue,#1976D2);}
.hire-card__sub{margin:.4rem 0 0;font-size:.93rem;line-height:1.55;color:var(--ink-2,#374151);}

.hire-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;}
.hire-card__tags span{font-size:.78rem;font-weight:500;background:var(--soft,#f3f4f6);color:var(--ink-2,#374151);padding:.28rem .65rem;border-radius:999px;letter-spacing:.005em;}

.hire-card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:0;padding:.85rem 0;border-top:1px solid var(--line,#e5e7eb);border-bottom:1px solid var(--line,#e5e7eb);}
.hire-card__stats > div{display:flex;flex-direction:column;}
.hire-card__stats dt{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--muted,#6b7280);margin:0 0 .2rem;}
.hire-card__stats dd{margin:0;font-size:.95rem;font-weight:700;color:var(--ink,#0a0a14);line-height:1.2;letter-spacing:-.005em;}
.hire-card__stats dd span{font-size:.74rem;color:var(--muted,#6b7280);font-weight:500;margin-left:.1rem;}

.hire-card__foot{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:auto;}
.hire-card__cta{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.94rem;color:var(--red,#E53935);text-decoration:none;letter-spacing:-.005em;}
.hire-card__cta svg{width:13px;height:13px;transition:transform .2s var(--ease);}
.hire-card__cta:hover svg{transform:translate(2px,-2px);}
.hire-card__quote{font-size:.86rem;color:var(--muted,#6b7280);text-decoration:none;border-bottom:1px dashed var(--muted,#6b7280);padding-bottom:1px;transition:color .2s var(--ease),border-color .2s var(--ease);}
.hire-card__quote:hover{color:var(--blue,#1976D2);border-bottom-color:var(--blue,#1976D2);}

/* ===============================================================
   EDITORIAL LAYOUT (Option G) — CPT-single visual overrides
   ---------------------------------------------------------------
   Activated by `body.layout-editorial`, which is added on every
   CPT single (ti_service / ti_industry / ti_hire / ti_engagement
   / ti_solution / ti_comparison / ti_location) when the admin
   selects "Editorial" under TI Settings → Display & Layout →
   Page Layout. Body class is set in inc/template-tags.php from
   the resolver ti_get_cpt_layout().

   This block only restyles the existing markup the templates
   already render — no headings, anchors, schema or content move,
   so SEO / AEO / GEO / AIO signals stay identical. To roll back,
   the admin just switches the option back to "Classic".

   Sections (top → bottom):
     • Hero       (.svc-hero, .svc-hero__card)
     • Section heads (.sec-head)
     • What we solve (.solve-card)
     • Offerings  (.offer)
     • Why us / USPs (.usp on .section--ink)
     • Process    (.proc-step)
     • Tech grid  (.ti-tech__*)
     • FAQ        (.faq-item)
     • Final CTA  (.pcta) — kept as-is; works in both modes
   =============================================================== */

/* ---------- Section rhythm — final palette ----------
   Backgrounds per section in editorial mode:
     Hero      = #FAFAF7 with gradient overlay
     Overview  = white   (default .section)
     Solve     = white
     Offerings = #FAFAF7 (inherits .section--soft)
     USPs      = black   (inherits .section--ink)
     Process   = white
     Tech      = #FAFAF7 (helper outputs .section--soft)
     Cases     = white
     Voices    = #FAFAF7 (template uses .section--soft)
     FAQ       = white
     Related   = #FAFAF7
     CTA       = black (.pcta)

   Globally the <body> has background:var(--soft) (cream) so any
   bare .section without a background inherits the cream. Inside
   editorial mode we want bare sections to read as WHITE — flipping
   the body bg covers most cases. Sections with explicit cream
   backgrounds (.section--soft, .compliance, .s-ov in classic CSS)
   need targeted overrides — listed below. Sections we WANT to keep
   their colored bg (.section--ink, .compliance) are left alone.
   ---------------------------------------------------------- */
body.layout-editorial{background:#fff;}
/* .s-ov has its own cream bg from the classic CSS at line ~336.
   Editorial wants Overview on plain white, so flip it back.    */
.layout-editorial .s-ov{background:#fff;}

/* ---------- Overview (.s-ov) — switch blue accents to red, tighten rhythm ---------- */
/* Grid starts at the LEFT edge of the .container (same as every
   other section's heading), so the aside aligns with the page rail
   instead of floating in the middle of the cream band. Body fills
   the remaining column width with no cap — matches the Option G
   mockup which uses `280px 1fr` with no body max-width.            */
.layout-editorial .s-ov__grid{
  grid-template-columns:minmax(0,280px) minmax(0,1fr);
  gap:clamp(2rem,4vw,4rem);
}
.layout-editorial .s-ov__body{max-width:none;}
.layout-editorial .s-ov__body p{font-size:1.08rem;line-height:1.75;}
.layout-editorial .s-ov__aside h2{font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:700;letter-spacing:-.025em;line-height:1.05;}
.layout-editorial .s-ov__aside h2 .italic{color:var(--red);}
.layout-editorial .s-ov__rule{
  background:var(--red);
  width:40px;height:2px;border-radius:0;
  margin:1.1rem 0 1rem;
}
.layout-editorial .s-ov__toc a:hover{color:var(--red);}
.layout-editorial .s-ov__toc-n{color:var(--red);}
.layout-editorial .s-ov__body > p:first-of-type{
  border-left-color:var(--red);
  font-size:1.18rem;color:var(--ink-2);font-weight:500;
}
.layout-editorial .s-ov__body h2::before{color:var(--red);}
.layout-editorial .s-ov__body a{
  color:var(--red);
  border-bottom:1px solid var(--red-soft);
}
.layout-editorial .s-ov__body a:hover{color:var(--red-2);border-bottom-color:var(--red);}
.layout-editorial .s-ov__body li::before{background:var(--red);}

/* ---------- Hero — dual radial glow on a cream #FAFAF7 base ----------
   Blue radial glow top-right + red radial glow bottom-left over a
   cream (var(--soft)) base. Same compositional move as .s-hero
   (engagement model) but tuned slightly stronger.

   Editorial drops the red-pale icon tile entirely so the hero
   leads with the eyebrow + headline (matches the user's spec
   screenshot). The breadcrumb gets a wider bottom margin to
   compensate for the removed icon spacer.                       */
.layout-editorial .svc-hero{
  padding:clamp(3rem,5vw,4.4rem) 0 clamp(3rem,5vw,4.2rem);
  background:var(--soft);
  position:relative;
  overflow:hidden;
}
.layout-editorial .svc-hero__icon-wrap{display:none;}
.layout-editorial .svc-hero__crumbs{
  margin:0 0 2.4rem;
}

/* ---------- Hire-talent hero (.hire-single-hero) — match svc-hero treatment ----------
   Cream base + dual radial glow so the hire single page hero
   has the same editorial feel as the service / industry pages.   */
.layout-editorial .hire-single-hero{
  background:var(--soft);
  position:relative;
  overflow:hidden;
  padding:clamp(3rem,5vw,4.4rem) 0 clamp(3rem,5vw,4.2rem);
}
.layout-editorial .hire-single-hero::before{
  content:"";
  position:absolute;
  top:-220px;
  right:-220px;
  width:780px;
  height:780px;
  background:radial-gradient(circle,rgba(25,118,210,0.14),transparent 65%);
  pointer-events:none;
  z-index:0;
}
.layout-editorial .hire-single-hero::after{
  content:"";
  position:absolute;
  bottom:-280px;
  left:-180px;
  width:640px;
  height:640px;
  background:radial-gradient(circle,rgba(229,57,53,0.10),transparent 65%);
  pointer-events:none;
  z-index:0;
}
.layout-editorial .hire-single-hero__inner{position:relative;z-index:1;}

/* ---------- Hire page section bg overrides ----------
   • Quick Answer section (.section containing .qa__inner) → cream
   • Tools/Tech section (.ti-tech)                        → compliance
     blue-pale → red-pale gradient (overrides .section--soft cream)
   ------------------------------------------------------------ */
.layout-editorial .section:has(.qa__inner){
  background:var(--soft);
}
.layout-editorial .ti-tech{
  background:linear-gradient(135deg,var(--blue-pale),var(--red-pale));
}
.layout-editorial .svc-hero::before{
  content:"";
  position:absolute;
  top:-220px;
  right:-220px;
  width:780px;
  height:780px;
  background:radial-gradient(circle,rgba(25,118,210,0.14),transparent 65%);
  pointer-events:none;
  z-index:0;
}
.layout-editorial .svc-hero::after{
  content:"";
  position:absolute;
  bottom:-280px;
  left:-180px;
  width:640px;
  height:640px;
  background:radial-gradient(circle,rgba(229,57,53,0.10),transparent 65%);
  pointer-events:none;
  z-index:0;
}
/* Lift the hero content above the glow pseudo-elements */
.layout-editorial .svc-hero__inner{position:relative;z-index:1;}
.layout-editorial .svc-hero__inner{max-width:980px;}
.layout-editorial .svc-hero__icon{
  background:var(--red-pale);
  border:1px solid var(--red-soft);
  box-shadow:none;color:var(--red);
}
.layout-editorial .svc-hero__icon img{filter:brightness(0) saturate(100%) invert(33%) sepia(73%) saturate(2698%) hue-rotate(341deg) brightness(96%) contrast(86%);}
.layout-editorial .svc-hero h1{
  font-size:clamp(2.4rem,5vw,4rem);
  font-weight:700;line-height:1.02;
  letter-spacing:-.035em;
  max-width:18ch;margin:.6rem auto 1.1rem;
}
.layout-editorial .svc-hero__lede{
  font-size:clamp(1.05rem,1.2vw,1.2rem);
  color:var(--ink-2);max-width:62ch;
  margin:0 auto 1.6rem;line-height:1.55;
}
.layout-editorial .svc-hero__cta{margin-bottom:2.4rem;}
.layout-editorial .svc-hero__card{
  max-width:880px;border-radius:16px;
  box-shadow:0 30px 60px -25px rgba(15,23,42,.12);
}
.layout-editorial .svc-hero__intro{
  padding:1.6rem 1.8rem 1.4rem;
  font-size:1.04rem;line-height:1.65;
}
.layout-editorial .svc-hero__stats > div{padding:1rem 1.2rem;}
.layout-editorial .svc-hero__stats dt{font-size:.7rem;letter-spacing:.12em;}
.layout-editorial .svc-hero__stats dd{
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;font-size:1.5rem;font-weight:400;
  letter-spacing:-.015em;line-height:1;
}

/* ---------- Section heads ---------- */
.layout-editorial .sec-head h2,
.layout-editorial .sec-head--center h2{
  font-weight:700;letter-spacing:-.035em;line-height:1.05;
}

/* ---------- What we solve ---------- */
.layout-editorial .solve-card{
  background:#fff;
  border:1px solid var(--line);
  border-left:3px solid var(--red);
  border-radius:0 12px 12px 0;
  padding:1.4rem 1.6rem;
}
.layout-editorial .solve-card:hover{
  background:#fff;border-color:var(--line);
  border-left-color:var(--red);
  box-shadow:0 20px 40px -20px rgba(15,23,42,.12);
}
.layout-editorial .solve-card__x{
  background:transparent;color:var(--red);
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;font-size:1.8rem;font-weight:400;
  width:auto;height:auto;padding-top:.1rem;line-height:.9;
}

/* ---------- Offerings ---------- */
.layout-editorial .offer__ic{
  background:var(--red-pale);
  color:var(--red);
  width:48px;height:48px;border-radius:12px;
}
.layout-editorial .offer__ic img{filter:none;}
.layout-editorial .offer__link{color:var(--red);}

/* ---------- USP cards — context-aware ----------
   .usp markup is reused in three places: the dark "Why us" section
   (.section--ink), the white Hiring Process, and white Sample
   Profiles. Card layout is identical; text/border colors flip
   based on whether the parent .section is dark or light.        */
.layout-editorial .usp__grid{grid-template-columns:repeat(3,1fr);gap:.85rem;}
.layout-editorial .usp{
  display:flex;flex-direction:column;gap:.4rem;
  padding:1rem 1.15rem 1.05rem;
  border-radius:10px;
  transition:background .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.layout-editorial .usp > div{flex:1;}
.layout-editorial .usp__n{
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;font-weight:400;
  font-size:1.5rem;line-height:.85;
  color:var(--red);padding:0;
  margin-bottom:.1rem;
}

/* Light-section variant — Hiring Process, Sample Profiles, etc. */
.layout-editorial .section:not(.section--ink) .usp{
  border:1px solid var(--line);
  background:#fff;
}
.layout-editorial .section:not(.section--ink) .usp:hover{
  border-color:var(--ink);
  transform:translateY(-2px);
  box-shadow:0 20px 40px -20px rgba(15,23,42,.12);
}
.layout-editorial .section:not(.section--ink) .usp h3{
  color:var(--ink);font-size:.98rem;letter-spacing:-.01em;
  margin-bottom:.2rem;line-height:1.25;
}
.layout-editorial .section:not(.section--ink) .usp p{
  color:var(--muted);font-size:.85rem;line-height:1.5;
}

/* Dark-section variant — .section--ink "Why teams choose us" */
.layout-editorial .section--ink .usp{
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.03);
}
.layout-editorial .section--ink .usp:hover{
  background:rgba(255,255,255,.06);
  transform:translateY(-2px);
}
.layout-editorial .section--ink .usp h3{
  color:#fff;font-size:.98rem;letter-spacing:-.01em;
  margin-bottom:.2rem;line-height:1.25;
}
.layout-editorial .section--ink .usp p{
  color:rgba(255,255,255,.7);font-size:.85rem;line-height:1.5;
}
@media(max-width:980px){.layout-editorial .usp__grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.layout-editorial .usp__grid{grid-template-columns:1fr;}}

/* ---------- USP — icon-chip variant (3-up cards on dark band) ----------
   Used by single-ti_engagement.php "What's Included" section. Same .usp
   pattern as the service "Why us" grid, but with a red square checkmark
   icon and subtle dark card backgrounds for definition.

   Placed AFTER the editorial USP block so this variant wins by cascade
   order — when the body has class .layout-editorial, that rule sets
   flex-direction:column on .usp, which would stack the icon above the
   text. Same specificity (2 classes vs .usp.usp--ic = 2 classes), so
   source order decides the winner. This must stay below the editorial
   block. */
.usp__grid--ic-3{grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:980px){.usp__grid--ic-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.usp__grid--ic-3{grid-template-columns:1fr;}}
.usp.usp--ic{
  display:flex;
  flex-direction:row;
  align-items:flex-start;
  gap:1rem;
  padding:1.3rem 1.4rem;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  transition:background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);
}
.usp.usp--ic:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);transform:translateY(-2px);}
.usp.usp--ic > div{flex:1;min-width:0;}
.usp__ic{
  flex-shrink:0;width:46px;height:46px;border-radius:12px;
  background:var(--red);color:#fff;
  display:grid;place-items:center;
}
.usp__ic svg{width:22px;height:22px;}
.usp.usp--ic h3{color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:-.015em;margin:0 0 .35rem;line-height:1.25;}
.usp.usp--ic p{color:rgba(255,255,255,.7);font-size:.92rem;line-height:1.55;margin:0;}

/* ---------- Engagement Process — enhanced horizontal stepper ----------
   Used by single-ti_engagement.php "How It Runs" section. Four columns,
   each with: italic-serif timeline marker ("Day 1", "+5 days", "Ongoing"),
   filled brand-gradient circle, content card with title + description.
   A horizontal gradient line connects the circles (red → grey suggesting
   progress completion). Last step gets a dashed-outline circle. */
.fl-sec{position:relative;overflow:hidden;}
.fl-sec::before{
  content:"";position:absolute;top:-150px;right:-100px;
  width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,rgba(25,118,210,.06),transparent 65%);
  pointer-events:none;
}
.fl-sec::after{
  content:"";position:absolute;bottom:-150px;left:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(229,57,53,.05),transparent 65%);
  pointer-events:none;
}
.fl-sec > *{position:relative;}

.fl{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1150px;margin:0 auto;}
.fl::before{
  content:"";position:absolute;
  top:calc(1.6rem + 1.6rem);  /* timeline marker + half circle */
  left:12.5%;right:12.5%;
  height:2px;
  background:linear-gradient(90deg,var(--red) 0%,var(--red) 30%,var(--line) 60%,var(--line) 100%);
  z-index:0;border-radius:2px;
}
.fl-step{position:relative;z-index:1;padding:0 .8rem;text-align:center;}
.fl-step__when{
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;
  font-size:1.05rem;color:var(--red);
  line-height:1;margin-bottom:.9rem;letter-spacing:-.01em;
}
.fl-step__n{
  position:relative;
  width:3.2rem;height:3.2rem;border-radius:50%;
  background:linear-gradient(135deg,var(--red),#c62828);
  color:#fff;
  font-family:'JetBrains Mono',monospace;font-weight:700;font-size:.9rem;
  display:grid;place-items:center;
  margin:0 auto 1.4rem;
  box-shadow:0 0 0 8px var(--soft),0 14px 26px -10px rgba(229,57,53,.45);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
.fl-step:hover .fl-step__n{
  transform:translateY(-3px) scale(1.05);
  box-shadow:0 0 0 8px var(--soft),0 22px 36px -12px rgba(229,57,53,.55);
}
.fl-step__body{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:1.2rem 1.2rem 1.3rem;
  transition:border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
}
.fl-step:hover .fl-step__body{
  border-color:var(--ink);transform:translateY(-3px);
  box-shadow:0 18px 40px -22px rgba(15,23,42,.18);
}
.fl-step__title{font-size:1.05rem;font-weight:700;letter-spacing:-.015em;margin-bottom:.4rem;line-height:1.25;}
.fl-step__desc{font-size:.9rem;color:var(--muted);line-height:1.6;margin:0;}

/* Final "ongoing" step — dashed-outline circle marks "this continues". */
.fl-step--ongoing .fl-step__n{
  background:#fff;border:2px dashed var(--red);color:var(--red);
  box-shadow:0 0 0 8px var(--soft);
}
.fl-step--ongoing:hover .fl-step__n{
  box-shadow:0 0 0 8px var(--soft),0 18px 32px -12px rgba(229,57,53,.3);
}
.fl-step--ongoing .fl-step__when{color:var(--ink);}

@media(max-width:980px){
  .fl{grid-template-columns:repeat(2,1fr);gap:2rem 1.2rem;}
  .fl::before{display:none;}
}
@media(max-width:580px){
  .fl{grid-template-columns:1fr;gap:2rem;}
}

/* ---------- Process — tight cards, italic numerals ---------- */
.layout-editorial .proc{
  grid-template-columns:repeat(3,1fr);
  gap:.85rem;
}
.layout-editorial .proc-step{
  padding:1rem 1.15rem 1.05rem;
  background:var(--off-white);
  border:1px solid var(--line);
  border-radius:10px;
  transition:all .25s var(--ease);
}
.layout-editorial .proc-step:not(:last-child){border-right:1px solid var(--line);}
.layout-editorial .proc-step:first-child,
.layout-editorial .proc-step:last-child{border-radius:10px;}
.layout-editorial .proc-step:hover{
  border-color:var(--ink);transform:translateY(-2px);
}
.layout-editorial .proc-step__n{
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;font-weight:400;
  font-size:1.5rem;line-height:.85;
  color:var(--red);margin-bottom:.45rem;
}
.layout-editorial .proc-step h4{font-size:.96rem;letter-spacing:-.01em;margin-bottom:.25rem;line-height:1.25;}
.layout-editorial .proc-step p{font-size:.83rem;color:var(--muted);line-height:1.5;}
@media(max-width:980px){.layout-editorial .proc{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.layout-editorial .proc{grid-template-columns:1fr;}}

/* ---------- Tech grid — centered stacked groups, pill chips ---------- */
.layout-editorial .ti-tech .sec-head{text-align:center;margin-inline:auto;}
.layout-editorial .ti-tech__groups{
  display:flex;flex-direction:column;
  gap:1.6rem;margin-top:1.6rem;
  align-items:center;
}
.layout-editorial .ti-tech__group{
  display:flex;flex-direction:column;align-items:center;gap:.8rem;
  grid-template-columns:none;
  padding-top:0;border-top:0;
  width:100%;max-width:880px;
}
.layout-editorial .ti-tech__group-label{
  padding-top:0;text-align:center;
  font-size:.7rem;letter-spacing:.16em;
}
.layout-editorial .ti-tech__grid{
  justify-content:center;gap:.8rem;
}
.layout-editorial .ti-tech__chip{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.7rem 1.2rem;
  transition:all .2s var(--ease);
}
.layout-editorial .ti-tech__chip:hover{
  border-color:var(--ink);
  transform:translateY(-2px);
  box-shadow:0 8px 20px -10px rgba(15,23,42,.18);
}

/* ---------- FAQ — flat hairline list with red + / × toggle ---------- */
.layout-editorial .faq{max-width:780px;margin-inline:auto;}
.layout-editorial .faq-item{
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  margin-bottom:0;
  box-shadow:none;
  overflow:visible;
  transition:none;
}
.layout-editorial .faq-item:last-child{border-bottom:1px solid var(--line);}
.layout-editorial .faq-item.is-open{
  border-color:var(--line);
  border-top-color:var(--line);
  border-bottom-color:var(--line);
  box-shadow:none;
}
.layout-editorial .faq-q{
  padding:1.5rem 0;
  font-weight:600;
  font-size:1.08rem;
  letter-spacing:-.01em;
  background:transparent;
}
.layout-editorial .faq-q__ic{
  background:transparent;
  width:22px;height:22px;
  border:0;
}
.layout-editorial .faq-q__ic::before,
.layout-editorial .faq-q__ic::after{
  background:var(--red);width:14px;height:2px;border-radius:1px;
}
.layout-editorial .faq-item.is-open .faq-q__ic{background:transparent;}
.layout-editorial .faq-item.is-open .faq-q__ic::before,
.layout-editorial .faq-item.is-open .faq-q__ic::after{background:var(--red);}
.layout-editorial .faq-a p{
  padding:0 0 1.5rem;
  max-width:72ch;
  font-size:.98rem;
  line-height:1.7;
  color:var(--muted);
}

/* ---------- Final CTA (.pcta) — INTENTIONALLY unchanged ----------
   The closing "Let's scope your project" CTA keeps the Classic dark
   band with aurora glow + gradient italic accent in both modes.
   User explicitly asked for this section to stay identical.
   ---------------------------------------------------------------- */

/* ---------- Hire-talent hero — match red-pale icon treatment ---------- */
.layout-editorial .hire-card__ic,
.layout-editorial .hire-hero__icon{
  background:var(--red-pale);
  color:var(--red);
}

/* ---------- Engagement / Solution / Comparison heros (.s-hero) ---------- */
.layout-editorial .s-hero h1{font-weight:700;letter-spacing:-.035em;}
.layout-editorial .s-hero__lede{font-size:clamp(1.05rem,1.2vw,1.2rem);color:var(--ink-2);}

/* ===============================================================
   END EDITORIAL LAYOUT
   =============================================================== */

/* ===============================================================
   OUR TEAM PAGE — templates/team.php
   ---------------------------------------------------------------
   Option 4 (Leadership Mosaic) implementation. All classes are
   `tm-*` prefixed so they don't collide with anything else.
   Sections (top → bottom): hero, stats strip, leadership 3-up,
   mosaic + composition, sector mix bars, voices, careers CTA.
   =============================================================== */

/* ---------- Hero (fills one fold below the header — Option 4 mockup) ----
   .ti-main already pads 118px to clear the fixed header, so the hero
   only needs to fill `100svh - 118px` to occupy exactly one viewport
   under the topbar. Content sits at the top — breadcrumbs hug the
   header, then eyebrow / H1 / lede / CTAs flow downward. The cream
   background + corner gradients fill the rest of the fold. */
.tm-hero{
  box-sizing:border-box;
  min-height:calc(100svh - 118px);
  padding:clamp(3rem,5vw,4.4rem) 0 clamp(3rem,5vw,4.2rem);
  background:var(--soft);
  position:relative;
  overflow:hidden;
  text-align:center;
}
.tm-hero > .container{width:100%;}
.tm-hero::before{
  content:"";position:absolute;
  top:-220px;right:-220px;width:780px;height:780px;
  background:radial-gradient(circle,rgba(25,118,210,0.14),transparent 65%);
  pointer-events:none;
}
.tm-hero::after{
  content:"";position:absolute;
  bottom:-280px;left:-180px;width:640px;height:640px;
  background:radial-gradient(circle,rgba(229,57,53,0.10),transparent 65%);
  pointer-events:none;
}
.tm-hero .container{position:relative;z-index:1;}
.tm-hero__crumbs{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--muted);margin-bottom:1.6rem;
  display:flex;gap:.5rem;align-items:center;justify-content:center;flex-wrap:wrap;
}
.tm-hero__crumbs a{color:var(--muted);}
.tm-hero__crumbs a:hover{color:var(--red);}
.tm-hero__crumbs .sep{color:var(--muted-2);}
.tm-hero__crumbs .current{color:var(--ink);}
.tm-hero .eyebrow{margin-bottom:1rem;}
.tm-hero .container{width:100%;}
.tm-hero__h1{
  font-size:clamp(42px,5.6vw,76px);
  font-weight:700;letter-spacing:-.04em;line-height:1.04;
  max-width:22ch;margin:0 auto;
}
.tm-hero__h1 .italic{color:var(--red);}
.tm-hero__lede{
  margin:2.8rem auto;max-width:62ch;
  font-size:clamp(16px,1.15vw,19px);color:var(--ink-2);line-height:1.5;
}
.tm-hero__cta{
  margin-top:1.6rem;display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;
}

/* ---------- Stats strip (under hero, on white) ---------- */
.tm-stats{
  padding:2rem 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.tm-stats__row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
}
.tm-stats__row > div{
  padding:0 1.5rem;border-right:1px solid var(--line);text-align:center;
}
.tm-stats__row > div:last-child{border-right:0;}
.tm-stats__row dt{
  font-family:'JetBrains Mono',monospace;font-size:.68rem;
  text-transform:uppercase;letter-spacing:.14em;color:var(--muted);
  margin-bottom:.4rem;
}
.tm-stats__row dd{
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;
  font-size:2.2rem;color:var(--ink);line-height:1;letter-spacing:-.02em;
}

/* ---------- Shared section + heading ----------
   .tm-sec defaults to a white background so it reads as distinct from
   the cream body. Use .tm-sec--soft for the alternating cream rows. */
.tm-sec{padding:clamp(70px,8vw,120px) 0;background:#fff;}
.tm-sec--soft{background:var(--soft);}
.tm-sec--ink{background:var(--ink);color:#fff;}
.tm-sec-head{margin-bottom:3rem;max-width:720px;}
.tm-sec-head--center{text-align:center;margin-inline:auto;}
.tm-sec-head .eyebrow{margin-bottom:1rem;}
.tm-sec-head h2{
  font-size:clamp(36px,4.2vw,60px);
  font-weight:700;letter-spacing:-.035em;line-height:1.05;
}
.tm-sec-head h2 .italic{color:var(--red);}
.tm-sec-head p{
  margin-top:1rem;color:var(--muted);
  font-size:1.05rem;max-width:62ch;
}
.tm-sec-head--center p{margin-inline:auto;}

/* ---------- Leadership cards (3-up horizontal: photo left, body right) ---------- */
.tm-leaders{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;
}
.tm-leader{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;
  display:flex;flex-direction:row;align-items:stretch;
  transition:all .25s var(--ease);
}
.tm-leader:hover{
  transform:translateY(-3px);
  box-shadow:0 30px 60px -25px rgba(0,0,0,.15);
  border-color:var(--ink);
}
.tm-leader__photo{
  flex:0 0 38%;align-self:stretch;
  background:linear-gradient(135deg,var(--ink-3),var(--ink));
  overflow:hidden;
}
.tm-leader__photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .35s var(--ease);
}
.tm-leader:hover .tm-leader__photo img{transform:scale(1.03);}
.tm-leader__body{
  flex:1 1 auto;
  padding:1.3rem 1.3rem 1.2rem;
  display:flex;flex-direction:column;gap:.5rem;
  min-width:0;
}
.tm-leader__role{
  font-family:'JetBrains Mono',monospace;font-size:.66rem;
  text-transform:uppercase;letter-spacing:.14em;color:var(--red);font-weight:600;
}
.tm-leader__name{
  font-size:1.25rem;letter-spacing:-.02em;line-height:1.12;font-weight:700;
  margin:.1rem 0 .2rem;
}
.tm-leader__name .italic{color:var(--red);}
.tm-leader__bio{
  font-size:.88rem;color:var(--muted);line-height:1.55;flex:1;margin:0;
}
.tm-leader__foot{
  margin-top:.8rem;padding-top:.8rem;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:.55rem;
}
.tm-leader__meta{
  display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;
  font-size:.72rem;color:var(--muted);
  font-family:'Instrument Serif',Georgia,serif;
}
.tm-leader__meta span:first-child{
  color:var(--red);font-style:italic;font-size:1rem;
}
.tm-leader__meta span:nth-child(2){
  font-family:'Inter',sans-serif;font-style:normal;font-size:.78rem;
  padding-left:.7rem;border-left:1px solid var(--line);
}
.tm-leader__social{display:flex;gap:.4rem;}
.tm-leader__social a{
  width:26px;height:26px;border-radius:50%;background:var(--soft);
  display:grid;place-items:center;color:var(--muted);transition:all .2s;
}
.tm-leader__social a:hover{background:var(--red);color:#fff;}
.tm-leader__social svg{width:11px;height:11px;}

/* Drop to 2-up below 1100px (cards become cramped at 3-up horizontal) */
@media (max-width:1100px){
  .tm-leaders{grid-template-columns:repeat(2,1fr);}
}
/* Stack vertically on small screens for readability */
@media (max-width:640px){
  .tm-leaders{grid-template-columns:1fr;}
  .tm-leader{flex-direction:column;}
  .tm-leader__photo{flex-basis:auto;aspect-ratio:16/10;}
}

/* ============================================================
   .tg-* — CPT-driven team grid (3 sections on Our Team page)
   Used by template-parts/inner/team-grid.php. The section uses
   the shared .section / .section--soft + .sec-head wrappers, so
   only the card + grid styling lives here.
   ============================================================ */
.tg{display:grid;gap:1.6rem;max-width:1180px;margin:0 auto;}
.tg--cols-3{grid-template-columns:repeat(3,1fr);max-width:1080px;}
.tg--cols-4{grid-template-columns:repeat(4,1fr);gap:1.2rem;max-width:1180px;}

.tg-card{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.tg-card:hover{
  transform:translateY(-3px);border-color:var(--ink);
  box-shadow:0 24px 50px -28px rgba(15,23,42,.2);
}

/* Photo — square, with brand-gradient fallback when missing */
.tg-card__photo{
  aspect-ratio:1/1;
  background:linear-gradient(135deg,#dbe7f5 0%,#e8e2ef 50%,#f9d9d2 100%);
  overflow:hidden;position:relative;
}
.tg-card__photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.tg-card:hover .tg-card__photo img{transform:scale(1.04);}
.tg-card__initials{
  position:absolute;inset:0;display:grid;place-items:center;
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;
  font-size:4rem;color:rgba(15,23,42,.32);letter-spacing:-.02em;
}

/* Body */
.tg-card__body{padding:1.3rem 1.4rem 1.5rem;flex:1;display:flex;flex-direction:column;}
.tg-card__name{font-size:1.1rem;font-weight:700;letter-spacing:-.015em;line-height:1.25;margin-bottom:.15rem;color:var(--ink);}
.tg-card__role{
  font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:.8rem;
}
.tg-card__bio{font-size:.9rem;color:var(--muted);line-height:1.55;margin-bottom:1rem;flex:1;}
.tg-card__socials{display:flex;gap:.5rem;padding-top:.85rem;border-top:1px solid var(--line);}
.tg-card__social{
  width:30px;height:30px;border-radius:7px;display:grid;place-items:center;
  color:var(--ink-2);background:var(--soft);border:1px solid var(--line);
  transition:all .2s var(--ease);
}
.tg-card__social:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.tg-card__social svg{width:13px;height:13px;}

/* Denser card variant for the wider Team Members (4-up) section */
.tg--cols-4 .tg-card__body{padding:1.1rem 1.2rem 1.3rem;}
.tg--cols-4 .tg-card__name{font-size:1rem;}
.tg--cols-4 .tg-card__role{font-size:.66rem;margin-bottom:.55rem;}
.tg--cols-4 .tg-card__bio{font-size:.85rem;margin-bottom:.85rem;line-height:1.5;}

/* Responsive — keep readable column counts at narrower widths */
@media (max-width:980px){
  .tg--cols-4{grid-template-columns:repeat(3,1fr);}
  .tg--cols-3{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .tg{grid-template-columns:1fr!important;max-width:440px;}
}

/* ---------- Team mosaic (photo grid) ---------- */
.tm-mosaic{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-template-rows:200px 200px 200px;gap:.8rem;
}
.tm-mosaic__tile{
  overflow:hidden;border-radius:14px;
  background:linear-gradient(135deg,var(--ink-3),var(--ink));
  position:relative;
}
.tm-mosaic__tile img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .35s var(--ease);
}
.tm-mosaic__tile:hover img{transform:scale(1.05);}
.tm-mosaic__tile--lg{grid-column:span 2;grid-row:span 2;}
.tm-mosaic__tile--md{grid-column:span 2;}
.tm-mosaic__caption{
  position:absolute;bottom:1rem;left:1rem;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.12em;color:#fff;
  background:rgba(0,0,0,.6);backdrop-filter:blur(8px);
  padding:.35rem .7rem;border-radius:999px;
}

/* ---------- Composition cards (4 role groups) ---------- */
.tm-composition{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;
  margin-top:3rem;
}
.tm-comp{
  padding:1.8rem;background:#fff;border:1px solid var(--line);
  border-radius:14px;display:flex;flex-direction:column;gap:.5rem;
}
.tm-comp__big{
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;
  font-size:3.4rem;color:var(--red);line-height:.85;
  font-weight:400;letter-spacing:-.02em;
}
.tm-comp h3{font-size:1.05rem;letter-spacing:-.015em;margin-top:.3rem;}
.tm-comp p{font-size:.88rem;color:var(--muted);line-height:1.55;}

/* ---------- Tech sector mix bars ---------- */
.tm-sectors{
  display:flex;flex-direction:column;gap:1.4rem;
  max-width:820px;margin:3rem auto 0;
}
.tm-sector{
  display:grid;grid-template-columns:240px 1fr 64px;gap:1.4rem;align-items:center;
}
.tm-sector__label{font-size:.95rem;font-weight:500;}
.tm-sector__track{
  height:10px;background:var(--soft);border-radius:999px;
  overflow:hidden;border:1px solid var(--line);
}
.tm-sector__fill{
  height:100%;
  background:linear-gradient(90deg,var(--red),var(--red-2));
  border-radius:999px;
}
.tm-sector__pct{
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;
  font-size:1.4rem;color:var(--red);font-weight:400;
  text-align:right;line-height:1;
}

/* ---------- Voices ---------- */
.tm-voices{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;
}
.tm-voice{
  background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:1.8rem;display:flex;flex-direction:column;gap:1.2rem;
  position:relative;
}
.tm-voice::before{
  content:'\201C';
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;
  font-size:5rem;color:var(--red);
  position:absolute;top:.4rem;left:1.2rem;line-height:1;opacity:.9;
}
.tm-voice__txt{
  margin-top:2.4rem;
  font-size:1rem;line-height:1.55;color:var(--ink-2);font-weight:500;
}
.tm-voice__author{
  display:flex;gap:.8rem;align-items:center;
  border-top:1px solid var(--line);padding-top:1rem;
}
.tm-voice__avatar{
  width:44px;height:44px;border-radius:50%;
  overflow:hidden;background:var(--ink);flex-shrink:0;
}
.tm-voice__avatar img{width:100%;height:100%;object-fit:cover;}
.tm-voice__author b{display:block;font-size:.9rem;}
.tm-voice__author span{display:block;font-size:.78rem;color:var(--muted);}

/* ---------- Office sections (templates/team-offices.php only) ----------
   Each office is its own .tm-office section with alternating photo
   left / photo right layout. Even-indexed offices flip via
   :nth-of-type(even).                                                */
.tm-office{padding:5rem 0;border-top:1px solid var(--line);}
.tm-office:nth-of-type(even){background:var(--soft);}
.tm-office__grid{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(2.4rem,5vw,4rem);align-items:center;
}
.tm-office:nth-of-type(even) .tm-office__grid{grid-template-columns:1fr 1.1fr;}
.tm-office:nth-of-type(even) .tm-office__photo{order:2;}
.tm-office__photo{
  aspect-ratio:5/4;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,var(--ink-3),var(--ink));
  position:relative;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.18);
}
.tm-office__photo img{width:100%;height:100%;object-fit:cover;}
.tm-office__pin{
  position:absolute;top:1.2rem;left:1.2rem;
  background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  padding:.5rem .9rem;border-radius:999px;
  display:inline-flex;align-items:center;gap:.4rem;
  font-family:'JetBrains Mono',monospace;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.1em;color:var(--ink);font-weight:600;
}
.tm-office__pin span:first-child{font-size:1rem;}
.tm-office__body{display:flex;flex-direction:column;gap:1.2rem;}
.tm-office__loc{
  display:flex;align-items:center;gap:.5rem;
  font-family:'JetBrains Mono',monospace;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.14em;color:var(--red);
}
.tm-office__name{
  font-size:clamp(32px,3.8vw,52px);font-weight:700;
  letter-spacing:-.03em;line-height:1.05;
}
.tm-office__name .italic{color:var(--red);}
.tm-office__desc{font-size:1.05rem;color:var(--ink-2);line-height:1.65;}
.tm-office__stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.1rem 0;margin-top:.4rem;
}
.tm-office__stats > div{padding:0 1rem;border-right:1px solid var(--line);}
.tm-office__stats > div:last-child{border-right:0;}
.tm-office__stats > div:first-child{padding-left:0;}
.tm-office__stats dt{
  font-family:'JetBrains Mono',monospace;font-size:.68rem;
  text-transform:uppercase;letter-spacing:.12em;color:var(--muted);
  margin-bottom:.25rem;
}
.tm-office__stats dd{
  font-family:'Instrument Serif',Georgia,serif;font-style:italic;
  font-size:1.5rem;color:var(--ink);line-height:1;
}
.tm-office__addr{font-size:.92rem;color:var(--muted);font-style:italic;}
.tm-office__lead{
  display:flex;align-items:center;gap:.8rem;
  padding-top:1rem;border-top:1px solid var(--line);margin-top:.2rem;
}
.tm-office__lead-photo{
  width:44px;height:44px;border-radius:50%;
  overflow:hidden;background:var(--ink);flex-shrink:0;
}
.tm-office__lead-photo img{width:100%;height:100%;object-fit:cover;}
.tm-office__lead-info{display:flex;flex-direction:column;}
.tm-office__lead-info b{font-size:.95rem;}
.tm-office__lead-info span{font-size:.78rem;color:var(--muted);}

@media (max-width:1080px){
  .tm-office__grid,
  .tm-office:nth-of-type(even) .tm-office__grid{grid-template-columns:1fr;}
  .tm-office:nth-of-type(even) .tm-office__photo{order:0;}
}
@media (max-width:640px){
  .tm-office{padding:3.5rem 0;}
  .tm-office__stats{grid-template-columns:1fr;gap:0;}
  .tm-office__stats > div{border-right:0;padding:.6rem 0;border-bottom:1px solid var(--line);}
  .tm-office__stats > div:last-child{border-bottom:0;}
}

/* ---------- Careers CTA ---------- */
.tm-careers{
  padding:clamp(80px,8vw,120px) 0;
  background:var(--ink);color:#fff;text-align:center;
  position:relative;overflow:hidden;
}
.tm-careers::before{
  content:"";position:absolute;top:-30%;left:50%;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(229,57,53,.25),transparent 70%);
  transform:translateX(-50%);filter:blur(60px);
}
.tm-careers .container{position:relative;}
.tm-careers .eyebrow{margin-bottom:1rem;}
.tm-careers h2{
  font-size:clamp(38px,4.8vw,68px);
  font-weight:700;letter-spacing:-.035em;line-height:1;
  margin:1rem auto 1.4rem;max-width:18ch;color:#fff;
}
.tm-careers h2 .italic{color:var(--red);}
.tm-careers p{
  color:rgba(255,255,255,.72);max-width:520px;margin:0 auto 2rem;font-size:1.05rem;
}
.tm-careers__cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;}

/* ---------- Responsive (general — leader-card breakpoints handled above) ---------- */
@media (max-width:1080px){
  .tm-mosaic{grid-template-columns:repeat(2,1fr);grid-template-rows:auto;}
  .tm-mosaic__tile--lg{grid-column:span 2;grid-row:auto;aspect-ratio:16/9;}
  .tm-mosaic__tile--md{grid-column:span 2;aspect-ratio:16/9;}
  .tm-mosaic__tile{aspect-ratio:1/1;}
  .tm-composition{grid-template-columns:repeat(2,1fr);}
  .tm-voices{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .tm-stats__row,.tm-composition,.tm-mosaic{grid-template-columns:1fr;}
  .tm-stats__row > div{border-right:0;border-bottom:1px solid var(--line);padding:.8rem 0;}
  .tm-sector{grid-template-columns:1fr;text-align:center;}
  .tm-sector__pct{text-align:center;}
  .tm-hero{padding:1rem 0 clamp(40px,8vw,70px);}
}

/* ===============================================================
   END OUR TEAM PAGE
   =============================================================== */
