@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@400;600;700&display=swap');

/* ============================================================
   APEX METAL FAB — WIDGET STYLES
   Exact match of approved HTML design
   ============================================================ */

:root {
    --apx-navy:   #0F172A;
    --apx-navy2:  #1E293B;
    --apx-orange: #F97316;
    --apx-orange2:#EA6A0A;
    --apx-white:  #FFFFFF;
    --apx-light:  #F8FAFC;
    --apx-light2: #F1F5F9;
    --apx-text:   #1E293B;
    --apx-sub:    #334155;
    --apx-border: #E2E8F0;
}

/* ── TOPBAR ─────────────────────────────────────────────────────── */
.apx-topbar { width:100%; }
.apx-topbar-inner { max-width:1280px; margin:0 auto; padding:8px 32px; display:flex; justify-content:space-between; align-items:center; }
.apx-topbar-left  { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.apx-topbar-right { display:flex; align-items:center; gap:12px; }
.apx-topbar-left a,
.apx-topbar-left span { font-size:12px; text-decoration:none; display:flex; align-items:center; gap:6px; transition:color .2s; font-family:'Inter',sans-serif; }
.apx-topbar-left a:hover { color:var(--apx-orange) !important; }
.apx-social { display:flex; gap:6px; }
.apx-social a { width:26px; height:26px; border-radius:4px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55); transition:all .2s; }
.apx-social a:hover { background:rgba(249,115,22,.2); border-color:rgba(249,115,22,.4); color:var(--apx-orange); }
.apx-topbar-cta { background:var(--apx-orange); color:#fff; padding:4px 14px; border-radius:4px; font-size:12px; font-weight:600; text-decoration:none; font-family:'Inter',sans-serif; transition:background .2s; }
.apx-topbar-cta:hover { background:var(--apx-orange2); }

/* ── HEADER NAV ─────────────────────────────────────────────────── */
.apx-header-nav { background:var(--apx-white); border-bottom:2px solid var(--apx-border); box-shadow:0 1px 12px rgba(15,23,42,.07); position:sticky; top:0; z-index:1000; transition:box-shadow .3s; }
.apx-header-inner { max-width:1280px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; height:76px; }

/* Logo */
.apx-logo { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.apx-logo img { display:block; }
.apx-logo-text { font-size:20px; font-weight:700; color:var(--apx-navy); font-family:'Poppins',sans-serif; }
.apx-logo-wrap { width:200px; flex-shrink:0; }

/* Nav */
.apx-nav { display:flex; align-items:center; gap:2px; flex:1; justify-content:center; overflow:visible; position:relative; }
.apx-nav-link { color:var(--apx-text); font-size:14px; font-weight:500; text-decoration:none; padding:8px 16px; border-radius:6px; transition:all .2s; white-space:nowrap; font-family:'Inter',sans-serif; position:relative; }
.apx-nav-link::after { content:''; position:absolute; bottom:4px; left:16px; right:16px; height:2px; background:var(--apx-orange); transform:scaleX(0); transform-origin:left; transition:transform .3s; border-radius:2px; }
.apx-nav-link:hover { color:var(--apx-orange); background:rgba(249,115,22,.06); }
.apx-nav-link:hover::after { transform:scaleX(1); }

/* Services trigger */
.apx-svc-nav { position:relative; display:flex; align-items:center; }
.apx-svc-trigger { cursor:pointer; }
.apx-chev { font-size:9px; display:inline-block; margin-left:4px; transition:transform .3s; }
.apx-svc-nav:hover .apx-chev { transform:rotate(180deg); }

/* CTA */
.apx-cta-link { padding:10px 22px; border-radius:8px; font-size:13px; font-weight:700; text-decoration:none; font-family:'Inter',sans-serif; transition:background .3s; white-space:nowrap; flex-shrink:0; }

/* Hamburger */
.apx-hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.apx-hamburger span { display:block; width:24px; height:2px; background:var(--apx-navy); border-radius:2px; transition:all .3s; }

/* ── MEGA MENU DROPDOWN ─────────────────────────────────────────── */
.apx-mega-wrap { display:none; position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%); width:920px; background:var(--apx-white); border:1px solid var(--apx-border); border-radius:16px; box-shadow:0 24px 64px rgba(15,23,42,.18); overflow:hidden; z-index:9999; }
.apx-svc-nav:hover .apx-mega-wrap { display:block; animation:apxMegaIn .22s ease forwards; }
@keyframes apxMegaIn { from { opacity:0; transform:translateX(-50%) translateY(10px); } to { opacity:1; transform:translateX(-50%) translateY(0); } }

/* Bridge gap so hover doesn't break */
.apx-svc-nav::after { content:''; position:absolute; top:100%; left:-20px; right:-20px; height:16px; }

/* Mega header */
.apx-mega-menu { width:100%; }
.apx-mega-hdr { background:var(--apx-navy); padding:16px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.apx-mega-hdr-left h3 { font-family:'Poppins',sans-serif; font-size:16px; font-weight:700; color:var(--apx-white); margin:0 0 2px; }
.apx-mega-hdr-left p  { font-size:11px; color:rgba(255,255,255,.5); margin:0; }
.apx-mega-hdr-right   { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.apx-mega-btn-ghost  { font-size:12px; font-weight:600; padding:7px 16px; border-radius:6px; text-decoration:none; transition:all .2s; background:rgba(255,255,255,.10); color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.15); white-space:nowrap; }
.apx-mega-btn-orange { font-size:12px; font-weight:600; padding:7px 16px; border-radius:6px; text-decoration:none; transition:all .2s; background:var(--apx-orange); color:#fff; white-space:nowrap; }
.apx-mega-btn-ghost:hover  { background:rgba(255,255,255,.18); }
.apx-mega-btn-orange:hover { background:var(--apx-orange2); }

/* Mega body 3 columns */
.apx-mega-body { display:grid; grid-template-columns:repeat(3,1fr); }
.apx-mega-col  { padding:24px 20px; }
.apx-mega-col--border { border-right:1px solid var(--apx-border); }
.apx-mega-col-hd { display:flex; align-items:center; gap:8px; padding-bottom:10px; border-bottom:2px solid var(--apx-light2); margin-bottom:14px; }
.apx-mega-col-hd span   { font-size:17px; }
.apx-mega-col-hd strong { font-size:11px; font-weight:700; color:var(--apx-sub); text-transform:uppercase; letter-spacing:1.5px; }

/* Service rows */
.apx-svc-row { display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; text-decoration:none; transition:all .2s; margin-bottom:2px; border:1px solid transparent; }
.apx-svc-row:hover { background:var(--apx-light); border-color:var(--apx-border); transform:translateX(3px); }
.apx-svc-ic { width:34px; height:34px; min-width:34px; border-radius:8px; background:var(--apx-light2); display:flex; align-items:center; justify-content:center; font-size:15px; transition:background .2s; flex-shrink:0; }
.apx-svc-row:hover .apx-svc-ic { background:rgba(249,115,22,.12); }
.apx-svc-txt h4 { font-size:13px; font-weight:600; color:var(--apx-navy); margin:0 0 1px; font-family:'Inter',sans-serif; transition:color .2s; line-height:1.2; }
.apx-svc-txt p  { font-size:11px; color:var(--apx-sub); margin:0; line-height:1.3; font-family:'Inter',sans-serif; }
.apx-svc-row:hover .apx-svc-txt h4 { color:var(--apx-orange); }

/* Mega footer */
.apx-mega-foot { background:var(--apx-light); border-top:1px solid var(--apx-border); padding:12px 24px; display:flex; align-items:center; justify-content:space-between; }
.apx-mega-foot-left { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.apx-mega-foot-left > span { font-size:12px; color:var(--apx-sub); font-family:'Inter',sans-serif; }
.apx-mega-foot-right a { font-size:12px; font-weight:600; color:var(--apx-orange); text-decoration:none; font-family:'Inter',sans-serif; }
.apx-mega-foot-right a:hover { opacity:.75; }
.apx-stat-pill { display:flex; align-items:center; gap:6px; background:var(--apx-white); border:1px solid var(--apx-border); border-radius:20px; padding:4px 12px; }
.apx-stat-pill strong { font-size:13px; font-weight:700; color:var(--apx-navy); font-family:'Poppins',sans-serif; }
.apx-stat-pill span   { font-size:11px; color:var(--apx-sub); font-family:'Inter',sans-serif; }

/* ── MOBILE NAV ─────────────────────────────────────────────────── */
.apx-mobile-nav { display:none; position:fixed; inset:0; background:var(--apx-navy); z-index:9999; flex-direction:column; overflow-y:auto; padding-top:72px; }
.apx-mobile-nav.open { display:flex; }
.apx-mobile-close { position:absolute; top:18px; right:18px; background:rgba(255,255,255,.08); border:none; color:rgba(255,255,255,.7); font-size:20px; cursor:pointer; width:40px; height:40px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.apx-mobile-links { display:flex; flex-direction:column; }
.apx-mobile-links a { color:rgba(255,255,255,.8); font-size:16px; font-weight:600; text-decoration:none; padding:14px 24px; border-bottom:1px solid rgba(255,255,255,.05); transition:all .2s; font-family:'Inter',sans-serif; }
.apx-mobile-links a:hover { color:var(--apx-orange); background:rgba(249,115,22,.07); }
.apx-mobile-svc-toggle { color:rgba(255,255,255,.8); font-size:16px; font-weight:600; padding:14px 24px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,.05); font-family:'Inter',sans-serif; }

.apx-mobile-svc-panel a { padding-left:36px !important; font-size:14px !important; font-weight:500 !important; }
.apx-mobile-bottom { padding:20px 24px; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:10px; margin-top:auto; }
.apx-mobile-call  { background:rgba(255,255,255,.08); color:var(--apx-white); border:1px solid rgba(255,255,255,.12); padding:14px; border-radius:10px; font-size:15px; font-weight:700; text-decoration:none; text-align:center; font-family:'Inter',sans-serif; }
.apx-mobile-quote { background:var(--apx-orange); color:var(--apx-white); padding:14px; border-radius:10px; font-size:15px; font-weight:700; text-decoration:none; text-align:center; font-family:'Inter',sans-serif; }

/* ── FOOTER ─────────────────────────────────────────────────────── */
.apx-footer { background:var(--apx-navy); font-family:'Inter',sans-serif; }
.apx-footer-inner { max-width:1280px; margin:0 auto; padding:0 32px; }
.apx-footer-grid { display:grid; grid-template-columns:2fr 1fr 1.2fr 1.4fr; gap:48px; padding:72px 0 48px; }
.apx-fc h4 { font-size:11px; font-weight:700; color:rgba(255,255,255,.35); text-transform:uppercase; letter-spacing:2px; margin:0 0 18px; }
.apx-fc ul { list-style:none; margin:0; padding:0; }
.apx-fc ul li { margin-bottom:10px; }
.apx-fc ul li a { font-size:13px; color:rgba(255,255,255,.55); text-decoration:none; transition:color .2s; }
.apx-fc ul li a:hover { color:var(--apx-orange); }
.apx-fc--brand img { height:50px; width:auto; filter:brightness(0) invert(1); margin-bottom:16px; display:block; }
.apx-fc--brand p { font-size:13px; color:rgba(255,255,255,.5); line-height:1.75; margin:0 0 20px; max-width:280px; }
.apx-certs { display:flex; gap:8px; flex-wrap:wrap; }
.apx-cert-badge { background:rgba(249,115,22,.12); border:1px solid rgba(249,115,22,.3); color:var(--apx-orange); font-size:10px; font-weight:700; padding:4px 12px; border-radius:100px; letter-spacing:1px; text-transform:uppercase; }
.apx-fci { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; }
.apx-fci > span:first-child { font-size:14px; min-width:18px; color:var(--apx-orange); margin-top:1px; flex-shrink:0; }
.apx-fci a, .apx-fci span:last-child { font-size:13px; color:rgba(255,255,255,.55); text-decoration:none; transition:color .2s; line-height:1.5; }
.apx-fci a:hover { color:var(--apx-orange); }
.apx-footer-bottom { border-top:1px solid rgba(255,255,255,.07); }
.apx-footer-bottom .apx-footer-inner { padding-top:24px; padding-bottom:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.apx-footer-bottom p { font-size:12px; color:rgba(255,255,255,.30); margin:0; }
.apx-fbl { display:flex; gap:24px; }
.apx-fbl a { font-size:12px; color:rgba(255,255,255,.30); text-decoration:none; transition:color .2s; }
.apx-fbl a:hover { color:var(--apx-orange); }

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media (max-width: 1200px) { .apx-mega-wrap { width: calc(100vw - 40px); left:auto; right:0; transform:none; } }
@media (max-width: 1024px) { .apx-footer-grid { grid-template-columns:1fr 1fr; gap:32px; } }
@media (max-width: 768px) {
    .apx-topbar-left span { display:none; }
    .apx-header-inner { padding:0 20px; }
    .apx-nav { display:none; }
    .apx-hamburger { display:flex; }
    .apx-cta-link { display:none; }
    .apx-logo-wrap { width:auto; }
    .apx-footer-grid { grid-template-columns:1fr; }
    .apx-footer-inner { padding:0 20px; }
    .apx-topbar-inner { padding:8px 20px; }
}

/* ── MOBILE SERVICES PANEL ─────────────────────────────────────── */
.apx-mobile-svc-cat { font-size:10px; font-weight:700; color:rgba(255,255,255,.35); text-transform:uppercase; letter-spacing:2px; padding:12px 24px 6px; border-top:1px solid rgba(255,255,255,.05); }

.apx-mobile-svc-panel a { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.7); font-size:13px; font-weight:500; padding:10px 24px 10px 32px; text-decoration:none; border-bottom:1px solid rgba(255,255,255,.04); transition:all .2s; }
.apx-mobile-svc-panel a:hover { color:#F97316; background:rgba(249,115,22,.07); padding-left:36px; }
.apx-mobile-view-all { color:#F97316 !important; font-weight:700 !important; padding:12px 24px !important; background:rgba(249,115,22,.07); }
.apx-msvc-chev { font-size:9px; display:inline-block; transition:transform .3s; margin-left:4px; }

/* ================================================================
   HOMEPAGE SECTION WIDGETS
   ================================================================ */

/* ── Shared layout utilities ──────────────────────────────────── */
.apx-sec { width: 100%; }
.apx-sec--white { background: #FFFFFF; }
.apx-sec--light { background: #F8FAFC; }
.apx-sec--navy  { background: #0F172A; }
.apx-container  { max-width: 1280px; margin: 0 auto; padding: 96px 32px; }
.apx-sec-header { text-align: center; max-width: 680px; margin: 0 auto 56px; }
.apx-sec-header h2 { font-family: 'Poppins', sans-serif; font-size: 48px; font-weight: 700; color: #0F172A; margin: 0 0 12px; line-height: 1.1; }
.apx-sec-header .apx-sub { font-size: 16px; color: #334155; line-height: 1.65; margin: 0; }
.apx-sec-cta { text-align: center; margin-top: 40px; }
.apx-divider { width: 64px; height: 4px; background: #F97316; border-radius: 2px; margin: 16px 0 24px; }
.apx-divider--center { margin: 16px auto 24px; }

/* Buttons */
.apx-btn-orange       { display:inline-flex; align-items:center; background:#F97316; color:#fff; padding:14px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:background .2s; font-family:'Inter',sans-serif; }
.apx-btn-orange:hover { background:#EA6A0A; }
.apx-btn-navy         { display:inline-flex; align-items:center; background:#0F172A; color:#fff; padding:14px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:background .2s; font-family:'Inter',sans-serif; }
.apx-btn-navy:hover   { background:#F97316; }
.apx-btn-outline-navy  { display:inline-flex; align-items:center; background:transparent; color:#0F172A; border:2px solid #0F172A; padding:12px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:all .2s; }
.apx-btn-outline-navy:hover { background:#0F172A; color:#fff; }
.apx-btn-outline-white { display:inline-flex; align-items:center; background:transparent; color:#fff; border:2px solid rgba(255,255,255,.35); padding:12px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:all .2s; }
.apx-btn-outline-white:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.apx-btn-full { width:100%; justify-content:center; }

/* Badge chips */
.apx-badge-orange { display:inline-block; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.25); color:#F97316; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; padding:5px 14px; border-radius:100px; margin-bottom:14px; font-family:'Inter',sans-serif; }
.apx-badge-navy   { display:inline-block; background:rgba(15,23,42,.07);  border:1px solid rgba(15,23,42,.13);  color:#0F172A; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; padding:5px 14px; border-radius:100px; margin-bottom:14px; font-family:'Inter',sans-serif; }
.apx-badge-white  { display:inline-block; background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.9); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; padding:5px 14px; border-radius:100px; margin-bottom:14px; font-family:'Inter',sans-serif; }

/* ── HERO ─────────────────────────────────────────────────────── */
.apx-hero { background:#0F172A; min-height:100vh; display:flex; align-items:center; padding:112px 0 96px; }
.apx-hero-inner { max-width:1280px; margin:0 auto; padding:0 32px; display:flex; flex-direction:row; align-items:flex-start; justify-content:space-between; gap:48px; flex-wrap:nowrap; width:100%; }
.apx-hero-left { flex:0 0 52%; min-width:0; }
.apx-hero-left h1 { font-family:'Poppins',sans-serif; font-size:80px; font-weight:700; color:#fff; line-height:1.0; margin:0 0 20px; }
.apx-hero-sub { font-size:17px; color:rgba(255,255,255,.65); line-height:1.65; margin:0 0 36px; max-width:520px; font-family:'Inter',sans-serif; }
.apx-hero-btns { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:48px; }
.apx-hero-trust { display:flex; align-items:center; gap:10px; font-size:13px; color:rgba(255,255,255,.5); font-family:'Inter',sans-serif; }
.apx-hero-right { flex:0 0 44%; min-width:0; }
.apx-caps-panel { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.10); border-radius:20px; padding:32px; width:100%; }
.apx-caps-title { font-size:11px; font-weight:700; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:1.5px; margin-bottom:20px; font-family:'Inter',sans-serif; }
.apx-caps-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:24px; width:100%; }
.apx-cap { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:14px; }
.apx-cap-icon { font-size:20px; margin-bottom:6px; }
.apx-cap-name { font-size:12px; font-weight:600; color:#fff; margin-bottom:2px; font-family:'Inter',sans-serif; }
.apx-cap-spec { font-size:11px; color:rgba(255,255,255,.40); font-family:'Inter',sans-serif; }

/* ── STATS STRIP ──────────────────────────────────────────────── */
.apx-stats-strip { width:100%; }
.apx-stats-light { background:#F8FAFC; border-bottom:3px solid #F97316; }
.apx-stats-dark  { background:#0F172A; }
.apx-stats-inner { max-width:1280px; margin:0 auto; padding:0 32px; display:grid; grid-template-columns:repeat(4,1fr); }
.apx-stat-item { padding:36px 24px; text-align:center; border-right:1px solid #E2E8F0; }
.apx-stat-item:last-child { border-right:none; }
.apx-stat-num { font-family:'Poppins',sans-serif; font-size:52px; font-weight:700; color:#0F172A; line-height:1; }
.apx-stat-lbl { font-size:11px; font-weight:700; color:#334155; text-transform:uppercase; letter-spacing:1.5px; margin-top:6px; font-family:'Inter',sans-serif; }
.apx-stats-dark .apx-stat-num { color:#F97316; }
.apx-stats-dark .apx-stat-lbl { color:rgba(255,255,255,.45); }
.apx-stats-dark .apx-stat-item { border-color:rgba(255,255,255,.08); }

/* ── ABOUT ────────────────────────────────────────────────────── */
.apx-about { background:#fff; }
.apx-about-inner { max-width:1280px; margin:0 auto; padding:96px 32px; display:flex; align-items:center; gap:64px; flex-wrap:wrap; }
.apx-about-img-col { flex:0 0 45%; position:relative; }
.apx-about-img { width:100%; border-radius:20px; display:block; }
.apx-about-img-placeholder { width:100%; aspect-ratio:4/3; background:#F1F5F9; border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:14px; color:#475569; }
.apx-about-badge { position:absolute; bottom:24px; left:-20px; background:#F97316; border-radius:14px; padding:20px 24px; box-shadow:0 8px 28px rgba(249,115,22,.40); }
.apx-badge-big { display:block; font-size:40px; font-weight:700; color:#fff; font-family:'Poppins',sans-serif; line-height:1; }
.apx-badge-sm  { display:block; font-size:10px; color:rgba(255,255,255,.8); text-transform:uppercase; letter-spacing:1px; margin-top:3px; }
.apx-about-content { flex:1; }
.apx-about-content h2 { font-family:'Poppins',sans-serif; font-size:48px; font-weight:700; color:#0F172A; margin:0 0 12px; }
.apx-about-content p  { font-size:15px; color:#334155; line-height:1.65; margin-bottom:12px; font-family:'Inter',sans-serif; }
.apx-feat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px; }
.apx-feat { display:flex; align-items:flex-start; gap:10px; background:#F8FAFC; border:1px solid #E2E8F0; border-radius:10px; padding:14px; }
.apx-feat-ic { font-size:18px; flex-shrink:0; }
.apx-feat-title { font-size:13px; font-weight:700; color:#0F172A; margin-bottom:2px; font-family:'Inter',sans-serif; }
.apx-feat-desc  { font-size:12px; color:#334155; font-family:'Inter',sans-serif; }

/* ── SERVICES GRID ────────────────────────────────────────────── */










/* ── WHY US ───────────────────────────────────────────────────── */
.apx-why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.apx-why-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:32px 28px; transition:all .2s; }
.apx-why-card:hover { border-color:#F97316; box-shadow:0 8px 32px rgba(249,115,22,.08); transform:translateY(-2px); }
.apx-why-icon { width:56px; height:56px; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.20); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:16px; transition:background .2s; }
.apx-why-card:hover .apx-why-icon { background:rgba(249,115,22,.18); }
.apx-why-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 8px; }
.apx-why-card p  { font-size:14px; color:#334155; line-height:1.6; margin:0 0 16px; font-family:'Inter',sans-serif; }
.apx-why-stat { display:inline-block; background:#F8FAFC; border:1px solid #E2E8F0; color:#F97316; font-size:12px; font-weight:700; padding:4px 12px; border-radius:20px; font-family:'Inter',sans-serif; }

/* ── NAVY STATS SECTION ───────────────────────────────────────── */
.apx-stats-navy-grid { display:grid; grid-template-columns:repeat(4,1fr); background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:16px; overflow:hidden; }
.apx-stat-navy { padding:40px 24px; text-align:center; border-right:1px solid rgba(255,255,255,.08); }
.apx-stat-navy:last-child { border-right:none; }
.apx-stat-num--orange { font-family:'Poppins',sans-serif; font-size:64px; font-weight:700; color:#F97316 !important; line-height:1; }
.apx-stat-lbl--light  { font-size:12px; font-weight:700; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:1.5px; margin-top:6px; font-family:'Inter',sans-serif; }

/* ── PROCESS ──────────────────────────────────────────────────── */
.apx-process-grid { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.apx-pr-step { flex:1; min-width:140px; display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; }
.apx-pr-circle { width:72px; height:72px; border-radius:50%; background:#fff; border:2px solid #E2E8F0; display:flex; align-items:center; justify-content:center; position:relative; margin-bottom:14px; box-shadow:0 2px 12px rgba(15,23,42,.07); }
.apx-pr-icon { font-size:22px; }
.apx-pr-num  { position:absolute; top:-5px; right:-2px; width:20px; height:20px; background:#F97316; border-radius:50%; font-size:10px; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:center; }
.apx-pr-connector { position:absolute; top:36px; left:calc(50% + 40px); right:calc(-50% + 40px); height:2px; background:#E2E8F0; z-index:0; }
.apx-pr-step h4 { font-family:'Inter',sans-serif; font-size:13px; font-weight:700; color:#0F172A; margin:0 0 4px; }
.apx-pr-step p  { font-size:11px; color:#334155; margin:0; font-family:'Inter',sans-serif; }

/* ── TESTIMONIALS ─────────────────────────────────────────────── */
.apx-testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.apx-tc { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:28px; display:flex; flex-direction:column; }
.apx-tc-stars { color:#F97316; font-size:14px; letter-spacing:2px; margin-bottom:14px; }
.apx-tc-quote { font-style:italic; font-size:14px; color:#334155; line-height:1.7; padding-left:14px; border-left:3px solid #F97316; margin:0 0 20px; flex-grow:1; font-family:'Inter',sans-serif; }
.apx-tc-author { display:flex; align-items:center; gap:12px; margin-top:auto; }
.apx-tc-av { width:40px; height:40px; min-width:40px; border-radius:50%; background:#0F172A; color:#fff; font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; font-family:'Inter',sans-serif; }
.apx-tc-name { font-size:14px; font-weight:600; color:#0F172A; font-family:'Inter',sans-serif; }
.apx-tc-role { font-size:12px; color:#334155; font-family:'Inter',sans-serif; }

/* ── CTA BAND ─────────────────────────────────────────────────── */
.apx-cta-band { padding:96px 0; text-align:center; }
.apx-cta-band .apx-container { max-width:680px; }
.apx-cta-band h2 { font-family:'Poppins',sans-serif; font-size:56px; font-weight:700; color:#fff; margin:0 0 16px; line-height:1.1; }
.apx-cta-band p  { font-size:17px; color:rgba(255,255,255,.65); margin:0 0 36px; line-height:1.65; font-family:'Inter',sans-serif; }
.apx-cta-band-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ── CONTACT STRIP ────────────────────────────────────────────── */
.apx-contact-grid { display:grid; grid-template-columns:2fr 3fr; gap:64px; align-items:start; }
.apx-contact-info h2 { font-family:'Poppins',sans-serif; font-size:40px; font-weight:700; color:#0F172A; margin:0 0 14px; }
.apx-contact-info p  { font-size:15px; color:#334155; line-height:1.65; margin-bottom:28px; font-family:'Inter',sans-serif; }
.apx-ccd-list { display:flex; flex-direction:column; gap:18px; }
.apx-ccd { display:flex; align-items:flex-start; gap:10px; }
.apx-ccd-ic { font-size:14px; color:#F97316; min-width:18px; margin-top:2px; }
.apx-ccd a, .apx-ccd span { font-size:14px; color:#1E293B; text-decoration:none; line-height:1.5; transition:color .2s; font-family:'Inter',sans-serif; }
.apx-ccd a:hover { color:#F97316; }

/* Quote Form */
.apx-quote-form-wrap { background:#fff; border:1px solid #E2E8F0; border-radius:16px; padding:40px; box-shadow:0 4px 24px rgba(15,23,42,.06); }
.apx-quote-form-wrap h3 { font-family:'Poppins',sans-serif; font-size:28px; font-weight:700; color:#0F172A; margin:0 0 8px; }
.apx-quote-form-wrap > p { font-size:14px; color:#334155; margin:0 0 28px; font-family:'Inter',sans-serif; }
.apx-qform-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.apx-qform-field { display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.apx-qform-field--full { grid-column:1/-1; }
.apx-qform-field label { font-size:11px; font-weight:600; color:#0F172A; text-transform:uppercase; letter-spacing:.8px; font-family:'Inter',sans-serif; }
.apx-qform-field label span { color:#F97316; }
.apx-qform-field input,
.apx-qform-field select,
.apx-qform-field textarea { border:1px solid #E2E8F0; border-radius:8px; padding:12px 16px; font-size:14px; color:#1E293B; background:#F8FAFC; font-family:'Inter',sans-serif; outline:none; transition:border .2s; width:100%; box-sizing:border-box; }
.apx-qform-field input:focus,
.apx-qform-field select:focus,
.apx-qform-field textarea:focus { border-color:#0F172A; background:#fff; }
.apx-qform-submit { cursor:pointer; font-size:15px; }
.apx-qform-success { background:#d1fae5; border:1px solid #6ee7b7; color:#065f46; padding:14px 16px; border-radius:8px; font-size:14px; margin-top:12px; font-family:'Inter',sans-serif; }
.apx-qform-error   { background:#fee2e2; border:1px solid #fca5a5; color:#991b1b; padding:14px 16px; border-radius:8px; font-size:14px; margin-top:12px; font-family:'Inter',sans-serif; }


/* ── HERO LAYOUT — force row even in Elementor editor ─────────── */
.apx-hero-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
}
.apx-hero-left {
    flex: 0 0 52% !important;
    max-width: 52% !important;
    min-width: 0 !important;
    padding-top: 20px;
}
.apx-hero-right {
    flex: 0 0 44% !important;
    max-width: 44% !important;
    min-width: 0 !important;
}
.apx-hero-left h1 {
    font-size: clamp(36px, 5vw, 80px) !important;
}

/* ── RESPONSIVE ALL SECTIONS ──────────────────────────────────── */
@media (max-width: 1024px) {
    .apx-hero-left h1 { font-size:60px; }
    
    .apx-why-grid { grid-template-columns:repeat(2,1fr); }
    .apx-testi-grid { grid-template-columns:repeat(2,1fr); }
    .apx-contact-grid { grid-template-columns:1fr; gap:40px; }
    .apx-stats-navy-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 768px) {
    .apx-container { padding:64px 20px; }
    .apx-hero { padding:88px 0 64px; }
    .apx-hero-inner { flex-direction:column !important; flex-wrap:wrap !important; }
    .apx-hero-left { flex:none !important; width:100% !important; max-width:100% !important; }
    .apx-hero-right { flex:none !important; width:100% !important; max-width:100% !important; }
    .apx-hero-left h1 { font-size:44px !important; }
    .apx-about-inner { flex-direction:column; padding:64px 20px; }
    .apx-about-img-col { width:100%; }
    .apx-about-badge { left:16px; }
    
    .apx-why-grid { grid-template-columns:1fr; }
    .apx-testi-grid { grid-template-columns:1fr; }
    .apx-stats-inner { grid-template-columns:repeat(2,1fr); }
    .apx-stats-navy-grid { grid-template-columns:repeat(2,1fr); }
    .apx-process-grid { grid-template-columns:repeat(2,1fr); }
    .apx-pr-connector { display:none; }
    .apx-qform-row { grid-template-columns:1fr; }
    .apx-cta-band h2 { font-size:40px; }
    .apx-sec-header h2 { font-size:36px; }
    .apx-quote-form-wrap { padding:24px; }
}

/* ================================================================
   ABOUT PAGE SECTION WIDGETS
   ================================================================ */

/* ── PAGE HERO ────────────────────────────────────────────────── */
.apx-ph { width:100%; text-align:center; }
.apx-ph-inner { max-width:800px; margin:0 auto; padding:0 32px; }
.apx-ph-breadcrumb { font-size:12px; color:rgba(255,255,255,.40); text-transform:uppercase; letter-spacing:2px; margin-bottom:16px; font-family:'Inter',sans-serif; }
.apx-ph-breadcrumb a { color:rgba(255,255,255,.50); text-decoration:none; }
.apx-ph-breadcrumb a:hover { color:#F97316; }
.apx-ph h1 { font-family:'Poppins',sans-serif; font-size:72px; font-weight:700; line-height:1.05; margin:0 0 16px; }
.apx-ph p  { font-size:17px; line-height:1.65; margin:0; max-width:640px; margin-left:auto; margin-right:auto; font-family:'Inter',sans-serif; }

/* ── ABOUT STORY ─────────────────────────────────────────────── */
.apx-story-inner { max-width:1280px; margin:0 auto; padding:96px 32px; display:flex; align-items:flex-start; gap:64px; flex-wrap:nowrap; }
.apx-story-img-col { flex:0 0 40%; position:relative; }




.apx-story-img { width:100%; border-radius:20px; display:block; }
.apx-story-img-placeholder { width:100%; aspect-ratio:4/3; background:#F1F5F9; border-radius:20px; display:flex; align-items:center; justify-content:center; font-size:14px; color:#475569; }



.apx-story-text-col { flex:1; min-width:0; }
.apx-story-text-col h2 { font-family:'Poppins',sans-serif; font-size:48px; font-weight:700; color:#0F172A; margin:0 0 12px; line-height:1.1; }
.apx-story-text-col p  { font-size:15px; color:#334155; line-height:1.65; margin-bottom:14px; font-family:'Inter',sans-serif; }
.apx-story-btns { display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }

/* ── MISSION / VISION / PROMISE ──────────────────────────────── */
.apx-mvv-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:48px; }
.apx-mvv-card { background:#fff; border:1px solid #E2E8F0; border-radius:16px; padding:32px; border-top:4px solid #F97316; transition:box-shadow .2s; }
.apx-mvv-card:hover { box-shadow:0 8px 32px rgba(15,23,42,.08); }
.apx-mvv-icon { font-size:36px; margin-bottom:14px; }
.apx-mvv-card h3 { font-family:'Poppins',sans-serif; font-size:22px; font-weight:700; color:#0F172A; margin:0 0 10px; }
.apx-mvv-card p  { font-size:14px; color:#334155; line-height:1.65; margin:0; font-family:'Inter',sans-serif; }

/* Values row */
.apx-vals-wrap { background:#0F172A; border-radius:16px; padding:40px; }
.apx-vals-heading { font-family:'Poppins',sans-serif; font-size:24px; font-weight:700; color:#fff; margin:0 0 28px; text-align:center; }
.apx-vals-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.apx-val-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:20px; text-align:center; transition:background .2s; }
.apx-val-card:hover { background:rgba(249,115,22,.10); border-color:rgba(249,115,22,.20); }
.apx-val-icon { font-size:28px; margin-bottom:10px; }
.apx-val-card h4 { font-size:14px; font-weight:700; color:#fff; margin:0 0 4px; font-family:'Inter',sans-serif; }
.apx-val-card p  { font-size:12px; color:rgba(255,255,255,.45); margin:0; font-family:'Inter',sans-serif; }

/* ── TEAM ────────────────────────────────────────────────────── */
.apx-team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.apx-tm-card { background:#fff; border:1px solid #E2E8F0; border-radius:16px; padding:32px; display:flex; flex-direction:column; align-items:flex-start; transition:all .2s; }
.apx-tm-card:hover { border-color:#F97316; box-shadow:0 8px 32px rgba(249,115,22,.08); transform:translateY(-2px); }
.apx-tm-avatar { width:80px; height:80px; border-radius:50%; background:#0F172A; border:3px solid #F97316; display:flex; align-items:center; justify-content:center; margin-bottom:18px; overflow:hidden; flex-shrink:0; }
.apx-tm-avatar img { width:100%; height:100%; object-fit:cover; }
.apx-tm-icon { font-size:32px; }
.apx-tm-body h3 { font-family:'Poppins',sans-serif; font-size:22px; font-weight:700; color:#0F172A; margin:0 0 4px; }
.apx-tm-role { font-size:13px; font-weight:600; color:#F97316; text-transform:uppercase; letter-spacing:1px; margin-bottom:12px; font-family:'Inter',sans-serif; }
.apx-tm-body p  { font-size:14px; color:#334155; line-height:1.65; margin:0 0 16px; flex-grow:1; font-family:'Inter',sans-serif; }
.apx-tm-contact { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:#0F172A; text-decoration:none; padding:8px 16px; border:1px solid #E2E8F0; border-radius:8px; transition:all .2s; background:#F8FAFC; font-family:'Inter',sans-serif; }
.apx-tm-contact:hover { border-color:#F97316; color:#F97316; background:rgba(249,115,22,.05); }

/* ── CERTIFICATIONS ──────────────────────────────────────────── */
.apx-cert-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.apx-cert-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:28px; display:flex; flex-direction:column; transition:all .2s; }
.apx-cert-card:hover { border-color:#F97316; box-shadow:0 8px 28px rgba(249,115,22,.08); transform:translateY(-2px); }
.apx-cert-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.apx-cert-icon { font-size:36px; }
.apx-cert-badge { font-size:10px; font-weight:700; color:#F97316; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.25); padding:3px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:1px; font-family:'Inter',sans-serif; }
.apx-cert-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 8px; }
.apx-cert-card p  { font-size:13px; color:#334155; line-height:1.6; margin:0; font-family:'Inter',sans-serif; }

/* ── ABOUT PAGE RESPONSIVE ───────────────────────────────────── */
@media (max-width: 1024px) {
    .apx-cert-grid { grid-template-columns:repeat(2,1fr); }
    .apx-vals-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 768px) {
    .apx-ph h1 { font-size:44px; }
    .apx-story-inner { flex-direction:column; padding:64px 20px; }
    .apx-story-img-col { width:100%; flex:none; }
    .apx-mvv-grid { grid-template-columns:1fr; }
    .apx-team-grid { grid-template-columns:1fr; }
    .apx-cert-grid { grid-template-columns:repeat(2,1fr); }
    .apx-vals-grid { grid-template-columns:repeat(2,1fr); }
}

/* ================================================================
   SERVICES OVERVIEW PAGE WIDGETS
   ================================================================ */

/* ── SERVICES INDEX GRID ──────────────────────────────────────── */

















/* ── INDUSTRIES GRID ─────────────────────────────────────────── */
.apx-ind-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.apx-ind-card {
    border-radius:14px;
    padding:32px 28px;
    transition:all .3s;
    border:1px solid rgba(255,255,255,.06);
    text-decoration:none;
    display:block;
}
.apx-ind-card:hover {
    transform:translateY(-4px);
    box-shadow:0 12px 36px rgba(0,0,0,.30);
    border-color:rgba(249,115,22,.30) !important;
}
.apx-ind-ic { font-size:40px; margin-bottom:14px; display:block; }
.apx-ind-card h3 { font-family:'Poppins',sans-serif; font-size:22px; font-weight:700; margin:0 0 8px; line-height:1.2; }
.apx-ind-card p  { font-size:13px; line-height:1.6; margin:0; font-family:'Inter',sans-serif; }

/* ── SERVICES PAGE RESPONSIVE ────────────────────────────────── */
@media (max-width: 1100px) {
    
}
@media (max-width: 768px) {
    .apx-si-grid--4col,
    
    .apx-ind-grid       { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 480px) {
    .apx-si-grid--4col,
    
    .apx-ind-grid       { grid-template-columns:1fr; }
}

/* ================================================================
   SERVICES OVERVIEW PAGE WIDGETS
   ================================================================ */

/* ── INDUSTRIES ───────────────────────────────────────────────── */
.apx-ind-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:48px; }
.apx-ind-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:28px 24px; transition:all .2s; cursor:default; }
.apx-ind-card:hover { background:rgba(249,115,22,.10); border-color:rgba(249,115,22,.25); transform:translateY(-2px); }
.apx-ind-icon { font-size:36px; margin-bottom:12px; }
.apx-ind-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#fff; margin:0 0 6px; }
.apx-ind-card p  { font-size:13px; color:rgba(255,255,255,.55); margin:0; line-height:1.5; font-family:'Inter',sans-serif; }

/* Industries stats bar */
.apx-ind-stats { display:grid; grid-template-columns:repeat(4,1fr); background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:14px; overflow:hidden; }
.apx-ind-stat  { padding:28px 20px; text-align:center; border-right:1px solid rgba(255,255,255,.08); }
.apx-ind-stat:last-child { border-right:none; }
.apx-ind-stat-num { font-family:'Poppins',sans-serif; font-size:44px; font-weight:700; color:#F97316; line-height:1; }
.apx-ind-stat-lbl { font-size:11px; font-weight:700; color:rgba(255,255,255,.40); text-transform:uppercase; letter-spacing:1.5px; margin-top:4px; font-family:'Inter',sans-serif; }

/* ── SERVICES PAGE RESPONSIVE ─────────────────────────────────── */
@media (max-width: 1024px) {
    
    .apx-ind-grid { grid-template-columns:repeat(2,1fr); }
    .apx-ind-stats{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 768px) {
    
    .apx-ind-grid { grid-template-columns:1fr; }
    .apx-ind-stats{ grid-template-columns:repeat(2,1fr); }
}

/* ── Stats Dark — force orange color ───────────────────────────── */
.apx-stats-navy-grid .apx-stat-num,
.apx-stats-navy-grid .apx-stat-num--orange,
.apx-stat-navy .apx-stat-num,
.apx-stat-navy .apx-stat-num--orange {
    color: #F97316 !important;
}
.apx-stats-navy-grid .apx-stat-lbl,
.apx-stats-navy-grid .apx-stat-lbl--light,
.apx-stat-navy .apx-stat-lbl {
    color: rgba(255,255,255,0.45) !important;
}

/* ================================================================
   CONTACT PAGE WIDGET
   ================================================================ */

.apx-con-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:56px; align-items:start; }
.apx-con-heading { font-family:'Poppins',sans-serif; font-size:42px; font-weight:700; color:#0F172A; margin:0 0 14px; line-height:1.1; }
.apx-con-sub { font-size:15px; color:#334155; line-height:1.65; margin:0 0 28px; font-family:'Inter',sans-serif; }

/* Info card */
.apx-cinfo-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:24px; }
.apx-cinfo-card h3 { font-family:'Poppins',sans-serif; font-size:18px; font-weight:700; color:#0F172A; margin:0 0 18px; }
.apx-cinfo-list { display:flex; flex-direction:column; gap:16px; }
.apx-cinfo-row { display:flex; align-items:flex-start; gap:12px; }
.apx-cinfo-ic { font-size:16px; min-width:20px; color:#F97316; margin-top:2px; flex-shrink:0; }
.apx-cinfo-label { font-size:10px; font-weight:700; color:#475569; text-transform:uppercase; letter-spacing:1px; margin-bottom:3px; font-family:'Inter',sans-serif; }
.apx-cinfo-val { font-size:14px; color:#1E293B; text-decoration:none; font-family:'Inter',sans-serif; transition:color .2s; line-height:1.4; }
.apx-cinfo-val:hover { color:#F97316; }

/* Social row */
.apx-con-social { display:flex; gap:8px; margin-top:18px; padding-top:18px; border-top:1px solid #F1F5F9; }
.apx-con-soc-btn { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:8px; font-size:12px; font-weight:700; text-decoration:none; border:1px solid; transition:all .2s; font-family:'Inter',sans-serif; }
.apx-con-soc-btn:hover { transform:translateY(-2px); }

/* Hours table */
.apx-hours-table { width:100%; border-collapse:collapse; font-family:'Inter',sans-serif; }
.apx-hours-table tr { border-bottom:1px solid #F1F5F9; }
.apx-hours-table tr:last-child { border-bottom:none; }
.apx-hours-day  { font-size:13px; color:#1E293B; font-weight:500; padding:10px 0; }
.apx-hours-time { font-size:13px; color:#1E293B; font-weight:600; text-align:right; padding:10px 0; }
.apx-hours-closed .apx-hours-day,
.apx-hours-closed .apx-hours-time { color:#475569; }
.apx-closed-badge { font-size:11px; font-weight:600; color:#475569; background:#F8FAFC; border:1px solid #E2E8F0; padding:2px 10px; border-radius:20px; font-family:'Inter',sans-serif; }

/* Map box */
.apx-map-box { background:#fff; border:1px solid #E2E8F0; border-radius:14px; overflow:hidden; }
.apx-map-placeholder { display:flex; align-items:center; gap:14px; padding:20px; }
.apx-map-placeholder > span { font-size:24px; flex-shrink:0; }
.apx-map-link { font-size:13px; font-weight:600; text-decoration:none; transition:opacity .2s; }
.apx-map-link:hover { opacity:.75; }

/* Form box */
.apx-form-box { background:#fff; border:1px solid #E2E8F0; border-radius:16px; padding:40px; box-shadow:0 4px 24px rgba(15,23,42,.06); }
.apx-form-title { font-family:'Poppins',sans-serif; font-size:30px; font-weight:700; color:#0F172A; margin:0 0 8px; }
.apx-form-sub   { font-size:14px; color:#334155; margin:0 0 28px; font-family:'Inter',sans-serif; }
.apx-form-slot  { min-height:40px; }

/* Placeholder */
.apx-form-placeholder { border:2px dashed #CBD5E1; border-radius:12px; padding:32px 24px; text-align:center; background:#F8FAFC; }
.apx-form-placeholder-icon { font-size:36px; margin-bottom:12px; }
.apx-form-placeholder p { font-size:14px; color:#334155; margin:0 0 8px; font-family:'Inter',sans-serif; }
.apx-form-placeholder strong { color:#0F172A; }
.apx-captcha-note { background:#FFF7ED; border:1px solid rgba(249,115,22,.25); border-radius:8px; padding:12px 14px; font-size:12px; color:#92400E; text-align:left; margin-top:16px; line-height:1.6; font-family:'Inter',sans-serif; }

/* Override Elementor Pro form styles inside our box */
.apx-form-slot .elementor-form .elementor-field-group { margin-bottom:16px; }
.apx-form-slot .elementor-form .elementor-field-textual,
.apx-form-slot .elementor-form select,
.apx-form-slot .elementor-form textarea { background:#F8FAFC !important; border:1px solid #E2E8F0 !important; border-radius:8px !important; padding:12px 16px !important; font-size:14px !important; font-family:'Inter',sans-serif !important; transition:border .2s !important; width:100% !important; }
.apx-form-slot .elementor-form .elementor-field-textual:focus,
.apx-form-slot .elementor-form select:focus,
.apx-form-slot .elementor-form textarea:focus { border-color:#0F172A !important; background:#fff !important; outline:none !important; }
.apx-form-slot .elementor-form .elementor-field-label { font-size:11px !important; font-weight:600 !important; color:#0F172A !important; text-transform:uppercase !important; letter-spacing:.8px !important; margin-bottom:6px !important; font-family:'Inter',sans-serif !important; }
.apx-form-slot .elementor-form .elementor-button { background:#0F172A !important; color:#fff !important; border-radius:8px !important; font-size:15px !important; font-weight:700 !important; padding:14px 32px !important; width:100% !important; border:none !important; cursor:pointer !important; transition:background .3s !important; font-family:'Inter',sans-serif !important; }
.apx-form-slot .elementor-form .elementor-button:hover { background:#F97316 !important; }

/* Responsive */
@media (max-width: 1024px) { .apx-con-grid { grid-template-columns:1fr; gap:36px; } }
@media (max-width: 768px)  { .apx-form-box { padding:24px; } .apx-con-heading { font-size:32px; } }

/* ================================================================
   SERVICE DETAIL PAGE WIDGET
   ================================================================ */

/* ── Service Hero ─────────────────────────────────────────────── */
.apx-svc-hero { padding:80px 0; width:100%; display:block; box-sizing:border-box; }
.apx-svc-hero-inner { max-width:900px; margin:0 auto; padding:0 32px; text-align:center; }
.apx-svc-bc { font-size:12px; color:rgba(255,255,255,.40); margin-bottom:16px; font-family:'Inter',sans-serif; }
.apx-svc-bc a { color:rgba(255,255,255,.50); text-decoration:none; }
.apx-svc-bc a:hover { color:#F97316; }
.apx-svc-bc span { margin:0 6px; }
.apx-svc-badge { display:inline-block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; padding:5px 14px; border-radius:100px; border:1px solid; margin-bottom:16px; font-family:'Inter',sans-serif; }
.apx-svc-hero h1 { font-family:'Poppins',sans-serif; font-size:68px; font-weight:700; color:#fff; margin:0 0 16px; line-height:1.05; }
.apx-svc-hero p  { font-size:17px; color:rgba(255,255,255,.65); margin:0; line-height:1.65; font-family:'Inter',sans-serif; max-width:640px; margin:0 auto; }

/* ── Overview + Spec sidebar ──────────────────────────────────── */
.apx-svc-ov-grid { display:grid; grid-template-columns:1fr 320px; gap:56px; align-items:start; }
.apx-svc-ov-text h2 { font-family:'Poppins',sans-serif; font-size:44px; font-weight:700; color:#0F172A; margin:0 0 12px; line-height:1.1; }
.apx-svc-ov-text p  { font-size:15px; color:#334155; line-height:1.65; margin-bottom:14px; font-family:'Inter',sans-serif; }
.apx-svc-ov-text h4 { font-size:14px; font-weight:700; color:#0F172A; margin:20px 0 10px; font-family:'Inter',sans-serif; text-transform:uppercase; letter-spacing:.5px; }
.apx-caps-list { margin:0 0 20px; padding:0 0 0 18px; }
.apx-caps-list li { font-size:14px; color:#1E293B; line-height:1.6; margin-bottom:6px; font-family:'Inter',sans-serif; }
.apx-caps-list li::marker { color:#F97316; }

/* Spec sidebar */
.apx-spec-sidebar { background:#F8FAFC; border:1px solid #E2E8F0; border-radius:16px; padding:24px; position:sticky; top:90px; }
.apx-spec-sidebar h4 { font-family:'Poppins',sans-serif; font-size:18px; font-weight:700; color:#0F172A; margin:0 0 18px; }
.apx-spec-row { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid #E2E8F0; }
.apx-spec-row:last-of-type { border-bottom:none; margin-bottom:18px; }
.apx-spec-icon { font-size:18px; min-width:24px; flex-shrink:0; }
.apx-spec-label { font-size:10px; font-weight:700; color:#475569; text-transform:uppercase; letter-spacing:1px; margin-bottom:2px; font-family:'Inter',sans-serif; }
.apx-spec-val   { font-size:14px; font-weight:600; color:#0F172A; font-family:'Inter',sans-serif; }
.apx-spec-cta   { display:block; color:#fff; text-align:center; padding:12px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; margin-bottom:10px; transition:opacity .2s; font-family:'Inter',sans-serif; }
.apx-spec-cta:hover { opacity:.85; }
.apx-spec-phone { display:block; text-align:center; font-size:13px; color:#334155; text-decoration:none; font-family:'Inter',sans-serif; }
.apx-spec-phone:hover { color:#F97316; }

/* ── Applications grid ────────────────────────────────────────── */
.apx-apps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.apx-app-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:24px; transition:all .2s; }
.apx-app-card:hover { box-shadow:0 8px 28px rgba(15,23,42,.08); transform:translateY(-2px); }
.apx-app-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:12px; }
.apx-app-card h3 { font-family:'Poppins',sans-serif; font-size:18px; font-weight:700; color:#0F172A; margin:0 0 6px; }
.apx-app-card p  { font-size:13px; color:#334155; margin:0; line-height:1.5; font-family:'Inter',sans-serif; }

/* ── CTA Band ─────────────────────────────────────────────────── */
.apx-cta-band-inner { padding:80px 32px; text-align:center; }
.apx-cta-band-inner .apx-container { max-width:640px; }
.apx-cta-band-inner h2 { font-family:'Poppins',sans-serif; font-size:52px; font-weight:700; color:#fff; margin:0 0 12px; line-height:1.1; }
.apx-cta-band-inner p  { font-size:16px; color:rgba(255,255,255,.65); margin:0 0 32px; font-family:'Inter',sans-serif; }
.apx-cta-btns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.apx-cta-btn-orange  { display:inline-flex; align-items:center; padding:14px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:opacity .2s; color:#fff; font-family:'Inter',sans-serif; }
.apx-cta-btn-orange:hover { opacity:.85; }
.apx-cta-btn-outline { display:inline-flex; align-items:center; padding:13px 32px; border-radius:8px; font-size:14px; font-weight:700; text-decoration:none; transition:all .2s; color:#fff; border:2px solid rgba(255,255,255,.35); background:transparent; font-family:'Inter',sans-serif; }
.apx-cta-btn-outline:hover { border-color:#fff; background:rgba(255,255,255,.08); }

/* ── Related services grid ────────────────────────────────────── */
.apx-rel-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.apx-rel-card { display:flex; flex-direction:column; background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:24px; text-decoration:none; transition:all .2s; }
.apx-rel-card:hover { border-top-width:3px; box-shadow:0 8px 28px rgba(15,23,42,.08); transform:translateY(-2px); }
.apx-rel-ic { font-size:32px; margin-bottom:10px; }
.apx-rel-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 6px; }
.apx-rel-card p  { font-size:13px; color:#334155; margin:0 0 14px; line-height:1.5; flex-grow:1; font-family:'Inter',sans-serif; }
.apx-rel-arr { font-size:12px; font-weight:700; color:#475569; font-family:'Inter',sans-serif; transition:color .2s; }
.apx-rel-card:hover .apx-rel-arr { color:#F97316; }

/* ── Service detail responsive ────────────────────────────────── */
@media (max-width:1024px) {
    .apx-svc-ov-grid { grid-template-columns:1fr; }
    .apx-spec-sidebar { position:static; }
    .apx-apps-grid { grid-template-columns:repeat(2,1fr); }
    .apx-rel-grid  { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
    .apx-svc-hero h1 { font-size:44px; }
    .apx-apps-grid { grid-template-columns:1fr; }
    .apx-rel-grid  { grid-template-columns:1fr; }
    .apx-cta-band-inner h2 { font-size:36px; }
    .apx-cta-band-inner { padding:60px 20px; }
}

/* ================================================================
   SERVICE DETAIL WIDGET — FULL WIDTH FIX
   Fixes Elementor container flex-grow constraint
   ================================================================ */

/* Force the widget element itself to fill the flex container */
.e-con > .elementor-widget-apex-service-detail,
.e-con-inner > .elementor-widget-apex-service-detail {
    --container-widget-width: 100% !important;
    --container-widget-flex-grow: 1 !important;
    width: 100% !important;
    flex-grow: 1 !important;
    flex-shrink: 0 !important;
    max-width: 100% !important;
    align-self: stretch !important;
}

/* Widget container inside */
.elementor-widget-apex-service-detail,
.elementor-widget-apex-service-detail .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    flex-grow: 1 !important;
}

/* Outer wrapper div */
.elementor-widget-apex-service-detail [id^="apx-sd-"] {
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
}

/* All sections inside the widget */
.elementor-widget-apex-service-detail .apx-svc-hero,
.elementor-widget-apex-service-detail .apx-sec,
.elementor-widget-apex-service-detail .apx-cta-band-inner {
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
}

/* Hide WordPress page title on Elementor pages */
.elementor-page .entry-title,
.elementor-page h1.entry-title,
.elementor-page .page-header,
.elementor-page .entry-header { display: none !important; }

/* ================================================================
   APEX SERVICES GRID WIDGET v2
   ================================================================ */

/* Wrapper */
.apx-sg-wrap { width:100%; box-sizing:border-box; }

/* Grid */
.apx-sg-grid {
    display: grid;
    gap: 24px;
    width: 100%;
}

/* Card */
.apx-sg-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    overflow: hidden;
    transition: all .25s ease;
    cursor: pointer;
}
.apx-sg-card:hover {
    border-color: #F97316;
    box-shadow: 0 12px 36px rgba(15,23,42,.10);
    transform: translateY(-4px);
}

/* Full-width image at card top */
.apx-sg-img-link { display:block; overflow:hidden; }
.apx-sg-img {
    width: 100%;
    height: 200px;
    overflow: hidden;
    background: #F1F5F9;
}
.apx-sg-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.apx-sg-zoom:hover .apx-sg-img img { transform: scale(1.06); }

/* Card body */
.apx-sg-card-body {
    display: flex;
    flex-direction: column;
    padding: 24px;
    flex-grow: 1;
}

/* Icon wrapper */
.apx-sg-icon-wrap { margin-bottom: 18px; }
.apx-sg-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(249,115,22,0.10);
    border: 1px solid rgba(249,115,22,0.20);
    border-radius: 14px;
    font-size: 32px;
    transition: all .25s ease;
}
.apx-sg-icon i, .apx-sg-icon svg {
    font-size: 32px;
    color: #F97316;
    transition: all .25s ease;
}
.apx-sg-card:hover .apx-sg-icon { background: #F97316; border-color: #F97316; }
.apx-sg-card:hover .apx-sg-icon i,
.apx-sg-card:hover .apx-sg-icon svg { color: #fff; }

/* Title */
.apx-sg-title {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #0F172A;
    margin: 0 0 6px;
    line-height: 1.2;
    text-align: left;
    transition: color .2s;
}
.apx-sg-card:hover .apx-sg-title { color: #F97316; }

/* Description */
.apx-sg-desc {
    font-size: 13px;
    color: #334155;
    margin: 0 0 12px;
    line-height: 1.55;
    font-family: 'Inter', sans-serif;
    flex-grow: 1;
}

/* Tagline badges */
.apx-sg-tagline {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}
.apx-sg-tagline span {
    font-size: 11px;
    font-weight: 600;
    color: #0F172A;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    padding: 3px 10px;
    border-radius: 20px;
    font-family: 'Inter', sans-serif;
    white-space: nowrap;
}
.apx-sg-card:hover .apx-sg-tagline span {
    border-color: rgba(249,115,22,.25);
    color: #F97316;
    background: rgba(249,115,22,.06);
}

/* Button */
.apx-sg-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: #C2410C;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    margin-top: auto;
    transition: color .2s;
}
.apx-sg-card:hover .apx-sg-btn { color: #9A3412; }

/* Responsive */
@media (max-width: 1024px) { .apx-sg-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 640px)  { .apx-sg-grid { grid-template-columns: 1fr !important; } }

/* ================================================================
   REBUILT ICON-BASED WIDGETS — SHARED CLASSES
   ================================================================ */

/* Why Us grid */
.apx-wu-wrap { width:100%; box-sizing:border-box; }
.apx-wu-grid { display:grid; gap:24px; width:100%; }
.apx-wu-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:32px 28px; transition:all .2s; overflow:hidden; }
.apx-wu-card:hover { border-color:#F97316; transform:translateY(-2px); box-shadow:0 8px 32px rgba(249,115,22,.08); }
.apx-wu-img { width:100%; height:160px; overflow:hidden; border-radius:10px; margin-bottom:18px; }
.apx-wu-img img { width:100%; height:100%; object-fit:cover; display:block; }
.apx-wu-icon-wrap { margin-bottom:18px; }
.apx-wu-icon { width:56px; height:56px; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.20); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:22px; transition:all .25s; }
.apx-wu-icon i,.apx-wu-icon svg { font-size:22px; color:#F97316; transition:all .25s; }
.apx-wu-card:hover .apx-wu-icon { background:#F97316; }
.apx-wu-card:hover .apx-wu-icon i,.apx-wu-card:hover .apx-wu-icon svg { color:#fff; }
.apx-wu-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 8px; transition:color .2s; }
.apx-wu-card:hover h3 { color:#F97316; }
.apx-wu-card p  { font-size:14px; color:#334155; line-height:1.6; margin:0 0 16px; font-family:'Inter',sans-serif; }
.apx-wu-stat { display:inline-block; background:#F8FAFC; border:1px solid #E2E8F0; color:#F97316; font-size:12px; font-weight:700; padding:4px 12px; border-radius:20px; font-family:'Inter',sans-serif; }
@media (max-width:1024px) { .apx-wu-grid { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:640px)  { .apx-wu-grid { grid-template-columns:1fr !important; } }

/* Process wrap */
.apx-pr-wrap { width:100%; box-sizing:border-box; }
.apx-pr-circle-wrap { display:flex; flex-direction:column; align-items:center; margin-bottom:14px; position:relative; }

/* Certifications */
.apx-cert-wrap { width:100%; box-sizing:border-box; }
.apx-cert-grid { display:grid; gap:24px; width:100%; }
.apx-cert-card { background:#fff; border:1px solid #E2E8F0; border-radius:14px; padding:28px 24px; display:flex; flex-direction:column; transition:all .2s; }
.apx-cert-card:hover { border-color:#F97316; transform:translateY(-2px); }
.apx-cert-img { width:100%; height:120px; overflow:hidden; border-radius:8px; margin-bottom:14px; }
.apx-cert-img img { width:100%; height:100%; object-fit:cover; display:block; }
.apx-cert-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.apx-cert-icon { font-size:36px; }
.apx-cert-icon i,.apx-cert-icon svg { font-size:36px; color:#0F172A; }
.apx-cert-badge { font-size:10px; font-weight:700; color:#F97316; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.25); padding:3px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:1px; font-family:'Inter',sans-serif; }
.apx-cert-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 8px; }
.apx-cert-card p  { font-size:13px; color:#334155; line-height:1.6; margin:0; font-family:'Inter',sans-serif; }
@media (max-width:1024px) { .apx-cert-grid { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:640px)  { .apx-cert-grid { grid-template-columns:1fr !important; } }

/* ── Service Grid column classes ─────────────────────────────── */
.apx-sg-cols-1 { grid-template-columns: 1fr !important; }
.apx-sg-cols-2 { grid-template-columns: repeat(2,1fr) !important; }
.apx-sg-cols-3 { grid-template-columns: repeat(3,1fr) !important; }
.apx-sg-cols-4 { grid-template-columns: repeat(4,1fr) !important; }

/* Override responsive for explicit column classes */
@media (max-width:1024px) {
    .apx-sg-cols-3 { grid-template-columns: repeat(2,1fr) !important; }
    .apx-sg-cols-4 { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width:640px) {
    .apx-sg-cols-2,.apx-sg-cols-3,.apx-sg-cols-4 { grid-template-columns: 1fr !important; }
}

/* ── Fix icon box — prevent empty orange square ──────────────── */
.apx-sg-icon { 
    width: 80px; height: 80px;
    display: flex; align-items: center; justify-content: center;
    background: rgba(249,115,22,0.10);
    border: 1px solid rgba(249,115,22,0.20);
    border-radius: 14px;
    font-size: 36px; line-height: 1;
    transition: all .25s ease;
}
/* Only show background when icon/emoji actually has content */
.apx-sg-icon:empty { display: none; }
.apx-sg-icon i { font-size: 32px; color: #F97316; transition: all .25s; display: block; }
.apx-sg-icon svg { width: 32px; height: 32px; fill: #F97316; transition: all .25s; display: block; }
.apx-sg-icon span { font-size: 36px; line-height: 1; display: block; }
.apx-sg-card:hover .apx-sg-icon { background: #F97316; border-color: #F97316; }
.apx-sg-card:hover .apx-sg-icon i,
.apx-sg-card:hover .apx-sg-icon svg { color: #fff; fill: #fff; }

/* ── Mobile Services Toggle — Fix ────────────────────────────── */
.apx-mobile-svc-toggle {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    color: rgba(255,255,255,.8);
    font-size: 16px;
    font-weight: 600;
    padding: 16px 24px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255,255,255,.05);
    font-family: 'Inter', sans-serif;
    user-select: none;
    -webkit-tap-highlight-color: rgba(249,115,22,.15);
    min-height: 52px;
}
.apx-mobile-svc-toggle:active { background: rgba(249,115,22,.10); }
.apx-msvc-chev {
    display: inline-block;
    font-size: 10px;
    transition: transform .3s ease;
    margin-left: 8px;
    color: rgba(255,255,255,.5);
}

/* ── Mobile Services Panel ── */


.apx-mobile-svc-cat {
    font-size: 10px;
    font-weight: 700;
    color: rgba(255,255,255,.35);
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 12px 24px 6px;
    border-top: 1px solid rgba(255,255,255,.05);
    font-family: 'Inter', sans-serif;
}
.apx-mobile-svc-panel a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.7);
    font-size: 14px;
    font-weight: 500;
    padding: 12px 24px 12px 36px !important;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.04);
    transition: all .15s;
    min-height: 48px;
    -webkit-tap-highlight-color: rgba(249,115,22,.15);
}
.apx-mobile-svc-panel a:hover,
.apx-mobile-svc-panel a:active { color: #F97316; background: rgba(249,115,22,.07); }

.apx-mobile-view-all {
    color: #F97316 !important;
    font-weight: 700 !important;
    padding: 14px 24px !important;
    background: rgba(249,115,22,.07);
}

/* ── Mobile bottom buttons ── */
.apx-mobile-bottom {
    padding: 20px 24px;
    border-top: 1px solid rgba(255,255,255,.08);
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: auto;
}
.apx-mobile-call {
    display: block;
    background: rgba(255,255,255,.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    font-family: 'Inter', sans-serif;
}
.apx-mobile-quote {
    display: block;
    background: #F97316;
    color: #fff;
    border-radius: 10px;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    font-family: 'Inter', sans-serif;
}

/* ════════════════════════════════════════════════════════════════
   MOBILE SERVICES PANEL — DEFINITIVE FIX
   ════════════════════════════════════════════════════════════════ */

/* Hidden by default — both class and inline style set via JS */
.apx-mobile-svc-panel {
    display: none;
    background: rgba(0,0,0,.20);
    overflow: hidden;
}

/* Open state — !important ensures it wins over display:none */
.apx-mobile-svc-panel.open {
    display: block !important;
}

/* Category header inside panel */
.apx-mobile-svc-panel .apx-mobile-svc-cat {
    font-size: 10px;
    font-weight: 700;
    color: rgba(255,255,255,.35);
    text-transform: uppercase;
    letter-spacing: 2px;
    padding: 12px 24px 6px;
    border-top: 1px solid rgba(255,255,255,.05);
    font-family: 'Inter', sans-serif;
}

/* Service links inside panel */
.apx-mobile-svc-panel a {
    display: flex !important;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.75);
    font-size: 14px;
    font-weight: 500;
    padding: 12px 24px 12px 36px;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.04);
    transition: all .15s;
    min-height: 48px;
}
.apx-mobile-svc-panel a:hover,
.apx-mobile-svc-panel a:active { color: #F97316; background: rgba(249,115,22,.07); }

/* View all link */
.apx-mobile-svc-panel .apx-mobile-view-all {
    color: #F97316 !important;
    font-weight: 700 !important;
    background: rgba(249,115,22,.08);
    padding: 14px 24px !important;
}

/* ── Services Grid — safe column defaults ────────────────────── */
/* Fallback if no column class applied */
.apx-sg-grid:not([class*="apx-sg-cols-"]) {
    grid-template-columns: repeat(3, 1fr) !important;
}
/* Also ensure image mode cards don't break layout */
.apx-sg-card { min-width: 0; overflow: hidden; }
.apx-sg-img { width: 100%; overflow: hidden; }
.apx-sg-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ════════════════════════════════════════════════════════════════
   FONT AWESOME ICON FIX — ensure icons render properly
   ════════════════════════════════════════════════════════════════ */

/* Process steps */
.apx-pr-circle i,
.apx-pr-circle .fa,
.apx-pr-circle [class*="fa-"] {
    display: inline-block !important;
    font-size: 22px !important;
    color: #0F172A;
    font-style: normal;
    line-height: 1;
}

/* Why Us cards */
.apx-wu-icon i,
.apx-wu-icon .fa,
.apx-wu-icon [class*="fa-"] {
    display: inline-block !important;
    font-size: 22px !important;
    color: #F97316;
    font-style: normal;
    line-height: 1;
    transition: color .25s;
}
.apx-wu-card:hover .apx-wu-icon i,
.apx-wu-card:hover .apx-wu-icon [class*="fa-"] { color: #fff; }

/* Services grid */
.apx-sg-icon i,
.apx-sg-icon .fa,
.apx-sg-icon [class*="fa-"] {
    display: inline-block !important;
    font-size: 32px !important;
    color: #F97316;
    font-style: normal;
    line-height: 1;
    transition: all .25s;
}
.apx-sg-card:hover .apx-sg-icon i,
.apx-sg-card:hover .apx-sg-icon [class*="fa-"] { color: #fff; }

/* Certifications */
.apx-cert-icon i,
.apx-cert-icon .fa,
.apx-cert-icon [class*="fa-"] {
    display: inline-block !important;
    font-size: 36px !important;
    color: #0F172A;
    font-style: normal;
    line-height: 1;
}

/* General FA icon reset within our widgets */
.apx-wu-wrap i[class*="fa-"],
.apx-sg-wrap i[class*="fa-"],
.apx-pr-wrap i[class*="fa-"],
.apx-cert-wrap i[class*="fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "FontAwesome" !important;
    font-weight: 700 !important;
    font-style: normal !important;
    display: inline-block !important;
    line-height: 1 !important;
}

/* ── Emoji fallback when Font Awesome not loaded ─────────────── */
/* When FA IS loaded: hide emoji fallback, show icon */
.fa, .fas, .far, .fab, [class*=" fa-"], [class^="fa-"] {
    /* FA loaded = icon glyphs render, emoji hidden */
}
.apx-icon-emoji-fb {
    display: none; /* hidden by default when FA works */
    font-size: 22px;
    line-height: 1;
}
/* If FA icon renders as 0-width (not loaded), show emoji fallback */
i[class*="fa-"]:not([style*="display: none"]) + .apx-icon-emoji-fb {
    display: none;
}
/* Simpler approach: always show emoji, position FA on top */
.apx-wu-icon,
.apx-sg-icon,
.apx-pr-circle {
    position: relative;
}

/* ── Hide emoji fallback — FA is loaded via plugin ───────────── */
.apx-icon-emoji-fb { display: none !important; }

/* ================================================================
   FORM STANDARD + PAGE IMPORT SUPPORT
   ================================================================ */
.apx-hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.apx-rc-note{font-size:11px;color:#475569;margin:10px 0 0;line-height:1.5;font-family:'Inter',sans-serif}
.apx-rc-note a{color:#475569;text-decoration:underline}
.grecaptcha-badge{visibility:hidden}            /* the required notice is printed under the form instead */
.apx-qform-error{margin-top:12px;padding:10px 14px;border-radius:8px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:13px;font-family:'Inter',sans-serif}
.apx-qform-success{margin-top:12px;padding:10px 14px;border-radius:8px;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:13px;font-family:'Inter',sans-serif}

.apx-ph-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:5px 14px;border-radius:100px;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.30);color:#F97316;margin-bottom:16px;font-family:'Inter',sans-serif}

/* Apex widgets always fill their Elementor container (pages built by the importer) */
.e-con > .elementor-widget[class*="elementor-widget-apex-"],
.e-con-inner > .elementor-widget[class*="elementor-widget-apex-"]{
    --container-widget-width:100% !important;--container-widget-flex-grow:1 !important;
    width:100% !important;max-width:100% !important;flex-grow:1;align-self:stretch;
}

/* ================================================================
   HEADER & FOOTER PRINTED BY THE PLUGIN (free Elementor, no Pro)
   ================================================================ */
body.apex-hf-header #site-header, body.apex-hf-header .site-header, body.apex-hf-header #masthead { display:none !important; }
body.apex-hf-footer #site-footer, body.apex-hf-footer .site-footer, body.apex-hf-footer #colophon { display:none !important; }
#apex-site-header, #apex-site-footer { display:block; margin:0; padding:0; }
/* the wrappers disappear so the nav container can stick to the top of the whole page while scrolling */
#apex-site-header, #apex-site-header > .elementor { display:contents; }
#apex-site-header .e-con:last-child { position:sticky; top:0; z-index:1000; }
.admin-bar #apex-site-header .e-con:last-child { top:32px; }
@media (max-width:782px) { .admin-bar #apex-site-header .e-con:last-child { top:46px; } }

/* footer logo: Elementor's ".elementor img{height:auto}" otherwise lets it grow to the full column width */
.apx-footer .apx-flogo { height:50px; width:auto; max-width:240px; object-fit:contain; display:block; margin:0 0 18px; }
/* every Apex widget uses the body font unless a rule says otherwise (buttons / links no longer fall back to a serif font) */
.elementor-widget[class*="elementor-widget-apex-"] { font-family:'Inter',sans-serif; }

/* ================================================================
   SERVICES OVERVIEW CARDS (Services page) + ABOUT-STORY INFO BOX
   (restored – a clean-up had removed these rules)
   ================================================================ */
.apx-si-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.apx-si-card { display:flex; flex-direction:column; background:#fff; border:1px solid #E2E8F0; border-radius:16px; overflow:hidden; text-decoration:none; transition:all .25s ease; border-top:3px solid transparent; }
.apx-si-card:hover { border-top-color:#F97316; box-shadow:0 12px 36px rgba(15,23,42,.10); transform:translateY(-4px); }
.apx-si-body { display:flex; flex-direction:column; flex-grow:1; padding:28px 24px; }
.apx-si-card--img .apx-si-body { padding:22px 24px 24px; }
.apx-si-img { height:200px; overflow:hidden; background:#F1F5F9; }
.apx-si-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.apx-si-card:hover .apx-si-img img { transform:scale(1.06); }
.apx-si-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.apx-si-ic { width:60px; height:60px; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.25); border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:30px; line-height:1; transition:all .25s; }
.apx-si-card h3 { font-family:'Poppins',sans-serif; font-size:20px; font-weight:700; color:#0F172A; margin:0 0 6px; line-height:1.25; }
.apx-si-card p { font-family:'Inter',sans-serif; font-size:13px; color:#334155; margin:0 0 14px; line-height:1.55; flex-grow:1; }
.apx-si-arr { font-family:'Inter',sans-serif; font-size:12px; font-weight:700; color:#475569; white-space:nowrap; transition:color .2s; }
.apx-si-arr--below { margin-top:14px; }
.apx-si-card:hover .apx-si-arr { color:#F97316; }
.apx-si-tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
.apx-si-tag { font-family:'Inter',sans-serif; font-size:11px; font-weight:600; color:#0F172A; background:#F8FAFC; border:1px solid #E2E8F0; padding:3px 10px; border-radius:20px; }
.apx-si-card:hover .apx-si-tag { border-color:rgba(249,115,22,.25); color:#F97316; background:rgba(249,115,22,.06); }
@media (max-width:1024px) { .apx-si-grid { grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:640px)  { .apx-si-grid { grid-template-columns:1fr !important; } }

/* About page: company info box + "25+ years" badge */
.apx-si-box { background:#F8FAFC; border:1px solid #E2E8F0; border-radius:14px; padding:20px; margin-bottom:20px; display:flex; flex-direction:column; gap:4px; }
.apx-si-icon { font-size:28px; margin-bottom:6px; }
.apx-si-name { font-family:'Poppins',sans-serif; font-size:16px; font-weight:700; color:#0F172A; }
.apx-si-addr { font-family:'Inter',sans-serif; font-size:12px; color:#334155; }
.apx-si-badge { background:#F97316; border-radius:14px; padding:16px 20px; display:inline-flex; flex-direction:column; gap:2px; margin-top:16px; box-shadow:0 6px 24px rgba(249,115,22,.30); }
.apx-si-year { font-family:'Poppins',sans-serif; font-size:32px; font-weight:700; color:#fff; line-height:1; }
.apx-si-lbl { font-family:'Inter',sans-serif; font-size:10px; color:rgba(255,255,255,.85); text-transform:uppercase; letter-spacing:1px; }

/* process step photo (image mode) */
.apx-pr-img { width:72px; height:72px; border-radius:50%; overflow:hidden; }

/* Elementor ships ".elementor img { height:auto; max-width:100% }" - make every card photo fill its box exactly */
.elementor .apx-sg-img img,
.elementor .apx-si-img img,
.elementor .apx-wu-img img,
.elementor .apx-cert-img img,
.elementor .apx-pr-img img { width:100%; height:100%; max-width:none; object-fit:cover; display:block; }

/* ================================================================
   SECTION SPACING - one value for every section, top and bottom
   (default 50px; change it under Apex Metal Fab → Import Full Website → Section spacing)
   ================================================================ */
:root { --apx-sec-pad: 50px; }
/* the inner wrapper only controls the width; the section itself owns the top/bottom space (no more double padding) */
.apx-container { padding-top:0; padding-bottom:0; }
.apx-hero, .apx-about, .apx-gal, .apx-sg-wrap, .apx-wu-wrap, .apx-pr-wrap, .apx-cert-wrap, .apx-cta-band, .apx-ph, .apx-svc-hero, .apx-sec,
.apx-apps-sec, .apx-rel-sec, .apx-svc-form-sec, .apx-svc-ov-sec, [id^="apx-sov-"], [id^="apx-cp-"] { padding-top:var(--apx-sec-pad,50px); padding-bottom:var(--apx-sec-pad,50px); }
.apx-stat-item { padding-top:var(--apx-sec-pad,50px); padding-bottom:var(--apx-sec-pad,50px); }

/* inner wrappers of the About widgets also carried their own vertical padding */
.apx-about-inner, .apx-story-inner { padding-top:0; padding-bottom:0; }
.apx-svc-ov-text .apx-caps-list { margin-bottom:0; }

/* ================================================================
   HERO BACKGROUND SLIDESHOW
   ================================================================ */
.apx-hero { position:relative; overflow:hidden; }
.apx-hero-inner { position:relative; z-index:2; }
.apx-hero-slides, .apx-hero-overlay { position:absolute; top:0; right:0; bottom:0; left:0; }
.apx-hero-slides { z-index:0; }
.apx-hero-overlay { z-index:1; background:rgba(15,23,42,.70); pointer-events:none; }
.apx-hero-slide { position:absolute; top:0; right:0; bottom:0; left:0; background-size:cover; background-position:center; background-repeat:no-repeat; opacity:0; transition:opacity var(--apx-slide-speed,1200ms) ease; will-change:opacity,transform; }
.apx-hero-slide.is-active { opacity:1; z-index:2; }
.apx-hero-slide.is-leaving { opacity:0; z-index:1; }
/* slow zoom ("Ken Burns") */
.apx-hero--zoom .apx-hero-slide.is-active { animation:apxHeroZoom calc(var(--apx-slide-int,5s) + var(--apx-slide-speed,1200ms)) ease-out forwards; }
.apx-hero--zoom .apx-hero-slide.is-leaving { transform:scale(1.08); }
@keyframes apxHeroZoom { from { transform:scale(1); } to { transform:scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .apx-hero--zoom .apx-hero-slide.is-active { animation:none; } .apx-hero-slide { transition:none; } }
/* dots + arrows */
.apx-hero-dots { position:absolute; left:0; right:0; bottom:22px; z-index:4; display:flex; justify-content:center; gap:10px; }
.apx-hero-dots button { width:10px; height:10px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.45); cursor:pointer; transition:transform .2s, background .2s; }
.apx-hero-dots button:hover { transform:scale(1.25); }
.apx-hero-dots button.is-active { background:#F97316; transform:scale(1.2); }
.apx-hero-arrow { position:absolute; top:50%; z-index:4; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(15,23,42,.35); color:rgba(255,255,255,.85); font-size:28px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0 0 4px; transition:background .2s; }
.apx-hero-arrow:hover { background:rgba(249,115,22,.85); color:#fff; }
.apx-hero-arrow--prev { left:18px; } .apx-hero-arrow--next { right:18px; }
@media (max-width:768px) { .apx-hero-arrow { display:none; } .apx-hero-dots { bottom:14px; } }

/* CTA band: the heading is written on two lines ("Transform Your Idea Into / Precision Metal Reality") - give it room to stay on two */
.apx-cta-band .apx-container { max-width:1000px; }
.apx-cta-band h2 { text-wrap:balance; }
.apx-cta-band p { max-width:640px; margin-left:auto; margin-right:auto; }
.apx-cta-band-inner .apx-container { max-width:900px; }
.apx-cta-band-inner p { max-width:640px; margin-left:auto; margin-right:auto; }
@media (max-width:640px) { .apx-cta-band h2, .apx-cta-band-inner h2 { font-size:clamp(21px, 6.1vw, 30px); } }

/* hero height follows its content (no forced full-screen height) */
.apx-hero { min-height:0; }

/* ================================================================
   PROJECT GALLERY (apex-gallery)
   ================================================================ */
.apx-gal-head { text-align:center; margin-bottom:44px; }
.apx-gal-label { display:inline-block; font-family:'Inter',sans-serif; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#0F172A; background:#E2E8F0; padding:6px 16px; border-radius:100px; margin-bottom:16px; }
.apx-gal-h2 { font-family:'Poppins',sans-serif; font-size:44px; font-weight:700; color:#0F172A; margin:0 0 14px; line-height:1.15; }
.apx-gal-accent { color:#F97316; }
.apx-gal-divider { width:80px; height:3px; background:#F97316; margin:0 auto 18px; border-radius:2px; }
.apx-gal-sub { font-family:'Inter',sans-serif; font-size:16px; color:#334155; max-width:640px; margin:0 auto; line-height:1.65; }
.apx-gal-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:220px; grid-auto-flow:dense; gap:14px; }
.apx-gi { position:relative; display:block; border-radius:12px; overflow:hidden; cursor:pointer; background:#0F172A; transition:transform .3s, box-shadow .3s; margin:0; text-decoration:none; outline:none; }
.apx-gi.tall { grid-row:span 2; }
.apx-gi.wide { grid-column:span 2; }
.apx-gi:hover, .apx-gi:focus-visible { transform:scale(1.02); box-shadow:0 12px 36px rgba(15,23,42,.22); }
.apx-gi:focus-visible { outline:3px solid #F97316; outline-offset:2px; }
.apx-gi-img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.apx-gi:hover .apx-gi-img { transform:scale(1.07); }
.apx-gi-ph { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1E293B,#0F172A); }
.apx-gi-ph span { font-family:'Poppins',sans-serif; font-weight:700; font-size:20px; color:rgba(255,255,255,.18); text-transform:uppercase; letter-spacing:1px; text-align:center; padding:12px; }
.apx-gi-ov { position:absolute; top:0; right:0; bottom:0; left:0; background:rgba(15,23,42,0); transition:background .3s; }
.apx-gi:hover .apx-gi-ov, .apx-gi:focus-visible .apx-gi-ov { background:rgba(15,23,42,.78); }
.apx-gi-info { position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:center; opacity:0; transform:translateY(10px); transition:all .3s; padding:20px; text-align:center; }
.apx-gi:hover .apx-gi-info, .apx-gi:focus-visible .apx-gi-info { opacity:1; transform:translateY(0); }
.apx-gi-tag { display:inline-block; background:#C2410C; color:#fff; padding:3px 14px; border-radius:100px; font-family:'Inter',sans-serif; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; }
.apx-gi-info h4 { font-family:'Poppins',sans-serif; font-size:18px; font-weight:700; color:#fff; margin:0 0 4px; line-height:1.25; }
.apx-gi-info p { font-family:'Inter',sans-serif; font-size:13px; color:#E2E8F0; margin:0; line-height:1.5; }
.elementor .apx-gi-img { width:100%; height:100%; max-width:none; object-fit:cover; }
@media (max-width:1024px) { .apx-gal-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:200px; } .apx-gal-h2 { font-size:36px; } }
@media (max-width:640px)  { .apx-gal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:150px; gap:10px; } .apx-gal-h2 { font-size:28px; } .apx-gi-info { padding:10px; } .apx-gi-info h4 { font-size:14px; } .apx-gi-info p { display:none; } }
/* touch screens have no hover: show the caption strip at the bottom of every tile */
@media (hover:none) { .apx-gi-ov { background:linear-gradient(to top, rgba(15,23,42,.82), rgba(15,23,42,0) 55%); } .apx-gi-info { opacity:1; transform:none; justify-content:flex-end; align-items:flex-start; text-align:left; padding:12px 14px; } .apx-gi-tag { display:none; } .apx-gi-info p { display:none; } .apx-gi-info h4 { font-size:14px; margin:0; } }
/* lightbox */
.apx-lb { position:fixed; top:0; right:0; bottom:0; left:0; z-index:99999; background:rgba(8,12,24,.94); display:none; align-items:center; justify-content:center; flex-direction:column; padding:30px; }
.apx-lb.open { display:flex; }
.apx-lb img { max-width:min(1200px,92vw); max-height:78vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.apx-lb-cap { margin-top:16px; text-align:center; font-family:'Inter',sans-serif; color:#E2E8F0; font-size:15px; }
.apx-lb-cap b { display:block; font-family:'Poppins',sans-serif; font-size:19px; color:#fff; }
.apx-lb button { position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0; width:46px; height:46px; border-radius:50%; font-size:26px; cursor:pointer; line-height:1; }
.apx-lb button:hover { background:#F97316; }
.apx-lb-x { top:20px; right:24px; } .apx-lb-p { left:20px; top:50%; } .apx-lb-n { right:20px; top:50%; }

/* CTA band, brand-orange look: stands apart from the dark hero / dark stats / dark footer on every page */
.apx-cta--orange { position:relative; }
.apx-cta--orange .apx-badge-white { background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4); color:#fff; }
.apx-cta--orange .apx-btn-orange { background:#0F172A; border-color:#0F172A; color:#fff; box-shadow:0 8px 24px rgba(15,23,42,.30); }
.apx-cta--orange .apx-btn-orange:hover { background:#1E293B; border-color:#1E293B; color:#fff; }
.apx-cta--orange .apx-btn-outline-white { border-color:rgba(255,255,255,.85); color:#fff; }
.apx-cta--orange .apx-btn-outline-white:hover { background:#fff; color:#9A3412; }

/* ================================================================
   THEME-PROOFING
   Hello Elementor's reset.css styles every <button>, <input>, <select>, <textarea>, <label>, <table> and <h2>
   with the SAME specificity as our single-class rules - and it loads after us, so it won, e.g. a pink outlined
   "Send Quote Request" button and grey-bordered inputs. These rules are one step more specific.
   ================================================================ */
.apx-qform .apx-qform-field label { display:block; width:auto; margin:0; line-height:1.3; color:#0F172A; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.8px; font-family:'Inter',sans-serif; }
.apx-qform .apx-qform-field input,
.apx-qform .apx-qform-field select,
.apx-qform .apx-qform-field textarea { width:100%; border:1px solid #CBD5E1; border-radius:10px; padding:13px 16px; font-size:14px; line-height:1.4; color:#1E293B; background:#F8FAFC; font-family:'Inter',sans-serif; box-shadow:none; transition:border-color .2s, box-shadow .2s, background .2s; }
.apx-qform .apx-qform-field input:focus,
.apx-qform .apx-qform-field select:focus,
.apx-qform .apx-qform-field textarea:focus { border-color:#F97316; background:#fff; box-shadow:0 0 0 3px rgba(249,115,22,.18); outline:none; }
.apx-qform .apx-qform-field input::placeholder,
.apx-qform .apx-qform-field textarea::placeholder { color:#64748B; opacity:1; }
.apx-qform .apx-qform-field textarea { min-height:120px; resize:vertical; }
.apx-qform button.apx-qform-submit,
.apx-qform button.apx-qform-submit:focus { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; background:#0F172A; color:#fff; border:0; border-radius:10px; padding:16px 28px; font-family:'Inter',sans-serif; font-size:15px; font-weight:700; letter-spacing:.2px; line-height:1.2; white-space:normal; box-shadow:0 8px 20px rgba(15,23,42,.18); transition:background .2s, transform .2s, box-shadow .2s; cursor:pointer; }
.apx-qform button.apx-qform-submit:hover { background:#C2410C; color:#fff; transform:translateY(-1px); box-shadow:0 12px 26px rgba(194,65,12,.30); }
.apx-qform button.apx-qform-submit:disabled { opacity:.7; cursor:progress; transform:none; }
.apx-qform button.apx-qform-submit:focus-visible { outline:3px solid #F97316; outline-offset:3px; }
.apx-svc-form-sec .apx-form-box > h2 { font-family:'Poppins',sans-serif; font-size:30px; font-weight:700; color:#0F172A; line-height:1.2; margin:0 0 10px; }

/* the theme's  a:hover{color:#336}  must not change the text of our buttons */
a.apx-btn-orange, a.apx-btn-orange:hover, a.apx-btn-orange:focus,
a.apx-btn-navy, a.apx-btn-navy:hover, a.apx-btn-navy:focus,
a.apx-btn-outline-white, a.apx-btn-outline-white:hover, a.apx-btn-outline-white:focus { color:#fff; }
:where([class*="elementor-widget-apex-"]) p { margin-block-start:0; }

/* ================================================================
   CONTACT PAGE  (apex-contact-page)
   ================================================================ */
.apx-cx { position:relative; z-index:2; }
.apx-cx-quick { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:-72px 0 52px; position:relative; z-index:3; }
.apx-cx a.apx-cx-q { position:relative; overflow:hidden; display:flex; align-items:center; gap:16px; background:#fff; border:1px solid #E2E8F0; border-radius:18px; padding:22px 24px 22px 28px; box-shadow:0 18px 40px rgba(15,23,42,.14); text-decoration:none; transition:transform .25s, box-shadow .25s, border-color .25s; }
.apx-cx a.apx-cx-q::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:#F97316; }
.apx-cx a.apx-cx-q:hover, .apx-cx a.apx-cx-q:focus-visible { transform:translateY(-5px); box-shadow:0 26px 50px rgba(15,23,42,.20); border-color:#F97316; }
.apx-cx-qi { flex:0 0 56px; width:56px; height:56px; border-radius:16px; background:linear-gradient(135deg,#F97316,#C2410C); display:grid; place-items:center; color:#fff; box-shadow:0 8px 18px rgba(194,65,12,.35); }
.apx-cx-qt { min-width:0; }
.apx-cx-qt small { display:block; font-family:'Inter',sans-serif; font-size:11px; font-weight:700; letter-spacing:1.3px; text-transform:uppercase; color:#475569; }
.apx-cx-qt strong { display:block; font-family:'Poppins',sans-serif; font-size:19px; font-weight:700; color:#0F172A; line-height:1.3; margin:2px 0; overflow-wrap:anywhere; }
.apx-cx-qt em { display:block; font-family:'Inter',sans-serif; font-style:normal; font-size:12.5px; color:#475569; }

.apx-cx-grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:40px; align-items:start; }
.apx-cx-left, .apx-cx-right { display:flex; flex-direction:column; gap:22px; }
.apx-cx-head { margin-bottom:6px; }
.apx-cx-badge { display:inline-block; font-family:'Inter',sans-serif; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:6px 16px; border-radius:100px; background:rgba(249,115,22,.10); border:1px solid rgba(249,115,22,.30); margin-bottom:14px; }
.apx-cx-h2 { font-family:'Poppins',sans-serif; font-size:40px; font-weight:700; color:#0F172A; line-height:1.15; margin:0 0 14px; }
.apx-cx-div { width:70px; height:3px; border-radius:2px; background:#F97316; margin:0 0 16px; }
.apx-cx-sub { font-family:'Inter',sans-serif; font-size:15.5px; line-height:1.7; color:#334155; margin:0; }

.apx-cx-card { background:#fff; border:1px solid #E2E8F0; border-radius:18px; padding:26px 28px; box-shadow:0 10px 30px rgba(15,23,42,.06); }
.apx-cx-card h3 { display:flex; align-items:center; gap:10px; font-family:'Poppins',sans-serif; font-size:18px; font-weight:700; color:#0F172A; margin:0 0 18px; line-height:1.3; }
.apx-cx-hi { display:inline-grid; place-items:center; width:32px; height:32px; border-radius:10px; background:#FFF1E6; color:#C2410C; flex:0 0 32px; }

.apx-cx-rows { display:flex; flex-direction:column; }
.apx-cx-row { display:flex; align-items:flex-start; gap:14px; padding:13px 0; border-bottom:1px dashed #E2E8F0; }
.apx-cx-row:last-child { border-bottom:0; padding-bottom:0; }
.apx-cx-row:first-child { padding-top:0; }
.apx-cx-ic { flex:0 0 42px; width:42px; height:42px; border-radius:50%; background:#FFF1E6; color:#C2410C; display:grid; place-items:center; transition:background .2s, color .2s; }
.apx-cx-row:hover .apx-cx-ic { background:#C2410C; color:#fff; }
.apx-cx-l { display:block; font-family:'Inter',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:#475569; margin:2px 0 3px; }
.apx-cx a.apx-cx-v, .apx-cx span.apx-cx-v { display:block; font-family:'Inter',sans-serif; font-size:15px; font-weight:600; color:#0F172A; line-height:1.45; text-decoration:none; overflow-wrap:anywhere; }
.apx-cx a.apx-cx-v:hover { color:#C2410C; }
.apx-cx-soc { display:flex; align-items:center; gap:10px; margin-top:20px; padding-top:20px; border-top:1px solid #F1F5F9; }
.apx-cx a.apx-cx-s { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; border:1px solid #E2E8F0; color:#0F172A; background:#fff; transition:all .2s; }
.apx-cx a.apx-cx-s:hover { background:#0F172A; color:#fff; border-color:#0F172A; transform:translateY(-3px); }

.apx-cx-hhead { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.apx-cx-hhead h3 { margin-bottom:14px; }
.apx-cx-status { display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:100px; }
.apx-cx-status:empty { display:none; }
.apx-cx-status::before { content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.apx-cx-status.is-open { background:#DCFCE7; color:#166534; }
.apx-cx-status.is-open::before { animation:apxCxBlink 1.6s infinite; }
.apx-cx-status.is-closed { background:#FEE2E2; color:#991B1B; }
@keyframes apxCxBlink { 0%,100% { opacity:1; } 50% { opacity:.25; } }
.apx-cx ul.apx-cx-hours { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.apx-cx ul.apx-cx-hours li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:12px; border:1px solid transparent; font-family:'Inter',sans-serif; font-size:14px; color:#0F172A; background:#F8FAFC; }
.apx-cx-d { font-weight:600; display:flex; align-items:center; gap:8px; }
.apx-cx-t { font-weight:700; color:#0F172A; }
.apx-cx-closed { font-size:12px; font-weight:700; color:#475569; background:#E2E8F0; padding:4px 12px; border-radius:100px; }
.apx-cx-today { display:none; font-style:normal; font-size:10px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:#fff; background:#C2410C; padding:2px 8px; border-radius:100px; }
.apx-cx ul.apx-cx-hours li.is-today { background:#FFF7ED; border-color:#FDBA74; box-shadow:0 4px 14px rgba(194,65,12,.10); }
.apx-cx ul.apx-cx-hours li.is-today .apx-cx-today { display:inline-block; }

.apx-cx-map { padding:0; overflow:hidden; }
.apx-cx-art { height:190px; background:#EEF2F7; }
.apx-cx-art svg { width:100%; height:100%; display:block; }
.apx-cx-pulse { transform-origin:246px 91px; animation:apxCxPulse 2.6s ease-out infinite; }
.apx-cx-pulse--b { animation-delay:1.3s; }
@keyframes apxCxPulse { 0% { transform:scale(.6); opacity:.5; } 100% { transform:scale(1.5); opacity:0; } }
.apx-cx-mapbar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:18px 22px; }
.apx-cx-mapbar strong { display:block; font-family:'Poppins',sans-serif; font-size:15px; font-weight:700; color:#0F172A; }
.apx-cx-mapbar span { font-family:'Inter',sans-serif; font-size:12.5px; color:#475569; }
.apx-cx-mapbtns { display:flex; gap:8px; flex-wrap:wrap; }
.apx-cx a.apx-cx-pill { display:inline-flex; align-items:center; gap:7px; font-family:'Inter',sans-serif; font-size:13px; font-weight:700; color:#0F172A; background:#F1F5F9; border:1px solid #E2E8F0; padding:9px 16px; border-radius:100px; text-decoration:none; transition:all .2s; }
.apx-cx a.apx-cx-pill:hover { background:#E2E8F0; color:#0F172A; }
.apx-cx a.apx-cx-pill--dark, .apx-cx a.apx-cx-pill--dark:focus { background:#0F172A; color:#fff; border-color:#0F172A; }
.apx-cx a.apx-cx-pill--dark:hover { background:#C2410C; border-color:#C2410C; color:#fff; }

.apx-cx-form { border-top:4px solid #F97316; padding:34px 36px 36px; }
.apx-cx-fhead { display:flex; align-items:flex-start; gap:16px; }
.apx-cx-fi { flex:0 0 52px; width:52px; height:52px; border-radius:16px; background:linear-gradient(135deg,#0F172A,#334155); color:#fff; display:grid; place-items:center; }
.apx-cx-fhead h3 { font-size:24px; margin:0 0 4px; }
.apx-cx-fhead p { font-family:'Inter',sans-serif; font-size:14px; color:#475569; margin:0; line-height:1.5; }
.apx-cx-chips { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 22px; }
.apx-cx-chips span { display:inline-flex; align-items:center; gap:6px; font-family:'Inter',sans-serif; font-size:12px; font-weight:700; color:#166534; background:#DCFCE7; padding:6px 12px; border-radius:100px; }

.apx-cx-stepsbox h3 { margin-bottom:20px; }
.apx-cx ol.apx-cx-steps { list-style:none; margin:0; padding:0; }
.apx-cx ol.apx-cx-steps li { position:relative; display:flex; gap:16px; padding-bottom:22px; }
.apx-cx ol.apx-cx-steps li:last-child { padding-bottom:0; }
.apx-cx ol.apx-cx-steps li:not(:last-child)::after { content:""; position:absolute; left:17px; top:38px; bottom:2px; width:2px; background:repeating-linear-gradient(to bottom,#FDBA74 0 6px,transparent 6px 11px); }
.apx-cx-n { flex:0 0 36px; width:36px; height:36px; border-radius:50%; background:#0F172A; color:#fff; display:grid; place-items:center; font-family:'Poppins',sans-serif; font-weight:700; font-size:15px; box-shadow:0 0 0 5px #FFF1E6; position:relative; z-index:1; }
.apx-cx ol.apx-cx-steps li:first-child .apx-cx-n { background:#C2410C; }
.apx-cx-steps h4 { font-family:'Poppins',sans-serif; font-size:16px; font-weight:700; color:#0F172A; margin:4px 0 4px; line-height:1.3; }
.apx-cx-steps p { font-family:'Inter',sans-serif; font-size:14px; color:#334155; margin:0; line-height:1.6; }
.apx-cx-trust { display:flex; flex-wrap:wrap; gap:10px; }
.apx-cx-trust span { display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-size:13px; font-weight:700; color:#0F172A; background:#fff; border:1px solid #E2E8F0; padding:10px 16px; border-radius:100px; box-shadow:0 4px 12px rgba(15,23,42,.05); }
.apx-cx-trust svg { color:#C2410C; }

@media (max-width:1024px) { .apx-cx-grid { grid-template-columns:1fr; gap:30px; } .apx-cx-quick { grid-template-columns:1fr; margin-top:-50px; gap:14px; } .apx-cx-h2 { font-size:34px; } }
@media (max-width:640px)  { .apx-cx-card { padding:22px 20px; } .apx-cx-form { padding:26px 20px; } .apx-cx-fhead h3 { font-size:20px; } .apx-cx-mapbar { padding:16px; } .apx-cx a.apx-cx-q { padding:18px 18px 18px 22px; } }
@media (prefers-reduced-motion: reduce) { .apx-cx-pulse, .apx-cx-status.is-open::before { animation:none; } .apx-cx a.apx-cx-q, .apx-cx a.apx-cx-s { transition:none; } }

/* wide map band under the two columns */
.apx-cx-map { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); padding:0; overflow:hidden; margin-top:40px; }
.apx-cx-mapview { min-height:270px; position:relative; background:#EEF2F7; }
.apx-cx-mapview .apx-cx-art { position:absolute; top:0; right:0; bottom:0; left:0; height:auto; }
.apx-cx-mapview iframe { position:absolute; top:0; left:0; width:100%; height:100%; }
.apx-cx-map .apx-cx-mapbar { flex-direction:column; align-items:flex-start; justify-content:center; gap:14px; padding:32px 34px; }
.apx-cx-small { display:block; margin-top:2px; }
.apx-cx-trust { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.apx-cx-trust span { justify-content:flex-start; }
@media (max-width:1024px) { .apx-cx-map { grid-template-columns:1fr; } .apx-cx-mapview { min-height:220px; } .apx-cx-map .apx-cx-mapbar { padding:24px; } }
@media (max-width:640px) { .apx-cx-trust { grid-template-columns:1fr; } }

@media (max-width:640px) { .apx-cx-qt strong { font-size:16px; } .apx-cx-qi { flex-basis:50px; width:50px; height:50px; } }

/* HEADER LOGO: big enough to read, shrinks a little while scrolling, scales down on tablets / phones */
.apx-header-nav .apx-header-inner { height:auto; min-height:76px; padding-top:10px; padding-bottom:10px; }
.apx-header-nav .apx-logo-wrap { width:auto; min-width:150px; }
.apx-header-nav .apx-logo img { height:var(--apx-logo-h,80px); width:auto; max-width:none; display:block; transition:height .25s ease; }
.apx-header-nav.is-scrolled[data-shrink="1"] .apx-logo img { height:calc(var(--apx-logo-h,80px) * .72); }
@media (max-width:1024px) { .apx-header-nav .apx-logo img { height:calc(var(--apx-logo-h,80px) * .8); } .apx-header-nav.is-scrolled[data-shrink="1"] .apx-logo img { height:calc(var(--apx-logo-h,80px) * .62); } }
@media (max-width:768px)  { .apx-header-nav .apx-logo img { height:calc(var(--apx-logo-h,80px) * .66); } .apx-header-nav.is-scrolled[data-shrink="1"] .apx-logo img { height:calc(var(--apx-logo-h,80px) * .56); } .apx-header-nav .apx-header-inner { min-height:64px; } }
@media (prefers-reduced-motion: reduce) { .apx-header-nav .apx-logo img { transition:none; } }
/* a JPG logo has an off-white background: blend it into the white header so no grey box shows */
.apx-header-nav .apx-logo img { mix-blend-mode:multiply; }
