/* =============================================================
   HOME PAGE — "ONE PARTNER. EVERY LOGISTICS NEED." SECTION
   Simplified, bulletproof layout using inline-block instead of grid.
   Works reliably even when other stylesheets fight for specificity.
   ============================================================= */

section.one-partner {
  position: relative;
  padding: 110px 0 80px;
  background: radial-gradient(ellipse at center top, #14355B 0%, #061729 65%, #030b17 100%);
  color: #fff;
  overflow: hidden;
  scroll-margin-top: 100px;
}
section.one-partner * { box-sizing: border-box; }
section.one-partner a { text-decoration: none !important; color: inherit; }
section.one-partner img { max-width: 100%; height: auto; }

section.one-partner .container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  position: relative;
  z-index: 2;
}

/* Background layers */
section.one-partner .one-partner-bg,
section.one-partner .one-partner-glow {
  position: absolute;
  z-index: 0;
  pointer-events: none;
}
section.one-partner .one-partner-bg {
  inset: 0;
  background-image:
    radial-gradient(rgba(125,182,255,.10) 1px, transparent 1.5px),
    radial-gradient(rgba(125,182,255,.06) 1px, transparent 1.5px);
  background-size: 28px 28px, 56px 56px;
  background-position: 0 0, 14px 14px;
  opacity: .5;
}
section.one-partner .one-partner-glow {
  border-radius: 50%;
  filter: blur(80px);
  opacity: .28;
}
section.one-partner .one-partner-glow-1 { top: 10%;   left: 8%;  width: 320px; height: 320px; background: #4ea1ff; }
section.one-partner .one-partner-glow-2 { bottom: 5%; right: 8%; width: 380px; height: 380px; background: #6f4bff; }

/* ---------- Head ---------- */
section.one-partner .one-partner-head {
  text-align: center;
  margin-bottom: 60px;
}
section.one-partner .one-partner-eyebrow {
  display: inline-block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 12px; letter-spacing: 4px; font-weight: 700;
  color: #7db6ff; text-transform: uppercase;
  margin-bottom: 18px;
}
section.one-partner .one-partner-eyebrow span {
  display: inline-block;
  width: 40px; height: 1px;
  vertical-align: middle;
  margin: 0 10px;
  background: linear-gradient(90deg, transparent, #7db6ff, transparent);
}
section.one-partner .one-partner-head h2 {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: clamp(34px, 5.5vw, 62px);
  line-height: 1.02; letter-spacing: -1.5px;
  color: #fff;
  margin: 0 0 22px;
  text-shadow: 0 4px 30px rgba(78,161,255,.15);
}
section.one-partner .one-partner-head h2 .accent {
  background: linear-gradient(90deg, #7db6ff 0%, #b4bac3 60%, #e0e4e9 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
section.one-partner .one-partner-tags {
  font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 500;
  color: rgba(224,228,233,.85);
  margin: 0;
}
section.one-partner .one-partner-tags span,
section.one-partner .one-partner-tags em {
  display: inline-block; vertical-align: middle;
}
section.one-partner .one-partner-tags em {
  width: 5px; height: 5px; border-radius: 50%;
  background: #7db6ff;
  margin: 0 12px;
  box-shadow: 0 0 8px rgba(125,182,255,.6);
}

/* ---------- Network (3-column table-style) ----------
   Uses table + table-cell so it works even if flex/grid
   rules fight with other stylesheets on the page. */
section.one-partner .op-network {
  display: table;
  width: 100%;
  max-width: 1160px;
  margin: 0 auto;
  border-collapse: separate;
  border-spacing: 40px 0;
  position: relative;
}
section.one-partner .op-col,
section.one-partner .op-hub {
  display: table-cell;
  vertical-align: middle;
}
section.one-partner .op-col { width: 40%; }
section.one-partner .op-hub { width: 20%; }

section.one-partner .op-network-lines {
  display: none;  /* connecting lines are now drawn via CSS on each icon */
}

/* ---------- Service rows ---------- */
section.one-partner .op-service {
  display: flex !important;
  align-items: center !important;
  gap: 20px;
  padding: 22px 0;
  position: relative;
  z-index: 2;
  color: inherit;
  transition: transform .3s ease;
  text-decoration: none;
}
section.one-partner .op-col-left  .op-service {
  flex-direction: row !important;
  text-align: right;
  justify-content: flex-end;  /* pack icon+text at RIGHT edge (near orb) */
}
section.one-partner .op-col-right .op-service {
  flex-direction: row !important;
  text-align: left;
  justify-content: flex-start;  /* pack icon+text at LEFT edge (near orb) */
}

section.one-partner .op-service-icon {
  flex-shrink: 0;
  width: 68px; height: 68px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #1e4870 0%, #0A2445 70%);
  color: #7db6ff;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(125,182,255,.35);
  box-shadow:
    inset 0 0 20px rgba(125,182,255,.15),
    0 0 0 6px rgba(125,182,255,.05),
    0 0 25px rgba(125,182,255,.2);
  transition: .35s;
  position: relative;
}
section.one-partner .op-service-icon svg {
  width: 30px; height: 30px;
  display: block;
}

section.one-partner .op-service-text {
  flex: 0 1 auto;
  max-width: 220px;
  padding: 0;
  margin: 0;
}
section.one-partner .op-service-text strong {
  display: block;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
  font-size: 20px; letter-spacing: 1.8px;
  color: #fff;
  margin: 0 0 8px;
  padding: 0;
  line-height: 1.15;
}
section.one-partner .op-service-text span {
  display: block;
  font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 400;
  color: rgba(224,228,233,.72);
  line-height: 1.45;
  margin: 0;
  padding: 0;
}

/* Connecting line drawn from each icon toward the ORB.
   Length is shorter than before so the line + dot end BEFORE the
   outer edge of the orb (previously they crossed into the orb). */
section.one-partner .op-service-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 80px;   /* was 140px — trimmed so line stops at orb edge */
  height: 1px;
  z-index: -1;
  pointer-events: none;
}
section.one-partner .op-col-left  .op-service-icon::after {
  left: 100%;
  transform: translateY(-50%);
  background: linear-gradient(90deg, transparent 0%, rgba(125,182,255,.15) 10%, #7db6ff 100%);
}
section.one-partner .op-col-right .op-service-icon::after {
  right: 100%;
  transform: translateY(-50%);
  background: linear-gradient(90deg, #7db6ff 0%, rgba(125,182,255,.15) 90%, transparent 100%);
}

/* small pulsing dot midway on the line (not inside the orb) */
section.one-partner .op-service-icon::before {
  content: '';
  position: absolute;
  top: 50%;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #7db6ff;
  box-shadow: 0 0 10px rgba(125,182,255,.8);
  z-index: 0;
  animation: opDotPulse 2.8s ease-in-out infinite;
}
section.one-partner .op-col-left  .op-service-icon::before {
  left: calc(100% + 35px);  /* midway on the 80px line */
  transform: translateY(-50%);
}
section.one-partner .op-col-right .op-service-icon::before {
  right: calc(100% + 35px);
  transform: translateY(-50%);
}
@keyframes opDotPulse {
  0%, 100% { opacity: .3; transform: translateY(-50%) scale(.8); }
  50%      { opacity: 1;  transform: translateY(-50%) scale(1.2); }
}

section.one-partner .op-service:hover .op-service-icon {
  color: #fff;
  border-color: #7db6ff;
  box-shadow:
    inset 0 0 25px rgba(125,182,255,.3),
    0 0 0 6px rgba(125,182,255,.1),
    0 0 40px rgba(125,182,255,.5);
}

section.one-partner .op-service:hover { transform: translateY(-2px); }

/* ---------- Center RFS orb ---------- */
section.one-partner .op-hub {
  text-align: center;
}
section.one-partner .op-hub-inner {
  position: relative;
  display: inline-block;
  width: 220px; height: 220px;
}
section.one-partner .op-hub-ring {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
section.one-partner .op-hub-ring-outer {
  inset: 0;
  border: 1px dashed rgba(125,182,255,.28);
  animation: opRingSpin 40s linear infinite;
}
section.one-partner .op-hub-ring-mid {
  top: 12px; left: 12px; right: 12px; bottom: 12px;
  border: 1px solid rgba(125,182,255,.4);
  box-shadow: inset 0 0 30px rgba(125,182,255,.12), 0 0 40px rgba(125,182,255,.15);
}
@keyframes opRingSpin { to { transform: rotate(360deg); } }

section.one-partner .op-hub-orb {
  position: absolute;
  top: 12px; left: 12px; right: 12px; bottom: 12px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 25%, #ffffff 0%, #f5f7fa 60%, #e0e4e9 100%);
  padding: 22px 18px;
  box-shadow:
    0 30px 60px rgba(0,0,0,.5),
    0 0 60px rgba(125,182,255,.35);
  overflow: hidden;
  /* Flexbox centering for the inner content — was table-cell, which
     couldn't center reliably inside a position:absolute parent. */
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
section.one-partner .op-hub-orb-inner {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}
section.one-partner .op-hub-orb img {
  max-width: 100px; max-height: 44px;
  width: auto; height: auto;
  margin: 0 auto 10px;
  display: block;
}
section.one-partner .op-hub-brand {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 900;
  font-size: 13px; letter-spacing: 1px;
  color: #0A2445;
  line-height: 1.15;
  margin-bottom: 8px;
  text-transform: uppercase;
}
section.one-partner .op-hub-tag {
  font-family: 'Barlow Condensed', sans-serif; font-weight: 700;
  font-size: 8.5px; letter-spacing: 1px;
  color: #7db6ff;
  padding-top: 6px;
  border-top: 1px solid rgba(10,36,69,.15);
  text-transform: uppercase;
  line-height: 1.35;
}

/* ---------- Bottom strip ---------- */
section.one-partner .op-strip {
  max-width: 1160px;
  margin: 70px auto 0;
  padding: 32px 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%);
  border: 1px solid rgba(125,182,255,.15);
  border-radius: 14px;
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
}
section.one-partner .op-strip-item {
  flex: 1 1 200px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 14px 18px;
  border-right: 1px solid rgba(125,182,255,.1);
  text-align: left;
}
section.one-partner .op-strip-item:last-child { border-right: none; }
section.one-partner .op-strip-icon {
  flex-shrink: 0;
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(125,182,255,.12);
  color: #7db6ff;
  border: 1px solid rgba(125,182,255,.25);
  display: flex !important;
  align-items: center;
  justify-content: center;
}
section.one-partner .op-strip-icon svg { width: 28px; height: 28px; display: block; }
section.one-partner .op-strip-text strong {
  display: block;
  font-family: 'Barlow Condensed', sans-serif; font-weight: 800;
  font-size: 15px; letter-spacing: 1.2px;
  color: #fff;
  margin: 0 0 3px;
  line-height: 1.2;
}
section.one-partner .op-strip-text small {
  display: block;
  font-size: 12.5px;
  color: rgba(224,228,233,.7);
  line-height: 1.4;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  section.one-partner .op-network,
  section.one-partner .op-col,
  section.one-partner .op-hub { display: block; width: 100%; }
  section.one-partner .op-network { border-spacing: 0; }
  section.one-partner .op-col-left  .op-service,
  section.one-partner .op-col-right .op-service { text-align: left; }
  section.one-partner .op-col-left  .op-service-icon,
  section.one-partner .op-col-right .op-service-icon { margin: 0 16px 0 0; }
  section.one-partner .op-hub { margin: 30px 0; text-align: center; }
  section.one-partner .op-network-lines { display: none; }
  section.one-partner .op-strip,
  section.one-partner .op-strip-item { display: block; width: 100%; text-align: left; }
  section.one-partner .op-strip-item { border-right: none; border-bottom: 1px solid rgba(125,182,255,.1); }
  section.one-partner .op-strip-item:last-child { border-bottom: none; }
}
@media (max-width: 500px) {
  section.one-partner { padding: 60px 0; }
  section.one-partner .op-hub-inner { width: 180px; height: 180px; }
  section.one-partner .op-hub-orb-inner { width: 140px; height: 140px; }
}

/* =============================================================
   HOMEPAGE CERTIFICATIONS TICKER
   Sits between the hero video and the milestones/stats section.
   Continuously scrolls the accreditation logos, pauses on hover.
   ============================================================= */
.home-cert-ticker {
  background: linear-gradient(180deg, #ffffff 0%, #f5f7fa 100%);
  padding: 50px 0 55px;
  border-top: 1px solid rgba(10,36,69,.05);
  border-bottom: 1px solid rgba(10,36,69,.05);
  overflow: hidden;
  position: relative;
}
.home-cert-head {
  text-align: center;
  margin-bottom: 32px;
}
.home-cert-head .eyebrow-line-navy {
  color: #7db6ff;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: inline-block;
}
.home-cert-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: clamp(22px, 2.5vw, 28px);
  color: #0A2445;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin: 0;
  line-height: 1.2;
}
.home-cert-marquee {
  width: 100%;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 8%, #000 92%, transparent 100%);
}
.home-cert-track {
  display: flex;
  gap: 60px;
  width: max-content;
  align-items: center;
  animation: homeCertScroll 45s linear infinite;
}
.home-cert-logo {
  flex-shrink: 0;
  height: 70px;
  width: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: grayscale(0.4);
  opacity: 0.85;
  transition: filter .3s ease, opacity .3s ease;
}
.home-cert-logo:hover {
  filter: grayscale(0);
  opacity: 1;
}
.home-cert-logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
/* The item list is rendered twice; translating by -50% aligns
   the start of the second copy where the first copy began, so
   the loop is seamless. */
@keyframes homeCertScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.home-cert-marquee:hover .home-cert-track {
  animation-play-state: paused;
}
@media (max-width: 640px) {
  .home-cert-logo { height: 54px; width: 100px; }
  .home-cert-track { gap: 42px; animation-duration: 35s; }
  .home-cert-ticker { padding: 36px 0 40px; }
}
