/* =====================================================================
   IntEdge – About / Features / Contact / Footer
   Visual language taken from the company portfolio deck:
   navy panels, cyan accents, blue numbering, soft pale-blue cards.
   ===================================================================== */
:root {
  --ie-navy: #071633;
  --ie-navy-2: #0c2148;
  --ie-ink: #0a1a3a;
  --ie-blue: #2157a1;
  --ie-cyan: #22c5e8;
  --ie-pale: #e4edf8;
  --ie-paler: #eef4fb;
  --ie-line: #dbe5f1;
  --ie-text: #5b6b85;
}

.ie-section { position: relative; background: #fff; }
.ie-section.ie-alt { background: var(--ie-paler); }

.ie-kicker {
  display: block;
  color: var(--ie-blue);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: .6rem;
}
.ie-kicker.on-dark { color: var(--ie-cyan); }

.ie-heading, .ie-subheading {
  color: var(--ie-ink);
  font-family: var(--heading-font);
  font-weight: 700;
  line-height: 1.25;
}
.ie-heading { font-size: 1.9rem; margin: 0 0 1.2rem; }
.ie-subheading { font-size: 1.35rem; margin: 0 0 1rem; }
.ie-lead { color: var(--ie-text); font-size: 1rem; line-height: 1.8; }

/* ---------------------------------------------------------------- ABOUT */
.ie-about-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: stretch; }
.ie-about-lead { font-size: 1.05rem; color: #3f4f69; }

.ie-story {
  background: var(--ie-navy); color: #fff; border-radius: 20px; padding: 38px 40px; display: flex; flex-direction: column;
  background-image: radial-gradient(circle at 100% 0, rgba(34, 197, 232, .18), transparent 55%);
  box-shadow: 0 24px 48px rgba(7, 22, 51, .18);
}
.ie-story .ie-kicker { margin-bottom: 1.6rem; }
.ie-timeline { list-style: none; margin: 0; padding: 0; position: relative; flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.ie-timeline::before { content: ""; position: absolute; left: 11px; top: 12px; bottom: 12px; width: 2px; background: var(--ie-cyan); opacity: .55; }
.ie-timeline li { position: relative; padding-left: 50px; }
.ie-timeline li::before { content: ""; position: absolute; left: 0; top: 2px; width: 24px; height: 24px; border-radius: 50%; background: var(--ie-cyan); box-shadow: 0 0 0 5px rgba(34, 197, 232, .18); }
.ie-timeline li:last-child::before { background: var(--ie-navy); border: 2px solid var(--ie-cyan); }
.ie-timeline .yr { display: block; font-family: var(--heading-font); font-size: 1.7rem; font-weight: 700; line-height: 1.1; }
.ie-timeline li:last-child .yr { font-size: 1.05rem; letter-spacing: .04em; }
.ie-timeline .desc { display: block; color: #b8c6de; font-size: .92rem; margin-top: .25rem; }

/* Poland <-> Egypt */
.ie-bridge { margin-top: 72px; padding: 48px 40px; background: var(--ie-paler); border: 1px solid var(--ie-line); border-radius: 24px; }
.ie-bridge-head { text-align: center; margin-bottom: 36px; }
.ie-bridge-head h3 { color: var(--ie-ink); font-family: var(--heading-font); font-weight: 700; font-size: 1.5rem; margin: 0; }
.ie-bridge-grid { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 0; }
.ie-country { background: #fff; border: 1px solid var(--ie-line); border-radius: 18px; padding: 30px 32px; height: 100%; }
.ie-country-head { display: flex; align-items: center; gap: 12px; color: var(--ie-blue); font-weight: 700; font-size: .8rem; letter-spacing: .2em; margin-bottom: 14px; }
.ie-country-head i { font-size: 1.4rem; color: var(--ie-cyan); }
.ie-country h4 { color: var(--ie-ink); font-family: var(--heading-font); font-size: 1.12rem; font-weight: 700; line-height: 1.35; margin: 0 0 1rem; }
.ie-country ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ie-country li { position: relative; padding-left: 26px; color: var(--ie-text); font-size: .92rem; line-height: 1.6; }
.ie-country li::before { content: ""; position: absolute; left: 0; top: 7px; width: 10px; height: 10px; border-radius: 3px; background: var(--ie-cyan); box-shadow: 0 0 0 4px rgba(34, 197, 232, .18); }
.ie-bridge-link { position: relative; width: 110px; height: 64px; display: grid; place-items: center; }
.ie-bridge-link::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed var(--ie-cyan); }
.ie-bridge-link i {
  position: relative; width: 56px; height: 56px; border-radius: 50%; background: var(--ie-blue); color: #fff; border: 3px solid var(--ie-cyan);
  display: grid; place-items: center; font-size: 1.3rem; animation: iePulse 2.8s ease-in-out infinite;
}
@keyframes iePulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(34, 197, 232, .45); } 50% { box-shadow: 0 0 0 12px rgba(34, 197, 232, 0); } }


.ie-about-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 40px; }
.ie-card { background: #fff; border: 1px solid var(--ie-line); border-radius: 18px; padding: 30px 28px; transition: transform .25s, box-shadow .25s, border-color .25s; }
.ie-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(33, 87, 161, .10); border-color: var(--ie-cyan); }
.ie-card .ie-ico { width: 52px; height: 52px; border-radius: 14px; background: var(--ie-navy); color: var(--ie-cyan); display: grid; place-items: center; font-size: 1.45rem; margin-bottom: 1.1rem; }
.ie-card h3 { color: var(--ie-ink); font-size: 1.1rem; font-weight: 700; margin: 0 0 .55rem; }
.ie-card p { color: var(--ie-text); font-size: .92rem; line-height: 1.75; margin: 0; }

/* ------------------------------------------------------------- FEATURES */

.ie-feat-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 40px; align-items: stretch; }
.ie-feat-panel {
  background: var(--ie-navy); color: #fff; border-radius: 20px; padding: 48px 42px;
  display: flex; flex-direction: column; justify-content: center;
  background-image: radial-gradient(circle at 100% 0, rgba(34, 197, 232, .18), transparent 55%);
}
.ie-feat-panel .big {
  font-family: var(--heading-font); font-weight: 700;
  font-size: clamp(1.7rem, 2.6vw, 2.3rem); line-height: 1.25; margin: 0 0 1.6rem; color: #fff;
}
.ie-feat-panel .big span { display: block; }
.ie-feat-panel .big span:last-child { color: var(--ie-cyan); }
.ie-feat-panel p { color: #b8c6de; margin: 0; font-size: .95rem; }

.ie-feat-list { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ie-feat-item {
  display: flex; gap: 16px; padding: 22px 22px;
  background: #fff; border: 1px solid var(--ie-line); border-radius: 16px;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.ie-feat-item:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(11, 77, 176, .10); border-color: var(--ie-cyan); }
.ie-feat-item .num {
  font-family: var(--heading-font); font-weight: 700; font-size: 1.5rem; color: var(--ie-blue); line-height: 1;
}
.ie-feat-item h4 { color: var(--ie-ink); font-size: 1rem; font-weight: 700; margin: 0 0 .4rem; line-height: 1.3; }
.ie-feat-item p { color: var(--ie-text); font-size: .88rem; line-height: 1.65; margin: 0; }

/* Delivery approach */
.ie-delivery { margin-top: 72px; }
.ie-delivery .section-title { padding-bottom: 40px; }
.ie-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; counter-reset: step; position: relative; }
.ie-steps::before {
  content: ""; position: absolute; top: 31px; left: 8%; right: 8%; height: 2px;
  background: repeating-linear-gradient(90deg, var(--ie-cyan) 0 8px, transparent 8px 16px);
}
.ie-step { text-align: center; position: relative; padding: 0 6px; }
.ie-step .dot {
  width: 62px; height: 62px; margin: 0 auto 14px; border-radius: 50%;
  background: var(--ie-navy); color: var(--ie-cyan); border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--ie-cyan);
  display: grid; place-items: center; font-size: 1.4rem; position: relative; z-index: 1;
}
.ie-step .no { display: block; color: var(--ie-blue); font-weight: 700; font-size: .75rem; letter-spacing: .16em; }
.ie-step h5 { color: var(--ie-ink); font-size: 1rem; font-weight: 700; margin: .2rem 0 .4rem; }
.ie-step p { color: var(--ie-text); font-size: .83rem; line-height: 1.55; margin: 0; }
.ie-delivery-note { text-align: center; color: var(--ie-text); font-size: .88rem; font-style: italic; margin: 28px 0 0; }

/* -------------------------------------------------------------- CONTACT */
.ie-contact { background: var(--ie-paler); }
.ie-contact-wrap { display: grid; grid-template-columns: 1.05fr 1fr; gap: 0; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 60px rgba(7, 22, 51, .14); }

.ie-contact-info {
  background: var(--ie-navy); color: #fff; padding: 52px 48px;
  background-image: radial-gradient(circle at 0 100%, rgba(34, 197, 232, .16), transparent 55%);
  display: flex; flex-direction: column;
}
.ie-contact-info .ie-heading { color: #fff; margin-bottom: 1rem; }
.ie-contact-info .ie-heading { margin-bottom: 1.6rem; }
.ie-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ie-contact-list li {
  display: flex; gap: 16px; align-items: center; padding: 14px 16px;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .09); border-radius: 14px;
}
.ie-contact-list .ico {
  flex: 0 0 44px; height: 44px; border-radius: 12px; background: rgba(34, 197, 232, .12); color: var(--ie-cyan);
  display: grid; place-items: center; font-size: 1.15rem;
}
.ie-contact-list small { display: block; color: var(--ie-cyan); font-size: .66rem; font-weight: 700; letter-spacing: .2em; margin-bottom: 2px; }
.ie-contact-list span, .ie-contact-list a { color: #fff; font-size: .95rem; font-weight: 600; word-break: break-word; }
.ie-contact-list a:hover { color: var(--ie-cyan); }
.ie-contact-tagline { margin-top: auto; padding-top: 28px; color: var(--ie-cyan); font-size: .74rem; font-weight: 700; letter-spacing: .26em; }

.ie-contact-form { background: #fff; padding: 52px 48px; }
.ie-contact-form h3 { color: var(--ie-ink); font-weight: 700; font-size: 1.4rem; margin: 0 0 1.6rem; }
.ie-contact-form .form-control {
  border: 1px solid var(--ie-line); border-radius: 10px; min-height: 50px; padding: 12px 16px; font-size: .95rem; background: var(--ie-paler);
}
.ie-contact-form textarea.form-control { min-height: 150px; resize: vertical; }
.ie-contact-form .form-control:focus { border-color: var(--ie-blue); box-shadow: 0 0 0 4px rgba(11, 77, 176, .12); background: #fff; }
.ie-contact-form button[type=submit] {
  width: 100%; border: 0; border-radius: 10px; padding: 15px 28px; font-weight: 700; letter-spacing: .02em;
  background: var(--ie-blue); color: #fff; transition: .25s;
}
.ie-contact-form button[type=submit]:hover { background: var(--ie-navy); }
.ie-contact-form .loading, .ie-contact-form .error-message, .ie-contact-form .sent-message {
  display: none; border-radius: 10px; padding: 12px 16px; margin-bottom: 14px; font-size: .9rem; text-align: center;
}
.ie-contact-form .loading { background: var(--ie-pale); color: var(--ie-blue); }
.ie-contact-form .error-message { background: #fdecec; color: #b42318; }
.ie-contact-form .sent-message { background: #e6f7ee; color: #067647; }

/* --------------------------------------------------------------- FOOTER */
.ie-footer { background: var(--ie-navy); color: #b8c6de; font-size: .92rem; padding: 0; }
.ie-footer a { color: #b8c6de; }
.ie-footer a:hover { color: var(--ie-cyan); }
.ie-footer-top { padding: 72px 0 48px; }
.ie-footer-brand .logo-box { display: inline-block; background: #fff; border-radius: 10px; padding: 8px 14px; margin-bottom: 20px; }
.ie-footer-brand .logo-box img { height: 38px; width: auto; display: block; }
.ie-footer-brand p { line-height: 1.75; margin: 0 0 20px; max-width: 360px; }
.ie-footer-brand .tag { display: block; color: var(--ie-cyan); font-size: .7rem; font-weight: 700; letter-spacing: .24em; margin-bottom: 20px; }
.ie-social { display: flex; gap: 10px; }
.ie-social a {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2);
  display: grid; place-items: center; color: #fff; transition: .25s;
}
.ie-social a:hover { background: var(--ie-cyan); border-color: var(--ie-cyan); color: var(--ie-navy); }

.ie-footer h4 {
  color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 20px; padding: 0;
}
.ie-footer h4::after { content: ""; display: block; width: 28px; height: 2px; background: var(--ie-cyan); margin-top: 10px; }
.ie-footer ul { list-style: none; margin: 0; padding: 0; }
.ie-footer ul li { margin-bottom: 11px; }


.ie-footer-bottom { background: #040d20; padding: 20px 0; text-align: center; font-size: .84rem; }
.ie-footer-bottom p { margin: 0; color: #b8c6de; }
.ie-footer-bottom strong { color: #fff; }
.ie-footer-bottom .credits { margin-top: 4px; font-size: .78rem; opacity: .7; }

/* ----------------------------------------------------------- RESPONSIVE */
@media (max-width: 1199px) {
  .ie-steps { grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
  .ie-steps::before { display: none; }
}
@media (max-width: 991px) {
  .ie-about-grid, .ie-feat-grid, .ie-contact-wrap, .ie-about-cards { grid-template-columns: 1fr; }
  .ie-bridge { padding: 34px 22px; }
  .ie-bridge-grid { grid-template-columns: 1fr; gap: 14px; }
  .ie-bridge-link { width: 100%; height: 56px; }
  .ie-bridge-link::before { left: 50%; right: auto; top: 0; bottom: 0; border-top: 0; border-left: 2px dashed var(--ie-cyan); }
  .ie-bridge-link i { transform: rotate(90deg); animation: none; }
  .ie-contact-info, .ie-contact-form { padding: 36px 26px; }
}
@media (max-width: 575px) {
  .ie-feat-list { grid-template-columns: 1fr; }
  .ie-steps { grid-template-columns: repeat(2, 1fr); }
  .ie-story { padding: 30px 26px; }
  .ie-feat-panel { padding: 34px 26px; }
}

/* ----------------------------------------- PROFESSIONAL & MANAGED CARDS */
.ie-pro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ie-pro-card {
  position: relative; display: flex; flex-direction: column; padding: 32px 30px 28px;
  background: #fff; border: 1px solid var(--ie-line); border-radius: 18px; color: inherit; overflow: hidden;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.ie-pro-card::before {
  content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: linear-gradient(90deg, var(--ie-blue), var(--ie-cyan)); transition: width .35s;
}
.ie-pro-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(11, 77, 176, .12); border-color: transparent; color: inherit; }
.ie-pro-card:hover::before { width: 100%; }
.ie-pro-card .ico {
  width: 56px; height: 56px; border-radius: 14px; background: var(--ie-navy); color: var(--ie-cyan);
  display: grid; place-items: center; font-size: 1.6rem; margin-bottom: 22px;
}
.ie-pro-card h3 { color: var(--ie-ink); font-size: 1.12rem; font-weight: 700; margin: 0 0 .6rem; }
.ie-pro-card p { color: var(--ie-text); font-size: .9rem; line-height: 1.7; margin: 0 0 1.4rem; flex: 1; }
.ie-pro-card .more { color: var(--ie-blue); font-weight: 600; font-size: .88rem; }
.ie-pro-card .more i { display: inline-block; transition: transform .2s; }
.ie-pro-card:hover .more i { transform: translateX(5px); }

.ie-pro-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 40px; padding: 30px 36px;
  background: var(--ie-navy); border-radius: 18px; background-image: radial-gradient(circle at 100% 0, rgba(34, 197, 232, .2), transparent 55%);
}
.ie-pro-cta h3 { color: #fff; font-size: 1.2rem; font-weight: 700; margin: 0 0 .35rem; }
.ie-pro-cta p { color: #b8c6de; margin: 0; font-size: .92rem; }

/* ------------------------------------------------------------- BUTTONS */
.ie-btn-primary, .ie-btn-ghost {
  display: inline-block; border-radius: 10px; padding: 12px 26px; font-weight: 600; font-size: .92rem; line-height: 1.2; cursor: pointer; text-align: center; transition: .2s; white-space: nowrap;
}
.ie-btn-primary { background: var(--ie-cyan); color: var(--ie-navy); border: 1px solid var(--ie-cyan); }
.ie-btn-primary:hover { background: #fff; color: var(--ie-navy); }
.ie-drawer .ie-btn-primary { background: var(--ie-blue); border-color: var(--ie-blue); color: #fff; }
.ie-drawer .ie-btn-primary:hover { background: var(--ie-navy); border-color: var(--ie-navy); color: #fff; }
.ie-btn-ghost { background: #fff; color: var(--ie-ink); border: 1px solid var(--ie-line); }
.ie-btn-ghost:hover { background: var(--ie-paler); }

/* -------------------------------------------------------------- DRAWER */
html.ie-lock { overflow: hidden; }
.ie-drawer { position: fixed; inset: 0; z-index: 2000; visibility: hidden; pointer-events: none; transition: visibility 0s .3s; }
.ie-drawer.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.ie-drawer-backdrop { position: absolute; inset: 0; background: rgba(4, 13, 32, .55); backdrop-filter: blur(3px); opacity: 0; transition: opacity .3s; }
.ie-drawer.is-open .ie-drawer-backdrop { opacity: 1; }
.ie-drawer-panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(580px, 100%); background: #fff; display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .3s cubic-bezier(.2, .8, .2, 1); outline: none; box-shadow: -24px 0 60px rgba(4, 13, 32, .25);
}
.ie-drawer.is-open .ie-drawer-panel { transform: translateX(0); }

.ie-drawer-head {
  display: flex; align-items: center; gap: 16px; padding: 26px 28px; background: var(--ie-navy);
  background-image: radial-gradient(circle at 100% 0, rgba(34, 197, 232, .22), transparent 60%);
}
.ie-drawer-icon { flex: 0 0 54px; height: 54px; border-radius: 14px; background: rgba(34, 197, 232, .14); color: var(--ie-cyan); display: grid; place-items: center; font-size: 1.6rem; }
.ie-drawer-heading { flex: 1; min-width: 0; }
.ie-drawer-type { display: block; color: var(--ie-cyan); font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-bottom: 4px; }
.ie-drawer-heading h2 { color: #fff; font-family: var(--heading-font); font-weight: 700; font-size: 1.3rem; line-height: 1.25; margin: 0; }
.ie-drawer-x {
  flex: 0 0 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); background: transparent; color: #fff; display: grid; place-items: center; transition: .2s;
}
.ie-drawer-x:hover { background: rgba(255, 255, 255, .14); }

.ie-drawer-body { flex: 1; overflow-y: auto; padding: 30px 28px 24px; color: var(--ie-text); font-size: .95rem; line-height: 1.75; overscroll-behavior: contain; }
.ie-drawer-body > p:first-child { color: var(--ie-ink); font-size: 1.02rem; margin: 0 0 1.4rem; }
.ie-drawer-body h5 {
  display: flex; align-items: center; gap: 10px; color: var(--ie-ink); font-family: var(--heading-font);
  font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 1.8rem 0 .9rem;
}
.ie-drawer-body h5::before { content: ""; width: 4px; height: 16px; border-radius: 2px; background: var(--ie-cyan); }
.ie-drawer-body ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ie-drawer-body ul li {
  position: relative; padding: 14px 16px 14px 42px; background: var(--ie-paler);
  border: 1px solid var(--ie-line); border-radius: 12px; font-size: .9rem; line-height: 1.55;
}
.ie-drawer-body ul li::before {
  content: ""; position: absolute; left: 17px; top: 21px; width: 10px; height: 10px; border-radius: 3px; background: var(--ie-cyan);
  box-shadow: 0 0 0 4px rgba(34, 197, 232, .18);
}
.ie-drawer-body ul li strong { display: block; color: var(--ie-ink); font-weight: 700; }
.ie-drawer-body ul li span { color: var(--ie-text); }
.ie-drawer-body ul.ie-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ie-drawer-body ul.ie-chips li { padding: 8px 16px; border-radius: 999px; background: var(--ie-pale); border-color: transparent; color: var(--ie-blue); font-weight: 600; font-size: .85rem; }
.ie-drawer-body ul.ie-chips li::before { display: none; }

.ie-drawer-foot { display: flex; gap: 12px; justify-content: flex-end; padding: 18px 28px 22px; border-top: 1px solid var(--ie-line); background: #fff; }

/* ----------------------------------------------------- RESPONSIVE (new) */
@media (max-width: 991px) {
  .ie-pro-grid { grid-template-columns: repeat(2, 1fr); }
  .ie-pro-cta { flex-direction: column; align-items: flex-start; padding: 26px; }
}
@media (max-width: 575px) {
  .ie-pro-grid { grid-template-columns: 1fr; }
  .ie-drawer-head { padding: 20px; }
  .ie-drawer-body { padding: 24px 20px 18px; }
  .ie-drawer-foot { padding: 14px 20px 18px; }
  .ie-drawer-foot > * { flex: 1; }
}

/* ------------------------------------------------ SECTION COLOUR RHYTHM */
/* white → pale → white → pale → white → navy → pale → navy footer */
.services.light-background { --background-color: var(--ie-paler); }
.section-title h2:before, .section-title h2:after { background: var(--ie-cyan); }

/* --------------------------------------------------------------- STATS */
/* Natural look: original photo + overlay and white numbers. Only motion is added. */
.ie-stats .section-title { padding-bottom: 36px; }
.ie-stats .section-title h2 { color: #fff; }
.ie-stats img { animation: ieKenBurns 22s ease-in-out infinite alternate; transform-origin: center; }
@keyframes ieKenBurns { from { transform: scale(1); } to { transform: scale(1.1); } }
.ie-stats .stats-item span { position: relative; display: inline-block; padding-bottom: 14px; }
.ie-stats .stats-item span::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 0; height: 3px; border-radius: 2px; background: var(--ie-cyan); transform: translateX(-50%);
}
.ie-stats .stats-item.is-visible span::after { animation: ieBar 1.4s .5s ease-out forwards; }
@keyframes ieBar { to { width: 44px; } }
@media (prefers-reduced-motion: reduce) {
  .ie-stats img, .ie-bridge-link i, .ie-stats .stats-item span::after, .ie-reveal.is-visible { animation: none !important; }
  .ie-reveal { opacity: 1 !important; }
  .ie-stats .stats-item span::after { width: 44px; }
}

/* ---------------------------------------------- Our Services (centered row) */
.ie-pro-grid.ie-center { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.ie-pro-grid.ie-center .ie-pro-card { flex: 0 1 calc(33.333% - 16px); }
@media (max-width: 991px) { .ie-pro-grid.ie-center .ie-pro-card { flex-basis: calc(50% - 12px); } }
@media (max-width: 575px) { .ie-pro-grid.ie-center .ie-pro-card { flex-basis: 100%; } }

/* ------------------------------------------------------- SCROLL REVEAL */
.ie-reveal:not(.is-visible) { opacity: 0; }
.ie-reveal.is-visible { animation: ieUp .75s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms) backwards; }
.ie-reveal[data-reveal="fade-right"].is-visible { animation-name: ieRight; }
.ie-reveal[data-reveal="fade-left"].is-visible { animation-name: ieLeft; }
.ie-reveal[data-reveal="zoom-in"].is-visible { animation-name: ieZoom; }
@keyframes ieUp    { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@keyframes ieRight { from { opacity: 0; transform: translateX(-40px); } to { opacity: 1; transform: none; } }
@keyframes ieLeft  { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes ieZoom  { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { .ie-reveal { --d: 0ms !important; } }

/* ------------------------------------------------ SECTION SEPARATION */
main > section.section:not(.hero):not(.stats) { padding: 88px 0; }
main > section.section + section.section { border-top: 1px solid var(--ie-line); }
main > section.stats { padding: 100px 0; }
.section-title { padding-bottom: 48px; }
.section-title h2 { margin-bottom: 14px; }
@media (max-width: 767px) { main > section.section:not(.hero):not(.stats) { padding: 60px 0; } }
