/* =========================================================
   Leading Edge Enterprises — Home page styles
   ========================================================= */

/* ---------- Hero ---------- */
.hero { position: relative; padding-top: calc(var(--nav-h) + 40px); padding-bottom: clamp(48px, 8vw, 96px); overflow: hidden; }
.hero__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero__bg::before {
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(46% 60% at 82% 8%, rgba(0,123,255,.14), transparent 62%),
    radial-gradient(40% 55% at 8% 4%, rgba(0,123,255,.07), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, var(--bg) 70%);
}
/* subtle grid texture */
.hero__bg::after {
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(15,23,42,.035) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(15,23,42,.035) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(75% 65% at 50% 25%, #000, transparent 80%);
  mask-image: radial-gradient(75% 65% at 50% 25%, #000, transparent 80%);
}
/* Centered headline block */
.hero__head { position: relative; z-index: 1; max-width: 920px; margin-inline: auto; text-align: center; }
.hero__head .pill { margin-bottom: 4px; }
.hero__title { font-size: clamp(2.5rem, 6.2vw, 4.7rem); font-weight: 800; color: var(--ink); letter-spacing: -.04em; margin-top: 22px; }
.hero__title .grad { background: linear-gradient(120deg, var(--accent), var(--accent-500)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero__sub { margin: 22px auto 0; font-size: clamp(1.04rem, 1.7vw, 1.2rem); color: var(--slate-500); max-width: 56ch; }
.hero__actions { margin-top: 32px; display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }

/* Stage: supporting note · centerpiece · supporting note */
.hero__stage { position: relative; z-index: 1; margin-top: clamp(40px, 5vw, 70px); display: grid; grid-template-columns: 1fr minmax(0, 560px) 1fr; align-items: end; gap: clamp(16px, 3vw, 28px); }
.hero__aside { max-width: 250px; }
.hero__aside--left { justify-self: start; text-align: left; }
.hero__aside--right { justify-self: end; text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.hero__aside p { font-size: .93rem; color: var(--slate); line-height: 1.55; margin-top: 14px; }
.hero__aside strong { color: var(--ink); font-weight: 700; }
.avatars { display: flex; }
.avatars span {
  position: relative; width: 46px; height: 46px; border-radius: 50%;
  border: 3px solid var(--bg); margin-left: -14px;
  display: grid; place-items: center; color: #fff;
  font-family: var(--font-head); font-weight: 700; font-size: .82rem;
  box-shadow: var(--sh-md);
  transition: transform .35s var(--ease), margin-left .35s var(--ease), box-shadow .35s var(--ease);
}
.avatars span:first-child { margin-left: 0; }
/* premium hover: cluster gently spreads, hovered initial lifts forward */
.avatars:hover span { margin-left: -8px; }
.avatars:hover span:first-child { margin-left: 0; }
.avatars span:hover { transform: translateY(-5px) scale(1.1); z-index: 3; box-shadow: 0 12px 22px -8px rgba(0,123,255,.5); }

/* premium staggered spring entrance (plays when the hero aside reveals) */
.hero__aside--left.in .avatars span { animation: avatarIn .62s cubic-bezier(.34,1.56,.64,1) backwards; }
.hero__aside--left.in .avatars span:nth-child(1) { animation-delay: .38s; }
.hero__aside--left.in .avatars span:nth-child(2) { animation-delay: .48s; }
.hero__aside--left.in .avatars span:nth-child(3) { animation-delay: .58s; }
.hero__aside--left.in .avatars span:nth-child(4) { animation-delay: .68s; }
@keyframes avatarIn {
  0%   { opacity: 0; transform: translateY(10px) scale(.2) rotate(-12deg); }
  60%  { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero__aside--left.in .avatars span { animation: none; }
  .avatars span, .avatars:hover span { transition: none; }
}
.aside-ic { width: 46px; height: 46px; border-radius: 13px; background: var(--orange-soft); border: 1px solid #cfe0f5; color: var(--orange); display: grid; place-items: center; }
.aside-ic svg { width: 23px; height: 23px; }

/* Spring "pop" entrance (framer-motion style: scale 0 -> 1 with overshoot) */
.reveal.pop { transform: scale(.4); transition: opacity .4s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1); }
.reveal.pop.in { transform: none; }

/* Bouncing scroll-down indicator */
.scroll-cue { display: flex; flex-direction: column; align-items: center; gap: 9px; width: max-content; margin: clamp(34px, 4.5vw, 56px) auto 0; color: var(--slate-400); position: relative; z-index: 1; }
.scroll-cue__label { font-family: var(--font-head); font-weight: 600; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; }
.scroll-cue__chev { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--border-2); background: var(--surface); box-shadow: var(--sh-sm); display: grid; place-items: center; transition: border-color var(--t-fast), transform var(--t-fast); }
.scroll-cue:hover .scroll-cue__chev { border-color: var(--orange); transform: translateY(-2px); box-shadow: var(--sh-md); }
.scroll-cue__chev svg { width: 20px; height: 20px; color: var(--orange); animation: scrollBounce 1.7s var(--ease) infinite; }
@keyframes scrollBounce { 0%, 100% { transform: translateY(-3px); } 50% { transform: translateY(3px); } }
@media (prefers-reduced-motion: reduce) { .scroll-cue__chev svg { animation: none; } }

/* Hero visual — monitoring dashboard mock built in CSS/SVG */
.hero__visual { position: relative; width: 100%; margin-inline: auto; }
.monitor {
  position: relative; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); box-shadow: var(--sh-lg); padding: 16px; overflow: hidden;
}
.monitor__bar { display: flex; align-items: center; gap: 10px; padding: 4px 6px 14px; }
.monitor__bar .dots { display: flex; gap: 6px; }
.monitor__bar .dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--border-2); }
.monitor__bar .dots i:nth-child(1){ background:#f87171 } .monitor__bar .dots i:nth-child(2){ background:#fbbf24 } .monitor__bar .dots i:nth-child(3){ background:#34d399 }
.monitor__bar .live { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-head); font-weight: 600; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--green); }
.monitor__bar .live .ld { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 0 rgba(21,128,61,.5); animation: livepulse 2s var(--ease) infinite; }
@keyframes livepulse { 0%{box-shadow:0 0 0 0 rgba(21,128,61,.5)} 70%{box-shadow:0 0 0 9px rgba(21,128,61,0)} 100%{box-shadow:0 0 0 0 rgba(21,128,61,0)} }

.cam-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.cam {
  position: relative; aspect-ratio: 16/10; border-radius: var(--r-md); overflow: hidden;
  background: linear-gradient(160deg, #eef4fb, #dbe5f0); border: 1px solid #d3dde9;
}
.cam::before { /* scanning sweep */
  content:""; position:absolute; inset:0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%);
  background-size: 220% 100%; animation: sweep 4.5s linear infinite;
}
@keyframes sweep { from{ background-position: 130% 0 } to{ background-position: -130% 0 } }
.cam .scene { position: absolute; inset: 0; opacity: 1; }
.cam .tag { position: absolute; left: 8px; top: 8px; font-size: .58rem; font-family: var(--font-head); font-weight: 600; letter-spacing: .06em; color: #334155; background: rgba(255,255,255,.85); padding: 3px 7px; border-radius: 5px; box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.cam .rec { position: absolute; right: 8px; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: #ef4444; animation: blink 1.4s steps(2,end) infinite; }
@keyframes blink { 50% { opacity: .25 } }
/* AI detection box */
.cam .det { position: absolute; border: 1.5px solid var(--orange); border-radius: 5px; box-shadow: 0 0 0 1px rgba(0,123,255,.3); }
.cam .det::after { content: attr(data-label); position: absolute; top: -16px; left: -1px; font-size: .52rem; font-family: var(--font-head); font-weight: 700; color: #fff; background: var(--orange); padding: 1px 5px; border-radius: 3px 3px 3px 0; white-space: nowrap; }
.cam--a .det { left: 26%; top: 30%; width: 30%; height: 52%; animation: floatbox 6s var(--ease) infinite; }
.cam--b .det { left: 50%; top: 22%; width: 26%; height: 40%; }
@keyframes floatbox { 0%,100%{ transform: translate(0,0) } 50%{ transform: translate(8%,-6%) } }

.monitor__stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 12px; }
.mstat { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md); padding: 12px; }
.mstat .v { font-family: var(--font-head); font-weight: 700; color: var(--navy); font-size: 1.15rem; line-height: 1; font-variant-numeric: tabular-nums; }
.mstat .k { font-size: .68rem; color: var(--slate-500); margin-top: 6px; text-transform: uppercase; letter-spacing: .05em; }

/* floating chips around the visual */
.float-chip {
  position: absolute; z-index: 2; background: #fff; border: 1px solid var(--border);
  border-radius: 14px; box-shadow: var(--sh-md); padding: 11px 14px;
  display: flex; align-items: center; gap: 11px;
}
.float-chip svg { width: 20px; height: 20px; }
.float-chip .fc-t { font-family: var(--font-head); font-weight: 700; font-size: .82rem; color: var(--navy); line-height: 1.1; }
.float-chip .fc-s { font-size: .68rem; color: var(--slate-500); }
.float-chip--1 { left: -22px; top: 24%; animation: floaty 6s var(--ease) infinite; }
.float-chip--1 .ic { color: var(--green); }
.float-chip--2 { right: -18px; bottom: 16%; animation: floaty 7s var(--ease) infinite .6s; }
.float-chip--2 .ic { color: var(--amber); }
@keyframes floaty { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-12px) } }
@media (prefers-reduced-motion: reduce) {
  .cam::before, .cam .rec, .cam--a .det, .float-chip, .monitor__bar .live .ld { animation: none !important; }
}

/* ---------- Logo / trust strip ---------- */
.trust-strip { border-block: 1px solid var(--border); background: var(--surface); }
.trust-strip .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(20px,5vw,56px); padding-block: 26px; }
.trust-strip .ts-label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--slate-400); font-weight: 600; font-family: var(--font-head); }
.trust-strip .ts-item { display: flex; align-items: center; gap: 9px; color: var(--slate); font-family: var(--font-head); font-weight: 600; font-size: .96rem; opacity: .85; }
.trust-strip .ts-item svg { width: 22px; height: 22px; color: var(--accent); }

/* ---------- Services ---------- */
.svc-grid { grid-template-columns: repeat(6, 1fr); gap: clamp(14px, 1.6vw, 22px); margin-top: clamp(36px,4vw,52px); }
.svc-card.svc-home p { font-size: .9rem; }
.svc-card { display: flex; flex-direction: column; position: relative; overflow: hidden; }
.svc-card .svc-list { margin-top: 18px; display: grid; gap: 9px; }
.svc-card .svc-list li { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; color: var(--slate); }
.svc-card .svc-list svg { width: 17px; height: 17px; color: var(--accent); flex-shrink: 0; margin-top: 4px; }
.svc-card h3 { font-size: 1.32rem; margin-bottom: 8px; }
.svc-card .svc-link { margin-top: auto; padding-top: 22px; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-head); font-weight: 600; color: var(--accent); font-size: .94rem; }
.svc-card .svc-link svg { width: 18px; height: 18px; transition: transform var(--t-fast); }
.svc-card:hover .svc-link svg { transform: translateX(4px); }

/* ---------- Feature / Why split (moved to styles.css for cross-page use) ---------- */

/* stats card cluster */
.stat-cluster { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.stat-box { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--sh-sm); }
.stat-box:nth-child(1){ background: linear-gradient(165deg, var(--navy), var(--navy-700)); border-color: transparent; }
.stat-box:nth-child(1) .stat__num { color: #fff; } .stat-box:nth-child(1) .stat__num .suffix{ color: var(--accent-300);} .stat-box:nth-child(1) .stat__label { color: #94a3b8; }

/* ---------- Process / timeline ---------- */
.process-grid { grid-template-columns: repeat(5,1fr); margin-top: clamp(36px,4vw,52px); counter-reset: step; }
.proc-step { position: relative; padding-top: 14px; }
.proc-step .num { font-family: var(--font-head); font-weight: 700; font-size: 2.4rem; color: var(--accent-soft); line-height: 1; -webkit-text-stroke: 1px var(--accent-300); }
.proc-step h4 { font-size: 1.1rem; margin: 12px 0 8px; }
.proc-step p { font-size: .92rem; color: var(--slate-500); }
.proc-step::before { content:""; position:absolute; top: 26px; left: 56px; right: -20px; height: 2px; background: repeating-linear-gradient(90deg, var(--border-2) 0 6px, transparent 6px 12px); }
.proc-step:last-child::before { display: none; }

/* ---------- Industries ---------- */
.ind-grid { grid-template-columns: repeat(3,1fr); gap: clamp(14px,1.5vw,20px); margin-top: clamp(32px,4vw,48px); }
.ind-card { position: relative; display: block; aspect-ratio: 4/3; border-radius: 18px; overflow: hidden; background: #0e2038; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 18px 40px rgba(0,0,0,.4); }
.ind-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ind-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,23,46,0) 36%, rgba(7,23,46,.5) 66%, rgba(7,23,46,.92)); }
.ind-card .ind-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 22px; z-index: 1; }
.ind-card .ind-cap h4 { color: #fff; font-size: 1.16rem; margin-bottom: 3px; letter-spacing: -.01em; }
.ind-card .ind-cap p { color: #c2d6ef; font-size: .87rem; }

/* ---------- Testimonials ---------- */
.section--navy { background: var(--black); color: #B5B2AD; position: relative; overflow: hidden; }
.section--navy::before { content:""; position:absolute; inset:0; background: radial-gradient(55% 65% at 82% -5%, rgba(0,123,255,.20), transparent 60%); pointer-events:none; }
.section--navy .container { position: relative; z-index: 1; }
.section--navy .h-section { color: #fff; }
.section--navy .eyebrow { color: var(--orange-500); }
.section--navy .lead { color: #8B8884; }
.tst-grid { grid-template-columns: repeat(3,1fr); margin-top: clamp(36px,4vw,52px); }
.tst-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg); padding: 30px; }
.tst-card .stars { display: flex; gap: 3px; margin-bottom: 16px; color: #fbbf24; }
.tst-card .stars svg { width: 18px; height: 18px; }
.tst-card .quote { font-size: 1rem; color: #e2e8f0; line-height: 1.7; }
.tst-card .author { display: flex; align-items: center; gap: 13px; margin-top: 22px; }
.tst-card .avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-head); font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--accent), var(--accent-500)); flex-shrink: 0; }
.tst-card .author .nm { font-family: var(--font-head); font-weight: 600; color: #fff; font-size: .95rem; }
.tst-card .author .rl { font-size: .82rem; color: #94a3b8; }

/* ---------- CTA band (moved to styles.css for cross-page use) ---------- */

/* ---------- Premium card animations (home) ---------- */
/* Entrance: rise + settle with a subtle scale (via --reveal-from; resets cleanly on .in) */
.svc-card, .ind-card, .cert-card, .tst-card { --reveal-from: translateY(32px) scale(.955); }

/* Hover: smooth lift + slight scale + warm glow */
.svc-card, .ind-card, .cert-card { transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s var(--ease); }
.svc-card:hover, .cert-card:hover { transform: translateY(-9px) scale(1.015); box-shadow: 0 28px 52px -22px rgba(0,123,255,.32), var(--sh-lg); border-color: var(--orange-300); }
.ind-card:hover { transform: translateY(-7px); box-shadow: 0 30px 58px -18px rgba(0,0,0,.6); border-color: var(--accent-300); }
.ind-card:hover img { transform: scale(1.07); }
.tst-card { transition: transform .4s var(--ease), background .3s var(--ease), border-color .3s var(--ease); }
.tst-card:hover { transform: translateY(-7px); background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.2); }

@media (prefers-reduced-motion: reduce) {
  .svc-card, .ind-card, .cert-card, .tst-card { --reveal-from: none; transition: none; }
}

/* ---------- Service tiles (modern bento "what we do") ---------- */
.svc-tile { grid-column: span 2; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: 22px; overflow: hidden; box-shadow: 0 1px 2px rgba(11,27,52,.05); transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s var(--ease); }
.svc-tile:hover { transform: translateY(-8px); box-shadow: 0 26px 52px rgba(11,27,52,.15); border-color: var(--accent-300); }
.svc-tile__media { aspect-ratio: 16/10; position: relative; overflow: hidden; background: var(--surface-2); }
.svc-tile__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,74,173,0) 55%, rgba(0,74,173,.06)); opacity: 0; transition: opacity .4s var(--ease); }
.svc-tile:hover .svc-tile__media::after { opacity: 1; }
.svc-tile__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.svc-tile:hover .svc-tile__media img { transform: scale(1.07); }
.svc-tile__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.svc-tile__body h3 { font-size: 1.14rem; margin-bottom: 7px; letter-spacing: -.01em; }
.svc-tile__body p { font-size: .9rem; line-height: 1.55; color: var(--slate-500); margin-bottom: 16px; }
.svc-tile__link { margin-top: auto; font-family: var(--font-head); font-weight: 600; font-size: .9rem; color: var(--accent); display: inline-flex; align-items: center; gap: 6px; }
.svc-tile__link svg { width: 16px; height: 16px; transition: transform var(--t-fast); }
.svc-tile:hover .svc-tile__link svg { transform: translateX(4px); }

/* centre the last row's two tiles (8 tiles in 3-per-row = 3 + 3 + 2) */
.svc-grid > .svc-tile:nth-child(7) { grid-column: 2 / span 2; }
.svc-grid > .svc-tile:nth-child(8) { grid-column: 4 / span 2; }

@media (max-width: 980px) {
  .svc-tile { grid-column: span 3; }
  .svc-grid > .svc-tile:nth-child(7),
  .svc-grid > .svc-tile:nth-child(8) { grid-column: span 3; }
}
@media (max-width: 560px) {
  .svc-grid { grid-template-columns: 1fr; }
  .svc-tile,
  .svc-grid > .svc-tile:nth-child(7),
  .svc-grid > .svc-tile:nth-child(8) { grid-column: 1 / -1; }
}

/* ---------- Hero product shot ---------- */
.hero-shot { max-width: 540px; margin-inline: auto; }
.hero-shot img { width: 100%; height: auto; display: block; border-radius: var(--r-xl); box-shadow: 0 34px 64px -26px rgba(0,74,173,.32); }

/* ---------- Product feature (Apple-style hero, single product) ---------- */
.apple-feature { position: relative; overflow: hidden; text-align: center; background: #f5f6f8; }
.apple-feature.apple-feature--alt { background: #edf3fb; }
.apple-feature.apple-feature--dark { background: #0c1d3a; }
.apple-feature--dark .ap-title { color: #fff; }
.apple-feature--dark .ap-sub { color: #aebfd6; }
.apple-feature--dark .ap-pill--outline { color: #fff; border-color: rgba(255,255,255,.5); }
.apple-feature--dark .ap-pill--outline:hover { background: rgba(255,255,255,.1); }
.apple-feature--dark .ap-pill--fill { background: #2f7bff; }
.apple-feature--dark .ap-pill--fill:hover { background: #4d8dff; }
.ap-title { font-family: var(--font-head); font-weight: 800; font-size: clamp(2.5rem, 6vw, 4.4rem); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); margin: 0 0 14px; }
.ap-sub { font-size: clamp(1.18rem, 2.4vw, 1.65rem); font-weight: 500; line-height: 1.3; color: var(--slate-500); margin: 0 auto 28px; }
.ap-actions { display: flex; flex-wrap: wrap; gap: 14px 18px; justify-content: center; align-items: center; }
.ap-pill { display: inline-flex; align-items: center; justify-content: center; border-radius: 980px; padding: .68em 1.55em; font-family: var(--font-head); font-weight: 600; font-size: 1.06rem; line-height: 1; transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.ap-pill--fill { background: var(--accent); color: #fff; }
.ap-pill--fill:hover { background: var(--accent-600); }
.ap-pill--outline { background: transparent; color: var(--accent); border: 1.5px solid var(--accent); }
.ap-pill--outline:hover { background: rgba(0,74,173,.07); }
.ap-stage { position: relative; margin-top: clamp(30px, 5vw, 56px); height: clamp(330px, 37vw, 460px); display: grid; place-items: center; }
.ap-stage img { max-height: clamp(300px, 34vw, 420px); max-width: min(640px, 92%); width: auto; height: auto; object-fit: contain; transform-origin: center center; will-change: transform; }
@media (max-width: 560px) { .ap-actions { flex-wrap: nowrap; gap: 12px; } .ap-pill { padding: .62em 1.2em; font-size: 1rem; } }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .hero__stage { grid-template-columns: 1fr; justify-items: center; gap: 28px; }
  .hero__visual { order: -1; max-width: 540px; }
  .hero__aside { max-width: 360px; text-align: center; }
  .hero__aside--left, .hero__aside--right { justify-self: center; text-align: center; align-items: center; }
  .avatars { justify-content: center; }
  .split { grid-template-columns: 1fr; }
  .tst-grid { grid-template-columns: 1fr 1fr; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .proc-step::before { display: none; }
  .ind-grid { grid-template-columns: 1fr 1fr; }
  .cta-inner { grid-template-columns: 1fr; }
}
/* Tablet / iPad: centre the lone 3rd card in 3-item grids (services, testimonials) */
@media (min-width: 621px) and (max-width: 980px) {
  .svc-grid > .svc-card:last-child:nth-child(3),
  .tst-grid > .tst-card:last-child:nth-child(3) {
    grid-column: 1 / -1;
    max-width: calc(50% - 14px);
    justify-self: center;
  }
}
@media (max-width: 620px) {
  .tst-grid, .ind-grid, .process-grid, .stat-cluster { grid-template-columns: 1fr; }
  .proc-step::before { display: none !important; }
  /* Trust strip: label on its own centered line, items in a tidy 2-col grid */
  .trust-strip .container { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 14px; padding-block: 22px; }
  .trust-strip .ts-label { grid-column: 1 / -1; text-align: center; margin-bottom: 2px; }
  .trust-strip .ts-item { font-size: .9rem; justify-content: flex-start; }
  .trust-strip .ts-item:last-child { grid-column: 1 / -1; justify-content: center; }
}
