/* ---------- Interactive preview layer ---------- */
@media (prefers-reduced-motion: no-preference) {
  .js-anim .reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
  .js-anim .reveal.in { opacity: 1; transform: none; }
  .js-anim .reveal-left { transform: translateX(-36px); }
  .js-anim .reveal-right { transform: translateX(36px); }
  .js-anim .reveal-left.in, .js-anim .reveal-right.in { transform: none; }
  .hero-copy h1 { animation: heroIn .9s cubic-bezier(.2,.7,.2,1) both; }
  .hero-copy .lead { animation: heroIn .9s .15s cubic-bezier(.2,.7,.2,1) both; }
  .hero-copy .cta-row { animation: heroIn .9s .3s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes heroIn { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
}

/* Buttons */
.btn { transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(15,42,92,.18); }

/* Four steps: lift + gold underline grows */
.pillars li { position: relative; transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
.pillars li::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: #b8912f; transition: width .35s ease; }
.pillars li:hover { transform: translateY(-6px); box-shadow: 0 14px 30px rgba(15,42,92,.12); background: #fff; }
.pillars li:hover::after { width: 100%; }

/* Service rows: gold bar slides in, row tints, arrow travels */
.svc-row { position: relative; transition: background-color .25s ease, padding-left .25s ease; }
.svc-row::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 4px; background: #b8912f; transform: scaleY(0); transform-origin: center; transition: transform .25s ease; }
.svc-row:hover, .svc-row:focus-visible { background: #f3f5f9; padding-left: 18px; }
.svc-row:hover::before, .svc-row:focus-visible::before { transform: scaleY(1); }
.svc-row:hover .svc-row-go { transform: translateX(8px); }

/* Industries tiles */
.industries li { transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background-color .22s ease; cursor: default; }
.industries li:hover { transform: translateY(-4px); border-color: #b8912f; box-shadow: 0 10px 22px rgba(0,0,0,.18); }

/* Stats strip */
.stats { background: #0b1f45; color: #fff; padding-block: 34px; }
.stats .wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; text-align: center; }
.stat b { display: block; font-family: var(--display); font-size: clamp(2.6rem, 5vw, 3.6rem); line-height: 1; color: #e3c77d; font-variant-numeric: tabular-nums; }
.stat span { display: block; margin-top: 8px; font-family: var(--label); font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: #c9d3e6; }
@media (max-width: 640px) { .stats .wrap { grid-template-columns: minmax(0,1fr); } }

/* Other pages: gentle hovers */
.band .svc { transition: transform .22s ease, box-shadow .22s ease; }
.band .svc:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(15,42,92,.10); }
.svc-detail { transition: background-color .25s ease; }
.portrait img { transition: transform .6s ease; }
.portrait { overflow: hidden; }
.portrait:hover img { transform: scale(1.03); }

/* "Ask about this service" link */
.ask-link { margin-top: .9rem; background: none; border: 0; padding: 0; font: inherit; font-family: var(--label); font-weight: 600; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--royal, #1f4fa8); cursor: pointer; }
.ask-link span { display: inline-block; transition: transform .2s ease; }
.ask-link:hover { color: #0f2a5c; } .ask-link:hover span { transform: translateX(5px); }

/* Project inquiry form */
.pq-dlg { max-width: 760px; }
.pq-form { display: grid; gap: 14px; }
.pq-form .field label { display: grid; gap: 6px; font-weight: 600; color: var(--ink); }
.pq-form .field input, .pq-form .field select, .pq-form .field textarea { font: inherit; font-size: 1rem; font-weight: 400; color: var(--text); background: #fff; border: 1px solid #b9c2d3; padding: 10px 12px; width: 100%; }
.pq-form .field textarea { resize: vertical; }
.pq-form [aria-invalid=true] { border-color: #b3261e !important; outline: 1px solid #b3261e; }
.pq-svcs { border: 0; padding: 0; margin: 0; }
.pq-svcs legend { font-weight: 600; color: var(--ink); margin-bottom: 6px; padding: 0; }
.pq-svcs .opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
.pq-svcs label { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; color: var(--text); cursor: pointer; }
.pq-svcs input { margin-top: .3em; }
.pq-note { margin: 0; color: var(--muted); font-size: .95rem; }
.pq-done { padding: 8px 0; } .pq-done strong { color: var(--ink); font-size: 1.25rem; }
.pq-inline h2 { margin-bottom: .8rem; }
@media (max-width: 640px) { .pq-svcs .opts { grid-template-columns: minmax(0, 1fr); } }
main { overflow-x: clip; }
.pq-other .count { display: block; text-align: right; color: var(--muted); font-size: .85rem; margin-top: .2rem; }
.pq-desc-count { display: block; text-align: right; color: var(--muted); font-size: .85rem; margin-top: .2rem; }
.pq-chosen { margin: 0; padding: 10px 14px; background: #f3f5f9; border-left: 3px solid #b8912f; color: var(--text); } .pq-chosen strong { color: var(--ink); }
.pq-svcs[hidden] { display: none; }

.stat span { font-size: .88rem; }
.pq-hint { font-weight: 400; color: var(--muted); }
.pq-svcs.invalid { outline: 1px solid #b3261e; outline-offset: 6px; }
.pq-svcs.invalid legend { color: #b3261e; }
