/* Gulf Pearl one-page site. Palette from the logo: cyan, indigo, violet on a deep navy ink. */
:root {
  --gp-ink: #0D1033;
  --gp-indigo: #3B3BD6;
  --gp-indigo-deep: #2B2BB4;
  --gp-violet: #9B3FE0;
  --gp-cyan: #00B7E8;
  --gp-tint: #F4F5FD;
  --gp-line: #E3E5F5;
  --gp-muted: #50567A;
  --gp-body: #2A2F52;
  --gp-grad: linear-gradient(100deg, #00B7E8 0%, #3B3BD6 52%, #9B3FE0 100%);
  --gp-head: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  --gp-text: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gp-hdr: 76px;
}
html { scroll-behavior: auto; overflow-x: clip; }
body { font-family: var(--gp-text); color: var(--gp-body); background: #fff; -webkit-font-smoothing: antialiased; }
body.ehf-header #masthead { position: sticky; top: 0; z-index: 60; }
[id] { scroll-margin-top: calc(var(--gp-hdr) + 8px); }
.elementor img { max-width: 100%; }

/* ------------------------------------------------------------ header */
.gp-hdr { background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.gp-hdr.is-stuck { border-bottom-color: var(--gp-line); box-shadow: 0 8px 30px -18px rgba(13,16,51,.35); }
.gp-hdr-in { position: relative; max-width: 1240px; margin: 0 auto; height: var(--gp-hdr); padding: 0 24px; display: flex; align-items: center; gap: 28px; }
.gp-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.gp-brand img { width: 46px; height: 46px; object-fit: contain; display: block; }
.gp-brand span { display: flex; flex-direction: column; line-height: 1.15; }
.gp-brand b { font: 800 19px/1.1 var(--gp-head); color: var(--gp-ink); letter-spacing: -.01em; }
.gp-brand i { font: 500 12.5px/1.3 var(--gp-text); color: var(--gp-muted); font-style: normal; }
.gp-nav { display: flex; align-items: center; gap: 6px; }
.gp-nav a { font: 600 15px/1 var(--gp-text); color: var(--gp-ink); text-decoration: none; padding: 11px 14px; border-radius: 999px; transition: background .15s, color .15s; }
.gp-nav a:hover { background: var(--gp-tint); color: var(--gp-indigo); }
.gp-nav a.is-active { background: var(--gp-tint); color: var(--gp-indigo); }
.gp-cta { font: 600 15px/1 var(--gp-text); color: #fff; background: var(--gp-indigo); text-decoration: none; padding: 14px 24px; border-radius: 999px; transition: background .15s, transform .15s; white-space: nowrap; }
.gp-cta:hover { background: var(--gp-indigo-deep); color: #fff; transform: translateY(-1px); }
.gp-burger { display: none; width: 46px; height: 46px; border: 1px solid var(--gp-line); border-radius: 12px; background: #fff; cursor: pointer; padding: 0; position: relative; }
.gp-burger span, .gp-burger::before, .gp-burger::after { content: ''; position: absolute; left: 13px; right: 13px; height: 2px; background: var(--gp-ink); border-radius: 2px; transition: transform .2s, opacity .2s; }
.gp-burger::before { top: 15px; } .gp-burger span { top: 22px; } .gp-burger::after { top: 29px; }
.gp-menu-open .gp-burger::before { transform: translateY(7px) rotate(45deg); }
.gp-menu-open .gp-burger::after { transform: translateY(-7px) rotate(-45deg); }
.gp-menu-open .gp-burger span { opacity: 0; }
@media (max-width: 960px) {
  :root { --gp-hdr: 68px; }
  .gp-hdr-in { padding: 0 16px; gap: 12px; }
  .gp-burger { display: block; }
  .gp-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 2px; background: #fff; padding: 12px 16px 18px; border-bottom: 1px solid var(--gp-line); box-shadow: 0 24px 40px -24px rgba(13,16,51,.4); }
  .gp-menu-open .gp-nav { display: flex; }
  .gp-nav a { padding: 15px 14px; border-radius: 12px; font-size: 16px; }
  .gp-cta { padding: 12px 18px; font-size: 14px; }
}
@media (max-width: 520px) { .gp-cta { display: none; } .gp-brand i { display: none; } }

/* ------------------------------------------------------------ type */
.elementor .gp-h1 .elementor-heading-title { font: 800 clamp(38px, 5.2vw, 66px)/1.04 var(--gp-head); letter-spacing: -.03em; color: var(--gp-ink); margin: 0; }
.elementor .gp-h2 .elementor-heading-title { font: 800 clamp(30px, 3.6vw, 46px)/1.1 var(--gp-head); letter-spacing: -.025em; color: var(--gp-ink); margin: 0; }
.elementor .gp-h3 .elementor-heading-title { font: 700 22px/1.25 var(--gp-head); letter-spacing: -.01em; color: var(--gp-ink); margin: 0; }
.elementor .gp-dark .gp-h2 .elementor-heading-title, .elementor .gp-dark .gp-h3 .elementor-heading-title { color: #fff; }
.gp-grad { background: var(--gp-grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.elementor .gp-lead, .elementor .gp-lead p { font: 400 clamp(17px, 1.5vw, 19.5px)/1.65 var(--gp-text); color: var(--gp-muted); margin: 0; }
.elementor .gp-p, .elementor .gp-p p { font: 400 16.5px/1.7 var(--gp-text); color: var(--gp-body); margin: 0; }
.elementor .gp-p p + p { margin-top: 14px; }
.elementor .gp-dark .gp-lead, .elementor .gp-dark .gp-lead p, .elementor .gp-dark .gp-p, .elementor .gp-dark .gp-p p { color: rgba(255,255,255,.74); }

/* ------------------------------------------------------------ buttons */
.elementor .gp-btn .elementor-button { font: 600 16px/1 var(--gp-text); padding: 17px 30px; border-radius: 999px; border: 1.5px solid transparent; transition: transform .15s, background .15s, color .15s, border-color .15s, box-shadow .15s; }
.elementor .gp-btn .elementor-button:hover { transform: translateY(-2px); }
.elementor .gp-btn-pri .elementor-button { background: var(--gp-indigo); color: #fff; box-shadow: 0 14px 30px -14px rgba(59,59,214,.75); }
.elementor .gp-btn-pri .elementor-button:hover { background: var(--gp-indigo-deep); color: #fff; }
.elementor .gp-btn-out .elementor-button { background: transparent; color: var(--gp-ink); border-color: var(--gp-line); }
.elementor .gp-btn-out .elementor-button:hover { background: var(--gp-tint); color: var(--gp-indigo); border-color: var(--gp-indigo); }
.elementor .gp-btn-lite .elementor-button { background: #fff; color: var(--gp-indigo-deep); }
.elementor .gp-btn-lite .elementor-button:hover { background: var(--gp-tint); color: var(--gp-indigo-deep); }
.gp-btn .elementor-button-icon { margin-left: 4px; }

/* ------------------------------------------------------------ sections */
.elementor .gp-sec { position: relative; }
.elementor .gp-tint { background: var(--gp-tint); }
.elementor .gp-dark { background: var(--gp-ink); background-image: radial-gradient(60% 80% at 100% 0%, rgba(155,63,224,.28), transparent 70%), radial-gradient(50% 70% at 0% 100%, rgba(0,183,232,.2), transparent 70%); }
.elementor .gp-head-c { text-align: center; align-items: center; }
.elementor .gp-head-c .gp-lead { max-width: 620px; }

/* ------------------------------------------------------------ hero */

/* ------------------------------------------------------------ about */
.elementor .gp-about-img img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; border-radius: 28px; display: block; }
.elementor .gp-about-img { height: 100%; }

/* ------------------------------------------------------------ service cards */
.elementor .gp-card { background: #fff; border: 1px solid var(--gp-line); border-radius: 24px; overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; height: 100%; }
.elementor .gp-card:hover { transform: translateY(-6px); box-shadow: 0 34px 60px -34px rgba(43,43,180,.5); border-color: transparent; }
.elementor .gp-card-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .5s; }
.elementor .gp-card:hover .gp-card-img img { transform: scale(1.04); }
.elementor .gp-card-img { overflow: hidden; }
.elementor .gp-card-body { padding: 26px 28px 30px !important; }

/* ------------------------------------------------------------ process */
.gp-step { border: 1px solid rgba(255,255,255,.14); border-radius: 24px; padding: 30px 28px 32px; background: rgba(255,255,255,.04); height: 100%; }
.gp-step-n { width: 46px; height: 46px; border-radius: 14px; background: var(--gp-grad); color: #fff; font: 800 20px/46px var(--gp-head); text-align: center; margin-bottom: 20px; }
.gp-step h3 { font: 700 22px/1.25 var(--gp-head); color: #fff; margin: 0 0 10px; }
.gp-step p { font: 400 16px/1.65 var(--gp-text); color: rgba(255,255,255,.74); margin: 0; }

/* ------------------------------------------------------------ colour palette band */
.elementor .gp-band { background: var(--gp-grad); border-radius: 32px; position: relative; overflow: hidden; }
.elementor .gp-band::after { content: ''; position: absolute; width: 420px; height: 420px; right: -120px; top: -160px; border-radius: 50%; background: rgba(255,255,255,.12); pointer-events: none; }
.elementor .gp-band .gp-h2 .elementor-heading-title { color: #fff; max-width: 760px; }
.elementor .gp-band .gp-lead, .elementor .gp-band .gp-lead p { color: rgba(255,255,255,.9); }

/* ------------------------------------------------------------ gallery */
.elementor .gp-gallery { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 230px; grid-auto-flow: dense; gap: 14px; }
.elementor .gp-ph { overflow: hidden; border-radius: 20px; background: var(--gp-tint); min-height: 0; }
.elementor .gp-ph.gp-tall { grid-row: span 2; }
.elementor .gp-ph.gp-wide { grid-column: span 2; }
.elementor .gp-ph .elementor-widget-container, .elementor .gp-ph a { height: 100%; display: block; }
.elementor .gp-ph img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.elementor .gp-ph:hover img { transform: scale(1.06); }
@media (max-width: 1024px) { .elementor .gp-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 200px; } }
@media (max-width: 767px) { .elementor .gp-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; gap: 10px; } .elementor .gp-ph { border-radius: 14px; } }

/* ------------------------------------------------------------ contact */
.gp-info { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--gp-line); border-radius: 20px; padding: 22px 24px; }
.gp-info-ic { flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--gp-tint); color: var(--gp-indigo); display: grid; place-items: center; font-size: 18px; }
.gp-info h3 { font: 700 17px/1.3 var(--gp-head); color: var(--gp-ink); margin: 0 0 4px; }
.gp-info p, .gp-info a { font: 400 16px/1.6 var(--gp-text); color: var(--gp-body); margin: 0; text-decoration: none; display: block; overflow-wrap: anywhere; }
.gp-info a:hover { color: var(--gp-indigo); }
.elementor .gp-form-card { background: #fff; border: 1px solid var(--gp-line); border-radius: 28px; box-shadow: 0 40px 70px -48px rgba(43,43,180,.55); }
.gp-form form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0; }
.gp-form .gp-f { display: flex; flex-direction: column; gap: 7px; }
.gp-form .gp-full { grid-column: 1 / -1; }
.gp-form label { font: 600 14.5px/1.3 var(--gp-text); color: var(--gp-ink); }
.gp-form .wpcf7-form-control-wrap { display: block; }
.gp-form input[type=text], .gp-form input[type=email], .gp-form input[type=tel], .gp-form textarea { width: 100%; font: 400 16px/1.4 var(--gp-text); color: var(--gp-ink); background: var(--gp-tint); border: 1.5px solid transparent; border-radius: 14px; padding: 15px 16px; transition: border-color .15s, background .15s, box-shadow .15s; box-sizing: border-box; }
.gp-form textarea { min-height: 130px; resize: vertical; }
.gp-form input:focus, .gp-form textarea:focus { outline: none; background: #fff; border-color: var(--gp-indigo); box-shadow: 0 0 0 4px rgba(59,59,214,.14); }
.gp-form .gp-submit, .gp-form input[type=submit] { font: 600 16px/1 var(--gp-text); color: #fff; background: var(--gp-indigo); border: 0; border-radius: 999px; padding: 17px 34px; cursor: pointer; transition: background .15s, transform .15s; box-shadow: 0 14px 30px -14px rgba(59,59,214,.75); }
.gp-form .gp-submit:hover, .gp-form input[type=submit]:hover { background: var(--gp-indigo-deep); transform: translateY(-2px); }
.gp-form .wpcf7-response-output { margin: 6px 0 0; border-radius: 12px; padding: 12px 16px; font: 500 15px/1.5 var(--gp-text); }
.gp-form .wpcf7-not-valid-tip { font-size: 13.5px; margin-top: 4px; }
.gp-form .wpcf7-spinner { margin: 0 0 0 10px; }
@media (max-width: 640px) { .gp-form form { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ footer */
.gp-ftr { color: rgba(255,255,255,.76); background-color: var(--gp-ink); background-image: linear-gradient(180deg, rgba(13,16,51,.78) 0%, rgba(13,16,51,.93) 100%), var(--gp-ftr-img); background-size: cover; background-position: center 35%; background-repeat: no-repeat; }
.gp-ftr-in { max-width: 1240px; margin: 0 auto; padding: 56px 24px 30px; }
.gp-ftr-top { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; justify-content: space-between; padding-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,.12); }
.gp-ftr .gp-brand b { color: #fff; } .gp-ftr .gp-brand i { color: rgba(255,255,255,.6); }
.gp-ftr-nav { display: flex; gap: 8px 26px; flex-wrap: wrap; }
.gp-ftr-nav a { font: 500 15px/1.4 var(--gp-text); color: rgba(255,255,255,.82); text-decoration: none; }
.gp-ftr-nav a:hover { color: #fff; }
.gp-ftr-bot { display: flex; justify-content: space-between; gap: 10px 24px; flex-wrap: wrap; padding-top: 26px; font: 400 14px/1.6 var(--gp-text); }
.gp-ftr-bot a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.gp-ftr-bot a:hover { border-bottom-color: #fff; }

/* ------------------------------------------------------------ small screens */
@media (max-width: 767px) {
  .elementor .gp-card-body { padding: 22px 22px 26px !important; }
  .elementor .gp-band { border-radius: 24px; }
  .gp-info { padding: 18px; gap: 14px; }
}
/* ------------------------------------------------------------ hover interactions (mouse only) */
.gp-brand img { transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.gp-info, .gp-step, .elementor .gp-form-card { transition: transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s, background .3s; }
.gp-info-ic, .gp-step-n { transition: background .3s, color .3s, transform .35s cubic-bezier(.2,.7,.2,1); }
.elementor .gp-about-img { overflow: hidden; border-radius: 28px; }
.elementor .gp-about-img img { border-radius: 0; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.elementor .gp-band::after { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.elementor .gp-ph { position: relative; cursor: zoom-in; }
.elementor .gp-ph::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,16,51,0) 45%, rgba(13,16,51,.72) 100%); opacity: 0; transition: opacity .35s; pointer-events: none; }
.elementor .gp-ph::before { content: '\f00e'; font-family: 'Font Awesome 5 Free'; font-weight: 900; position: absolute; right: 16px; bottom: 16px; z-index: 2; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--gp-indigo); display: grid; place-items: center; font-size: 17px; opacity: 0; transform: translateY(10px) scale(.9); transition: opacity .3s, transform .35s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.gp-ftr-nav a { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; padding-bottom: 3px; transition: background-size .3s, color .2s; }
.gp-burger { transition: background .2s, border-color .2s; }
@media (hover: hover) and (pointer: fine) {
  .gp-brand:hover img { transform: rotate(-8deg) scale(1.08); }
  .gp-burger:hover { background: var(--gp-tint); border-color: var(--gp-indigo); }
  .elementor .gp-about-img:hover img { transform: scale(1.06); }
  .gp-step:hover { transform: translateY(-8px); border-color: rgba(0,183,232,.7); background: rgba(255,255,255,.09); box-shadow: 0 30px 50px -30px rgba(0,183,232,.55); }
  .gp-step:hover .gp-step-n { transform: rotate(-8deg) scale(1.1); }
  .elementor .gp-band:hover::after { transform: scale(1.35) translate(-30px, 20px); }
  .elementor .gp-ph:hover::after { opacity: 1; }
  .elementor .gp-ph:hover::before { opacity: 1; transform: none; }
  .gp-info:hover { transform: translateX(8px); border-color: var(--gp-indigo); box-shadow: 0 24px 44px -30px rgba(43,43,180,.5); }
  .gp-info:hover .gp-info-ic { background: var(--gp-grad); color: #fff; transform: scale(1.08) rotate(-6deg); }
  .elementor .gp-form-card:hover { box-shadow: 0 50px 80px -44px rgba(43,43,180,.65); }
  .gp-form input[type=text]:hover, .gp-form input[type=email]:hover, .gp-form input[type=tel]:hover, .gp-form textarea:hover { border-color: rgba(59,59,214,.4); }
  .gp-ftr-nav a:hover { background-size: 100% 1.5px; }
}
/* Hello Elementor paints every button pink (#c36) on hover and focus. Keep ours on brand, including after a click. */
.gp-hdr .gp-burger, .gp-hdr .gp-burger:focus { background: #fff; color: var(--gp-ink); }
.gp-hdr .gp-burger:hover { background: var(--gp-tint); }
.gp-form input[type=submit], .gp-form input[type=submit]:focus { background: var(--gp-indigo); color: #fff; }
.gp-form input[type=submit]:hover { background: var(--gp-indigo-deep); color: #fff; }

.elementor .gp-hero-row { position: relative; z-index: 2; }
.elementor .gp-hero .gp-h1 .elementor-heading-title { color: #fff; font-size: clamp(40px, 5.6vw, 72px); }
.elementor .gp-hero .gp-lead, .elementor .gp-hero .gp-lead p { color: rgba(255,255,255,.88); }
.gp-hero .gp-grad { background: linear-gradient(100deg, #3FD8FF 0%, #A9A4FF 50%, #D79BFF 100%); -webkit-background-clip: text; background-clip: text; }
.elementor .gp-btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.elementor .gp-btn-ghost .elementor-button:hover { background: #fff; color: var(--gp-ink); border-color: #fff; }

/* ------------------------------------------------------------ hero: text left, photo slider right */
.elementor .gp-hero { position: relative; overflow: hidden; background-color: var(--gp-ink); background-image: radial-gradient(55% 70% at 100% 0%, rgba(155,63,224,.34), transparent 70%), radial-gradient(50% 60% at 0% 100%, rgba(0,183,232,.24), transparent 70%); }
.elementor .gp-hero-row { position: relative; z-index: 2; }
.elementor .gp-hero .gp-h1 .elementor-heading-title { color: #fff; font-size: clamp(40px, 5.2vw, 68px); }
.elementor .gp-hero .gp-lead, .elementor .gp-hero .gp-lead p { color: rgba(255,255,255,.88); }
.gp-hero .gp-grad { background: linear-gradient(100deg, #3FD8FF 0%, #A9A4FF 50%, #D79BFF 100%); -webkit-background-clip: text; background-clip: text; }
.elementor .gp-btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.elementor .gp-btn-ghost .elementor-button:hover { background: #fff; color: var(--gp-ink); border-color: #fff; }
.elementor .gp-hero-visual { position: relative; }
.elementor .gp-hero-visual::before { content: ''; position: absolute; inset: 20px -20px -20px 20px; border-radius: 34px; background: var(--gp-grad); opacity: .85; z-index: 0; }
.elementor .gp-hero-slider { position: relative; z-index: 1; width: 100%; }
.gp-hs { position: relative; overflow: hidden; width: 100%; aspect-ratio: 1 / 1; border-radius: 30px; background: var(--gp-ink); border: 1px solid rgba(255,255,255,.2); box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); }
.gp-hs-track { display: flex; height: 100%; will-change: transform; }
.gp-hs-slide { flex: 0 0 100%; height: 100%; }
.gp-hs-slide img { width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; }
.gp-hs::after { content: ''; position: absolute; inset: auto 0 0 0; height: 30%; background: linear-gradient(180deg, rgba(13,16,51,0), rgba(13,16,51,.6)); pointer-events: none; z-index: 2; }
.gp-hs-ui { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 22px; }
.gp-dots { display: flex; gap: 8px; align-items: center; }
.gp-hs .gp-dot, .gp-hs .gp-dot:focus { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 999px; background: rgba(255,255,255,.55); cursor: pointer; transition: width .35s, background .25s; }
.gp-hs .gp-dot.is-on, .gp-hs .gp-dot.is-on:focus, .gp-hs .gp-dot:hover { width: 34px; background: #fff; }
.gp-hs .gp-dot:not(.is-on):hover { width: 10px; }
.gp-arrows { display: flex; gap: 8px; }
.gp-hs .gp-arrows button, .gp-hs .gp-arrows button:focus, .gp-hs .gp-arrows button:active { width: 40px; height: 40px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--gp-ink); font-size: 13px; cursor: pointer; display: grid; place-items: center; transition: background .2s, color .2s, transform .2s; }
.gp-hs .gp-arrows button:hover { background: var(--gp-indigo); color: #fff; transform: scale(1.08); }
.gp-hs button:focus-visible { outline: 3px solid var(--gp-cyan); outline-offset: 2px; }
@media (max-width: 1024px) { .gp-hs { aspect-ratio: 4 / 3; } .elementor .gp-hero-visual::before { inset: 14px -10px -14px 14px; } }
@media (max-width: 767px) { .gp-hs { border-radius: 22px; } .gp-hs-ui { padding: 14px 16px; } .gp-hs .gp-arrows button { width: 36px; height: 36px; } .gp-hs .gp-arrows .gp-prev, .gp-hs .gp-arrows .gp-next { display: none; } }

/* ------------------------------------------------------------ highlights under About */
.gp-stat-w, .gp-stat-w .elementor-widget-container { height: 100%; }
.gp-stat-card { position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; height: 100%; box-sizing: border-box; padding: 26px 28px; border-radius: 24px; background: #fff; border: 1px solid var(--gp-line); box-shadow: 0 30px 50px -40px rgba(43,43,180,.5); transition: transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s; }
.gp-stat-card::after { content: ''; position: absolute; top: 0; bottom: 0; left: -90px; width: 60px; background: linear-gradient(100deg, transparent, rgba(59,59,214,.12), transparent); transform: skewX(-18deg); animation: gp-shine 5.5s ease-in-out infinite; pointer-events: none; }
.gp-stat-ic { flex: none; width: 64px; height: 64px; border-radius: 20px; background: var(--gp-grad); color: #fff; display: grid; place-items: center; font-size: 26px; box-shadow: 0 14px 26px -12px rgba(59,59,214,.7); animation: gp-bob 3.2s ease-in-out infinite; }
.elementor-element:nth-child(2) > .elementor-widget-container .gp-stat-ic { animation-delay: .6s; }
.elementor-element:nth-child(3) > .elementor-widget-container .gp-stat-ic { animation-delay: 1.2s; }
.gp-stat-tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gp-stat-tx b { font: 800 clamp(24px, 2.4vw, 32px)/1.15 var(--gp-head); color: var(--gp-ink); letter-spacing: -.02em; }
.gp-stat-tx span { font: 500 15px/1.4 var(--gp-text); color: var(--gp-muted); }
@keyframes gp-shine { 0%, 55% { left: -90px; } 100% { left: calc(100% + 40px); } }
@keyframes gp-bob { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-6px) rotate(-6deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-3px) rotate(6deg); } }
@media (hover: hover) and (pointer: fine) { .gp-stat-card:hover { transform: translateY(-6px); border-color: var(--gp-indigo); box-shadow: 0 40px 60px -36px rgba(43,43,180,.6); } }
@media (max-width: 767px) { .gp-stat-card { padding: 20px 22px; } .gp-stat-ic { width: 56px; height: 56px; font-size: 22px; } }
/* ------------------------------------------------------------ scroll reveal (all screens) */
.gp-js [data-gp-reveal] { opacity: 0; transform: translateY(30px); transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); transition-delay: var(--gp-d, 0s); will-change: opacity, transform; }
.gp-js [data-gp-reveal].gp-ph { transform: translateY(22px) scale(.94); }
.gp-js [data-gp-reveal].is-in { opacity: 1; transform: none; }

/* ------------------------------------------------------------ touch devices: motion without hover */
@keyframes gp-float { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-9px) rotate(-3deg); } }
@keyframes gp-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,183,232,.5); } 60% { box-shadow: 0 0 0 12px rgba(0,183,232,0); } }
@keyframes gp-drift { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-26px, 18px) scale(1.25); } }
@keyframes gp-kenburns { 0% { transform: scale(1); } 100% { transform: scale(1.08); } }
@media (hover: none), (pointer: coarse) {
  .elementor .gp-about-img img { animation: gp-kenburns 9s ease-in-out infinite alternate; }
  .gp-step-n { animation: gp-pulse 2.6s ease-out infinite; }
  .elementor .gp-band::after { animation: gp-drift 9s ease-in-out infinite; }
  /* press feedback in place of hover */
  .elementor .gp-btn .elementor-button:active, .gp-cta:active, .gp-form .gp-submit:active { transform: scale(.96); }
  .elementor .gp-card:active, .gp-step:active, .gp-info:active, .elementor .gp-form-card:active { transform: scale(.975); }
  .elementor .gp-ph:active::after { opacity: 1; }
  .elementor .gp-ph:active::before { opacity: 1; transform: none; }
  .elementor .gp-ph:active img { transform: scale(1.06); }
  .gp-info:active .gp-info-ic { background: var(--gp-grad); color: #fff; }
  .gp-nav a:active { background: var(--gp-tint); color: var(--gp-indigo); }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
