/* ===========================================================
   Infinite Divine — "Spectrum" theme
   Magenta -> Purple -> Blue gradient · white · glassmorphism
   Poppins (display) + Inter (body)
   =========================================================== */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --magenta:#E5179A; --pink:#EC4899; --purple:#7C3AED; --violet:#8B5CF6;
  --blue:#2563EB; --sky:#38BDF8; --cyan:#22D3EE; --green:#22C55E;
  --grad:linear-gradient(120deg,#E5179A 0%,#8B3DE8 48%,#2E9FE0 100%);
  --grad-pink:linear-gradient(120deg,#F0329B,#9333EA);
  --ink:#171B27; --text:#1B2030; --muted:#5d6781; --line:#ECE9F5;
  --bg:#ffffff; --soft:#F6F7FB; --soft2:#EEF0F8;
  --shadow:0 20px 55px rgba(40,30,90,.13); --shadow-sm:0 8px 24px rgba(40,30,90,.08);
  --d:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --b:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
html{scroll-behavior:smooth;}
body{font-family:var(--b);color:var(--text);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--purple);outline-offset:2px;border-radius:4px;}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
.container{max-width:1240px;margin:0 auto;padding:0 1.6rem;}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.eyebrow{display:inline-block;font-family:var(--d);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--magenta);margin-bottom:1rem;}

/* ===== NAV ===== */
nav{position:sticky;top:0;z-index:1000;background:rgba(255,255,255,.88);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid var(--line);padding:.85rem 1.6rem;}
nav .container{max-width:1240px;margin:0 auto;padding:0;display:flex;justify-content:space-between;align-items:center;}
.logo{display:flex;align-items:center;gap:.7rem;text-decoration:none;}
.logo-icon{width:46px;height:46px;flex:none;border-radius:13px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#FDE7F4,#EAE2FB);box-shadow:0 8px 20px rgba(124,58,237,.18);}
.logo-icon .logo-mark{width:32px;height:32px;display:block;}
.logo-text{display:flex;flex-direction:column;line-height:1;}
.logo-text b{font-family:var(--d);font-weight:700;font-size:1.2rem;color:var(--ink);letter-spacing:-.01em;}
.logo-text span{font-size:.6rem;letter-spacing:.26em;text-transform:uppercase;color:var(--purple);margin-top:4px;font-weight:600;}
nav ul{display:flex;list-style:none;gap:2rem;align-items:center;}
nav a{color:#3a4258;text-decoration:none;font-size:.93rem;font-weight:600;transition:color .2s;position:relative;}
nav ul li a:not(.nav-cta):hover{color:var(--magenta);}
nav ul li a:not(.nav-cta)::after{content:'';position:absolute;bottom:-7px;left:0;width:0;height:2px;background:var(--grad);transition:width .3s;border-radius:2px;}
nav ul li a:not(.nav-cta):hover::after{width:100%;}
.nav-cta{background:var(--grad);color:#fff!important;padding:.62rem 1.4rem;border-radius:99px;font-weight:700;transition:transform .25s,box-shadow .25s;box-shadow:0 8px 20px rgba(229,23,154,.28);}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(229,23,154,.4);}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:10px;}
.nav-toggle span{display:block;width:100%;height:2.5px;background:var(--ink);border-radius:3px;transition:transform .3s,opacity .3s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
@media(max-width:900px){
  /* backdrop-filter on nav was making position:fixed resolve against the nav box (not the viewport),
     which collapsed the menu panel to the header height. Drop it on mobile so the drawer is full-height. */
  nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff;}
  .logo,.nav-toggle{position:relative;z-index:1102;}
  .nav-toggle{display:flex;}
  #nav-menu{position:fixed;inset:0 0 0 auto;width:min(80%,330px);height:100vh;height:100dvh;
    flex-direction:column;justify-content:center;align-items:flex-start;gap:1.5rem;margin:0;
    padding:5.5rem 2rem 2rem;background:#fff;box-shadow:-20px 0 60px rgba(0,0,0,.18);
    transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
    z-index:1100;overflow-y:auto;}
  #nav-menu.open{transform:translateX(0);}
  #nav-menu li{width:100%;}
  #nav-menu li a{font-size:1.12rem;}
}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:13px 28px;border-radius:99px;text-decoration:none;font-family:var(--d);font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all .28s;}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 12px 28px rgba(229,23,154,.3);}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(229,23,154,.42);}
.btn-wa{background:var(--green);color:#fff;box-shadow:0 12px 28px rgba(34,197,94,.3);}
.btn-wa:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(34,197,94,.42);}
.btn-ghost{background:#fff;color:var(--purple);border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--purple);transform:translateY(-3px);box-shadow:var(--shadow-sm);}
.btn-light{background:rgba(255,255,255,.16);color:#fff;border:1.5px solid rgba(255,255,255,.45);}
.btn-light:hover{background:rgba(255,255,255,.26);}
.btn-outline{background:#fff;color:var(--text);border:1.5px solid var(--line);}
.btn-outline:hover{border-color:var(--purple);color:var(--purple);}
.btn-explore{background:var(--grad);color:#fff;padding:9px 22px;border-radius:99px;font-family:var(--d);font-weight:600;font-size:.85rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;box-shadow:0 8px 20px rgba(124,58,237,.26);transition:all .25s;}
.btn-explore:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(124,58,237,.4);}

/* ===== HERO ===== */
.hero{position:relative;overflow:hidden;padding:84px 1.6rem 96px;
  background:radial-gradient(680px 380px at 8% 0%,rgba(229,23,154,.10),transparent 60%),
             radial-gradient(680px 420px at 100% 8%,rgba(46,159,224,.12),transparent 60%),
             linear-gradient(180deg,#fff,#FBFAFF);}
.hero .container{max-width:1240px;}
.hero-inner{display:grid;grid-template-columns:1.02fr .98fr;gap:3rem;align-items:center;}
.hero h1{font-family:var(--d);font-weight:800;font-size:3.5rem;line-height:1.08;letter-spacing:-.02em;margin-bottom:1.3rem;color:var(--ink);}
.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p{font-size:1.12rem;color:var(--muted);margin-bottom:1.5rem;max-width:560px;}
.hero-checks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.4rem;margin-bottom:1.8rem;max-width:560px;}
.hero-checks li{list-style:none;display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.93rem;color:#2a3146;}
.hero-checks .tick{width:22px;height:22px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex:none;}
.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;}
.hero-stats{display:flex;gap:2.4rem;flex-wrap:wrap;}
.hero-stats .hstat b{display:block;font-family:var(--d);font-weight:800;font-size:1.9rem;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-stats .hstat span{font-size:.85rem;color:var(--muted);}
@media(max-width:900px){.hero-inner{grid-template-columns:1fr;gap:2.4rem;}.hero h1{font-size:2.5rem;}.hero-visual{order:2;}}
@media(max-width:480px){.hero-checks{grid-template-columns:1fr;}}

/* hero floating metric cards */
.hero-cards{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.metric-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.1rem 1.2rem;box-shadow:var(--shadow);}
.metric-card:nth-child(1){transform:translateY(-14px);}
.metric-card:nth-child(4){transform:translateY(-14px);}
.m-label{font-size:.78rem;color:var(--muted);margin-bottom:.35rem;}
.m-value{font-family:var(--d);font-weight:800;font-size:1.75rem;line-height:1;color:var(--ink);}
.m-delta{font-size:.78rem;font-weight:700;margin-top:.45rem;display:inline-flex;align-items:center;gap:.25rem;}
.m-delta.up{color:#16A34A;} .m-delta.brand{color:var(--magenta);}
.m-spark{height:30px;margin-top:.5rem;}
@media(max-width:900px){.metric-card:nth-child(n){transform:none;}}

/* ===== SECTIONS ===== */
.section{padding:92px 1.6rem;}
.section.soft{background:var(--soft);}
.section-head{text-align:center;max-width:680px;margin:0 auto 56px;}
.section-head h2{font-family:var(--d);font-weight:800;font-size:2.5rem;line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin-bottom:.9rem;}
.section-head h2 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.section-head p{font-size:1.05rem;color:var(--muted);}

/* ===== SERVICE PILLARS ===== */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.5rem;}
.service-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2.1rem 2rem;transition:transform .35s,box-shadow .35s;position:relative;overflow:hidden;}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);}
.service-icon{width:74px;height:74px;border-radius:58% 42% 47% 53%/53% 46% 54% 47%;display:flex;align-items:center;justify-content:center;font-size:1.85rem;color:#fff;margin-bottom:1.3rem;transition:border-radius .5s ease;}
.service-card:hover .service-icon{border-radius:45% 55% 58% 42%/52% 44% 56% 48%;}
.service-card h3{font-family:var(--d);font-weight:700;font-size:1.3rem;margin-bottom:.6rem;color:var(--ink);}
.service-card p{color:var(--muted);font-size:.94rem;margin-bottom:1.2rem;}
.service-features{list-style:none;}
.service-features li{padding:.36rem 0;color:#3a4258;font-size:.9rem;display:flex;align-items:flex-start;gap:.5rem;}
.service-features li::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--grad);margin-top:.55rem;flex:none;}

/* ===== ACHIEVEMENTS (gradient + glass) ===== */
.stats-band{background:var(--grad);padding:84px 1.6rem;position:relative;overflow:hidden;}
.stats-band .section-head h2,.stats-band .section-head p{color:#fff;}
.stats-band .section-head h2 em{color:#fff;-webkit-text-fill-color:#fff;}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.5rem;max-width:1100px;margin:0 auto;}
.stat-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:2.2rem 1.5rem;text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.stat-ic{width:54px;height:54px;border-radius:14px;background:rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 1rem;}
.stat-num{font-family:var(--d);font-weight:800;font-size:2.9rem;color:#fff;line-height:1;margin-bottom:.35rem;}
.stat-label{color:rgba(255,255,255,.9);font-size:.92rem;}

/* ===== PROCESS ===== */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;}
.step{padding:2rem 1.8rem;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-sm);}
.step-num{font-family:var(--d);font-size:2.4rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;margin-bottom:.7rem;}
.step h3{font-family:var(--d);font-weight:700;font-size:1.18rem;margin-bottom:.5rem;color:var(--ink);}
.step p{color:var(--muted);font-size:.92rem;}

/* ===== INDUSTRIES ===== */
.ind-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;}
.ind-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2rem 1.9rem;transition:transform .35s,box-shadow .35s;box-shadow:var(--shadow-sm);}
.ind-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);}
.ind-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;}
.ind-ic{width:56px;height:56px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:1.55rem;color:#fff;}
.ind-chip{color:#fff;font-family:var(--d);font-size:.8rem;font-weight:700;padding:5px 13px;border-radius:99px;}
.ind-card h3{font-family:var(--d);font-weight:700;font-size:1.28rem;margin-bottom:.6rem;color:var(--ink);}
.ind-card p{color:var(--muted);font-size:.92rem;margin-bottom:1.3rem;}
.ind-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.ind-metric b{font-family:var(--d);font-weight:800;font-size:1.7rem;background:var(--grad-pink);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;line-height:1;}
.ind-metric span{font-size:.78rem;color:var(--muted);}

/* ===== WORK ===== */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;}
.work-card{border-radius:20px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s;}
.work-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);}
.work-media{position:relative;aspect-ratio:3/2;overflow:hidden;}
.work-media svg{width:100%;height:100%;display:block;}
.work-chip{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.92);color:var(--purple);font-family:var(--d);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:6px 13px;border-radius:99px;}
.work-body{padding:1.5rem;}
.work-body h3{font-family:var(--d);font-weight:700;font-size:1.22rem;margin-bottom:.5rem;color:var(--ink);}
.work-body p{color:var(--muted);font-size:.92rem;}
.work-metric{margin-top:1rem;display:flex;gap:1.4rem;}
.work-metric b{display:block;font-family:var(--d);font-weight:800;font-size:1.45rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.work-metric span{font-size:.76rem;color:var(--muted);}

/* ===== TESTIMONIALS ===== */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;}
.testi-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:2rem;box-shadow:var(--shadow-sm);}
.testi-stars{color:#F5A524;letter-spacing:2px;margin-bottom:1rem;}
.testi-quote{font-size:1rem;color:#3a4258;line-height:1.7;margin-bottom:1.4rem;font-style:italic;}
.testi-person{display:flex;align-items:center;gap:.9rem;padding-top:1.2rem;border-top:1px solid var(--line);}
.avatar{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--d);font-weight:700;flex:none;}
.testi-person b{display:block;font-size:.95rem;color:var(--ink);}
.testi-person span{font-size:.82rem;color:var(--muted);}

/* ===== SPLIT ===== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.split.reverse .split-media{order:2;}
.split-media{border-radius:22px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;background:#0E1217;}
.split-media svg{width:100%;height:100%;display:block;}
.split h2{font-family:var(--d);font-weight:800;font-size:2.4rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:1.2rem;color:var(--ink);}
.split h2 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.split p{color:var(--muted);margin-bottom:1.3rem;}
.check-list{list-style:none;margin-bottom:1.8rem;}
.check-list li{padding:.5rem 0 .5rem 2rem;position:relative;font-weight:600;color:#2a3146;}
.check-list li::before{content:'\2713';position:absolute;left:0;color:#fff;background:var(--grad);width:22px;height:22px;border-radius:50%;font-size:.7rem;display:flex;align-items:center;justify-content:center;}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:2.4rem;}.split.reverse .split-media{order:0;}}

/* ===== FEATURE / WHY ===== */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.4rem;}
.feature-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.9rem;box-shadow:var(--shadow-sm);}
.feature-card .fic{width:50px;height:50px;border-radius:14px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin-bottom:1rem;}
.feature-card h3{font-family:var(--d);font-weight:700;font-size:1.16rem;margin-bottom:.5rem;color:var(--ink);}
.feature-card p{color:var(--muted);font-size:.92rem;}

/* ===== OFFERINGS ===== */
.offerings{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.4rem;align-items:start;}
.offer-col{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.8rem 1.7rem;box-shadow:var(--shadow-sm);}
.offer-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.3rem;}
.offer-ic{width:44px;height:44px;border-radius:13px;flex:none;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;}
.offer-head h3{font-family:var(--d);font-weight:700;font-size:1.16rem;line-height:1.1;color:var(--ink);}
.offer-sub{color:var(--muted);font-size:.82rem;margin:0 0 1.1rem;}
.offer-list{list-style:none;display:grid;gap:.05rem;}
.offer-list li{display:flex;align-items:center;gap:.6rem;padding:.42rem 0;font-size:.9rem;color:#3a4258;border-top:1px solid var(--soft2);}
.offer-list li:first-child{border-top:none;}
.offer-list li .dot{width:7px;height:7px;border-radius:50%;background:var(--grad);flex:none;}

/* ===== CTA ===== */
.cta{max-width:1100px;margin:90px auto;border-radius:26px;padding:68px 2rem;text-align:center;color:#fff;position:relative;overflow:hidden;background:var(--grad);}
.cta::after{content:'';position:absolute;inset:0;background:radial-gradient(500px 300px at 80% -20%,rgba(255,255,255,.22),transparent 60%);}
.cta>*{position:relative;z-index:1;}
.cta h2{font-family:var(--d);font-weight:800;font-size:2.5rem;margin-bottom:1rem;}
.cta p{font-size:1.08rem;opacity:.92;margin:0 auto 2rem;max-width:560px;}
.cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.cta .btn-primary{background:#fff;color:var(--purple);box-shadow:0 12px 28px rgba(0,0,0,.18);}

/* ===== PAGE HEADER ===== */
.page-header{text-align:center;padding:96px 1.6rem 80px;position:relative;overflow:hidden;
  background:radial-gradient(560px 320px at 12% 0%,rgba(229,23,154,.12),transparent 60%),
             radial-gradient(560px 340px at 100% 0%,rgba(46,159,224,.13),transparent 60%),
             linear-gradient(180deg,#fff,#FBFAFF);}
.page-header h1{font-family:var(--d);font-weight:800;font-size:3rem;letter-spacing:-.02em;margin-bottom:.8rem;color:var(--ink);}
.page-header h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
.page-header p{font-size:1.08rem;color:var(--muted);max-width:620px;margin:0 auto;}
@media(max-width:768px){.page-header h1{font-size:2.1rem;}}

/* ===== FORM ===== */
.form-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;}
@media(max-width:900px){.form-grid{grid-template-columns:1fr;gap:2.5rem;}}
.form-group{margin-bottom:1.4rem;}
label{display:block;margin-bottom:.5rem;font-weight:600;font-size:.9rem;color:var(--ink);}
input,textarea,select{width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:12px;font-family:inherit;font-size:1rem;background:#fff;color:var(--text);transition:all .2s;}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px rgba(124,58,237,.13);}
textarea{resize:vertical;min-height:130px;}
.form-submit{width:100%;padding:15px;background:var(--grad);color:#fff;border:none;border-radius:99px;font-family:var(--d);font-weight:700;font-size:1rem;cursor:pointer;transition:all .25s;box-shadow:0 12px 28px rgba(229,23,154,.3);}
.form-submit:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(229,23,154,.42);}
.form-note{margin-top:.9rem;font-size:.84rem;color:var(--muted);}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;margin-bottom:1.1rem;box-shadow:var(--shadow-sm);}
.contact-card h3{font-family:var(--d);font-weight:700;font-size:1.05rem;margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem;color:var(--purple);}
.contact-card p{color:var(--ink);font-weight:600;}
.contact-card small{color:var(--muted);font-weight:400;}
.contact-card a{color:var(--ink);text-decoration:none;}
.map-wrap{margin-top:1rem;border-radius:14px;overflow:hidden;border:1px solid var(--line);line-height:0;}
.map-wrap iframe{width:100%;height:300px;border:0;display:block;}

/* ===== BLOG ===== */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1.8rem;}
.post-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s;}
.post-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.post-thumb{position:relative;aspect-ratio:1200/630;overflow:hidden;}
.post-thumb svg{width:100%;height:100%;display:block;}
.post-badge{position:absolute;top:14px;left:14px;background:rgba(255,255,255,.92);color:var(--magenta);font-family:var(--d);font-weight:700;font-size:.74rem;padding:6px 14px;border-radius:99px;}
.post-body{padding:1.5rem;}
.post-meta{display:flex;gap:.8rem;align-items:center;margin-bottom:.7rem;font-size:.8rem;}
.post-tag{background:var(--soft2);color:var(--purple);padding:4px 11px;border-radius:7px;font-weight:700;font-family:var(--d);}
.post-meta time{color:var(--muted);}
.post-body h3{font-family:var(--d);font-weight:700;font-size:1.18rem;margin-bottom:.5rem;line-height:1.3;color:var(--ink);}
.post-body p{color:var(--muted);font-size:.92rem;margin-bottom:1rem;}
.post-body a.read{color:var(--magenta);font-family:var(--d);font-weight:600;text-decoration:none;font-size:.9rem;}

/* ===== FOOTER ===== */
footer{background:#11131C;color:rgba(255,255,255,.72);padding:4rem 1.6rem 2rem;}
.footer-content{max-width:1240px;margin:0 auto 3rem;display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:2.5rem;}
@media(max-width:900px){.footer-content{grid-template-columns:1fr 1fr;gap:2rem;}}
@media(max-width:520px){.footer-content{grid-template-columns:1fr;}}
footer .logo-text b{color:#fff;}
.footer-brand p{font-size:.92rem;line-height:1.8;margin-top:1rem;}
.footer-section h4{font-family:var(--d);font-weight:700;color:#fff;font-size:1.05rem;margin-bottom:1.2rem;}
.footer-section ul{list-style:none;}
.footer-section a{color:rgba(255,255,255,.66);text-decoration:none;display:block;margin-bottom:.7rem;font-size:.92rem;transition:color .2s;}
.footer-section a:hover{color:var(--sky);}
.footer-section p{margin-bottom:.7rem;font-size:.92rem;display:flex;align-items:flex-start;gap:.5rem;}
.footer-section p a{display:inline;color:var(--sky);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.8rem;text-align:center;font-size:.86rem;color:rgba(255,255,255,.5);max-width:1240px;margin:0 auto;}

/* ===== ICONS / REVEAL / FAB ===== */
.ic{width:1em;height:1em;display:inline-block;vertical-align:-.15em;flex:none;stroke-width:1.9;}
h3 .ic,p .ic,.footer-section p .ic{margin-right:.5em;}
.service-icon .ic,.feature-card .fic .ic,.offer-ic .ic,.ind-ic .ic,.stat-ic .ic{margin:0;width:1em;height:1em;}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.4,0,.2,1);}
.reveal.visible{opacity:1;transform:none;}
.fab-stack{position:fixed;right:20px;bottom:20px;z-index:1200;display:flex;flex-direction:column;gap:12px;}
.wa-fab{width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(37,211,102,.45);transition:transform .25s;animation:wa-pulse 2.6s infinite;}
.wa-fab:hover{transform:scale(1.08);} .wa-fab svg{width:30px;height:30px;fill:#fff;}
.top-fab{width:48px;height:48px;border-radius:50%;background:var(--grad);color:#fff;border:none;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(124,58,237,.4);transition:transform .25s;}
.top-fab.show{display:flex;} .top-fab:hover{transform:translateY(-3px);}
@keyframes wa-pulse{0%{box-shadow:0 10px 30px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.45);}70%{box-shadow:0 10px 30px rgba(37,211,102,.45),0 0 0 16px rgba(37,211,102,0);}100%{box-shadow:0 10px 30px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,0);}}
@media (prefers-reduced-motion:reduce){.wa-fab{animation:none;}}

/* ===================================================================
   v3 — floating motion + platforms marquee
   =================================================================== */
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}
@keyframes floaty-sm{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}

/* hero floating metric cards */
.hero-cards .metric-card{transform:none;animation:floaty 5.5s ease-in-out infinite;}
.hero-cards .metric-card:nth-child(1){animation-delay:0s;}
.hero-cards .metric-card:nth-child(2){animation-delay:.7s;}
.hero-cards .metric-card:nth-child(3){animation-delay:1.6s;}
.hero-cards .metric-card:nth-child(4){animation-delay:2.3s;}

/* floating decorative orbs in hero */
.hero{position:relative;}
.hero-inner{position:relative;z-index:2;}
.hero::before,.hero::after{content:'';position:absolute;border-radius:50%;z-index:0;animation:floaty 7s ease-in-out infinite;pointer-events:none;}
.hero::before{width:130px;height:130px;background:var(--grad);opacity:.10;top:16%;right:10%;}
.hero::after{width:90px;height:90px;background:linear-gradient(135deg,#2E9FE0,#22D3EE);opacity:.12;bottom:16%;left:6%;animation-delay:1.6s;}

/* floating accent badge that some cards can carry */
.float-badge{position:absolute;animation:floaty-sm 4.5s ease-in-out infinite;}

/* subtle float on stat-card icons */
.stat-ic{animation:floaty-sm 4s ease-in-out infinite;}

/* ===== PLATFORMS MARQUEE ===== */
.marquee-wrap{padding:46px 0 0;text-align:center;}
.marquee-label{font-family:var(--d);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem;}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.marquee-track{display:flex;gap:3rem;width:max-content;animation:marq 30s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-item{font-family:var(--d);font-weight:700;font-size:1.1rem;color:#aab1c4;display:inline-flex;align-items:center;gap:.7rem;white-space:nowrap;}
.marquee-item .mdot{width:7px;height:7px;border-radius:50%;background:var(--grad);flex:none;}
@keyframes marq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

@media (prefers-reduced-motion:reduce){
  .hero-cards .metric-card,.hero::before,.hero::after,.stat-ic,.float-badge{animation:none;}
  .marquee-track{animation:none;}
}

/* ===================================================================
   v4 — richer floating hero cards, partner logos, pastel service icons
   =================================================================== */
.hero-cards{grid-template-columns:1fr 1fr;gap:.85rem;}
.hero-cards .metric-card{padding:.95rem 1.05rem;border-radius:16px;}
.hero-cards .metric-card:nth-child(even){margin-top:26px;}
.m-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.m-value{font-size:1.5rem;}
.m-mini{width:52px;height:30px;flex:none;}
.m-ic{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex:none;}
.m-stars{color:#F5A524;letter-spacing:1px;font-size:.9rem;margin-top:.2rem;}
@media(max-width:480px){.hero-cards .metric-card{padding:.8rem .85rem;}.m-value{font-size:1.25rem;}}

/* partner logos in marquee */
.marquee-item img,.marquee-item .plogo{height:30px;width:auto;display:block;flex:none;}
.marquee-item .plogo{height:28px;width:28px;}
.marquee-item{color:#5d6781;font-weight:600;font-size:1rem;}

/* ===================================================================
   v5 — hero stage: centerpiece device with cards floating around
   =================================================================== */
.hero-stage{position:relative;}
.hero-device{display:flex;justify-content:center;}
.hero-device svg{width:100%;max-width:360px;height:auto;filter:drop-shadow(0 22px 44px rgba(124,58,237,.14));}
.hero-stage .metric-card{animation:floaty 5.5s ease-in-out infinite;}

/* mobile / tablet: simple stacked grid (device on top, cards in 2-col grid) */
@media(max-width:980px){
  .hero-stage{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;align-items:start;}
  .hero-device{grid-column:1/-1;margin-bottom:.4rem;}
  .hero-stage .metric-card{position:static!important;width:auto!important;}
  .hero-stage .metric-card.p2,.hero-stage .metric-card.p5{margin-top:24px;}
}

/* desktop: absolute float cluster around the centre device */
@media(min-width:981px){
  .hero-stage{min-height:580px;}
  .hero-device{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:330px;z-index:1;}
  .hero-stage .metric-card{position:absolute;width:198px;z-index:2;}
  .hero-stage .metric-card.p1{top:2%;left:-4%;animation-delay:0s;}
  .hero-stage .metric-card.p2{top:38%;left:-9%;animation-delay:.6s;}
  .hero-stage .metric-card.p3{bottom:2%;left:-1%;animation-delay:1.2s;}
  .hero-stage .metric-card.p4{top:0;right:-5%;animation-delay:.9s;}
  .hero-stage .metric-card.p5{top:40%;right:-10%;animation-delay:1.8s;}
  .hero-stage .metric-card.p6{bottom:4%;right:-2%;animation-delay:2.4s;}
}
@media(min-width:981px) and (max-width:1140px){
  .hero-stage .metric-card{width:178px;}
  .hero-stage .metric-card.p2{left:-4%;}.hero-stage .metric-card.p5{right:-5%;}
}
@media (prefers-reduced-motion:reduce){.hero-stage .metric-card{animation:none;}}

/* v6 — optional real hero photo (drop assets/hero.png to use it) */
.hero-photo{width:100%;max-width:440px;height:auto;border-radius:20px;display:block;}
@media(min-width:981px){.hero-device .hero-photo{position:static;}}

/* v7 — about/section photo with rounded frame */
.media-photo{width:100%;height:auto;border-radius:20px;display:block;box-shadow:0 18px 40px rgba(23,27,39,.12);}

/* --- v8: real photo covers for work & blog cards (object-fit cover over SVG fallback) --- */
.work-media .card-photo,.post-thumb .card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0;box-shadow:none;z-index:2;}
.work-media .work-chip,.post-thumb .post-badge{z-index:3;}
