@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#08111f;--muted:#68758a;--line:#dfe6ef;--blue:#087cff;--cyan:#29b7ff;--soft:#f4f7fb;--dark:#071321}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;background:#fff}.topline{height:3px;background:linear-gradient(90deg,#087cff,#29b7ff,#087cff)}a{text-decoration:none;color:inherit}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;position:sticky;top:0;background:#ffffffed;backdrop-filter:blur(18px);z-index:20;border-bottom:1px solid #eef2f7}.brand{display:flex;align-items:center;gap:10px;font-family:Manrope;font-weight:800;line-height:.95;font-size:14px}.brand img{width:128px;height:50px;object-fit:contain}.brand span{display:none}.brand small{font-size:8px;letter-spacing:2px;color:#1784ff}.nav nav{display:flex;gap:30px;font-size:14px;color:#536177}.nav nav a:hover{color:var(--blue)}.navcta{background:var(--ink);color:#fff;padding:13px 18px;border-radius:12px;font-weight:700;font-size:13px}.navcta span{color:#55c3ff}.menubtn{display:none;border:0;background:none;font-size:24px}.hero{min-height:680px;padding:90px 7% 70px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:30px;background:radial-gradient(circle at 80% 20%,#e9f5ff 0,transparent 34%),linear-gradient(180deg,#fff,#f8fbff)}.eyebrow{font-size:11px;letter-spacing:2.2px;color:#6c7a90;font-weight:800}.eyebrow i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:7px}.hero h1{font:800 clamp(48px,6vw,78px)/.98 Manrope;margin:20px 0 24px;letter-spacing:-4px;max-width:760px}.hero h1 em,.section h2 em,.contact h2 em{font-style:normal;color:var(--blue)}.hero p{font-size:18px;line-height:1.7;color:#627087;max-width:630px}.actions{display:flex;gap:12px;margin-top:30px}.btn{display:inline-flex;align-items:center;gap:18px;padding:15px 21px;border-radius:12px;font-weight:800;font-size:14px}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 14px 30px #087cff2e}.btn.ghost{border:1px solid var(--line);background:#fff}.proof{display:flex;gap:45px;margin-top:54px}.proof strong{display:block;font:800 25px Manrope}.proof span{color:#78869a;font-size:12px}.hero-art{height:510px;position:relative;display:grid;place-items:center}.glow{position:absolute;width:390px;height:390px;border-radius:50%;background:#0d8bff20;filter:blur(25px)}.browser{width:min(570px,95%);border-radius:20px;background:#091726;box-shadow:0 40px 90px #07132138;transform:rotate(2deg);overflow:hidden;position:relative;z-index:2}.browserbar{height:36px;background:#14283d;display:flex;align-items:center;gap:7px;padding:0 13px;color:#8fa6be;font-size:10px}.browserbar span{width:7px;height:7px;border-radius:50%;background:#6e8195}.browserbar b{margin:auto;font-weight:500}.screen{margin:14px;background:linear-gradient(135deg,#0b1a2a,#103b63);height:320px;border-radius:12px;padding:24px;color:#fff}.mini-nav{font-weight:800;font-size:11px}.mini-nav small{color:#49baff;font-weight:500}.mini-nav i{float:right;width:30px;height:4px;border-radius:10px;background:#52718e;margin:3px 5px}.mini-hero{padding:60px 15px}.mini-hero small{color:#4dbdff;letter-spacing:2px}.mini-hero h3{font:700 34px/1.05 Manrope;margin:10px 0}.mini-hero strong{color:#55c6ff}.mini-btn{width:100px;height:30px;border-radius:7px;background:#1687ff}.mini-cards{display:flex;gap:10px}.mini-cards i{height:45px;flex:1;border-radius:8px;background:#ffffff18}.floatcard{position:absolute;right:2%;bottom:8%;background:#fff;padding:18px;border-radius:16px;box-shadow:0 20px 50px #07132125;z-index:3;width:145px}.floatcard b{font:800 25px Manrope}.floatcard span{display:block;color:#7c8898;font-size:11px}.bars{display:flex;align-items:end;height:35px;gap:4px;margin-top:8px}.bars i{display:block;width:15px;background:#1687ff;border-radius:3px}.bars i:nth-child(1){height:13px}.bars i:nth-child(2){height:22px}.bars i:nth-child(3){height:17px}.bars i:nth-child(4){height:28px}.bars i:nth-child(5){height:34px}.ticker{padding:22px 7%;display:flex;justify-content:space-between;align-items:center;border-block:1px solid #edf1f6;color:#7b8798;font:700 11px Manrope;letter-spacing:2px}.ticker i{color:#1687ff}.section{padding:120px 7%}.section.dark{background:var(--dark);color:#fff}.section.soft{background:var(--soft)}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:55px}.section h2,.centerhead h2,.contact h2{font:800 clamp(36px,4.3vw,58px)/1.02 Manrope;letter-spacing:-2.5px;margin:15px 0 0}.sectionhead>p{max-width:430px;color:#7a879a;line-height:1.7;margin:0}.dark .eyebrow,.dark .sectionhead>p{color:#8192a8}.servicegrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dfe6ef}.service{padding:34px 25px 20px 0;border-right:1px solid #dfe6ef;min-height:290px;position:relative}.service:not(:first-child){padding-left:25px}.service:last-child{border-right:0}.serviceicon{width:48px;height:48px;border-radius:14px;background:#edf6ff;color:#087cff;display:grid;place-items:center;font-size:23px;margin-bottom:60px}.service>span{position:absolute;right:22px;top:37px;color:#aab5c3;font-size:11px}.service h3{font:700 21px Manrope;margin:0 0 10px}.service p{color:#7b8798;line-height:1.6;font-size:14px}.service a{position:absolute;bottom:5px;font-weight:800;font-size:13px;color:#087cff}.service a b{margin-left:10px}.textlink{font-weight:800;color:#55c6ff}.workgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.work{background:#0c1c2f;border:1px solid #1c344d;border-radius:18px;overflow:hidden}.workimg,.workplaceholder{height:300px;background-size:cover;background-position:center;position:relative}.workimg:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,#0008)}.workimg span{position:absolute;z-index:1;left:18px;top:18px;background:#fff;color:#071321;padding:7px 10px;border-radius:20px;font-size:10px;font-weight:800}.workplaceholder{display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#1465a8,#0a1828)}.workplaceholder span{position:absolute;top:20px;left:20px;color:#6fa6d3;font-size:10px;letter-spacing:2px}.workplaceholder strong{font:800 52px Manrope;color:#ffffff16}.workmeta{padding:20px}.workmeta h3{font:700 20px Manrope;margin:0 0 7px}.workmeta p{color:#8192a8;font-size:13px;min-height:35px}.workmeta b{font-size:12px;color:#55c6ff}.centerhead{text-align:center;max-width:700px;margin:0 auto 60px}.centerhead p{color:#7a879a}.pricing{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}.pricecard{border:1px solid var(--line);border-radius:18px;padding:30px;background:#fff;position:relative}.pricecard.featured{border:2px solid var(--blue);box-shadow:0 25px 60px #087cff16;transform:translateY(-12px)}.pricecard label{position:absolute;right:15px;top:15px;background:#e8f4ff;color:#087cff;padding:6px 9px;border-radius:20px;font-size:9px;font-weight:900}.pricecard h3{font:700 20px Manrope}.pricecard>p{color:#7b8798;font-size:13px;min-height:40px}.pricecard>strong{display:block;font:800 27px Manrope;margin:24px 0}.pricecard ul{list-style:none;padding:0;margin:0 0 28px;color:#536177;font-size:13px;line-height:2.15}.pricecard a{display:block;text-align:center;padding:13px;border-radius:10px;background:#071321;color:#fff;font-weight:800;font-size:12px}.pricecard.featured a{background:var(--blue)}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.process>div{padding:25px;border-top:1px solid #dce3ec;border-right:1px solid #dce3ec}.process>div:first-child{border-left:1px solid #dce3ec}.process span{color:#087cff;font-weight:800;font-size:12px}.process h3{font:700 20px Manrope}.process p{color:#7b8798;font-size:13px;line-height:1.6}.contact{padding:110px 7%;display:grid;grid-template-columns:1fr 1fr;gap:80px;background:#071321;color:#fff}.contact h2{font-size:65px}.contact p{color:#90a1b6;line-height:1.7;max-width:500px}.contact form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact input,.contact select,.contact textarea{width:100%;border:1px solid #29415c;background:#0c1d30;color:#fff;padding:15px;border-radius:10px;font:inherit}.contact textarea{grid-column:1/-1;min-height:150px;resize:vertical}.contact .btn{border:0;cursor:pointer;justify-content:center;grid-column:1/-1}.contact input::placeholder,.contact textarea::placeholder{color:#71849b}footer{padding:55px 7% 30px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px;position:relative}footer img{width:150px;height:55px;object-fit:contain}footer p,footer a{display:block;color:#7b8798;font-size:13px;margin:10px 0}footer b{font-size:12px}.copy{grid-column:1/-1;border-top:1px solid #e7ecf2;padding-top:25px;color:#9ba7b6}@media(max-width:950px){.nav nav,.navcta{display:none}.menubtn{display:block}.hero{grid-template-columns:1fr;padding-top:65px}.hero-art{height:430px}.servicegrid,.pricing{grid-template-columns:1fr 1fr}.workgrid{grid-template-columns:1fr}.process{grid-template-columns:1fr 1fr}.contact{grid-template-columns:1fr}.contact form{grid-template-columns:1fr}.contact textarea,.contact .btn{grid-column:auto}.sectionhead{display:block}.sectionhead>p{margin-top:20px}.ticker{overflow:hidden;gap:30px;white-space:nowrap}.brand img{width:145px}}@media(max-width:600px){.nav{padding:0 20px}.hero{padding:55px 22px}.hero h1{font-size:44px;letter-spacing:-2px}.hero p{font-size:16px}.proof{gap:20px}.hero-art{height:330px}.browser{width:100%}.screen{height:220px}.mini-hero{padding:35px 8px}.mini-hero h3{font-size:23px}.section{padding:80px 22px}.servicegrid,.pricing,.process{grid-template-columns:1fr}.service,.service:not(:first-child){border-right:0;border-bottom:1px solid #dfe6ef;padding:25px 0;min-height:220px}.pricecard.featured{transform:none}.contact{padding:80px 22px}.contact h2{font-size:48px}footer{padding:45px 22px;grid-template-columns:1fr 1fr}.footerbrand{grid-column:1/-1}.copy{grid-column:1/-1}}

/* Testimonials */
.testimonials-section{background:#f5f8fc}.testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.testimonial-card{background:#fff;border:1px solid #dfe6ee;border-radius:18px;padding:28px;min-height:260px;display:flex;flex-direction:column;box-shadow:0 14px 35px rgba(7,23,45,.05);transition:transform .25s ease,box-shadow .25s ease}.testimonial-card:hover{transform:translateY(-5px);box-shadow:0 24px 55px rgba(7,23,45,.09)}.testimonial-top{display:flex;justify-content:space-between;align-items:flex-start}.quote-mark{font:800 54px/0.7 Manrope;color:#087cff}.stars{font-size:11px;letter-spacing:3px;color:#f3aa24}.testimonial-card p{font:600 18px/1.55 Manrope;color:#18263a;letter-spacing:-.025em;margin:25px 0 28px;flex:1}.testimonial-person{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid #edf0f4}.testimonial-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#eaf4ff;color:#087cff;font-weight:800}.testimonial-person div{display:flex;flex-direction:column;gap:3px}.testimonial-person strong{font-size:12px}.testimonial-person small{font-size:10px;color:#7c8898}.testimonial-empty{grid-column:1/-1;padding:40px;border:1px dashed #ccd7e4;border-radius:16px;background:#fff;color:#718096;text-align:center}@media(max-width:900px){.testimonial-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.testimonial-grid{grid-template-columns:1fr}.testimonial-card{min-height:230px}}

/* Google-style review marquee */
.testimonials-section{overflow:hidden;background:linear-gradient(180deg,#f7f9fc 0%,#eef4fa 100%)}
.review-marquee{display:grid;gap:16px;margin-top:35px;width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.review-track{display:flex;gap:14px;width:max-content;will-change:transform;animation:reviewScroll 42s linear infinite}
.track-two{animation-name:reviewScrollReverse;animation-duration:48s}
.review-track:hover{animation-play-state:paused}
.google-review{width:330px;min-height:190px;background:#fff;border:1px solid #e1e6ed;border-radius:12px;padding:18px;box-shadow:0 5px 18px rgba(32,45,62,.08);flex:0 0 auto}
.gr-head{display:flex;align-items:center;gap:10px}.gr-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#e9e3fb;color:#6548b5;font-weight:800;font-size:14px;flex:0 0 38px}.gr-avatar img{width:100%;height:100%;object-fit:cover}.gr-name{display:flex;flex-direction:column;min-width:0;flex:1}.gr-name strong{font-size:13px;color:#202124;font-weight:700}.gr-name small{font-size:10px;color:#70757a;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gmark{font:800 20px Arial;background:linear-gradient(135deg,#4285f4 25%,#34a853 40%,#fbbc05 62%,#ea4335 80%);-webkit-background-clip:text;background-clip:text;color:transparent}.gr-meta{display:flex;align-items:center;gap:6px;margin-top:12px}.gr-stars{color:#f9ab00;font-size:13px;letter-spacing:1px}.gr-verified{font-size:9px;color:#7b8085}.google-review p{font:400 12px/1.65 Arial,sans-serif;color:#3c4043;margin:12px 0 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.reviewphoto-preview{width:88px;height:88px;border-radius:50%;overflow:hidden;border:1px solid #dce4ed;background:#f5f8fc;display:grid;place-items:center;color:#9aa7b7;font-size:10px}.reviewphoto-preview img{width:100%;height:100%;object-fit:cover}.reviewavatar{overflow:hidden}.reviewavatar img{width:100%;height:100%;object-fit:cover}.reviewavatar span{display:grid;place-items:center;width:100%;height:100%}.reviewline{display:flex;align-items:center;gap:7px}.reviewstars{color:#f9ab00;font-size:11px;letter-spacing:1px;margin:4px 0}.reviewstars span{color:#8b97a7;font-size:9px;letter-spacing:0}.uploadhint{font-size:10px;color:#8b98a8;font-weight:500;margin-left:5px}.testimonial-admin-empty{padding:30px;color:#7c8898;text-align:center;border:1px dashed #d6dee8;border-radius:12px}
@keyframes reviewScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}
@keyframes reviewScrollReverse{from{transform:translateX(calc(-50% - 7px))}to{transform:translateX(0)}}
@media(max-width:600px){.google-review{width:290px;min-height:175px}.review-marquee{margin-top:25px}.review-track{animation-duration:34s}.track-two{animation-duration:38s}}
@media(prefers-reduced-motion:reduce){.review-track{animation:none}}
.clients-section{position:relative;padding:96px 6vw;background:#fff;overflow:hidden}.clients-inner{max-width:1240px;margin:auto;text-align:center}.clients-inner h2{font:800 clamp(36px,5vw,64px)/1 Manrope;letter-spacing:-.055em;margin:10px 0 12px;color:#071321}.clients-inner h2 em{font-style:normal;color:#087cff}.clients-inner>p{max-width:760px;margin:0 auto;color:#718096;line-height:1.7}.client-marquee{margin-top:52px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.client-track{display:flex;align-items:center;gap:26px;width:max-content;animation:clientScroll 32s linear infinite}.client-logo{width:160px;height:88px;flex:0 0 160px;border:1px solid #eef1f5;border-radius:18px;background:#fff;display:grid;place-items:center;box-shadow:0 12px 35px rgba(7,19,33,.05)}.client-logo img{max-width:82%;max-height:66%;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .35s ease,opacity .35s ease,transform .35s ease}.client-logo:hover img{filter:grayscale(0);opacity:1;transform:scale(1.06)}.client-marquee:hover .client-track{animation-play-state:paused}.client-empty{color:#98a5b5;padding:30px}@keyframes clientScroll{to{transform:translateX(-50%)}}@media(max-width:700px){.clients-section{padding:70px 20px}.client-logo{width:125px;height:72px;flex-basis:125px}.client-track{gap:14px;animation-duration:24s}}

/* Mobile & tablet: horizontal swipe sections (desktop remains unchanged) */
@media (min-width: 601px) and (max-width: 1100px), (max-width: 600px) {
  /* Keep the page itself locked to the viewport; only content rails can swipe. */
  html, body { max-width:100%; overflow-x:hidden; }

  .section { overflow:hidden; }

  .servicegrid,
  .workgrid,
  .pricing,
  .process {
    display:flex !important;
    flex-wrap:nowrap !important;
    grid-template-columns:none !important;
    overflow-x:auto;
    overflow-y:hidden;
    width:100%;
    padding:4px 2px 18px;
    gap:16px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .servicegrid::-webkit-scrollbar,
  .workgrid::-webkit-scrollbar,
  .pricing::-webkit-scrollbar,
  .process::-webkit-scrollbar { display:none; }

  .servicegrid > .service,
  .workgrid > .work,
  .pricing > .pricecard,
  .process > div {
    flex:0 0 82vw;
    max-width:82vw;
    scroll-snap-align:start;
  }

  .servicegrid > .service { min-height:300px; }
  .workgrid > .work { width:82vw; }
  .pricing > .pricecard { width:82vw; }
  .process > div { min-height:210px; }

  /* Keep card borders/layout polished while swiping. */
  .servicegrid > .service { border-right:1px solid #dfe6ef; border-bottom:0; padding:28px; border-radius:18px; background:#fff; }
  .process > div { border:1px solid #dce3ec !important; border-radius:18px; background:#fff; }
  .pricecard.featured { transform:none; }

  /* Small swipe affordance */
  .servicegrid::after,
  .workgrid::after,
  .pricing::after,
  .process::after { content:"Geser  ›"; position:sticky; right:0; flex:0 0 auto; align-self:center; color:#087cff; font-size:11px; font-weight:800; background:rgba(255,255,255,.92); padding:8px 10px; border-radius:999px; box-shadow:0 5px 18px rgba(7,19,33,.08); }

  .dark .workgrid::after { background:rgba(7,19,33,.92); color:#55c6ff; }
}

@media (min-width: 601px) and (max-width: 1100px) {
  .servicegrid > .service,
  .workgrid > .work,
  .pricing > .pricecard,
  .process > div { flex-basis:56vw; max-width:56vw; }
}

@media (max-width: 600px) {
  .servicegrid > .service,
  .workgrid > .work,
  .pricing > .pricecard,
  .process > div { flex-basis:82vw; max-width:82vw; }
  .servicegrid > .service { min-height:280px; }
  .process > div { min-height:205px; }
}
