:root{
    --navy:#14143F; --navy-2:#1E1E55; --ink:#1C1C46; --body:#50506E;
    --coral:#FF5A6E; --coral-dark:#EA4A60; --coral-soft:#FFEEF0;
    --ground:#FFFFFF; --tint:#F6F6FA; --tint-2:#EFEFF6; --line:#E6E6F0;
    --odoo:#714B67; --odoo-soft:#F3EDF2;
    --good:#1F9D6B;
    --disp:"Bricolage Grotesque",Georgia,serif;
    --sans:"Instrument Sans",-apple-system,"Segoe UI",Arial,sans-serif;
    --r:20px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--tint);color:var(--ink);font:16px/1.6 var(--sans)}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:6px}
  .wrap{max-width:1160px;margin:0 auto;padding:0 24px}
  h1,h2,h3{font-family:var(--disp);font-weight:600;line-height:1.12;text-wrap:balance;color:var(--ink);letter-spacing:-.015em}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--coral-dark);background:var(--coral-soft);border:1px solid #FFD9DE;border-radius:999px;padding:7px 16px}
  .sub{color:var(--body);max-width:58ch}
  .btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:14px 28px;font:600 15.5px var(--sans);cursor:pointer;border:1px solid transparent;transition:transform .15s ease, background .15s ease;white-space:nowrap}
  .btn:hover{transform:translateY(-1px)}
  .btn-coral{background:var(--coral);color:#fff;box-shadow:0 10px 26px rgba(255,90,110,.32)}
  .btn-coral:hover{background:var(--coral-dark);box-shadow:0 14px 32px rgba(255,90,110,.4)}
  .btn-ghost{background:transparent;color:var(--ink);border-color:#C9C9DC}
  .btn-ghost:hover{background:#fff}
  section{padding:88px 0}
  .sec-head{max-width:660px;margin:0 auto 52px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}
  .sec-head h2{font-size:clamp(28px,4vw,42px)}
  .num{font-variant-numeric:tabular-nums}

  /* ---------- top bar + nav ---------- */
  .topnav-zone{background:var(--navy);padding:14px 0 0;position:sticky;top:-46px;z-index:100;box-shadow:0 10px 30px rgba(10,10,40,.25)}
  .notice{display:flex;justify-content:center;gap:10px;color:#B9B9E0;font-size:13px;padding-bottom:12px}
  .navbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0 18px;border-top:1px solid rgba(255,255,255,.09)}
  .navbar img{height:30px;width:auto}
  .navlinks{display:flex;gap:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:5px;position:relative;z-index:60}
  .navlinks>a,.navitem>a{color:#DCDCF2;font-size:14px;font-weight:500;padding:8px 15px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
  .navlinks>a:hover,.navitem>a:hover{background:rgba(255,255,255,.12);color:#fff}
  .navitem{position:relative}
  .navitem>a::after{content:"\25BE";font-size:10px;opacity:.7}
  .sub{position:absolute;top:100%;left:0;padding-top:12px;display:none;z-index:70}
  .navitem:hover .sub,.navitem:focus-within .sub{display:block}
  .sub-in{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 48px rgba(20,20,63,.22);padding:8px;min-width:238px;display:flex;flex-direction:column;gap:2px}
  .sub-in a{color:var(--ink);font-size:14px;font-weight:500;padding:9px 14px;border-radius:9px;white-space:nowrap}
  .sub-in a:hover{background:var(--coral-soft);color:var(--coral-dark)}
  .nav-cta{display:flex;align-items:center;gap:14px}
  .nav-phone{color:#B9B9E0;font-size:14px;white-space:nowrap}
  .nav-phone b{color:#fff;font-weight:600}

  /* ---------- hero ---------- */
  .hero{background:var(--navy);border-radius:0 0 28px 28px;padding:36px 0 64px;overflow:hidden;position:relative}
  .hero .glow{position:absolute;inset:auto -10% -55% -10%;height:80%;background:radial-gradient(55% 65% at 50% 100%, rgba(255,90,110,.18), transparent 70%);pointer-events:none}
  .hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
  .hero .eyebrow{background:rgba(255,90,110,.12);border-color:rgba(255,90,110,.35);color:#FF8B9A}
  .hero h1{font-size:clamp(32px,5vw,56px);color:#fff;max-width:22ch;min-height:2.3em}
  .tcaret{display:none}
  #twEm{position:relative;display:inline-block}
  #twEm .tw-ghost{visibility:hidden;white-space:pre}
  #twEm .tw-live{position:absolute;left:0;top:0;white-space:pre}
  #twEm .tw-live::after{content:"";display:inline-block;width:3px;height:.78em;background:var(--coral);margin-left:6px;vertical-align:-.05em;border-radius:2px;animation:tblink 1.2s ease-in-out infinite}
  @keyframes tblink{0%,45%{opacity:1}55%,95%{opacity:0}100%{opacity:1}}
  @media (prefers-reduced-motion:reduce){ #twEm .tw-live::after{animation:none} }
  @media (prefers-reduced-motion:reduce){ .tcaret{animation:none} }
  .hero h1 em{font-style:normal;color:var(--coral)}
  .hero .sub{color:#B9B9E0;font-size:17.5px}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
  .hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.3)}
  .hero .btn-ghost:hover{background:rgba(255,255,255,.1)}
  .hero-note{color:#8A8AB8;font-size:13px}

  /* ---------- real Odoo screen viewer ---------- */
  .shot{position:relative;margin:32px auto 0;max-width:1060px;border-radius:16px;background:#fff;box-shadow:0 30px 80px rgba(10,10,40,.45);border:1px solid var(--line);overflow:visible;text-align:left}
  .odoo-top{display:flex;align-items:center;gap:10px;background:var(--odoo);color:#EBDDE7;padding:9px 16px;font-size:13px;flex-wrap:wrap;border-radius:13px 13px 0 0}
  #appname{color:#fff;font-weight:500;opacity:.9}
  .odoo-top .grid9{width:16px;height:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-right:6px}
  .odoo-top .grid9 i{background:#D9C6D3;border-radius:1px}
  .odoo-top .app{color:#fff;font-weight:600;margin-right:10px}
  .odoo-top button.m{background:none;border:0;color:#EBDDE7;font:inherit;padding:5px 11px;border-radius:6px;cursor:pointer}
  .odoo-top button.m:hover{background:rgba(255,255,255,.1)}
  .odoo-top button.m.on{background:rgba(255,255,255,.18);color:#fff;font-weight:600}
  .odoo-top .right{margin-left:auto;display:flex;align-items:center;gap:10px}
  .odoo-top .avatar{width:22px;height:22px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700}
  .slide{display:none}
  .slide.on{display:flex;flex-direction:column;animation:slideIn .7s cubic-bezier(.22,.61,.36,1)}
  @keyframes slideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .scr{order:-1;position:relative;overflow:hidden;aspect-ratio:1440/680;background:#fff}
  .scr img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left top}
  .pitchp{display:flex;align-items:center;gap:16px;padding:13px 20px;border-top:1px solid var(--line);background:#fff;flex-wrap:wrap}
  .appchip{background:var(--odoo-soft);color:var(--odoo);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 11px;flex:none}
  .pitchp h3{font-size:16.5px;white-space:nowrap}
  .pitchp ul{list-style:none;display:flex;gap:16px;flex-wrap:wrap;color:var(--body);font-size:12.5px}
  .pitchp li::before{content:"\2713\00a0";color:var(--good);font-weight:700}
  .slide-cta{display:flex;align-items:center;gap:12px;margin-left:auto;flex:none}
  .slide-cta .btn{padding:9px 18px;font-size:13.5px}
  .slide-cta span{display:none}
  .cnav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:var(--navy);border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 34px rgba(10,10,40,.4);color:#fff;cursor:pointer;display:grid;place-items:center;z-index:3;transition:background .18s ease,transform .18s ease}
  .cnav svg{width:20px;height:20px;display:block}
  .cnav:hover{background:var(--coral);transform:translateY(-50%) scale(1.06)}
  .cnav:active{transform:translateY(-50%) scale(.97)}
  .cnav.prev{left:-26px}.cnav.next{right:-26px}
  .cdots{display:flex;gap:7px;justify-content:center;align-items:center;padding:13px 0;background:#fff;border-top:1px solid var(--line);border-radius:0 0 16px 16px}
  .cdots i{width:8px;height:8px;border-radius:99px;background:#D9D9E6;cursor:pointer;transition:width .2s}
  .cdots i.on{background:var(--coral);width:24px}
  @media (prefers-reduced-motion:reduce){ .slide.on{animation:none} }
  @media (max-width:860px){
    .scr{aspect-ratio:16/10}
    .pitchp ul{display:none}
    .cnav.prev{left:10px}.cnav.next{right:10px}
  }

  /* ---------- stats ---------- */
  .stats{padding:88px 0 72px}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .stat,.ind,.case,.testi,.host:not(.feat),.card{transition:border-color .18s ease, box-shadow .18s ease}
  .stat:hover,.ind:hover,.case:not(.cta-card):hover,.testi:hover,.host:not(.feat):hover,.card:hover{border-color:#CFCFE2;box-shadow:0 12px 32px rgba(20,20,63,.07)}
  .stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 26px}
  .stat .n{font:600 40px/1.1 var(--disp);color:var(--ink)}
  .stat .n em{font-style:normal;color:var(--coral)}
  .stat p{color:var(--body);font-size:14.5px;margin-top:6px}

  /* ---------- features bento ---------- */
  .bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;display:flex;flex-direction:column;gap:12px}
  .card h3{font-size:20px}
  .card p{color:var(--body);font-size:15px}
  .card .art{margin-top:auto;border:1px solid var(--line);border-radius:14px;background:var(--tint);padding:14px;font-size:12.5px}
  .card .art.crop{padding:0;overflow:hidden;height:200px;position:relative}
  .card .art.crop img{width:100%;height:100%;object-fit:cover;object-position:left top}
  .card .art.crop .zoom{width:160%;max-width:none}
  .chip-row{display:flex;flex-wrap:wrap;gap:8px}
  .chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500;color:var(--body)}
  .speed{display:flex;flex-direction:column;gap:8px}
  .speed .row{display:flex;justify-content:space-between;font-weight:500;color:var(--body)}
  .speed .track{height:8px;border-radius:99px;background:var(--tint-2);overflow:hidden}
  .speed .fill{height:100%;border-radius:99px;background:var(--coral)}

  /* ---------- problems we fix ---------- */
  .fix-band{background:var(--navy);border-radius:28px;padding:64px 48px;position:relative;overflow:hidden}
  .fix-band::before{content:"";position:absolute;inset:auto -15% -60% -15%;height:90%;background:radial-gradient(50% 60% at 50% 100%, rgba(255,90,110,.16), transparent 70%);pointer-events:none}
  .fix-band>*{position:relative}
  .fix-band h2{color:#fff}
  .fix-band .sub{color:#B9B9E0}
  .fix-band .eyebrow{background:rgba(255,90,110,.12);border-color:rgba(255,90,110,.35);color:#FF8B9A}
  .fix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .fixc{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);border-radius:18px;padding:22px 24px;display:flex;flex-direction:column;gap:12px;transition:border-color .18s ease,background .18s ease,transform .18s ease}
  .fixc:hover{border-color:rgba(255,90,110,.5);background:rgba(255,255,255,.08);transform:translateY(-3px)}
  .fixc .fh{display:flex;align-items:center;gap:12px;font-weight:600;font-size:16px;color:#fff}
  .fixc .fico{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;flex:none;color:#FF8B9A;transition:background .18s ease,color .18s ease,border-color .18s ease}
  .fixc .fico svg{width:21px;height:21px;display:block}
  .fixc:hover .fico{background:var(--coral);border-color:var(--coral);color:#fff}
  .fixc ul{list-style:none;display:flex;flex-direction:column}
  .fixc li{border-top:1px solid rgba(255,255,255,.08)}
  .fixc li:first-child{border-top:0}
  .fixc a{color:#C7C7E2;font-size:13.5px;display:flex;gap:8px;align-items:baseline;padding:8px 0;transition:color .15s}
  .fixc a::before{content:"\203A";color:var(--coral);font-weight:700}
  .fixc a:hover{color:#fff}
  .fix-cta{display:flex;justify-content:center;gap:16px;align-items:center;flex-wrap:wrap;margin-top:36px}
  .fix-cta .note{font-size:13.5px;color:#B9B9E0}
  /* ---------- free diagnosis form ---------- */
  .diag{max-width:700px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px 36px;box-shadow:0 20px 50px rgba(20,20,63,.07)}
  .dlabel{display:block;font-size:13.5px;font-weight:600;color:var(--ink);margin:20px 0 10px}
  .dlabel:first-child{margin-top:0}
  .chips-row{display:flex;flex-wrap:wrap;gap:9px}
  .chip-opt{position:relative}
  .chip-opt input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;cursor:pointer;margin:0}
  .chip-opt span{display:inline-block;border:1.5px solid #D5D5E4;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:500;color:var(--body);cursor:pointer;transition:all .15s ease;background:#fff}
  .chip-opt input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff}
  .chip-opt:hover span{border-color:var(--coral)}
  .chip-opt input:focus-visible + span{outline:2px solid var(--coral);outline-offset:2px}
  .diag textarea,.diag input[type=text],.diag input[type=tel]{width:100%;border:1.5px solid #D5D5E4;border-radius:12px;padding:13px 15px;font:15px var(--sans);color:var(--ink);background:var(--tint)}
  .diag textarea:focus,.diag input:focus{outline:2px solid var(--coral);outline-offset:1px;background:#fff}
  .diag .drow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .diag .btn{width:100%;justify-content:center;margin-top:22px}
  .diag .dnote{display:block;text-align:center;font-size:12.5px;color:var(--body);margin-top:12px}
  @media (max-width:620px){ .diag{padding:26px 20px} .diag .drow{grid-template-columns:1fr} }

  /* ---------- client logo strip ---------- */
  .clients{padding:92px 0 96px;overflow:hidden;background:var(--tint)}
  .clients .lead{text-align:center;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#7C7C9A;margin-bottom:52px}
  .cmarq{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
  .cmarq-track{display:flex;align-items:center;gap:96px;width:max-content;animation:cmarq 46s linear infinite}
  .cmarq:hover .cmarq-track{animation-play-state:paused}
  @keyframes cmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .cmarq img{height:46px;width:auto;max-width:210px;object-fit:contain;flex:none;opacity:.95;transition:opacity .22s ease,transform .22s ease}
  .cmarq img:hover{opacity:1;transform:scale(1.05)}
  .clients .note{text-align:center;font-size:13.5px;color:var(--body);margin-top:52px}
  .clients .note a{color:var(--coral-dark);font-weight:600}
  @media (max-width:620px){.clients{padding:64px 0 66px}.clients .lead{margin-bottom:36px;letter-spacing:.1em}.cmarq-track{gap:56px;animation-duration:30s}.cmarq img{height:36px;max-width:150px}.clients .note{margin-top:36px}}
  @media (prefers-reduced-motion:reduce){.cmarq-track{animation:none;justify-content:center;flex-wrap:wrap;width:auto;gap:36px}}

  /* ---------- case studies ---------- */
  .case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .case{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:9px}
  .case b{font-size:15.5px}
  .case .meta{font-size:11.5px;font-weight:600;color:var(--odoo);background:var(--odoo-soft);border-radius:6px;padding:3px 9px;align-self:flex-start}
  .case .impl{font-size:12.5px;color:var(--body)}
  .case q{font-size:13px;color:var(--ink);font-style:italic;quotes:"\201C" "\201D";margin-top:auto;border-top:1px solid var(--line);padding-top:9px}
  .case.cta-card{background:var(--navy);border-color:var(--navy);justify-content:center;align-items:flex-start;gap:12px}
  .case.cta-card b{color:#fff;font-size:17px}
  .case.cta-card p{color:#B9B9E0;font-size:13px}
  /* ---------- testimonials ---------- */
  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .testi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:14px}
  .testi q{color:var(--ink);font-size:14.5px;quotes:"\201C" "\201D";line-height:1.65}
  .testi .who{margin-top:auto;display:flex;align-items:center;gap:11px}
  .testi .av{width:38px;height:38px;border-radius:50%;background:var(--coral-soft);color:var(--coral-dark);display:grid;place-items:center;font:700 13px var(--sans);flex:none}
  .testi .who b{font-size:14px;display:block}
  .testi .who span{font-size:12.5px;color:var(--body)}
  .stars{color:#EFB008;font-size:13px;letter-spacing:2px}
  /* ---------- pitch cards (core features) ---------- */
  .pitch-chips{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:13px;font-style:italic;color:var(--body)}
  .pitch-chips b{color:var(--coral);font-style:normal}
  .prow{display:grid;gap:16px;grid-template-columns:1fr 1.35fr;margin-bottom:16px}
  .prow.rev{grid-template-columns:1.35fr 1fr}
  .pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 24px;display:flex;flex-direction:column;gap:8px}
  .pcard .stage{background:var(--tint);border:1px solid var(--line);border-radius:14px;min-height:240px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px 22px 22px;margin-bottom:10px}
  .pcard .stage.shotstage{padding:0;align-items:stretch;justify-content:flex-start}
  .pcard .stage.shotstage img{width:100%;height:280px;object-fit:cover;object-position:left top}
  .pcard .pic{width:40px;height:40px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font:700 16px var(--sans);position:absolute;top:14px;left:50%;transform:translateX(-50%);box-shadow:0 8px 18px rgba(255,90,110,.35)}
  .pcard h3{font-size:17.5px}
  .pcard .cap{color:var(--body);font-size:13.5px}
  .doc{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 26px rgba(20,20,63,.08);padding:10px 14px;font-size:12.5px;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:10px;width:min(320px,100%)}
  .doc .di{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font:700 11px var(--sans);color:#fff;flex:none}
  .doc .st{margin-left:auto;font-size:10.5px;font-weight:600;border-radius:999px;padding:3px 9px}
  .st.sent{background:var(--tint-2);color:var(--body)}
  .st.conf{background:#E9EDFC;color:#3A5BD9}
  .st.paid{background:#E4F5EC;color:var(--good)}
  .doc.d1{transform:rotate(-2deg) translateX(-14px)}
  .doc.d2{transform:translateX(12px);border-color:#FFD9DE}
  .doc.d3{transform:rotate(1.5deg) translateX(-6px)}
  .ai-wrap{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
  .gauge{width:110px;height:110px;border-radius:50%;background:conic-gradient(var(--odoo) 0 85%, var(--tint-2) 85% 100%);display:grid;place-items:center;flex:none}
  .gauge i{width:82px;height:82px;border-radius:50%;background:#fff;display:grid;place-items:center;font:600 20px var(--disp);font-style:normal;color:var(--ink)}
  .scanbox{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 26px rgba(20,20,63,.08);padding:12px 16px;font-size:12px;display:flex;flex-direction:column;gap:7px;min-width:210px}
  .scanbox .sh{font-weight:600;color:var(--ink);font-size:12.5px}
  .scanbox .fl{display:flex;justify-content:space-between;gap:14px;color:var(--body)}
  .scanbox .fl b{color:var(--ink);font-weight:600}
  .scanbox .ok{color:var(--good);font-weight:700}
  .scanbox .post{align-self:flex-start;background:var(--odoo-soft);color:var(--odoo);font-size:10.5px;font-weight:600;border-radius:999px;padding:3px 10px;margin-top:3px}
  .chart-panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 26px rgba(20,20,63,.08);padding:14px 18px 12px;width:100%;max-width:520px}
  .chart-panel .ch{font-size:12px;font-weight:600;color:var(--ink);margin-bottom:10px;display:flex;justify-content:space-between}
  .chart-panel .ch span:last-child{color:var(--good)}
  .cbars{display:flex;align-items:flex-end;gap:7px;height:110px}
  .cbars .cb{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;text-align:center}
  .cbars .bar{background:#F3C1C8;border-radius:3px 3px 0 0}
  .cbars .cb:nth-child(3n) .bar{background:var(--coral)}
  .cbars .cb span{font-size:9px;color:#9A93A7}
  .world{position:relative;width:100%;min-height:180px;border-radius:12px;background:radial-gradient(circle at 20% 35%, rgba(255,90,110,.14) 0 42px, transparent 44px),radial-gradient(circle at 66% 30%, rgba(20,20,63,.10) 0 34px, transparent 36px),radial-gradient(circle at 82% 62%, rgba(113,75,103,.12) 0 30px, transparent 32px),repeating-radial-gradient(circle at 50% 50%, #DEDEEA 0 1.5px, transparent 1.5px 14px)}
  .loc{position:absolute;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:0 8px 18px rgba(20,20,63,.1);font-size:11.5px;font-weight:600;color:var(--ink);padding:6px 12px;display:flex;align-items:center;gap:7px}
  .loc i{width:8px;height:8px;border-radius:50%;font-style:normal;flex:none}

  /* ---------- integrations hub ---------- */
  .hub{max-width:1010px;margin:0 auto}
  .hub-bar{display:flex;align-items:center;justify-content:center;gap:13px;background:var(--navy);color:#fff;border-radius:16px;padding:17px 26px;flex-wrap:wrap;text-align:center;box-shadow:0 16px 38px rgba(20,20,63,.18)}
  .hub-bar svg{width:20px;height:20px;color:var(--coral);flex:none}
  .hub-bar b{font:600 17px var(--disp);letter-spacing:-.01em}
  .hub-bar span{font-size:13px;color:#B9B9E0}
  .hub-stem{height:32px;position:relative}
  .hub-stem::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:repeating-linear-gradient(to bottom,var(--coral) 0 5px,transparent 5px 11px)}
  .hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
  .hubc{background:#fff;padding:19px 21px;display:flex;align-items:flex-start;gap:14px;text-decoration:none;transition:background .16s ease}
  .hubc:hover{background:#FCFCFF}
  .hubc .ic{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--tint);display:grid;place-items:center;flex:none;color:var(--bc,var(--coral));transition:background .16s ease,border-color .16s ease,color .16s ease}
  @supports (background:color-mix(in srgb,red 10%,white)){
    .hubc .ic{background:color-mix(in srgb,var(--bc,#FF5A6E) 9%,#fff);border-color:color-mix(in srgb,var(--bc,#FF5A6E) 20%,var(--line))}
  }
  .hubc:hover .ic{background:var(--bc,var(--coral));border-color:var(--bc,var(--coral));color:#fff}
  .hubc:hover .arw{color:var(--bc,var(--coral))}
  .hubc .ic svg{width:19px;height:19px;display:block}
  .hubc .tx{flex:1;min-width:0}
  .hubc .nm{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font:600 15px var(--sans);color:var(--ink);margin-bottom:4px}
  .hubc .kind{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--body);background:var(--tint-2);border-radius:6px;padding:2px 7px}
  .hubc p{font-size:13px;color:var(--body);line-height:1.55}
  .hubc .arw{flex:none;margin-top:9px;color:#C9C9DC;transition:transform .16s ease,color .16s ease}
  .hubc .arw svg{width:16px;height:16px;display:block}
  .hubc:hover .arw{color:var(--coral);transform:translateX(3px)}
  .hub-foot{text-align:center;margin-top:24px;font-size:14.5px;color:var(--body)}
  .hub-foot a{color:var(--coral-dark);font-weight:600;white-space:nowrap}
  @media (max-width:720px){ .hub-grid{grid-template-columns:1fr} .hub-stem{height:22px} .hub-bar b{font-size:15.5px} }

  /* ---------- industries ---------- */
  .ind-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .ind{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px 26px;display:flex;flex-direction:column;gap:6px}
  .ind b{font-size:16.5px}
  .ind span{color:var(--body);font-size:14px}
  .ind .apps{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
  .ind .apps i{font-style:normal;font-size:11px;font-weight:600;color:var(--odoo);background:var(--odoo-soft);border-radius:6px;padding:3px 8px}

  /* ---------- process ---------- */
  .proc{background:#fff;border-radius:28px;border:1px solid var(--line)}
  .proc-grid{display:grid;grid-template-columns:repeat(5,1fr)}
  .step{padding:30px 24px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
  .step:first-child{border-left:0}
  .step .no{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font:600 15px var(--sans)}
  .step h3{font-size:18px}
  .step p{color:var(--body);font-size:14px}
  .step .tag{font-size:12px;font-weight:600;color:var(--coral-dark)}

  /* ---------- hosting ---------- */
  .host-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .host{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px;display:flex;flex-direction:column;gap:12px}
  .host.feat{background:var(--navy);color:#fff;border-color:var(--navy)}
  .host.feat h3{color:#fff}
  .host.feat p,.host.feat li{color:#C4C4E4}
  .host .k{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--coral-dark)}
  .host.feat .k{color:var(--coral)}
  .host h3{font-size:22px}
  .host p{color:var(--body);font-size:14.5px}
  .host ul{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--body)}
  .host li::before{content:"+ ";color:var(--good);font-weight:700}
  .host.feat li::before{color:var(--coral)}
  .host .btn{margin-top:auto;justify-content:center}

  /* ---------- apps ---------- */
  .apps-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:28px 12px}
  .app-tile{display:flex;flex-direction:column;align-items:center;gap:11px;font-size:13.5px;font-weight:600;color:var(--ink);text-align:center}
  .app-tile .ic{width:74px;height:74px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 20px rgba(20,20,63,.08);display:grid;place-items:center}
  .app-tile .ic img{width:44px;height:44px}

  /* ---------- faq ---------- */
  .faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
  .faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 24px}
  .faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-weight:600;font-size:16px}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";font:400 22px var(--disp);color:var(--coral);flex:none}
  .faq details[open] summary::after{content:"-"}
  .faq details p{color:var(--body);font-size:15px;padding:0 0 20px;max-width:62ch}

  /* ---------- CTA ---------- */
  .cta{background:var(--navy);border-radius:28px;padding:72px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;position:relative;overflow:hidden}
  .cta::before{content:"";position:absolute;inset:auto -20% -70% -20%;height:100%;background:radial-gradient(50% 60% at 50% 100%, rgba(255,90,110,.2), transparent 70%)}
  .cta>*{position:relative}
  .cta h2{color:#fff;font-size:clamp(26px,3.6vw,40px);max-width:22ch}
  .cta p{color:#B9B9E0;max-width:52ch}
  .cta .row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
  .cta .ph{color:#B9B9E0;font-size:14px}
  .cta .ph b{color:#fff}

  /* ---------- footer ---------- */
  footer{background:var(--navy);color:#B9B9E0;margin-top:88px;border-radius:28px 28px 0 0}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;padding:64px 0 44px}
  .foot-grid img{height:28px;width:auto;margin-bottom:16px}
  .foot-grid p{font-size:14px;max-width:32ch}
  .foot-grid h4{color:#fff;font:600 13px var(--sans);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
  .foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:14.5px}
  .foot-grid a:hover{color:#fff}
  .foot-contact li{line-height:1.5}
  .foot-contact b{color:#fff;font-weight:600}
  .foot-base{border-top:1px solid rgba(255,255,255,.1);padding:20px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#8A8AB8}

  @media (max-width:1420px){ .nav-phone{display:none} }
  @media (max-width:960px){
    .navlinks{display:none}
    .stats-grid,.bento,.ind-grid,.host-grid,.case-grid,.fix-grid{grid-template-columns:repeat(2,1fr)}
    .testi-grid{grid-template-columns:1fr}
    .prow,.prow.rev{grid-template-columns:1fr}
    .proc-grid{grid-template-columns:1fr 1fr}
    .step{border-top:1px solid var(--line)}
    .step:nth-child(-n+2){border-top:0}
    .step:nth-child(odd){border-left:0}
    .apps-grid{grid-template-columns:repeat(4,1fr)}
    .foot-grid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:620px){
    section{padding:64px 0}
    .stats{padding-top:64px}
    .stats-grid,.bento,.ind-grid,.host-grid,.proc-grid,.case-grid,.fix-grid{grid-template-columns:1fr}
    .fix-band{padding:40px 22px}
    .step{border-left:0}
    .apps-grid{grid-template-columns:repeat(3,1fr)}
    .nav-phone{display:none}
    .shot{margin-bottom:0}
  }
  /* scroll reveal (classes added by JS only, so no-JS stays fully visible) */
  .rv{opacity:0;transform:translateY(20px);transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1)}
  .rv.in{opacity:1;transform:none}
  }
  if (document.hidden) {
    document.addEventListener("visibilitychange", function once(){
      if (document.hidden) return;
      document.removeEventListener("visibilitychange", once);
      armReveal();
    });
  } else { armReveal(); }

  /* back to top */
  #toTop{position:fixed;right:26px;bottom:26px;width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 34px rgba(10,10,40,.35);display:grid;place-items:center;cursor:pointer;z-index:120;opacity:0;pointer-events:none;transition:opacity .25s ease,background .18s ease}
  #toTop.show{opacity:1;pointer-events:auto}
  #toTop:hover{background:var(--coral)}
  #toTop svg{width:18px;height:18px}
  @media (prefers-reduced-motion:reduce){ .btn{transition:none} html{scroll-behavior:auto} .rv{opacity:1;transform:none;transition:none} }