/* ============================================================
   MOHAMED ELAGAMY PORTFOLIO — CLEAN v6
   All elements VISIBLE by default. GSAP only enhances.
============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Open Sans',sans-serif;background:#fff;color:#444;line-height:1.7;overflow-x:hidden}
body.no-scroll{overflow:hidden}
a{text-decoration:none;color:inherit;transition:color .3s}
img{max-width:100%;display:block}
ul{list-style:none}
::selection{background:#1B6CA8;color:#fff}

:root{
  --navy:#0A1F44;--accent:#1B6CA8;
  --light:#f5f7fa;--text:#444;--muted:#888;--border:#dde4ee;
  --font-h:'Josefin Sans',sans-serif;--font-b:'Open Sans',sans-serif;
  --radius:12px;--shadow:0 8px 40px rgba(10,31,68,.10);
  --shadow-lg:0 20px 60px rgba(10,31,68,.15);--trans:.3s ease;
}
.container{max-width:1180px;margin:0 auto;padding:0 28px}

/* --- section labels --- */
.section-label{margin-bottom:10px}
.section-label span{font-family:var(--font-h);font-size:.7rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}
.section-title{font-family:var(--font-h);font-size:clamp(1.75rem,3.8vw,2.65rem);font-weight:700;color:var(--navy);line-height:1.2;margin-bottom:10px}
.section-title em{font-style:normal;color:var(--accent)}
.section-sub2{font-family:var(--font-h);font-size:.78rem;color:var(--muted);letter-spacing:.06em;margin-bottom:36px;text-align:center}
.sec-pad{padding:96px 0}

/* --- GSAP reveal base --- */
.reveal{opacity:0;transform:translateY(36px);transition:none}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ===========================
   PRELOADER
=========================== */
#preloader{position:fixed;inset:0;background:#fff;z-index:9999;display:flex;align-items:center;justify-content:center}
.preloader-wrap{text-align:center}
.preloader-logo{width:150px;height:150px;border-radius:12px;background:var(--navy);padding:8px;margin:0 auto 20px;display:block;object-fit:contain}
.preloader-bar{width:150px;height:2px;background:#e0e0e0;border-radius:2px;overflow:hidden;margin:0 auto}
.preloader-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--accent));animation:preload 1.6s ease forwards}
@keyframes preload{to{width:100%}}

/* ===========================
   HEADER
=========================== */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .4s,box-shadow .4s}
.header.scrolled{background:#fff;box-shadow:0 1px 0 var(--border)}
.header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;padding:18px 36px;gap:14px;transition:padding .3s}
.header.scrolled .header-inner{padding:12px 36px}
.header-logo{flex-shrink:0}
.header-logo img{width:48px;height:48px;border-radius:10px;object-fit:contain;background:var(--navy);padding:6px}
.header-nav{flex:1;display:flex;justify-content:center}
.header-nav ul{display:flex;gap:0}
.header-nav a{font-family:var(--font-h);font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);padding:7px 11px;border-radius:4px;transition:color var(--trans),background var(--trans)}
.header-nav a:hover,.header-nav a.active{color:var(--accent);background:rgba(27,108,168,.07)}
.header-social{display:flex;gap:8px;flex-shrink:0;align-items:center}
.header-social a:not(.header-cv-btn){width:34px;height:34px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:.8rem;transition:all var(--trans)}
.header-social a:not(.header-cv-btn):hover{background:var(--navy);border-color:var(--navy);color:#fff}
.header-social .wa-ico{border-color:#25D366;color:#25D366}
.header-social .wa-ico:hover{background:#25D366;border-color:#25D366;color:#fff}
/* CV button in header */
.header-cv-btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-h);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;background:var(--navy);color:#fff !important;padding:8px 16px;border-radius:6px;transition:background var(--trans),transform var(--trans);white-space:nowrap;margin-left:4px;border:none;width:auto;height:auto}
.header-cv-btn:hover{background:var(--accent);transform:translateY(-1px);border:none}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:2px solid var(--navy);border-radius:6px;cursor:pointer;padding:7px 9px;margin-left:auto;flex-shrink:0}
.hamburger span{display:block;width:22px;height:2px;background:var(--navy);border-radius:2px;transition:.3s}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav{display:none;background:#fff;border-bottom:1px solid var(--border)}
.mobile-nav.open{display:block}
.mobile-nav ul{padding:10px 28px 20px}
.mobile-nav li{border-bottom:1px solid var(--border)}
.mnav-link{display:block;padding:12px 0;font-family:var(--font-h);font-size:.86rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);transition:color var(--trans)}
.mnav-link:hover{color:var(--accent)}

/* ===========================
   HERO
=========================== */
.hero-section{min-height:100vh;display:flex;align-items:center;background:linear-gradient(140deg,#eef3fa 0%,#e2ecf7 55%,#d8e7f5 100%);position:relative;overflow:hidden;padding-top:88px}
.hero-section::before{content:'';position:absolute;top:-120px;right:-120px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(27,108,168,.07),transparent 70%);pointer-events:none}
.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:100%;max-width:1180px;margin:0 auto;padding:68px 28px}
/* hero left */
.hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.h-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-h);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:rgba(27,108,168,.08);border:1px solid rgba(27,108,168,.2);color:var(--navy);padding:5px 12px;border-radius:100px}
.h-badge.avail{color:#15803d;background:rgba(21,128,61,.07);border-color:rgba(21,128,61,.2)}
.h-badge .dot{width:7px;height:7px;border-radius:50%;background:#15803d;animation:pulse-d 2s ease infinite}
@keyframes pulse-d{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.hero-greeting{font-family:var(--font-h);font-size:.88rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.hero-h1{font-family:var(--font-h);font-weight:700;font-size:clamp(1.9rem,4.2vw,3.2rem);color:var(--navy);line-height:1.06;margin-bottom:12px}
.hero-typed-row{display:flex;align-items:center;gap:5px;font-family:var(--font-h);font-size:.9rem;font-weight:600;color:var(--muted);margin-bottom:16px}
.hero-typed{color:var(--accent)}
.cursor{color:var(--accent);animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}
.hero-p{font-size:.96rem;color:var(--muted);line-height:1.9;max-width:468px;margin-bottom:26px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.btn-prim{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;font-family:var(--font-h);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:13px 24px;border-radius:5px;transition:background var(--trans),transform var(--trans),box-shadow var(--trans)}
.btn-prim:hover{background:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px rgba(27,108,168,.3)}
.btn-out{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--navy);font-family:var(--font-h);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:11px 22px;border-radius:5px;border:2px solid var(--navy);transition:all var(--trans)}
.btn-out:hover{background:var(--navy);color:#fff}
.btn-wa{display:inline-flex;align-items:center;gap:8px;background:#25D366;color:#fff;font-family:var(--font-h);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:13px 20px;border-radius:5px;transition:all var(--trans)}
.btn-wa:hover{background:#1ebe5a;transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,211,102,.3)}
.hero-stats-row{display:flex;align-items:center;gap:0;margin-top:22px;background:rgba(255,255,255,.8);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9);border-radius:12px;padding:14px 20px;box-shadow:0 4px 24px rgba(10,31,68,.06);flex-wrap:wrap;row-gap:8px}
.hsr-item{text-align:center;padding:0 14px;flex:1;min-width:60px}
.hsr-item strong{display:block;font-family:var(--font-h);font-size:1.2rem;font-weight:700;color:var(--navy);line-height:1}
.hsr-item span{font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:3px;display:block}
.hsr-div{width:1px;height:32px;background:var(--border);flex-shrink:0}
/* hero right */
.hero-img-wrap{position:relative}
.hero-img-inner{position:relative;z-index:2;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-lg)}
.hero-img-inner img{width:100%;height:530px;object-fit:cover;object-position:top}
.hero-sh1{position:absolute;bottom:-28px;left:-28px;width:160px;height:160px;border-radius:50%;background:rgba(27,108,168,.08);z-index:1}
.hero-sh2{position:absolute;top:-18px;right:-18px;width:110px;height:110px;border-radius:50%;border:2px solid rgba(10,31,68,.08);z-index:1}
.hero-fc{position:absolute;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 28px rgba(10,31,68,.12);z-index:10}
.hero-fc i{font-size:1.1rem;color:var(--accent)}
.hero-fc strong{display:block;font-family:var(--font-h);font-size:.86rem;font-weight:700;color:var(--navy);line-height:1}
.hero-fc span{font-size:.64rem;color:var(--muted)}
.hfc-t{top:28px;right:-14px;animation:flt 3s ease infinite}
.hfc-b{bottom:48px;left:-14px;animation:flt 3s ease .8s infinite}
@keyframes flt{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.hero-scroll-ind{position:absolute;bottom:30px;left:50%;transform:translateX(-50%)}
.hero-scroll-ind a{display:block;width:26px;height:44px;border:2px solid rgba(10,31,68,.2);border-radius:20px;position:relative}
.hero-scroll-ind span{display:block;width:4px;height:9px;background:var(--accent);border-radius:2px;position:absolute;top:7px;left:50%;transform:translateX(-50%);animation:scrd 1.8s ease infinite}
@keyframes scrd{0%{top:7px;opacity:1}100%{top:23px;opacity:0}}

/* ===========================
   FLOATING ACTION BUTTONS
   (speed dial — bottom right)
=========================== */
.fab-wrap{position:fixed;bottom:28px;right:28px;z-index:600;display:flex;flex-direction:column;align-items:center;gap:10px}
.fab-main{width:52px;height:52px;border-radius:14px;background:var(--navy);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 4px 20px rgba(10,31,68,.3);transition:all var(--trans);position:relative;z-index:2}
.fab-main:hover{background:var(--accent);transform:translateY(-3px)}
.fab-main.top-btn{background:var(--navy)}
.fab-sub-list{display:flex;flex-direction:column;gap:10px;align-items:center;overflow:hidden;max-height:0;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}
.fab-wrap.open .fab-sub-list{max-height:400px;opacity:1}
.fab-sub{width:46px;height:46px;border-radius:12px;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.05rem;box-shadow:0 3px 14px rgba(0,0,0,.2);transition:all var(--trans);text-decoration:none}
.fab-sub:hover{transform:translateY(-2px) scale(1.08)}
.fab-sub.wa{background:#25D366}
.fab-sub.wa:hover{box-shadow:0 6px 20px rgba(37,211,102,.4)}
.fab-sub.li{background:#0A66C2}
.fab-sub.li:hover{box-shadow:0 6px 20px rgba(10,102,194,.4)}
.fab-sub.em{background:var(--accent)}
.fab-sub.em:hover{box-shadow:0 6px 20px rgba(27,108,168,.4)}
.fab-sub.ph{background:#059669}
.fab-sub.ph:hover{box-shadow:0 6px 20px rgba(5,150,105,.4)}
.fab-sub.cv{background:#7c3aed}
.fab-sub.cv:hover{box-shadow:0 6px 20px rgba(124,58,237,.4)}
/* tooltip labels */
.fab-sub{position:relative}
.fab-sub::before{content:attr(data-tip);position:absolute;right:56px;background:rgba(10,31,68,.9);color:#fff;font-family:var(--font-h);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.fab-sub:hover::before{opacity:1}

/* ===========================
   ABOUT — Part 1
=========================== */
.about-p1{padding:96px 0;background:#fff}
.about-p1-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-top:30px}
.bio-role{display:flex;align-items:center;gap:14px;background:rgba(27,108,168,.05);border:1px solid rgba(27,108,168,.15);border-radius:10px;padding:14px 18px;margin-bottom:22px}
.bio-role i{font-size:1.2rem;color:#f59e0b;flex-shrink:0}
.bio-role strong{display:block;font-family:var(--font-h);font-size:.92rem;font-weight:700;color:var(--navy)}
.bio-role span{font-size:.72rem;color:var(--muted)}
.bio-text p{color:var(--text);line-height:1.9;margin-bottom:14px;font-size:.94rem}
.bio-text strong{color:var(--navy)}
.bio-meta{display:flex;flex-direction:column;gap:7px;margin:18px 0}
.bio-meta span{font-size:.84rem;color:var(--muted);display:flex;align-items:center;gap:8px}
.bio-meta i{color:var(--accent);width:14px}
.btn-readmore{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-h);font-weight:700;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border-bottom:2px solid var(--accent);padding-bottom:3px;margin-top:18px;transition:color var(--trans),border-color var(--trans)}
.btn-readmore:hover{color:var(--navy);border-color:var(--navy)}
/* achievements */
.ach-title{font-family:var(--font-h);font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:18px}
.ach-list{display:flex;flex-direction:column;gap:18px}
.ach-item{display:flex;align-items:flex-start;gap:14px}
.ach-icon{width:42px;height:42px;min-width:42px;border-radius:10px;background:rgba(27,108,168,.08);border:1px solid rgba(27,108,168,.15);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.92rem}
.ach-item strong{display:block;font-family:var(--font-h);font-size:.86rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.ach-item p{font-size:.8rem;color:var(--muted);line-height:1.65;margin:0}

/* ===========================
   ABOUT — Part 2: Vision
=========================== */
.about-p2{padding:68px 0;background:var(--light)}
.vmv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.vmv-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:32px 26px;text-align:center;transition:all var(--trans);position:relative;overflow:hidden}
.vmv-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--navy),var(--accent));transform:scaleX(0);transition:transform var(--trans);transform-origin:left}
.vmv-card:hover{box-shadow:var(--shadow);transform:translateY(-5px);border-color:rgba(27,108,168,.3)}
.vmv-card:hover::after{transform:scaleX(1)}
.vmv-card.feat{border-color:rgba(27,108,168,.3);background:linear-gradient(135deg,rgba(27,108,168,.04),#fff)}
.vmv-icon{width:62px;height:62px;margin:0 auto 16px;background:rgba(27,108,168,.08);border-radius:50%;border:1px solid rgba(27,108,168,.15);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:1.25rem}
.vmv-card h3{font-family:var(--font-h);font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:10px}
.vmv-card p{font-size:.86rem;color:var(--muted);line-height:1.85}

/* ===========================
   EXPERIENCE
=========================== */
.experience-section{padding:96px 0;background:#fff}
.exp-list{display:flex;flex-direction:column}
.exp-item{display:grid;grid-template-columns:96px 1fr;border-bottom:1px solid var(--border);padding:42px 0;transition:background var(--trans)}
.exp-item:hover{background:rgba(27,108,168,.015)}
.exp-num{font-family:var(--font-h);font-size:3.6rem;font-weight:700;color:rgba(10,31,68,.07);line-height:1;padding-top:2px}
.exp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:18px;flex-wrap:wrap}
.exp-company{font-family:var(--font-h);font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:4px}
.exp-role{font-family:var(--font-h);font-size:.76rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.exp-date{font-family:var(--font-h);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#fff;border:1px solid var(--border);padding:6px 14px;border-radius:100px;white-space:nowrap;flex-shrink:0}
.exp-desc{color:var(--muted);font-size:.88rem;line-height:1.85;max-width:720px}
.exp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.exp-tags span{font-family:var(--font-h);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:rgba(27,108,168,.08);border:1px solid rgba(27,108,168,.2);padding:3px 11px;border-radius:100px}

/* ===========================
   PORTFOLIO
=========================== */
.portfolio-section{padding:96px 0 0;background:#fff}
.portfolio-section .section-label,.portfolio-section .section-title,.portfolio-section .section-sub2{text-align:center}
.portfolio-tabs{display:flex;justify-content:center;border-bottom:2px solid var(--border);flex-wrap:wrap;padding:0 28px}
.ptab{font-family:var(--font-h);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:15px 30px;background:none;border:none;cursor:pointer;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all var(--trans)}
.ptab:hover{color:var(--navy)}
.ptab.active{color:var(--accent);border-bottom-color:var(--accent)}
.portfolio-panel{display:none}
.portfolio-panel.active{display:block}
.pinfo{background:var(--navy);padding:42px 0}
.pinfo-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px}
.pinfo-inner h3{font-family:var(--font-h);font-size:1.35rem;font-weight:700;color:#fff;margin-bottom:8px}
.pinfo-inner p{font-size:.9rem;color:rgba(255,255,255,.65);line-height:1.8;max-width:600px;margin:0 auto}
.pstats{display:flex;gap:36px;flex-wrap:wrap;justify-content:center}
.pstats>div{text-align:center}
.pstats strong{display:block;font-family:var(--font-h);font-size:1.75rem;font-weight:700;color:#fff;line-height:1}
.pstats span{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:5px;display:block}
.port-swiper{width:100%;background:#0d0d1e}
.port-swiper .swiper-slide img{width:100%;height:470px;object-fit:contain;background:#0d0d1e;display:block}
.port-swiper .swiper-button-prev,.port-swiper .swiper-button-next{color:var(--accent);background:rgba(255,255,255,.9);width:42px;height:42px;border-radius:50%;box-shadow:var(--shadow)}
.port-swiper .swiper-button-prev::after,.port-swiper .swiper-button-next::after{font-size:12px;font-weight:800}
.port-swiper .swiper-pagination-bullet{background:#fff;opacity:.35}
.port-swiper .swiper-pagination-bullet-active{opacity:1;background:var(--accent)}

/* ===========================
   STATS
=========================== */
.stats-section{background:var(--navy);padding:68px 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.stat-box{padding:20px;border-right:1px solid rgba(255,255,255,.1)}
.stat-box:last-child{border-right:none}
.stat-box h3{font-family:var(--font-h);font-size:2.7rem;font-weight:700;color:#fff;line-height:1;margin-bottom:7px}
.stat-box p{font-family:var(--font-h);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.5)}

/* ===========================
   SERVICES
=========================== */
.services-section{padding:96px 0;background:#fff}
.services-section .section-label,.services-section .section-title{text-align:center}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:48px}
.svc-card{border:1px solid var(--border);border-radius:var(--radius);padding:34px 26px;text-align:center;background:#fff;position:relative;overflow:hidden;transition:all var(--trans)}
.svc-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--navy),var(--accent));transform:scaleX(0);transition:transform .35s ease;transform-origin:left}
.svc-card:hover{border-color:rgba(27,108,168,.35);box-shadow:var(--shadow);transform:translateY(-6px)}
.svc-card:hover::after{transform:scaleX(1)}
.svc-card.feat{border-color:rgba(27,108,168,.3);background:linear-gradient(135deg,rgba(27,108,168,.04),#fff)}
.svc-feat-badge{position:absolute;top:14px;right:14px;font-family:var(--font-h);font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:rgba(27,108,168,.1);border:1px solid rgba(27,108,168,.25);padding:3px 10px;border-radius:100px}
/* Service icon = tool logo image */
.svc-icon{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;background:var(--light);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:var(--accent);transition:all var(--trans)}
.svc-card:hover .svc-icon{background:rgba(27,108,168,.1);transform:scale(1.06)}
.svc-card h3{font-family:var(--font-h);font-size:.96rem;font-weight:700;color:var(--navy);margin-bottom:10px}
.svc-card p{font-size:.85rem;color:var(--muted);line-height:1.85}

/* ===========================
   SKILLS
=========================== */
.skills-section{padding:96px 0;background:var(--light)}
.skills-section .section-label,.skills-section .section-title{text-align:center}
.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 52px;margin-top:46px}
.skill-row .sk-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.skill-row .sk-name{font-family:var(--font-h);font-size:.83rem;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px}
.skill-row .sk-name i{color:var(--accent);font-size:.78rem;width:14px}
.skill-row .sk-pct{font-family:var(--font-h);font-size:.78rem;font-weight:700;color:var(--accent)}
.sk-bar{width:100%;height:5px;background:rgba(10,31,68,.08);border-radius:100px;overflow:hidden}
.sk-fill{height:100%;width:0;background:linear-gradient(90deg,var(--navy),var(--accent));border-radius:100px;transition:width 1.4s cubic-bezier(.25,.46,.45,.94)}

/* ===========================
   TOOLS
=========================== */
.tools-section{padding:76px 0;background:#fff;overflow:hidden}
.tools-section .section-label,.tools-section .section-title{text-align:center}
.tools-section .section-title{margin-bottom:44px}
.tools-wrap{overflow:hidden;position:relative}
.tools-wrap::before,.tools-wrap::after{content:'';position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none}
.tools-wrap::before{left:0;background:linear-gradient(90deg,#fff,transparent)}
.tools-wrap::after{right:0;background:linear-gradient(-90deg,#fff,transparent)}
.tools-track{display:flex;gap:18px;animation:slide-t 26s linear infinite;width:max-content}
.tools-track:hover{animation-play-state:paused}
@keyframes slide-t{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tool-item{display:flex;flex-direction:column;align-items:center;gap:9px;background:var(--light);border:1px solid var(--border);border-radius:12px;padding:18px 16px;min-width:118px;cursor:default;transition:all var(--trans)}
.tool-item:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:rgba(27,108,168,.3)}
.tool-logo{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.tool-logo svg{width:52px;height:52px}
.tool-label{font-family:var(--font-h);font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* ===========================
   CERTIFICATES
=========================== */
.certs-section{padding:96px 0;background:var(--light)}
.certs-section .section-label,.certs-section .section-title{text-align:center}
.certs-swiper{margin-top:46px;padding-bottom:50px}
/* IMPORTANT: cert images always visible */
.cert-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--trans)}
.cert-card:hover{box-shadow:var(--shadow);transform:translateY(-4px);border-color:rgba(27,108,168,.3)}
.cert-img-box{width:100%;height:192px;overflow:hidden;background:#f0f0f0;position:relative}
.cert-img-box img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.cert-zoom{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;background:rgba(10,31,68,.65);border:none;color:#fff;font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.85);transition:all var(--trans);z-index:5}
.cert-img-box:hover .cert-zoom{opacity:1;transform:scale(1)}
.cert-zoom:hover{background:var(--accent);transform:scale(1.08) !important}
.cert-foot{padding:14px 16px}
.cert-badge{display:inline-block;font-family:var(--font-h);font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:100px;margin-bottom:7px}
.cert-badge.smr{color:#FF642D;background:rgba(255,100,45,.1);border:1px solid rgba(255,100,45,.25)}
.cert-badge.hub{color:#FF7A59;background:rgba(255,122,89,.1);border:1px solid rgba(255,122,89,.25)}
.cert-badge.lin{color:#0A66C2;background:rgba(10,102,194,.12);border:1px solid rgba(10,102,194,.25)}
.cert-foot h4{font-family:var(--font-h);font-size:.85rem;font-weight:700;color:var(--navy);margin-bottom:3px;line-height:1.3}
.cert-foot p{font-size:.7rem;color:var(--muted)}
/* swiper nav */
.certs-swiper .swiper-button-prev,.certs-swiper .swiper-button-next{color:var(--accent);width:38px;height:38px;background:#fff;border-radius:50%;border:1px solid var(--border);box-shadow:var(--shadow)}
.certs-swiper .swiper-button-prev::after,.certs-swiper .swiper-button-next::after{font-size:11px;font-weight:800}
.certs-swiper .swiper-pagination-bullet{background:var(--navy);opacity:.22}
.certs-swiper .swiper-pagination-bullet-active{opacity:1;background:var(--accent)}

/* ===========================
   CERT LIGHTBOX
=========================== */
.clb{position:fixed;inset:0;z-index:9600;display:flex;align-items:center;justify-content:center;padding:20px}
.clb[hidden]{display:none}
.clb-bg{position:absolute;inset:0;background:rgba(4,8,18,.93);backdrop-filter:blur(10px);cursor:pointer}
.clb-box{position:relative;z-index:1;max-width:860px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.clb-img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:10px;border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.clb-caption{font-family:var(--font-h);font-size:.84rem;font-weight:600;color:rgba(255,255,255,.65);text-align:center}
.clb-close{position:absolute;top:-10px;right:-10px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--trans)}
.clb-close:hover{background:var(--accent);border-color:var(--accent)}

/* ===========================
   CTA STRIP
=========================== */
.cta-strip{background:var(--accent);padding:58px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-text h3{font-family:var(--font-h);font-size:clamp(.95rem,2.4vw,1.4rem);font-weight:700;letter-spacing:.06em;color:#fff;margin-bottom:4px}
.cta-text h4{font-family:var(--font-h);font-size:.76rem;font-weight:600;letter-spacing:.12em;color:rgba(255,255,255,.7)}
.cta-btns-row{display:flex;gap:12px;flex-wrap:wrap}
.btn-cta{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-h);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;background:#fff;color:var(--accent);padding:13px 26px;border-radius:5px;white-space:nowrap;transition:all var(--trans)}
.btn-cta:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.btn-cta-wa{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-h);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;background:#25D366;color:#fff;padding:13px 22px;border-radius:5px;white-space:nowrap;transition:all var(--trans)}
.btn-cta-wa:hover{background:#1ebe5a;transform:translateY(-2px)}

/* ===========================
   CONTACT
=========================== */
.contact-section{padding:96px 0;background:var(--light)}
.contact-grid{display:grid;grid-template-columns:400px 1fr;gap:56px;margin-top:46px;align-items:start}
.contact-lead{font-size:.93rem;color:var(--muted);line-height:1.9;margin-bottom:26px}
.contact-details{display:flex;flex-direction:column;gap:10px}
.cdet{display:flex;align-items:center;gap:14px;padding:13px 16px;background:#fff;border-radius:var(--radius);border:1px solid var(--border);transition:all var(--trans)}
.cdet:hover{border-color:rgba(27,108,168,.3);box-shadow:var(--shadow);transform:translateX(4px)}
.cdet-ico{width:40px;height:40px;min-width:40px;border-radius:50%;background:var(--light);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.88rem}
.cdet.wa-det:hover{border-color:rgba(37,211,102,.4)}
.cdet.wa-det .cdet-ico{color:#25D366;background:rgba(37,211,102,.07);border-color:rgba(37,211,102,.2)}
.cdet-info span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-family:var(--font-h);font-weight:700;margin-bottom:2px}
.cdet-info strong{display:block;font-size:.84rem;color:var(--navy);font-weight:600}
.contact-form-wrap{background:#fff;border-radius:var(--radius);padding:38px;box-shadow:var(--shadow);border:1px solid var(--border)}
.cform{display:flex;flex-direction:column;gap:14px}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fg input,.fg textarea{width:100%;padding:12px 15px;font-family:var(--font-b);font-size:.88rem;color:var(--navy);background:var(--light);border:1px solid var(--border);border-radius:8px;outline:none;resize:vertical;transition:border-color var(--trans),box-shadow var(--trans)}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(136,136,136,.55)}
.fg input:focus,.fg textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(27,108,168,.07);background:#fff}
.btn-send{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--navy);color:#fff;border:none;cursor:pointer;font-family:var(--font-h);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:13px 26px;border-radius:8px;width:100%;transition:background var(--trans),transform var(--trans)}
.btn-send:hover{background:var(--accent);transform:translateY(-2px)}
.btn-send:disabled{opacity:.7;cursor:not-allowed}
.form-msg{font-size:.8rem;text-align:center;min-height:18px}
.form-msg.ok{color:#16a34a}
.form-msg.err{color:#dc2626}

/* ===========================
   FOOTER
=========================== */
.site-footer{background:var(--navy);padding:68px 0 0}
.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1.4fr;gap:44px;margin-bottom:44px}
.footer-brand img{border-radius:10px;margin-bottom:14px;background:rgba(255,255,255,.07);padding:6px;width:56px;height:56px}
.footer-brand p{font-size:.85rem;color:rgba(255,255,255,.48);line-height:1.8;margin-bottom:18px;max-width:270px}
.f-social{display:flex;gap:9px}
.f-social a{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:.8rem;transition:all var(--trans)}
.f-social a:hover{background:rgba(255,255,255,.1);color:#fff}
.f-social .wa-s:hover{background:#25D366;border-color:#25D366;color:#fff}
.footer-col h4{font-family:var(--font-h);font-size:.75rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:18px}
.footer-col ul{display:flex;flex-direction:column;gap:9px}
.footer-col ul a{font-size:.85rem;color:rgba(255,255,255,.42);transition:color var(--trans)}
.footer-col ul a:hover{color:#fff}
.footer-addr{font-size:.85rem;color:rgba(255,255,255,.42);line-height:1.8;margin-bottom:14px}
.footer-addr strong{color:rgba(255,255,255,.78);display:block;margin-bottom:3px;font-family:var(--font-h);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.footer-addr a{color:rgba(255,255,255,.42);transition:color var(--trans)}
.footer-addr a:hover{color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:22px 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.footer-bottom p{font-size:.78rem;color:rgba(255,255,255,.36)}
.footer-bottom ul{display:flex;gap:18px}
.footer-bottom ul a{font-size:.78rem;color:rgba(255,255,255,.36);transition:color var(--trans)}
.footer-bottom ul a:hover{color:#fff}

/* ===========================
   RESPONSIVE
=========================== */
@media(max-width:1080px){.header-nav a{padding:7px 9px;font-size:.73rem}}
@media(max-width:960px){
  .header-nav,.header-social{display:none}
  .hamburger{display:flex}
  .header-inner{justify-content:space-between}
  .hero-inner{grid-template-columns:1fr;gap:40px;text-align:center;padding:60px 28px}
  .hero-img-wrap{order:-1;max-width:340px;margin:0 auto}
  .hero-img-inner img{height:360px}
  .hero-btns,.hero-badges{justify-content:center}
  .hero-p{margin-left:auto;margin-right:auto}
  .hfc-t,.hfc-b{display:none}
  .about-p1-grid{grid-template-columns:1fr}
  .vmv-grid{grid-template-columns:1fr 1fr}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .skills-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-box:nth-child(2){border-right:none}
  .stat-box{border-bottom:1px solid rgba(255,255,255,.1)}
}
@media(max-width:720px){
  .hero-h1{font-size:1.85rem}
  .hero-img-inner img{height:280px}
  .vmv-grid,.services-grid{grid-template-columns:1fr}
  .port-swiper .swiper-slide img{height:230px}
  .pinfo{padding:32px 0}
  .pstats{gap:16px}
  .form-row-2{grid-template-columns:1fr}
  .contact-form-wrap{padding:24px}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .cta-inner{flex-direction:column;text-align:center}
  .cta-btns-row{justify-content:center}
  .fab-wrap{bottom:20px;right:20px}
}
@media(max-width:480px){
  .hero-h1{font-size:1.65rem}
  .hero-stats-row{padding:12px 14px}
  .hsr-div{display:none}
  .ptab{padding:12px 16px}
}

/* ===========================
   FAB v2 — fixed positioning
=========================== */
.fab-wrap{position:fixed;bottom:28px;right:28px;z-index:600;display:flex;flex-direction:column-reverse;align-items:center;gap:12px}
.fab-main{width:52px;height:52px;border-radius:14px;background:var(--navy);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 4px 20px rgba(10,31,68,.32);transition:all var(--trans);position:relative;z-index:2;flex-shrink:0}
.fab-main:hover{background:var(--accent);transform:translateY(-3px);box-shadow:0 8px 28px rgba(27,108,168,.4)}
.fab-sub-list{display:flex;flex-direction:column-reverse;align-items:center;gap:10px}
.fab-sub{width:44px;height:44px;border-radius:12px;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 3px 14px rgba(0,0,0,.18);transition:transform var(--trans),box-shadow var(--trans);text-decoration:none;flex-shrink:0;position:relative}
.fab-sub:hover{transform:translateY(-3px) scale(1.08)}
.fab-sub.wa{background:#25D366}.fab-sub.wa:hover{box-shadow:0 6px 20px rgba(37,211,102,.45)}
.fab-sub.li{background:#0A66C2}.fab-sub.li:hover{box-shadow:0 6px 20px rgba(10,102,194,.45)}
.fab-sub.em{background:var(--accent)}.fab-sub.em:hover{box-shadow:0 6px 20px rgba(27,108,168,.45)}
.fab-sub.ph{background:#059669}.fab-sub.ph:hover{box-shadow:0 6px 20px rgba(5,150,105,.45)}
.fab-sub.cv{background:#7c3aed}.fab-sub.cv:hover{box-shadow:0 6px 20px rgba(124,58,237,.45)}
/* tooltip */
.fab-sub::before{content:attr(data-tip);position:absolute;right:54px;background:rgba(10,31,68,.88);color:#fff;font-family:var(--font-h);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;top:50%;transform:translateY(-50%)}
.fab-sub:hover::before{opacity:1}

/* ===========================
   CONTACT v2 — REDESIGN
=========================== */
.contact-section{padding:0;background:#fff;overflow:hidden}
.contact-top-bar{background:var(--navy);padding:80px 0 120px;position:relative;overflow:hidden}
.contact-top-bar::before{content:'';position:absolute;top:-80px;right:-80px;width:400px;height:400px;border-radius:50%;background:rgba(27,108,168,.15);pointer-events:none}
.contact-top-bar::after{content:'';position:absolute;bottom:-60px;left:-60px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.03);pointer-events:none}
.contact-top-bar .section-label span{color:rgba(255,255,255,.6)}
.contact-top-bar .section-title{color:#fff}
.contact-top-bar .section-title em{color:rgba(255,255,255,.55)}
.contact-top-intro{font-size:1rem;color:rgba(255,255,255,.55);line-height:1.9;max-width:560px;margin-top:14px}
/* cards row that overlaps */
.contact-cards-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-56px;padding:0 28px;position:relative;z-index:2;max-width:1180px;margin-left:auto;margin-right:auto;margin-top:-60px}
.ccard{background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;box-shadow:0 12px 40px rgba(10,31,68,.10);transition:all var(--trans);text-decoration:none;color:inherit}
.ccard:hover{transform:translateY(-6px);box-shadow:0 20px 56px rgba(10,31,68,.14);border-color:rgba(27,108,168,.3)}
.ccard.wa-c:hover{border-color:rgba(37,211,102,.4);box-shadow:0 20px 56px rgba(37,211,102,.12)}
.ccard-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;flex-shrink:0}
.ccard-ico.ico-wa{background:linear-gradient(135deg,#25D366,#1ebe5a)}
.ccard-ico.ico-em{background:linear-gradient(135deg,var(--accent),var(--accent2))}
.ccard-ico.ico-li{background:linear-gradient(135deg,#0A66C2,#0e80e8)}
.ccard-ico.ico-lo{background:linear-gradient(135deg,var(--navy),#1B3A6B)}
.ccard-label{font-family:var(--font-h);font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.ccard-val{font-family:var(--font-h);font-size:.86rem;font-weight:700;color:var(--navy);line-height:1.35}
/* form section below */
.contact-form-section{background:#fff;padding:60px 0 96px}
.contact-form-inner{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:start;max-width:1180px;margin:0 auto;padding:0 28px}
.contact-form-left h3{font-family:var(--font-h);font-size:1.5rem;font-weight:700;color:var(--navy);margin-bottom:14px}
.contact-form-left p{font-size:.92rem;color:var(--muted);line-height:1.9;margin-bottom:24px}
.contact-form-left .cfl-points{display:flex;flex-direction:column;gap:12px}
.cfl-point{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;color:var(--text)}
.cfl-point i{color:var(--accent);margin-top:3px;flex-shrink:0}
.contact-form-right{background:var(--light);border-radius:20px;padding:38px;border:1px solid var(--border)}
.contact-form-right .cform{display:flex;flex-direction:column;gap:14px}
.contact-form-right .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form-right .fg input,.contact-form-right .fg textarea{width:100%;padding:13px 16px;font-family:var(--font-b);font-size:.88rem;color:var(--navy);background:#fff;border:1px solid var(--border);border-radius:10px;outline:none;resize:vertical;transition:border-color var(--trans),box-shadow var(--trans)}
.contact-form-right .fg input::placeholder,.contact-form-right .fg textarea::placeholder{color:rgba(136,136,136,.55)}
.contact-form-right .fg input:focus,.contact-form-right .fg textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(27,108,168,.08);background:#fff}
.btn-send{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--navy);color:#fff;border:none;cursor:pointer;font-family:var(--font-h);font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;padding:14px 28px;border-radius:10px;width:100%;transition:background var(--trans),transform var(--trans);position:relative;overflow:hidden}
.btn-send::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translateX(-100%);transition:transform .5s ease}
.btn-send:hover::before{transform:translateX(100%)}
.btn-send:hover{background:var(--accent);transform:translateY(-2px)}
.btn-send:disabled{opacity:.7;cursor:not-allowed}
.form-msg{font-size:.8rem;text-align:center;min-height:18px}
.form-msg.ok{color:#16a34a}.form-msg.err{color:#dc2626}

/* ===========================
   TOOLS v3 — MARQUEE
=========================== */
.tools-section{padding:80px 0 60px;background:var(--light);overflow:hidden}
.tools-section .section-label,.tools-section .section-title{text-align:center}
.tools-section .section-title{margin-bottom:14px}
.tools-tagline{text-align:center;font-size:.88rem;color:var(--muted);margin-bottom:48px;font-style:italic}
/* marquee wrapper */
.marquee-outer{position:relative;overflow:hidden;padding:16px 0 28px}
.marquee-fade-left,.marquee-fade-right{position:absolute;top:0;bottom:0;width:140px;z-index:2;pointer-events:none}
.marquee-fade-left{left:0;background:linear-gradient(to right,var(--light),transparent)}
.marquee-fade-right{right:0;background:linear-gradient(to left,var(--light),transparent)}
@keyframes marquee-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-track{display:flex;gap:16px;width:max-content;animation:marquee-scroll 28s linear infinite}
.marquee-track:hover{animation-play-state:paused}
/* marquee card */
.mq-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px 24px;min-width:130px;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s;flex-shrink:0}
.mq-card:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(10,31,68,.12);border-color:rgba(27,108,168,.25)}
.mq-logo{width:56px;height:56px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f5f7fa}
.mq-logo img{width:48px;height:48px;object-fit:contain;display:block}
.mq-logo-text{width:56px;height:56px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-h);font-weight:900;font-size:.88rem;letter-spacing:.04em}
.mq-name{font-family:var(--font-h);font-size:.72rem;font-weight:700;color:var(--navy);text-align:center;letter-spacing:.03em}
/* email icon — Gmail red */
.ccard-ico.ico-em{background:linear-gradient(135deg,#EA4335,#c5271a)}

/* ===========================
   PLATFORMS — Salla / Zid / Shopify
=========================== */
.platforms-section{padding:88px 0;background:#fff}
.platforms-section .section-label,.platforms-section .section-title{text-align:center}
.platforms-section .section-title{margin-bottom:12px}
.platforms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto}
.platform-card{background:#fff;border:1.5px solid var(--border);border-radius:20px;padding:32px 28px;display:flex;flex-direction:column;gap:20px;position:relative;overflow:hidden;transition:all var(--trans)}
.platform-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(10,31,68,.12);border-color:transparent}
.platform-card-feat{border-color:var(--accent);box-shadow:0 12px 40px rgba(27,108,168,.10)}
.platform-logo-wrap{width:80px;height:80px;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.platform-logo-text{font-family:var(--font-h);font-weight:900;font-size:1.5rem;color:#fff;direction:rtl}
.platform-name{font-family:var(--font-h);font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.platform-desc{font-size:.84rem;color:var(--muted);line-height:1.8}
.platform-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.platform-tags span{font-family:var(--font-h);font-size:.62rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;background:var(--light);border:1px solid var(--border);color:var(--navy);padding:4px 10px;border-radius:100px}
.platform-badge{position:absolute;top:20px;right:20px;font-family:var(--font-h);font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:100px}

/* responsive contact v2 */
@media(max-width:960px){
  .contact-cards-row{grid-template-columns:repeat(2,1fr)}
  .contact-form-inner{grid-template-columns:1fr}
  .platforms-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .contact-cards-row{grid-template-columns:repeat(2,1fr);padding:0 16px}
  .contact-form-right{padding:24px}
  .mq-card{min-width:110px;padding:16px 18px}
}
@media(max-width:400px){.contact-cards-row{grid-template-columns:1fr}}

/* ===========================
   DARK MODE
=========================== */
:root {
  --dm-bg: #0d1117;
  --dm-bg2: #161b22;
  --dm-bg3: #21262d;
  --dm-text: #e6edf3;
  --dm-muted: #8b949e;
  --dm-border: #30363d;
  --dm-navy: #58a6ff;
}

body.dark-mode {
  background: var(--dm-bg);
  color: var(--dm-text);
}
body.dark-mode .header.scrolled { background: var(--dm-bg); box-shadow: 0 1px 0 var(--dm-border); }
body.dark-mode .header-nav a { color: var(--dm-text); }
body.dark-mode .header-logo img { background: var(--dm-bg3); }
body.dark-mode .mobile-nav { background: var(--dm-bg); border-color: var(--dm-border); }
body.dark-mode .mnav-link { color: var(--dm-text); }
body.dark-mode .mobile-nav li { border-color: var(--dm-border); }
body.dark-mode .hero-section { background: linear-gradient(140deg, #0d1117 0%, #0f1923 55%, #111e2b 100%); }
body.dark-mode .hero-h1, body.dark-mode .section-title { color: var(--dm-text); }
body.dark-mode .hero-stats-row { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.08); }
body.dark-mode .hsr-item strong { color: var(--dm-text); }
body.dark-mode .about-p1, body.dark-mode .experience-section, body.dark-mode .services-section,
body.dark-mode .portfolio-section { background: var(--dm-bg); }
body.dark-mode .about-p2, body.dark-mode .skills-section, body.dark-mode .certs-section,
body.dark-mode .contact-section, body.dark-mode .tools-section { background: var(--dm-bg2); }
body.dark-mode .vmv-card, body.dark-mode .svc-card, body.dark-mode .cert-card { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .vmv-card h3, body.dark-mode .svc-card h3, body.dark-mode .cert-foot h4,
body.dark-mode .exp-company, body.dark-mode .bio-role strong { color: var(--dm-text); }
body.dark-mode .bio-text p, body.dark-mode .exp-desc { color: var(--dm-muted); }
body.dark-mode .exp-item { border-color: var(--dm-border); }
body.dark-mode .exp-date { background: var(--dm-bg3); border-color: var(--dm-border); color: var(--dm-muted); }
body.dark-mode .bio-role { background: rgba(88,166,255,.06); border-color: rgba(88,166,255,.2); }
body.dark-mode .mq-card { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .mq-name { color: var(--dm-text); }
body.dark-mode .marquee-fade-left { background: linear-gradient(to right, var(--dm-bg2), transparent); }
body.dark-mode .marquee-fade-right { background: linear-gradient(to left, var(--dm-bg2), transparent); }
body.dark-mode .ccard { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .ccard-val { color: var(--dm-text); }
body.dark-mode .contact-top-bar { background: #0a0f1e; }
body.dark-mode .contact-form-section { background: var(--dm-bg2); }
body.dark-mode .contact-form-right { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .contact-form-right .fg input,
body.dark-mode .contact-form-right .fg textarea { background: var(--dm-bg); border-color: var(--dm-border); color: var(--dm-text); }
body.dark-mode .sk-bar { background: rgba(255,255,255,.08); }
body.dark-mode .process-section { background: var(--dm-bg); }
body.dark-mode .process-step { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .process-step h3 { color: var(--dm-text); }
body.dark-mode .process-step p { color: var(--dm-muted); }
body.dark-mode .process-connector { color: var(--dm-muted); }
body.dark-mode .ps-number { color: rgba(88,166,255,.15); }
body.dark-mode .pinfo-csr-item { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); }
body.dark-mode .pinfo-csr-item p { color: rgba(255,255,255,.55); }
body.dark-mode #preloader { background: var(--dm-bg); }
body.dark-mode .site-footer { background: #080c12; }

/* --- DARK MODE: missing text fixes --- */
/* Hero */
body.dark-mode .hero-greeting { color: #58a6ff; }
body.dark-mode .hero-p { color: var(--dm-muted); }
body.dark-mode .hero-typed-row { color: var(--dm-muted); }
body.dark-mode .hsr-item span { color: var(--dm-muted); }
body.dark-mode .h-badge { color: var(--dm-text); background: rgba(88,166,255,.08); border-color: rgba(88,166,255,.2); }
body.dark-mode .h-badge.avail { color: #4ade80; background: rgba(74,222,128,.08); border-color: rgba(74,222,128,.2); }
/* About */
body.dark-mode .ach-title { color: var(--dm-text); }
body.dark-mode .ach-item strong { color: var(--dm-text); }
body.dark-mode .ach-item p { color: var(--dm-muted); }
body.dark-mode .ach-icon { background: rgba(88,166,255,.08); border-color: rgba(88,166,255,.2); }
body.dark-mode .bio-meta span { color: var(--dm-muted); }
body.dark-mode .section-label span { color: #58a6ff; }
body.dark-mode .section-sub2 { color: var(--dm-muted); }
/* About p2 vision cards */
body.dark-mode .vmv-card p { color: var(--dm-muted); }
body.dark-mode .about-p2 { background: var(--dm-bg2); }
/* Experience */
body.dark-mode .exp-role { color: #58a6ff; }
body.dark-mode .exp-tags span { color: #58a6ff; background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.2); }
body.dark-mode .exp-num { color: rgba(88,166,255,.1); }
/* Services */
body.dark-mode .svc-card p { color: var(--dm-muted); }
body.dark-mode .svc-icon { background: rgba(88,166,255,.08); border-color: rgba(88,166,255,.2); }
body.dark-mode .svc-feat-badge { color: #58a6ff; background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.2); }
/* Skills */
body.dark-mode .skill-row .sk-pct { color: #58a6ff; }
body.dark-mode .skill-row::after { background: linear-gradient(90deg, #58a6ff, #1d4ed8); }
body.dark-mode .sk-fill { background: linear-gradient(90deg, #1e3a5f, #58a6ff); }
/* Certs */
body.dark-mode .cert-foot p { color: var(--dm-muted); }
/* Process */
body.dark-mode .process-section { background: var(--dm-bg2); }
body.dark-mode .ps-icon { background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.25); }
/* Stats */
body.dark-mode .stats-section { background: #060c18; }
body.dark-mode .stat-box p { color: rgba(255,255,255,.45); }
/* CTA */
body.dark-mode .cta-strip { background: #0c1a30; }
/* Footer */
body.dark-mode .footer-col h4 { color: rgba(255,255,255,.75); }
body.dark-mode .footer-bottom p { color: rgba(255,255,255,.35); }
/* Tools tagline */
body.dark-mode .tools-tagline { color: var(--dm-muted); }
/* Contact cards label */
body.dark-mode .ccard-label { color: var(--dm-muted); }
/* Contact form left */
body.dark-mode .contact-form-left h3 { color: var(--dm-text); }
body.dark-mode .contact-form-left p { color: var(--dm-muted); }
body.dark-mode .cfl-point { color: var(--dm-muted); }
/* Preloader bar bg */
body.dark-mode .preloader-bar { background: var(--dm-bg3); }
/* btn-readmore */
body.dark-mode .btn-readmore { color: #58a6ff; border-color: #58a6ff; }
/* Portfolio panel text (already dark bg — keep as is) */

/* --- DARK MODE: Process step cards wider fix not needed, just icon --- */
body.dark-mode .process-step:hover .ps-icon { background: var(--accent); color: #fff; }

/* dark mode toggle button */
.dm-toggle {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: transparent;
  color: var(--navy);
  font-size: .85rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all var(--trans);
  flex-shrink: 0;
}
.dm-toggle:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
body.dark-mode .dm-toggle { border-color: var(--dm-border); color: #f5c518; }
body.dark-mode .dm-toggle:hover { background: var(--dm-bg3); }

/* ===========================
   BACK TO TOP
=========================== */
.back-to-top {
  position: fixed;
  bottom: 28px;
  left: 28px;
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--navy);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: .9rem;
  box-shadow: 0 4px 18px rgba(10,31,68,.28);
  opacity: 0; pointer-events: none;
  transform: translateY(16px);
  transition: opacity .3s, transform .3s, background var(--trans);
  z-index: 599;
}
.back-to-top.visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.back-to-top:hover { background: var(--accent); transform: translateY(-3px); }
body.dark-mode .back-to-top { background: var(--dm-bg3); border: 1px solid var(--dm-border); }
body.dark-mode .back-to-top:hover { background: var(--accent); }

/* ===========================
   MY PROCESS SECTION
=========================== */
.process-section { padding: 96px 0; background: var(--light); }
.process-section .section-label,
.process-section .section-title,
.process-section .section-sub2 { text-align: center; }
.process-steps {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-top: 52px;
  position: relative;
}
.process-step {
  flex: 1;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 36px 22px 28px;
  text-align: center;
  position: relative;
  transition: all var(--trans);
}
.process-step:not(:last-child)::after {
  content: '\f054';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: .72rem;
  color: rgba(27,108,168,.3);
  z-index: 2;
  background: var(--light);
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
body.dark-mode .process-step:not(:last-child)::after {
  color: rgba(88,166,255,.3);
  background: var(--dm-bg2);
}
.process-step:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow);
  border-color: rgba(27,108,168,.35);
}
.ps-number {
  position: absolute;
  top: -18px; left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-h);
  font-size: 2.8rem;
  font-weight: 700;
  color: rgba(10,31,68,.06);
  line-height: 1;
  pointer-events: none;
}
.ps-icon {
  width: 64px; height: 64px;
  margin: 8px auto 16px;
  border-radius: 50%;
  background: rgba(27,108,168,.08);
  border: 1px solid rgba(27,108,168,.18);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem; color: var(--accent);
  transition: all var(--trans);
}
.process-step:hover .ps-icon {
  background: var(--accent); color: #fff;
  transform: scale(1.08);
}
.process-step h3 {
  font-family: var(--font-h);
  font-size: .92rem; font-weight: 700;
  color: var(--navy); margin-bottom: 10px;
}
.process-step p {
  font-size: .82rem; color: var(--muted); line-height: 1.85;
}
@media(max-width:1060px) {
  .process-steps { flex-wrap: wrap; gap: 20px; }
  .process-step { flex: 1 1 calc(50% - 10px); }
  .process-step:not(:last-child)::after { display: none; }
}
@media(max-width:600px) {
  .process-step { flex: 1 1 100%; }
}

/* ===========================
   PORTFOLIO — CSR BLOCKS
=========================== */
.pinfo-csr {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-top: 18px; justify-content: center;
}
.pinfo-csr-item {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 14px 16px;
  flex: 1; min-width: 180px; max-width: 260px;
  text-align: left;
}
.pinfo-csr-label {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--font-h);
  font-size: .64rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: 8px;
}
.pinfo-csr-label i { font-size: .7rem; }
.pinfo-csr-label i.fa-exclamation-circle { color: #f87171; }
.pinfo-csr-label i.fa-chess { color: #60a5fa; }
.pinfo-csr-label i.fa-trophy { color: #fbbf24; }
.pinfo-csr-item p {
  font-size: .78rem; color: rgba(255,255,255,.6);
  line-height: 1.75; margin: 0;
}
.pinfo-inner { flex-direction: column; }

/* skills section — keep bars but add nav item */
#skills { scroll-margin-top: 80px; }

/* process nav link */
@media(min-width:961px) {
  .header-nav ul { gap: 0; }
}

/* Skill bars to visual cards */
.skills-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 46px;
}
.skill-row {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px 18px 16px;
  transition: all var(--trans);
  position: relative;
  overflow: hidden;
}
.skill-row::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--navy), var(--accent));
  transform: scaleX(0);
  transition: transform .35s ease;
  transform-origin: left;
}
.skill-row:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow);
  border-color: rgba(27,108,168,.3);
}
.skill-row:hover::after { transform: scaleX(1); }
.skill-row .sk-head {
  display: flex; align-items: center;
  gap: 10px; margin-bottom: 12px;
}
.skill-row .sk-name {
  flex: 1;
  font-family: var(--font-h);
  font-size: .8rem; font-weight: 700;
  color: var(--navy);
  display: flex; align-items: center; gap: 8px;
}
.skill-row .sk-name i { color: var(--accent); font-size: .78rem; width: 14px; }
.skill-row .sk-pct {
  font-family: var(--font-h);
  font-size: .9rem; font-weight: 700;
  color: var(--accent);
}
.sk-bar {
  width: 100%; height: 4px;
  background: rgba(10,31,68,.07);
  border-radius: 100px; overflow: hidden;
}
.sk-fill {
  height: 100%; width: 0;
  background: linear-gradient(90deg, var(--navy), var(--accent));
  border-radius: 100px;
  transition: width 1.4s cubic-bezier(.25,.46,.45,.94);
}
body.dark-mode .skill-row { background: var(--dm-bg3); border-color: var(--dm-border); }
body.dark-mode .skill-row .sk-name { color: var(--dm-text); }
@media(max-width:960px) {
  .skills-grid { grid-template-columns: repeat(2,1fr); }
}
@media(max-width:600px) {
  .skills-grid { grid-template-columns: 1fr; }
}

/* ===========================
   DARK MODE — REMAINING FIXES v12
=========================== */

/* Header icons & social */
body.dark-mode .header-social a:not(.header-cv-btn) {
  border-color: rgba(255,255,255,.2);
  color: rgba(255,255,255,.75);
}
body.dark-mode .header-social a:not(.header-cv-btn):hover {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.4);
  color: #fff;
}
body.dark-mode .header-social .wa-ico {
  border-color: #25D366;
  color: #25D366;
}
body.dark-mode .header-cv-btn {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff !important;
}
body.dark-mode .header-cv-btn:hover {
  background: var(--accent);
}
body.dark-mode .dm-toggle {
  border-color: rgba(255,255,255,.2);
  color: #f5c518;
}
body.dark-mode .hamburger {
  border-color: rgba(255,255,255,.3);
}
body.dark-mode .hamburger span {
  background: rgba(255,255,255,.8);
}

/* Hero buttons in dark mode */
body.dark-mode .btn-out {
  color: #fff;
  border-color: rgba(255,255,255,.4);
}
body.dark-mode .btn-out:hover {
  background: rgba(255,255,255,.1);
  border-color: #fff;
}
body.dark-mode .btn-prim {
  background: var(--accent);
}

/* Contact form left text */
body.dark-mode .contact-form-left h3 { color: var(--dm-text); }
body.dark-mode .contact-form-left p { color: var(--dm-muted); }
body.dark-mode .cfl-point { color: var(--dm-muted); }
body.dark-mode .cfl-point i { color: #58a6ff; }
body.dark-mode .contact-form-right .fg input::placeholder,
body.dark-mode .contact-form-right .fg textarea::placeholder { color: rgba(255,255,255,.25); }
body.dark-mode .contact-form-right { background: var(--dm-bg3); border-color: var(--dm-border); }

/* About — ach-item body text */
body.dark-mode .ach-item p { color: var(--dm-muted); }
body.dark-mode .ach-item strong { color: var(--dm-text); }
body.dark-mode .ach-icon { background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.2); color: #58a6ff; }
body.dark-mode .bio-meta span { color: var(--dm-muted); }
body.dark-mode .bio-meta i { color: #58a6ff; }
body.dark-mode .bio-text p { color: var(--dm-muted); }
body.dark-mode .bio-role span { color: var(--dm-muted); }

/* General body text color for dark */
body.dark-mode { color: var(--dm-text); }
body.dark-mode p { color: var(--dm-muted); }

/* Services card text */
body.dark-mode .svc-card p { color: var(--dm-muted); }
body.dark-mode .svc-card h3 { color: var(--dm-text); }

/* VMV cards */
body.dark-mode .vmv-card p { color: var(--dm-muted); }
body.dark-mode .vmv-card h3 { color: var(--dm-text); }
body.dark-mode .vmv-icon { background: rgba(88,166,255,.1); border-color: rgba(88,166,255,.2); color: #58a6ff; }

/* Cert footer */
body.dark-mode .cert-foot p { color: var(--dm-muted); }

/* Skill card text */
body.dark-mode .skill-row .sk-name i { color: #58a6ff; }

/* CTA strip text */
body.dark-mode .cta-text h4 { color: rgba(255,255,255,.6); }

/* Footer text */
body.dark-mode .footer-addr { color: rgba(255,255,255,.4); }
body.dark-mode .footer-brand p { color: rgba(255,255,255,.4); }
body.dark-mode .footer-col ul a { color: rgba(255,255,255,.4); }
body.dark-mode .footer-bottom ul a { color: rgba(255,255,255,.35); }

/* ===========================
   DARK MODE — ABOUT TEXT FORCE FIX v13
=========================== */
body.dark-mode .bio-text p,
body.dark-mode .bio-text p strong,
body.dark-mode .about-p1-grid p,
body.dark-mode .about-p1 p {
  color: #c9d1d9 !important;
}
body.dark-mode .bio-text strong {
  color: #e6edf3 !important;
}

/* ===========================
   DARK MODE — FAB + CLOSE + BACK TO TOP FIXES v14
=========================== */

/* FAB main button — dark mode visibility */
body.dark-mode .fab-main {
  background: #1e3a5f;
  border: 1px solid rgba(88,166,255,.3);
  color: #58a6ff;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
}
body.dark-mode .fab-main:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* Back to top — dark mode visibility */
body.dark-mode .back-to-top {
  background: #1e3a5f;
  border: 1px solid rgba(88,166,255,.35);
  color: #58a6ff;
  box-shadow: 0 4px 18px rgba(0,0,0,.5);
}
body.dark-mode .back-to-top:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* Cert lightbox close button — already white but boost visibility */
body.dark-mode .clb-close {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.3);
  color: #fff;
}
body.dark-mode .clb-close:hover {
  background: var(--accent);
  border-color: var(--accent);
}

/* FAB sub icons stay bright */
body.dark-mode .fab-sub {
  box-shadow: 0 3px 14px rgba(0,0,0,.4);
}

/* FAB icon rotation on open (comments → X) */
.fab-main.open-state i {
  transform: rotate(0deg);
}
