/* ════════════════════════════════════════════════════════════════
   VIRGO DEVELOPMENT — Global Stylesheet
   virgodev.com
   
   Sections:
   1. Design Tokens (CSS Custom Properties)
   2. Base Styles & Reset
   3. Layout Utilities
   4. Typography
   5. Buttons & Interactive Elements
   6. Brand Bar (multi-brand top navigation)
   7. Site Header & Primary Navigation
   8. Hero Section
   9. Platform Rail
  10. Differentiator / Why Virgo Dev Section
  11. Five Pillars (Services Grid)
  12. Process Section
  13. Team Photo Break
  14. Case Studies Strip
  15. Expertise / Industries Grid
  16. Testimonials
  17. CTA & Contact Form
  18. Site Footer
  19. Scroll Reveal Animations
  20. Responsive Breakpoints
  21. Accessibility (prefers-reduced-motion)
════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════
   DESIGN SYSTEM — Warm dark-anchor with bright breathing rooms
   Inspired by OAK'S LAB / TSH but adapted for the photography
   The images do the heavy lifting on personality.
   Photography is bright/warm → we use dark *only* as anchor
   points, with generous white/cream sections for the people photos.
═══════════════════════════════════════════════════════ */
:root {
  /* Brand — exact pixel-sampled */
  --orange:    #EC7426;
  --orange-dk: #C4601A;
  --orange-lt: rgba(236,116,38,0.10);
  --gray-vg:   #787370;  /* logo gray */

  /* Dark surfaces — warm near-black (not cool blue-black) */
  --ink:    #111009;   /* deepest — nav, hero, footer */
  --ink-2:  #1A1815;   /* second level cards */
  --ink-3:  #232019;   /* third level */
  --edge:   rgba(255,255,255,0.07);
  --edge-hi:rgba(255,255,255,0.13);

  /* Light surfaces — warm cream/white */
  --cream:  #FAFAF8;   /* sections with photography */
  --cream-2:#F3F1EE;   /* card bg on cream */
  --cream-b:#E4E1DC;   /* borders on cream */

  /* Type on dark */
  --white:     #FFFFFF;
  --off-white: rgba(255,255,255,0.90);
  --dim:       rgba(255,255,255,0.68);
  --dimmer:    rgba(255,255,255,0.48);

  /* Type on light */
  --ink-text:  #1A1815;
  --ink-mid:   #5C5954;
  --ink-dim:   #9B9693;

  /* Fonts */
  --fd: 'Montserrat', sans-serif;
  --fb: 'Inter', sans-serif;
  --fm: 'JetBrains Mono', monospace;

  --max: 1200px;
  --ease: cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{font-family:var(--fb);background:var(--cream);color:var(--ink-text);line-height:1.6;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* Utilities */
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}
.label{font-family:var(--fm);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);}
[data-r]{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
[data-r].on{opacity:1;transform:none;}
[data-r][data-d="1"]{transition-delay:.1s;}
[data-r][data-d="2"]{transition-delay:.2s;}
[data-r][data-d="3"]{transition-delay:.3s;}
[data-r][data-d="4"]{transition-delay:.4s;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:13px 26px;border-radius:4px;cursor:pointer;border:none;transition:all .18s var(--ease);}
.btn-orange{background:var(--orange);color:#fff;}
.btn-orange:hover{background:var(--orange-dk);transform:translateY(-1px);}
.btn-ghost-dark{background:transparent;color:var(--off-white);border:1.5px solid var(--edge-hi);}
.btn-ghost-dark:hover{border-color:var(--orange);color:var(--orange);}
.btn-ghost-light{background:transparent;color:var(--ink-text);border:1.5px solid var(--cream-b);}
.btn-ghost-light:hover{border-color:var(--orange);color:var(--orange);}
.btn-orange-outline{background:transparent;color:var(--orange);border:1.5px solid var(--orange);}
.btn-orange-outline:hover{background:var(--orange);color:#fff;}
.arrow{transition:transform .18s var(--ease);}
a:hover .arrow, button:hover .arrow{transform:translateX(4px);}

/* ── BRAND BAR ────────────────────────────── */
.bb{background:#0A0907;border-bottom:1px solid rgba(255,255,255,.05);height:38px;display:flex;align-items:center;}
.bb__inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;padding:0 28px;width:100%;}
.bb__left{display:flex;align-items:center;gap:2px;}
.bb__link{display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:.07em;color:rgba(255,255,255,.55);padding:0 10px;height:38px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.bb__link:hover{color:rgba(255,255,255,.7);}
.bb__link.active{color:#fff;border-color:rgba(255,255,255,0.35);}
.bb__link--ps.active{border-color:#3B82F6;}
.bb__link--cfs.active{border-color:#10B981;}
.bb__dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.bb__dot--vg{background:var(--orange);}
.bb__dot--ps{background:#3B82F6;}
.bb__dot--cfs{background:#10B981;}
.bb__brands-label{font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75);padding:0 10px 0 0;border-right:1px solid rgba(255,255,255,.18);margin-right:4px;white-space:nowrap;}
.bb__right{font-family:var(--fm);font-size:10px;letter-spacing:.07em;color:rgba(255,255,255,.65);display:flex;align-items:center;gap:5px;}
.bb__right strong{color:rgba(255,255,255,.42);font-weight:700;}

/* ── NAV ─────────────────────────────────── */
.nav{background:rgba(17,16,9,0.95);backdrop-filter:blur(18px);border-bottom:1px solid var(--edge);position:sticky;top:0;z-index:80;transition:border-color .3s;}
.nav.scrolled{border-color:var(--edge-hi);box-shadow:0 2px 20px rgba(0,0,0,.4);}
.nav__inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;padding:0 28px;height:66px;}
.nav__logo img{height:34px;width:auto;}
.nav__links{display:flex;align-items:center;gap:4px;list-style:none;}
.nav__links a{font-family:var(--fd);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--dim);padding:7px 12px;border-radius:4px;transition:color .15s,background .15s;white-space:nowrap;}
.nav__links a:hover{color:#fff;background:rgba(255,255,255,.06);}
.nav__cta{display:flex;align-items:center;gap:10px;}
.nav__cta .btn{padding:9px 18px;font-size:11px;}

/* ══════════════════════════════════════════
   HERO — Dark with real engineer photo
══════════════════════════════════════════ */
.hero{
  background:var(--ink);
  position:relative;overflow:hidden;
  min-height:92vh;display:flex;flex-direction:column;justify-content:center;
}
.hero__grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:60px 60px;}
.hero__photo{
  position:absolute;right:0;top:0;bottom:0;width:52%;
  background:url('../img/hero-engineer.jpg') center center/cover no-repeat;
}
/* Gradient mask so photo bleeds into dark naturally */
.hero__photo::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ink) 0%,rgba(17,16,9,.7) 30%,rgba(17,16,9,.15) 65%,transparent 100%);
}
/* Subtle orange glow from bottom-left */
.hero__glow{position:absolute;bottom:-120px;left:-80px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(236,116,38,.12) 0%,transparent 65%);pointer-events:none;}
.hero__body{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:80px 28px;width:100%;}
.hero__left{max-width:540px;}
.hero__eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:28px;}
.hero__eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--orange);}
.hero__eyebrow span{font-family:var(--fm);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);}
.hero__h1{font-family:var(--fd);font-size:clamp(30px,3.6vw,50px);font-weight:800;line-height:1.08;letter-spacing:-.025em;color:#fff;margin-bottom:28px;}
.hero__h1 em{font-style:normal;color:var(--orange);}
.hero__sub{font-size:17px;line-height:1.7;color:var(--dim);max-width:460px;margin-bottom:44px;}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}

/* Stat bar */
.hero__bar{position:relative;z-index:2;border-top:1px solid var(--edge);background:rgba(255,255,255,.02);}
.hero__bar-inner{max-width:var(--max);margin:0 auto;padding:0 28px;display:grid;grid-template-columns:repeat(4,1fr);}
.h-stat{padding:22px 0 22px 28px;border-right:1px solid var(--edge);}
.h-stat:first-child{padding-left:0;}
.h-stat:last-child{border-right:none;}
.h-stat__n{font-family:var(--fd);font-size:30px;font-weight:800;color:#fff;letter-spacing:-.03em;line-height:1;margin-bottom:4px;}
.h-stat__n em{font-style:normal;color:var(--orange);}
.h-stat__l{font-size:12px;color:var(--dim);}

/* ══════════════════════════════════════════
   PLATFORM RAIL
══════════════════════════════════════════ */
.rail{background:var(--ink-2);border-bottom:1px solid var(--edge);}
.rail__top{max-width:var(--max);margin:0 auto;padding:16px 28px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--edge);flex-wrap:wrap;}
.rail__label{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dimmer);flex-shrink:0;}
.rail__logos{display:flex;align-items:center;gap:0;flex:1;flex-wrap:wrap;}
.rail__logo{font-family:var(--fd);font-size:12px;font-weight:700;letter-spacing:.03em;color:rgba(255,255,255,.32);padding:0 16px;border-right:1px solid var(--edge);line-height:1;transition:color .2s;white-space:nowrap;}
.rail__logo:first-child{padding-left:0;}
.rail__logo:last-child{border-right:none;}
.rail__logo:hover{color:rgba(255,255,255,.7);}

/* Logo image tiles in platform rail */
.rail__logo-img{
  display:flex;align-items:center;justify-content:center;
  padding:0 20px;
  border-right:1px solid var(--edge);
  opacity:0.55;
  transition:opacity .2s;
  flex-shrink:0;
}
.rail__logo-img:last-child{border-right:none;}
.rail__logo-img:hover{opacity:0.9;}
.rail__logo-img img{
  display:block;max-height:32px;width:auto;
  filter:brightness(0) invert(1);
}
/* Salesforce has square aspect — cap height differently */
.rail__logo-img img[alt="Salesforce"]{max-height:44px;}
/* App store badges have their own outline — use full opacity, no double-invert */
.rail__logo-img--badge{opacity:0.75;}
.rail__logo-img--badge:hover{opacity:1;}
.rail__logo-img--badge img{filter:none;}
/* Authorize.net is text-only — needs slightly more height cap */
.rail__logo-img img[alt="Authorize.net"]{max-height:22px;}
.rail__logo-img img[alt="WordPress"]{max-height:36px;}
/* BigCommerce text fallback (no logo uploaded) */
.rail__logo-text{
  font-family:var(--fd);font-size:12px;font-weight:700;letter-spacing:.03em;
  color:rgba(255,255,255,.45);white-space:nowrap;
}
/* Recurly badge with real logo */
.rail__recurly{margin-left:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1.5px solid rgba(236,116,38,.55);background:rgba(236,116,38,.07);padding:14px 24px;border-radius:7px;flex-shrink:0;min-width:160px;transition:border-color .2s,background .2s;}
.rail__recurly:hover{border-color:rgba(236,116,38,.85);background:rgba(236,116,38,.12);}
.rail__recurly-text{font-family:var(--fm);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:2px;}
.rail__recurly-text span{font-family:var(--fd);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:1px;}
.rail__recurly img{height:28px;width:auto;opacity:1;}
.rail__bottom{max-width:var(--max);margin:0 auto;padding:10px 28px;display:flex;align-items:center;gap:12px;}
.rail__bottom-label{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dimmer);flex-shrink:0;}
.rail__bottom-text{font-size:13px;color:var(--dim);}
.rail__bottom-text a{color:var(--orange);font-weight:600;}

/* ══════════════════════════════════════════
   DIFFERENTIATOR — cream bg with team photo
══════════════════════════════════════════ */
.diff{background:var(--cream);padding:96px 28px;border-bottom:1px solid var(--cream-b);}
.diff__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;}
.diff__h{font-family:var(--fd);font-size:clamp(30px,3.5vw,46px);font-weight:800;letter-spacing:-.03em;line-height:1.08;color:var(--ink-text);margin-bottom:24px;}
.diff__h em{font-style:normal;color:var(--orange);}
.diff__body{font-size:16px;line-height:1.75;color:var(--ink-mid);margin-bottom:16px;}
.diff__body strong{color:var(--ink-text);font-weight:600;}

/* Team band on light bg */
.team-band{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px;}
.t-block{background:#fff;border:1px solid var(--cream-b);border-radius:8px;padding:22px 22px 26px;transition:border-color .2s,box-shadow .2s;}
.t-block:hover{border-color:var(--orange);box-shadow:0 4px 16px rgba(236,116,38,.1);}
.t-block__n{font-family:var(--fm);font-size:10px;font-weight:600;color:var(--orange);margin-bottom:10px;display:block;letter-spacing:.1em;}
.t-block__h{font-family:var(--fd);font-size:14px;font-weight:700;color:var(--ink-text);margin-bottom:8px;line-height:1.3;}
.t-block__p{font-size:14px;line-height:1.65;color:var(--ink-mid);}

/* Right side — comparison table on cream */
.cmp{border:1px solid var(--cream-b);border-radius:8px;overflow:hidden;}
.cmp__head{display:grid;grid-template-columns:1fr 1fr;background:var(--ink-text);}
.cmp__head span{padding:11px 18px;font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.cmp__head span:last-child{color:var(--orange);border-left:1px solid rgba(255,255,255,.1);}
.cmp__row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--cream-b);transition:background .15s;}
.cmp__row:hover{background:#fff;}
.cmp__cell{padding:12px 18px;font-size:13px;line-height:1.45;display:flex;align-items:flex-start;gap:8px;color:var(--ink-mid);}
.cmp__cell:last-child{border-left:1px solid var(--cream-b);color:var(--ink-text);font-weight:500;}
.x{color:var(--cream-b);font-size:13px;flex-shrink:0;}
.ck{color:var(--orange);font-size:13px;flex-shrink:0;}

/* ══════════════════════════════════════════
   FIVE PILLARS — dark with card grid
══════════════════════════════════════════ */
.svc{background:var(--ink);padding:96px 28px;border-bottom:1px solid var(--edge);}
.svc__header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:48px;gap:24px;}
.svc__h{font-family:var(--fd);font-size:clamp(28px,3vw,42px);font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.08;}
.svc__h em{font-style:normal;color:var(--orange);}

/* 3-col grid, featured spans row */
.svc__grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:2px;background:var(--edge);border:1px solid var(--edge);border-radius:10px;overflow:hidden;}
a.s-card{color:inherit;display:flex;flex-direction:column;}
a.s-card--featured{color:inherit;}
.s-card{background:var(--ink-2);padding:30px 28px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background .22s;}
.s-card:hover{background:var(--ink-3);}
.s-card--featured{grid-row:span 2;grid-column:1;border-right:1px solid var(--edge);}
/* Photo background in featured card */
.s-card--featured .s-img{
  position:relative;width:100%;height:180px;overflow:hidden;border-radius:6px;margin-bottom:20px;
}
.s-card--featured .s-img img{width:100%;height:100%;object-fit:cover;border-radius:6px;filter:brightness(.85);transition:filter .3s;}
.s-card--featured:hover .s-img img{filter:brightness(.95);}
.s-card__num{font-family:var(--fm);font-size:11px;font-weight:600;color:var(--orange);margin-bottom:16px;display:block;}
.s-card__title{font-family:var(--fd);font-size:18px;font-weight:800;color:#fff;margin-bottom:12px;line-height:1.2;letter-spacing:-.01em;}
.s-card--featured .s-card__title{font-size:22px;}
.s-card__desc{font-size:14px;line-height:1.7;color:var(--dim);margin-bottom:22px;flex:1;}
.s-card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px;}
.s-tag{font-family:var(--fm);font-size:10px;padding:3px 9px;border-radius:3px;border:1px solid var(--edge-hi);color:var(--dimmer);}
.s-card__link{display:inline-flex;align-items:center;gap:6px;font-family:var(--fd);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--orange);transition:gap .18s;margin-top:auto;}
.s-card:hover .s-card__link{gap:10px;}
.recurly-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--fm);font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--orange);border:1px solid rgba(236,116,38,.3);padding:4px 10px;border-radius:3px;margin-bottom:14px;align-self:flex-start;}
.recurly-pill img{height:14px;width:auto;}

/* ══════════════════════════════════════════
   PROCESS — cream bg with agile diagram photo
══════════════════════════════════════════ */
.proc{background:var(--cream);padding:96px 28px;border-bottom:1px solid var(--cream-b);}
.proc__inner{max-width:var(--max);margin:0 auto;}
.proc__top{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;margin-bottom:64px;}
.proc__h{font-family:var(--fd);font-size:clamp(30px,3.5vw,46px);font-weight:800;letter-spacing:-.03em;color:var(--ink-text);line-height:1.08;margin-bottom:16px;}
.proc__h em{font-style:normal;color:var(--orange);}
.proc__sub{font-size:16px;line-height:1.7;color:var(--ink-mid);}
.proc__img-wrap{border-radius:10px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.15);}
.proc__img-wrap img{width:100%;height:auto;display:block;}

/* Steps */
.proc__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--cream-b);border:1px solid var(--cream-b);border-radius:10px;overflow:hidden;margin-bottom:24px;}
.p-step{background:#fff;padding:28px 24px;}
.p-step__num{font-family:var(--fd);font-size:28px;font-weight:800;color:var(--orange);line-height:1;margin-bottom:14px;}
.p-step__label{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-bottom:8px;display:block;}
.p-step__title{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--ink-text);margin-bottom:10px;line-height:1.25;}
.p-step__desc{font-size:13px;line-height:1.6;color:var(--ink-mid);margin-bottom:14px;}
.p-step__feat{list-style:none;display:flex;flex-direction:column;gap:5px;}
.p-step__feat li{font-size:12px;color:var(--ink-dim);display:flex;align-items:flex-start;gap:6px;}
.p-step__feat li::before{content:'◆';font-size:5px;color:var(--orange);flex-shrink:0;margin-top:5px;}

/* Guarantees — dark cards on cream */
.proc__guar{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.g-card{background:var(--ink-2);border-radius:8px;padding:24px 28px;display:flex;align-items:flex-start;gap:16px;transition:background .2s;}
.g-card:hover{background:var(--ink-3);}
.g-num{font-family:var(--fm);font-size:22px;font-weight:700;color:var(--orange);flex-shrink:0;line-height:1;padding-top:2px;}
.g-title{font-family:var(--fd);font-size:14px;font-weight:700;color:#fff;margin-bottom:6px;}
.g-text{font-size:14px;line-height:1.6;color:var(--dim);}

/* ══════════════════════════════════════════
   TEAM PHOTO BAND — full-bleed image break
══════════════════════════════════════════ */
.team-photo{position:relative;height:400px;overflow:hidden;}
.team-photo__img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.team-photo__overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(17,16,9,.85) 0%,rgba(17,16,9,.5) 50%,rgba(17,16,9,.35) 100%);
  display:flex;align-items:center;
}
.team-photo__content{max-width:var(--max);margin:0 auto;padding:0 28px;}
.team-photo__quote{font-family:var(--fd);font-size:clamp(18px,2.5vw,28px);font-weight:700;color:#fff;line-height:1.35;max-width:560px;margin-bottom:12px;}
.team-photo__attr{font-family:var(--fm);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);}

/* ══════════════════════════════════════════
   CASES — white with orange left border
══════════════════════════════════════════ */
.cases{background:var(--cream-2);padding:80px 28px;border-bottom:1px solid var(--cream-b);}
.cases__inner{max-width:var(--max);margin:0 auto;}
.cases__hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:36px;gap:24px;}
.cases__h{font-family:var(--fd);font-size:clamp(22px,2.5vw,32px);font-weight:800;letter-spacing:-.02em;color:var(--ink-text);line-height:1.1;}
.cases__strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
a.c-card{color:inherit;}
.c-card{background:#fff;border:1px solid var(--cream-b);border-radius:8px;padding:24px 26px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;transition:border-color .2s,box-shadow .2s,transform .2s var(--ease);}
.c-card:hover{border-color:var(--orange);box-shadow:0 8px 28px rgba(0,0,0,.1);transform:translateY(-3px);}
.c-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange);opacity:0;transition:opacity .2s;}
.c-card:hover::before{opacity:1;}
.c-ind{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);}
.c-title{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--ink-text);line-height:1.25;}
.c-desc{font-size:13px;color:var(--ink-mid);line-height:1.55;flex:1;}
.c-chips{display:flex;gap:6px;flex-wrap:wrap;}
/* Case study external link */
.c-link{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--fm);font-size:11px;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;
  color:var(--orange);margin-top:8px;
  transition:gap .18s var(--ease);
}
.c-link:hover{gap:8px;}

.c-chip{font-family:var(--fm);font-size:10px;padding:3px 8px;border-radius:3px;background:var(--cream-2);border:1px solid var(--cream-b);color:var(--ink-mid);}

/* ══════════════════════════════════════════
   EXPERTISE — dark with numbers
══════════════════════════════════════════ */
.exp{background:var(--ink-2);padding:80px 28px;border-bottom:1px solid var(--edge);}
.exp__inner{max-width:var(--max);margin:0 auto;}
.exp__header{margin-bottom:40px;}
.exp__h{font-family:var(--fd);font-size:clamp(24px,3vw,36px);font-weight:800;letter-spacing:-.02em;color:#fff;margin-bottom:10px;line-height:1.1;}
.exp__h em{font-style:normal;color:var(--orange);}
.exp__sub{font-size:15px;color:var(--dim);max-width:500px;line-height:1.65;}
.exp__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--edge);border:1px solid var(--edge);border-radius:8px;overflow:hidden;}
.e-card{background:var(--ink);padding:26px 24px;transition:background .2s;}
.e-card:hover{background:rgba(236,116,38,.05);}
.e-num{font-family:var(--fm);font-size:11px;font-weight:600;color:var(--orange);margin-bottom:12px;display:block;}
.e-title{font-family:var(--fd);font-size:15px;font-weight:700;color:#fff;margin-bottom:8px;}
.e-desc{font-size:13px;line-height:1.55;color:var(--dim);}

/* ══════════════════════════════════════════
   TESTIMONIAL — cream with featured card
══════════════════════════════════════════ */
.testi{background:var(--cream);padding:96px 28px;border-bottom:1px solid var(--cream-b);}
.testi__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 2fr;gap:72px;align-items:start;}
.testi__h{font-family:var(--fd);font-size:clamp(24px,2.8vw,36px);font-weight:800;letter-spacing:-.02em;color:var(--ink-text);margin-bottom:18px;line-height:1.15;}
.testi__h em{font-style:normal;color:var(--orange);}
.testi__note{font-size:14px;line-height:1.65;color:var(--ink-mid);}
.testi__right{display:flex;flex-direction:column;gap:16px;}
.t-card{background:#fff;border:1px solid var(--cream-b);border-radius:8px;padding:28px 32px;position:relative;transition:border-color .2s,box-shadow .2s;}
.t-card:hover{border-color:var(--orange);box-shadow:0 6px 20px rgba(0,0,0,.08);}
.t-card--feat{background:#2C2B24;}
.t-card--muted{background:#C8C8C2;border-color:#B8B8B2;}
.t-card--feat:hover{border-color:var(--orange);box-shadow:0 8px 28px rgba(0,0,0,.25);}
.t-card__open{position:absolute;top:16px;right:22px;font-family:Georgia,serif;font-size:56px;line-height:1;color:var(--orange);opacity:.15;user-select:none;}
.t-card__q{font-size:15px;line-height:1.7;color:var(--ink-mid);margin-bottom:18px;font-style:italic;}
.t-card--feat .t-card__q{color:rgba(255,255,255,.7);}
.t-card__attr{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--cream-b);}
.t-card--feat .t-card__attr{border-color:rgba(255,255,255,.1);}
.t-card__av{width:36px;height:36px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:13px;font-weight:700;color:#fff;flex-shrink:0;}
.t-card__name{font-family:var(--fd);font-size:13px;font-weight:700;color:var(--ink-text);}
.t-card--feat .t-card__name{color:#fff;}
.t-card__role{font-size:12px;color:var(--ink-dim);}
.t-card--feat .t-card__role{color:var(--dim);}

/* ══════════════════════════════════════════
   CTA — split: dark left, form right
══════════════════════════════════════════ */
.cta{background:var(--ink-2);padding:96px 28px;border-bottom:1px solid var(--edge);}
.cta__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.cta__h{font-family:var(--fd);font-size:clamp(26px,3vw,40px);font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.1;margin-bottom:16px;}
.cta__h em{font-style:normal;color:var(--orange);}
.cta__sub{font-size:16px;line-height:1.7;color:var(--dim);margin-bottom:32px;}
.cta__actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px;}
.cta__ci{font-size:13px;color:var(--dim);display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.cta__ci a{color:var(--dim);transition:color .15s;}
.cta__ci a:hover{color:var(--orange);}

/* Form — lighter surface on dark bg */
.form-wrap{background:rgba(255,255,255,.04);border:1px solid var(--edge-hi);border-radius:10px;padding:28px;}
.form-wrap__title{font-family:var(--fd);font-size:18px;font-weight:700;color:#fff;margin-bottom:4px;}
.form-wrap__sub{font-size:15px;color:var(--dim);margin-bottom:16px;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.f-field{margin-bottom:12px;}
.f-field label{display:block;font-family:var(--fm);font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--dimmer);margin-bottom:7px;}
.f-field input,.f-field select,.f-field textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid var(--edge);border-radius:5px;padding:11px 14px;font-family:var(--fb);font-size:14px;color:var(--off-white);outline:none;transition:border-color .18s,background .18s;appearance:none;-webkit-appearance:none;}
.f-field input::placeholder,.f-field textarea::placeholder{color:var(--dimmer);}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{border-color:var(--orange);background:rgba(255,255,255,.09);}
.f-field select option{background:var(--ink-2);}
.f-submit{width:100%;justify-content:center;margin-top:4px;}
.f-note{font-size:13px;color:var(--dimmer);text-align:center;margin-top:10px;}

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
.footer{background:#0A0907;border-top:1px solid var(--edge);padding:60px 28px 36px;}
.footer__inner{max-width:var(--max);margin:0 auto;}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid var(--edge);}
.footer__logo{height:36px;width:auto;display:block;opacity:.8;filter:brightness(0) invert(1);margin-bottom:16px;}
.footer__tagline{font-size:14px;color:var(--dimmer);line-height:1.7;margin-bottom:20px;max-width:260px;}
.footer__ci{font-size:12px;color:var(--dimmer);display:flex;align-items:center;gap:6px;margin-bottom:8px;transition:color .15s;}
.footer__ci:hover{color:var(--orange);}
.footer__col-h{font-family:var(--fm);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-bottom:16px;}
.footer__links{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer__links a{font-size:14px;color:rgba(255,255,255,.52);transition:color .15s;display:flex;align-items:center;gap:6px;}
.footer__links a:hover{color:var(--orange);}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.footer__copy{font-size:12px;color:var(--dimmer);}
.footer__family{display:flex;align-items:center;gap:6px;font-family:var(--fm);font-size:10px;letter-spacing:.07em;color:var(--dimmer);}
.footer__family a{color:rgba(255,255,255,.32);transition:color .15s;display:flex;align-items:center;gap:4px;}
.footer__family a:hover{color:var(--orange);}
.footer__family .sep{color:var(--edge-hi);}
.fd{width:6px;height:6px;border-radius:50%;display:inline-block;}
.fd--vg{background:var(--orange);}
.fd--ps{background:#3B82F6;}
.fd--cfs{background:#10B981;}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:1024px){
  .hero__photo{width:45%;}
  .svc__grid{grid-template-columns:1fr 1fr;}
  .s-card--featured{grid-column:1/-1;grid-row:1;}
  .exp__grid{grid-template-columns:repeat(2,1fr);}
  .proc__top{grid-template-columns:1fr;gap:40px;}
}
@media(max-width:768px){
  .bb__right{display:none;}
  .nav__links{display:none;}
  .hero__photo{display:none;}
  .hero__bar-inner{grid-template-columns:repeat(2,1fr);}
  .diff__inner{grid-template-columns:1fr;gap:48px;}
  .team-band{grid-template-columns:1fr;}
  .svc__grid{grid-template-columns:1fr;}
  .s-card--featured{grid-column:1;grid-row:1;}
  .proc__steps{grid-template-columns:1fr 1fr;}
  .proc__guar{grid-template-columns:1fr;}
  .cases__strip{grid-template-columns:1fr;}
  .exp__grid{grid-template-columns:1fr;}
  .testi__inner{grid-template-columns:1fr;gap:40px;}
  .cta__inner{grid-template-columns:1fr;gap:40px;}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .team-photo{height:300px;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;}
  [data-r]{opacity:1!important;transform:none!important;}
}

/* ── HubSpot form overrides ──────────────────────────────────────────── */
/* Match the form to the site's dark panel design */

/* Remove the large top gap HubSpot injects */
.hs-form-frame{margin-top:0!important;}
.hs-form-frame iframe{border:none!important;}

/* Style the injected description text */
.hbspt-form .hs-richtext p,
.hs-form .hs-richtext p,
.hs-form-frame .hs-richtext p{
  font-size:14px!important;
  color:var(--dim)!important;
  line-height:1.6!important;
  margin-bottom:16px!important;
  margin-top:0!important;
}

/* Remove excess padding HubSpot adds above the form */
.hbspt-form form,
.hs-form{
  padding-top:0!important;
  margin-top:0!important;
}

/* Field labels */
.hs-form .hs-form-field label,
.hbspt-form .hs-form-field label{
  font-family:var(--fb)!important;
  font-size:13px!important;
  font-weight:600!important;
  color:var(--dim)!important;
  margin-bottom:6px!important;
  display:block!important;
}

/* Input fields */
.hs-form input[type="text"],
.hs-form input[type="email"],
.hs-form input[type="tel"],
.hs-form textarea,
.hs-form select,
.hbspt-form input[type="text"],
.hbspt-form input[type="email"],
.hbspt-form input[type="tel"],
.hbspt-form textarea,
.hbspt-form select{
  background:rgba(255,255,255,.06)!important;
  border:1px solid var(--edge-hi)!important;
  border-radius:6px!important;
  color:#fff!important;
  font-family:var(--fb)!important;
  font-size:14px!important;
  padding:10px 14px!important;
  width:100%!important;
  box-sizing:border-box!important;
  transition:border-color .15s!important;
}

.hs-form input:focus,
.hs-form textarea:focus,
.hs-form select:focus,
.hbspt-form input:focus,
.hbspt-form textarea:focus,
.hbspt-form select:focus{
  border-color:var(--orange)!important;
  outline:none!important;
}

/* Submit button */
.hs-form .hs-button,
.hbspt-form .hs-button{
  background:var(--orange)!important;
  color:#fff!important;
  border:none!important;
  border-radius:6px!important;
  font-family:var(--fb)!important;
  font-size:14px!important;
  font-weight:700!important;
  padding:12px 24px!important;
  cursor:pointer!important;
  width:100%!important;
  transition:background .2s!important;
  margin-top:8px!important;
}
.hs-form .hs-button:hover,
.hbspt-form .hs-button:hover{
  background:#d4661f!important;
}

/* Error messages */
.hs-form .hs-error-msgs label,
.hbspt-form .hs-error-msgs label{
  color:var(--orange)!important;
  font-size:12px!important;
}

/* Field spacing */
.hs-form .hs-form-field,
.hbspt-form .hs-form-field{
  margin-bottom:16px!important;
}
/* ── End HubSpot overrides ────────────────────────────────────────────── */