/* ============================================================
   INITIAL SOURCING — custom.css
   Prototype layer on top of Tailwind CDN.
   Future Laravel path: resources/css/app.css (Vite)
   ============================================================ */
:root{
  --ink:#07111F; --dark:#111827; --accent:#F97316; --accent2:#FF8A3D;
  --mist:#F7F8FA; --body:#4B5563; --line:#E7EAF0;
  --radius:1.1rem;
}
html{ -webkit-text-size-adjust:100%; }
body{ text-rendering:optimizeLegibility; }
::selection{ background:var(--accent); color:#fff; }
:focus-visible{ outline:2.5px solid var(--accent); outline-offset:3px; border-radius:4px; }
img{ max-width:100%; }
.font-800{ font-weight:800; }

/* ---------- accessibility ---------- */
.skip-link{ position:fixed; top:-60px; left:16px; z-index:100; background:var(--accent); color:#fff;
  padding:.65rem 1.1rem; border-radius:.6rem; font-weight:600; font-size:14px; transition:top .2s; }
.skip-link:focus{ top:12px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* ---------- typography ---------- */
.h-display{ font-family:Manrope,Inter,system-ui,sans-serif; font-weight:800; letter-spacing:-0.025em;
  line-height:1.02; font-size:clamp(2.4rem,6vw,5.1rem); }
.h2{ font-family:Manrope,Inter,system-ui,sans-serif; font-weight:800; letter-spacing:-0.02em;
  line-height:1.08; color:var(--ink); font-size:clamp(1.9rem,3.6vw,2.9rem); }
/* guard: headings must stay white on dark sections regardless of utility order */
.bg-ink .h2, .bg-dark .h2{ color:#fff; }
section[id]{ scroll-margin-top:84px; }
.eyebrow{ display:flex; align-items:center; gap:.7rem; font-size:12px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--accent); margin-bottom:1.1rem; }
.eyebrow-light{ color:var(--accent2); }
.eyebrow-line{ display:inline-block; width:2.2rem; height:2px; background:currentColor; border-radius:2px; }
.sec-no{ color:inherit; opacity:.65; font-weight:700; }
.section{ padding:clamp(4.5rem,8vw,7.5rem) 0; }

/* ---------- buttons ---------- */
.btn-primary,.btn-dark,.btn-ghost,.btn-outline{ display:inline-flex; align-items:center; gap:.55rem;
  font-family:Manrope,sans-serif; font-weight:700; font-size:14.5px; border-radius:.8rem;
  padding:.85rem 1.5rem; transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s;
  white-space:nowrap; }
.btn-lg{ padding:1.02rem 1.9rem; font-size:15.5px; }
.btn-primary{ background:var(--accent); color:#fff; box-shadow:0 10px 28px -10px rgba(249,115,22,.55); }
.btn-primary:hover{ background:#EA6A0A; transform:translateY(-2px); box-shadow:0 16px 34px -10px rgba(249,115,22,.6); }
.btn-primary svg{ transition:transform .25s; } .btn-primary:hover svg{ transform:translateX(4px); }
.btn-dark{ background:var(--ink); color:#fff; }
.btn-dark:hover{ background:#16263D; transform:translateY(-2px); }
.btn-dark svg{ transition:transform .25s; } .btn-dark:hover svg{ transform:translateX(4px); }
.btn-ghost{ border:1.5px solid rgba(255,255,255,.4); color:#fff; backdrop-filter:blur(6px); }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.1); transform:translateY(-2px); }
.btn-outline{ border:1.5px solid var(--line); color:var(--ink); background:#fff; }
.btn-outline:hover{ border-color:var(--ink); transform:translateY(-2px); }
.link-arrow{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; color:var(--ink); font-size:15px; }
.link-arrow svg{ transition:transform .25s; color:var(--accent); }
.link-arrow:hover svg{ transform:translate(3px,-3px); }

/* ---------- navbar: transparent hero bar → floating glass pill ---------- */
#navbar{ padding-left:.9rem; padding-right:.9rem; }
#navbar > nav{ border:1px solid transparent; border-radius:0;
  transition:height .35s ease, background .35s ease, border-color .35s ease,
  border-radius .35s ease, box-shadow .35s ease, padding .35s ease,
  backdrop-filter .35s ease; }
#navbar.nav-transparent{ background:transparent; border:0; box-shadow:none; }
#navbar.nav-transparent > nav{ background:transparent; border-color:transparent; box-shadow:none;
  backdrop-filter:none; -webkit-backdrop-filter:none; }
#navbar.nav-transparent .nav-ink{ color:#fff; }
#navbar.nav-transparent .nav-link{ color:rgba(255,255,255,.82); }
#navbar.nav-transparent .nav-burger{ border-color:rgba(255,255,255,.35); color:#fff; }
/* scrolled: detached floating pill */
#navbar.nav-solid{ top:.7rem; background:transparent; border-bottom-color:transparent;
  backdrop-filter:none; -webkit-backdrop-filter:none; }
#navbar.nav-solid > nav{ height:62px; padding-left:1rem; padding-right:.55rem;
  background:rgba(255,255,255,.86); backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
  border-color:rgba(13,25,43,.09); border-radius:1.15rem;
  box-shadow:0 24px 55px -22px rgba(7,17,31,.35), 0 2px 10px -4px rgba(7,17,31,.12); }
#navbar.nav-solid .btn-primary{ padding:.68rem 1.15rem; font-size:13.5px; border-radius:.8rem; }
#navbar.nav-solid .nav-ink{ color:var(--ink); }
#navbar.nav-solid .nav-link{ color:var(--ink); }
#navbar.nav-solid .nav-burger{ border-color:var(--line); color:var(--ink); }
.nav-link{ position:relative; padding:.4rem 0; transition:color .25s; }
.nav-link::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--accent); border-radius:2px; transition:width .28s ease; }
.nav-link:hover::after,.nav-link.active::after{ width:100%; }
.nav-link.active{ color:var(--accent) !important; }
.nav-burger{ border:1.5px solid; border-radius:9999px; }
.logo-mark{ display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem;
  border-radius:.8rem; background:linear-gradient(135deg,var(--accent),#EA580C); color:#fff;
  box-shadow:0 8px 20px -8px rgba(249,115,22,.6); }
/* official brand logo (transparent PNG) */
.site-logo{ height:2.6rem; width:auto; display:block; transition:height .35s ease, filter .35s ease; }
#navbar.nav-solid .site-logo{ height:2.3rem; filter:drop-shadow(0 1px 1px rgba(7,17,31,.22)); }
.footer-logo{ height:3.8rem; width:auto; display:block; }
@media (max-width:767px){ .site-logo{ height:2.25rem; } #navbar.nav-solid .site-logo{ height:2.1rem; } }
/* burger */
.burger{ display:flex; flex-direction:column; gap:5px; width:18px; }
.burger span{ display:block; height:2px; background:currentColor; border-radius:2px; transition:.3s; }
#menuBtn[aria-expanded="true"] .burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
#menuBtn[aria-expanded="true"] .burger span:nth-child(2){ opacity:0; }
#menuBtn[aria-expanded="true"] .burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-menu{ max-height:0; overflow:hidden; visibility:hidden;
  transition:max-height .45s cubic-bezier(.4,0,.2,1), margin .3s ease, visibility 0s .45s;
  background:rgba(255,255,255,.97); backdrop-filter:blur(14px); border:0 solid transparent; border-radius:1rem; }
.mobile-menu.open{ max-height:520px; margin-top:.5rem; visibility:visible; border-width:1px; border-color:var(--line);
  box-shadow:0 30px 60px -25px rgba(7,17,31,.35);
  transition:max-height .45s cubic-bezier(.4,0,.2,1), margin .3s ease; }
#navbar.nav-transparent .mobile-menu{ background:rgba(7,17,31,.97); }
#navbar.nav-transparent .mobile-menu.open{ border-color:rgba(255,255,255,.14); }
#navbar.nav-transparent .mobile-menu .m-link{ color:#fff; border-color:rgba(255,255,255,.1); }
.m-link{ display:block; padding:.9rem .25rem; border-bottom:1px solid var(--line); color:var(--ink); transition:color .2s, padding-left .2s; }
.m-link:hover{ color:var(--accent); padding-left:.6rem; }

/* ---------- hero ---------- */
.hero-img{ position:absolute; inset:0; width:100%; height:112%; object-fit:cover;
  animation:heroZoom 9s ease-out forwards; will-change:transform; }
@keyframes heroZoom{ from{ transform:scale(1.12); } to{ transform:scale(1.02); } }
.hero-overlay{ background:linear-gradient(100deg,rgba(7,17,31,.93) 20%,rgba(7,17,31,.72) 48%,rgba(7,17,31,.38) 100%),
  linear-gradient(to top,rgba(7,17,31,.92) 0%,transparent 34%); }
.hero-grid{ background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 90% 80% at 30% 60%,#000 30%,transparent 75%), linear-gradient(to bottom, transparent 0, #000 130px);
  -webkit-mask-composite:source-in;
  mask-image:radial-gradient(ellipse 90% 80% at 30% 60%,#000 30%,transparent 75%), linear-gradient(to bottom, transparent 0, #000 130px);
  mask-composite:intersect; }
.route-dash{ animation:dash 22s linear infinite; }
@keyframes dash{ to{ stroke-dashoffset:-560; } }
.stat-cell{ background:rgba(7,17,31,.55); padding:1.15rem 1.3rem; }
.stat-num{ font-family:Manrope,sans-serif; font-weight:800; font-size:clamp(1.6rem,3vw,2.3rem); color:#fff; line-height:1; }
.stat-num span{ font-variant-numeric:tabular-nums; }
.stat-label{ margin-top:.45rem; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.hero-card{ position:absolute; right:max(1.5rem,calc((100vw - 80rem)/2 + 1.5rem)); bottom:12rem; z-index:20;
  flex-direction:column; gap:.5rem; width:300px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px); border-radius:1rem; padding:1.1rem 1.2rem; color:#fff; box-shadow:0 24px 60px -20px rgba(0,0,0,.6); }
.hero-card-head{ display:flex; align-items:center; gap:.5rem; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#7EE2A8; }
.pulse-dot{ width:9px; height:9px; border-radius:50%; background:#22C55E; box-shadow:0 0 0 0 rgba(34,197,94,.6); animation:pulse 2s infinite; }
@keyframes pulse{ 70%{ box-shadow:0 0 0 10px rgba(34,197,94,0);} 100%{ box-shadow:0 0 0 0 rgba(34,197,94,0);} }
.hero-card-title{ font-size:14px; font-weight:600; line-height:1.45; }
.hero-card-row{ display:flex; justify-content:space-between; font-size:12.5px; color:rgba(255,255,255,.65); }
.hero-card-row strong{ color:#fff; }
.hero-card-bar{ height:6px; border-radius:99px; background:rgba(255,255,255,.15); overflow:hidden; }
.hero-card-bar span{ display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent2)); border-radius:99px; }
.scroll-hint{ position:absolute; left:50%; bottom:1.1rem; transform:translateX(-50%); z-index:20; width:26px; height:42px;
  border:2px solid rgba(255,255,255,.4); border-radius:99px; display:flex; justify-content:center; padding-top:8px; }
.scroll-hint span{ width:4px; height:8px; border-radius:99px; background:var(--accent2); animation:wheel 1.8s ease-in-out infinite; }
@keyframes wheel{ 0%{ transform:translateY(0); opacity:1;} 70%{ transform:translateY(14px); opacity:0;} 100%{ opacity:0;} }

/* ---------- reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- about ---------- */
.check-item{ display:flex; gap:.7rem; align-items:flex-start; font-size:15.5px; color:var(--ink); font-weight:500; }
.img-frame{ position:relative; border-radius:1.25rem; overflow:hidden; box-shadow:0 30px 60px -25px rgba(7,17,31,.35); }
.img-frame img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/4.4; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.img-frame:hover .img-zoom{ transform:scale(1.06); }
.img-caption{ position:absolute; left:1rem; bottom:1rem; font-size:12px; letter-spacing:.04em; color:#fff;
  background:rgba(7,17,31,.65); backdrop-filter:blur(8px); padding:.45rem .9rem; border-radius:.6rem; }
.float-card{ position:absolute; left:-1.2rem; bottom:2.2rem; display:flex; gap:.8rem; align-items:center;
  background:#fff; border:1px solid var(--line); border-radius:1rem; padding:1rem 1.25rem;
  box-shadow:0 24px 50px -20px rgba(7,17,31,.35); font-size:15px; color:var(--ink); }
.exp-badge{ position:absolute; top:-1.4rem; right:1.2rem; background:var(--ink); color:#fff; border-radius:1rem;
  padding:.9rem 1.2rem; display:flex; align-items:center; gap:.7rem; box-shadow:0 20px 44px -18px rgba(7,17,31,.6); }
.exp-badge strong{ font-family:Manrope; font-size:1.9rem; color:var(--accent2); line-height:1; }
.exp-badge span{ font-size:12px; line-height:1.4; color:rgba(255,255,255,.7); }

/* ---------- services ---------- */
.bg-grid{ background-image:linear-gradient(#E7EAF0 1px,transparent 1px),linear-gradient(90deg,#E7EAF0 1px,transparent 1px);
  background-size:56px 56px; mask-image:radial-gradient(ellipse 80% 70% at 50% 0%,#000 20%,transparent 75%); opacity:.7; }
.svc{ position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.7rem 1.5rem; display:flex; flex-direction:column; gap:.7rem; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.svc::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent2)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.svc:hover{ transform:translateY(-7px); box-shadow:0 26px 50px -22px rgba(7,17,31,.28); border-color:#F5C9A8; }
.svc:hover::before{ transform:scaleX(1); }
.svc-no{ font-family:Manrope; font-weight:800; font-size:13px; letter-spacing:.18em; color:#C7CDD8; }
.svc-icon{ width:2.9rem; height:2.9rem; color:var(--accent); background:#FFF3EA; border-radius:.85rem;
  padding:.65rem; transition:.3s; }
.svc:hover .svc-icon{ background:var(--accent); color:#fff; }
.svc h3{ font-family:Manrope; font-weight:800; font-size:17.5px; color:var(--ink); }
.svc p{ font-size:14px; line-height:1.65; flex:1; }
.svc-arrow{ display:inline-flex; align-items:center; gap:.45rem; font-size:13.5px; font-weight:700; color:var(--ink); }
.svc-arrow svg{ color:var(--accent); transition:transform .3s; }
.svc:hover .svc-arrow svg{ transform:translateX(6px); }

/* ---------- process ---------- */
.process-wrap{ position:relative; }
.process-line{ position:absolute; top:23px; left:0; right:0; height:2px; background:rgba(255,255,255,.14); border-radius:2px; }
.process-line span{ display:block; height:100%; width:100%; border-radius:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent2)); transform:scaleX(0); transform-origin:left; transition:transform .2s linear; }
.process-grid{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:2.5rem 2rem; list-style:none; }
.step-dot{ display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:50%;
  background:var(--ink); border:2px solid var(--accent); font-family:Manrope; font-weight:800; font-size:14px; color:#fff;
  position:relative; z-index:1; box-shadow:0 0 0 6px rgba(249,115,22,.12); margin-bottom:1rem; }
.step h3{ font-family:Manrope; font-weight:800; font-size:16.5px; margin-bottom:.45rem; }
.step p{ font-size:13.8px; color:rgba(255,255,255,.6); line-height:1.65; }

/* ---------- network / map ---------- */
.hub{ display:flex; align-items:center; gap:.6rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  border-radius:.75rem; padding:.7rem .9rem; font-weight:600; min-width:0; }
.hub-txt{ display:flex; flex-direction:column; min-width:0; line-height:1.4; }
.hub-txt strong{ font-size:14.5px; font-weight:700; white-space:nowrap; }
.hub-txt em{ display:block; font-style:normal; font-weight:400; font-size:12px; color:rgba(255,255,255,.5); }
@media (max-width:400px){ .hub{ padding:.65rem .7rem; gap:.5rem; } .hub-txt strong{ font-size:13.5px; } }
.hub-dot{ width:10px; height:10px; border-radius:50%; background:var(--accent2); box-shadow:0 0 12px rgba(255,138,61,.8); flex-shrink:0; }
.hub-main{ background:var(--accent); animation:pulse 2s infinite; }
.map-card{ background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.12); border-radius:1.25rem;
  padding:1.5rem; box-shadow:0 30px 70px -30px rgba(0,0,0,.7); }
/* realistic dotted world map (dot positions generated from real country GeoJSON) */
.map-dots{ fill:none; stroke:rgba(255,255,255,.20); stroke-width:2.6; stroke-linecap:round; }
.map-dots-hub{ fill:none; stroke:#F97316; stroke-width:3; stroke-linecap:round; opacity:.9; }
.map-lbl{ paint-order:stroke; stroke:#0B1526; stroke-width:3px; }
.route-dim{ fill:none; stroke:#F97316; stroke-width:1.2; stroke-dasharray:4 7; opacity:.45; animation:dash 18s linear infinite; }
.map-legend{ display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1rem; font-size:12.5px; color:rgba(255,255,255,.6); }
.map-legend span{ display:inline-flex; align-items:center; gap:.45rem; }
.map-legend i{ width:9px; height:9px; border-radius:50%; display:inline-block; }
.dot-main{ background:var(--accent); box-shadow:0 0 10px var(--accent); }
.dot{ background:var(--accent2); } .dot-dim{ background:rgba(255,255,255,.5); }
@media (max-width:767px){
  .map-card{ padding:1rem; }
}
.map-pulse{ animation:mapPulse 2.2s ease-out infinite; transform-origin:center; transform-box:fill-box; }
@keyframes mapPulse{ 0%{ opacity:1;} 70%{ opacity:.35;} 100%{ opacity:1;} }
.routes path{ animation:dash 14s linear infinite; }

/* ---------- industries ---------- */
.ind{ position:relative; border-radius:var(--radius); overflow:hidden; min-height:300px; display:block; isolation:isolate; }
.ind-7{ grid-column:span 7; } .ind-5{ grid-column:span 5; }
.ind img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1); z-index:-2; }
.ind:hover img{ transform:scale(1.07); }
.ind-shade{ position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top,rgba(7,17,31,.88) 8%,rgba(7,17,31,.35) 55%,rgba(7,17,31,.05) 100%); transition:.4s; }
.ind:hover .ind-shade{ background:linear-gradient(to top,rgba(7,17,31,.92) 8%,rgba(7,17,31,.45) 60%,rgba(249,115,22,.12) 100%); }
.ind-body{ position:absolute; inset:auto 0 0 0; padding:1.4rem 1.5rem; color:#fff; }
.ind-tag{ font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--accent2); }
.ind-title{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:.4rem;
  font-family:Manrope; font-weight:800; font-size:clamp(1.15rem,2.2vw,1.5rem); }
.ind-title svg{ flex-shrink:0; background:rgba(255,255,255,.14); border-radius:50%; padding:.45rem; width:2.2rem; height:2.2rem;
  backdrop-filter:blur(6px); transition:.3s; }
.ind:hover .ind-title svg{ background:var(--accent); transform:rotate(45deg); }

/* ---------- why ---------- */
.why-item{ display:flex; gap:1rem; align-items:flex-start; }
.why-ic{ flex-shrink:0; width:2.9rem; height:2.9rem; border-radius:.9rem; background:var(--ink); color:var(--accent2);
  display:flex; align-items:center; justify-content:center; }
.why-item h3{ font-family:Manrope; font-weight:800; font-size:17px; color:var(--ink); }
.why-item p{ font-size:14.5px; margin-top:.25rem; }
.flow-card{ background:var(--ink); color:#fff; border-radius:1.4rem; padding:2.2rem; position:relative; overflow:hidden;
  box-shadow:0 34px 70px -30px rgba(7,17,31,.6); }
.flow-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--accent),var(--accent2)); }
.flow-title{ font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--accent2); margin-bottom:1.4rem; }
.flow{ list-style:none; display:flex; flex-direction:column; }
.flow li{ display:flex; gap:1rem; align-items:center; padding:.85rem 0; position:relative; }
.flow li:not(:last-child)::after{ content:""; position:absolute; left:22px; top:58px; bottom:-8px; width:2px;
  background:linear-gradient(var(--accent),rgba(249,115,22,.15)); }
.flow-ic{ flex-shrink:0; width:45px; height:45px; border-radius:50%; background:rgba(249,115,22,.14);
  border:1.5px solid rgba(249,115,22,.5); color:var(--accent2); display:flex; align-items:center; justify-content:center; z-index:1; }
.flow-txt strong{ display:block; font-family:Manrope; font-size:16.5px; }
.flow-txt em{ font-style:normal; font-size:13px; color:rgba(255,255,255,.55); }
.flow-foot{ margin-top:1.2rem; display:flex; gap:.6rem; align-items:flex-start; font-size:13.5px; color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:.8rem; padding:.9rem 1rem; }

/* ---------- quality ---------- */
.qc-badge{ position:absolute; top:1rem; right:1rem; display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,.94); color:var(--ink); font-size:12.5px; font-weight:700;
  padding:.55rem .95rem; border-radius:99px; box-shadow:0 12px 30px -12px rgba(0,0,0,.4); }

/* ---------- case studies ---------- */
.case{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s; }
.case:hover{ transform:translateY(-7px); box-shadow:0 28px 55px -24px rgba(7,17,31,.3); }
.case-img{ position:relative; height:220px; overflow:hidden; }
.case-img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.case:hover .case-img img{ transform:scale(1.07); }
.case-no{ position:absolute; top:.9rem; left:.9rem; font-size:11.5px; font-weight:800; letter-spacing:.14em;
  background:rgba(7,17,31,.7); color:#fff; backdrop-filter:blur(8px); padding:.4rem .8rem; border-radius:.55rem; text-transform:uppercase; }
.case-body{ padding:1.5rem 1.5rem 1.7rem; }
.case-ind{ font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.case-body h3{ font-family:Manrope; font-weight:800; font-size:19px; color:var(--ink); margin:.5rem 0 1rem; }
.case-body dl{ display:flex; flex-direction:column; gap:.8rem; font-size:13.8px; }
.case-body dt{ font-weight:800; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#9AA3B2; }
.case-body dd{ margin:0; color:var(--body); line-height:1.6; }

/* ---------- testimonials ---------- */
.t-slider{ position:relative; min-height:230px; }
.t-slide{ position:absolute; inset:0; opacity:0; transform:translateY(14px); transition:.55s ease; pointer-events:none; }
.t-slide.active{ opacity:1; transform:none; position:relative; pointer-events:auto; }
.t-quote{ font-family:Manrope; font-weight:700; font-size:clamp(1.3rem,3vw,2rem); line-height:1.4; letter-spacing:-0.01em; }
.t-quote::before{ content:""; display:block; width:3rem; height:3px; background:var(--accent); border-radius:2px; margin:0 auto 1.4rem; }
.t-slide footer{ margin-top:1.4rem; }
.t-slide footer strong{ display:block; font-size:15.5px; }
.t-slide footer span{ font-size:13.5px; color:rgba(255,255,255,.55); }
.t-btn{ width:3rem; height:3rem; border-radius:50%; border:1.5px solid rgba(255,255,255,.25);
  display:inline-flex; align-items:center; justify-content:center; transition:.25s; color:#fff; }
.t-btn:hover{ background:var(--accent); border-color:var(--accent); }
.t-dots{ display:flex; gap:.55rem; }
.t-dots button{ width:2rem; height:4px; border-radius:99px; background:rgba(255,255,255,.2); transition:.3s; }
.t-dots button.active{ background:var(--accent); width:2.8rem; }

/* ---------- impact ---------- */
.impact-num{ font-family:Manrope; font-weight:800; font-size:clamp(2.4rem,5vw,3.6rem); color:#fff; font-variant-numeric:tabular-nums; }
.impact-num span{ color:var(--accent2); }
.impact-label{ margin-top:.4rem; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }

/* ---------- faq ---------- */
.faq-side{ margin-top:2rem; background:var(--ink); color:#fff; border-radius:var(--radius); padding:1.6rem; }
.faq-side p{ font-size:14.5px; color:rgba(255,255,255,.75); margin-top:.7rem; }
.faq-list{ display:flex; flex-direction:column; gap:.8rem; }
.faq{ border:1px solid var(--line); border-radius:.95rem; background:#fff; overflow:hidden; transition:border-color .3s, box-shadow .3s; }
.faq.open{ border-color:#F5C9A8; box-shadow:0 18px 40px -22px rgba(249,115,22,.35); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; text-align:left;
  font-family:Manrope; font-weight:700; font-size:15.5px; color:var(--ink); padding:1.15rem 1.35rem; }
.faq-q svg{ flex-shrink:0; color:var(--accent); transition:transform .35s; }
.faq.open .faq-q svg{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.4,0,.2,1); }
.faq-a p{ padding:0 1.35rem 1.3rem; font-size:14.5px; line-height:1.7; }

/* ---------- form ---------- */
.contact-line{ display:flex; gap:.85rem; align-items:flex-start; }
.contact-line strong{ display:block; color:var(--ink); font-size:15.5px; }
.contact-line em{ font-style:normal; font-size:13px; color:#8A93A3; }
.mini-steps{ margin-top:2rem; display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; }
.mini-steps div{ background:#fff; border:1px solid var(--line); border-radius:.85rem; padding:.9rem; text-align:center; }
.mini-steps strong{ display:block; font-family:Manrope; color:var(--accent); font-size:18px; }
.mini-steps span{ font-size:12px; font-weight:600; color:var(--ink); }
.form-card{ background:#fff; border:1px solid var(--line); border-radius:1.3rem; padding:clamp(1.4rem,3vw,2.4rem);
  box-shadow:0 30px 70px -35px rgba(7,17,31,.3); position:relative; }
.field label{ display:block; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:.45rem; }
.field input,.field select,.field textarea{ width:100%; border:1.5px solid var(--line); border-radius:.7rem;
  padding:.8rem 1rem; font-size:14.5px; color:var(--ink); background:#fff; transition:border-color .2s, box-shadow .2s; font-family:Inter,sans-serif; }
.field textarea{ resize:vertical; min-height:110px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(249,115,22,.15); }
.field.invalid input,.field.invalid select,.field.invalid textarea{ border-color:#DC2626; }
.field .err{ display:none; font-size:12px; color:#DC2626; margin-top:.35rem; font-weight:500; }
.field.invalid .err{ display:block; }
.upload{ display:flex !important; align-items:center; gap:.7rem; border:1.5px dashed #C9D1DD !important;
  border-radius:.7rem; padding:1rem !important; font-weight:500 !important; color:var(--body) !important;
  font-size:13.5px !important; cursor:pointer; transition:.25s; margin-bottom:0 !important; }
.upload:hover{ border-color:var(--accent) !important; background:#FFF7F0; }
.form-success{ text-align:center; padding:2rem 1rem; }
.success-ic{ display:inline-flex; background:#E9F9EF; color:#16A34A; border-radius:50%; padding:1.1rem; }
.form-success h3{ font-family:Manrope; font-weight:800; font-size:22px; color:var(--ink); margin:1.1rem 0 .6rem; }
.form-success p{ font-size:14.5px; }
.form-success .ref{ margin:1rem 0 1.4rem; font-size:14px; }

/* ---------- logistics strip ---------- */
.strip{ display:flex; gap:1rem; align-items:center; background:var(--mist); border:1px solid var(--line); border-radius:1rem; padding:.9rem; }
.strip img{ width:96px; height:76px; object-fit:cover; border-radius:.7rem; flex-shrink:0; }
.strip strong{ display:block; font-family:Manrope; color:var(--ink); font-size:15.5px; }
.strip span{ font-size:13px; }

/* ---------- footer ---------- */
.f-title{ font-size:12px; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--accent2); margin-bottom:1.1rem; }
.f-links{ list-style:none; display:flex; flex-direction:column; gap:.65rem; font-size:14.5px; }
.f-links a{ color:rgba(255,255,255,.65); transition:.2s; }
.f-links a:hover{ color:#fff; padding-left:4px; }
.f-contact{ list-style:none; display:flex; flex-direction:column; gap:.8rem; font-size:14px; color:rgba(255,255,255,.65); }
.f-contact li{ display:flex; gap:.6rem; align-items:flex-start; }
.f-contact a:hover{ color:#fff; }
.soc{ width:2.5rem; height:2.5rem; border-radius:.75rem; border:1px solid rgba(255,255,255,.16);
  display:inline-flex; align-items:center; justify-content:center; color:rgba(255,255,255,.7); transition:.25s; }
.soc:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:translateY(-2px); }
.soc svg{ width:1rem; height:1rem; display:block; }

/* ---------- back to top ---------- */
#toTop{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:60; width:3rem; height:3rem; border-radius:50%;
  background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -12px rgba(7,17,31,.6); opacity:0; transform:translateY(12px); pointer-events:none; transition:.3s; }
#toTop.show{ opacity:1; transform:none; pointer-events:auto; }
#toTop:hover{ background:var(--accent); }

/* ---------- responsive ---------- */
@media (max-width:1023px){
  .process-grid{ grid-template-columns:repeat(2,1fr); }
  .process-line{ display:none; }
  .step{ border-left:2px solid rgba(249,115,22,.4); padding-left:1.2rem; }
  .step-dot{ width:40px; height:40px; }
  .ind-7,.ind-5{ grid-column:span 6; }
}
@media (max-width:767px){
  .process-grid{ grid-template-columns:1fr; gap:1.8rem; }
  .ind-7,.ind-5{ grid-column:span 12; }
  .ind{ min-height:250px; }
  .float-card{ left:.8rem; bottom:-1.4rem; }
  .exp-badge{ top:-1rem; right:.8rem; }
  #about .relative{ margin-bottom:2rem; }
  .hero-card{ display:none; }
  .t-slider{ min-height:300px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}
