/* ============================================================
   Octivise — styles for what Elementor's native controls
   cannot reproduce. Everything structural lives in Elementor.
   ============================================================ */

body,
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor,
.elementor-button{
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
}
body{ color:var(--oct-ink); line-height:1.65; }
html{ scroll-behavior:smooth; }

/* ---------- shared atoms ---------- */
.oct-accent{ color:var(--oct-accent); }
.oct-grad{
  background:linear-gradient(92deg,#4A90D9,#8CC3F2);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.oct-kicker .elementor-widget-container,
p.oct-kicker{
  font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
}
.oct-kicker-sky{ color:var(--oct-sky); }
.oct-kicker-mute{ color:var(--oct-on-dark-mute); }

.oct-dashed,
.oct-dashed .elementor-heading-title{
  border-bottom:2px dashed #A9BDD8; display:inline-block; padding-bottom:2px;
}
.oct-lift .oct-dashed .elementor-heading-title{ border-bottom-color:var(--oct-signal); }
.oct-svc .oct-dashed{ border-bottom-color:#2E4A72; }

.oct-link{
  display:inline-flex; align-items:center; font-size:14px; font-weight:600;
  color:var(--oct-accent); text-decoration:underline;
  text-underline-offset:5px; text-decoration-thickness:1.5px;
  transition:text-underline-offset .3s, color .3s;
}
.oct-link:hover{ text-underline-offset:8px; color:var(--oct-signal); }
.oct-link-dark{ color:var(--oct-pale); font-size:13.5px; }
.oct-link-dark:hover{ color:#fff; }

.elementor-button{ transition:background .2s, transform .2s, color .2s !important; }
.elementor-button:hover{ transform:translateY(-2px); }
.oct-btn-ghost .elementor-button{ box-shadow:none !important; }
.oct-btn-invert .elementor-button{ box-shadow:none !important; font-weight:700; }

:where(a,button,input,textarea,select):focus-visible{
  outline:2px solid var(--oct-signal); outline-offset:2px;
}

/* ---------- scroll progress + back to top ---------- */
.oct-progress{ position:fixed; inset:0 0 auto 0; height:3px; z-index:9999; pointer-events:none; }
.oct-progress span{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg,#2A5298,#4A90D9,#8CC3F2);
}
.oct-totop{
  position:fixed; right:20px; bottom:20px; z-index:9998;
  width:52px; height:52px; border-radius:50%; border:0; cursor:pointer;
  background:var(--oct-accent); color:#fff; font-size:20px; line-height:1;
  box-shadow:0 12px 30px rgba(15,27,46,.3);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .3s, visibility .3s, transform .3s, background .2s;
}
.oct-totop.is-on{ opacity:1; visibility:visible; transform:none; }
.oct-totop:hover{ background:var(--oct-ink); transform:translateY(-4px); }

/* ---------- hero ---------- */
.oct-hero{ position:relative; overflow:hidden; }
.oct-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(1100px 620px at 82% 34%,#15325A 0%,rgba(10,21,38,0) 68%);
}
.oct-hero > .e-con-inner,
.oct-hero > *{ position:relative; z-index:1; }

.oct-rotate{ display:inline-block; animation:octWordIn .5s ease both; }
@keyframes octWordIn{ from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none;} }

.oct-hero-visual{ position:relative; min-height:520px; }

/* globe — cropped to the sphere, no background plate */
.oct-globe-block{ position:absolute; inset:0; pointer-events:none; z-index:0; }
.oct-globe{
  position:absolute; right:-40px; top:-20px; width:min(480px,104%); aspect-ratio:1;
  border-radius:50%;
  background-image:var(--oct-globe,url("../images/globe.jpg"));
  background-size:152%; background-position:50% 48%;
  filter:saturate(.78) hue-rotate(-8deg) brightness(.96) contrast(1.06);
  box-shadow:0 0 90px rgba(74,144,217,.18);
}
.oct-orbit{
  position:absolute; right:-70px; top:-50px; width:min(540px,116%); aspect-ratio:1;
  border-radius:50%; border:1px dashed rgba(74,144,217,.2);
  animation:octOrbit 34s linear infinite;
}
@keyframes octOrbit{ from{ transform:rotate(0); } to{ transform:rotate(360deg); } }

.oct-orbs{ position:absolute; right:-74px; top:-20px; width:min(548px,118%); aspect-ratio:1; }
.oct-orb{
  position:absolute; width:54px; height:54px; border-radius:15px;
  background:rgba(14,34,59,.95); backdrop-filter:blur(6px);
  border:1px solid #3A6394; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; letter-spacing:-.02em; color:#8CC3F2;
  box-shadow:0 16px 34px rgba(0,0,0,.5); animation:octFloat 6s ease-in-out infinite;
}
.oct-orb-1{ right:14%; top:2%;  animation-duration:5.5s; }
.oct-orb-2{ right:1%;  top:24%; animation-duration:6.5s; animation-delay:.4s; color:#fff; }
.oct-orb-3{ right:-1%; top:52%; animation-duration:6s;   animation-delay:.8s; }
.oct-orb-4{ right:9%;  top:76%; animation-duration:7s;   animation-delay:1.2s; color:#fff; }
@keyframes octFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-9px);} }

/* hero panels */
.oct-panel{
  position:relative; z-index:2;
  background:rgba(14,34,59,.93); backdrop-filter:blur(10px);
  border:1px solid #26456E; border-radius:14px; padding:16px 18px;
  box-shadow:0 22px 50px rgba(0,0,0,.42);
}
.oct-panel-engines{ width:min(330px,100%); }
.oct-panel-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding-bottom:12px; border-bottom:1px solid #1E3B63; margin-bottom:10px;
  font-size:13px; color:var(--oct-on-dark);
}
.oct-engine{ display:flex; align-items:center; gap:11px; padding:7px 0; }
.oct-engine i{
  width:22px; height:22px; border-radius:6px; background:#17325A; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:800; font-style:normal; color:#8CC3F2;
}
.oct-engine span{ font-size:13.5px; color:#DCE7F5; }
.oct-dot{
  width:7px; height:7px; border-radius:50%; background:var(--oct-signal);
  display:block; animation:octPulse 2.4s ease-in-out infinite;
}
.oct-engine .oct-dot{ margin-left:auto; }
@keyframes octPulse{ 0%,100%{ opacity:.25; } 50%{ opacity:1; } }

.oct-panel-b{ flex:1 1 210px; min-width:0; }
.oct-panel-c{ flex:0 1 130px; }
.oct-panel-label{ font-size:12px; color:var(--oct-on-dark-mute); margin:0 0 6px; }
.oct-chart-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.oct-chart-num{
  font-size:26px; font-weight:800; letter-spacing:-.03em; color:#fff;
  border-bottom:2px dashed #2E4A72; padding-bottom:2px;
}
.oct-chart-up{ font-size:12px; font-weight:700; color:#5FD39B; }
.oct-spark{ width:100%; height:62px; display:block; }
.oct-spark path:first-child{ animation:octDraw 2s ease-out both; }
@keyframes octDraw{ from{ stroke-dashoffset:520; } to{ stroke-dashoffset:0; } }
.oct-months{ display:flex; justify-content:space-between; margin-top:6px; }
.oct-months span{ font-size:9.5px; color:#6F87A6; }

/* "Goal on your priority terms" — V3 dark treatment, deliberately */
.oct-panel-goal{ background:var(--oct-card); border-color:#24466E; }
.oct-goal-num{ font-size:30px; font-weight:800; letter-spacing:-.04em; color:#fff; line-height:1; margin:0; }
.oct-goal-label{ font-size:11.5px; color:var(--oct-on-dark-mute); margin:6px 0 0; }

/* marquee */
.oct-marquee-block{ border-top:1px solid #172C48; overflow:hidden; }
.oct-marquee-label{
  text-align:center; font-size:11px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:#6F87A6; padding:18px 20px 4px; margin:0;
}
.oct-marquee{ overflow:hidden; }
.oct-marquee-track{ display:flex; width:max-content; padding:10px 0 20px; animation:octMarquee 30s linear infinite; }
.oct-marquee-track:hover{ animation-play-state:paused; }
.oct-marquee-track span{
  padding:0 22px; font-size:16px; font-weight:700; color:#51678A; white-space:nowrap;
  display:inline-flex; align-items:center;
}
.oct-marquee-track span::after{
  content:""; width:5px; height:5px; border-radius:50%; background:#28405F; margin-left:18px;
}
@keyframes octMarquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ---------- stats ---------- */
.oct-stat-grid{ display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); }
.oct-stat{ transition:border-color .3s, transform .3s, box-shadow .3s; }
.oct-stat:hover{
  border-color:var(--oct-signal) !important; transform:translateY(-6px);
  box-shadow:0 22px 48px rgba(15,27,46,.14);
}
.oct-stat .elementor-icon{ border-radius:10px; transition:background .3s, color .3s, transform .3s; }
.oct-stat:hover .elementor-icon{
  background:var(--oct-accent) !important; color:#fff !important;
  transform:scale(1.08) rotate(-3deg);
}
.oct-stat:hover .elementor-icon svg{ fill:#fff; }

/* ---------- services (dark) ---------- */
.oct-svc-grid{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); }
.oct-svc{ position:relative; overflow:visible; transition:border-color .3s, transform .3s, box-shadow .3s, background .3s; }
.oct-svc::after{
  content:""; position:absolute; inset:0; border-radius:var(--oct-radius);
  overflow:hidden; pointer-events:none; opacity:0;
}
.oct-svc:hover{
  border-color:var(--oct-signal) !important; transform:translateY(-6px);
  box-shadow:0 26px 54px rgba(0,0,0,.45);
}
.oct-svc:hover .elementor-icon{
  background:var(--oct-accent) !important; color:#fff !important;
  transform:scale(1.08) rotate(-3deg);
}
.oct-svc .elementor-icon{ border-radius:12px; transition:background .3s, color .3s, transform .3s; }
.oct-svc:hover .oct-link-dark{ color:#fff; text-underline-offset:8px; }
.oct-flag{
  position:absolute; top:-11px; left:26px;
  background:var(--oct-accent); color:#fff; font-size:10px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase; padding:5px 12px; border-radius:999px;
}
.oct-svc-meta{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px;
  border-top:1px solid #1B3554; padding-top:16px; margin:24px 0 14px;
}
.oct-metric{ font-size:12px; font-weight:600; color:var(--oct-sky); }
.oct-price{ font-size:12px; color:var(--oct-on-dark-mute); }
.oct-price b{ font-weight:800; color:#fff; }

/* ---------- why us ---------- */
.oct-why-grid{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px !important; }
.oct-why{ position:relative; overflow:hidden; transition:background .3s; }
.oct-why::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--oct-accent); transform:scaleY(0); transform-origin:top;
  transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.oct-why:hover{ background:#F4F8FD !important; }
.oct-why:hover::before{ transform:scaleY(1); }
.oct-why:hover .elementor-icon{
  background:var(--oct-accent) !important; color:#fff !important;
  transform:scale(1.08) rotate(-3deg);
}
.oct-why:hover .elementor-icon-box-title{ color:var(--oct-accent) !important; }
.oct-why .elementor-icon{ border-radius:11px; transition:background .3s, color .3s, transform .35s cubic-bezier(.2,.7,.2,1); }

/* ---------- process ---------- */
.oct-grid-bg{ position:relative; }
.oct-grid-bg::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:76px 76px;
}
.oct-grid-bg > *{ position:relative; z-index:1; }

.oct-steps{ position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:30px; }
.oct-steps-rail,.oct-steps-fill{ position:absolute; left:8%; top:19px; height:2px; }
.oct-steps-rail{ right:8%; background:#1E3B63; }
.oct-steps-fill{ width:0; background:var(--oct-signal); transition:width .5s cubic-bezier(.2,.7,.2,1); }
.oct-step{
  position:relative; background:none; border:0; cursor:pointer; text-align:left;
  padding:0 8px 0 0; min-height:44px; display:block;
}
.oct-step-dot{
  display:flex; align-items:center; justify-content:center; width:40px; height:40px;
  border-radius:50%; background:#0E223B; border:2px solid #1E3B63; color:var(--oct-sky);
  font-size:14px; font-weight:700; margin-bottom:16px;
  transition:background .3s, border-color .3s, color .3s, box-shadow .3s;
}
.oct-step.is-done .oct-step-dot{ background:var(--oct-accent); border-color:var(--oct-accent); color:#fff; }
.oct-step.is-on .oct-step-dot{ box-shadow:0 0 0 5px rgba(74,144,217,.3); }
.oct-step-txt b{ display:block; font-size:16px; font-weight:700; letter-spacing:-.02em; color:#fff; margin-bottom:5px; transition:color .3s; }
.oct-step.is-on .oct-step-txt b{ color:var(--oct-sky); }
.oct-step-txt em{ display:block; font-style:normal; font-size:13px; line-height:1.55; color:var(--oct-on-dark-mute); }

.oct-step-panels{ background:#0E223B; border:1px solid #1E3B63; border-radius:var(--oct-radius); padding:30px; }
.oct-step-panel{ display:none; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:28px; }
.oct-step-panel.is-on{ display:grid; animation:octFade .4s ease both; }
@keyframes octFade{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }
.oct-step-panel h3{ font-size:25px; color:#fff; margin:0 0 12px; letter-spacing:-.03em; }
.oct-step-body{ font-size:15px; line-height:1.7; color:var(--oct-on-dark); margin:0; max-width:44ch; }
.oct-check{ list-style:none; margin:0; padding:0; }
.oct-check li{ position:relative; padding:8px 0 8px 32px; font-size:14.5px; color:#DCE7F5; line-height:1.6; }
.oct-check li::before{
  content:""; position:absolute; left:0; top:14px; width:15px; height:9px;
  border-left:2.6px solid var(--oct-signal); border-bottom:2.6px solid var(--oct-signal);
  transform:rotate(-45deg);
}

/* ---------- case studies ---------- */
.oct-case-grid{ display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); }
.oct-case{ transition:border-color .3s, transform .3s, box-shadow .3s; }
.oct-case:hover{
  border-color:var(--oct-signal) !important; transform:translateY(-6px);
  box-shadow:0 22px 48px rgba(15,27,46,.14);
}
.oct-case-media{ position:relative; height:180px; overflow:hidden; background:#EDF1F6; }
.oct-case-img{
  width:100%; height:100%; background-size:cover; background-position:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.oct-case:hover .oct-case-img{ transform:scale(1.07); }
.oct-case-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(10,21,38,.18) 0%,rgba(10,21,38,0) 40%,rgba(10,21,38,.34) 100%);
}
.oct-case-tag{
  position:absolute; left:16px; bottom:14px; z-index:2;
  background:rgba(255,255,255,.94); color:var(--oct-ink);
  font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:6px 11px; border-radius:7px;
}
.oct-status{
  display:inline-flex; border:1px dashed #A9BDD8; color:#5A6B84;
  font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 10px; border-radius:6px;
}
.oct-case-metrics{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px;
  border-top:1px solid var(--oct-line); padding-top:16px;
}
.oct-cm-val{ font-size:17px; font-weight:800; letter-spacing:-.03em; color:var(--oct-accent); line-height:1; margin:0; }
.oct-cm-lab{ font-size:11px; color:#5A6B84; margin:8px 0 0; line-height:1.35; }

/* ---------- AI search ---------- */
.oct-ai-bg{ position:relative; }
.oct-ai-bg::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(900px 480px at 20% 42%,#15325A 0%,rgba(10,21,38,0) 70%);
}
.oct-ai-bg > *{ position:relative; z-index:1; }
.oct-answer{
  background:#0E223B; border:1px solid #26456E; border-radius:18px; padding:24px;
  box-shadow:0 26px 60px rgba(0,0,0,.4);
}
.oct-answer-head{
  display:flex; align-items:center; gap:9px; padding-bottom:14px;
  border-bottom:1px solid #1E3B63; margin-bottom:16px;
  font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--oct-pale);
}
.oct-q{
  font-size:14px; color:#DCE7F5; background:#17325A;
  border-radius:12px 12px 4px 12px; padding:11px 14px; margin:0 0 12px auto; max-width:82%;
}
.oct-a{ border:1px solid #26456E; border-radius:12px 12px 12px 4px; padding:16px; background:#0A1B31; }
.oct-a-lead{ font-size:12.5px; color:var(--oct-on-dark-mute); margin:0 0 10px; }
.oct-a-row{ display:flex; align-items:center; gap:10px; padding:9px 0; border-top:1px solid #16304E; }
.oct-a-row b{ width:7px; height:7px; border-radius:50%; background:#3A5A80; flex:none; }
.oct-a-row span{ font-size:14px; color:var(--oct-on-dark); }
.oct-a-row em{ margin-left:auto; font-style:normal; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#7E9ABE; }
.oct-a-row.is-you span{ font-weight:700; color:#fff; }
.oct-note{ font-size:12px; color:#7E9ABE; margin:14px 0 0; }

.oct-bars{ display:flex; flex-direction:column; gap:12px; margin-bottom:28px; }
.oct-bar{ display:grid; grid-template-columns:minmax(0,1fr) minmax(70px,120px) 76px; gap:14px; align-items:center; }
.oct-bar span{ font-size:14.5px; font-weight:600; color:#fff; }
.oct-bar i{ height:6px; border-radius:3px; background:#1D3963; display:block; overflow:hidden; }
.oct-bar i b{
  display:block; height:100%; width:0; border-radius:3px;
  background:linear-gradient(90deg,#2A5298,#4A90D9);
  transition:width 1s cubic-bezier(.2,.8,.2,1);
}
.oct-bar em{ font-style:normal; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--oct-sky); text-align:right; }

/* ---------- testimonials ---------- */
.oct-quotes .elementor-testimonial{
  background:#fff; border:1px solid var(--oct-line); border-radius:var(--oct-radius);
  padding:28px 24px; height:100%; min-height:260px;
}
.oct-quotes .elementor-swiper-button{ color:var(--oct-accent); }
.oct-quotes .swiper-pagination-bullet-active{ background:var(--oct-accent); }

/* ---------- band + pill ---------- */
.oct-pill{
  display:inline-flex; align-items:center; background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2); color:#fff;
  font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:6px 13px; border-radius:999px;
}

/* ---------- FAQ ---------- */
.oct-faq .elementor-accordion-item{ border-width:0 0 1px 0 !important; }
.oct-faq .elementor-tab-title{ padding:20px 0; }
.oct-faq .elementor-tab-content{ padding:0 48px 22px 0; border:0 !important; }
.oct-faq .elementor-accordion-icon{
  width:30px; height:30px; border:1px solid var(--oct-line); border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  transition:background .3s, transform .35s cubic-bezier(.2,.7,.2,1);
}
.oct-faq .elementor-active .elementor-accordion-icon{ background:#EDF3FB; }

/* ---------- forms ---------- */
.oct-form .elementor-field-group .elementor-field{ min-height:48px; padding:15px 16px !important; }
.oct-form .elementor-button{ min-height:52px; }
.oct-form-inline .elementor-field-group{ margin-bottom:0; }
.oct-form-inline .elementor-button{ min-height:48px; width:48px; padding:0; }

/* ---------- footer ---------- */
.oct-foot-brand{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.oct-foot-brand span{ font-size:19px; font-weight:800; letter-spacing:-.02em; color:#fff; }
.oct-foot-blurb{ font-size:14.5px; line-height:1.65; color:#A3B6CE; max-width:30ch; margin:0 0 20px; }
.oct-social{ display:flex; gap:12px; }
.oct-social a{
  width:38px; height:38px; border-radius:10px; border:1px solid #1E3B63;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:700; color:#A3B6CE;
  transition:border-color .2s, color .2s, transform .2s;
}
.oct-social a:hover{ border-color:var(--oct-signal); color:#fff; transform:translateY(-2px); }
.oct-foot-links{ list-style:none; margin:0; padding:0; }
.oct-foot-links li{ margin-bottom:10px; }
.oct-foot-links a{ font-size:14.5px; color:#C3D1E4; }
.oct-foot-links a:hover{ color:var(--oct-signal); }
.oct-foot-bar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;
  padding-top:22px; border-top:1px solid #172C48;
}
.oct-foot-bar p{ font-size:13px; color:#8FA8C6; margin:0; }
.oct-foot-bar div{ display:flex; flex-wrap:wrap; gap:22px; }
.oct-foot-bar a{ font-size:13px; color:#8FA8C6; }
.oct-foot-bar a:hover{ color:var(--oct-signal); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .oct-svc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .oct-why-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .oct-case-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .oct-stat-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  /* the orbit rail has no room beside the panels — the same four
     engines are already named in the panel, so hide the badges */
  .oct-orbs{ display:none; }
  .oct-globe{ right:-10px; top:-10px; width:min(300px,72%); }
  .oct-orbit{ right:-30px; top:-30px; width:min(340px,80%); }
  .oct-hero-visual{ min-height:440px; }
  .oct-steps{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
  .oct-steps-rail,.oct-steps-fill{ display:none; }
}
@media (max-width:767px){
  .oct-svc-grid,
  .oct-why-grid,
  .oct-case-grid,
  .oct-steps{ grid-template-columns:minmax(0,1fr); }
  .oct-step{ display:flex; align-items:center; gap:14px; }
  .oct-step-dot{ margin-bottom:0; flex:none; }
  .oct-step-panels{ padding:22px; }
  .oct-panel-engines{ width:100%; }
  .oct-panel-c{ flex:1 1 100%; }
  .oct-case-metrics{ gap:8px; }
  .oct-totop{ right:14px; bottom:14px; }
}
@media (max-width:479px){
  .oct-stat-grid{ grid-template-columns:minmax(0,1fr); }
  .oct-bar{ grid-template-columns:minmax(0,1fr) 60px; }
  .oct-bar em{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


/* ================================================================
   ELEMENTOR-FREE FALLBACKS
   Used by octivise-homepage-free.elementor.json only.
   ================================================================ */

.oct-sr{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* --- static form markup (stand-in for the Pro Form widget) --- */
.oct-nform{ display:flex; flex-direction:column; gap:12px; }
.oct-nform__row{ display:block; }
.oct-nform input{
  width:100%; min-height:48px; padding:15px 16px; box-sizing:border-box;
  font-family:var(--oct-font); font-size:15px; line-height:1.4;
  border:1px solid var(--oct-line); border-radius:10px; background:#fff; color:var(--oct-ink);
}
.oct-nform input::placeholder{ color:#8A9AB0; opacity:1; }
.oct-nform input:focus-visible{ outline:2px solid var(--oct-accent); outline-offset:2px; border-color:var(--oct-accent); }
.oct-nform__submit{
  min-height:52px; padding:0 26px; border:0; border-radius:999px; cursor:pointer;
  font-family:var(--oct-font); font-size:15px; font-weight:700; letter-spacing:-.01em;
  background:var(--oct-primary); color:#fff; transition:background .18s ease;
}
.oct-nform__submit:hover{ background:var(--oct-accent); }
.oct-nform__submit:focus-visible{ outline:2px solid var(--oct-accent); outline-offset:3px; }

.oct-nform--dark input{ background:#0A1B31; border-color:#26456E; color:#fff; }
.oct-nform--dark input::placeholder{ color:#7E9ABE; }

.oct-nform--inline{ flex-direction:row; gap:8px; }
.oct-nform--inline .oct-nform__row{ flex:1 1 auto; min-width:0; }
.oct-nform--inline input{ min-height:48px; background:#0D1A2C; border-color:#22364F; color:#fff; }
.oct-nform--inline .oct-nform__submit{ flex:0 0 48px; width:48px; min-height:48px; padding:0; font-size:18px; }

/* --- when a form plugin is installed, match its fields to the design --- */
.oct-form-swap .wpcf7 input[type="text"], .oct-form-swap .wpcf7 input[type="email"],
.oct-form-swap .wpforms-field input[type="text"], .oct-form-swap .wpforms-field input[type="email"],
.oct-form-swap .frm-fluent-form input[type="text"], .oct-form-swap .frm-fluent-form input[type="email"]{
  width:100%; min-height:48px; padding:15px 16px; box-sizing:border-box;
  font-family:var(--oct-font); font-size:15px;
  border:1px solid #26456E; border-radius:10px; background:#0A1B31; color:#fff;
}
.oct-form-swap .wpcf7 input[type="submit"], .oct-form-swap .wpforms-submit,
.oct-form-swap .frm-fluent-form button[type="submit"]{
  width:100%; min-height:52px; border:0; border-radius:999px;
  font-family:var(--oct-font); font-size:15px; font-weight:700;
  background:var(--oct-primary); color:#fff; cursor:pointer;
}
.oct-form-swap .wpcf7 label, .oct-form-swap .wpforms-field-label{ display:none; }

/* --- static testimonial grid (stand-in for the Pro carousel) --- */
.oct-quote-grid > .e-con,
.oct-quote-grid > .elementor-element{ display:flex; }
.oct-quote-grid .elementor-testimonial,
.oct-quote-grid .elementor-testimonial-wrapper{
  background:#fff; border:1px solid var(--oct-line); border-radius:var(--oct-radius);
  padding:28px 24px; width:100%; height:100%; min-height:248px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.oct-quote-grid .elementor-testimonial-content,
.oct-quote-grid .elementor-testimonial-meta{ margin:0; }
.oct-quote-grid .elementor-testimonial-meta{ padding-top:18px; }
.oct-quote-grid .elementor-testimonial-image{ display:none; }
@media (max-width:767px){
  .oct-quote-grid .elementor-testimonial,
  .oct-quote-grid .elementor-testimonial-wrapper{ min-height:0; padding:24px 20px; }
}


/* Global header + footer styles are printed inline by the child theme
   (inc/chrome.php) so they cannot be lost to an enqueue failure or a
   caching plugin. Do not re-add them here. */
